1 2011-06-15 Alexander Monakov <amonakov@ispras.ru>
4 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5 (fence_to_rewind). Use it to notice when bookkeeping will be placed
6 above a fence. Update comments.
7 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
8 placed just above it. Do not allow NULL place_to_insert.
10 2011-06-15 Ira Rosen <ira.rosen@linaro.org>
12 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
13 (slpeel_tree_peel_loop_to_edge): Don't call
14 remove_dead_stmts_from_loop.
15 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
16 remove irrelevant pattern statements. For irrelevant statements
17 check if it is the last statement of a detected pattern, use
18 corresponding pattern statement instead.
19 (destroy_loop_vec_info): No need to remove pattern statements,
20 only free stmt_vec_info.
21 (vect_transform_loop): For irrelevant statements check if it is
22 the last statement of a detected pattern, use corresponding
23 pattern statement instead.
24 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
25 pattern statements. Set basic block for the new statement.
26 (vect_pattern_recog): Update documentation.
27 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
28 operands of pattern statements.
29 (vectorizable_call): Fix printing. In case of a pattern statement
30 use the lhs of the original statement when creating a dummy
31 statement to replace the original call.
32 (vect_analyze_stmt): For irrelevant statements check if it is
33 the last statement of a detected pattern, use corresponding
34 pattern statement instead.
35 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
36 statements use gsi of the original statement.
38 2011-06-14 Joseph Myers <joseph@codesourcery.com>
40 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
41 common/common-target-def.h.
42 * target.def (default_target_flags, handle_option,
43 supports_split_stack, optimization_table, init_struct,
44 except_unwind_info, unwind_tables_default, have_named_sections):
45 Move to common/common-target.def.
46 * target.h (enum opt_levels, struct default_options): Move to
47 common/common-target.h.
48 * targhooks.c (default_except_unwind_info,
49 dwarf2_except_unwind_info, sjlj_except_unwind_info,
50 default_target_handle_option, empty_optimization_table): Move to
51 common/common-targhooks.c.
52 * targhooks.h (default_except_unwind_info,
53 dwarf2_except_unwind_info, sjlj_except_unwind_info,
54 default_target_handle_option, empty_optimization_table): Move to
55 common/common-targhooks.h.
56 * common/common-target-def.h: Include common/common-targhooks.h.
57 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
59 * common/common-target.def (handle_option, option_init_struct,
60 option_optimization_table, default_target_flags,
61 except_unwind_info, supports_split_stack, unwind_tables_default,
62 have_named_sections): Move from target.def.
63 (HOOK_PREFIX): Undefine at end of file.
64 * common/common-target.h: Include input.h.
65 (enum opt_levels, struct default_options): Move from target.h.
66 * common/common-targhooks.c, common/common-targhooks.h: New.
67 * config.gcc (target_has_targetm_common): Default to yes.
68 (moxie*): Set target_has_targetm_common=no.
69 (hppa*-*-*): Don't set target_has_targetm_common=yes.
70 * doc/tm.texi: Regenerate.
71 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
72 (C_TARGET_DEF_H): Add common/common-targhooks.h.
73 (GCC_OBJS): Remove vec.o.
74 (OBJS): Remove hooks.o and vec.o.
75 (OBJS-libcommon-target): Add vec.o, hooks.o and
76 common/common-targhooks.o.
77 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
78 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
79 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
80 cfglayout.o, $(out_object_file), $(common_out_object_file)):
82 (common/common-targhooks.o): New.
83 * common/config/default-common.c: Include tm.h. Add FIXME
85 * common/config/pa/pa-common.c: Include more headers. Take
86 copyright dates from pa.c.
87 (pa_option_optimization_table, pa_handle_option,
88 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
89 TARGET_HANDLE_OPTION): Move from pa.c.
90 * common/config/alpha/alpha-common.c,
91 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
92 common/config/bfin/bfin-common.c,
93 common/config/cris/cris-common.c,
94 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
95 common/config/h8300/h8300-common.c,
96 common/config/i386/i386-common.c,
97 common/config/ia64/ia64-common.c,
98 common/config/iq2000/iq2000-common.c,
99 common/config/lm32/lm32-common.c,
100 common/config/m32c/m32c-common.c,
101 common/config/m32r/m32r-common.c,
102 common/config/m68k/m68k-common.c,
103 common/config/mcore/mcore-common.c,
104 common/config/mep/mep-common.c,
105 common/config/microblaze/microblaze-common.c,
106 common/config/mips/mips-common.c,
107 common/config/mmix/mmix-common.c,
108 common/config/mn10300/mn10300-common.c,
109 common/config/pdp11/pdp11-common.c,
110 common/config/picochip/picochip-common.c,
111 common/config/rs6000/rs6000-common.c,
112 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
113 common/config/score/score-common.c, common/config/sh/sh-common.c,
114 common/config/sparc/sparc-common.c,
115 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
116 common/config/vax/vax-common.c,
117 common/config/xstormy16/xstormy16-common.c,
118 common/config/xtensa/xtensa-common.c: New.
119 * config/alpha/alpha.c: Include common/common-target.h.
120 (alpha_option_optimization_table, alpha_handle_option,
121 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
122 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
123 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
124 * config/arm/arm.c (arm_option_optimization_table,
125 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
126 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
128 * config/avr/avr.c (avr_option_optimization_table,
129 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
131 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
132 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
133 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
134 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
135 * config/cris/cris.c (cris_option_optimization_table,
136 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
137 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
139 * config/fr30/fr30.c (fr30_option_optimization_table,
140 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
142 * config/frv/frv.c (frv_option_optimization_table,
143 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
144 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
145 * config/h8300/h8300.c (h8300_option_optimization_table,
146 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
147 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
148 * config/i386/i386-protos.h (ix86_handle_option): Declare.
149 * config/i386/i386.c: Include common/common-target.h.
150 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
151 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
152 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
153 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
154 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
155 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
156 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
157 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
158 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
159 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
160 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
161 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
162 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
163 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
164 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
165 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
166 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
167 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
168 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
169 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
170 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
171 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
172 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
173 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
174 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
175 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
176 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
177 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
178 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
179 ix86_option_optimization_table, ix86_option_init_struct,
180 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
181 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
182 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
184 * config/i386/t-i386 (i386.o): Update dependencies.
185 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
186 * config/ia64/ia64.c (ia64_option_optimization_table,
187 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
188 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
189 ia64_handle_option): Move to ia64-common.c.
190 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
191 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
192 * config/lm32/lm32.c (lm32_option_optimization_table,
193 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
195 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
197 * config/m32r/m32r.c (m32r_option_optimization_table,
198 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
199 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
200 m32r_handle_option): Move to m32r-common.c.
201 (m32r_memory_move_cost): Remove comment referring to
202 TARGET_HANDLE_OPTION.
203 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
204 Move to m68k-common.c.
205 * config/mcore/mcore.c (mcore_option_optimization_table,
206 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
207 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
208 * config/mep/mep.c (mep_option_optimization_table,
209 mep_handle_option, TARGET_HANDLE_OPTION,
210 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
211 Move to mep-common.c.
212 * config/microblaze/microblaze.c
213 (microblaze_option_optimization_table,
214 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
215 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
216 * config/mips/mips.c (mips_handle_option,
217 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
218 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
220 * config/mmix/mmix.c (mmix_option_optimization_table,
221 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
222 Move to mmix-common.c.
223 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
224 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
225 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
226 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
227 * config/pa/pa.c: Include common/common-target.h.
228 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
229 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
230 pa_handle_option): Move to pa-common.c.
231 (pa_option_override): Use targetm_common.except_unwind_info.
232 (pa_asm_output_mi_thunk, pa_function_section): Use
233 targetm_common.have_named_sections.
234 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
235 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
236 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
237 pdp11_handle_option, pdp11_option_init_struct): Move to
239 * config/picochip/picochip.c (picochip_option_optimization_table,
240 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
241 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
242 * config/rs6000/rs6000.c: Include common/common-target.h.
243 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
244 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
245 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
246 rs6000_handle_option): Move to rs6000-common.c.
247 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
248 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
249 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
250 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
251 * config/s390/s390.c (processor_flags_table,
252 s390_option_optimization_table, s390_option_init_struct,
253 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
254 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
255 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
256 * config/s390/s390.h (processor_flags_table): Declare.
257 * config/score/score.c (score_option_optimization_table,
258 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
259 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
260 score_handle_option): Move to score-common.c.
261 * config/sh/sh.c (sh_option_optimization_table,
262 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
263 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
264 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
265 * config/sparc/sparc.c: Include common/common-target.h.
266 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
267 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
268 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
269 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
270 spu_option_init_struct): Move to spu-common.c.
271 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
272 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
273 * config/v850/v850.c (small_memory_physical_max,
274 v850_handle_memory_optionn v850_handle_option,
275 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
276 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
278 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to
280 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
281 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
282 Move to xtensa-common.c.
283 * cfglayout.c: Include common/common-target.h.
284 (fixup_reorder_chain): Use targetm_common.have_named_sections.
285 * cfgrtl.c: Include common/common-target.h.
286 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
287 targetm_common.have_named_sections.
288 * dbxout.c: Include common/common-target.h.
289 (dbxout_function_end): Use targetm_common.have_named_sections.
290 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
291 targetm_common.except_unwind_info.
292 * dwarf2out.c: Include common/common-target.h.
293 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
294 dwarf2out_begin_prologue, dwarf2out_frame_init,
295 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
296 targetm_common.except_unwind_info.
297 * except.c: Include common/common-target.h.
298 (init_eh, finish_eh_generation,
299 output_one_function_exception_table): Use
300 targetm_common.except_unwind_info.
301 (switch_to_exception_section): Use
302 targetm_common.have_named_sections.
303 * explow.c: Include common/common-target.h.
304 * expr.c: Include common/common-target.h.
305 (build_personality_function): Use
306 targetm_common.except_unwind_info.
307 * function.c: Include common/common-target.h.
308 (expand_function_end): Use targetm_common.except_unwind_info.
309 * haifa-sched.c: Include common/common-target.h.
310 (sched_create_recovery_edges): Use
311 targetm_common.have_named_sections.
312 * lto-opts.c: Include common/common-target.h instead of target.h.
313 (lto_reissue_options): Use targetm_common.handle_option.
314 * opts.c: Include common/common-target.h.
315 (target_handle_option): Use targetm_common.handle_option.
316 (init_options_struct): Update comment referring to
317 targetm.target_option.optimization. Use
318 targetm_common.default_target_flags,
319 targetm_common.unwind_tables_default and
320 targetm_common.option_init_struct.
321 (default_options_optimization): Use
322 targetm_common.option_optimization_table.
323 (finish_options): Use targetm_common.except_unwind_info,
324 targetm_common.unwind_tables_default,
325 targetm_common.have_named_sections and
326 targetm_common.supports_split_stack.
327 * toplev.c: Include common/common-target.h.
328 (process_options): Use targetm_common.have_named_sections.
329 * tree-tailcall.c: Include common/common-target.h.
330 (suitable_for_tail_call_opt_p): Use
331 targetm_common.except_unwind_info.
332 * tree.c: Include common/common-target.h.
333 (build_common_builtin_nodes): Use
334 targetm_common.except_unwind_info.
335 * varasm.c: Include common/common-target.h.
336 (resolve_unique_section, hot_function_section,
337 default_function_section): Use targetm_common.have_named_sections.
339 2011-06-14 Easwaran Raman <eraman@google.com>
341 PR rtl-optimization/44194
342 * dse.c: Include tree-flow.h
343 (insn_info): Add new field non_frame_wild_read.
344 (group_info): Add new fields escaped_n and escaped_p.
345 (kill_on_calls): New variable.
346 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
347 (dse_step0): Initialize kill_on_calls.
348 (can_escape): New function.
349 (set_usage_bits): Add additional parameter; record information
350 about escaped locations.
351 (record_store): Pass EXPR corresponding to MEM to
353 (dse_step2_nospill): Set kill_on_calls based on
354 group->escaped_n and group->escaped_n.
355 (add_wild_read): Refactor into...
356 (reset_active_stores): ... New function, and
357 (free_read_records): ... New function.
358 (add_non_frame_wild_read): New function.
359 (scan_insn): Call add_non_frame_wild_read on non-const calls.
360 (scan_reads_nospill): Handle instructions with
362 (dse_step5_nospill): Call scan_reads_nospill for instructions
363 marked as non_frame_wild_read.
364 (dse_step7): Free escaped_n, escaped_p and kill_on_calls
367 2011-06-14 Joseph Myers <joseph@codesourcery.com>
369 * common/common-target-def.h, common/common-target.def,
370 common/common-target.h, common/config/default-common.c,
371 common/config/pa/pa-common.c: New files.
372 * Makefile.in (common_out_file, common_out_object_file,
373 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
374 (OBJS-libcommon-target): Include $(common_out_object_file).
375 (prefix.o): Update dependencies.
376 ($(common_out_object_file), common/common-target-hooks-def.h,
377 s-common-target-hooks-def-h): New.
378 (s-tm-texi): Also check timestamp on common-target.def.
379 (build/genhooks.o): Update dependencies.
380 * config.gcc (common_out_file, target_has_targetm_common): Define.
381 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
382 TARGET_ALWAYS_STRIP_DOTDOT.
383 * configure.ac (common_out_object_file): Define.
384 (common_out_file, common_out_object_file): Substitute.
385 (common): Create directory.
386 * configure: Regenerate.
387 * doc/tm.texi.in (targetm_common): Document.
388 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
389 * doc/tm.texi: Regenerate.
390 * genhooks.c (hook_array): Also include common/common-target.def.
391 * prefix.c (tm.h): Don't include.
392 (common/common-target.h): Include.
393 (ALWAYS_STRIP_DOTDOT): Don't define.
394 (update_path): Use targetm_common.always_strip_dotdot instead of
396 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
398 2011-06-14 David Li <davidxl@google.com>
400 * passes.c (execute_function_todo): Remove TODO_dump_func.
401 (execute_one_pass): Remove TODO_dump_func.
402 (execute_function_dump): New function.
403 * tree-vrp.c: Remove TODO_dump_func.
404 * regrename.c: Remove TODO_dump_func.
405 * fwprop.c: Remove TODO_dump_func.
406 * tree-into-ssa.c: Remove TODO_dump_func.
407 * tree-complex.c: Remove TODO_dump_func.
408 * tracer.c: Remove TODO_dump_func.
409 * tree-loop-distribution.c: Remove TODO_dump_func.
410 * postreload-gcse.c: Remove TODO_dump_func.
411 * postreload.c: Remove TODO_dump_func.
412 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
413 * tree-tailcall.c: Remove TODO_dump_func.
414 * ipa-cp.c: Remove TODO_dump_func.
415 * final.c: Remove TODO_dump_func.
416 * tree-emutls.c: Remove TODO_dump_func.
417 * omp-low.c: Remove TODO_dump_func.
418 * tree-ssa-dse.c: Remove TODO_dump_func.
419 * tree-ssa-uncprop.c: Remove TODO_dump_func.
420 * auto-inc-dec.c: Remove TODO_dump_func.
421 * reorg.c: Remove TODO_dump_func.
422 * tree-ssa-copyrename.c: Remove TODO_dump_func.
423 * tree-ssa-ccp.c: Remove TODO_dump_func.
424 * compare-elim.c: Remove TODO_dump_func.
425 * mode-switching.c: Remove TODO_dump_func.
426 * modulo-sched.c: Remove TODO_dump_func.
427 * tree-call-cdce.c: Remove TODO_dump_func.
428 * cse.c: Remove TODO_dump_func.
429 * web.c: Remove TODO_dump_func.
430 * tree-stdarg.c: Remove TODO_dump_func.
431 * lto-streamer-out.c: Remove TODO_dump_func.
432 * tree-ssa-math-opts.c: Remove TODO_dump_func.
433 * tree-ssa-dom.c: Remove TODO_dump_func.
434 * tree-nrv.c: Remove TODO_dump_func.
435 * loop-init.c: Remove TODO_dump_func.
436 * gimple-low.c: Remove TODO_dump_func.
437 * ipa-inline.c: Remove TODO_dump_func.
438 * tree-ssa-sink.c: Remove TODO_dump_func.
439 * jump.c: Remove TODO_dump_func.
440 * ifcvt.c: Remove TODO_dump_func.
441 * tree-ssa-loop.c: Remove TODO_dump_func.
442 * recog.c: Remove TODO_dump_func.
443 * dse.c: Remove TODO_dump_func.
444 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
445 * matrix-reorg.c: Remove TODO_dump_func.
446 * tree-eh.c: Remove TODO_dump_func.
447 * regmove.c: Remove TODO_dump_func.
448 * function.c: Remove TODO_dump_func.
449 * tree-vectorizer.c: Remove TODO_dump_func.
450 * ipa-split.c: Remove TODO_dump_func.
451 * gcse.c: Remove TODO_dump_func.
452 * tree-if-conv.c: Remove TODO_dump_func.
453 * init-regs.c: Remove TODO_dump_func.
454 * tree-ssa-phiopt.c: Remove TODO_dump_func.
455 * implicit-zee.c: Remove TODO_dump_func.
456 * lower-subreg.c: Remove TODO_dump_func.
457 * bt-load.c: Remove TODO_dump_func.
458 * tree-dfa.c: Remove TODO_dump_func.
459 * except.c: Remove TODO_dump_func.
460 * emit-rtl.c: Remove TODO_dump_func.
461 * store-motion.c: Remove TODO_dump_func.
462 * cfgexpand.c: Remove TODO_dump_func.
463 * tree-cfgcleanup.c: Remove TODO_dump_func.
464 * cfgcleanup.c: Remove TODO_dump_func.
465 * tree-ssa-pre.c: Remove TODO_dump_func.
466 * tree-sra.c: Remove TODO_dump_func.
467 * tree-mudflap.c: Remove TODO_dump_func.
468 * tree-ssa-copy.c: Remove TODO_dump_func.
469 * cfglayout.c: Remove TODO_dump_func.
470 * tree-ssa-forwprop.c: Remove TODO_dump_func.
471 * tree-ssa-dce.c: Remove TODO_dump_func.
472 * ira.c: Remove TODO_dump_func.
473 * tree-ssa.c: Remove TODO_dump_func.
474 * integrate.c: Remove TODO_dump_func.
475 * tree-optimize.c: Remove TODO_dump_func.
476 * tree-ssa-phiprop.c: Remove TODO_dump_func.
477 * tree-object-size.c: Remove TODO_dump_func.
478 * combine.c: Remove TODO_dump_func.
479 * bb-reorder.c: Remove TODO_dump_func.
480 * cprop.c: Remove TODO_dump_func.
481 * var-tracking.c: Remove TODO_dump_func.
482 * tree-profile.c: Remove TODO_dump_func.
483 * tree-vect-generic.c: Remove TODO_dump_func.
484 * reg-stack.c: Remove TODO_dump_func.
485 * sched-rgn.c: Remove TODO_dump_func.
486 * tree-ssa-structalias.c: Remove TODO_dump_func.
487 * tree-switch-conversion.c: Remove TODO_dump_func.
488 * tree-cfg.c: Remove TODO_dump_func.
489 * tree-ssa-reassoc.c: Remove TODO_dump_func.
490 * combine-stack-adj.c: Remove TODO_dump_func.
491 * dce.c: Remove TODO_dump_func.
492 * tree-ssanames.c: Remove TODO_dump_func.
493 * regcprop.c: Remove TODO_dump_func.
495 2011-06-14 H.J. Lu <hongjiu.lu@intel.com>
498 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
499 and properly handle result not in Pmode.
501 2011-06-14 Robert Millan <rmh@gnu.org>
503 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
504 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
507 * config/i386/kfreebsd-gnu64.h: New file.
508 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
509 with `i386/kfreebsd-gnu64.h'.
511 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
512 (GNU_USER_LINK_EMULATION64): New macros.
513 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
514 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
515 of hardcoding `elf_i386' and `elf_x86_64'.
517 2011-06-14 Nick Clifton <nickc@redhat.com>
520 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
523 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
525 2011-06-14 Jakub Jelinek <jakub@redhat.com>
528 * tree.h (DECL_NONSHAREABLE): Define.
529 (struct tree_decl_common): Change decl_common_unused to
530 decl_nonshareable_flag.
531 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
532 Ignore vars with DECL_NONSHAREABLE bit set.
533 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
534 on stores to automatic aggregate vars.
536 PR rtl-optimization/49390
538 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
540 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
543 2011-06-14 Zdenek Dvorak <ook@ucw.cz>
544 Tom de Vries <tom@codesourcery.com>
547 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
548 Document changed semantics.
549 (max_stmt_executions, max_stmt_executions_int): Declare.
550 * tree-data-ref.c (estimated_loop_iterations)
551 (estimated_loop_iterations_int): Move functions...
552 * tree-ssa-loop-niter.c (estimated_loop_iterations)
553 (estimated_loop_iterations_int): here.
554 (record_estimate): Change nb_iterations_upper_bound and
555 nb_iterations_estimate semantics.
556 (max_stmt_executions, max_stmt_executions_int): New function.
557 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
558 (max_stmt_executions_tree): this.
559 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
560 estimated_loop_iterations_tree.
561 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
562 max_stmt_executions_int instead of estimated_loop_iterations_int.
563 * predict.c (predict_loops): Idem.
564 * tree-parloops.c (parallelize_loops): Idem.
565 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
566 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
567 (init_omega_for_ddr_1): Idem.
568 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
569 (loop_prefetch_arrays): Idem
570 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
571 max_stmt_executions instead of estimated_loop_iterations.
572 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
573 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
574 instead of nb_iterations_upper_bound.
576 2011-06-13 Jan Hubicka <jh@suse.cz>
578 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
580 2011-06-14 Richard Henderson <rth@redhat.com>
583 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
584 (based_loc_descr): Assert it's true.
585 (compute_frame_pointer_to_fb_displacement): Set it, rather than
586 aborting immediately.
588 2011-06-14 Sanjin Liu <scliu@faraday-tech.com>
589 Mingfeng Wu <mingfeng@faraday-tech.com>
591 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
593 2011-06-13 Jan Hubicka <jh@suse.cz>
595 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
597 2011-06-13 Jan Hubicka <jh@suse.cz>
599 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
600 similarly to DECL_COMDAT.
601 * cgraphunit.c (cgraph_analyze_function): Likewise.
602 * ipa.c (function_and_variable_visibility): Likewise.
604 2011-06-13 Jan Hubicka <jh@suse.cz>
606 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
607 BINFO_VIRTUALS when streaming for ltrans unit.
609 2011-06-13 David Edelsohn <dje.gcc@gmail.com>
611 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
612 (movdi_internal64): Same.
614 2011-06-13 Edmar Wienskoski <edmar@freescale.com>
616 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
617 a set of similar patterns, where the MATCH_OPERAND for the function
618 argument is replaced with individual references to hardware registers.
619 (save_fpregs_<mode>): Ditto
620 (restore_gpregs_<mode>): Ditto
621 (return_and_restore_gpregs_<mode>): Ditto
622 (return_and_restore_fpregs_<mode>): Ditto
623 (return_and_restore_fpregs_aix_<mode>): Ditto
625 2011-06-13 Jan Hubicka <jh@suse.cz>
627 * ipa-utils.c (postorder_stack): New structure.
628 (ipa_reverse_postorder): Handle aliases.
630 2011-06-13 Jan Hubicka <jh@suse.cz>
632 * ipa-inline.c (reset_edge_caches): Walk aliases.
633 (update_caller_keys): Do not test inlinability of aliases.
634 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
635 (do_estimate_growth): Fix typo.
637 2011-06-13 Jan Hubicka <jh@suse.cz>
639 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
640 (can_remove_node_now_p): ... here; handle same comdat groups.
641 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
642 (inline_call): Update use of can_remove_node_now_p.
644 2011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
646 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
647 condition to disallow non-identical memory locations.
648 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
649 preference to bit manipulation instructions.
651 2011-06-13 Jan Hubicka <jh@suse.cz>
653 * cgraph.c (cgraph_for_node_thunks_and_aliases,
654 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
655 (nonremovable_p): New function.
656 (cgraph_can_remove_if_no_direct_calls_p): New function.
657 (used_from_object_file_p): New functoin.
658 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
659 references from aliases.
660 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
661 * ipa-inline.c (check_caller_edge): New function.
662 (want_inline_function_called_once_p): Use it; accept aliases called
664 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
666 2011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
669 * config/arm/neon.md (vec_pack_trunc): Set the lengths
670 correctly for the case with Quad vectors.
672 2011-06-13 Jakub Jelinek <jakub@redhat.com>
673 Ira Rosen <ira.rosen@linaro.org>
675 PR tree-optimization/49352
676 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
677 all, make sure loop_use_stmt after the loop is a def stmt of a used
678 SSA_NAME that is the only one defined inside of the loop. Don't
679 check for COND_EXPR and GIMPLE_BINARY_RHS.
680 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
681 check_reduction is true.
683 2011-06-11 Jan Hubicka <jh@suse.cz>
686 * ipa.c (cgraph_externally_visible_p): Check resolution info.
688 2011-06-11 Jan Hubicka <jh@suse.cz>
691 * ipa-inline-transform.c: Include tree-pass.h
692 (inline_transform): Set TODO_update_ssa_only_virtuals.
693 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
695 2011-06-11 Jan Hubicka <jh@suse.cz>
698 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
701 2011-06-12 Ira Rosen <ira.rosen@linaro.org>
703 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
704 Take number of iterations to peel into account for equally frequent
707 2011-06-11 Jan Hubicka <jh@suse.cz>
709 * lto-streamer-out.c (produce_symtab): Stream out the newly represented
712 2011-06-11 Jan Hubicka <jh@suse.cz>
714 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying
716 (ipa_update_after_lto_read): Likewise.
717 (ipa_write_node_info): Do not sream call_with_var_arguments.
718 (ipa_read_node_info): Likewise.
720 2011-06-11 Jan Hubicka <jh@suse.cz>
722 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
724 2011-06-11 Jan Hubicka <jh@suse.cz>
726 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
727 (lto_symtab_resolve_can_prevail_p): Likewise.
728 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
729 * cgraph.c (same_body_aliases_done): New global var.
730 (cgraph_same_body_alias_1): Rename to ...
731 (cgraph_create_function_alias): ... this one; reorg to new
733 (cgraph_same_body_alias): Use cgraph_create_function_alias;
734 record references when asked to.
735 (cgraph_add_thunk): Fix formating.
736 (cgraph_get_node): Kill same body alias code.
737 (cgraph_node_for_asm): Likewise.
738 (cgraph_remove_same_body_alias): Remove.
739 (cgraph_remove_node): Kill same body alias code.
740 (cgraph_mark_address_taken_node): Mark also the aliased function
741 as having address taken.
742 (dump_cgraph_node): Dump same body aliases.
743 (cgraph_for_node_thunks_and_aliases): Update for new alias
745 (cgraph_for_node_and_aliases): Likewise.
746 * cgraph.h (same_body): Kll pointer.
747 (same_body_alias): Update comment.
748 (same_body_aliases_done): Declare.
749 (cgraph_remove_same_body_alias): Remove declaration.
750 (cgraph_create_function_alias): Declare.
751 (cgraph_process_same_body_aliases): Declare.
752 (cgraph_function_with_gimple_body_p): Check for alias.
753 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
754 (cgraph_alias_aliased_node): New function.
755 (cgraph_function_node): Update for new aliases.
756 (cgraph_function_or_thunk_node): Likewise.
757 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
758 (inline_call): Remove dead aliases.
759 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
760 name hack for same body aliases.
761 (clone_of_p): Look through aliases.
762 (verify_cgraph_node): Verify aliases.
763 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
764 (cgraph_process_same_body_aliases): New function.
765 (process_function_and_variable_attributes): Disable weakref warning on
767 (cgraph_analyze_functions): Handle aliases.
768 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
769 (assemble_thunks): Rename to ...
770 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
771 (cgraph_expand_function): Remove alias output code.
772 (cgraph_output_in_order): Skip aliases.
773 (cgraph_preserve_function_body_p): Aliases don't need preserving.
774 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
775 (ipa_record_reference): Do not assert on alias references.
776 (ipa_ref_has_aliases_p): New function.
777 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
778 (ipa_ref_has_aliases_p): Declare.
779 * lto-cgraph.c (lto_output_node): Handle aliases.
780 (input_node): Likewise.
781 * lto-streamer-out.c (lto_output): Skip aliases.
782 (produce_symtab): Kill same_body_alias code.
783 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
784 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
785 * ipa-inline.c (update_caller_keys): Walk aliases.
786 (inline_small_functions): Fix thinko in previous patch.
787 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
788 (function_and_variable_visibility): Do not walk same body aliases.
789 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
790 (ipa_pta_execute): Use it.
792 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
794 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
795 (*vec_dupv2df): Rename from vec_dupv2df.
796 (vec_dupv2df): New expander.
798 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
800 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
802 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
804 * config/i386/i386.md: Use default value in "isa" attribute.
805 * config/i386/sse.md: Ditto.
806 * config/i386/mmx.md: Ditto.
808 2011-06-10 Wei Guozhi <carrot@google.com>
811 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
812 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
813 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
815 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
817 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
818 (arm_legitimate_ldrd_p): New prototype.
819 (arm_output_ldrd): New prototype.
820 * config/arm/arm.c (arm_check_ldrd_operands): New function.
821 (arm_legitimate_ldrd_p): New function.
822 (arm_output_ldrd): New function.
824 2011-06-10 David Li <davidxl@google.com>
826 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
827 * passes.c (passr_eq): New function.
828 (create_pass_tab): New function.
829 (pass_traverse): New function.
830 (dump_one_pass): New function.
831 (dump_pass_list): New function.
832 (dump_passes): New function.
834 2011-06-10 Jan Hubicka <jh@suse.cz>
836 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
837 setting the nothrow flag.
838 * ipa-reference.c (propagate): Skip aliases.
839 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
840 (propagate_nothrow): Skip aliases; do not update cgraph.
841 (local_pure_const): Do not update cgraph.
842 * tree-profile.c (tree_profiling): Do fixup_cfg.
844 2011-06-10 Jan Hubicka <jh@suse.cz>
846 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
847 (cgraph_local_node_p): ... here; handle aliases.
848 (has_addr_references_p): Break out from ...;
849 (cgraph_remove_unreachable_nodes) ... here.
851 2011-06-10 Jan Hubicka <jh@suse.cz>
853 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
854 * common.opt (flag_inline_functions_called_once): Do not
857 2011-06-10 Jan Hubicka <jh@suse.cz>
859 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
860 (ipcp_initialize_node_lattices): Do not deal with aliases;
861 Do not try to propagate through thunks.
862 (ipcp_change_tops_to_bottom): Do not deal with aliases.
864 2011-06-10 Jan Hubicka <jh@suse.cz>
866 * ipa-prop.c (ipa_write_node_info): Stream jump functions
868 (ipa_read_node_info): Likewise.
870 2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
873 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
874 (build_and_insert_call): Likewise.
875 (build_and_insert_ref): New.
876 (gimple_expand_builtin_pow): Minor cleanup.
877 (gimple_expand_builtin_cabs): New.
878 (execute_cse_sincos): Add case for BUILT_IN_CABS.
880 2011-06-10 Jan Hubicka <jh@suse.cz>
882 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
883 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
884 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
885 (ipcp_propagate_stage): Skip aliases when propagating.
886 (ipcp_need_redirect_p): Skip aliases.
887 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
888 collect_callers_of_node.
889 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
891 (ipa_compute_jump_functions): Look through aliases.
893 2011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
895 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
897 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
899 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
901 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
903 2011-06-10 Jan Hubicka <jh@suse.cz>
905 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
906 Update call of gimple_get_virt_method_for_binfo.
907 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
908 refuse_thunks parameter.
909 (gimple_fold_call): Update.
910 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
912 2011-06-10 Jan Hubicka <jh@suse.cz>
914 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
915 (not_all_callers_have_enough_arguments_p): ... this one; turn into
916 worker for cgraph_for_node_and_aliases.
917 (convert_callers_for_node): Break out from ...
918 (convert_callers): ... here.
919 (modify_function): Use collect_callers_of_node.
920 (ipa_early_sra): Use cgraph_for_node_and_aliases.
922 2011-06-10 Richard Guenther <rguenther@suse.de>
924 PR tree-optimization/49361
925 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
926 when not already in gimple form.
928 2011-06-10 Richard Guenther <rguenther@suse.de>
931 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
932 FOR_EACH_PHI_OR_STMT_USE.
934 2011-06-10 Jan Hubicka <jh@suse.cz>
936 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
937 (clone_inlined_nodes): ... here.
938 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
939 to real destination prior inlining.
940 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
941 can_early_inline_edge_p, want_early_inline_function_p,
942 want_early_inline_function_p, want_inline_small_function_p,
943 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
944 edge_badness, update_all_callee_keys, lookup_recursive_calls,
945 add_new_edges_to_heap, inline_small_functions, flatten_function,
946 inline_always_inline_functions, early_inline_small_functions): Use
947 cgraph_function_or_thunk_node.
948 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
949 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
950 (do_estimate_edge_growth_1): Break out from ...
951 (do_estimate_growth) ... here; walk aliases.
952 (inline_generate_summary): Skip aliases.
954 2011-06-10 Richard Guenther <rguenther@suse.de>
956 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
957 forward when combining, visit inserted stmts when a stmt was changed.
959 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
961 * tree.h (error_operand_p): Add.
962 * dbxout.c (dbxout_type_fields): Use the latter.
963 * c-decl.c (add_stmt): Likewise.
964 * gimplify.c (omp_add_variable, omp_notice_variable,
965 gimplify_scan_omp_clauses): Likewise.
967 2011-06-10 Georg-Johann Lay <avr@gjlay.de>
969 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
970 when a value is actually passed in regs.
972 2011-06-10 Eric Botcazou <ebotcazou@adacore.com>
973 Laurent Rougé <laurent.rouge@menta.fr>
975 * doc/invoke.texi (SPARC options): Add -mflat.
976 * config/sparc/sparc.opt: Likewise.
977 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
978 (sparc_flat_expand_prologue): Declare.
979 (sparc_flat_expand_epilogue): Likewise.
980 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
981 (CPP_ENDIAN_SPEC): Replace with...
982 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
983 (CPP_SPEC): Adjust to above change.
984 (EXTRA_SPECS): Likewise.
985 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
986 (INCOMING_REGNO): Likewise.
987 (OUTGOING_REGNO): Likewise.
988 (LOCAL_REGNO): Likewise.
989 (SETUP_FRAME_ADDRESSES): Likewise.
990 (FIXED_REGISTERS): Set 0 for %fp.
991 (CALL_USED_REGISTERS): Likewise.
992 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
993 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
994 (RETURN_ADDR_REGNUM): Define.
995 (RETURN_ADDR_RTX): Use it.
996 (INCOMING_RETURN_ADDR_REGNUM): Define.
997 (INCOMING_RETURN_ADDR_RTX): Use it.
998 (DWARF_FRAME_RETURN_COLUMN): Likewise.
999 (EH_RETURN_REGNUM): Define.
1000 (EH_RETURN_STACKADJ_RTX): Use it.
1001 (EH_RETURN_HANDLER_RTX): Delete.
1002 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
1003 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
1005 (struct machine_function): Add frame_size, apparent_frame_size,
1006 frame_base_reg, frame_base_offset, n_global_fp_regs and
1007 save_local_in_regs_p fields.
1008 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
1009 sparc_frame_base_offset, sparc_n_global_fp_regs,
1010 sparc_save_local_in_regs_p): New macros.
1011 (sparc_option_override): Error out if -fcall-saved-REG is specified
1013 (eligible_for_restore_insn): Fix formatting.
1014 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
1015 (eligible_for_sibcall_delay): Likewise.
1016 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
1017 (sparc_legitimate_address_p): Adjust to above change.
1018 (save_global_or_fp_reg_p): New predicate.
1019 (return_addr_reg_needed_p): Likewise.
1020 (save_local_or_in_reg_p): Likewise.
1021 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
1022 (SORR_SAVE, SORR_RESTORE): Delete.
1023 (sorr_pred_t): New typedef.
1024 (sorr_act_t): New enum.
1025 (save_or_restore_regs): Rename to...
1026 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
1027 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
1028 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
1029 mechanism. Add CFI information for double-word saves in 32-bit mode.
1030 (emit_adjust_base_to_offset): New function extracted from...
1031 (emit_save_or_restore_regs): ...this. Rename the rest to...
1032 (emit_save_or_restore_regs_global_fp_regs): ...this.
1033 (emit_save_or_restore_regs_local_in_regs): New function.
1034 (gen_create_flat_frame_[123]): New functions.
1035 (sparc_expand_prologue): Use SIZE local variable. Adjust.
1036 (sparc_flat_expand_prologue): New function.
1037 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
1038 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
1039 (sparc_flat_expand_epilogue): New function.
1040 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
1041 (output_return): Likewise.
1042 (output_sibcall): Likewise.
1043 (sparc_output_mi_thunk): Likewise.
1044 (sparc_frame_pointer_required): Likewise.
1045 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
1046 function optimization.
1047 * config/sparc/sparc.md (flat): New attribute.
1048 (prologue): Add TARGET_FLAT handling.
1049 (save_register_window): Disable if TARGET_FLAT.
1050 (create_flat_frame_[123]): New patterns.
1051 (epilogue): Add TARGET_FLAT handling.
1052 (sibcall_epilogue): Likewise.
1053 (eh_return): New expander.
1054 (eh_return_internal): New insn and splitter.
1055 (return_internal): Add TARGET_FLAT handling.
1056 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
1057 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
1058 (nonlocal_goto): Add TARGET_FLAT handling.
1059 * config/sparc/t-elf: Add -mflat multilib.
1060 * config/sparc/t-leon: Likewise.
1062 2011-06-10 Jan Hubicka <jh@suse.cz>
1064 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
1065 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
1066 (self_recursive_p): Use cgraph_function_node.
1067 (propagate_pure_const): Likewise.
1068 (propagate_nothrow): Likewise.
1069 * ipa-reference.c (ipa_reference_get_not_read_global): Use
1070 cgraph_function_node.
1071 (propagate_bits): Likewise.
1072 (propagate): Likewise.
1074 2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1075 Richard Earnshaw <rearnsha@arm.com>
1077 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
1078 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
1079 (*thumb2_movdi_vfp): Delete.
1080 (*arm_movdi_vfp_cortexa8): Delete.
1081 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
1082 (*movdi_vfp_cortexa8): Likewise.
1084 2011-06-10 Richard Guenther <rguenther@suse.de>
1086 * stor-layout.c (initialize_sizetypes): Give names to all
1089 2011-06-10 Ira Rosen <ira.rosen@linaro.org>
1091 PR tree-optimization/49318
1092 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
1093 irrelevant pattern statements.
1095 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
1097 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
1100 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
1103 2011-06-09 Jan Hubicka <jh@suse.cz>
1105 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
1106 do not recompute reachable flag.
1107 (cgraph_finalize_function, cgraph_analyze_functions): Set
1108 redefined_extern_inline here.
1110 2011-06-09 Jan Hubicka <jh@suse.cz>
1112 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
1113 (cgraph_only_called_directly_p): ... this one; bring offline.
1114 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1115 varpool_used_from_object_file_p): Drop names from the declaratoin.
1116 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
1117 collect_callers_of_node): New.
1118 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
1119 (cgraph_edge_recursive_p): Use cgraph_function_node.
1120 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
1121 (cgraph_node_cannot_be_local_p_1): Break out from ...
1122 (cgraph_node_can_be_local_p): ... here; walk aliases.
1123 (cgraph_for_node_thunks_and_aliases): New function.
1124 (cgraph_for_node_and_aliases): New function.
1125 (cgraph_make_node_local_1): Break out from ...
1126 (cgraph_make_node_local) ... here; use
1127 cgraph_for_node_thunks_and_aliases.
1128 (cgraph_set_nothrow_flag_1): Break out from ...
1129 (cgraph_set_nothrow_flag) ... here;
1130 use cgraph_for_node_thunks_and_aliases.
1131 (cgraph_set_const_flag_1): Break out from ...
1132 (cgraph_set_const_flag) ... here;
1133 use cgraph_for_node_thunks_and_aliases.
1134 (cgraph_set_pure_flag_1): Break out from ...
1135 (cgraph_set_pure_flag) ... here;
1136 use cgraph_for_node_thunks_and_aliases.
1137 (cgraph_propagate_frequency_1): Break out from ...
1138 (cgraph_propagate_frequency) ... here; use
1139 cgraph_for_node_thunks_and_aliases.
1140 (cgraph_used_from_object_file_p): Do not care about aliases.
1141 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
1143 (collect_callers_of_node_1, collect_callers_of_node): New functions.
1145 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
1147 PR rtl-optimization/49154
1148 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
1149 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
1150 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
1151 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
1152 * config/cris/cris.h (cris_register_move_cost): Remove
1153 !TARGET_V32 code. Tweak comments.
1155 2011-06-09 Jan Hubicka <jh@suse.cz>
1157 * cgraphbuild.c (record_eh_tables): Mark personality function as having
1160 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
1162 PR rtl-optimization/49154
1163 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
1164 is a matching slot in the hashtable, assign it to classes_ptr.
1166 PR rtl-optimization/49154
1167 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
1169 * doc/tm.texi: Regenerate.
1171 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
1174 * config/sh/sh.md (UNSPEC_CHKADD): New.
1175 (chk_guard_add): New define_insn_and_split.
1176 (symGOT_load): Use chk_guard_add instead of blockage.
1178 2011-06-09 Kai Tietz <ktietz@redhat.com>
1180 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
1182 2011-06-09 Eric Botcazou <ebotcazou@adacore.com>
1184 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
1186 2011-06-09 Wei Guozhi <carrot@google.com>
1189 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
1190 (peephole2 for conditional move): Generate 16 bit instructions.
1192 2011-06-09 Uros Bizjak <ubizjak@gmail.com>
1194 * config/i386/i386.md (*movdi_internal_rex64): Merge
1195 alternatives 6 and 8.
1197 2011-06-09 David Li <davidxl@google.com>
1199 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
1200 * passes.c (passr_eq): New function.
1201 (create_pass_tab): New function.
1202 (pass_traverse): New function.
1203 (dump_one_pass): New function.
1204 (dump_pass_list): New function.
1205 (dump_passes): New function.
1207 2011-06-09 David Li <davidxl@google.com>
1209 * tree-complex.c (tree_lower_complex): Gate cleanup.
1210 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
1211 (execute_optimize_stdarg): Ditto.
1212 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
1213 (execute_cleanup_eh_1): Ditto.
1214 (execute_cleanup_eh): Ditto.
1215 * gcse.c (gate_rtl_pre): Ditto.
1216 (execute_rtl_pre): Ditto.
1217 * except.c (finish_eh_generation): Ditto.
1218 (convert_to_eh_region_ranges): Ditto.
1219 * cprop.c (one_cprop_pass): Ditto.
1221 2011-06-09 Bernd Schmidt <bernds@codesourcery.com>
1224 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
1225 in all basic blocks.
1227 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1229 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
1230 (HAVE_ENABLE_EXECUTE_STACK): Define.
1231 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
1232 (HAVE_ENABLE_EXECUTE_STACK): Define.
1233 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1234 (HAVE_ENABLE_EXECUTE_STACK): Define.
1235 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
1236 (ENABLE_EXECUTE_STACK): Remove.
1237 (HAVE_ENABLE_EXECUTE_STACK): Define.
1238 [IN_LIBGCC2]: Don't include <windows.h>.
1239 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1240 (HAVE_ENABLE_EXECUTE_STACK): Define.
1241 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
1242 (HAVE_ENABLE_EXECUTE_STACK): Define.
1243 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
1244 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
1245 (HAVE_ENABLE_EXECUTE_STACK): Define.
1246 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
1247 (HAVE_ENABLE_EXECUTE_STACK): Define.
1248 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
1249 (HAVE_ENABLE_EXECUTE_STACK): Define.
1250 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1251 (HAVE_ENABLE_EXECUTE_STACK): Define.
1252 * config/alpha/alpha.c (alpha_trampoline_init): Test
1253 HAVE_ENABLE_EXECUTE_STACK.
1254 * config/i386/i386.c (ix86_trampoline_init): Likewise.
1255 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1256 (sparc64_initialize_trampoline): Likewise.
1257 * libgcc2.c [L_enable_execute_stack]: Remove.
1258 * system.h (ENABLE_EXECUTE_STACK): Poison.
1259 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
1260 * doc/tm.texi: Regenerate.
1261 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
1263 2011-06-09 Jakub Jelinek <jakub@redhat.com>
1266 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
1267 variable. After resetting and rescanning insn continue with previous
1270 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1272 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
1273 (gcc_cv_ld_hidden): Likewise.
1274 * configure: Regenerate.
1275 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
1276 (ix86_stack_protect_fail): Mark unused.
1277 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
1278 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
1279 [TARGET_MACHO]: Don't define.
1280 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
1281 (TARGET_STACK_PROTECT_FAIL): Likewise.
1282 (rs6000_stack_protect_fail): Mark unused.
1283 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
1284 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
1286 2011-06-08 Andi Kleen <ak@linux.intel.com>
1288 * varasm.c (get_section): Print location of other conflict
1289 for section conflicts.
1291 2011-06-08 Andi Kleen <ak@linux.intel.com>
1293 * config/i386/driver-i386.c (host_detect_local_cpu):
1294 Add model 0x2d Intel CPU.
1296 2011-06-08 Andi Kleen <ak@linux.intel.com>
1298 * reginfo.c (global_regs_decl): Add.
1299 (globalize_reg): Add decl parameter. Compute location. Pass location
1300 to warnings and add inform. Store decl in global_regs_decl.
1301 * rtl.h (globalize_reg): Update prototype.
1302 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
1304 2011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
1306 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
1308 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1311 * config/sh/predicates.md (general_movsrc_operand): Check
1312 mode for memory with indexed address for QI and HImode.
1313 (general_movdst_operand): Likewise.
1315 2011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
1317 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
1319 2011-06-08 Alexandre Oliva <aoliva@redhat.com>
1321 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
1322 (num_ssa_operands): Likewise.
1323 (op_iter_init_phiuse): Forward-declare.
1324 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
1326 2011-06-08 Nick Clifton <nickc@redhat.com>
1328 * doc/invoke.texi (ARM Options): Update description of
1331 2011-06-08 H.J. Lu <hongjiu.lu@intel.com>
1333 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1334 unknown Intel family 0x6 CPUs.
1336 2011-06-08 Martin Jambor <mjambor@suse.cz>
1338 * tree-sra.c (mark_rw_status): Removed.
1339 (analyze_access_subtree): New parameter parent instead of
1340 mark_read and mark_write, propagate from that.
1342 2011-06-08 Julian Brown <julian@codesourcery.com>
1344 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
1345 for double-precision helper functions in hard-float mode if only
1346 single-precision arithmetic is supported in hardware.
1348 2011-06-08 Alexander Monakov <amonakov@ispras.ru>
1350 PR rtl-optimization/49303
1351 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1352 code_motion_path_driver returned 0 or 1.
1353 (sel_region_finish): Clear h_d_i_d.
1355 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1357 * config/sh/sh.c (prepare_move_operands): Set pic register
1358 appropriately for global and local dynamic tls models even
1359 if flag_pic is unset.
1361 2011-06-07 Jason Merrill <jason@redhat.com>
1363 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
1365 2011-06-07 Xinliang David Li <davidxl@google.com>
1366 * passes.c (enable_disable_pass): Handle assembler name.
1367 (is_pass_explicitly_enabled_or_disabled): Ditto.
1369 2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1371 PR tree-optimization/48497
1372 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
1374 2011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1376 PR tree-optimization/46728
1377 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
1378 to use gimple_val_nonnegative_real_p.
1379 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
1380 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
1382 2011-06-07 H.J. Lu <hongjiu.lu@intel.com>
1384 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
1386 2011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
1388 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
1391 2011-06-07 Richard Guenther <rguenther@suse.de>
1393 * stor-layout.c (initialize_sizetypes): Initialize all
1394 sizetypes based on target definitions.
1395 (set_sizetype): Remove.
1396 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
1397 * tree.h (set_sizetype): Remove.
1399 2011-06-07 Nick Clifton <nickc@redhat.com>
1401 * config.gcc: Unify V850 architecture options and add support for
1402 newer V850 architectures.
1403 * config/v850/t-v850e: Delete.
1405 2011-06-07 Richard Guenther <rguenther@suse.de>
1407 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
1408 Call set_sizetype from here.
1410 2011-06-07 Andrew Stubbs <ams@codesourcery.com>
1412 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
1413 (*maddhisi4tb, *maddhisi4tt): New define_insns.
1415 2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
1416 Andrew Stubbs <ams@codesourcery.com>
1418 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
1420 * doc/md.texi (Canonicalization of Instructions): Document widening
1421 multiply canonicalization.
1423 2011-06-07 Jakub Jelinek <jakub@redhat.com>
1425 PR gcov-profile/49299
1426 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
1428 2011-06-07 Ira Rosen <ira.rosen@linaro.org>
1430 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
1432 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
1433 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
1434 vect_recog_pow_pattern): Likewise.
1435 (vect_pattern_recog_1): Remove declaration.
1436 (widened_name_p): Remove declaration. Add new argument to specify
1437 whether to check that both types are either signed or unsigned.
1438 (vect_recog_widen_mult_pattern): Update documentation. Handle
1439 unsigned patterns and multiplication by constants.
1440 (vect_pattern_recog_1): Update vect_recog_func references. Use
1441 statement information from the statement returned from pattern
1442 detection functions.
1443 (vect_pattern_recog): Update vect_recog_func reference.
1444 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
1445 multiplication by a constant use the type of the other operand.
1447 2011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
1449 PR rtl-optimization/49145
1450 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
1452 2011-06-06 Jakub Jelinek <jakub@redhat.com>
1455 * dwarf2out.c (native_encode_initializer): Decrement count in each
1459 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
1463 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
1464 if stmt folded into nothing.
1465 * tree-inline.c (fold_marked_statements): If a builtin at the end of
1466 a bb folded into nothing, just update cgraph edges and move to next bb.
1467 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
1468 to be NULL. Don't compute count and frequency if new_call is NULL.
1470 2011-06-04 Diego Novillo <dnovillo@google.com>
1472 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
1473 (cgraph.o): Likewise.
1474 (cgraphunit.o): Likewise.
1475 * cgraphunit.c: Include lto-streamer.h
1476 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
1478 * lto-streamer-in.c (unpack_value_fields): Call
1479 streamer_hooks.unpack_value_fields if set.
1480 (lto_materialize_tree): For unhandled nodes, first try to
1481 call lto_streamer_hooks.alloc_tree, if it exists.
1482 (lto_input_ts_decl_common_tree_pointers): Move reading of
1483 DECL_INITIAL to lto_streamer_read_tree.
1484 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
1485 (lto_streamer_read_tree): New.
1486 (lto_reader_init): Rename from lto_init_reader.
1487 Move initialization code to lto/lto.c.
1488 * lto-streamer-out.c (pack_value_fields): Call
1489 streamer_hooks.pack_value_fields if set.
1490 (lto_output_tree_ref): For tree nodes that are not normally indexable,
1491 call streamer_hooks.indexable_with_decls_p before giving up.
1492 (lto_output_ts_decl_common_tree_pointers): Move handling
1493 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
1494 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
1495 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
1496 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
1497 (lto_streamer_write_tree): New.
1498 (lto_output): Call lto_streamer_init directly.
1499 (lto_writer_init): Remove.
1500 * lto-streamer.c (streamer_hooks): New.
1501 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
1502 instead of lto_preload_common_nodes.
1503 (lto_is_streamable): Move from lto-streamer.h
1504 (lto_streamer_hooks_init): New.
1505 (streamer_hooks): New.
1506 (streamer_hooks_init): New.
1507 * lto-streamer.h (struct output_block): Forward declare.
1508 (struct lto_input_block): Likewise.
1509 (struct data_in): Likewise.
1510 (struct bitpack_d): Likewise.
1511 (struct streamer_hooks): Declare.
1512 (streamer_hooks): Declare.
1513 (lto_streamer_hooks_init): Declare.
1514 (lto_streamer_write_tree): Declare.
1515 (lto_streamer_read_tree): Declare.
1516 (streamer_hooks_init): Declare.
1517 (lto_is_streamable): Move to lto-streamer.c
1519 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1521 * longlong.h (smul_ppmm): The resulting register pair contains the
1522 higher order word first.
1524 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1526 PR tree-optimization/46728
1527 * builtins.c (powi_table): Remove.
1528 (powi_lookup_cost): Remove.
1529 (powi_cost): Remove.
1530 (expand_powi_1): Remove.
1531 (expand_powi): Remove.
1532 (expand_builtin_pow_root): Remove.
1533 (expand_builtin_pow): Remove.
1534 (expand_builtin_powi): Eliminate handling of constant exponent.
1535 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
1537 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
1539 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
1541 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
1543 * dce.c (reset_unmarked_insns_debug_uses): New.
1544 (delete_unmarked_insns): Skip debug insns.
1545 (prescan_insns_for_dce): Likewise.
1546 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
1547 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
1548 active reg can be found.
1549 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
1550 (convert_regs_1): Use it.
1552 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
1554 * tree-pretty-print.c (dump_function_header): Add flags.
1555 Don't dump decl_uid with nouid.
1556 * tree-pretty-print.h (dump_function_header): Adjust.
1557 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
1558 * passes.c (pass_init_dump_file): Pass dump_flags on.
1559 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
1561 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
1564 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
1566 2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
1568 PR tree-optimization/49243
1569 * calls.c (setjmp_call_p): Also check if fndecl has the
1570 returns_twice attribute.
1572 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1574 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
1577 2011-06-06 Richard Henderson <rth@redhat.com>
1578 Georg-Johann Lay <avr@gjlay.de>
1581 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
1583 * config/avr/avr.md ("insv"): New insn expander.
1584 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
1585 "*insv.not.io", "*insv.reg"): New insns.
1587 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
1590 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
1591 to nonimmediate_operand from memory_operand for the operand that is to
1592 be forced to memory by the expander. Lose the constraints.
1594 2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
1596 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
1597 EH return when delayed branches are disabled.
1599 2011-06-05 Uros Bizjak <ubizjak@gmail.com>
1601 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
1602 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
1604 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
1605 Simplify MODE_V1DF and MODE_V2SF handling.
1606 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
1607 Simplify MODE_SF handling.
1609 2011-06-04 Jan Hubicka <jh@suse.cz>
1611 PR tree-optimization/48893
1612 PR tree-optimization/49091
1613 PR tree-optimization/49179
1614 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
1617 2011-06-04 Jan Hubicka <jh@suse.cz>
1620 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
1623 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
1625 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
1627 2011-06-04 Jakub Jelinek <jakub@redhat.com>
1630 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
1631 to be strictly smaller than 1 << shiftcount.
1633 2011-06-04 Jan Hubicka <jh@suse.cz>
1635 PR tree-optimize/48929
1636 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
1639 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
1642 * calls.c (emit_call_1): Prefer the __builtin declaration of
1645 2011-06-03 Diego Novillo <dnovillo@google.com>
1647 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
1648 (lto_input_tree_pointers): Likewise.
1649 * lto-streamer-out.c (pack_value_fields): Likewise.
1650 (lto_output_tree_pointers): Likewise.
1651 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
1652 and OPTIMIZATION_NODE.
1654 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1656 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
1657 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
1658 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
1659 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
1660 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
1661 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
1662 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
1663 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
1664 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
1665 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
1666 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
1667 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
1668 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
1669 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
1670 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
1671 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
1672 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
1673 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
1674 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
1675 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
1676 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
1677 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
1678 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
1679 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
1680 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
1681 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
1682 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
1683 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
1684 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
1685 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
1686 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
1687 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
1688 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
1689 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
1690 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
1691 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
1692 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
1693 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
1694 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
1695 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
1696 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
1697 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
1698 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
1699 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
1700 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
1701 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
1702 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
1703 * system.h (MD_UNWIND_SUPPORT): Poison.
1704 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
1705 * doc/tm.texi: Regenerate.
1706 * unwind-dw2.c: Include md-unwind-support.h instead of
1708 * config/ia64/unwind-ia64.c: Likewise.
1709 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
1711 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
1713 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
1715 2011-06-03 Richard Henderson <rth@redhat.com>
1716 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1718 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
1719 (sigill_hdlr): Correct insn, insn size.
1720 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
1722 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1724 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
1726 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
1727 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
1728 * config/mips/t-iris: Remove.
1729 * config/mips/t-irix6: New file.
1730 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
1732 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1734 * Makefile.in (LIB2ADDEHDEP): Remove.
1735 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
1736 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
1737 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
1738 * config/t-darwin (LIB2ADDEHDEP): Remove.
1739 * config/t-freebsd (LIB2ADDEHDEP): Remove.
1740 * config/t-linux (LIB2ADDEHDEP): Remove.
1742 2011-06-03 Diego Novillo <dnovillo@google.com>
1744 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
1745 (lto_register_var_decl_in_symtab): Likewise.
1746 (lto_register_function_decl_in_symtab): Likewise.
1747 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
1748 logic to uniquify_nodes.
1750 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1752 * config/alpha/t-osf5: Remove.
1753 * config/alpha/t-osf-pthread: Remove.
1754 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
1755 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
1757 2011-06-03 Julian Brown <julian@codesourcery.com>
1759 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
1760 (strongarm1110): Use strongarm tuning.
1761 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
1762 * config/arm/arm.c (arm_strongarm_tune): New.
1763 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
1764 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
1765 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
1766 setting, using previous defaults or 1 for Cortex-A5.
1767 (arm_option_override): Set max_insns_skipped from current tuning.
1769 2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
1771 * doc/install.texi (Options specification): Document --with-specs.
1773 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1775 * config/arm/neon.md (orndi3_neon): Actually split it.
1777 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
1779 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
1780 * var-tracking.c (reverse_op): Limite recurse depth to 5.
1782 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
1785 * target.def (delay_sched2, delay_vartrack): New.
1786 * doc/tm.texi.in: Update.
1787 * doc/tm.texi: Rebuild.
1788 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
1789 * var-tracking.c (gate_handle_var_tracking): Likewise.
1790 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
1791 (bfin_flag_var_tracking): Drop.
1792 (output_file_start): Don't save and override flag_var_tracking.
1793 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
1794 (bfin_reorg): Test original variables.
1795 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
1796 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
1797 (ia64_flag_var_tracking): Drop.
1798 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
1799 (ia64_file_start): Don't save and override flag_var_tracking.
1800 (ia64_override_options_after_change): Ditto
1801 flag_schedule_insns_after_reload.
1802 (ia64_reorg): Test original variables.
1803 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
1804 (picochip_flag_var_tracking): Drop.
1805 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
1806 (picochip_option_override): Don't save and override
1807 flag_schedule_insns_after_reload.
1808 (picochip_asm_file_start): Ditto flag_var_tracking.
1809 (picochip_reorg): Test original variables.
1810 * config/spu/spu.c (spu_flag_var_tracking): Drop.
1811 (TARGET_DELAY_VARTRACK): Define.
1812 (spu_var_tracking): New.
1813 (spu_machine_dependent_reorg): Call it.
1814 (asm_file_start): Don't save and override flag_var_tracking.
1816 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1819 * config/sh/predicates.md (general_movsrc_operand): Return 0
1820 for memory and memory subreg of which address is an invalid
1821 indexed address for QI and HImode.
1822 (general_movdst_operand): Likewise.
1824 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
1826 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
1827 edges only, when there is a non-local label in the function.
1828 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
1830 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
1832 * config/i386/constraints.md (Y3): New register constraint.
1833 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
1834 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
1835 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
1836 *sse2_interleave_lowv2df.
1838 2011-06-02 Julian Brown <julian@codesourcery.com>
1840 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
1841 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
1842 (arm_cortex_a5_tune): New.
1844 2011-06-02 Julian Brown <julian@codesourcery.com>
1846 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
1847 * config/arm/arm.c (arm_default_branch_cost): New.
1848 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
1849 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
1850 (arm_fa726_tune): Set branch_cost field using
1851 arm_default_branch_cost.
1852 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
1853 current_tune structure.
1854 * dojump.c (tm_p.h): Include file.
1856 2011-06-02 Julian Brown <julian@codesourcery.com>
1858 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
1860 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
1861 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
1862 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
1864 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
1865 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
1866 (arm_fa726te_tune): Add prefer_constant_pool setting.
1867 (arm_v6t2_tune, arm_cortex_tune): New.
1868 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
1869 prefer_constant_pool setting.
1871 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
1873 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
1875 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
1876 (*movdf_internal) <case 6,7,8>: Ditto.
1878 * config/i386/constraints.md (Y4): New register constraint.
1879 * config/i386/sse.md (vec_set<mode>_0): Merge with
1880 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
1881 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
1882 *vec_extractv2di_1_sse.
1883 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
1884 and *vec_concatv2di_rex64_sse.
1886 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
1889 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
1890 of cgraph_local_info for null before attempting to use it.
1892 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
1894 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
1895 (current_function_dynamic_alloc_count): Delete.
1896 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
1897 (expand_builtin_nonlocal_goto): Remove obsolete comment.
1898 (expand_builtin_update_setjmp_buf): Remove dead code.
1899 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
1900 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
1902 * function.c (instantiate_virtual_regs): Likewise.
1903 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
1904 for a block with a single abnormal incoming edge.
1905 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
1906 (SETJMP_VIA_SAVE_AREA): Delete.
1907 * config/sparc/sparc-protos.h (load_got_register): Declare.
1908 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1909 (load_got_register): Make global.
1910 (sparc_frame_pointer_required): Add 'static'.
1911 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
1912 (sparc_builtin_setjmp_frame_value): New function.
1913 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
1914 (save_stack_nonlocal): New expander.
1915 (restore_stack_nonlocal): Likewise.
1916 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
1917 (nonlocal_goto_internal): New insn.
1918 (goto_handler_and_restore): Delete.
1919 (builtin_setjmp_setup): Likewise.
1920 (do_builtin_setjmp_setup): Likewise.
1922 (builtin_setjmp_receiver): New expander.
1924 2011-06-01 David Li <davidxl@google.com>
1927 * tree-pretty-print.c (dump_function_header): Format cleanup.
1929 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
1932 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
1933 needed when original operands are used for msw_skip comparison.
1935 2011-06-01 Jakub Jelinek <jakub@redhat.com>
1938 * var-tracking.c (add_uses, add_stores): Don't call
1939 cselib_subst_to_values on ENTRY_VALUE.
1941 2011-06-01 Diego Novillo <dnovillo@google.com>
1943 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
1944 output_record_start with LTO_null instead of output_zero.
1945 (lto_output_ts_binfo_tree_pointers): Likewise.
1946 (lto_output_tree): Likewise.
1947 (output_eh_try_list): Likewise.
1948 (output_eh_region): Likewise.
1949 (output_eh_lp): Likewise.
1950 (output_eh_regions): Likewise.
1951 (output_bb): Likewise.
1952 (output_function): Likewise.
1953 (output_unreferenced_globals): Likewise.
1954 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
1955 instead of NUM_TREE_CODES.
1956 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
1957 (lto_output_int_in_range): Change << to >> when shifting VAL.
1959 2011-06-01 Diego Novillo <dnovillo@google.com>
1961 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
1962 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
1964 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1967 * optabs.h (valid_multiword_target_p): Declare.
1968 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
1969 doing multi-word operations.
1970 * optabs.c (expand_binop): Likewise.
1971 (expand_doubleword_bswap): Likewise.
1972 (expand_absneg_bit): Likewise.
1973 (expand_unop): Likewise.
1974 (expand_copysign_bit): Likewise.
1975 (multiword_target_p): New function.
1977 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1979 PR rtl-optimization/48830
1980 PR rtl-optimization/48808
1981 PR rtl-optimization/48792
1982 * reload.c (push_reload): Check contains_reg_of_mode.
1983 * reload1.c (strip_paradoxical_subreg): New function.
1984 (gen_reload_chain_without_interm_reg_p): Use it to handle
1985 paradoxical subregs.
1986 (emit_output_reload_insns, gen_reload): Likewise.
1988 2011-06-01 David Li <davidxl@google.com>
1990 * predict.c : Change pass name
1993 * tree-profile.c: Ditto.
1996 2011-06-01 David Li <davidxl@google.com>
1998 * tree-pretty-print.c (dump_function_header): New function.
1999 * final.c (rest_of_clean_state): Use header dumper.
2000 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
2001 * passes.c (pass_init_dump_file): Use header dumper.
2003 2011-06-01 Jakub Jelinek <jakub@redhat.com>
2005 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
2006 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
2007 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
2009 (mem_loc_descriptor): Use them.
2011 * var-tracking.c (create_entry_value): New function.
2012 (vt_add_function_parameter): Use it.
2014 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2016 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
2017 Include <signal.h>, <ucontext.h>.
2018 (sigill_caught): Define.
2019 (sigill_hdlr): New function.
2020 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
2021 insns can be executed.
2022 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
2023 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
2025 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2027 * config/t-slibgcc-darwin: Move to ...
2028 * config/t-slibgcc-dummy: ... this. Clarify comments.
2029 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
2030 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
2031 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
2032 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
2033 Remove i386/t-crtstuff from tmake_file.
2034 (i[34567]86-*-solaris2*): Remove t-svr4,
2035 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
2037 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
2038 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
2039 sparc/t-crtfm from tmake_file.
2040 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
2041 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
2043 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
2044 * config/i386/t-nwld (SHLIB_LINK): Remove.
2045 * config/i386/t-rtems-i386: Rename to ...
2046 * config/i386/t-rtems: ... this.
2047 ($(T)crti.o, $(T)crtn.o): Remove.
2048 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
2049 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
2050 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
2051 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
2052 EXTRA_MULTILIB_PARTS): Remove.
2053 * config/sparc/t-sol2-64: Likewise.
2054 * config/sparc/t-sol2: Remove.
2055 * config/sparc/t-crtin: Remove.
2056 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
2057 * config/i386/gmon-sol2.c: Remove.
2058 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
2059 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
2060 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
2061 * config/i386/sol2-gc1.asm: Remove.
2062 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
2063 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
2064 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
2065 * config/t-slibgcc-sld: Remove.
2067 2011-06-01 Jakub Jelinek <jakub@redhat.com>
2069 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
2070 base_type_for_mode with op_mode instead of mode.
2072 2011-06-01 Paul Brook <paul@cpodesourcery.com>
2074 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
2076 * config/arm/arm-tune.md: Regenerate.
2077 * config/arm/arm-tables.opt: Regenerate.
2078 * config/arm/arm.c (FL_DIV): Rename...
2079 (FL_THUMB_DIV): ... to this.
2080 (FL_ARM_DIV): Define.
2081 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
2082 (arm_arch_hwdiv): Remove.
2083 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
2084 (arm_issue_rate): Add cortexr5.
2085 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
2086 __ARM_ARCH_EXT_IDIV__.
2087 (TARGET_IDIV): Define.
2088 (arm_arch_hwdiv): Remove.
2089 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
2090 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
2091 (divsi3, udivsi3): New patterns.
2092 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
2093 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
2095 2011-06-01 Martin Jambor <mjambor@suse.cz>
2097 * ipa-utils.c (ipa_dfs_info): New field scc_no.
2098 * ipa-utils.c (searchc): Set scc_no.
2100 2011-06-01 Martin Jambor <mjambor@suse.cz>
2102 * ipa-utils.c (searchc_env): New field allow_overwritable.
2103 (searchc): do not ignore edges to overwritable nodes if indicated
2104 by env->allow_overwritable.
2105 (ipa_reduced_postorder): Set env.allow_overwritable.
2107 2011-06-01 Richard Guenther <rguenther@suse.de>
2109 * tree.c (free_lang_data): Do not reset boolean_type_node nor
2111 * lto-streamer.c (lto_record_common_node): Take node pointer,
2112 do not register types.
2113 (lto_preload_common_nodes): Explicitly skip preloading nodes
2114 that differ between frontends.
2116 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
2118 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
2121 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
2123 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
2124 parameter value for dump. Dump cost on outermost call only.
2125 (rs6000_memory_move_cost): Dump cost on outermost call only.
2127 2011-05-31 Jakub Jelinek <jakub@redhat.com>
2129 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
2130 DW_OP_GNU_convert ops.
2132 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
2133 cselib_preserve_constants.
2134 (cselib_lookup_1): If cselib_preserve_constants,
2135 a new VALUE is being created for REG and there is a VALUE for the
2136 same register in wider mode, add another loc with lowpart SUBREG of
2138 (cselib_subst_to_values): Handle ENTRY_VALUE.
2139 * var-tracking.c (replace_expr_with_values): Return NULL for
2141 * dwarf2out.c (convert_descriptor_to_signed): New function.
2142 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
2143 instead of two shifts.
2144 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
2145 the right mode if needed.
2146 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
2147 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
2148 convert_descriptor_to_signed.
2149 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
2150 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
2153 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
2155 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
2157 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
2158 of X87MODEI12 and SWI48x instead of SSEMODEI24.
2159 (SWI248x): New mode iterator, rename from X87MODEI.
2160 (X87MODEI): Remove mode iterator.
2161 (X87MODEI12): Ditto.
2162 (SSEMODEI24): Ditto.
2164 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
2166 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
2167 * doc/invoke.texi: Document max-vartrack-expr-depth.
2168 * var-tracking.c (EXPR_DEPTH): New.
2169 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
2171 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
2173 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
2174 * config/i386/sse.md: Add n to negated FMA pattern names.
2176 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
2178 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
2180 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
2182 * gengtype-state.c (read_state_params_structs): Initialize previous.
2184 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
2186 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
2187 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
2189 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
2191 * config/i386/i386.md (*movtf_internal): Avoid allocating general
2192 registers. Penalize F*r->o alternative to prevent partial memory
2193 stalls. Slightly penalize *roF->*r alternative. Generate SSE
2194 CONST_DOUBLE immediates when optimizing function for size. Do not move
2195 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
2196 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
2197 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
2198 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
2200 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
2202 (fp_register_operand splitters): Use fp_register_operand
2203 constraint. Do not use FP_REG_P in insn condition.
2204 (any_fp_register_operand splitters): Use any_fp_register_operand
2205 constraint. Do not use ANY_FP_REG_P in insn condition.
2207 2011-05-31 Jan Hubicka <jh@suse.cz>
2209 * cgraph.h (cgraph_inline_failed_t): Give enum a name
2210 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
2211 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
2212 (lto_output_edge): Use output_enum and var_len_unsigned.
2213 (lto_output_varpool_node): Likewise.
2214 (input_overwrite_node): Do not take resolution parameter;
2215 extract it from a bitpack.
2216 (input_node): Do not read resolution; use input_enum and
2218 (input_varpool_node): Likewise.
2219 (input_edge): Likewise.
2220 (input_cgraph_1): Likewise.
2222 2011-05-31 Richard Guenther <rguenther@suse.de>
2224 * gimple.c (gimple_register_canonical_type): Do not register
2225 any types via gimple_register_type.
2227 2011-05-31 Jan Hubicka <jh@suse.cz>
2229 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
2232 2011-05-31 Jakub Jelinek <jakub@redhat.com>
2234 PR rtl-optimization/49235
2235 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
2236 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
2238 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
2240 PR tree-optimization/49093
2241 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
2244 2011-05-31 Dodji Seketeli <dodji@redhat.com>
2247 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
2248 for concrete functions containing the code of cloned functions.
2250 2011-05-31 Richard Guenther <rguenther@suse.de>
2252 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
2254 (forward_propagate_into_comparison_1): ... this.
2255 (forward_propagate_comparison): Rename to ...
2256 (forward_propagate_into_comparison): ... this. Split out
2257 real forward propagation code to ...
2258 (forward_propagate_comparison): ... this.
2259 (forward_propagate_into_gimple_cond): Remove looping.
2260 (forward_propagate_into_cond): Likewise.
2261 (simplify_not_neg_expr): Return whether we have done something.
2262 (simplify_gimple_switch): Likewise.
2263 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
2264 (ssa_forward_propagate_and_combine): ... this. Re-structure
2265 to do a forward forward-propagation walk on BBs and a backward
2266 stmt combining walk on BBs. Consistently re-scan changed statements.
2267 (pass_forwprop): Adjust.
2269 2011-05-30 Ian Lance Taylor <iant@google.com>
2271 * godump.c (go_format_type): Correct length of name added to
2272 obstack for anonymous field.
2274 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
2277 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
2278 part of the second operand is 0.
2280 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
2282 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
2283 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
2284 to memory for !TARGET_MEMORY_MISMATCH_STALL.
2285 (*movdf_internal_rex64): Do not penalize F->r alternative.
2286 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
2287 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
2288 when optimizing function for size. Do not move CONST_DOUBLEs
2289 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
2290 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
2291 SUBREGs. Do not check for MEM_P operands in the insn condition,
2292 check for ANY_FP_REGNO_P instead.
2293 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
2294 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
2296 * config/i386/i386.c (ix86_option_override_internal): Do not
2297 set TARGET_INTEGER_DFMODE_MOVES here.
2299 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
2302 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
2304 2011-05-30 Jakub Jelinek <jakub@redhat.com>
2306 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
2307 DW_TAG_rvalue_reference_type even for
2308 -gdwarf-4 -fno-debug-types-section.
2310 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2312 PR tree-optimization/46728
2313 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
2314 (build_and_insert_binop): New.
2315 (gimple_expand_builtin_pow): Reorder args for
2316 build_and_insert_call; use build_and_insert_binop; add more
2317 optimizations for fractional exponents.
2319 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
2324 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2326 * tree.h (struct tree_identifier): Inherit from tree_typed, not
2328 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
2329 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
2330 TS_BASE instead of TS_COMMON.
2331 * varasm.c (assemble_name): Remove assert.
2333 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
2335 * config.gcc: Keep obselete list sorted.
2337 2011-05-30 Jakub Jelinek <jakub@redhat.com>
2338 Eric Botcazou <ebotcazou@adacore.com>
2340 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
2341 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
2342 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
2343 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
2344 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
2346 2011-05-30 Richard Guenther <rguenther@suse.de>
2348 * gimple.c (gimple_types_compatible_p_1): Compare record
2349 and union type members properly.
2351 2011-05-30 Richard Guenther <rguenther@suse.de>
2353 PR tree-optimization/49210
2354 * ipa-split.c (split_function): Care for the case where the call
2355 result is not trivially convertible to the result holding variable.
2357 2011-05-30 Richard Guenther <rguenther@suse.de>
2359 PR tree-optimization/49218
2360 * tree-vrp.c (adjust_range_with_scev): Properly check whether
2363 2011-05-30 Richard Guenther <rguenther@suse.de>
2365 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
2366 New function split out from ...
2367 (forward_propagate_into_gimple_cond): ... here. Adjust.
2368 (forward_propagate_into_cond): Likewise.
2369 (forward_propagate_comparison): Also propagate into
2370 comparisons on assignment RHS. Change return value to
2371 behave similar to forward_propagate_into_cond.
2372 (tree_ssa_forward_propagate_single_use_vars): Handle
2373 strict-overflow warnings properly for forward_propagate_comparison.
2375 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2377 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
2379 * configure: Regenerate.
2381 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
2383 PR tree-optimization/49199
2384 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
2385 non-reduction operands are either defined in the loop or by induction.
2387 2011-05-29 Xinliang David Li <davidxl@google.com>
2389 * opts-global.c (handle_common_deferred_options): Handle new options.
2390 * passes.c (register_one_dump_file): Call register_pass_name.
2391 (execute_one_pass): Check explicit enable/disable flag.
2392 (passr_hash): New function.
2394 (register_pass_name): Ditto.
2395 (get_pass_by_name): Ditto.
2398 (enable_pass): Ditto.
2399 (disable_pass): Ditto.
2400 (is_pass_explicitly_enabled_or_disabled): Ditto.
2402 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
2404 * config/i386/i386.md (*movoi_internal_avx): Use
2405 standard_sse_constant_opcode for alternative 0.
2406 (*movti_internal_sse): Ditto.
2407 (*movti_internal_rex64): Use standard_sse_constant_opcode for
2409 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
2411 (*movsi_internal): Ditto.
2412 (*movdi_internal): Ditto. Add ssecvt type moves.
2414 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
2417 * rtlanal.c (simplify_subreg_regno): Adjust comment.
2419 2011-05-29 Jakub Jelinek <jakub@redhat.com>
2421 PR rtl-optimization/49095
2422 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
2423 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
2425 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
2428 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
2429 recurse_p argument. Only follow register copies if it is set,
2430 and prevent mips_find_pic_call_symbol from recursing.
2431 (mips_find_pic_call_symbol): Add a recurse_p argument.
2432 Pass it to mips_pic_call_symbol_from_set.
2433 (mips_annotate_pic_calls): Update accordingly.
2435 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
2437 * emit-rtl.c (try_split): Use a loop to search for
2438 NOTE_INSN_CALL_ARG_LOCATIONs.
2440 2011-05-29 Richard Guenther <rguenther@suse.de>
2442 PR tree-optimization/49217
2443 * ipa-pure-const.c (propagate_pure_const): Fix typos.
2445 2011-05-28 Jan Hubicka <jh@suse.cz>
2447 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
2449 (string_slot_free): Remove
2450 (create_output_block): Initialize obstack.
2451 (destroy_output_block): Free obstack.
2452 (lto_string_index): Add PERSISTENT parameter; do not duplicate
2453 the string unless it needs to be added into the hash.
2454 (lto_output_string_with_length): Add persistent attribute;
2455 handle NULL strings.
2456 (lto_output_string): Add PERSISTENT parameter.
2457 (output_string_cst, output_identifier): Simplify.
2458 (lto_output_location_bitpack): Update.
2459 (lto_output_builtin_tree): Update.
2460 * lto-streamer.h (struct output_block): Add obstack.
2461 (lto_output_string, lto_output_string_with_length): Remove
2462 declarations; functions are static now.
2464 2011-05-28 Jan Hubicka <jh@suse.cz>
2466 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
2467 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
2468 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
2469 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
2470 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
2471 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
2472 unpack_ts_decl_with_vis_value_fields,
2473 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
2474 lto_get_builtin_tree): Use enum and variable length i/o.
2475 * basic-block.h (profile_status_d): Add PROFILE_LAST.
2476 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
2478 (bp_pack_enum, bp_unpack_enum): New macros.
2480 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2482 * genrecog.c: Remove redundant forward declarations.
2484 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2486 * config.gcc: Deprecate mips*-*-openbsd*.
2488 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2491 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
2494 2011-05-27 Andrew Pinski <pinskia@gmail.com>
2497 * gengtype.c (vec_prefix_type): New function.
2498 (note_def_vec): Use vec_prefix_type and change the length
2499 attribute to be based on the prefix.
2500 * vec.c: Include coretypes.h before vec.h.
2501 (struct vec_prefix): Remove.
2502 (vec_gc_p_reserve): Change the offsetof to sizeof.
2503 (vec_gc_p_reserve_exact): Likewise.
2504 (vec_heap_p_reserve): Likewise.
2505 (vec_heap_p_reserve_exact): Likewise.
2506 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
2507 (vec_stack_p_reserve): Change the offsetof to sizeof.
2508 (vec_stack_p_reserve_exact): Likewise.
2509 * vec.h (struct vec_prefix): New struct definition.
2510 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
2511 (VEC_T_GTY(T,B)): Likewise.
2512 (DEF_VEC_FUNC_P(T)): Use prefix field.
2513 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
2514 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
2516 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2518 PR tree-optimization/46728
2519 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
2520 (powi_as_mults): Add gimple_set_location.
2521 (build_and_insert_call): New.
2522 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
2523 0.5, 0.25, 0.75, 1./3., or 1./6.
2525 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
2527 * doc/contrib.texi: Update copyright years.
2528 (Contributors): Add Zdenek Sojka.
2530 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
2532 * c-decl.c (c_push_function_context): Copy the current statement
2534 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
2535 (finish_struct): Call building_stmt_list_p instead of checking
2537 * c-parser.c (c_parser_postfix_expression): Likewise.
2538 * c-typeck.c (c_end_compound_stmt): Likewise.
2539 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
2540 * tree-iterator.c (stmt_list_cache): Change to a VEC.
2541 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
2542 (free_stmt_list): Likewise.
2543 * tree.h (struct tree_statement_list): Include typed_tree instead
2545 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
2546 as TS_TYPED instead of TS_COMMON.
2548 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2549 Uros Bizjak <ubizjak@gmail.com>
2551 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
2552 (HAVE_AS_IX86_TLSGDPTL): Define.
2553 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
2554 (HAVE_AS_IX86_TLSLDMPLT): Define.
2555 * configure: Regenerate.
2556 * config.in: Regenerate.
2557 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
2558 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
2559 TARGET_SUN_TLS, use @tlsgdplt or @plt.
2560 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
2561 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
2563 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
2565 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
2567 * sched-int.h (struct _haifa_deps_insn_data): New members cond
2569 (INSN_COND, INSN_REVERSE_COND): New macros.
2570 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
2572 (sched_get_condition_with_rev): Cache the results, and look them up
2574 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
2575 are clobbered by the current insn.
2576 * target.def (exposed_pipline): New sched data hook.
2577 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
2578 * doc/tm.texi: Regenerate.
2580 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2582 PR tree-optimization/49170
2583 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
2586 2011-05-27 Richard Guenther <rguenther@suse.de>
2589 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
2592 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
2594 * haifa-sched.c (sched_scan_info): Remove.
2595 (schedule_block): Call sched_extend_luids rather than sched_init_luids
2597 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
2599 (sched_scan): Remove.
2600 (sched_extend_luids): Renamed from luids_extend_insn and no longer
2601 static. All callers changed.
2602 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
2603 static. All callers changed.
2604 (sched_init_luids): Remove all arguments except the first. All
2605 callers changed. Don't use sched_scan.
2606 (haifa_init_h_i_d): Likewise.
2607 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
2608 manually rather than using sched_init_luids. Likewise with
2609 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
2610 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
2611 rather than sched_init_luids with NULL args.
2612 * sel-sched-ir.c (new_insns): Remove variable.
2613 (sched_scan): New static function, previously in haifa-sched.c. Remove
2614 all arguments but the first two; all callers changed.
2615 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
2616 rather than sched_init_luids.
2617 (sel_init_bbs): Remove second argument. All callers changed.
2618 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
2619 with NULL arguments.
2620 (create_insn_rtx_from_pattern): Likewise.
2621 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
2622 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
2623 (sched_init_insn_luid, sched_extend_luids): Declare.
2624 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
2627 2011-05-27 Richard Guenther <rguenther@suse.de>
2630 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
2631 A CMP B ? (T) true : (T) false for non-integral types T again.
2633 2011-05-27 Jan Hubicka <jh@suse.cz>
2635 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
2636 so 0 means NULL string.
2637 (lto_output_string_with_length): ... here.
2638 (lto_output_string, output_string_cst, output_identifier): Update
2639 handling of NULL strings.
2640 (lto_output_location_bitpack): New function.
2641 (lto_output_location): Use it.
2642 (lto_output_tree_ref): Use output_record_start.
2643 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
2645 * lto-streamer-in.c (string_for_index): Break out from ...; offset
2647 (input_string_internal): ... here;
2648 (input_string_cst, input_identifier, lto_input_string): Update handling
2650 (lto_input_location_bitpack): New function
2651 (lto_input_location): Use it.
2652 (unpack_ts_type_common_value_fields): Pack align & alias in var len
2654 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
2655 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
2656 (bp_pack_value): Sanity check the value range.
2657 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
2659 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
2662 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
2664 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
2665 call_arg_location instructions down the floor.
2667 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
2669 PR rtl-optimization/49154
2670 * ira.c (setup_pressure_classes): Process class without sublcasses
2671 as a candidate for pressure classes.
2673 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
2675 PR rtl-optimization/48575
2676 * genrecog.c (position_type): New enum.
2677 (position): New structure.
2678 (decision): Use position structure instead of a string.
2679 (root_pos, peep2_insn_pos_list): New variables.
2680 (next_position, compare_positions): New functions.
2681 (new_decision): Use position structures instead of strings.
2682 (maybe_both_true): Likewise.
2683 (change_state): Likewise.
2684 (write_tree): Likewise.
2685 (make_insn_sequence): Likewise.
2687 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2689 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
2690 TS_BASE instead of TS_COMMON.
2691 (find_decls_types_r): Check for TS_TYPED structure before looking at
2693 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
2695 (BLOCK_CHAIN): Use new chain field.
2697 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
2699 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
2700 moves expensive on Power7 also.
2702 2011-05-26 Richard Guenther <rguenther@suse.de>
2704 * fold-const.c (fold_unary_loc): Remove bogus code.
2706 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2708 * tree.h (struct tree_identifier): Inherit from tree_typed, not
2710 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
2711 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
2712 TS_BASE instead of TS_COMMON.
2713 * varasm.c (assemble_name): Remove assert.
2715 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
2717 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
2719 * libgcc-std.ver: Delete file.
2721 2011-05-26 Richard Guenther <rguenther@suse.de>
2723 PR tree-optimization/48702
2724 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
2725 only when we know the base address is within bounds.
2726 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
2727 assume the base address of TARGET_MEM_REFs is in bounds.
2729 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2732 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
2733 declaration in TARGET_SOLARIS.
2735 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
2737 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
2738 The instruction is then expanded explicitly.
2739 (supported_compare): Callable instruction.
2740 (compare): Likewise.
2742 2011-05-26 Jakub Jelinek <jakub@redhat.com>
2745 * gimplify.c (shortcut_cond_r): Don't special case
2746 COND_EXPRs if they have void type on one of their arms.
2748 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
2750 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
2751 to reduce duplication, and to achieve a slightly more logical order
2754 2011-05-26 Jakub Jelinek <jakub@redhat.com>
2756 PR tree-optimization/49161
2757 * tree-vrp.c (struct case_info): New type.
2758 (compare_case_labels): Sort case_info structs instead of
2759 trees, and not primarily by CASE_LABEL uids but by
2760 label_for_block indexes.
2761 (find_switch_asserts): Put case labels into struct case_info
2762 array instead of TREE_VEC, adjust sorting, compare label_for_block
2763 values instead of CASE_LABELs.
2765 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2767 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
2768 ("orndi3_neon"): Likewise.
2769 ("bic<mode>3_neon"): Likewise.
2771 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
2773 PR tree-optimization/49038
2774 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
2775 Ensure at least one epilogue iteration if required by data
2777 * tree-vectorizer.h (struct _loop_vec_info): Add new field
2778 to mark loops that require peeling for gaps.
2779 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
2780 (vect_get_known_peeling_cost): Take peeling for gaps into
2782 (vect_transform_loop): Generate epilogue if required by data
2784 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
2785 loop as requiring an epilogue if there are gaps in the end of
2788 2011-05-25 Ian Lance Taylor <iant@google.com>
2790 * godump.c (go_format_type): Output the first field with a usable
2793 2011-05-25 Ian Lance Taylor <iant@google.com>
2795 * godump.c (go_format_type): Check for invalid type names, pointer
2796 target types, and struct field types.
2798 2011-05-25 Jason Merrill <jason@redhat.com>
2800 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
2802 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
2804 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
2806 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2808 * config/i386/i386.md (*movqi_extv_1)): Put back
2809 "register_operand" check in "type" calculation.
2810 (*movqi_extzv_2): Likewise.
2812 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2814 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
2816 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
2819 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
2820 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
2821 __divxc3, __divtc3): Wrap definitions in #ifndef.
2823 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2826 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
2827 "register_operand" check and replace q_regs_operand with
2828 QIreg_operand in "type" calculation.
2829 (*movqi_extv_1): Likewise.
2830 (*movqi_extzv_2_rex64): Likewise.
2831 (*movqi_extzv_2): Likewise.
2833 * config/i386/predicates.md (QIreg_operand): New.
2835 2011-05-25 Richard Guenther <rguenther@suse.de>
2837 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
2838 type-based offset disambiguation, streamline MEM_REF and
2839 TARGET_MEM_REF handling.
2841 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2843 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
2844 (bdesc_special_args): Add pause intrinsic.
2846 * config/i386/i386.md (UNSPEC_PAUSE): New.
2849 * config/i386/ia32intrin.h (__pause): Likewise.
2851 * doc/extend.texi (X86 Built-in Functions): Add documentation for
2854 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2856 PR tree-optimization/46728
2857 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
2858 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
2860 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
2862 * tree.h (struct tree_exp): Inherit from struct tree_typed.
2863 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
2864 instead of TS_COMMON.
2866 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
2868 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
2869 LIBGCC2_GNU_PREFIX is defined.
2871 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
2872 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
2873 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
2874 __clz_tab): Define using __N.
2875 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
2876 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
2877 * target.def (libfunc_gnu_prefix): New hook.
2878 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
2879 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
2880 * doc/tm.texi: Regenerate.
2881 * system.h (LIBGCC2_GNU_PREFIX): Poison.
2882 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
2884 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
2885 (init_optabs): Likewise for the bswap libfuncs.
2886 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
2888 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
2889 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
2890 * libgcc-std.ver: Remove.
2891 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
2892 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
2894 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
2895 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
2896 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
2897 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
2898 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
2899 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
2900 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
2901 * config/fixed-bit.h (FIXED_OP): Define differently depending on
2902 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
2903 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
2905 2011-05-25 Jan Hubicka <jh@suse.cz>
2907 * lto-streamer-out.c (output_record_start): Use lto_output_enum
2908 (lto_output_tree): Use output_record_start.
2909 * lto-streamer-in.c (input_record_start): Use lto_input_enum
2910 (lto_get_pickled_tree): Use input_record_start.
2911 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
2912 (lto_value_range_error): New function.
2913 * lto-streamer.h (lto_value_range_error): Declare.
2914 (lto_output_int_in_range, lto_input_int_in_range): New functions.
2915 (lto_output_enum, lto_input_enum): New macros.
2917 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
2919 * common.opt (flag_stack_usage_info): New variable.
2920 (-Wstack-usage): New option.
2921 * doc/invoke.texi (Warning options): Document -Wstack-usage.
2922 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
2923 <OPT_fstack_usage>: Likewise.
2924 * toplev.c (output_stack_usage): Handle -Wstack-usage.
2925 * calls.c (expand_call): Test flag_stack_usage_info variable instead
2926 of flag_stack_usage.
2927 (emit_library_call_value_1): Likewise.
2928 * explow.c (allocate_dynamic_stack_space): Likewise.
2929 * function.c (instantiate_virtual_regs ): Likewise.
2930 (prepare_function_start): Likewise.
2931 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
2932 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
2933 * config/arm/arm.c (arm_expand_prologue): Likewise.
2934 (thumb1_expand_prologue): Likewise.
2935 * config/avr/avr.c (expand_prologue): Likewise.
2936 * config/i386/i386.c (ix86_expand_prologue): Likewise.
2937 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2938 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
2939 * config/mips/mips.c (mips_expand_prologue): Likewise.
2940 * config/pa/pa.c (hppa_expand_prologue): Likewise.
2941 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2942 * config/s390/s390.c (s390_emit_prologue): Likewise.
2943 * config/sh/sh.c (sh_expand_prologue): Likewise.
2944 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2945 * config/spu/spu.c (spu_expand_prologue): Likewise.
2947 2011-05-25 Richard Guenther <rguenther@suse.de>
2949 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
2950 (gimple_canonical_types_compatible_p): Likewise.
2952 2011-05-25 Jan Hubicka <jh@suse.cz>
2955 * ipa.c (function_and_variable_visibility): Only add to same
2956 comdat group list if DECL_ONE_ONLY.
2958 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
2960 PR rtl-optimization/49014
2961 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
2963 2011-05-25 Jakub Jelinek <jakub@redhat.com>
2966 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
2968 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
2970 PR rtl-optimization/48757
2971 * ira-build.c (loop_with_eh_edge_p): Rename to
2972 loop_with_complex_edge_p, check edges on complexity, make function
2974 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
2977 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
2979 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
2980 force flag_ira_share_save_slots to 0.
2982 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
2984 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
2985 (vt_initialize): Set PROLOGUE_BB unconditionally.
2986 Add block comment about CFA_BASE_RTX machinery.
2987 Reset FP_CFA_OFFSET to -1 on all invalid paths.
2988 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
2990 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
2993 * c-parser.c (c_parser_objc_class_instance_variables): More robust
2994 parsing of syntax error in ObjC instance variable lists. In
2995 particular, avoid an infinite loop if there is a stray ']'.
2996 Updated error message.
2998 2011-05-24 Ian Lance Taylor <iant@google.com>
3000 * godump.c (go_define): Don't accept a string immediately after
3003 2011-05-24 Ian Lance Taylor <iant@google.com>
3005 * godump.c (struct godump_container): Add invalid_hash field.
3006 (go_format_type): Return false if type is found in invalid_hash.
3007 (go_output_typedef): Add invalid type to invalid_hash.
3008 (go_finish): Create and delete invalid_hash.
3010 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3012 PR tree-optimization/46728
3013 * tree-ssa-math-opts.c (powi_table): New.
3014 (powi_lookup_cost): New.
3016 (powi_as_mults_1): New.
3017 (powi_as_mults): New.
3018 (gimple_expand_builtin_powi): New.
3019 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
3020 (gate_cse_sincos): Remove sincos/cexp restriction.
3022 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3025 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
3027 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
3028 * mips-tdump.c: Likewise.
3030 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
3033 * config/i386/driver-i386.c (host_detect_local_cpu): Always
3034 add -mno-XXX. Handle FMA.
3036 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
3038 PR rtl-optimization/48633
3039 * ira-build.c (loop_with_eh_edge_p): New function.
3040 (mark_loops_for_removal): Use it.
3042 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
3044 PR rtl-optimization/48971
3045 * ira.c (setup_pressure_classes): Don't check register move cost
3046 for classes with one registers. Don't add pressure class if there
3047 is a pressure class with the same available hard registers.
3048 Check contains_reg_of_mode. Fix a typo in collecting
3049 temp_hard_regset. Ignore hard registers not belonging to a class.
3051 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
3054 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
3056 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
3057 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3059 PR gcov-profile/48845
3060 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
3062 2011-05-24 Richard Guenther <rguenther@suse.de>
3064 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
3065 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
3066 (gimple_types_compatible_p_1): Adjust.
3067 (iterative_hash_canonical_type): Do not bother about complete vs.
3069 (gimple_canonical_types_compatible_p): Likewise.
3071 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3073 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
3075 2011-05-24 Richard Guenther <rguenther@suse.de>
3078 * gimple.c (gimple_register_canonical_type): Revert
3080 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
3081 does not for a tree for the case where it matters. Cache
3082 pointer-type alias-sets.
3084 2011-05-24 Joseph Myers <joseph@codesourcery.com>
3086 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
3087 (OBJS): Remove options.o, opts-common.o and prefix.o.
3088 (OBJS-libcommon-target): New.
3089 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
3090 (BACKEND): Include libcommon-target.a.
3091 (MOSTLYCLEANFILES): Include libcommon-target.a.
3092 (libcommon-target.a): New.
3093 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
3096 2011-05-23 Joseph Myers <joseph@codesourcery.com>
3098 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
3099 parts of output shared with the driver.
3100 * optc-gen.awk: Don't generate parts of output not shared with the
3102 * opth-gen.awk: Remove GCC_DRIVER conditionals.
3103 * doc/options.texi (SourcerInclude): Mention options-save.c.
3104 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
3105 (OBJS): Add options-save.o.
3106 (options-save.c, options-save.o): New.
3107 (options.o): Update dependencies.
3108 (gcc-options.o): Remove.
3109 (mostlyclean): Remove options-save.c.
3111 2011-05-23 Jakub Jelinek <jakub@redhat.com>
3114 * dbxout.c: Include cgraph.h.
3115 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
3116 and without value expr, return NULL if no varpool node exists for
3117 it or if it is not needed.
3118 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
3121 * c-decl.c (start_decl): Convert expr to void_type_node.
3123 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
3125 PR rtl-optimization/48826
3126 * emit-rtl.c (try_split): When splitting a call that is followed
3127 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
3129 2011-05-23 Jakub Jelinek <jakub@redhat.com>
3131 * cfgexpand.c (expand_debug_expr): For unused non-addressable
3132 parameters passed in memory prefer using DECL_INCOMING_RTL over
3133 the pseudos it will be copied into.
3135 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
3138 * config/i386/i386.c (ix86_option_override_internal): Save the
3139 initial options after checking vzeroupper.
3141 2011-05-23 David Li <davidxl@google.com>
3143 PR tree-optimization/48988
3144 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
3145 Initialize has_valid_pred for each pred chain.
3147 2011-05-23 Richard Guenther <rguenther@suse.de>
3149 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
3150 (iterative_hash_gimple_type): Always hash type names.
3152 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
3154 * c-typeck.c (build_function_call_vec): Tweak call to
3155 check_function_arguments.
3157 2011-05-23 Richard Guenther <rguenther@suse.de>
3159 PR tree-optimization/49115
3160 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
3161 is not necessarily carried out, do not claim it kills the ref.
3162 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
3164 2011-05-23 Richard Guenther <rguenther@suse.de>
3167 * builtins.c (fold_builtin_memory_op): Be less restrictive about
3168 what pointer types we accept for folding.
3170 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3172 * gthr-gnat.c: Remove.
3173 * gthr-gnat.h: Remove.
3174 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
3175 * config/t-freebsd (LIB2ADDEH): Likewise.
3176 * config/t-linux (LIB2ADDEH): Likewise.
3177 * config/t-sol2 (LIB2ADDEH): Likewise.
3178 * config/ia64/t-vms (LIB2ADDEH): Likewise.
3179 * configure.ac (target_thread_file): Remove gnat handling.
3180 * configure: Regenerate.
3181 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
3183 2011-05-23 Tristan Gingold <gingold@adacore.com>
3184 Eric Botcazou <ebotcazou@adacore.com>
3186 * gcov.c (create_file_names): If no object directory is specified,
3187 keep the directory of the file.
3189 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3191 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
3192 * configure: Regenerate.
3194 2011-05-23 Jakub Jelinek <jakub@redhat.com>
3197 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
3198 failed and the comparison has a single bit signed type, use
3199 constm1_rtx instead of const1_rtx for true value.
3200 (do_store_flag): If ops->type is single bit signed type, disable
3201 signel bit test optimization and pass -1 instead of 1 as last
3202 parameter to emit_store_flag_force.
3204 2011-05-23 Tom de Vries <tom@codesourcery.com>
3207 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
3209 (infer_loop_bounds_from_undefined): Use new function.
3211 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
3213 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
3214 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
3215 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
3217 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
3219 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3221 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
3222 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
3225 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
3227 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
3229 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3231 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
3232 UNSPEC_MOVE_PIC pattern.
3234 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3236 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
3237 (sparc-*-rtems*): Likewise.
3238 (sparc64-*-elf*): Likewise.
3239 (sparc64-*-rtems*): Likewise.
3240 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
3241 * config/sparc/t-crtin: New file.
3242 * config/sparc/t-sol2 (crti.o): Delete rule.
3244 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
3245 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
3246 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
3247 (ENDFILE_SPEC): Add crtn.o.
3249 2011-05-22 Tom de Vries <tom@codesourcery.com>
3252 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
3253 CODE_CONTAINS_STRUCT (TS_COMMON).
3255 2011-05-22 Jakub Jelinek <jakub@redhat.com>
3258 * expmed.c (extract_fixed_bit_field): Test whether target can be used
3259 only after deciding which mode to use.
3261 2011-05-22 Tom de Vries <tom@codesourcery.com>
3264 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
3265 for call to get_shiftadd_cost.
3267 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
3270 * config/i386/cpuid.h (bit_MMXEXT): New define.
3272 2011-05-22 Nick Clifton <nickc@redhat.com>
3274 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
3275 initialisation of non-existant args[2] element. Use args[] array
3276 not arg[] array to pass arguments to build_function_type_list.
3278 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
3280 PR tree-optimization/49087
3281 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
3283 2011-05-21 Jason Merrill <jason@redhat.com>
3286 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
3287 static storage duration.
3289 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
3291 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
3294 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
3296 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
3297 false if there are call-saved registers here...
3298 (sparc_can_use_return_insn_p): ...but here instead.
3299 (save_or_restore_regs): Fix thinko.
3300 (sparc_expand_prologue): Use current_function_is_leaf.
3301 (sparc_frame_pointer_required): Likewise.
3303 2011-05-21 Nick Clifton <nickc@redhat.com>
3306 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
3308 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
3310 * gengtype.c (walk_type): Implemented "atomic" GTY option.
3311 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
3313 2011-05-21 Joseph Myers <joseph@codesourcery.com>
3315 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
3316 * optc-gen.awk: Move common code to opt-read.awk.
3317 * opth-gen.awk: Likewise.
3318 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
3320 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
3322 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
3324 2011-05-20 Tom de Vries <tom@codesourcery.com>
3327 * tree-ssa-loop-ivopts.c: Include expmed.h.
3328 (get_shiftadd_cost): New function.
3329 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
3331 2011-05-20 Jakub Jelinek <jakub@redhat.com>
3334 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
3335 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
3337 2011-05-20 Joseph Myers <joseph@codesourcery.com>
3339 * Makefile.in: Update comment referring to $(OBJS-common).
3341 2011-05-20 Ian Lance Taylor <iant@google.com>
3343 * godump.c (go_output_typedef): Put enum constants in the macro
3344 hash table to avoid duplicate Go const definitions.
3346 2011-05-20 Joseph Myers <joseph@codesourcery.com>
3348 * Makefile.in (LIBDEPS): Add libcommon.a.
3350 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
3351 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
3352 pretty-print.o and version.o.
3353 (OBJS-libcommon): New.
3354 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
3355 (BACKEND): Add libcommon.a.
3356 (MOSTLYCLEANFILES): Likewise.
3358 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
3359 (cpp$(exeext)): Likewise.
3360 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
3361 pretty-print.o and input.o.
3362 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
3363 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
3365 (mips-tfile): Don't explicitly use version.o.
3366 (mips-tdump): Likewise.
3367 (gcov.o): Depend on $(DIAGNOSTIC_H).
3368 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
3369 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
3370 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
3371 * gcov-dump.c: Include intl.h and diagnostic.h.
3372 (main): Initialize diagnostics.
3373 * gcov.c: Include diagnostic.h.
3375 (main): Initialize diagnostics.
3376 * lto-wrapper.c: Include diagnostic.h.
3377 (main): Initialize diagnostics.
3379 2011-05-20 Michael Matz <matz@suse.de>
3381 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
3383 2011-05-20 Michael Matz <matz@suse.de>
3384 Richard Guenther <rguenther@suse.de>
3386 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
3387 use lto_streamer_cache_append directly instead of returning a VEC.
3388 (preload_common_node): Remove.
3389 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
3391 (lto_streamer_cache_create): Call lto_preload_common_nodes.
3393 2011-05-20 Richard Guenther <rguenther@suse.de>
3395 PR tree-optimization/49079
3396 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
3397 MEM_REFs correctly for the trailing array access detection.
3398 Special case constants the same way as decls for overall size
3401 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
3403 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
3406 2011-05-20 Jakub Jelinek <jakub@redhat.com>
3408 PR tree-optimization/49073
3409 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
3410 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
3411 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
3413 2011-05-20 Richard Guenther <rguenther@suse.de>
3416 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
3417 of pointer types the same way the middle-end does.
3419 2011-05-20 Richard Guenther <rguenther@suse.de>
3421 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
3422 or pointer-to chains. Delay all fixup to uniquify_nodes.
3424 2011-05-19 Quentin Neill <quentin.neill@amd.com>
3426 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
3427 (fma4_fmaddsub): Likewise
3429 2011-05-19 Jan Hubicka <jh@suse.cz>
3431 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
3432 (GIMPLE_TYPE_PAIR_SIZE): New macro.
3433 (type_pair_cache): New static var.
3434 (lookup_type_pair): Use fixed sized custom hash; make inline.
3435 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
3436 calls of lookup_type_pair.
3437 (print_gimple_types_stats): Remove cache stats.
3438 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
3441 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
3443 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
3444 when TARGET_RDRND is active.
3445 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
3446 Generate dummy SImode target register when target is NULL.
3448 2011-05-19 Joseph Myers <joseph@codesourcery.com>
3450 * config/arm/arm-fpus.def: New.
3451 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
3453 * config/arm/arm-tables.opt: Regenerate.
3454 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
3455 (arm_option_override): Don't decode FPU name to string here.
3456 * config/arm/arm.opt (mfpu=): Use Enum.
3457 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
3458 Update dependencies.
3460 2011-05-19 Joseph Myers <joseph@codesourcery.com>
3462 * collect2.c: Include diagnostic.h.
3463 (fatal_perror, fatal, error, fancy_abort): Remove.
3464 (main): Set progname. Call xmalloc_set_program_name and
3465 diagnostic_initialize.
3466 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
3467 scan_libraries, resolve_lib_name): Call fatal_error instead of
3468 fatal and fatal_perror.
3469 * collect2.h (error, fatal, fatal_perror): Don't declare.
3470 * tlink.c: Include diagnostic-core.h.
3471 (recompile_files): Call fatal_error instead of fatal_perror.
3472 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
3473 pretty-print.o and input.o.
3474 (collect2.o, tlink.o): Update dependencies.
3476 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3478 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
3480 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3483 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
3484 COMDAT group syntax, both SPARC and x86 variants.
3485 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
3486 * configure: Regenerate.
3487 * config/sol2.h (TARGET_SOLARIS): Define.
3488 (PUSHSECTION_FORMAT): Remove.
3489 (SECTION_NAME_FORMAT): Define.
3490 * config/sol2.c: Include hashtab.h.
3491 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
3492 expansion, using SECTION_NAME_FORMAT.
3493 (solaris_comdat_htab): New variable.
3494 (struct comdat_entry): Define.
3495 (comdat_hash): New function.
3496 (comdat_eq): New function.
3497 (solaris_elf_asm_comdat_section): New function.
3498 (solaris_define_comdat_signature): New function.
3499 (solaris_code_end): New function.
3500 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
3501 (solaris_code_end): Declare.
3502 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
3503 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
3505 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
3506 Remove ATTRIBUTE_UNUSED.
3507 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
3508 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
3509 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
3510 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
3511 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
3512 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
3513 (PUSHSECTION_FORMAT): Remove.
3514 (SECTION_NAME_FORMAT): Redefine.
3516 2011-05-19 Kai Tietz <ktietz@redhat.com>
3518 * tree-cfg.c (verify_gimple_assign_binary): Barf on
3519 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
3520 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
3522 2011-05-19 Anatoly Sokolov <aesok@post.ru>
3523 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3525 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
3527 2011-05-19 Richard Guenther <rguenther@suse.de>
3530 * tree-object-size.c (addr_object_size): If the pointed-to
3531 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
3533 2011-05-19 Richard Guenther <rguenther@suse.de>
3535 * gimple.c (gimple_types_compatible_p_1): Compare names of
3536 the types themselves.
3537 (iterative_hash_gimple_type): And hash them that way.
3538 (gimple_register_type_1): If we register a main variant properly
3539 initialize the leader to ourselves.
3541 2011-05-19 Tom de Vries <tom@codesourcery.com>
3544 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
3545 get_loop_invariant_expr_id.
3546 (get_loop_invariant_expr_id): Use get_expr_id.
3547 (parm_decl_cost): New function.
3548 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
3549 Improve bound cost estimation. Use different inv_expr_id for elim and
3552 2011-05-19 Tom de Vries <tom@codesourcery.com>
3555 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
3556 cost_base.cost == 0.
3558 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
3561 * config/i386/sse.md
3562 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
3565 2011-05-18 Jakub Jelinek <jakub@redhat.com>
3567 PR tree-optimization/49039
3568 * tree-vrp.c (extract_range_from_binary_expr): For
3569 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
3570 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
3572 2011-05-18 Tom de Vries <tom@codesourcery.com>
3575 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
3577 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
3579 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
3580 (*tls_global_dynamic_64): Ditto.
3581 (*tls_local_dynamic_base_32_gnu): Ditto.
3582 (*tls_local_dynamic_base_64): Ditto.
3583 (tls_initial_exec_64_sun): Ditto.
3585 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
3587 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
3588 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
3590 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
3591 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
3592 * config/bfin/bfin.c (bfin_cpus): Add bf592.
3593 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
3594 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
3595 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
3596 * config/bfin/elf.h (LIB_SPEC): Add bf592.
3598 2011-05-18 Joseph Myers <joseph@codesourcery.com>
3600 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
3601 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
3602 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
3603 target_thread_pointer, arm_structure_size_boundary, struct
3604 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
3605 struct abi_name, arm_all_abis): Remove.
3606 (arm_option_override) Don't process most enumerated option values here.
3607 Don't process target_fpe_name here. Work with integer not string for
3608 structure size boundary; use separate diagnostics for each case.
3609 * config/arm/arm.h (enum float_abi_type, enum
3610 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
3612 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
3613 arm_structure_size_boundary): Remove.
3614 * config/arm/arm.opt (mabi=): Use Enum and Init.
3615 (arm_abi_type): New Enum and EnumValue entries.
3616 (mfloat-abi=): Use Enum and Init.
3617 (float_abi_type): New Enum and EnumValue entries.
3618 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
3619 (mfp16-format=): Use Enum and Init.
3620 (arm_fp16_format_type): New Enum and EnumValue entries.
3621 (mstructure-size-boundary=): Use UInteger and Init.
3622 (mtp=): Use Enum and Init.
3623 (arm_tp_type): New Enum and EnumValue entries.
3625 2011-05-18 Richard Guenther <rguenther@suse.de>
3627 PR tree-optimization/49018
3628 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
3629 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
3630 gimple_has_side_effects.
3632 2011-05-18 Richard Guenther <rguenther@suse.de>
3634 * gimple.c (gimple_register_type_1): New function, split out from ...
3635 (gimple_register_type): ... here. Avoid infinite recursion.
3637 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
3639 PR tree-optimization/41881
3640 * tree-vectorizer.h (struct _loop_vec_info): Add new field
3641 reduction_chains along with a macro for its access.
3642 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
3643 (destroy_loop_vec_info): Free reduction chains.
3644 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
3645 (vect_is_slp_reduction): New function.
3646 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
3647 (vect_create_epilog_for_reduction): Support SLP reduction chains.
3648 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
3649 definition types for reduction chains.
3650 (vect_supported_load_permutation_p): Don't allow permutations for
3652 (vect_analyze_slp_instance): Support reduction chains.
3653 (vect_analyze_slp): Try to build SLP instance from reduction chains.
3654 (vect_get_constant_vectors): Handle reduction chains.
3655 (vect_schedule_slp_instance): Mark the first statement of the
3656 reduction chain as reduction.
3658 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
3660 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
3661 names for group elements access.
3662 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
3663 reduction chains as well. Remove data reference and interleaving
3664 related words from the fields names.
3665 * tree-vect-loop.c (vect_transform_loop): Use new names for group
3667 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
3668 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
3669 vect_update_interleaving_chain, vect_same_range_drs,
3670 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
3671 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
3672 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
3673 vect_analyze_group_access, vect_analyze_data_ref_access,
3674 vect_create_data_ref_ptr, vect_transform_strided_load,
3675 vect_record_strided_load_vectors): Likewise.
3676 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
3677 vect_model_load_cost, vectorizable_store, vectorizable_load,
3678 vect_remove_stores, new_stmt_vec_info): Likewise.
3679 * tree-vect-slp.c (vect_build_slp_tree,
3680 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
3682 2011-05-18 Richard Guenther <rguenther@suse.de>
3685 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
3686 operand verification.
3687 (verify_gimple_assign_binary): Likewise.
3688 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
3689 to non-1-precision BOOLEAN_TYPEs.
3691 2011-05-18 Tom de Vries <tom@codesourcery.com>
3694 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
3696 2011-05-18 Jakub Jelinek <jakub@redhat.com>
3698 PR tree-optimization/49000
3699 * tree-ssa.c (execute_update_addresses_taken): Call
3700 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
3701 be rewritten and decl has been marked for renaming, reset
3704 2011-05-17 Joseph Myers <joseph@codesourcery.com>
3706 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
3707 enum_opts_set when testing if attributes have set -mfpmath=.
3709 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
3711 * config/mips/mips.c (mips_handle_option): Remove unused variable.
3713 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
3715 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
3717 * tree-inline.c (maybe_inline_call_in_expr): Initialize
3718 id.transform_lang_insert_block with NULL.
3720 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
3722 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
3723 (output_fp_compare): Change args 3 and 4 to bool.
3724 (ix86_expand_call): Change arg 6 to bool.
3725 (ix86_attr_length_immediate_default): Change arg 2 to bool.
3726 (ix86_attr_length_vex_default): Change arg 3 to bool.
3727 * config/i386/i386.md: Update all uses.
3728 * config/i386/i386.c: Ditto.
3729 (ix86_flags_dependent): Change return type to bool.
3731 2011-05-17 Richard Guenther <rguenther@suse.de>
3733 * gimple.c (type_hash_pair_compare): Fix comparison.
3735 2011-05-17 Richard Guenther <rguenther@suse.de>
3737 * gimple.c (iterative_hash_gimple_type): Simplify singleton
3738 case some more, fix final hash value of the non-singleton case.
3740 2011-05-17 Richard Guenther <rguenther@suse.de>
3744 2011-05-16 Richard Guenther <rguenther@suse.de>
3746 * gimple.c (gimple_types_compatible_p_1): Use names of the
3747 type itself, not its main variant.
3748 (iterative_hash_gimple_type): Likewise.
3750 2011-05-17 Richard Guenther <rguenther@suse.de>
3752 * gimple.c (gimple_register_canonical_type): Use the main-variant
3753 leader for computing the canonical type.
3755 2011-05-17 Nick Clifton <nickc@redhat.com>
3757 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
3760 * config/rx/rx.md: Add peephole to remove redundant extensions
3762 (bitset_in_memory): Use rx_restricted_mem_operand.
3763 (bitinvert_in_memory): Likewise.
3764 (bitclr_in_memory): Likewise.
3766 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
3767 Nick Clifton <nickc@redhat.com>
3769 * config/rx/rx.md: Add peepholes to match a register move followed
3770 by a comparison of the moved register. Replace these with an
3771 addition of zero that does both actions in one instruction.
3773 2011-05-17 Jakub Jelinek <jakub@redhat.com>
3776 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
3777 predicate to allow CONST_INT.
3778 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
3780 2011-05-16 Joseph Myers <joseph@codesourcery.com>
3782 * opts-common.c (opt_enum_arg_to_value): New.
3783 * opts.h (opt_enum_arg_to_value): Declare.
3784 * config/i386/i386.opt (fpmath): Remove.
3785 (mfpmath=): Use Enum, Init and Save.
3786 (fpmath_unit): New Enum and EnumValue entries.
3787 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
3788 name for function fpmath state.
3789 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
3790 * config/i386/i386.c: Include diagnostic.h.
3791 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
3792 (ix86_target_string): Take enum fpmath_unit value instead of string.
3793 (ix86_debug_options): Update call to ix86_target_string.
3794 (ix86_option_override_internal): Don't process fpmath strings here.
3795 (x86_function_specific_save, ix86_function_specific_restore):
3796 Don't handle fpmath state specially.
3797 (ix86_function_specific_print): Pass fpmath state to
3798 ix86_target_string instead of printing in this function.
3799 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
3800 Handle enum attributes.
3801 (IX86_ATTR_ENUM, ix86_opt_enum): New.
3802 (ix86_valid_target_attribute_tree): Update option_strings
3803 handling. Handle fpmath as enum option.
3804 (ix86_can_inline_p): Update field names for function fpmath state.
3805 (ix86_expand_builtin): Update call to ix86_target_string.
3806 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
3807 (ix86_fpmath): Remove.
3808 * config/i386/t-i386 (i386.o): Update dependencies.
3810 2011-05-16 Joseph Myers <joseph@codesourcery.com>
3812 PR preprocessor/48677
3813 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
3814 from decoded_options[0], not from itself.
3816 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
3818 * config/i386/constraints.md (z): New constraint.
3819 * config/i386/i386.c (c): New mode attribute.
3820 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
3821 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
3822 constraint for operand 0.
3823 (*call_vzeroupper): Ditto.
3824 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
3825 (*call_rex64_ms_sysv_vzeroupper): Ditto.
3826 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
3827 Use "lzm" constraint for operand 0.
3828 (*call_pop_vzeroupper): Ditto.
3829 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
3830 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
3831 constraint for operand 0.
3832 (*sibcall_vzeroupper): Ditto.
3833 (*sibcall_rex64_ms_sysv): Ditto.
3834 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
3835 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
3836 *sibcall_pop_1. Use "Uz" constraint for operand 0.
3837 (*sibcall_pop_vzeroupper): Ditto.
3838 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
3839 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
3840 mode iterator. Use "<c>zm" constraint for operand 1.
3841 (*call_value_vzeroupper): Ditto.
3842 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
3844 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
3845 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
3846 *call_value_pop_1. Use "lzm" constraint for operand 1.
3847 (*call_value_pop_vzeroupper): Ditto.
3848 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
3849 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
3850 mode iterator. Use "Uz" constraint for operand 1.
3851 (*sibcall_value_vzeroupper): Ditto.
3852 (*sibcall_value_rex64_ms_sysv): Ditto.
3853 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
3854 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
3855 constraint for operand 1.
3856 (*sibcall_value_pop_vzeroupper): Ditto.
3857 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
3858 and "z" constraint for operand 2.
3859 (*tls_global_dynamic_32_gnu): Ditto.
3860 (*tls_local_dynamic_base_32_gnu): Ditto.
3861 (*tls_local_dynamic_base_64): Ditto.
3862 (*tls_local_dynamic_32_once): Ditto.
3863 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
3865 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
3867 2011-05-16 Richard Guenther <rguenther@suse.de>
3869 * gimple.c (gimple_types_compatible_p_1): Use names of the
3870 type itself, not its main variant.
3871 (iterative_hash_gimple_type): Likewise.
3873 2011-05-16 Richard Guenther <rguenther@suse.de>
3875 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
3876 always visit pointer target and function result and argument types.
3878 2011-05-16 Jason Merrill <jason@redhat.com>
3881 * tree-inline.c (copy_statement_list): Put back recursion.
3883 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
3887 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
3888 * config/avr/avr.md ("*ior<mode>qi.byte0",
3889 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
3891 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
3894 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
3895 register is needed for a function argument.
3897 2011-05-16 Richard Guenther <rguenther@suse.de>
3899 * gimple.c (struct type_hash_pair): New type.
3900 (type_hash_pair_compare): New function.
3901 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3903 2011-05-16 Revital Eres <revital.eres@linaro.org>
3905 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
3907 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
3909 * config/i386/i386.md (floating point move splitters): Fix
3910 usage of standard_80387_constant_p.
3911 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
3913 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
3915 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
3917 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
3919 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
3920 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
3921 (tree_ssa_lim_finalize): Likewise.
3923 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
3925 * config/i386/constraint.md (Yd, Yx): New register constraints.
3926 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
3927 Yd conditional register constraint.
3928 (*movtf_internal): Use standard_sse_constant_opcode.
3929 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
3930 Yx conditional register constraint.
3931 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
3932 Yd conditional register constraint. Use standard_sse_constant_p to
3933 check for valid SSE constants and call standard_sse_constant_opcode to
3935 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
3936 constants and call standard_sse_constant_opcode to output SSE insn.
3937 * config/i386/i386.c (ix86_option_ovverride_internal): Set
3938 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
3939 optimize_size is set.
3940 (standard_sse_constant_opcode): Output conditional AVX insn templates.
3942 2011-05-14 Tobias Burnus <burnus@net-b.de>
3944 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
3946 2011-05-13 Martin Jambor <mjambor@suse.cz>
3948 * ipa-prop.c (ipa_cst_from_jfunc): New function.
3949 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
3950 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
3951 (evaluate_conditions_for_ipcp_clone): Removed.
3952 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
3953 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
3954 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
3956 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
3958 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
3959 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
3960 lieu of MAY_HAVE_DEBUG_STMTS.
3961 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
3962 debug statements if !MAY_HAVE_DEBUG_STMTS.
3964 2011-05-13 Martin Thuresson <martint@google.com>
3966 PR gcov-profile/47793
3967 * libgcov.c (gcov_exit): Support relative profile paths.
3968 * doc/invoke.texi (-fprofile-dir): Update for above change.
3970 2011-05-13 Richard Guenther <rguenther@suse.de>
3972 * gimple.c (gimple_canonical_types_compatible_p): Do not use
3973 type-pair caching, do not compare hashes.
3975 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
3978 * tree-cfg.c (edge_to_cases_cleanup): Return true.
3979 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
3981 2011-05-13 Kai Tietz <ktietz@redhat.com>
3983 * gimplify.c (gimplify_expr): Make sure operand is boolified.
3984 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
3985 compatible type for TRUTH_NOT_EXPR.
3987 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
3989 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
3990 (ix86_hard_regno_mode_ok): Change return value to bool. Use
3991 can_create_pseudo_p ().
3993 2011-05-13 Richard Guenther <rguenther@suse.de>
3996 * gimple.c (iterative_hash_gimple_type): Revert change in
3997 pointer target and function result and argument hashing.
3999 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
4001 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
4002 (*movxf_internal_nointeger): Ditto.
4003 (*movdf_internal_rex64): Ditto.
4004 (*movdf_internal): Ditto.
4005 (*movdf_internal_nointeger): Ditto.
4006 (*movsf_internal): Ditto.
4007 (sincos splitters): Use can_create_pseudo ().
4009 2011-05-13 Joseph Myers <joseph@codesourcery.com>
4011 * config/i386/i386-opts.h: New.
4012 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
4013 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
4014 ix86_section_threshold): Remove.
4015 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
4016 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
4018 (ix86_option_override_internal): Don't decode strings for options
4019 other than -march=, -mtune= and -mfpmath=. Don't allow for
4020 __attribute__ uses in remaining diagnostics for options with
4021 string arguments. Don't check for integer arguments being negative.
4022 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
4023 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
4024 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
4025 ix86_branch_cost, ix86_section_threshold): Remove.
4026 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
4028 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
4030 (masm=): Use Enum and Init.
4031 (asm_dialect): New Enum and EnumValue entries.
4032 (mbranch-cost=): Use UInteger.
4033 (mlarge-data-threshold=): Use UInteger and Init.
4034 (mcmodel=): Use Enum and Init.
4035 (cmodel): New Enum and EnumValue entries.
4036 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
4037 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
4038 mregparm=): Use UInteger.
4039 (mstringop-strategy=): Use Enum and Init.
4040 (stringop_alg): New Enum and EnumValue entries.
4041 (mtls-dialect=): Use Enum and Init.
4042 (tls_dialect): New Enum and EnumValue entries.
4043 (mabi=): Use Enum and Init.
4044 (calling_abi): New Enum and EnumValue entries.
4045 (mveclibabi=): Use Enum and Init.
4046 (ix86_veclibabi): New Enum and EnumValue entries.
4048 2011-05-13 Nick Clifton <nickc@redhat.com>
4050 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
4051 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
4053 2011-05-13 Kai Tietz <ktietz@redhat.com>
4056 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
4057 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
4058 (gimple_boolify): Check for cast for boolean_type_node instead for
4061 2011-05-13 Richard Guenther <rguenther@suse.de>
4063 PR tree-optimization/48172
4064 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
4065 multiplying by number of iterations for equal step.
4066 (vect_create_cond_for_alias_checks): Likewise.
4068 2011-05-13 Andreas Schwab <schwab@redhat.com>
4070 * configure.ac: Use AS_HELP_STRING throughout.
4071 * configure: Regenerate.
4073 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
4075 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
4076 (ix86_emit_restore_regs_using_mov): Likewise.
4077 (ix86_emit_restore_sse_regs_using_mov): Likewise.
4079 2011-05-12 Anatoly Sokolov <aesok@post.ru>
4081 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
4082 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
4083 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
4084 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
4085 RTX_OK_FOR_OLO10_P): ...here.
4086 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
4089 2011-05-12 Kai Tietz <ktietz@redhat.com>
4091 * gimplify.c (gimple_boolify): Re-boolify expression
4092 arguments even if expression type is of kind BOOLEAN_TYPE.
4093 (gimplify_boolean_expr): Removed.
4094 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
4095 and XOR. Additional take care that we keep expression's type.
4096 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
4097 of TRUTH_AND|OR|XOR_EXPR.
4099 2011-05-12 Jakub Jelinek <jakub@redhat.com>
4101 PR tree-optimization/48975
4102 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
4103 on all bbs here and free and clear ifc_bbs at the end.
4105 2011-05-12 Richard Guenther <rguenther@suse.de>
4107 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
4108 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
4109 until after simple checks.
4110 (gimple_types_compatible_p): Likewise.
4111 (iterative_hash_gimple_type): Always hash pointer targets
4112 and function return and argument types.
4113 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
4114 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
4115 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
4116 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
4117 completely in the simple compare section.
4118 (gimple_register_canonical_type): Query the cache again after
4121 2011-05-12 Richard Guenther <rguenther@suse.de>
4123 PR tree-optimization/48172
4124 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
4125 the number of iterations from the segment size calculation.
4126 (vect_create_cond_for_alias_checks): Adjust.
4128 2011-05-12 Jakub Jelinek <jakub@redhat.com>
4131 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
4132 if validate_subreg fails.
4134 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
4136 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
4137 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
4140 2011-05-12 DJ Delorie <dj@redhat.com>
4142 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
4143 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
4144 created builtin into rx_builtins array.
4145 (rx_builtin_decl): New function.
4146 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
4148 2011-05-12 DJ Delorie <dj@redhat.com>
4149 Nick Clifton <nickc@redhat.com>
4151 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
4152 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
4153 (rx_is_legitimate_address): Add pre-decrement and post-increment
4154 addressing in HImode and QImode. Fix test for out of range
4156 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
4157 (rx_align_for_label): Test label before extracting its usage count.
4158 (rx_adjust_insn_lengths): Fix selection of insn codes.
4159 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
4161 2011-05-11 Jason Merrill <jason@redhat.com>
4163 * tree.c (type_hash_canon): Use struct tree_type_non_common.
4165 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
4167 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
4168 reindent the subsequent block.
4170 2011-05-11 Satoru Takabayashi <satorux@google.com>
4171 Paul Pluzhnikov <ppluzhnikov@google.com>
4173 * doc/install.texi (Configuration): Document --with-linker-hash-style.
4174 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
4175 * config.in: Add LINKER_HASH_STYLE.
4176 * configure.ac: Add --with-linker-hash-style.
4177 * configure: Regenerate.
4179 2011-05-11 Richard Guenther <rguenther@suse.de>
4182 * gimple.c (iterative_hash_canonical_type): Fix typo.
4184 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
4186 * config/i386/i386.c (legitimize_tls_address)
4187 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
4188 expanders directly for TARGET_GNU2_TLS. Determine pic and
4189 __tls_get_addr symbol reference here. Update call to
4190 gen_tls_global_dynamic_{32,64} for added arguments.
4191 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
4192 expanders directly for TARGET_GNU2_TLS. Determine
4193 __tls_get_addr symbol reference here. Update call to
4194 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
4195 unique UNSPEC REG_EQUIV to libcall block.
4196 (ix86_tls_get_addr): Declare static.
4197 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
4198 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
4199 Do not determine pic and __tls_get_addr symbol reference here. Do not
4200 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
4201 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
4202 (tls_global_dynamic_64): Add operand 2. Do not determine
4203 __tls_get_addr symbol reference here. Do not call
4204 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
4205 (tls_local_dynamic_base64): Ditto for operand 1.
4207 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
4209 * function.c (expand_function_start): Initialize stack_check_probe_note
4210 only if the generic stack checking mechanism is used.
4212 2011-05-11 Richard Guenther <rguenther@suse.de>
4214 PR tree-optimization/15256
4215 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
4216 (A & B) | C, combine (A op CST1) op CST2.
4217 (tree_ssa_forward_propagate_single_use_vars): Only bother to
4218 visit assigns that have uses.
4220 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
4222 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
4223 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
4224 (unpack_ts_type_common_value_fields): ...this. Update comment.
4225 (unpack_value_fields): Adjust for renaming.
4226 (lto_input_ts_type_tree_pointers): Split into...
4227 (lto_input_ts_type_common_tree_pointer): ...this and...
4228 (lto_input_ts_type_non_common_tree_pointers): ...this.
4229 (lto_input_tree_pointers): Adjust for above split.
4230 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
4231 (pack_ts_type_common_value_fields): ...this. Update comment.
4232 (lto_output_ts_type_tree_pointers): Split into...
4233 (lto_output_ts_type_common_tree_pointers): ...this and...
4234 (lto_output_ts_type_non_common_tree_pointers): ...this.
4235 (lto_output_tree_pointers): Adjust for above split.
4236 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
4237 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
4238 * stor-layout.c (vector_type_mode): Adjust location of mode field.
4239 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
4241 (struct tree_type): Split into...
4242 (struct tree_type_common: ...this and...
4243 (struct tree_type_with_lang_specific): ...this and...
4244 (struct tree_type_non_common): ...this. Adjust accessor macros
4246 (TYPE_VALUES_RAW): Define.
4247 (union tree_node): Update for above changes.
4248 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
4250 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
4251 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
4252 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
4253 * treestructu.def (TS_TYPE): Remove.
4254 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
4257 2011-05-11 Jakub Jelinek <jakub@redhat.com>
4260 * tree-ssa.c (reset_debug_uses): New function.
4261 * tree-flow.h (reset_debug_uses): New prototype.
4262 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
4263 * tree-loop-distribution.c (generate_loops_for_partition): Call
4264 reset_debug_uses on the stmts that will be removed. Keep around
4265 all debug stmts, don't count them as bits in partition bitmap.
4266 (generate_builtin): Don't count debug stmts or labels as bits in
4269 2011-05-11 Richard Guenther <rguenther@suse.de>
4271 * gimple.c (gimple_type_hash_1): Merge with ...
4272 (gimple_type_hash): ... this.
4273 (gtc_visit): Remove mode parameter and simplify accordingly.
4274 (gimple_types_compatible_p_1): Likewise.
4275 (gimple_types_compatible_p): Likewise.
4276 (iterative_hash_gimple_type): Likewise.
4278 (gimple_type_eq): Adjust.
4280 2011-05-11 Revital Eres <revital.eres@linaro.org>
4282 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
4283 enters the branch create an anti edge in the opposite direction
4284 to prevent the creation of reg-moves.
4285 * modulo-sched.c: Adjust comment to reflect the fact we are
4286 scheduling closing branch.
4287 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
4288 (stage_count): New field in struct partial_schedule.
4289 (calculate_stage_count): New function.
4290 (normalize_sched_times): Rename to reset_sched_times and handle
4291 incrementing the sched time of the nodes by a constant value
4292 passed as parameter.
4293 (duplicate_insns_of_cycles): Skip closing branch.
4294 (sms_schedule_by_order): Schedule closing branch.
4295 (ps_insn_find_column): Handle closing branch.
4296 (sms_schedule): Call reset_sched_times and adjust the code to
4297 support scheduling of the closing branch.
4298 (ps_insert_empty_row): Update calls to normalize_sched_times
4299 and rotate_partial_schedule functions.
4301 2011-05-11 Richard Guenther <rguenther@suse.de>
4304 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
4306 2011-05-11 Joseph Myers <joseph@codesourcery.com>
4308 * opts.c (finish_options): Move warning settings from process_options.
4309 * toplev.c (process_options): Move warning settings to finish_options.
4311 2011-05-11 Richard Guenther <rguenther@suse.de>
4313 PR tree-optimization/18041
4314 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
4315 (simplify_bitwise_binary): ... this. Handle operand conversions
4316 by applying them to the result instead.
4317 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
4319 2011-05-11 Richard Guenther <rguenther@suse.de>
4321 * gimple.c (gimple_canonical_types_compatible_p): Split out
4322 from gimple_types_compatible_p and friends. Do not recurse
4323 to pointed-to types.
4324 (gimple_canonical_type_eq): Use it.
4325 (iterative_hash_canonical_type): Split out from
4326 iterative_hash_gimple_type and friends. Do not recurse
4327 to pointed-to types.
4328 (gimple_canonical_type_hash): Use it, allocate the hash here.
4330 2011-05-11 Revital Eres <revital.eres@linaro.org>
4332 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
4335 2011-05-11 Revital Eres <revital.eres@linaro.org>
4337 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
4338 instead of PREV_INSN.
4340 2011-05-11 Revital Eres <revital.eres@linaro.org>
4342 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
4343 * loop-doloop.c (doloop_condition_get): Likewise.
4344 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
4346 * config/arm/arm.md (*addsi3_compare0): Remove "*".
4348 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
4350 * tree.def (CASE_LABEL_EXPR): Add an operand.
4351 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
4353 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4355 * c-decl.c (c_override_global_bindings_to_false): Remove.
4356 (global_bindings_p): Don't check
4357 c_override_global_bindings_to_false.
4358 * c-tree.h (c_override_global_bindings_to_false): Remove.
4359 * c-typeck.c (composite_type): Don't set
4360 c_override_global_bindings_to_false.
4362 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4364 PR target/48857, 48495
4365 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
4367 (VSX_MOVE_MODE): Ditto.
4368 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
4369 VSX vector types. Add V2DImode.
4370 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
4371 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
4372 (MODES_TIEABLE_P): Ditto.
4374 * config/rs6000/rs6000.c (rs6000_emit_move): Use
4375 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
4377 (init_cumulative_args): Ditto.
4378 (rs6000_function_arg_boundary): Ditto.
4379 (rs6000_function_arg_advance_1): Ditto.
4380 (rs6000_function_arg): Ditto.
4381 (rs6000_function_ok_for_sibcall): Ditto.
4382 (emit_frame_save): Ditto.
4383 (rs6000_function_value): Ditto.
4384 (rs6000_libcall_value): Ditto.
4386 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4388 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
4389 i386/darwin-lib.h to $libgcc_tm_file.
4390 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
4392 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4394 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
4396 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4398 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
4399 * config/rs6000/rs6000-tables.opt: New file (generated).
4400 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
4401 rs6000/rs6000-tables.opt to extra_options.
4402 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
4403 * config/rs6000/rs6000.c (rs6000_select): Remove.
4404 (processor_target_table): Move contents to rs6000-cpus.def.
4405 (darwin_rs6000_override_options): Check
4406 global_options_set.x_rs6000_cpu_index instead of
4407 rs6000_select[1].string.
4408 (rs6000_option_override_internal): Likewise.
4409 (rs6000_handle_option): Don't assert that global structures are in
4410 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
4411 (rs6000_default_cpu): New variable.
4412 (rs6000_file_start): Set it instead of local default_cpu. Check
4413 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
4414 global_options_set.x_rs6000_tune_index instead of rs6000_select.
4415 (rs6000_darwin_file_start): Check rs6000_default_cpu and
4416 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
4417 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
4418 rs6000_select): Remove.
4419 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
4421 (mcpu=, mtune=): Use Var, Init, Enum and Save.
4422 * config/rs6000/t-rs6000
4423 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
4424 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
4425 global_options_set.x_rs6000_cpu_index instead of
4426 rs6000_select[1].string.
4427 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
4428 global_options_set.x_rs6000_cpu_index instead of
4429 rs6000_select[1].string.
4431 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4433 * config.gcc (libgcc_tm_file): Define instead of including files
4434 from ../../libgcc/config/ in tm_file.
4435 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
4436 * configure: Regenerate.
4437 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
4438 libgcc_tm.h, cs-libgcc_tm.h): New.
4439 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
4440 (clean): Remove libgcc_tm.h.
4441 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
4442 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
4443 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
4445 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
4448 * config/avr/avr.c (avr_ret_register): Return unsigned int
4450 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
4451 it to avr_libcall_value.
4452 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
4454 (avr_expand_binop_builtin): Ditto.
4455 (avr_expand_unop_builtin): Ditto.
4457 2011-05-10 DJ Delorie <dj@redhat.com>
4459 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
4460 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
4461 * config/rx/rx.c (rx_align_for_label): Add label and
4462 uses_threshold parameters. Do not align when the label is not
4464 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
4466 2011-05-10 Richard Guenther <rguenther@suse.de>
4468 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
4469 a series of conversions and apply foldings similar to what
4471 (tree_ssa_forward_propagate_single_use_vars): Call it.
4473 2011-05-10 Jakub Jelinek <jakub@redhat.com>
4475 PR tree-optimization/48611
4476 PR tree-optimization/48794
4477 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
4478 referenced from RESX or EH_DISPATCH arguments.
4481 * dfp.c (decimal_to_decnumber): Handle conversion from
4482 dconst{1,2,m1,half}.
4484 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
4486 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
4487 for !flag_prefer_avx128.
4488 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
4490 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
4492 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
4493 (fold_ternary_loc): Use expr_location_or.
4495 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
4498 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
4499 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
4500 Pmode and mem_mode is not VOIDmode.
4502 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
4504 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
4505 TYPE_QUAL_RESTRICT): Convert to enum.
4507 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
4509 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
4510 (const_pow2_1_to_8_operand): Ditto.
4511 (const_pow2_1_to_128_operand): Ditto.
4512 (const_pow2_1_to_32768_operand): Ditto.
4513 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
4514 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
4515 in insn constraint to check integer value of operand 3.
4516 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
4518 (PINSR_MODE): New mode iterator.
4519 (sse2p4_1): New mode attribute.
4520 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
4521 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
4522 iterator. Use const_int_operand instead of
4523 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
4524 exact_log2 in insn constraint to check integer value of operand 3.
4526 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
4528 * config/i386/sse.md (blendbits): Remove mode attribute.
4529 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
4530 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
4531 Check integer value of operand 3 in insn constraint.
4533 2011-05-09 Richard Guenther <rguenther@suse.de>
4535 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
4537 (lto_symtab_merge): Likewise. Do not register types here.
4538 (lto_symtab_merge_decls_2): Likewise.
4539 (lto_symtab_merge_decls_1): Likewise.
4540 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
4541 * gimple.c (enum gtc_mode): Declare.
4542 (gimple_types_compatible_p): Make static.
4544 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4546 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
4547 temporary register to match Pmode.
4549 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
4551 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
4552 and *vec_concatv4si_1_avx.
4554 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
4556 PR rtl-optimization/48927
4557 * ira-conflicts.c (commutative_constraint_p): Use
4558 recog_data.alternative_enabled_p to disable alternatives where
4559 "enabled" attribute is false.
4560 (get_dup_num): Ditto.
4561 * ira-lives.c (single_reg_class): Ditto.
4562 (ira_implicitly_set_insn_hard_regs): Ditto.
4564 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
4566 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
4567 (dataflow_set_preserve_mem_locs): Likewise.
4569 2011-05-09 Philipp Thomas <pth@suse.de>
4571 * config/mep/mep.c (mep_validate_vliw): Syntax description
4572 should not be translated.
4574 2011-05-09 Joseph Myers <joseph@codesourcery.com>
4576 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
4577 * config/mips/mips-tables.opt: New file (generated).
4578 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
4579 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
4580 MIPS_ARCH_OPTION_NATIVE): Define.
4581 * config/mips/mips.c (mips_cpu_info_table): Move contents to
4583 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
4584 mips_parse_cpu): Remove.
4585 (mips_cpu_info_from_opt, mips_default_arch): New.
4586 (mips_handle_option): Don't assert that global structures are in
4587 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
4588 (mips_option_override): Use new variables and functions to set
4589 state of these options. Use strcmp to check for individual CPU names.
4590 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
4592 * config/mips/mips.opt (march=): Use ToLower and Enum.
4593 (mips): Use ToLower, Enum and Var.
4594 (mtune=): Use ToLower and Enum.
4595 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
4597 2011-05-08 Jan Hubicka <jh@suse.cz>
4599 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
4600 Arrange type pairs to be UID ordered.
4601 (gimple_lookup_type_leader): Make inline.
4603 2011-05-09 Nick Clifton <nickc@redhat.com>
4606 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
4610 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
4613 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
4615 * combine.c (simplify_comparison): Abstract out parts into...
4616 (simplify_compare_const): ... new function.
4617 (try_combine): Generalize parallel arithmetic/compare combining
4618 to call simplify_compare_const() and CANONICALIZE_COMPARE().
4620 2011-05-08 Jan Hubicka <jh@suse.cz>
4622 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
4623 (cgraph_create_virtual_clone): Call hooks once virtual clone
4625 * cgraph.h (cgraph_clone_node): Update prototype.
4626 * ipa-cp.c (ipcp_estimate_growth): Use
4627 estimate_ipcp_clone_size_and_time.
4628 * ipa-inline-transform.c (clone_inlined_nodes): Update.
4629 * lto-cgraph.c (input_node): Update.
4630 * ipa-inline.c (recursive_inlining): Update.
4631 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
4632 (evaluate_conditions_for_known_args): Break out from ...
4633 (evaluate_conditions_for_edge): ... here.
4634 (evaluate_conditions_for_ipcp_clone): New function.
4635 (inline_node_duplication_hook): Update clone summary based
4637 (estimate_callee_size_and_time): Rename to ...
4638 (estimate_node_size_and_time): take NODE instead of EDGE;
4639 take POSSIBLE_TRUTHS as argument.
4640 (estimate_callee_size_and_time): Update.
4641 (estimate_ipcp_clone_size_and_time): New function.
4642 (do_estimate_edge_time): Update.
4644 2011-05-08 Richard Guenther <rguenther@suse.de>
4648 * expmed.c (expand_shift_1): Compute adjusted constant shift
4651 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
4653 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
4655 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
4657 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
4659 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
4661 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
4663 2011-05-07 Jan Hubicka <jh@suse.cz>
4665 * ipa-inline-transform.c (inline_call): Account when program size
4667 * ipa-inline.c (relative_time_benefit): New function.
4668 (edge_badness): Reorganize to be power 2 based; fix thinko when
4669 computing badness for negative growth; update comments to match
4670 reality; better dumps.
4672 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
4674 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
4675 type to bool and adjust comment.
4676 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
4677 (fold_mathfn_compare): Remove calls to global_bindings_p.
4678 (fold_inf_compare): Likewise.
4679 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
4680 * c-tree.h (global_bindings_p): Adjust prototype.
4681 * c-decl.c (global_bindings_p): Return bool and simplify.
4683 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
4685 PR tree-optimization/48837
4686 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
4687 when accumulator transformation is performed.
4689 2011-05-06 Jan Hubicka <jh@suse.cz>
4691 * i386.h (ix86_tune_indices): Add
4692 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
4693 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
4694 * i386.c (initial_ix86_tune_features): Add
4695 X86_SOFTARE_PREFETCHING_BENEFICIAL.
4696 (software_prefetching_beneficial_p): Remove predicate.
4697 (ix86_option_override_internal): Use new macro.
4699 2011-05-06 Jan Hubicka <jh@suse.cz>
4701 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
4703 2011-05-06 Jan Hubicka <jh@suse.cz>
4705 * cgraph.c (cgraph_add_thunk): Create real function node instead
4706 of alias node; finalize it and mark needed/reachale; arrange visibility
4707 to be right and add it into the corresponding same comdat group list.
4708 (dump_cgraph_node): Dump thunks.
4709 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
4710 cgraph_function_with_gimple_body_p,
4711 cgraph_first_function_with_gimple_body,
4712 cgraph_next_function_with_gimple_body): New functions.
4713 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
4715 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
4716 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
4717 * cgraphunit.c (cgraph_finalize_function): Only look into possible
4718 devirtualization when optimizing.
4719 (verify_cgraph_node): Verify thunks.
4720 (cgraph_analyze_function): Analyze thunks.
4721 (cgraph_mark_functions_to_output): Output thunks only in combination
4722 with function they are assigned to.
4723 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
4724 alias into normal node.
4725 (assemble_thunks): New functoin.
4726 (cgraph_expand_function): Use it.
4727 * lto-cgraph.c (lto_output_node): Stream thunks.
4728 (input_overwrite_node): Stream in thunks.
4729 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
4730 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
4731 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
4732 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
4733 (inline_analyze_function): Do not care about thunk jump functions.
4734 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
4735 * ipa-prop.c (ipa_prop_write_jump_functions): Use
4736 cgraph_function_with_gimple_body_p.
4737 * passes.c (do_per_function_toporder): Use
4738 cgraph_function_with_gimple_body_p.
4739 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
4740 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
4741 (function_called_by_processed_nodes_p): Likewise.
4743 2011-05-06 Joseph Myers <joseph@codesourcery.com>
4745 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
4746 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
4748 (mabi=): Replace with separate entries for mabi=altivec,
4749 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
4750 mabi=ieeelongdouble and mabi=ibmlongdouble.
4751 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
4752 check for -mabi=spe without SPE ABI support here.
4753 (rs6000_handle_option): Replace OPT_mabi_ handling with
4754 OPT_mabi_altivec and OPT_mabi_spe handling.
4756 2011-05-06 Cary Coutant <ccoutant@google.com>
4758 * dwarf2out.c (contains_subprogram_definition): New function.
4759 (should_move_die_to_comdat): Call it.
4761 2011-05-06 Jeff Law <law@redhat.com>
4763 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
4764 remove_ctrl_stmt_and_useless_edges.
4765 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
4766 (fixup_template_block, thread_single_edge): Likewise.
4767 (mark_threaded_blocks): Use THREAD_TARGET.
4769 2011-05-06 Alan Modra <amodra@gmail.com>
4772 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
4773 const0_rtx as the arg to the dummy __tls_get_addr libcall.
4775 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
4777 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
4778 constraint modifier to "r".
4780 2011-05-06 Joseph Myers <joseph@codesourcery.com>
4782 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
4783 fall through for OPT_mcmodel_.
4785 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4787 * config/s390/s390.c (s390_asm_trampoline_template): Comment
4789 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
4791 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4794 * config/arm/arm.opt (marm): Document it.
4795 (mthumb): Reject negative variant.
4797 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
4800 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
4801 Fix typo in "ccvt" variable name.
4803 2011-05-06 Tristan Gingold <gingold@adacore.com>
4806 * config/vms/vms-ar.c (main): Remove cwd variable.
4808 2011-05-06 Jakub Jelinek <jakub@redhat.com>
4811 * var-tracking.c (prepare_call_arguments): Move else before #endif.
4813 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
4815 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
4816 * gimplify.c (gimplify_switch_expr): Likewise.
4817 * omp-low.c (expand_omp_sections): Likewise.
4818 * tree-eh.c (lower_try_finally_switch): Likewise.
4819 (lower_eh_dispatch): Likewise.
4820 * tree.h (build_case_label): Declare.
4821 * tree.c (build_case_label): Define.
4823 2011-05-05 Jason Merrill <jason@redhat.com>
4826 * tree-inline.c (copy_tree_r): Use copy_statement_list.
4827 (copy_statement_list): Don't recurse.
4828 * stor-layout.c (copy_self_referential_tree_r): Don't allow
4831 2011-05-05 Joseph Myers <joseph@codesourcery.com>
4833 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
4834 through from -mfpu= handling.
4835 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
4837 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
4839 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
4842 2011-05-05 Steve Ellcey <sje@cup.hp.com>
4844 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
4846 (hppa[12]*-*-hpux11*): Ditto.
4847 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
4848 * config/ia64/hpux-unix2003.h: New.
4849 * config/pa/pa-hpux1131.opt: New.
4850 * config/pa/pa-hpux1131.h: New.
4851 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
4852 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4853 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
4855 2011-05-05 Jakub Jelinek <jakub@redhat.com>
4858 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
4859 instead of mode as 3rd argument to recursive call.
4860 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
4861 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
4863 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
4864 don't give up if mode is Pmode and mem_mode is not VOIDmode.
4865 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
4866 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
4868 2011-05-05 Julian Brown <julian@codesourcery.com>
4870 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
4871 parenthesis in D-register case.
4873 2011-05-05 Joseph Myers <joseph@codesourcery.com>
4875 * opt-functions.awk (var_type_struct): Handle Enum options.
4876 * optc-gen.awk: Don't check range of variables of character type.
4877 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
4878 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
4879 rs6000_sdata_name, rs6000_explicit_options): Remove.
4880 (rs6000_option_override_internal): Check for -malign-power here.
4881 Use global_options_set instead of rs6000_explicit_options.
4882 (rs6000_parse_fpu_option): Remove.
4883 (rs6000_handle_option): Access variables via opts and opts_set
4884 pointers. Use error_at and warning_at. Add fall-through
4885 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
4886 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
4887 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
4888 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
4889 here. Don't use rs6000_parse_fpu_option.
4890 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
4891 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
4892 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
4894 (mspe): Use Var and Save.
4895 (mtraceback=): Use Enum and Var.
4896 (rs6000_traceback_type): New Enum and EnumValue entries.
4897 (mfloat-gprs=): Use Enum, Var and Save.
4898 (rs6000_float_gprs): New Enum and EnumValue entries.
4899 (mlong-double-): use Var and Save.
4900 (msched-costly-dep=, minsert-sched-nops=): Use Var.
4901 (malign-): Use Enum and Var.
4902 (rs6000_alignment_flags): New Enum and EnumValue entries.
4904 (fpu_type_t): New Enum and EnumValue entries.
4905 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4906 global_options_set instead of rs6000_explicit_options.
4907 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4908 global_options_set instead of rs6000_explicit_options.
4909 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4910 global_options_set instead of rs6000_explicit_options.
4911 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4912 global_options_set instead of rs6000_explicit_options.
4913 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
4914 global_options_set instead of rs6000_explicit_options.
4915 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4916 global_options_set instead of rs6000_explicit_options.
4917 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
4919 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4920 global_options_set instead of rs6000_explicit_options.
4921 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
4922 (rs6000_cmodel): New Enum and EnumValue entries.
4923 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4924 global_options_set instead of rs6000_explicit_options.
4925 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
4926 (mtls-size=): Use Enum and Var.
4927 (rs6000_tls_size): New Enum and EnumValue entries.
4929 2011-05-05 Michael Matz <matz@suse.de>
4931 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
4932 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
4933 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
4934 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
4935 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
4936 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
4937 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
4938 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
4939 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
4940 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
4941 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
4942 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
4943 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
4944 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
4945 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
4946 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
4948 2011-05-05 Richard Guenther <rguenther@suse.de>
4950 * expmed.c (expand_variable_shift): Rename to ...
4951 (expand_shift_1): ... this. Take an expanded shift amount.
4952 For rotates recurse directly not building trees for the shift amount.
4953 (expand_variable_shift): Wrap around expand_shift_1.
4954 (expand_shift): Adjust.
4956 2011-05-05 Jakub Jelinek <jakub@redhat.com>
4958 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
4960 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
4962 * tree.h (get_pending_sizes): Remove prototype.
4963 (put_pending_size): Likewise.
4964 (put_pending_sizes): Likewise.
4965 * stor-layout.c (pending_sizes): Delete.
4966 (get_pending_sizes): Likewise.
4967 (put_pending_size): Likewise.
4968 (put_pending_sizes): Likewise.
4969 (variable_size): Do not call put_pending_size and tidy up.
4970 * function.h (struct function): Remove dont_save_pending_sizes_p.
4971 * lto-streamer-in.c (input_function): Do not stream it.
4972 * lto-streamer-out.c (output_function): Likewise.
4973 * tree-inline.c (initialize_cfun): Do not copy it.
4974 * c-decl.c (store_parm_decls): Do not set it.
4975 * omp-low.c (create_task_copyfn): Likewise.
4976 * tree-optimize.c (tree_rest_of_compilation): Likewise.
4978 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
4980 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
4982 (*movdf_internal): Ditto.
4983 (*movdf_internal_nointeger): Ditto.
4984 (*movsf_internal): Ditto.
4986 2011-05-05 Joseph Myers <joseph@codesourcery.com>
4988 * c-decl.c (finish_decl): Don't call get_pending_sizes.
4989 (grokparm): Add parameter expr. Pass it to grokdeclarator.
4990 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
4991 (c_variable_size): Remove.
4992 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
4993 call put_pending_sizes.
4994 (get_parm_info): Add parameter expr. Use it to set
4995 arg_info->pending_sizes.
4996 (store_parm_decls): Use arg_info->pending_sizes instead or calling
4998 * c-parser.c (c_parser_parms_declarator): Update call to
4999 c_parser_parms_list_declarator.
5000 (c_parser_parms_list_declarator): Take parameter expr. Update
5001 call to push_parm_decl. Update recursive call. Don't call
5002 get_pending_sizes. Update calls to get_parm_info.
5003 (c_parser_objc_method_definition): Update calls to
5004 c_parser_objc_method_decl and objc_start_method_definition.
5005 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
5006 (c_parser_objc_method_decl): Add parameter expr. Update call to
5008 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
5009 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
5010 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
5012 2011-05-05 Michael Hope <michael.hope@linaro.org>
5015 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
5018 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5020 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
5021 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
5022 (spu_output_mi_thunk): New function.
5024 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5026 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
5027 targetm.asm_out.print_operand.
5028 * config/sol2.c: Include target.h.
5030 2011-05-04 Jan Hubicka <jh@suse.cz>
5032 * ipa-inline.c (reset_edge_caches): New function.
5033 (update_caller_keys): Add check_inlinablity_for; do not
5034 reset edge caches; remove now unnecesary loop.
5035 (update_callee_keys): Add comments; reset node_growth_cache of callee.
5036 (update_all_callee_keys): Likewise.
5037 (inline_small_functions): Sanity check cache; update code
5040 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
5042 PR rtl-optimization/47612
5043 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
5044 as the last insn of the sequence to be moved.
5046 2011-05-04 Tobias Burnus <burnus@net-b.de>
5049 * doc/invoke.texi (Ofast): Document that it
5050 enables Fortran's -fno-protect-parens.
5052 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
5054 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
5056 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
5058 * stor-layout.c (variable_size): Do not issue errors.
5060 2011-05-04 Richard Guenther <rguenther@suse.de>
5062 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
5063 for array-ref indices.
5064 (tree_coverage_counter_addr): Likewise.
5065 (build_fn_info_type): Use size_int for index types.
5066 (build_gcov_info): Likewise.
5068 2011-05-04 Richard Guenther <rguenther@suse.de>
5070 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
5072 * c-typeck.c (really_start_incremental_init): Use bitsize_int
5073 for constructor indices.
5074 (push_init_level): Likewise.
5076 2011-05-04 Richard Guenther <rguenther@suse.de>
5078 * explow.c (promote_mode): Move variable declarations before code.
5080 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
5082 * tree.h (build_function_type_array): Declare.
5083 (build_varargs_function_type_array): Declare.
5084 (build_function_type_vec, build_varargs_function_type_vec): Define.
5085 * tree.c (build_function_type_array_1): New function.
5086 (build_function_type_array): New function.
5087 (build_varargs_function_type_array): New function.
5089 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
5091 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
5092 before setting STMT_VINFO_TYPE.
5094 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5096 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
5097 instead of spu_pass_by_reference.
5099 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5101 * calls.c (emit_library_call_value_1): Invoke
5102 promote_function_mode hook on libcall arguments.
5103 * explow.c (promote_function_mode, promote_mode): Handle TYPE
5104 argument being NULL.
5105 * targhooks.c (default_promote_function_mode): Lisewise.
5106 * config/s390/s390.c (s390_promote_function_mode): Likewise.
5107 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
5109 * doc/tm.texi: Document that TYPE argument might be NULL.
5111 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5113 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
5115 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5118 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
5120 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5122 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
5123 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
5125 * mips-tfile.c: ... here.
5126 Don't include coretypes.h, tm.h, filenames.h.
5127 (saber_stop): Remove definition and all calls.
5128 [__SABER__]: Remove.
5129 (__LINE__): Remove default.
5130 (Size_t, Ptrdiff_t): Remove definitions.
5131 Replace by size_t, ptrdiff_t.
5132 [!MIPS_DEBUGGING_INFO]: Remove.
5133 (SHASH_SIZE, THASH_SIZE): Remove defaults.
5134 (progname): Add const.
5136 Replace all uses by static.
5137 (ALIGN_SYMTABLE_OFFSET): Remove default.
5138 * mips-tdump.c: Don't include coretypes.h, tm.h.
5139 Remove !MIPS_IS_STAB guard.
5140 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
5141 $(TM_H), filenames.h dependencies.
5142 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
5144 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5147 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
5148 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
5150 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5153 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
5154 account and save/restore RETS.
5155 (PROFILE_BEFORE_PROLOGUE): Define.
5156 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
5157 the push insn to use predecrement.
5159 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5162 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
5164 2011-05-04 Nick Clifton <nickc@redhat.com>
5166 * config/mn10300/mn10300.c: Include cfgloop.h.
5168 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
5169 Lcc or a FLcc insn into the instruction stream.
5170 (mn10300_block_contains_call): New function. Returns true if the
5171 given basic block contains a CALL insn.
5172 (mn10300_loop_contains_call_insn): New function. Returns true if
5173 the given loop contains a CALL insn.
5174 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
5175 to use the SETLB and Lcc or FLcc insns.
5176 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
5177 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
5178 * config/mn10300/mn10300.opt (msetlb): New option. Used to
5179 disable the SETLB optimization.
5180 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
5181 __SETLB__ or __NO_SETLB__.
5182 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
5183 (movsf_internal): Handle MDR register.
5184 (cmpsi): Make visible.
5185 (setlb): New pattern.
5187 (FLcc): New pattern.
5189 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
5192 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
5193 for reg<->xmm moves.
5194 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
5195 (vec_concatv2di_rex64_sse): Ditto.
5196 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
5197 (*vec_extractv2di_1_rex64): Ditto.
5200 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
5202 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
5204 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
5206 2011-05-04 Richard Guenther <rguenther@suse.de>
5208 * tree.h (int_const_binop): Remove notrunc argument.
5209 * fold-const.c (int_const_binop): Remove notrunc argument. Always
5210 create integer constants that are properly truncated.
5211 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
5212 (const_binop): Remove zero notrunc argument to int_const_binop.
5213 (size_binop_loc): Likewise.
5214 (fold_div_compare): Likewise.
5215 (maybe_canonicalize_comparison_1): Likewise.
5216 (fold_comparison): Likewise.
5217 (fold_binary_loc): Likewise.
5218 (multiple_of_p): Likewise.
5219 * expr.c (store_constructor): Likewise.
5220 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5221 (maybe_fold_stmt_addition): Likewise.
5222 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
5223 * stor-layout.c (layout_type): Likewise.
5224 * tree-data-ref.c (tree_fold_divides_p): Likewise.
5225 * tree-sra.c (build_ref_for_offset): Likewise.
5226 (build_user_friendly_ref_for_offset): Likewise.
5227 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
5228 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5229 * tree-ssa-loop-niter.c (inverse): Likewise.
5230 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
5231 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
5232 * tree-switch-conversion.c (check_range): Likewise.
5233 (build_constructors): Likewise.
5234 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
5235 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
5236 (extract_range_from_assert): Likewise.
5237 (vrp_int_const_binop): Likewise.
5238 (extract_range_from_binary_expr): Likewise.
5239 (extract_range_from_unary_expr): Likewise.
5240 (check_array_ref): Likewise.
5241 (find_case_label_range): Likewise.
5242 (simplify_div_or_mod_using_ranges): Likewise.
5243 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
5244 comparing case labels for merging.
5246 2011-05-03 Mark Wielaard <mjw@redhat.com>
5248 * dwarf2out.c (debug_str_hash_forced): Removed.
5249 (gen_label_for_indirect_string): Removed.
5250 (get_debug_string_label): Removed.
5251 (AT_string_form): Generate label directly.
5252 (output_indirect_string): Test indirect_string_node for
5253 DW_FORM_strp instead of checking label and refcount.
5254 (prune_indirect_string): Removed.
5255 (prune_unused_types): Don't check debug_str_hash_forced or
5256 call prune_indirect_string.
5258 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
5261 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
5263 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
5267 * combine.c (try_combine): Skip debug insns at m_split tests.
5269 2011-04-26 Mark Wielaard <mjw@redhat.com>
5272 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
5273 when info_section_emitted.
5275 2011-05-03 Joseph Myers <joseph@codesourcery.com>
5277 * config/mips/mips-opts.h: New.
5278 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
5280 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
5281 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
5282 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
5284 * config/mips/mips.h (enum mips_code_readable_setting): Move to
5286 (mips_abi, mips_code_readable): Don't declare.
5287 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
5288 (mabi=): Use Enum and Var.
5289 (mips_abi): New Enum and EnumValue entries.
5290 (mcode-readable=): Use Enum and Var.
5291 (mips_code_readable_setting): New Enum and EnumValue entries.
5292 (mr10k-cache-barrier=): Use Enum and Var.
5293 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
5295 2011-05-03 Jan Hubicka <jh@suse.cz>
5297 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
5298 replace hash by pointer map.
5299 (cgraph_node_set_element_def, cgraph_node_set_element,
5300 const_cgraph_node_set_element, varpool_node_set_element_def,
5301 varpool_node_set_element, const_varpool_node_set_element): Remove.
5302 (free_cgraph_node_set, free_varpool_node_set): New function.
5303 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
5304 * tree-emutls.c: Free varpool node set.
5305 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
5306 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
5307 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
5308 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
5309 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
5310 Move here from ipa.c; implement using pointer_map
5311 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
5312 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
5313 debug_cgraph_node_set, varpool_node_set_new,
5314 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
5315 dump_varpool_node_set, debug_varpool_node_set):
5316 Move to ipa-uitls.c.
5317 * passes.c (ipa_write_summaries): Update.
5319 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5321 From Mike Frysinger:
5322 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
5323 bf542/bf544/bf547/bf548/bf549.
5325 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
5327 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
5329 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5332 * config/bfin/bfin.md (MOVCC): New mode_macro.
5333 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
5334 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
5335 comments from generated assembly.
5337 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5340 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
5341 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
5342 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
5343 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
5344 * config/bfin/lib1funcs.asm (___muldi3): New function.
5346 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5348 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
5349 build_function_type_list instead of build_function_type.
5350 Rearrange initialization of `args' to do so.
5352 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5354 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
5355 instead of build_function_type.
5357 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5359 * config/rs6000/rs6000.c (spe_init_builtins): Call
5360 build_function_type_list instead of build_function_type.
5361 (paired_init_builtins, altivec_init_builtins): Likewise.
5362 (builtin_function_type): Likewise.
5364 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5366 * config/sh/sh.c (sh_media_init_builtins): Call
5367 build_function_type_list instead of build_function_type.
5369 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5371 * config/sparc/sparc.c (sparc_file_end): Call
5372 build_function_type_list instead of build_function_type.
5374 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5376 * config/alpha/alpha.c (alpha_init_builtins): Call
5377 build_function_type_list instead of build_function_type.
5379 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5381 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
5382 build_function_type_list instead of build_function_type.
5384 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5386 * config/iq2000/i2000.c (iq2000_init_builtins): Call
5387 build_function_type_list instead of build_function_type.
5388 Delete `endlink' variable.
5390 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5392 * config/avr/avr.c (avr_init_builtins): Call
5393 build_function_type_list instead of build_function_type.
5395 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5397 * config/picochip/picochip.c (picochip_init_builtins): Call
5398 build_function_type_list instead of build_function_type.
5399 Delete `endlink' variable.
5401 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5403 * config/bfin/bfin.c (bfin_init_builtins): Call
5404 build_function_type_list instead of build_function_type.
5406 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5409 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
5410 that's not CONST_INT. Seemingly redundant check is due to PR39768.
5412 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5415 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
5416 libbffastfp overrides libgcc when -mfast-fp.
5418 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5420 Originally from Bernd Schmidt
5421 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
5422 * config/bfin/bfin.c (override_options): Test it and error if
5425 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5427 Originally From Bernd Schmidt
5428 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
5431 2011-05-03 Jeff Law <law@redhat.com>
5433 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
5434 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
5435 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
5436 than accessing AUX field directly. Free the AUX field before
5438 (thread_block, thread_through_loop_header): Likewise.
5439 (thread_single_edge, mark_threaded_blocks): Likewise.
5440 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
5441 (register_jump_thread): Do not attempt to thread to a NULL edge.
5443 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
5445 * function.c (init_function_start): Call decide_function_section.
5446 * varasm.c (decide_function_section): New function.
5447 (assemble_start_function): When not using
5448 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
5449 or first_function_block_is_cold.
5450 * rtl.h (decide_function_section): Declare.
5452 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
5453 Jakub Jelinek <jakub@redhat.com>
5456 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
5457 only succeed if req_mode is the same as set_mode.
5459 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
5461 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
5462 * genemit.c (gen_exp): Handle RETURN.
5463 * emit-rtl.c (verify_rtx_sharing): Likewise.
5464 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
5465 * rtl.c (copy_rtx): RETURN is shared.
5466 * rtl.h (enum global_rtl_index): Add GR_RETURN.
5468 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
5469 * config/s390/s390.c (s390_emit_epilogue): Likewise.
5470 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
5471 * config/cris/cris.c (cris_expand_return): Likewise.
5472 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
5473 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
5474 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
5475 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
5476 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
5478 * config/v850/v850.c (expand_epilogue): Likewise.
5479 * config/bfin/bfin.c (bfin_expand_call): Likewise.
5480 * config/arm/arm.md (epilogue): Likewise.
5481 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
5482 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
5483 variable to ret_reg.
5485 2011-05-03 Richard Guenther <rguenther@suse.de>
5488 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
5489 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
5490 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
5492 2011-05-03 Richard Guenther <rguenther@suse.de>
5494 * c-decl.c (grokdeclarator): Instead of looking at
5495 TREE_OVERFLOW check if the constant fits in the index type.
5497 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
5499 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
5500 (vec_store_lanes<mode><mode>): Likewise.
5502 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
5504 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
5505 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
5506 convert_optab_index values.
5507 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
5508 * genopinit.c (optabs): Initialize the new optabs.
5509 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
5510 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
5511 (expand_STORE_LANES): New functions.
5512 * tree.h (build_array_type_nelts): Declare.
5513 * tree.c (build_array_type_nelts): New function.
5514 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
5515 (vect_model_load_cost): Likewise.
5516 (vect_store_lanes_supported, vect_load_lanes_supported)
5517 (vect_record_strided_load_vectors): Declare.
5518 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
5519 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
5520 (vect_transform_strided_load): Split out statement recording into...
5521 (vect_record_strided_load_vectors): ...this new function.
5522 * tree-vect-stmts.c (create_vector_array, read_vector_array)
5523 (write_vector_array, create_array_ref): New functions.
5524 (vect_model_store_cost): Add store_lanes_p argument.
5525 (vect_model_load_cost): Add load_lanes_p argument.
5526 (vectorizable_store): Try to use store-lanes functions for
5528 (vectorizable_load): Likewise load-lanes and loads.
5529 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
5530 to vect_model_store_cost.
5531 (vect_build_slp_tree): Likewise vect_model_load_cost.
5533 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
5535 * hooks.h (hook_bool_mode_uhwi_false): Declare.
5536 * hooks.c (hook_bool_mode_uhwi_false): New function.
5537 * target.def (array_mode_supported_p): New hook.
5538 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
5539 * doc/tm.texi: Regenerate.
5540 * stor-layout.c (mode_for_array): New function.
5541 (layout_type): Use it.
5542 * config/arm/arm.c (arm_array_mode_supported_p): New function.
5543 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
5545 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
5548 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
5549 for -fstack-check if the size to allocate is negative.
5551 2011-05-02 Lawrence Crowl <crowl@google.com>
5553 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
5554 (timevar_cond_start): New for starting a timer only when it is not
5556 (timevar_cond_stop): New for stopping a timer when it was not already
5559 * timevar.c (timevar_stop): Enable start/stop timers to start again.
5560 (timevar_cond_start): New as above.
5561 (timevar_cond_stop): New as above.
5563 * timevar.def: Add start/stop timers for compiler phases,
5564 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
5565 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
5566 and TV_PHASE_FINALIZE.
5567 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
5568 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
5569 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
5570 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
5571 Make unused TV_OVERLOAD into a start/stop timer.
5573 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
5574 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
5575 to indicate that they are start/stop timers.
5577 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
5578 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
5579 Move initialization to do_compile.
5580 (do_compile): Add initialization from above.
5581 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
5583 * c-decl.c (c_write_global_declarations): Add start/stop of
5584 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
5586 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
5587 or TV_PARSE_INLINE, as appropriate.
5588 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
5589 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
5591 2011-05-02 Jason Merrill <jason@redhat.com>
5594 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
5596 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
5599 * c-decl.c (finish_decl): Only create a composite if the types are
5602 2011-05-02 Joseph Myers <joseph@codesourcery.com>
5604 * config/fr30/fr30-protos.h (Mmode): Don't define.
5605 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
5606 definition where used.
5607 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
5608 define. Expand definitions where used.
5609 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
5610 Expand definitions where used.
5611 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
5612 rx_function_arg, rx_function_arg_advance,
5613 rx_function_arg_boundary): Expand definitions of those macros.
5614 * config/v850/v850-protos.h (Mmode): Don't define. Expand
5615 definition where used.
5617 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
5619 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
5621 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
5622 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
5623 with *movv2sf_internal_rex64_avx.
5624 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
5625 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
5626 Use %v prefix in insn mnemonic to handle TARGET_AVX.
5627 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
5628 "vex" in "prefix" attribute calculation.
5629 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
5631 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
5634 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
5635 inputs match the output.
5637 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
5640 * config/m68k/m68k.c (m68k_expand_prologue): Set
5641 current_function_static_stack_size.
5643 2011-05-02 Jan Hubicka <jh@suse.cz>
5645 * lto-streamer.c (lto_streamer_cache_insert_1,
5646 lto_streamer_cache_lookup, lto_streamer_cache_create,
5647 lto_streamer_cache_delete): Use pointer map instead of hashtable.
5648 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
5650 2011-05-02 Joseph Myers <joseph@codesourcery.com>
5652 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
5653 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
5654 config/m68k/t-opts: New files.
5655 * config/m68k/m68k-tables.opt: New file (generated).
5656 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
5657 extra_options and m68k/t-opts to tmake_file.
5658 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
5659 (all_isas): Initialize using m68k-isas.def.
5660 (all_microarchs): Initialize using m68k-microarchs.def.
5661 (m68k_find_selection): Remove.
5662 (m68k_handle_option): Don't assert that global structures are in
5663 use. Use error_at. Access variables via opts pointer. Don't
5664 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
5665 directly for -m68020-40 and -m68020-60.
5666 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
5667 m68k_tune_entry here.
5668 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
5670 (m68k_library_id_string): Remove declaration.
5671 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
5672 (m68k_library_id_string): New Variable.
5673 (march=, mcpu=, mtune=): Use Enum and Var.
5675 2011-05-02 Richard Guenther <rguenther@suse.de>
5677 * varasm.c (output_constructor_regular_field): Compute zero-based
5678 index with double-ints. Make sure to ICE instead of producing
5680 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
5681 in asserts. Properly use a signed type.
5683 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
5685 * config/i386/sse.md (V): New mode iterator.
5686 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
5688 (V_256): Rename from AVX256MODE.
5689 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
5690 condition to all users.
5692 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
5693 condition to all users.
5694 (VF_128): Make V4SF mode unconditional.
5695 (VF_256): Rename from AVX256MODEF2P.
5696 (VI4F_128): Rename from SSEMODE4S.
5697 (VI8F_128): Rename from SSEMODE2D.
5698 (VI4F_256): Rename from AVX256MODE8P.
5699 (VI8F_256): Rename from AVX256MODE4P.
5700 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
5701 (ssescalarmodesuffix): Remove SF and DF modes.
5702 (SSEMODE124): Remove.
5703 (SSEMODE1248): Ditto.
5704 (SSEMODEF2P): Ditto.
5705 (AVXMODEF2P): Ditto.
5706 (AVXMODEFDP): Ditto.
5707 (AVXMODEFSP): Ditto.
5708 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
5710 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
5712 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
5713 xop_pcmov_<mode>256. Use V mode iterator.
5715 Adjust RTX patterns globally for renamed mode attributes.
5717 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5719 * haifa-sched.c (sched_emit_insn): Emit insn before first
5720 non-scheduled insn. Inform back-end about new insn. Add
5721 new insn to scheduled_insns list.
5723 2011-05-02 Richard Guenther <rguenther@suse.de>
5725 PR tree-optimization/48822
5726 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
5727 (process_scc): Indicate which iteration we start.
5729 2011-05-02 Jan Hubicka <jh@suse.cz>
5731 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
5732 (lto_section_overrun): New.
5733 * lto-section-out.c (append_block): Rename to ...
5734 (lto_append_block): ... this one; export.
5735 (lto_output_1_stream): Move lto lto-streamer.h
5736 (lto_output_data_stream): Update.
5737 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
5738 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
5741 2011-05-02 Richard Guenther <rguenther@suse.de>
5743 * tree.c (tree_code_counts): New global array.
5744 (record_node_allocation_statistics): Count individual tree codes.
5745 (dump_tree_statistics): Dump individual code stats.
5747 2011-05-01 Jan Hubicka <jh@suse.cz>
5749 * ipa-inline.c (caller_growth_limits): Fix thinko when
5750 looking for largest stack frame.
5751 * ipa-inline.h (dump_inline_summary): Declare.
5752 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
5754 (dump_inline_summary): Export.
5755 (debug_inline_summary): Declare as DEBUG_FUNCTION.
5757 2011-05-01 Anatoly Sokolov <aesok@post.ru>
5759 * reginfo.c (memory_move_cost): Change rclass argument type form
5760 'enum reg_class' to reg_class_t.
5761 * reload.h (memory_move_cost): Update prototype.
5762 * postreload.c reload_cse_simplify_set): Change type dclass var to
5764 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
5766 (ira_allocate_and_set_costs): Change aclass argument type form
5767 'enum reg_class' to reg_class_t.
5768 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
5769 Change aclass argument type to reg_class_t.
5770 (update_conflict_hard_reg_costs): Change type aclass and pref vars
5772 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
5773 memory_move_cost call.
5775 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
5776 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
5777 Change type tmp var to reg_class_t.
5779 2011-04-30 Jan Hubicka <jh@suse.cz>
5781 * ipa-inline.c (can_inline_edge_p): Disregard limits when
5782 inlining into function with flatten attribute.
5783 (want_inline_small_function_p): Be more realistic about inlining
5784 cold calls where callee size grows.
5786 2011-04-30 Jan Hubicka <jh@suse.cz>
5788 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
5791 2011-04-30 Anatoly Sokolov <aesok@post.ru>
5793 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
5794 PRINT_OPERAND_PUNCT_VALID_P): Remove.
5795 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
5796 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
5797 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5798 (print_operand): Rename to...
5799 (sparc_print_operand): ...this. Make static. Adjust
5800 sparc_print_operand function call.
5801 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
5804 2011-04-30 Jan Hubicka <jh@suse.cz>
5807 * ipa-inline.c (early_inliner): Disable when doing late
5808 addition of function.
5810 2011-04-30 Jakub Jelinek <jakub@redhat.com>
5812 * dwarf2out.c (get_address_mode): New inline.
5813 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
5814 if not dwarf_strict emit
5815 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
5816 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
5817 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
5818 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
5819 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
5820 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
5821 mem_loc_descriptor callers.
5822 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
5823 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
5824 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
5825 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
5826 (base_types): New variable.
5827 (get_base_type_offset, calc_base_type_die_sizes,
5828 base_type_for_mode, mark_base_types, base_type_cmp,
5829 move_marked_base_types): New functions.
5830 (calc_die_sizes): Assert that die_offset is 0 or equal to
5832 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
5833 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
5834 callers. If not dwarf_strict, call mem_loc_descriptor even for
5835 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
5836 (gen_subprogram_die): Don't give up on call site parameters
5837 with non-integral or large integral modes. Adjust
5838 mem_loc_descriptor callers.
5839 (prune_unused_types): Call prune_unused_types_mark on base_types
5841 (resolve_addr): Call mark_base_types.
5842 (dwarf2out_finish): Call move_marked_base_types.
5844 PR tree-optimization/48809
5845 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
5847 (gen_inbound_check): Don't compute index_expr - range_min in utype
5848 again, instead reuse SSA_NAME initialized in build_arrays.
5849 Remove two useless gsi_for_stmt calls.
5851 2011-04-29 Jeff Law <law@redhat.com>
5853 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
5855 2011-04-29 Martin Jambor <mjambor@suse.cz>
5857 * cgraph.h (cgraph_postorder): Remove declaration.
5858 * ipa-utils.h (ipa_free_postorder_info): Declare.
5859 (ipa_reverse_postorder): Likewise.
5860 * cgraphunit.c: Include ipa-utils.h.
5861 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
5862 * ipa-inline.c: Include ipa-utils.h.
5863 (ipa_inline): Update call to ipa_reverse_postorder.
5864 * ipa-pure-const.c (propagate_pure_const): Update call to
5865 ipa_reduced_postorder and ipa_print_order. Call
5866 ipa_free_postorder_info to clean up.
5867 (propagate_nothrow): Likewise.
5868 * ipa-reference.c (propagate): Removed a useless call to
5869 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
5870 and ipa_print_order. Call ipa_free_postorder_info to clean up.
5871 * ipa.c: Include ipa-utils.h.
5872 (ipa_profile): Update call to ipa_reverse_postorder.
5873 (cgraph_postorder): Moved to...
5874 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
5875 (ipa_utils_print_order): Renamed to ipa_print_order.
5876 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
5878 (ipa_free_postorder_info): New function.
5879 * passes.c: Include ipa-utils.h.
5880 (do_per_function_toporder): Update call to ipa_reverse_postorder.
5881 (ipa_write_summaries): Likewise.
5882 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
5883 (cgraphunit.o): Likewise.
5885 (ipa-inline.o): Likewise.
5887 2011-04-29 Jan Hubicka <jh@suse.cz>
5889 * gcc.dg/tree-ssa/inline-10.c: New testcase.
5890 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
5891 * ipa-inline.h (clause_t): Turn into unsigned int.
5892 * ipa-inline-analysis.c (add_clause): Do more simplification.
5893 (and_predicates): Shortcut more cases.
5894 (predicates_equal_p): Move forward; check that clauses are properly
5896 (or_predicates): Shortcut more cases.
5897 (edge_execution_predicate): Rewrite as...
5898 (set_cond_stmt_execution_predicate): ... this function; handle
5899 __builtin_constant_p.
5900 (set_switch_stmt_execution_predicate): New .
5901 (compute_bb_predicates): New.
5902 (will_be_nonconstant_predicate): Update TODO.
5903 (estimate_function_body_sizes): Use compute_bb_predicates
5904 and free them later, always try to estimate if stmt is constant.
5905 (estimate_time_after_inlining, estimate_size_after_inlining):
5906 Gracefully handle optimized out edges.
5907 (read_predicate): Fix off by one error.
5909 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
5911 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
5913 2011-04-27 Xinliang David Li <davidxl@google.com>
5915 * tree-profile.c (init_ic_make_global_vars): Set
5916 tls attribute on ic vars.
5917 * coverage.c (coverage_end_function): Initialize
5918 function_list with zero.
5920 2011-04-29 Richard Guenther <rguenther@suse.de>
5922 * builtins.c (fold_builtin_classify_type): Use integer_type_node
5923 for the type of the result.
5924 (fold_builtin_isascii): Likewise.
5925 (fold_builtin_toascii): Use integer_type_node where appropriate.
5926 (fold_builtin_logb): Likewise.
5927 (fold_builtin_frexp): Likewise.
5928 (fold_builtin_strstr): Likewise.
5929 (fold_builtin_strpbrk): Likewise.
5930 (fold_builtin_fputs): Likewise.
5931 (fold_builtin_sprintf): Likewise.
5932 (fold_builtin_snprintf): Likewise.
5933 (fold_builtin_printf): Likewise.
5934 (do_mpfr_remquo): Use a proper type for the assigned constant.
5935 (do_mpfr_lgamma_r): Likewise.
5936 * dwarf2out.c (resolve_one_addr): Use size_int.
5937 * except.c (init_eh): Likewise.
5938 (assign_filter_values): Use integer_type_node for filter values.
5939 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
5941 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
5942 for EH region numbers.
5943 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
5944 for the shift amount.
5946 2011-04-29 Richard Guenther <rguenther@suse.de>
5948 * expr.h (expand_shift): Rename to ...
5949 (expand_variable_shift): ... this.
5950 (expand_shift): Take a constant shift amount.
5951 * expmed.c (expand_shift): Rename to ...
5952 (expand_variable_shift): ... this.
5953 (expand_shift): New wrapper around expand_variable_shift.
5954 * expr.c (convert_move, emit_group_load_1, emit_group_store,
5955 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
5956 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
5957 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
5958 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
5959 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
5960 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
5961 emit_store_flag_1, emit_store_flag): Likewise.
5962 * builtins.c (expand_builtin_signbit): Likewise.
5963 * calls.c (load_register_parameters): Likewise.
5964 * function.c (assign_parm_setup_block): Likewise.
5965 * lower-subreg.c (resolve_shift_zext): Likewise.
5966 * optabs.c (widen_bswap, expand_abs_nojump,
5967 expand_one_cmpl_abs_nojump, expand_float): Likewise.
5968 * spu/spu.c (spu_expand_extv): Likewise.
5969 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
5971 2011-04-29 Richard Guenther <rguenther@suse.de>
5973 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
5974 for the remapped region number.
5975 * predict.c (build_predict_expr): Use integer_type_node for the
5977 * fold-const.c (fold_binary_loc): Use integer_type_node for
5978 the shift amount. Use a proper type for the PLUS_EXPR operand.
5980 2011-04-29 Michael Matz <matz@suse.de>
5982 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
5983 other trees that just builtins.
5984 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
5986 2011-04-29 Richard Guenther <rguenther@suse.de>
5988 * tree-nested.c (get_trampoline_type): Use size_int.
5989 (get_nl_goto_field): Likewise.
5990 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
5992 (lower_eh_constructs_2): Likewise.
5993 (lower_resx): Likewise.
5994 (lower_eh_dispatch): Likewise.
5995 * tree-mudflap.c (mf_build_string): Use size_int.
5996 (mudflap_register_call): Use integer_type_node for the flag.
5997 (mudflap_enqueue_constant): Use size_int.
5998 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
5999 instead of rebuilding it.
6001 2011-04-29 Richard Guenther <rguenther@suse.de>
6003 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
6004 Handle OBJ_TYPE_REF.
6005 (find_func_aliases_for_call): Use it more consistently.
6007 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
6009 * haifa-sched.c (last_nondebug_scheduled_insn): New.
6010 (rank_for_schedule): Use it.
6011 (schedule_block): Set it.
6013 2011-04-28 David Li <davidxl@google.com>
6015 * tree.c (crc32_string): Use crc32_byte.
6016 (crc32_byte): New function.
6017 * tree.h (crc32_byte): New function.
6018 * gcov.c (read_graph_file): Handle new cfg_cksum.
6019 (read_count_file): Ditto.
6020 * profile.c (instrument_values): Ditto.
6021 (get_exec_counts): Ditto.
6022 (read_profile_edge_counts): Ditto.
6023 (compute_branch_probabilities): Ditto.
6024 (compute_value_histograms): Ditto.
6025 (branch_prob): Ditto.
6026 (end_branch_prob): Ditto.
6027 * coverage.c (read_counts_file): Ditto.
6028 (get_coverage_counts): Ditto.
6029 (tree_coverage_counter_addr): Ditto.
6030 (coverage_checksum_string): Ditto.
6031 (coverage_begin_output): Ditto.
6032 (coverage_end_function): Ditto.
6033 (build_fn_info_type): Ditto.
6034 (build_fn_info_value): Ditto.
6035 * libgcov.c (gcov_exit): Ditto.
6036 * gcov-dump.c (tag_function): Ditto.
6037 (compute_checksum): Remove.
6039 2011-04-29 Alan Modra <amodra@gmail.com>
6041 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6042 unspec plus offset. Tidy macho code.
6044 2011-04-29 Martin Jambor <mjambor@suse.cz>
6046 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
6047 node instead of a decl. Update all callers.
6048 * cgraph.h: Update declaration.
6050 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
6052 PR tree-optimization/48765
6053 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
6054 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
6055 to indicate if loop aware SLP is being used. Scan the statements
6056 and update the vectorization factor according to the type of
6057 vectorization before statement analysis.
6058 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
6059 pass it to vect_analyze_loop_operations.
6060 (vectorizable_reduction): Set number of copies to 1 in case of pure
6062 * tree-vect-stmts.c (vectorizable_conversion,
6063 vectorizable_assignment, vectorizable_shift,
6064 vectorizable_operation, vectorizable_type_demotion,
6065 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
6067 (vectorizable_condition): Move the check that it is not SLP
6068 vectorization before the number of copies check.
6069 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
6070 to vectorize the loop using SLP.
6072 2011-04-28 Jakub Jelinek <jakub@redhat.com>
6075 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
6078 2011-04-28 Joseph Myers <joseph@codesourcery.com>
6080 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
6081 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
6082 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
6083 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
6084 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
6086 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6087 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6088 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6089 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6090 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6091 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
6093 * config/i386/linux.h (REG_NAME): Don't define.
6094 * config/i386/linux64.h (REG_NAME): Don't define.
6095 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
6096 Undefine before defining.
6098 2011-04-28 Jan Hubicka <jh@suse.cz>
6100 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
6101 nonconstant_names array.
6102 (estimate_function_body_sizes): Build nonconstant_names array; handle
6103 BUILT_IN_CONSTANT_P.
6105 2011-04-28 Richard Guenther <rguenther@suse.de>
6109 2011-04-28 Richard Guenther <rguenther@suse.de>
6111 * tree-ssa-structalias.c (solve_constraints): Build succ graph
6112 as late as possible.
6114 2011-04-28 Richard Guenther <rguenther@suse.de>
6116 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
6117 (debug_constraint): Do it here.
6118 (dump_constraints): And here.
6119 (rewrite_constraints): And here.
6120 (dump_constraint_edge): Remove.
6121 (dump_constraint_graph): Rewrite to produce DOT output.
6122 (solve_constraints): Build succ graph as late as possible.
6123 Dump constraint graphs before and after solving.
6125 2011-04-28 Richard Guenther <rguenther@suse.de>
6127 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6128 New function split out from ...
6129 (find_func_aliases): ... here. Call it.
6130 (find_func_aliases_for_call): Likewise.
6132 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
6134 * internal-fn.h (internal_fn_name_array): Declare.
6135 (internal_fn_flags_array): Likewise.
6137 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
6139 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
6140 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
6142 (ssemodefsuffix): Remove.
6143 (ssevecmodesuffix): New mode attribute.
6144 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
6145 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
6146 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
6147 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
6148 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
6149 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
6150 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
6151 ssemodesuffix mode attribute.
6152 (float splitters): Use ssevecmodesuffix mode attribute.
6153 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
6154 (sseinsmode): Rename from avxvecmode.
6155 (avxsizesuffix): Rename from avxmodesuffix.
6156 (sseintvecmode): Rename from avxpermvecmode.
6157 (ssedoublevecmode): Rename from ssedoublesizemode.
6158 (ssehalfvecmode): Rename from avxhalfvecmode.
6159 (ssescalarmode): Rename from avxscalarmode.
6160 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
6161 templates for ssemodesuffix mode attribute.
6162 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
6165 Adjust RTX patterns globally for renamed mode attributes.
6167 2011-04-27 Jan Hubcika <jh@suse.cz>
6169 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
6170 * ipa-inline-analysis.c: Include alloc-pool.h.
6171 (edge_predicate_pool): New.
6172 (trye_predicate_p): New function
6173 (false_predicate_p): New function.
6174 (add_clause): Sanity check that false clauses are "optimized";
6175 never add clauses to predicate that is already known to be false.
6176 (and_predicate): Use flase_predicate_p.
6177 (evaulate_predicate): Rename to ...
6178 (evaluate_predicate): ... this one; update all callers; assert
6179 that false is not listed among possible truths.
6180 (dump_predicate): Use true_predicate_p.
6181 (account_size_time): Use false_predicate_p.
6182 (evaulate_conditions_for_edge): Rename to ...
6183 (evaluate_conditions_for_edge) ... this one.
6184 (edge_set_predicate): New function.
6185 (inline_edge_duplication_hook): Duplicate edge predicates.
6186 (inline_edge_removal_hook): Free edge predicates.
6187 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
6188 (dump_inline_summary): Update.
6189 (estimate_function_body_sizes): Set edge predicates.
6190 (estimate_calls_size_and_time): Handle predicates.
6191 (estimate_callee_size_and_time): Update.
6192 (remap_predicate): Add toplev_predicate; update comment.
6193 (remap_edge_predicates): New function.
6194 (inline_merge_summary): Compute toplev predicate; update.
6195 (read_predicate): New function.
6196 (read_inline_edge_summary): Use it.
6197 (inline_read_section): Likewise.
6198 (write_predicate): New function.
6199 (write_inline_edge_summary): Use it.
6200 (inline_write_summary): Likewise.
6201 (inline_free_summary): Free alloc pool and edge summary vec.
6203 2011-04-27 Richard Guenther <rguenther@suse.de>
6205 * tree-ssa-structalias.c (changed_count): Remove.
6206 (changed): Use a bitmap.
6207 (unify_nodes): Adjust.
6208 (do_sd_constraint): Likewise.
6209 (do_ds_constraint): Likewise.
6210 (do_complex_constraint): Likewise.
6211 (solve_graph): Likewise.
6213 2011-04-27 Jan Hubicka <jh@suse.cz>
6215 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
6217 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
6219 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
6220 (avx_vperm2f128_*_operand): Ditto.
6221 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
6222 Use avx_vpermilp_parallel in insn condition.
6223 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
6224 Use avx_vperm2f128_parallel in insn condition.
6226 2011-04-27 Richard Guenther <rguenther@suse.de>
6228 * Makefile.in (tree-ssa-structalias.o): Remove
6229 gt-tree-ssa-structalias.h dependency.
6230 (GTFILES): Remove tree-ssa-structalias.c.
6231 * tree.c (allocate_decl_uid): New function.
6232 (make_node_stat): Use it.
6233 (copy_node_stat): Likewise.
6234 * tree.h (allocate_decl_uid): Declare.
6235 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
6236 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
6237 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
6238 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
6239 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
6240 (struct heapvar_map): Likewise.
6241 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
6242 heapvar_insert): Likewise.
6243 (make_heapvar_for): Rename to ...
6244 (make_heapvar): ... this. Simplify.
6245 (fake_var_decl_obstack): New global var.
6246 (build_fake_var_decl): New function.
6247 (make_constraint_from_heapvar): Adjust.
6248 (handle_lhs_call): Likewise.
6249 (create_function_info_for): Likewise.
6250 (intra_create_variable_infos): Likewise.
6251 (init_alias_vars): Allocate fake_var_decl_obstack.
6252 (init_alias_heapvars, delete_alias_heapvars): Remove.
6253 (compute_points_to_sets): Do not call init_alias_heapvars.
6254 (ipa_pta_execute): Likewise.
6255 (delete_points_to_sets): Free fake_var_decl_obstack.
6257 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6259 * config/spu/divmovti4.c (union qword_UTItype): New data type.
6260 (si_from_UTItype, si_to_UTItype): New functions.
6261 (__udivmodti4): Use them to implement type-punning.
6262 * config/spu/multi3.c (union qword_TItype): New data type.
6263 (si_from_TItype, si_to_TItype): New functions.
6264 (__multi3): Use them to implement type-punning.
6266 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6268 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
6270 2011-04-27 Jan Hubicka <jh@suse.cz>
6272 * ipa-prop.c (function_insertion_hook_holder): New holder.
6273 (ipa_add_new_function): New function.
6274 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
6275 Register/deregister holder.
6277 2011-04-27 Richard Guenther <rguenther@suse.de>
6279 PR tree-optimization/48772
6280 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
6282 2011-04-27 Richard Guenther <rguenther@suse.de>
6284 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
6285 TARGET_MEM_REF handling.
6287 2011-04-27 Nick Clifton <nickc@redhat.com>
6289 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
6290 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
6291 (REG_CLASS_NAMES): Likewise.
6292 (REG_CLASS_CONTENTS): Likewise.
6293 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
6294 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
6295 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
6296 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
6297 (EVEN_REGS): New macro. Alias for QUAD_REGS.
6298 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
6299 duplicate register classes.
6300 (frv_class_likely_spilled_p): Likewise.
6301 (frv_register_move_cost): Likewise.
6303 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
6304 end of the regno_reg_class array.
6306 2011-04-27 Jakub Jelinek <jakub@redhat.com>
6309 * c-typeck.c (build_binary_op): Don't wrap arguments if
6310 int_operands is true.
6312 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
6315 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
6316 targetm.calls.must_pass_in_stack for void type.
6318 2011-04-26 Jan Hubicka <jh@suse.cz>
6320 * cgraphbuild.c (build_cgraph_edges): Update call
6321 of cgraph_create_edge and cgraph_create_indirect_edge.
6322 * cgraph.c (cgraph_create_edge_including_clones,
6323 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
6324 cgraph_update_edges_for_call_stmt_node): Do not take nest
6325 argument; do not initialize call_stmt_size/time.
6326 (dump_cgraph_node): Do not dump nest.
6327 (cgraph_clone_edge): Do not take loop_nest argument;
6328 do not propagate it; do not clone call_stmt_size/time.
6329 (cgraph_clone_node): Likewise.
6330 (cgraph_create_virtual_clone): Update.
6331 * cgraph.h (struct cgraph_edge): Remove
6332 call_stmt_size/call_stmt_time/loop_nest.
6333 (cgraph_create_edge, cgraph_create_indirect_edge,
6334 cgraph_create_edge_including_clones, cgraph_clone_node): Update
6336 * tree-emutls.c (gen_emutls_addr): Update.
6337 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
6338 loop_nest; handle indirect calls, too.
6339 (clone_inlined_nodes): Do not care about updating inline summaries.
6340 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
6341 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
6342 stream call_stmt_size/call_stmt_time/loop_nest.
6343 * ipa-inline.c (edge_badness): Update.
6344 (ipa_inline): dump summaries after inlining.
6345 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
6347 (inline_edge_summary): New function.
6348 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
6349 (inline_edge_removal_hook): Handle edge summaries.
6350 (inline_edge_duplication_hook): New hook.
6351 (inline_summary_alloc): Alloc hooks.
6352 (initialize_growth_caches): Do not register removal hooks.
6353 (free_growth_caches); Do not free removal hook.
6354 (dump_inline_edge_summary): New function.
6355 (dump_inline_summary): Use it.
6356 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
6357 (inline_update_callee_summaries): New function.
6358 (inline_merge_summary): Use it.
6359 (do_estimate_edge_time, do_estimate_edge_growth): Update.
6360 (read_inline_edge_summary): New function.
6361 (inline_read_section): Use it.
6362 (write_inline_edge_summary): New function.
6363 (inline_write_summary): Use it.
6364 (inline_free_summary): Free edge new holders.
6365 * tree-inline.c (copy_bb): Update.
6367 2011-04-26 Jason Merrill <jason@redhat.com>
6369 * tree-eh.c (lower_try_finally_switch): Create the label along with
6370 the CASE_LABEL_EXPR.
6372 2011-04-26 David S. Miller <davem@davemloft.net>
6373 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6375 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
6376 * configure: Regenerate.
6378 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6381 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
6383 (VEC_reduc): New code iterator and splitters for vector reduction.
6384 (VEC_reduc_name): Ditto.
6385 (VEC_reduc_rtx): Ditto.
6386 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
6387 (reduc_<VEC_reduc_name>_v4sf): Ditto.
6389 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6390 support for extracting SF on VSX.
6392 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
6393 generating xscvspdp.
6394 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
6395 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
6396 double add, minimum, maximum vector reduction.
6397 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
6398 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
6399 optimize double vector reduction.
6400 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
6402 2011-04-26 Joseph Myers <joseph@codesourcery.com>
6404 * config/fr30/fr30.h (inhibit_libc): Don't define.
6405 * config/m32r/m32r-protos.h: Correct comment.
6406 * config/v850/v850.h (GHS_default_section_names,
6407 GHS_current_section_names): Use tree, not union tree_node *.
6409 2011-04-26 Xinliang David Li <davidxl@google.com>
6411 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
6412 * c-family/c-opts.c (c_common_handle_option): Set
6413 warn_maybe_uninitialized.
6414 * opts.c (common_handle_option): Ditto.
6415 * common.opt: New option.
6416 * tree-ssa.c (warn_uninit): Add one more parameter.
6417 (warn_uninitialized_var): Pass warning code.
6418 * tree-flow.h: Interface change.
6420 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6422 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
6423 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
6424 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
6426 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6428 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
6429 * config/mips/mips.opt (mmips-tfile): Remove.
6431 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
6432 mips-tdump reference to ...
6433 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
6434 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
6435 reference by Tru64 UNIX.
6437 2011-04-26 Jakub Jelinek <jakub@redhat.com>
6440 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
6441 is error_mark_node, set value to NULL.
6443 PR tree-optimization/48734
6444 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
6445 if return value from maybe_fold_*_comparsions isn't something
6446 the code is prepared to handle.
6448 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
6450 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
6452 (ext_QIreg_nomode_operands): Remove.
6453 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
6457 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
6459 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
6461 2011-04-26 Richard Guenther <rguenther@suse.de>
6463 * c-typeck.c (build_unary_op): Do not expand array-refs via
6464 pointer arithmetic. Only adjust qualifiers for function types.
6466 2011-04-26 Richard Guenther <rguenther@suse.de>
6469 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
6470 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
6471 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
6472 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
6474 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
6476 * doc/extend.texi: Document __underlying_type.
6478 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
6480 * config/rs6000/titan.md (automata_option "progress"): Remove.
6482 2011-04-25 Jeff Law <law@redhat.com>
6484 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
6486 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
6488 * system.h (ENUM_BITFIELD): Remove.
6490 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
6491 Eric Botcazou <ebotcazou@adacore.com>
6493 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
6494 for STORE_FLAG_VALUE==-1 case.
6496 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
6499 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
6500 LEGITIMATE_PIC_OPERAND_P.
6502 2011-04-24 Jan Hubicka <jh@suse.cz>
6504 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
6506 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
6507 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
6508 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
6509 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
6510 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
6511 Sanity check predicate length.
6512 (remap_predicate): Likewise; sanity check jump functions.
6513 (inline_read_section, inline_write_summary): Sanity check
6516 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
6519 * doc/extend.texi (Type Traits): Document __is_standard_layout,
6520 __is_literal_type, and __is_trivial; update throughout about
6521 possibly cv-qualified void types.
6523 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
6525 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
6526 testsuite and make it version agnostic.
6528 2011-04-22 Jan Hubicka <jh@suse.cz>
6530 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
6532 2011-04-23 Jakub Jelinek <jakub@redhat.com>
6535 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
6536 to VOID_TYPE even around MODIFY_EXPR.
6538 2011-04-22 Mike Stump <mikestump@comcast.net>
6540 * gensupport.c (read_md_rtx): Fix typo in comment.
6541 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
6544 2011-04-22 Jan Hubicka <jh@suse.cz>
6546 * gengtype.c (open_base_files): Add ipa-inline.h include.
6547 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
6548 ipa-prop.c; update all uses.
6549 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
6550 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
6551 merge summary of inlined function into former caller.
6552 * ipa-inline.c (max_benefit): Remove.
6553 (edge_badness): Compensate for removal of benefits.
6554 (update_caller_keys): Use
6555 reset_node_growth_cache/reset_edge_growth_cache.
6556 (update_callee_keys): Likewise.
6557 (update_all_callee_keys): Likewise.
6558 (inline_small_functions): Do not collect max_benefit; do not reset
6559 estimated_growth; call free_growth_caches and initialize_growth_caches.
6560 * ipa-inline.h (struct condition, type clause_t, struct predicate,
6561 struct size_time_entry): New structures.
6562 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
6563 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
6564 and estimated_growth.
6565 (edge_growth_cache_entry): New structure.
6566 (node_growth_cache, edge_growth_cache): New global vars.
6567 (estimate_growth): Turn into inline.
6568 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
6569 initialize_growth_caches, free_growth_caches): Declare.
6570 (estimate_edge_growth): Rewrite.
6571 (estimate_edge_time): Implement as inline cache lookup.
6572 (reset_node_growth_cache, reset_edge_growth_cache): New inline
6574 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
6575 (NUM_CONDITIONS): New constant.
6576 (predicate_conditions): New enum.
6577 (IS_NOT_CONSTANT): New constant.
6578 (edge_removal_hook_holder): New var.
6579 (node_growth_cache, edge_growth_cache): New global vars.
6580 (true_predicate, single_cond_predicate, false_predicate,
6581 not_inlined_predicate, add_condition, add_clause, and_predicates,
6582 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
6583 dump_clause, dump_predicate, account_size_time,
6584 evaulate_conditions_for_edge): New functions.
6585 (inline_summary_alloc): Move to heap.
6586 (inline_node_removal_hook): Clear condition and entry vectors.
6587 (inline_edge_removal_hook): New function.
6588 (initialize_growth_caches, free_growth_caches): New function.
6589 (dump_inline_summary): Update.
6590 (edge_execution_predicate): New function.
6591 (will_be_nonconstant_predicate): New function.
6592 (estimate_function_body_sizes): Compute BB and constantness predicates.
6593 (compute_inline_parameters): Do not clear estimated_growth.
6594 (estimate_edge_size_and_time): New function.
6595 (estimate_calls_size_and_time): New function.
6596 (estimate_callee_size_and_time): New function.
6597 (remap_predicate): New function.
6598 (inline_merge_summary): New function.
6599 (do_estimate_edge_time): New function based on...
6600 (estimate_edge_time): ... this one.
6601 (do_estimate_edge_growth): New function.
6602 (do_estimate_growth): New function based on....
6603 (estimate_growth): ... this one.
6604 (inline_analyze_function): Analyze after deciding on jump functions.
6605 (inline_read_section): New function.
6606 (inline_read_summary): Use it.
6607 (inline_write_summary): Write all the new data.
6608 * ipa-prop.c (ipa_get_param_decl_index): Export.
6609 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
6610 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
6612 (ipa_get_lattice): Move here from ipa-cp.c
6613 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
6614 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
6615 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
6616 cgraph_edge_inlinable_p): Remove.
6617 * cgraphunit.c: Include ipainline.h
6618 (cgraph_process_new_functions): Update call of
6619 compute_inline_parameters.
6621 2011-04-22 Richard Guenther <rguenther@suse.de>
6623 * tree.c (build_int_cst): Properly create canonicalized integer
6625 (build_int_cst_type): Remove scary comments.
6627 2011-04-22 Xinliang David Li <davidxl@google.com>
6629 * toplev.c (process_options): Enable -Werror=coverage-mismatch
6630 by default when -Wno-error is not specified.
6631 * opts-global.c (decode_options): Remove call to
6632 control_warning_options.
6634 2011-04-22 Jakub Jelinek <jakub@redhat.com>
6636 PR tree-optimization/48717
6637 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
6638 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
6640 2011-04-22 Joseph Myers <joseph@codesourcery.com>
6642 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
6643 definition where used.
6645 2011-04-22 Jakub Jelinek <jakub@redhat.com>
6648 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
6649 TREE_STATIC variables declared inside of some OpenMP construct.
6651 2011-04-22 Martin Jambor <mjambor@suse.cz>
6654 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
6656 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
6659 * c-typeck.c (pop_init_level): Do not warn about initializing
6662 2011-04-22 Alan Modra <amodra@gmail.com>
6664 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
6665 when returning call_cookie.
6666 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
6667 pointers, to functions with no more vector args than the current
6668 function, and some non-local calls for ABI_V4.
6669 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
6670 sibcall_nonlocal_aix64): Combine to ..
6671 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
6672 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
6673 (sibcall_value_nonlocal_aix<mode>): ..likewise.
6674 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
6675 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
6677 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
6678 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
6679 sibcall_value_symbolic_64): Delete.
6681 2011-04-21 Xinliang David Li <davidxl@google.com>
6683 * cgraph.h: Remove pid.
6684 * cgraph.c: Remove pid.
6685 * value-prof.c (init_node_map): New function.
6686 (del_node_map): New function.
6687 (find_func_by_funcdef_no): New function.
6688 (gimple_ic_transform): Call new function.
6689 * cgraphunit.c (cgraph_finalize_function): Remove pid.
6690 * function.c (get_last_funcdef_no): New function.
6691 * function.h (get_last_funcdef_no): New function.
6692 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
6693 to libgcov function.
6694 (tree-profiling): Call node map init and delete function.
6696 2011-04-21 Ian Lance Taylor <iant@google.com>
6698 * godump.c (go_format_type): Use exported Go name for anonymous
6701 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6703 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
6704 Call builtin_function_type_list instead of builtin_function_type.
6705 (UNARY, BINARY, TRINARY, QUAD): Likewise.
6707 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6709 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
6710 build_function_type_list instead of build_function_type.
6711 Delete variable `endlink'.
6713 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6715 * config/s390/s390.c (s390_init_builtins): Call
6716 build_function_type_list instead of build_function_type.
6718 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6720 * config/ia64/ia64.c (ia64_init_builtins): Call
6721 build_function_type_list instead of builtin_function_type.
6723 2011-04-21 Easwaran Raman <eraman@google.com>
6725 * cfgexpand.c (stack_var): Remove OFFSET...
6726 (add_stack_var): ...and its reference here...
6727 (expand_stack_vars): ...and here.
6728 (stack_var_cmp): Sort by descending order of size.
6729 (partition_stack_vars): Change heuristic.
6730 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6731 (dump_stack_var_partition): Add newline after each partition.
6733 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
6734 Jeff Law <law@redhat.com>
6736 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
6737 * gengtype.c (matching_file_name_substitute): Likewise.
6739 2011-04-21 Richard Guenther <rguenther@suse.de>
6742 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
6744 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
6746 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
6748 2011-04-21 Richard Guenther <rguenther@suse.de>
6750 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
6753 2011-04-21 Richard Guenther <rguenther@suse.de>
6755 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
6756 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
6757 Use DECL_P, not SSA_VAR_P.
6758 (ptr_derefs_may_alias_p): Likewise.
6759 (ptr_deref_may_alias_ref_p_1): Likewise.
6760 (decl_refs_may_alias_p): Likewise.
6761 (refs_may_alias_p_1): Likewise.
6762 (ref_maybe_used_by_call_p_1): Likewise.
6763 (call_may_clobber_ref_p_1): Likewise.
6764 (indirect_ref_may_alias_decl_p): Assume indirect refrences
6765 are either MEM_REF or TARGET_MEM_REF.
6766 (indirect_refs_may_alias_p): Likewise.
6767 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
6768 for MEM_EXPR of indirect calls.
6770 2011-04-21 Tristan Gingold <gingold@adacore.com>
6772 * vmsdbgout.c (write_srccorr): Compute file length from the string.
6773 (dst_file_info_struct): Remove flen field.
6774 (lookup_filename): Remove code that set flen field.
6776 2011-04-21 Tristan Gingold <gingold@adacore.com>
6778 * config/ia64/ia64.c (ia64_start_function): Add a guard.
6780 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
6783 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
6784 vec_extract and vec_concat for non-SSE4_1 targets.
6786 2011-04-21 Richard Guenther <rguenther@suse.de>
6788 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
6791 2011-04-21 Joseph Myers <joseph@codesourcery.com>
6793 * config/i386/cygming.h (union tree_node, TREE): Don't define or
6795 (FILE): Don't undefine.
6797 2011-04-21 Joseph Myers <joseph@codesourcery.com>
6799 * config/alpha/alpha.c (struct machine_function): Use rtx, not
6801 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
6803 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
6804 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
6805 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
6807 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
6808 definitions where used.
6809 * config/microblaze/microblaze.h (struct microblaze_args): Use
6810 rtx, not struct rtx_def *.
6811 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
6813 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
6814 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
6815 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
6816 not struct rtx_def *.
6817 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
6819 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
6821 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
6823 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
6825 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
6826 operand_equal_p to compare DR_BASE_ADDRESSes.
6827 (vect_check_interleaving): Likewise.
6829 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
6832 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
6833 for all Neon struct constants.
6835 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
6837 * target.def (legitimate_constant_p): New hook.
6838 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
6839 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
6840 * doc/tm.texi: Regenerate.
6841 * hooks.h (hook_bool_mode_rtx_true): Declare.
6842 * hooks.c (hook_bool_mode_rtx_true): Define.
6843 * system.h (LEGITIMATE_CONSTANT_P): Poison.
6844 * calls.c (precompute_register_parameters): Replace uses of
6845 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
6846 (emit_library_call_value_1): Likewise.
6847 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
6848 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
6849 * ira-costs.c (scan_one_insn): Likewise.
6850 * recog.c (general_operand, immediate_operand): Likewise.
6851 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
6852 * reload1.c (init_eliminable_invariants): Likewise.
6854 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
6856 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
6857 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
6859 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6860 * config/alpha/predicates.md (input_operand): Update call to
6861 alpha_legitimate_constant_p.
6863 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
6864 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
6865 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
6866 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6867 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
6868 (arm_legitimate_constant_p): New functions.
6869 (arm_cannot_force_const_mem): Make static.
6871 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
6873 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
6874 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
6875 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
6876 instead of bfin_legitimate_constant_p.
6877 (bfin_legitimate_constant_p): Make static. Add a mode argument.
6878 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6880 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
6882 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
6884 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
6885 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
6886 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6887 (frv_legitimate_constant_p): Make static. Add a mode argument.
6889 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
6890 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
6891 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
6893 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
6894 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
6895 * config/i386/i386.c (legitimate_constant_p): Rename to...
6896 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
6898 (ix86_cannot_force_const_mem): Update accordingly.
6899 (ix86_legitimate_address_p): Likewise.
6900 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6901 * config/i386/i386.md: Update commentary.
6903 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
6904 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
6905 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6906 (ia64_legitimate_constant_p): Make static. Add a mode argument.
6908 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
6910 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
6911 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
6912 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6913 (lm32_legitimate_constant_p): Make static. Add a mode argument.
6915 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
6916 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
6917 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
6919 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
6920 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6921 (m32r_legitimate_constant_p): New function.
6923 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
6924 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
6925 LEGITIMATE_CONSTANT_P.
6926 (LEGITIMATE_CONSTANT_P): Delete.
6927 * config/m68k/m68k.c (m68k_expand_prologue): Call
6928 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
6929 (m68k_legitimate_constant_p): New function.
6930 * config/m68k/m68k.md: Update comments.
6932 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
6933 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6934 (mcore_legitimate_constant_p): New function.
6936 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
6937 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
6938 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
6939 Add a mode argument.
6940 (mep_legitimate_address): Update accordingly.
6941 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6943 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
6945 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
6946 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
6947 static. Check OP's mode for VOIDmode.
6948 (microblaze_legitimate_constant_p): New function.
6949 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6951 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
6952 * config/mips/mips.c (mips_legitimate_constant_p): New function.
6953 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
6954 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6955 * config/mips/predicates.md: Update comments.
6957 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
6958 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
6959 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6960 (mmix_legitimate_constant_p): Make static, return a bool, and take
6962 (mmix_print_operand_address): Update accordingly.
6964 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
6966 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
6967 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
6968 static. Add a mode argument.
6969 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6971 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
6973 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
6974 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6975 (pa_legitimate_constant_p): New function.
6977 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
6979 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
6980 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6981 (pdp11_legitimate_constant_p): New function.
6983 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
6984 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6985 (rs6000_legitimate_constant_p): New function.
6987 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
6988 (rx_legitimate_constant_p): ...this.
6989 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
6990 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
6991 (rx_legitimate_constant_p): ...this.
6992 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6993 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
6995 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
6996 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
6997 * config/s390/s390.c (legitimate_constant_p): Rename to...
6998 (s390_legitimate_constant_p): ...this. Make static, return a bool,
6999 and add a mode argument.
7000 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7002 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
7004 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
7005 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7006 (sh_legitimate_constant_p): New function.
7008 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
7009 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
7010 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7011 (legitimate_constant_p): Rename to...
7012 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
7014 (constant_address_p): Update accordingly.
7016 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
7017 argument and return a bool.
7018 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
7019 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7020 (spu_legitimate_constant_p): Add a mode argument and return a bool.
7021 (spu_rtx_costs): Update accordingly.
7022 * config/spu/predicates.md (vec_imm_operand): Likewise.
7024 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
7026 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
7027 * config/v850/v850.c (v850_legitimate_constant_p): New function.
7028 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7030 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
7031 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
7032 * config/vax/vax.c (legitimate_constant_p): Likewise.
7034 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
7035 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7036 (xtensa_legitimate_constant_p): New function.
7038 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7040 * target.def (cannot_force_const_mem): Add a mode argument.
7041 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
7042 * doc/tm.texi: Regenerate.
7043 * hooks.h (hook_bool_mode_rtx_false): Declare.
7044 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
7045 (hook_bool_mode_const_rtx_true): Likewise.
7046 (hook_bool_mode_rtx_false): New function.
7047 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
7048 to be non-VOID. Update call to cannot_force_const_mem.
7049 (find_reloads): Update accordingly.
7050 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
7051 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
7053 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
7054 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
7055 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
7056 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
7057 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
7058 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
7059 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
7060 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
7061 (m68k_cannot_force_const_mem): ...this new function.
7062 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
7064 (mips_const_insns, mips_legitimize_const_move): Update calls.
7065 (mips_secondary_reload_class): Likewise.
7066 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
7067 (pa_cannot_force_const_mem): ...this new function.
7068 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
7069 (rs6000_cannot_force_const_mem): ...this new function.
7070 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
7072 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
7073 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
7075 (xtensa_cannot_force_const_mem): ...this new function.
7077 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7079 * config/mips/mips.c (mips16_build_function_stub): Call
7080 build_function_type_list instead of build_function_type.
7081 (mips16_build_call_stub): Likewise.
7083 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7085 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
7086 instead of build_function_type.
7088 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7090 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
7091 instead of build_function_type.
7093 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
7096 * config/i386/i386.md (insv): Change operand 0 constraint to
7097 "register_operand". Change operand 1 and 2 constraint to
7098 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
7099 * config/i386/sse.md (sse4_1_pinsrb): Export.
7100 (sse2_pinsrw): Ditto.
7101 (sse4_1_pinsrd): Ditto.
7102 (sse4_1_pinsrq): Ditto.
7103 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
7104 * config/i386/i386.c (ix86_expand_pinsr): New.
7106 2011-04-20 Easwaran Raman <eraman@google.com>
7108 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
7109 containing union type only with -fstrict-aliasing.
7111 2011-04-20 Jim Meyering <meyering@redhat.com>
7113 Remove useless if-before-free tests.
7114 * calls.c (expand_call, save_area): Likewise.
7115 * cfgcleanup.c (try_forward_edges): Likewise.
7116 * collect2.c (collect_execute): Likewise.
7117 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
7118 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
7119 * coverage.c (coverage_checksum_string): Likewise.
7120 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
7121 * cselib.c (cselib_init): Likewise.
7122 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
7123 (df_set_clean_cfg): Likewise.
7124 * function.c (free_after_compilation): Likewise.
7125 * gcc.c (do_spec_1, main): Likewise.
7126 * gcov.c (create_file_names): Likewise.
7127 * gensupport.c (identify_predicable_attribute): Likewise.
7128 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
7129 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
7130 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
7131 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
7132 * ipa-pure-const.c (local_pure_const): Likewise.
7133 * ipa-reference.c (propagate): Likewise.
7134 * ira-costs.c (free_ira_costs): Likewise.
7135 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
7136 * matrix-reorg.c (mat_free): Likewise.
7137 * prefix.c (get_key_value): Likewise.
7138 * profile.c (compute_value_histograms): Likewise.
7139 * reload1.c (free_reg_equiv): Likewise.
7140 * sched-deps.c (free_deps): Likewise.
7141 * sel-sched-ir.c (fence_clear): Likewise.
7142 * sese.c (set_rename, if_region_set_false_region): Likewise.
7143 * tree-data-ref.c (free_rdg): Likewise.
7144 * tree-eh.c (lower_try_finally): Likewise.
7145 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
7146 * tree-ssa-live.c (delete_var_map): Likewise.
7147 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
7148 * tree-ssa-pre.c (phi_trans_add): Likewise.
7150 2011-04-20 Jakub Jelinek <jakub@redhat.com>
7152 PR tree-optimization/48611
7153 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
7154 beyond ERT_MUST_NOT_THROW region.
7156 2011-04-20 Catherine Moore <clm@codesourcery.com>
7158 * config/mips/mips.opt (mfix-24k): New.
7159 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
7160 * config/mips/mips.md (length): Increase by 4 for stores if
7162 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
7163 all noreorder if fixing 24K errata.
7164 * doc/invoke.texi: Document mfix-24k.
7166 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
7168 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
7169 quad-word modes, reduce to 9-bit index range when above 1016 limit.
7171 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
7173 * config/arm/arm.c (arm_gen_constant): Move movw support ....
7174 (const_ok_for_op): ... to here.
7176 2011-04-20 Kai Tietz <ktietz@redhat.com>
7178 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
7179 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
7181 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
7183 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
7185 2011-04-20 Richard Guenther <rguenther@suse.de>
7187 PR tree-optimization/47892
7188 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
7191 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
7193 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
7195 2011-04-20 Tristan Gingold <gingold@adacore.com>
7197 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
7199 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
7203 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
7204 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
7205 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
7206 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
7207 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
7209 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
7212 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
7213 (avr_asm_named_section, avr_asm_output_aligned_common,
7214 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
7215 New functions to update...
7216 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
7217 (avr_asm_init_sections): Overwrite section callbacks for
7218 data_section, bss_section.
7219 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
7221 (avr_file_end): ...here.
7223 2011-04-20 Richard Guenther <rguenther@suse.de>
7226 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
7227 objects and types here. Adjust for their offset before comparing.
7229 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
7231 * tree-vect-stmts.c (vectorizable_store): Only chain one related
7234 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
7236 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
7237 (GIMPLE_H): Include $(INTERNAL_FN_H).
7238 (OBJS-common): Add internal-fn.o.
7239 (internal-fn.o): New rule.
7240 * internal-fn.def: New file.
7241 * internal-fn.h: Likewise.
7242 * internal-fn.c: Likewise.
7243 * gimple.h: Include internal-fn.h.
7244 (GF_CALL_INTERNAL): New gf_mask.
7245 (gimple_statement_call): Put fntype into a union with a new
7247 (gimple_build_call_internal): Declare.
7248 (gimple_build_call_internal_vec): Likewise.
7249 (gimple_call_same_target_p): Likewise.
7250 (gimple_call_internal_p): New function.
7251 (gimple_call_internal_fn): Likewise.
7252 (gimple_call_fntype): Return null for internal calls.
7253 (gimple_call_set_fntype): Assert that the function is not internal.
7254 (gimple_call_set_fn): Likewise.
7255 (gimple_call_set_fndecl): Likewise.
7256 (gimple_call_set_internal_fn): New function.
7257 (gimple_call_addr_fndecl): Handle null functions.
7258 (gimple_call_return_type): Likewise null types.
7259 * gimple.c (gimple_build_call_internal_1): New function.
7260 (gimple_build_call_internal): Likewise.
7261 (gimple_build_call_internal_vec): Likewise.
7262 (gimple_call_same_target_p): Likewise.
7263 (gimple_call_flags): Handle calls to internal functions.
7264 (gimple_call_fnspec): New function.
7265 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
7266 (gimple_has_side_effects): Handle null functions.
7267 (gimple_rhs_has_side_effects): Likewise.
7268 (gimple_call_copy_skip_args): Handle calls to internal functions.
7269 * cfgexpand.c (expand_call_stmt): Likewise.
7270 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
7271 * gimple-fold.c (gimple_fold_call): Handle null functions.
7272 (gimple_fold_stmt_to_constant_1): Don't fold
7273 calls to internal functions.
7274 * gimple-low.c (gimple_check_call_args): Handle calls to internal
7276 * gimple-pretty-print.c (dump_gimple_call): Likewise.
7277 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
7278 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
7279 (do_warn_unused_result): Likewise.
7280 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
7281 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
7282 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
7283 the target of a call.
7284 (initialize_hash_element): Update accordingly.
7285 (hashable_expr_equal_p): Use gimple_call_same_target_p.
7286 (iterative_hash_hashable_expr): Handle calls to internal functions.
7287 (print_expr_hash_elt): Likewise.
7288 * tree-ssa-pre.c (can_value_number_call): Likewise.
7289 (eliminate): Handle null functions.
7290 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
7291 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
7292 (find_func_aliases): Likewise.
7293 * value-prof.c (gimple_ic_transform): Likewise.
7294 (gimple_indirect_call_to_profile): Likewise.
7295 * lto-streamer-in.c (input_gimple_stmt): Likewise.
7296 * lto-streamer-out.c (output_gimple_stmt): Likewise.
7298 2011-04-19 Jan Hubicka <jh@suse.cz>
7300 * ipa-inline-transform.c (save_inline_function_body): Add comments.
7301 * ipa-inline.c (inline_small_functions): Compute summaries first,
7302 populate heap later.
7304 2011-04-19 Jan Hubicka <jh@suse.cz>
7306 * cgraph.h (save_inline_function_body): Remove.
7307 * ipa-inline-transform.c: New file, broke out of...
7308 * ipa-inline.c: ... this one; Update toplevel comment.
7309 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
7311 (update_noncloned_frequencies): Move to ipa-inline-transform.c
7312 (cgraph_mark_inline_edge): Rename to inline_call; move to
7313 ipa-inline-transform.c.
7314 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
7315 move to ipa-inline-transform.c
7316 (recursive_inlining, inline_small_functions, flatten_function,
7317 ipa_inline, inline_always_inline_functions,
7318 early_inline_small_functions): Update.
7319 (inline_transform): Move to ipa-inline-transform.c.
7320 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
7322 * Makefile.in (ipa-inline-transform.o): New file.
7323 * cgraphunit.c (save_inline_function_body): Move to
7324 ipa-inline-transform.c
7326 2011-04-19 DJ Delorie <dj@redhat.com>
7328 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
7329 registers if we already know there aren't any.
7330 (m32c_emit_epilogue): Don't emit a barrier here.
7331 (m32c_emit_eh_epilogue): Likewise.
7332 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
7333 operands at expand time.
7334 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
7336 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
7337 duplicates. Provide aliases instead.
7338 * config/m32c/prologue.md (eh_return): Emit a barrier here.
7339 (eh_epilogue): Add a "(return)" here as a hint to other parts of
7342 2011-04-19 Anatoly Sokolov <aesok@post.ru>
7344 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
7345 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
7346 (general_or_i64_p, sparc_register_move_cost): New function.
7348 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7350 * doc/install.texi (Configuration, --enable-threads): Remove mach.
7351 Add lynx, mipssde. Sort table.
7353 2011-04-19 Xinliang David Li <davidxl@google.com>
7355 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
7358 2011-04-19 Jakub Jelinek <jakub@redhat.com>
7361 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
7362 is a SUBREG with non-MODE_INT mode inside of it.
7364 2011-04-19 Martin Jambor <mjambor@suse.cz>
7366 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
7367 also according to actual contants.
7368 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
7369 (gimple_fold_call): Use it.
7370 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
7372 2011-04-19 Martin Jambor <mjambor@suse.cz>
7374 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
7375 non-pointer assignments.
7377 2011-04-19 Martin Jambor <mjambor@suse.cz>
7379 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
7380 account anc_offset and otr_type from the indirect edge info.
7381 * ipa-prop.c (get_ancestor_addr_info): New function.
7382 (compute_complex_ancestor_jump_func): Assignment analysis moved to
7383 get_ancestor_addr_info, call it.
7384 (ipa_note_param_call): Do not initialize information about polymorphic
7385 calls, return the indirect call graph edge. Remove the last
7386 parameter, adjust all callers.
7387 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
7388 parameters. Initialize polymorphic information in the indirect edge.
7390 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
7393 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
7394 the types if they have different enumeration identifiers.
7396 2011-04-19 Jan Hubicka <jh@suse.cz>
7398 * cgraph.h (cgraph_optimize_for_size_p): Declare.
7399 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
7400 * predict.c (cgraph_optimize_for_size_p): Break out from ...
7401 (optimize_function_for_size_p) ... here.
7403 2011-04-19 Richard Guenther <rguenther@suse.de>
7406 * tree.c (free_lang_data): Do not reset the decl-assembler-name
7409 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
7411 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
7412 if DECL_NO_INLINE_WARNING_P is set on the function.
7414 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
7417 * reload1.c (inc_for_reload): Return void. All callers changed.
7418 (emit_input_reload_insns): Don't try to delete previous output
7419 reloads to a register, or record spill_reg_store for autoincs.
7421 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
7423 * gengtype.h: Updated copyright year.
7424 (struct input_file_st): Add inpisplugin field.
7425 (type_fileloc): New function.
7427 (write_typed_struct_alloc_def): Add gcc_assert.
7428 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
7429 (write_typed_alloc_defns): Don't output for plugin files.
7430 (input_file_by_name): Clear inpisplugin field.
7431 (main): Set inpisplugin field for plugin files.
7433 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
7435 * gengtype-state.c (string_eq): New.
7436 (read_state): Use string_eq instead of strcmp when creating the
7439 2011-04-19 Wei Guozhi <carrot@google.com>
7442 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
7443 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
7445 * config/arm/constraints.md (Uu): New constraint.
7446 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
7448 2011-04-19 Tristan Gingold <gingold@adacore.com>
7450 * config.gcc (-*-*-*vms): Added.
7451 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
7453 * config/vms/vms-ld.c: New file.
7454 * config/vms/vms-ar.c: New file.
7455 * config/vms/t-vmsnative: New file.
7457 2011-04-18 Xinliang David Li <davidxl@google.com>
7459 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
7461 2011-04-18 Jakub Jelinek <jakub@redhat.com>
7464 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
7465 if TREE_TYPE (v) is non-NULL.
7467 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
7468 gimple_get_virt_mehtod_for_binfo.
7469 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
7470 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
7472 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7474 2011-04-18 Michael Matz <matz@suse.de>
7475 Steve Ellcey <sje@cup.hp.com>
7477 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
7478 use its mode as source mode if it isn't VOIDmode.
7480 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
7482 * doc/passes.texi: Fill crossref nodes.
7484 2011-04-18 Jim Meyering <meyering@redhat.com>
7486 Fix doubled-word typos in comments and strings
7487 * config/alpha/vms-unwind.h: s/for for/for/
7488 * config/arm/unwind-arm.h: Likewise.
7489 * config/microblaze/microblaze.c: Likewise.
7490 * config/sh/constraints.md: s/in in/in/
7491 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
7493 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
7495 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
7496 (AVX_FLOAT_MODE_P): Ditto.
7497 (AVX128_VEC_FLOAT_MODE_P): Ditto.
7498 (AVX256_VEC_FLOAT_MODE_P): Ditto.
7499 (AVX_VEC_FLOAT_MODE_P): Ditto.
7500 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
7501 (UNSPEC_MASKSTORE): Ditto.
7502 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
7503 Merge from <sse>_movmsk<ssemodesuffix> and
7504 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
7505 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
7507 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
7508 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
7509 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
7511 2011-04-18 Jan Hubicka <jh@suse.cz>
7513 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
7515 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
7516 (want_inline_function_called_once_p): Break out the logic from
7518 (edge_badness): Ensure that profile is not misupdated.
7519 (lookup_recursive_calls): Prioritize by call frequencies.
7520 (inline_small_functions): Move program size estimates here;
7521 actually process whole queue even when unit growth has been
7522 met. (to properly compute inline_failed reasons and for the
7523 case unit size decrease.) Revisit comments on recursive inlining.
7524 (ipa_inline): Remove unit summary code; first inline hot calls
7525 of functions called once, cold calls next.
7526 (order, nnodes): Remove unused variables.
7527 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
7528 (GTFILES): Remove ipa-inline.c
7529 * sel-sched.c (fill_insns): Silence uninitialized var warning.
7531 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
7533 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
7535 2011-04-18 Jie Zhang <jie@codesourcery.com>
7536 Richard Earnshaw <rearnsha@arm.com>
7538 * arm.c (neon_builtin_type_bits): Remove.
7539 (typedef enum neon_builtin_mode): New.
7540 (T_MAX): Don't define.
7541 (typedef enum neon_builtin_datum): Remove bits, codes[],
7542 num_vars and base_fcode. Add mode, code and fcode.
7543 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
7544 VAR10): Change accordingly.
7545 (neon_builtin_data[]): Change accordingly
7546 (arm_init_neon_builtins): Change accordingly.
7547 (neon_builtin_compare): Remove.
7548 (locate_neon_builtin_icode): Remove.
7549 (arm_expand_neon_builtin): Change accordingly.
7551 * arm.h (enum arm_builtins): Move to ...
7552 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
7554 * arm.c (arm_builtin_decl): Declare.
7555 (TARGET_BUILTIN_DECL): Define.
7556 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
7557 (arm_builtin_decls[]): New.
7558 (arm_init_neon_builtins): Store builtin declarations in
7559 arm_builtin_decls[].
7560 (arm_init_tls_builtins): Likewise.
7561 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
7562 (arm_builtin_decl): New.
7564 2011-04-18 Richard Guenther <rguenther@suse.de>
7566 * tree.c (upper_bound_in_type): Build properly canonicalized
7568 (lower_bound_in_type): Likewise.
7570 2011-04-18 Richard Guenther <rguenther@suse.de>
7572 * gimple.h (gimple_call_addr_fndecl): New function.
7573 (gimple_call_fndecl): Use it.
7574 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
7576 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
7577 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
7579 2011-04-18 Richard Guenther <rguenther@suse.de>
7582 * tree.c (build_string): STRING_CST is now derived from tree_typed.
7584 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
7587 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
7588 DECL_IN_CONSTANT_POOL without RTL.
7590 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
7591 Ira Rosen <ira.rosen@linaro.org>
7594 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
7595 to match neon_vzip/vuzp/vtrn_internal.
7596 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
7597 outputs explicitly dependent on both inputs.
7598 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
7600 2011-04-18 Jakub Jelinek <jakub@redhat.com>
7602 PR tree-optimization/48616
7603 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
7604 whether the shift is by scalar or vector based on whether all SLP
7605 scalar stmts have the same rhs.
7607 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
7609 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
7612 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
7615 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
7618 2011-04-17 Jan Hubicka <jh@suse.cz>
7620 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7621 * cgrpahunit.c (cgraph_finalize_function): Do not set
7622 finalized_by_frontend.
7623 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
7624 finalized_by_frontend.
7626 2011-04-17 Jan Hubicka <jh@suse.cz>
7628 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
7629 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
7630 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7631 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
7633 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
7635 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
7637 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
7640 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
7641 is non-null before accessing it.
7642 (input_cgraph): Remove trailing spaces.
7644 2011-04-17 Revital Eres <revital.eres@linaro.org>
7646 * params.def (sms-min-sc): New param flag.
7647 * modulo-sched.c (sms_schedule): Use it.
7648 * doc/invoke.texi (sms-min-sc): Document it.
7650 2011-04-17 Jan Hubicka <jh@suse.cz>
7652 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
7653 present, also set gimple_call_set_cannot_inline.
7654 * ipa-inline.c: Update toplevel comment.
7656 (cgraph_clone_inlined_nodes): Fix linebreaks.
7657 (cgraph_check_inline_limits): Restructure to ...
7658 (caller_growth_limits): ... this one; be more tolerant
7659 on growth in nested inline chains; add explanatory comment;
7660 fix stack accounting thinko introduced by previous patch.
7661 (cgraph_default_inline_p): Remove.
7662 (report_inline_failed_reason): New function.
7663 (can_inline_edge_p): New function.
7664 (can_early_inline_edge_p): New function.
7665 (leaf_node_p): Move upwards in file.
7666 (want_early_inline_function_p): New function.
7667 (want_inline_small_function_p): New function.
7668 (want_inline_self_recursive_call_p): New function.
7669 (cgraph_edge_badness): Rename to ...
7670 (edge_badness) ... this one; fix linebreaks.
7671 (update_edge_key): Update call of edge_baddness; add
7672 detailed dump about queue updates.
7673 (update_caller_keys): Use can_inline_edge_p and
7674 want_inline_small_function_p.
7675 (cgraph_decide_recursive_inlining): Rename to...
7676 (recursive_inlining): Use can_inline_edge_p and
7677 want_inline_self_recursive_call_p; simplify and remove no longer
7679 (cgraph_set_inline_failed): Remove.
7680 (add_new_edges_to_heap): Use can_inline_edge_p and
7681 want_inline_small_function_p.
7682 (cgraph_decide_inlining_of_small_functions): Rename to ...
7683 (inline_small_functions): ... this one; cleanup; use
7684 can/want predicates; cleanup debug ouput; work edges till fibheap
7685 is exhausted and do not stop once unit growth is reached; remove
7686 later loop processing remaining edges.
7687 (cgraph_flatten): Rename to ...
7688 (flatten_function): ... this one; use can_inline_edge_p
7689 and can_early_inline_edge_p predicates.
7690 (cgraph_decide_inlining): Rename to ...
7691 (ipa_inline): ... this one; remove unreachable nodes before
7692 inlining functions called once; simplify the pass.
7693 (cgraph_perform_always_inlining): Rename to ...
7694 (inline_always_inline_functions): ... this one; use
7695 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
7696 (cgraph_decide_inlining_incrementally): Rename to ...
7697 (early_inline_small_functions): ... this one; simplify
7698 using new predicates; cleanup; make dumps prettier.
7699 (cgraph_early_inlining): Rename to ...
7700 (early_inliner): newer inline regular functions into always-inlines;
7701 fix updating of call stmt summaries.
7702 (pass_early_inline): Update for new names.
7703 (inline_transform): Fix formating.
7704 (gate_cgraph_decide_inlining): Rename to ...
7705 (pass_ipa_inline): ... this one.
7706 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
7707 * ipa-inline-analysis.c (dump_inline_summary): Update.
7708 (compute_inline_parameters): Do not compute disregard_inline_limits;
7709 look for mismatching arguments.
7710 (estimate_growth): Fix handlig of non-trivial self recursion.
7711 (inline_read_summary): Do not read info->disregard_inline_limits.
7712 (inline_write_summary): Do not write info->disregard_inline_limits.
7713 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
7714 and move all checks into can_inline_edge_p predicate; re-enable code
7715 comparing optimization levels.
7716 (expand_call_inline): Do not test inline_forbidden_into_p.
7717 * Makefile.in (ipa-inline.o): Update arguments.
7719 2011-04-17 Revital Eres <revital.eres@linaro.org>
7721 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
7723 2011-04-17 Revital Eres <revital.eres@linaro.org>
7725 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
7727 2011-04-17 Michael Matz <matz@suse.de>
7729 PR tree-optimization/48622
7731 * ipa-inline-analysis.c (inline_read_summary): Read size/time
7732 in same order as they're written.
7734 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7736 * config/pa/predicates.md: Reorganize and simplify predicates.
7737 Eliminate duplicate code checks.
7738 (arith_operand): Rename to arith14_operand
7739 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
7740 * config/pa/pa.md: Use renamed operands.
7741 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
7742 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
7743 arith11_operand, adddi3_operand, indexed_memory_operand,
7744 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
7745 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
7746 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
7747 move_dest_operand, move_src_operand, prefetch_cc_operand,
7748 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
7749 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
7750 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
7751 div_operand, int5_operand, movb_comparison_operator,
7752 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
7753 arith_double_operand, ireg_operand, lhs_lshift_operand,
7754 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
7755 integer_store_memory_operand): Likewise.
7756 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
7757 (integer_store_memory_operand, read_only_operand,
7758 function_label_operand, borx_reg_operand,
7759 non_hard_reg_operand): Likewise.
7760 (eq_neq_comparison_operator): Delete unused operator.
7761 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
7762 function_label_operand.
7763 (emit_move_sequence): Likewise.
7765 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
7767 * config/i386/sse.md (sseunpackmode): New mode attribute.
7768 (ssepackmode): Ditto.
7769 (vec_pack_trunc_<mode>): Macroize expander from
7770 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
7771 (vec_unpacks_lo_<mode>): Macroize expander from
7772 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7773 (vec_unpacks_hi_<mode>): Macroize expander from
7774 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7775 (vec_unpacku_lo_<mode>): Macroize expander from
7776 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7777 (vec_unpacku_hi_<mode>): Macroize expander from
7778 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7779 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
7780 ix86_expand_sse4_unpack.
7781 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
7783 2011-04-16 Jan Hubicka <jh@suse.cz>
7785 * cgraphbuild.c: Include ipa-inline.h.
7786 (reset_inline_failed): Use initialize_inline_failed.
7787 * cgraph.c: Include ipa-inline.h.
7788 (cgraph_create_node_1): Do not initialize estimated_growth.
7789 (initialize_inline_failed): More to ipa-inline-analysis.c
7790 (dump_cgraph_node): Do not dump inline flags.
7791 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
7792 and disregard_inline_limits flags.
7793 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
7794 time, size, estimated_growth.
7795 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
7797 * cgraphunit.c (cgraph_decide_is_function_needed): Use
7798 DECL_DISREGARD_INLINE_LIMITS.
7799 (cgraph_analyze_function): Do not initialize
7800 node->local.disregard_inline_limits.
7801 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
7802 inlinable, versionable and disregard_inline_limits.
7803 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
7804 cgraph_check_inline_limits, cgraph_default_inline_p,
7805 cgraph_edge_badness, update_caller_keys, update_callee_keys,
7806 add_new_edges_to_heap): Update.
7807 (cgraph_decide_inlining_of_small_function): Update; set
7808 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
7809 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
7810 cgraph_decide_inlining_incrementally): Update.
7811 * ipa-inline.h (inline_summary): Add inlinable, versionable,
7812 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
7813 time, size and estimated_growth parameters.
7814 (estimate_edge_growth): Update.
7815 (initialize_inline_failed): Declare.
7816 * ipa-split.c: Include ipa-inline.h
7817 (execute_split_functions): Update.
7818 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
7819 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
7820 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
7821 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
7822 estimated_growth to INT_MIN.
7823 (inline_node_duplication_hook): Likewise.
7824 (dump_inline_summary): Dump new fields.
7825 (compute_inline_parameters): Update.
7826 (estimate_edge_time, estimate_time_after_inlining,
7827 estimate_size_after_inlining, estimate_growth, inline_read_summary,
7828 inline_write_summary):
7829 (initialize_inline_failed): Move here from cgraph.c.
7830 * tree-sra.c: Include ipa-inline.h.
7831 (ipa_sra_preliminary_function_checks): Update.
7832 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
7835 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
7837 * config/i386/sse.md (V16): New mode iterator.
7839 (AVXMODEQI, AVXMODEDI): Remove.
7840 (sse2, sse3): New mode attribute.
7841 (mov<mode>): Use V16 mode iterator.
7842 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
7843 (push<mode>1): Use V16 mode iterator.
7844 (movmisalign<mode>): Ditto.
7845 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
7846 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
7847 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
7848 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
7849 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
7850 avx_movdqu<avxmodesuffix>.
7851 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
7852 *avx_movdqu<avxmodesuffix>.
7853 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
7854 avx_lddqu<avxmodesuffix>.
7855 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
7856 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
7857 avx_movnt<AVXMODEDI:mode>.
7858 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
7859 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
7861 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
7864 * haifa-sched.c (prune_ready_list, schedule_block): Use
7865 sched_pressure_p rather than flag_sched_pressure.
7867 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
7869 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
7870 cgraph_get_node instead of cgraph_get_create_node.
7872 2011-04-15 Jakub Jelinek <jakub@redhat.com>
7874 * cfgexpand.c (expand_debug_expr): Use
7875 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
7877 2011-04-15 Michael Matz <matz@suse.de>
7879 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
7880 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
7881 * function.c (gimplify_parameters): Ditto.
7882 * gimplify.c (gimplify_vla_decl): Ditto.
7884 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
7885 (gimple_call_set_alloca_for_var): New inline function.
7886 (gimple_call_alloca_for_var_p): Ditto.
7887 * gimple.c (gimple_build_call_from_tree): Remember
7888 CALL_ALLOCA_FOR_VAR_P state.
7889 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
7891 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
7892 calls if they were for VLA objects.
7894 2011-04-15 Martin Jambor <mjambor@suse.cz>
7896 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
7899 2011-04-15 Martin Jambor <mjambor@suse.cz>
7902 * tree-emutls.c (lower_emutls_function_body): Call
7903 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
7906 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
7908 * c-decl.c (detect_field_duplicates): Call
7909 objc_detect_field_duplicates instead of objc_get_interface_ivars.
7911 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
7913 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
7914 * gimple.c (gimple_asm_clobbers_memory_p): Define.
7915 * ipa-pure-const.c (check_stmt): Call it.
7916 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
7918 2011-04-15 Richard Guenther <rguenther@suse.de>
7920 PR tree-optimization/48290
7921 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
7922 Properly decide inhibiting propagation based on the valueized
7923 operand. Do loop-closed SSA form preserving here ...
7924 (init_copy_prop): ... not here.
7926 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
7929 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
7930 (*ieee_smax<mode>3): Likewise.
7932 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7934 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
7935 Replace match_operand with match_dup for the third operand in
7938 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
7940 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
7941 to track processing of conditionals. Update all callers.
7942 (try_combine, simplify_if_then_else): Update.
7944 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
7946 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
7949 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
7951 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
7952 instead of match_operand for operand 3.
7954 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
7956 * recog.h (insn_operand_data): Add an "allows_mem" field.
7957 * genoutput.c (output_operand_data): Initialize it.
7958 * optabs.c (maybe_legitimize_operand_same_code): New function.
7959 (maybe_legitimize_operand): Use it when matching the original
7962 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
7964 * gimplify.c: Fix issues in comments throughout.
7965 (voidify_wrapper_expr): Fix long line.
7966 (build_stack_save_restore): Likewise.
7967 (gimplify_loop_expr): Likewise.
7968 (gimplify_compound_lval): Likewise.
7969 (gimplify_init_ctor_eval): Likewise.
7970 (gimplify_modify_expr_rhs): Likewise.
7971 (omp_notice_threadprivate_variable): Likewise.
7973 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
7975 * cfgexpand.c (expand_call_stmt): Convert the function type to the
7976 original one if this is not a builtin function.
7978 2011-04-14 Jakub Jelinek <jakub@redhat.com>
7981 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
7982 offset it as needed based on top 2 bits in operands[3], change
7983 MEM mode to SFmode and mask those 2 bits away from operands[3].
7985 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
7987 * c-parser.c (c_parser_objc_protocol_definition): Updated for
7988 change from objc_declare_protocols() to objc_declare_protocol().
7990 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
7992 * config/i386/sse.md (sse4_1): New mode attribute.
7993 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
7994 avx_blend<ssemodesuffix><avxmodesuffix> and
7995 sse4_1_blend<ssemodesuffix> using VF mode iterator.
7996 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
7997 avx_blendv<ssemodesuffix><avxmodesuffix> and
7998 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
7999 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
8000 avx_dp<ssemodesuffix><avxmodesuffix> and
8001 sse4_1_dp<ssemodesuffix> using VF mode iterator.
8002 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
8003 (sse4_1_packusdw): Merge with *avx_packusdw.
8004 (sse4_1_pblendvb): Merge with *avx_pblendvb.
8005 (sse4_1_pblendw): Merge with *avx_pblendw.
8006 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
8007 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
8008 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
8010 (sse4_1_round<ssescalarmodesuffix>): Merge with
8011 *avx_round<ssescalarmodesuffix>.
8012 (aesenc): Merge with *avx_aesenc.
8013 (aesenclast): Merge with *avx_aesenclast.
8014 (aesdec): Merge with *avx_aesdec.
8015 (aesdeclast): Merge with *avx_aesdeclast.
8016 (pclmulqdq): Merge with *pclmulqdq.
8017 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
8019 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
8021 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
8024 * cfgexpand.c (get_decl_align_unit): Renamed to ...
8025 (align_local_variable): This. Update DECL_ALIGN.
8026 (add_stack_var): Updated.
8027 (expand_one_stack_var): Likewise.
8029 2011-04-14 Richard Guenther <rguenther@suse.de>
8031 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
8033 (dse_initialize_block_local_data, dse_leave_block,
8034 record_voperand_set, get_stmt_uid): Likewise.
8035 (dse_possible_dead_store_p): Allow any kind of killing stmt.
8036 (dse_optimize_stmt): Remove voperand set handling code.
8037 Simplify and improve to handle any kind of killing stmt.
8038 (dse_record_phi): Remove.
8039 (dse_enter_block): Simplify.
8040 (tree_ssa_dse): Likewise.
8041 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
8043 2011-04-14 Jan Hubicka <jh@suse.cz>
8045 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
8046 * cgraph.h (struct inline_summary): Move to ipa-inline.h
8047 (cgraph_local_info): Remove inline_summary.
8048 * ipa-cp.c: Include ipa-inline.h.
8049 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
8050 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
8052 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
8053 (input_overwrite_node): Do not set inline summary.
8054 (input_node): Do not stream inline summary.
8055 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
8056 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
8057 growth; we do not have inline parameters computed for that anyway.
8058 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
8059 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
8060 (inline_summary_t): New type and VECtor.
8061 (debug_inline_summary, dump_inline_summaries): Declare.
8062 (inline_summary): Use VOCtor.
8063 (estimate_edge_growth): Kill hack computing call stmt size directly.
8064 * lto-section-in.c (lto_section_name): Add inline section.
8065 * ipa-inline-analysis.c: Include lto-streamer.h
8066 (node_removal_hook_holder, node_duplication_hook_holder): New holders
8067 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
8068 (inline_summary_vec): Define.
8069 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
8070 dump_inline_summaries): New functions.
8071 (estimate_function_body_sizes): Properly compute size/time of outgoing
8073 (compute_inline_parameters): Alloc inline_summary; do not compute
8074 size/time of incomming calls.
8075 (estimate_edge_time): Avoid missing time summary hack.
8076 (inline_read_summary): Read inline summary info.
8077 (inline_write_summary): Write inline summary info.
8078 (inline_free_summary): Free all hooks and inline summary vector.
8079 * lto-streamer.h: Add LTO_section_inline_summary section.
8080 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
8081 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
8083 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8085 * tree-vectorizer.h (vect_strided_store_supported): Add a
8086 HOST_WIDE_INT argument.
8087 (vect_strided_load_supported): Likewise.
8088 (vect_permute_store_chain): Return void.
8089 (vect_transform_strided_load): Likewise.
8090 (vect_permute_load_chain): Delete.
8091 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
8092 count argument. Check that the count is a power of two.
8093 (vect_strided_load_supported): Likewise.
8094 (vect_permute_store_chain): Return void. Update after above changes.
8095 Assert that the access is supported.
8096 (vect_permute_load_chain): Likewise.
8097 (vect_transform_strided_load): Return void.
8098 * tree-vect-stmts.c (vectorizable_store): Update calls after
8099 above interface changes.
8100 (vectorizable_load): Likewise.
8101 (vect_analyze_stmt): Don't check for strided powers of two here.
8103 2011-04-14 Richard Guenther <rguenther@suse.de>
8105 PR tree-optimization/48590
8106 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
8107 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
8108 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
8109 BUILT_IN_STACK_SAVE.
8110 * tree-ssa-dce.c (propagate_necessity): Handle
8111 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
8113 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
8115 * c-parser.c (c_parser_objc_class_declaration): Updated call to
8118 2011-04-14 Richard Guenther <rguenther@suse.de>
8120 * tree.h (get_object_alignment_1): Declare.
8121 * builtins.c (get_object_alignment_1): Split out worker from ...
8122 (get_object_alignment): ... here.
8123 * fold-const.c (get_pointer_modulus_and_residue): Use
8124 get_object_alignment_1.
8126 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8128 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
8130 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
8131 parameter. Generalise code to handle arrays as well as vectors.
8132 (vect_setup_realignment): Update accordingly.
8133 * tree-vect-stmts.c (vectorizable_store): Likewise.
8134 (vectorizable_load): Likewise.
8136 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8138 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
8139 within the per-copy loop.
8141 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8143 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
8146 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8148 * doc/options.texi (Negative): Explicitly mention that the
8149 Negative chain must be circular.
8151 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
8153 * function.h (block_chainon): Declare.
8154 * function.c (block_chainon): Define.
8156 2011-04-14 Anatoly Sokolov <aesok@post.ru>
8157 Eric Weddington <eric.weddington@atmel.com>
8158 Georg-Johann Lay <avr@gjlay.de>
8160 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
8162 (avr_init_builtins, avr_expand_builtin,
8163 avr_expand_delay_cycles, avr_expand_unop_builtin,
8164 avr_expand_binop_builtin ): New functions.
8165 (avr_builtin_id): New enum
8166 (struct avr_builtin_description): New struct
8167 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
8168 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
8170 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
8171 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
8172 UNSPECV_DELAY_CYCLES): new enumeration values
8173 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
8174 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
8175 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
8176 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
8177 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
8178 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
8179 "fmulsu"): New insns
8181 * config/avr/avr-c.c: fix line endings
8182 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
8183 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
8184 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
8185 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
8186 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
8188 * doc/extend.texi (AVR Built-in Functions): New node
8189 (Target Builtins): Add documentation of AVR
8192 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
8195 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
8196 alone. Error if non-const data has attribute progmem.
8198 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8200 * tree.h (struct tree_constructor): Include tree_typed instead of
8202 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
8203 TS_TYPED instead of TS_COMMON.
8205 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
8207 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
8208 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
8209 (sse2_psadbw): Merge with *avx_psadbw.
8210 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
8211 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
8212 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
8213 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
8214 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
8215 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
8216 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
8217 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
8218 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
8219 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
8220 (ssse3_palignrti): Merge with *avx_palignrti.
8222 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8224 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
8225 * tree-ssanames.c (fini_ssanames): VEC_free it.
8226 (make_ssa_name_fn): Update for VECness of free_ssanames.
8227 (release_ssa_name, release_dead_ssa_names): Likewise.
8228 * tree.h (struct tree_ssa_name): Include tree_typed instead of
8230 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
8231 TS_TYPED instead of TS_COMMON.
8233 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8235 * postreload-gcse.c (gcse_after_reload_main): Add calls to
8236 statistics_counter_event.
8237 * tree-ssa-copyrename.c (stats): Define.
8238 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
8239 statistics_counter_event.
8240 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
8241 (bswap_stats, widen_mul_stats): Define.
8242 (insert_reciprocals): Increment rdivs_inserted.
8243 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
8244 rfuncs_inserted. Add calls to statistics_counter_event.
8245 (execute_cse_sincos_1): Increment inserted.
8246 (execute_cse_sincos): Zeroize sincos_stats. Add call to
8247 statistics_counter_event.
8248 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
8249 of bswap_stats. Add calls to statistics_counter_event.
8250 (convert_mult_to_widen): Increment widen_mults_inserted.
8251 (convert_plusminus_to_widen): Increment maccs_inserted.
8252 (convert_mult_to_fma): Increment fmas_inserted.
8253 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
8254 calls to statistics_counter_event.
8256 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
8258 PR rtl-optimization/48455
8259 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
8260 `temp_costs->mem_cost'.
8262 2011-04-13 Jan Hubicka <jh@suse.cz>
8264 * ipa-inline.h: New file.
8265 * ipa-inline-analysis.c: New file. Broken out of ...
8266 * ipa-inline.c: ... this file; update toplevel comment;
8267 include ipa-inline.h
8268 (inline_summary): Move to ipa-inline.h
8269 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
8270 ipa-inline-analysis.c.
8271 (cgraph_estimate_time_after_inlining): Rename to
8272 estiamte_time_after_inlining; move to ipa-inline-analysis.c
8273 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
8274 to estimate_edge_growth.
8275 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
8276 rename to estimate_size_after_inlining.
8277 (cgraph_mark_inline_edge): Update for new naming convention.
8278 (cgraph_check_inline_limits): Likewise.
8279 (cgraph_edge_badness): Likewise.
8280 (cgraph_decide_recursive_inlining): Likewise.
8281 (cgraph_decide_inlining_of_small_functions): Likewise.
8282 (cgraph_decide_inlining_incrementally): Likewise.
8283 (cgraph_estimate_growth): Rename to estimate_growth; move to
8284 ipa-inline-analysis.c.
8285 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
8286 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
8287 (compute_inline_parameters): Likewise.
8288 (compute_inline_parameters_for_current): Likewise.
8289 (pass_inline_parameters): Likewise.
8290 (inline_indirect_intraprocedural_analysis): Likewise.
8291 (analyze_function): Rename to inline_analyze_function; likewise.
8292 (add_new_function): Move to ipa-inline-analysis.c.
8293 (inline_generate_summary): Likewise.
8294 (inline_read_summary): Likewise.
8295 (inline_write_summary): Likewise.
8296 * Makefile.in (ipa-inline-analysis.c): New file.
8298 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8300 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
8301 * configure: Regenerate.
8303 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8305 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
8306 instead of tree_common.
8307 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
8309 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
8310 TS_TYPED rather than TS_COMMON.
8311 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
8313 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
8316 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
8317 r20 around calls of __tablejump_elpm__
8319 2011-04-13 Jakub Jelinek <jakub@redhat.com>
8322 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
8324 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
8326 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
8328 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
8329 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
8330 (cfi_vec): New typedef.
8331 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
8332 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
8333 (cie_cfi_vec): New static variable.
8334 (cie_cfi_head): Delete.
8335 (add_cfi): Accept a cfi_vec * as first argument. All callers and
8336 declaration changed. Use vector rather than list operations.
8337 (new_cfi): Don't initialize the dw_cfi_next field.
8338 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
8339 rather than list operations.
8340 (lookup_cfa): Use vector rather than list operations.
8341 (output_cfis): New argument upto. Accept a cfi_vec rather than
8342 a dw_cfi_ref list head as argument. All callers changed.
8343 Iterate over the vector using upto as a maximum index.
8344 (output_all_cfis): New static function.
8345 (output_fde): Use vector rather than list operations. Use the
8346 new upto argument for output_cfis rather than manipulating a
8348 (dwarf2out_begin_prologue): Change initializations to match
8350 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
8351 from the vector length rather than searching for the end of a list.
8352 Use output_all_cfis.
8353 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
8355 2011-04-13 Nick Clifton <nickc@redhat.com>
8357 * config/rx/rx.md (movmemsi): Do not use this pattern when
8358 volatile pointers are involved.
8360 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
8362 * config/i386/sse.md (pinsrbits): Remove.
8363 (sse2_packsswb): Merge with *avx_packsswb.
8364 (sse2_packssdw): Merge with *avx_packssdw.
8365 (sse2_packuswb): Merge with *avx_packuswb.
8366 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
8367 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
8368 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
8369 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
8370 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
8371 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
8372 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
8373 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
8374 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
8375 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
8376 (sse2_loadld): Merge with *avx_loadld.
8377 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
8378 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
8379 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
8380 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
8381 (vec_concatv2di): Merge with *vec_concatv2di_avx.
8383 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
8385 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
8387 * print-tree.c (print_node): Likewise.
8388 * tree-inline.c (copy_tree_r): Likewise.
8389 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
8390 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
8391 instead of TS_COMMON.
8392 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
8393 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
8394 (copy_node_stat): Zero TREE_CHAIN only if necessary.
8395 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
8396 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
8398 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
8400 (TREE_CHAIN): Check for a TS_COMMON structure.
8401 (TREE_TYPE): Check for a TS_TYPED structure.
8403 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
8405 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
8406 cgraph_get_create_node instead of cgraph_node.
8408 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
8410 * c-parser.c (c_parser_initelt): Updated call to
8411 objc_build_message_expr.
8412 (c_parser_postfix_expression): Likewise.
8414 2011-04-12 Kai Tietz <ktietz@redhat.com>
8416 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
8417 MASK_MS_BITFIELD_LAYOUT bit.
8419 2011-04-12 Jakub Jelinek <jakub@redhat.com>
8421 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
8422 assert it is always true.
8423 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
8426 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
8428 * c-parser.c (c_lex_one_token): Rewritten conditional used when
8429 compiling Objective-C to be more efficient.
8431 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
8433 * opts-common.c (decode_cmdline_options_to_array): Remove variable
8436 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8438 * recog.h, genoutput.c, optabs.c: Revert last patch.
8440 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8443 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
8445 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8447 * recog.h (insn_operand_data): Add an "allows_mem" field.
8448 * genoutput.c (output_operand_data): Initialize it.
8449 * optabs.c (maybe_legitimize_operand_same_code): New function.
8450 (maybe_legitimize_operand): Use it when matching the original
8453 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8455 * genpreds.c (process_define_predicate): Move most processing
8456 to gensupport.c. Continue to validate the expression.
8457 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
8458 (process_define_predicate): Move processing to gensupport.c.
8459 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
8460 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
8461 (compute_predicate_codes): Moved from genrecog.c. Add lineno
8463 (valid_predicate_name_p): New function, split out from old
8464 genpreds.c:process_define_predicate.
8465 (process_define_predicate): New function, combining code from
8466 old genpreds.c and genrecog.c functions.
8467 (process_rtx): Call it for DEFINE_PREDICATE and
8468 DEFINE_SPECIAL_PREDICATE.
8470 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8472 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
8473 size of a '%A' memory reference.
8474 (T_DREG, T_QREG): New neon_builtin_type_bits.
8475 (arm_init_neon_builtins): Assert that the load and store operands
8476 are neon_struct_operands.
8477 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
8478 (NEON_ARG_MEMORY): New builtin_arg.
8479 (neon_dereference_pointer): New function.
8480 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
8481 Handle NEON_ARG_MEMORY.
8482 (arm_expand_neon_builtin): Update after above interface changes.
8483 Use NEON_ARG_MEMORY for loads and stores.
8484 * config/arm/predicates.md (neon_struct_operand): New predicate.
8485 * config/arm/iterators.md (V_two_elem): Tweak formatting.
8486 (V_three_elem): Use BLKmode for accesses that have no associated mode.
8487 (V_four_elem): Tweak formatting.
8488 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
8489 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
8490 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
8491 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
8492 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
8493 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
8494 (neon_vst4<mode>): Replace pointer operand with a memory operand.
8495 Use %A in the output template.
8496 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
8497 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
8498 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
8499 the width of the memory access. Remove post-increment.
8500 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
8502 2011-04-12 Nick Clifton <nickc@redhat.com>
8504 * config/v850/v850.c (expand_prologue): Do not use the CALLT
8505 instruction for interrupt handlers if the target is the basic V850
8507 (expand_epilogue): Likewise.
8509 2011-04-12 Jakub Jelinek <jakub@redhat.com>
8511 PR rtl-optimization/48549
8512 * combine.c (propagate_for_debug): Also stop after BB_END of
8513 this_basic_block. Process LAST and just stop processing after it.
8514 (combine_instructions): If last_combined_insn has been deleted,
8515 set last_combined_insn to its PREV_INSN.
8517 2011-04-12 Richard Guenther <rguenther@suse.de>
8519 PR tree-optimization/46076
8520 * gimple.h (struct gimple_statement_call): Add fntype field.
8521 (gimple_call_fntype): Adjust.
8522 (gimple_call_set_fntype): New function.
8523 * gimple.c (gimple_build_call_1): Set the call function type.
8524 * gimplify.c (gimplify_call_expr): Preserve the function
8525 type the frontend used for the call.
8526 (gimplify_modify_expr): Likewise.
8527 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
8529 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
8531 * tree-ssa.c (useless_type_conversion_p): Function pointer
8532 conversions are useless.
8534 2011-04-12 Martin Jambor <mjambor@suse.cz>
8536 * cgraph.h (cgraph_node): Remove function declaration.
8537 (cgraph_create_node): Declare.
8538 (cgraph_get_create_node): Likewise.
8539 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
8540 Updated all callers.
8541 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
8542 the decl does not already exist. Call cgraph_get_create_node instead
8544 (cgraph_get_create_node): New function.
8545 (cgraph_same_body_alias): Update comment.
8546 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
8547 assert it does not return NULL.
8548 (cgraph_update_edges_for_call_stmt): Likewise.
8549 (cgraph_clone_edge): Likewise.
8550 (cgraph_create_virtual_clone): Likewise.
8551 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
8552 instead of cgraph_node.
8553 (cgraph_add_new_function): Call cgraph_create_node or
8554 cgraph_get_create_node instead of cgraph_node.
8555 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
8556 instead of cgraph_node.
8557 (record_eh_tables): Likewise.
8558 (mark_address): Likewise.
8559 (mark_load): Likewise.
8560 (build_cgraph_edges): Call cgraph_get_create_node instead
8562 (rebuild_cgraph_edges): Likewise.
8563 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
8564 instead of cgraph_node.
8565 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
8567 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
8568 cgraph_create_node instead of cgraph_node.
8569 * c-decl.c (finish_function): Call cgraph_get_create_node instead
8571 * lto-cgraph.c (input_node): Likewise.
8572 * lto-streamer-in.c (input_function): Likewise.
8573 * varasm.c (mark_decl_referenced): Likewise.
8574 (assemble_alias): Likewise.
8576 2011-04-12 Martin Jambor <mjambor@suse.cz>
8578 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
8579 instead of cgraph_node and assert it does not return NULL.
8580 * lto-streamer-in.c (lto_read_body): Likewise.
8581 * omp-low.c (new_omp_context): Likewise.
8582 (create_task_copyfn): Likewise.
8583 * tree-emutls.c (lower_emutls_function_body): Likewise.
8584 * matrix-reorg.c (transform_allocation_sites): Likewise.
8586 2011-04-12 Jakub Jelinek <jakub@redhat.com>
8589 * c-typeck.c (build_asm_expr): Error out on attempts to use
8590 void type outputs or inputs for constraints that allow reg or
8593 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
8594 Richard Earnshaw <rearnsha@arm.com>
8597 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
8598 to use sign-magnitude offsets. Reject unsupported unaligned
8599 cases. Add detailed description in comments.
8600 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
8601 condition from TARGET_32BIT to TARGET_ARM.
8603 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
8605 * tree.h (struct typed_tree): New.
8606 (struct tree_common): Include it instead of tree_base.
8607 (TREE_TYPE): Update for new location of type field.
8608 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
8609 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
8610 (union tree_node): Add typed field.
8611 * treestruct.def (TS_TYPED): New.
8612 * lto-streamer.c (check_handled_ts_structures): Handle it.
8613 * tree.c (MARK_TS_TYPED): New macro.
8614 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
8616 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
8618 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
8619 (force_nonfallthru): Do not alter the loop nest if no basic block
8622 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
8624 * config/i386/sse.md (VI): New mode iterator.
8626 (AVX256MODEI): Ditto.
8627 (AVXMODEF4P): Ditto.
8628 (avxvecpsmode): Ditto.
8629 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
8630 (sse2_andnot<mode>3): New expander.
8631 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
8632 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
8633 (<any_logic:code><mode>3): Use VI mode iterator.
8634 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
8635 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
8636 (*andnottf3): Handle AVX three-operand constraints.
8637 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
8639 2011-04-11 Joseph Myers <joseph@codesourcery.com>
8640 Robert Millan <rmh@gnu.org>
8642 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
8643 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
8644 GNU_USER_DYNAMIC_LINKER64): Define.
8645 (REG_NAME): Don't undefine.
8646 (MD_UNWIND_SUPPORT): Undefine.
8647 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
8648 (REG_NAME): Don't undefine.
8649 (MD_UNWIND_SUPPORT): Undefine.
8650 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
8652 2011-04-11 Joseph Myers <joseph@codesourcery.com>
8654 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
8655 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
8657 2011-04-11 Xinliang David Li <davidxl@google.com>
8659 * value-profile.c (check_ic_target): New function.
8660 (gimple_ic_transform): Sanity check indirect call target.
8661 * gimple-low.c (gimple_check_call_args): Interface change.
8662 (gimple_check_call_matching_types): New function.
8663 * tree-inline.c (tree_can_inline_p): Call new function.
8665 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
8667 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
8668 tree-pretty-print.h & realmpfr.h.
8670 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
8673 * ira.c (setup_pressure_classes): Fix typo in loop condition.
8674 (setup_allocno_and_important_classes): Ditto.
8676 2011-04-11 Joseph Myers <joseph@codesourcery.com>
8678 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
8679 GNU_USER_DYNAMIC_LINKER.
8680 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
8681 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8682 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
8683 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
8684 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
8685 GNU_USER_TARGET_OS_CPP_BUILTINS.
8686 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
8687 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8688 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
8689 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8690 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
8691 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
8692 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
8693 GNU_USER_TARGET_OS_CPP_BUILTINS.
8694 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8695 GNU_USER_DYNAMIC_LINKER.
8696 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8697 GNU_USER_TARGET_OS_CPP_BUILTINS.
8698 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
8699 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8700 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
8701 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8702 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
8703 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
8704 GNU_USER_DYNAMIC_LINKER64): Remove.
8705 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
8706 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8707 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8708 GNU_USER_DYNAMIC_LINKER.
8709 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8710 GNU_USER_TARGET_OS_CPP_BUILTINS.
8711 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8712 GNU_USER_TARGET_OS_CPP_BUILTINS.
8713 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
8714 to GNU_USER_TARGET_OS_CPP_BUILTINS.
8715 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8716 GNU_USER_TARGET_OS_CPP_BUILTINS.
8717 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
8718 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
8719 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
8720 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
8721 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8722 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8723 GNU_USER_DYNAMIC_LINKER.
8724 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
8725 GNU_USER_TARGET_OS_CPP_BUILTINS.
8726 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
8727 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8728 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8729 GNU_USER_DYNAMIC_LINKER.
8730 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
8731 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8732 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
8733 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8734 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8735 GNU_USER_DYNAMIC_LINKER.
8736 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
8737 GNU_USER_DYNAMIC_LINKERN32.
8738 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
8739 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
8740 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
8741 GNU_USER_DYNAMIC_LINKER32.
8742 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
8743 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8744 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8745 GNU_USER_DYNAMIC_LINKER.
8746 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
8747 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8748 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
8749 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8750 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
8751 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
8752 GNU_USER_DYNAMIC_LINKER32.
8753 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
8754 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
8755 GNU_USER_DYNAMIC_LINKER.
8756 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
8757 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8758 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
8759 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
8760 GNU_USER_DYNAMIC_LINKER64.
8761 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
8762 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8763 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8764 GNU_USER_DYNAMIC_LINKER.
8765 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
8766 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8767 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8768 GNU_USER_DYNAMIC_LINKER.
8769 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
8770 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8771 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
8772 GNU_USER_DYNAMIC_LINKER32.
8773 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
8774 GNU_USER_DYNAMIC_LINKER64.
8775 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
8776 GNU_USER_DYNAMIC_LINKER64.
8777 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
8778 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8779 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
8780 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8781 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
8783 2011-04-11 Joseph Myers <joseph@codesourcery.com>
8785 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
8786 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
8787 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
8788 GNU_USER_DYNAMIC_LINKER.
8789 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
8790 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
8791 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
8792 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
8793 GNU_USER_DYNAMIC_LINKER64.
8794 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
8795 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
8796 GNU_USER_LINK_EMULATION.
8797 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
8798 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
8799 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
8800 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
8801 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
8802 CPP_SPEC, CC1_SPEC): Remove.
8803 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
8804 (GNU_USER_DYNAMIC_LINKER): Define.
8805 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
8806 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
8807 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
8808 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
8809 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
8810 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
8811 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
8812 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
8813 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
8814 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
8815 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
8816 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
8817 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
8818 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
8819 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
8820 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
8821 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8822 GNU_USER_DYNAMIC_LINKER.
8823 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8824 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
8825 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8826 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
8827 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8828 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
8829 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
8830 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
8831 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
8832 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
8834 2011-04-11 Kai Tietz <ktietz@redhat.com>
8838 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
8839 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
8841 (ix86_is_msabi_thiscall): Removed.
8842 (ix86_is_type_thiscall): Likewise.
8843 (ix86_get_callcvt): New function.
8844 (ix86_comp_type_attributes): Simplify check.
8845 (ix86_function_regparm): Use ix86_get_callcvt for calling
8846 convention attribute checks.
8847 (ix86_return_pops_args): Likewise.
8848 (ix86_static_chain): Likewise.
8849 (x86_this_parameter): Likewise.
8850 (x86_output_mi_thunk): Likewise.
8851 (ix86_function_type_abi): Optimize check for types without attributes.
8852 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
8853 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
8854 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
8856 (IX86_BASE_CALLCVT): Helper macro.
8857 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
8858 Use ix86_get_callcvt for calling convention attribute checks and avoid
8859 symbol-decoration for stdcall in TARGET_RTD case.
8860 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
8862 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
8865 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
8867 * config/i386/sse.md (VI_128): New mode iterator.
8868 (VI12_128): Rename from SSEMODE12.
8869 (VI14_128): Rename from SSEMODE14.
8870 (VI124_128): New mode iterator.
8871 (VI24_128): Rename from SSEMODE248.
8872 (VI248_128): Rename from SSEMODE248.
8873 (SSEMODE124C8): Remove.
8874 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
8875 (*sse2_<plusminus_insn><mode>3): Merge with
8876 *avx_<plusminus_insn><mode>3.
8877 (*mulv8hi3): Merge with *avx_mulv8hi3.
8878 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
8879 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
8880 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
8881 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
8882 (ashr<mode>3): Merge with *avx_ashr<mode>3.
8883 (lshr<mode>3): Merge with *avx_lshr<mode>3.
8884 (ashl<mode>3): Merge with *avx_ashl<mode>3.
8885 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
8886 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
8887 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8888 (*<smaxmin:code>v8hi3): Ditto.
8889 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
8890 (*<smaxmin:code>v16qi3): Ditto.
8891 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
8892 (*sse2_eq<mode>3): Ditto.
8893 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
8894 (*sse2_gt<mode>3): Ditto.
8895 (vcondv2di): Split out of vcond<mode>.
8896 (vconduv2di): Split out of vcondu<mode>.
8898 2011-04-11 Richard Guenther <rguenther@suse.de>
8900 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
8901 before calling tree_low_cst.
8903 2011-04-11 Richard Guenther <rguenther@suse.de>
8905 * stor-layout.c (layout_type): Compute all array index size operations
8906 in the original type.
8907 (initialize_sizetypes): Add comment.
8908 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
8910 2011-04-11 Joseph Myers <joseph@codesourcery.com>
8912 * common.opt (Tbss=, Tdata=, Ttext=): New options.
8914 2011-04-11 Martin Jambor <mjambor@suse.cz>
8916 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
8917 of cgraph_node, handle NULL return value.
8918 (cgraph_global_info): Likewise.
8919 (cgraph_rtl_info): Likewise.
8920 * tree-inline.c (estimate_num_insns): Likewise.
8921 * gimplify.c (unshare_body): Likewise.
8922 (unvisit_body): Likewise.
8923 (gimplify_body): Likewise.
8924 * predict.c (optimize_function_for_size_p): Likewise.
8925 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8926 (call_may_clobber_ref_p_1): Likewise.
8927 * varasm.c (function_section_1): Likewise.
8928 (assemble_start_function): Likewise.
8930 2011-04-11 Martin Jambor <mjambor@suse.cz>
8932 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
8934 * final.c (rest_of_clean_state): Likewise.
8935 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
8936 * passes.c (pass_init_dump_file): Likewise.
8937 (execute_all_ipa_transforms): Likewise.
8938 (function_called_by_processed_nodes_p): Likewise.
8939 * predict.c (maybe_hot_frequency_p): Likewise.
8940 (probably_never_executed_bb_p): Likewise.
8941 (compute_function_frequency): Likewise.
8942 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
8943 (unnest_nesting_tree_1): Likewise.
8944 (lower_nested_functions): Likewise.
8945 * tree-optimize.c (execute_fixup_cfg): Likewise.
8946 (tree_rest_of_compilation): Likewise.
8947 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
8948 * tree-sra.c (ipa_early_sra): Likewise.
8949 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
8950 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
8951 * ipa.c (record_cdtor_fn): Likewise.
8952 * ipa-inline.c (cgraph_early_inlining): Likewise.
8953 (compute_inline_parameters_for_current): Likewise.
8954 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
8955 * ipa-pure-const.c (local_pure_const): Likewise.
8956 * ipa-split.c (split_function): Likewise.
8957 (execute_split_functions): Likewise.
8958 * cgraphbuild.c (build_cgraph_edges): Likewise.
8959 (rebuild_cgraph_edges): Likewise.
8960 (cgraph_rebuild_references): Likewise.
8961 (remove_cgraph_callee_edges): Likewise.
8962 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
8963 (verify_cgraph_node): Likewise.
8964 (cgraph_analyze_functions): Likewise.
8965 (cgraph_preserve_function_body_p): Likewise.
8966 (save_inline_function_body): Likewise.
8967 (save_inline_function_body): Likewise.
8968 * tree-inline.c (copy_bb): Likewise.
8969 (optimize_inline_calls): Likewise.
8971 2011-04-11 Martin Jambor <mjambor@suse.cz>
8973 PR tree-optimization/48195
8974 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
8975 ipa_check_create_edge_args.
8976 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
8977 ipa_check_create_edge_args.
8978 * ipa-inline.c (inline_generate_summary): Do not call
8979 ipa_check_create_node_params and ipa_check_create_edge_args.
8980 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
8981 ipa_check_create_edge_args.
8983 2011-04-09 Anatoly Sokolov <aesok@post.ru>
8985 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
8987 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
8988 * function.c (record_hard_reg_sets): Likewise.
8989 * ira.c (compute_regs_asm_clobbered): Likewise.
8990 * sched-deps.c (sched_analyze_1): Likewise.
8991 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
8993 2011-04-09 Xinliang David Li <davidxl@google.com>
8995 PR tree-optimization/PR48484
8996 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
8997 has_valid_pred lazily
8999 2011-04-09 Duncan Sands <baldrick@free.fr>
9001 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
9003 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
9005 * combine.c (combine_validate_cost): Adjust comments. Set registered
9006 cost of I0 to zero at the end, if any.
9008 2011-04-08 Xinliang David Li <davidxl@google.com>
9010 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
9011 to insane profile data.
9013 2011-04-08 Xinliang David Li <davidxl@google.com>
9015 * ipa-cp.c (ipcp_update_profiling): Correct
9016 negative scale factor due to insane profile data.
9018 2011-04-08 Xinliang David Li <davidxl@google.com>
9020 * final.c (dump_basic_block_info): New function.
9021 (final): Dump basic block.
9022 (final_scan_insn): Remove old dump.
9024 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
9027 * config.gcc (i386-*-freebsd): Disable unwind table generation for
9030 2011-04-08 Michael Matz <matz@suse.de>
9033 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
9035 (rebuild_jump_labels): Call rebuild_jump_labels_1.
9036 * rtl.h (rebuild_jump_labels_chain): Declare.
9037 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
9038 insns inserted on edges.
9040 2011-04-08 Joseph Myers <joseph@codesourcery.com>
9042 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
9043 * config/arm/arm-arches.def: New.
9044 * config/arm/arm-opts.h: New.
9045 * config/arm/genopt.sh: New.
9046 * config/arm/arm-tables.opt: New (generated).
9047 * config/arm/arm.c (arm_handle_option, arm_target_help,
9048 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
9049 (all_architectures): Get most table contents from arm-arches.def.
9050 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
9051 arm_selected_tune here.
9052 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
9053 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
9054 (march=, mcpu=, mtune=): Use Enum and Var.
9055 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
9056 (arm.o): Update dependencies.
9058 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
9060 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
9062 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
9063 (write_typed_alloc_defns): Likewise.
9064 (main): Calls write_typed_alloc_defns with output_header.
9066 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
9069 * ira-color.c (setup_profitable_hard_regs): Add comments.
9070 Don't take prohibited hard regs into account.
9071 (setup_conflict_profitable_regs): Rename to
9072 get_conflict_profitable_regs.
9073 (check_hard_reg_p): Check prohibited hard regs.
9075 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
9077 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
9078 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
9079 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
9081 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9084 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
9085 move from floating point to shift amount register.
9086 (emit_move_sequence): Remove secondary reload support for floating
9087 point to shift amount amount register copies.
9088 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
9089 amount register copies.
9090 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
9091 register, return false if mode isn't a scalar integer mode.
9092 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
9094 2011-04-08 Richard Guenther <rguenther@suse.de>
9096 * gimple.c (gimple_call_flags): Remove kludge.
9098 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
9100 * sel-sched.c (sel_region_init): Move call to
9101 sel_setup_region_sched_flags after setup_current_loop_nest.
9103 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
9105 PR rtl-optimization/48272
9106 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
9107 init_insn_reg_pressure_info. Adjust a caller.
9108 * sched-int.h (init_insn_reg_pressure_info): Declare.
9109 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
9110 when sched-pressure is enabled.
9112 2011-04-08 Richard Guenther <rguenther@suse.de>
9114 * gimple.c (gimple_set_modified): Do not queue calls to
9115 MODIFIED_NORETURN_CALLS here ...
9116 * tree-ssa-operands.c (update_stmt_operands): ... but here.
9118 2011-04-08 Richard Guenther <rguenther@suse.de>
9121 * toplev.c (lang_dependent_init): Do not open asm_out_file
9122 in WPA mode, nor perform debug machinery initialization.
9123 (finalize): Do not unlink asm_out_file in WPA mode.
9125 2011-04-08 Richard Guenther <rguenther@suse.de>
9127 * gimple.h (gimple_call_fntype): New function.
9128 (gimple_call_return_type): Use it.
9129 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
9130 * gimple-low.c (gimple_check_call_args): Likewise.
9131 * gimple.c (gimple_call_flags): Likewise.
9132 (gimple_call_arg_flags): Likewise.
9133 (gimple_call_return_flags): Likewise.
9134 * tree-cfg.c (verify_gimple_call): Likewise.
9135 (do_warn_unused_result): Likewise.
9136 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
9137 * value-prof.c (gimple_ic_transform): Fix fndecl check.
9139 2011-04-08 Dmitry Melnik <dm@ispras.ru>
9141 PR rtl-optimization/48235
9142 * sel-sched.c (code_motion_process_successors): Recompute the last
9143 insn in basic block if control flow changed.
9144 (code_motion_path_driver): Ditto. Recompute the first insn as well.
9145 Update condition for ilist_remove.
9147 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
9149 PR rtl-optimization/48302
9150 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
9151 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
9152 it to record added preheader blocks.
9153 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
9154 on to sel_add_loop_preheaders.
9155 (sel_region_init): Move call to setup_current_loop_nest after
9158 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
9161 * cfgloop.h (loop_has_exit_edges): New helper.
9162 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
9164 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
9165 that have no exit edges.
9167 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
9169 PR rtl-optimization/48442
9170 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
9171 all callers. Adjust assert.
9173 2011-04-08 Jakub Jelinek <jakub@redhat.com>
9175 PR tree-optimization/48377
9176 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
9177 is_packed to true even for types with smaller TYPE_ALIGN than
9180 2011-04-08 Richard Guenther <rguenther@suse.de>
9183 * doc/tm.texi: Re-generate.
9185 2011-04-08 Wei Guozhi <carrot@google.com>
9188 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
9189 * config/arm/arm.c (arm_attr_length_push_multi): New function.
9190 * config/arm/arm.md (*push_multi): Change the length computation to
9193 2011-04-08 Anatoly Sokolov <aesok@post.ru>
9195 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
9196 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
9197 * doc/tm.texi: Regenerate.
9198 * system.h (ASM_OUTPUT_BSS): Poison.
9199 * varasm.c (asm_output_bss): Remove function.
9200 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
9202 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
9203 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
9204 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
9205 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9207 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9209 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9211 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
9213 2011-04-07 Joseph Myers <joseph@codesourcery.com>
9215 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
9218 2011-04-07 Joseph Myers <joseph@codesourcery.com>
9220 * config/m68k/m68k.c (m68k_handle_option): Don't handle
9221 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
9222 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
9224 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
9225 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
9226 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
9227 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
9228 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
9229 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
9230 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
9231 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
9232 options. Don't map other m68k options manually. Don't handle
9233 old-style options as canonical.
9234 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
9235 * doc/install.texi (m68k-*-*): Document binutils version requirement.
9237 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
9239 * basic-block.h (force_nonfallthru): Move to...
9240 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
9241 (force_nonfallthru): ...here.
9242 * cfghooks.c (force_nonfallthru): New function.
9243 * cfgrtl.c (force_nonfallthru): Rename into...
9244 (rtl_force_nonfallthru): ...this.
9245 (commit_one_edge_insertion): Do not set AUX field.
9246 (commit_edge_insertions): Do not discover new basic blocks.
9247 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
9248 (cfg_layout_rtl_cfg_hooks): Likewise.
9249 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
9250 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
9251 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
9253 2011-04-07 Anatoly Sokolov <aesok@post.ru>
9255 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
9258 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
9260 * config/i386/sse.md: Update copyright year.
9261 (avxcvtvecmode): Remove.
9262 (sse_movhlps): Merge with *avx_movhlps.
9263 (sse_movlhps): Merge with *avx_movlhps.
9264 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
9265 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
9266 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
9267 (sse_loadhps): Merge with *avx_loadhps.
9268 (sse_storelps): Merge with *avx_storelps.
9269 (sse_loadlps): Merge with *avx_loadlps.
9270 (sse_movss): Merge with *avx_movss.
9271 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
9272 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
9273 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
9274 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
9275 (vec_set<mode>_0): Ditto.
9276 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
9277 (sse4_1_insertps): Merge with *avx_insertps.
9278 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
9279 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
9280 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
9281 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
9282 (sse2_storehpd): Merge with *avx_storehpd.
9283 (sse2_loadhpd): Merge with *avx_loadhpd.
9284 (sse2_loadlpd): Merge with *avx_loadlpd.
9285 (sse2_movsd): Merge with *avx_movsd.
9286 (*vec_concatv2df): Merge with *vec_concatv2df.
9288 2011-04-07 Jakub Jelinek <jakub@redhat.com>
9291 * combine.c (combine_instructions): Add last_combined_insn,
9292 update it if insn is after it, pass it to all try_combine calls.
9293 (try_combine): Add last_combined_insn parameter, pass it instead of
9294 i3 to propagate_for_debug.
9296 2011-04-07 Nick Clifton <nickc@redhat.com>
9298 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
9299 to handle MDR <-> data register transfers.
9300 (movhi_internal): Likewise.
9302 2011-04-07 Alan Modra <amodra@gmail.com>
9304 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
9305 previous stack info.
9307 2011-04-07 Tom de Vries <tom@codesourcery.com>
9310 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
9311 flow_find_cross_jump. Swap variables to implement backward replacement.
9312 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
9314 2011-04-07 Tom de Vries <tom@codesourcery.com>
9317 * cfgcleanup.c (walk_to_nondebug_insn): New function.
9318 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
9320 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
9321 src1 or src2. Redirect edges to the last basic block. Update
9322 frequency and count on multiple basic blocks in case of fallthru.
9324 2011-04-07 Tom de Vries <tom@codesourcery.com>
9327 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
9329 (old_insns_match_p): Change return type. Replace return false/true
9330 with return dir_none/dir_both. Use can_replace_by.
9331 (flow_find_cross_jump): Add dir_p parameter. Init replacement
9332 direction from dir_p. Register replacement direction in dir, last_dir
9333 and afterlast_dir. Handle new return type of old_insns_match_p using
9334 merge_dir. Return replacement direction in dir_p.
9335 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
9336 return type of old_insns_match_p.
9337 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
9338 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
9339 flow_find_cross_jump.
9340 * basic-block.h (enum replace_direction): New type.
9341 (flow_find_cross_jump): Add parameter to declaration.
9343 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
9345 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
9346 (AVXMODEDCVTPS2DQ): Ditto.
9347 (VEC_FLOAT_MODE): Ditto.
9348 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
9349 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
9350 (<any_logic:code><mode>3): Use VF mode iterator.
9351 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
9352 Use VF mode iterator.
9353 (copysign<mode>3): Use VF mode iterator.
9354 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
9355 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
9356 (*<any_logic:code><MODEF:mode>3): Merge with
9357 *avx_<any_logic:code><MODEF:mode>3.
9358 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
9359 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
9360 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
9361 (avx_cvtdq2ps<avxmodesuffix>): Remove.
9362 (sse2_cvtdq2ps): Use %v modifier.
9363 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
9364 (avx_cvtps2dq<avxmodesuffix>): Remove.
9365 (sse2_cvtps2dq): Use %v modifier.
9366 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
9367 (avx_cvttps2dq<avxmodesuffix>): Remove.
9368 (sse2_cvttps2dq): Use %v modifier.
9369 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
9370 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
9371 (sse2_cvtsd2siq): Fix insn template.
9372 (sse2_cvtsd2siq_2): Ditto.
9373 (sse2_cvttsd2siq): Ditto.
9374 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
9375 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
9377 2011-04-06 Joseph Myers <joseph@codesourcery.com>
9379 * gcov-io.c: Use GCC Runtime Library Exception.
9381 2011-04-06 Jakub Jelinek <jakub@redhat.com>
9384 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
9385 as base_reg whatever register reg has been eliminated to, instead
9386 of hardcoding STACK_POINTER_REGNUM.
9388 2011-04-06 Joseph Myers <joseph@codesourcery.com>
9390 * doc/tm.texi.in: Document C target hooks as separate from general
9392 * doc/tm.texi: Regenerate.
9393 * genhooks.c (struct hook_desc): Add docname field.
9394 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
9396 (hook_array): Include c-target.def.
9397 (emit_documentation): Use docname field in output.
9398 (emit_init_macros): Take docname argument. Only emit definitions
9399 for hooks matching docname.
9400 (main): Expect additional arguments in all cases. Pass argument
9401 to emit_init_macros.
9402 * target.def: Move initial macro definitions and comments to
9403 target-hooks-macros.h.
9404 (gcc_targetcm): Move to c-family/c-target.def.
9405 * target.h (targetcm): Move declaration to c-family/c-target.h.
9406 * targhooks.c (default_handle_c_option): Move to
9408 * targhooks.h (default_handle_c_option): Move declaration to
9409 c-family/c-common.h.
9410 * target-hooks-macros.h: New file.
9411 * config.gcc (target_has_targetcm): Define and use to add to
9412 c_target_objs and cxx_target_objs.
9413 * config/default-c.c: New file.
9414 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
9415 of target.h and target-def.h.
9416 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
9417 (darwin_objc_construct_string, darwin_cfstring_ref_p,
9418 darwin_check_cfstring_format_arg): Make static.
9419 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
9420 TARGET_STRING_OBJECT_REF_TYPE_P,
9421 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
9422 * config/darwin-protos.h (darwin_objc_construct_string,
9423 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
9425 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
9426 TARGET_STRING_OBJECT_REF_TYPE_P,
9427 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
9428 * config/t-darwin (darwin-c.o): Update dependencies.
9429 * system.h (TARGET_HAS_TARGETCM): Poison.
9430 * Makefile.in (TARGET_H): Update.
9431 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
9432 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
9433 (default-c.o): New target.
9434 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
9435 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
9436 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
9438 (build/genhooks.o): Update dependencies.
9440 2011-04-06 Richard Guenther <rguenther@suse.de>
9442 * ipa-inline.c (enum inlining_mode): Remove.
9443 (cgraph_flatten): Use some other token.
9444 (cgraph_edge_early_inlinable_p): New function, split out from ...
9445 (cgraph_perform_always_inlining): New function, split out from ...
9446 (cgraph_decide_inlining_incrementally): ... here.
9447 (cgraph_mark_inline_edge): Adjust.
9448 (cgraph_early_inlining): Re-structure.
9449 (pass_early_inline): Require SSA form.
9451 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
9452 Julian Brown <julian@codesourcery.com>
9453 Mark Shinwell <shinwell@codesourcery.com>
9455 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
9456 LO_REGS only for Thumb-1.
9457 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
9458 be used in short instructions when optimising for size on Thumb-2.
9460 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
9462 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
9463 associated with user returns to be preserved.
9465 2011-04-06 Tristan Gingold <gingold@adacore.com>
9467 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
9468 symbol_queue_size, DBXOUT_DECR_NESTING,
9469 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
9470 if XCOFF_DEBUGGING_INFO.
9472 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
9474 * config/i386/i386.md (attribute isa): New.
9475 (attribute enabled): New.
9476 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
9477 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
9478 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
9479 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
9480 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
9481 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
9482 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
9483 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
9485 * config/i386/sse.md (VF): New mode iterator.
9489 (SSEMODEF4): Remove.
9490 (attribute sse): Handle V8SF and V4DF modes.
9491 (<absneg:code><mode>2): Use VF mode iterator.
9492 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
9494 (<plusminus_insn><mode>3): Use VF mode iterator.
9495 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
9496 Use VF mode iterator.
9497 (<sse>_vm<plusminus_insn><mode>3): Merge with
9498 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
9499 (mul<mode>3): Use VF mode iterator.
9500 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
9501 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
9503 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
9504 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
9505 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
9506 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
9508 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
9509 Use VF1 mode iterator.
9510 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
9511 (sqrt<VF2:mode>2): New expander.
9512 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
9513 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
9514 and sqrtv2df2. Use VF mode iterator.
9515 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
9517 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
9518 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
9519 Use VF1 mode iterator.
9520 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
9521 (<smaxmin:code><mode>3): Use VF mode iterator.
9522 (*<smaxmin:code><mode>3_finite): Merge with
9523 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
9524 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
9525 (<sse>_vm<smaxmin:code><mode>2): Merge with
9526 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
9527 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
9529 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
9531 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
9532 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
9533 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
9534 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
9535 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
9537 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
9538 Use VF_128 mode iterator.
9539 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
9541 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
9542 VF_128 mode iterator.
9543 (vcond<mode>): Use VF mode iterator.
9544 * config/i386/predicates.md (sse_comparison_operator): Merge with
9545 avx_comparison_float_operator. Do not declare as special_predicate.
9546 * config/i386/i386.c (struct builtin_description): Update for renamed
9548 (ix86_expand_args_builtin): Ditto.
9549 (ix86_expand_sse_compare_mask): Ditto.
9551 2011-04-06 Richard Guenther <rguenther@suse.de>
9553 * tree-inline.c (estimate_num_insns): For calls simply account
9554 for all passed arguments and a used return value.
9556 2011-04-06 Richard Guenther <rguenther@suse.de>
9558 PR tree-optimization/47663
9559 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
9560 call_stmt_time fields.
9561 (cgraph_edge_inlinable_p): Declare.
9562 (cgraph_edge_recursive_p): New inline function.
9563 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
9564 (cgraph_clone_edge): Copy it.
9565 * ipa-inline.c (cgraph_estimate_edge_time): New function.
9566 Account for call stmt time.
9567 (cgraph_estimate_time_after_inlining): Take edge argument.
9568 (cgraph_estimate_edge_growth): Account call stmt size.
9569 (cgraph_estimate_size_after_inlining): Take edge argument.
9570 (cgraph_mark_inline_edge): Adjust.
9571 (cgraph_check_inline_limits): Likewise.
9572 (cgraph_recursive_inlining_p): Remove.
9573 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
9574 (cgraph_decide_recursive_inlining): Take edge argument and
9576 (cgraph_decide_inlining_of_small_functions): Do not avoid
9577 diags for recursive inlining here.
9578 (cgraph_flatten): Adjust.
9579 (cgraph_decide_inlining_incrementally): Likewise.
9580 (estimate_function_body_sizes): Remove call cost handling.
9581 (compute_inline_parameters): Initialize caller edge call costs.
9582 (cgraph_estimate_edge_growth): New function.
9583 (cgraph_estimate_growth): Use it.
9584 (cgraph_edge_badness): Likewise.
9585 (cgraph_check_inline_limits): Take an edge argument.
9586 (cgraph_decide_inlining_of_small_functions): Adjust.
9587 (cgraph_decide_inlining): Likewise.
9588 * tree-inline.c (estimate_num_insns): Only account for call
9589 return value if it is used.
9590 (expand_call_inline): Avoid diagnostics on recursive inline
9592 * lto-cgraph.c (lto_output_edge): Output edge call costs.
9593 (input_edge): Input edge call costs.
9595 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9597 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
9599 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
9601 * doc/invoke.texi (Spec Files): Fix typo.
9603 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
9605 * profile.c (branch_prob): Move declaration of local variable. Remove
9606 obsolete ??? comment. Expand the location explicitly instead of using
9607 the LOCATION_FILE and LOCATION_LINE macros.
9609 2011-04-06 Wei Guozhi <carrot@google.com>
9612 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
9613 (arm_cond_branch): Likewise.
9614 (arm_cond_branch_reversed): Likewise.
9615 (arm_jump): Likewise.
9616 (push_multi): Likewise.
9617 * config/arm/constraints.md (Py): New constraint.
9619 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9622 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
9624 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
9625 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
9626 #ifdef DBX_DEBUGGING_INFO.
9628 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
9631 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
9632 if old and new states differ.
9634 2011-04-05 Joseph Myers <joseph@codesourcery.com>
9636 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
9637 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
9638 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
9639 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
9640 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
9642 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
9643 ColdFire options to -mcpu= options.
9645 2011-04-05 Jeff Law <law@redhat.com>
9647 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
9648 check if BB is a successor of LOOP->header and return
9649 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
9651 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
9653 * cprop.c (struct reg_use): Remove.
9654 (reg_use_table): Make an array of RTX.
9655 (find_used_regs, constprop_register, local_cprop_pass,
9656 bypass_block): Simplify users of reg_use_table.
9657 (cprop_insn): Likewise. Iterate if copy propagation succeeded
9658 on one of the uses found by find_used_regs.
9660 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9663 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
9666 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9668 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
9670 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
9672 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
9675 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
9677 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9679 * combine.c: Include obstack.h.
9680 (struct insn_link): Define.
9681 (uid_log_links): Adjust type.
9682 (FOR_EACH_LOG_LINK): New macro.
9683 (insn_link_obstack): Declare.
9684 (alloc_insn_link): Define.
9685 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
9686 type of link variables.
9687 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
9688 (try_combine, record_promoted_values, distribute_notes): Likewise.
9689 (distribute_links): Likewise. Tweak prototype.
9690 (clear_log_links): Delete.
9691 (adjust_for_new_dest): Call alloc_insn_link.
9692 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
9694 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9696 * gcse.c (modify_mem_list): Convert to an array of VECs.
9697 (canon_modify_mem_list, compute_transp): Tweak formatting.
9698 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
9699 (load_killed_in_block_p): Likewise.
9700 (record_last_mem_set_info): Likewise.
9701 (clear_modify_mem_tables): Likewise.
9703 2011-04-05 Tom de Vries <tom@codesourcery.com>
9706 * function.c (emit_use_return_register_into_block): Only define if
9709 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
9711 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
9713 2011-04-05 Joseph Myers <joseph@codesourcery.com>
9715 * config/rx/rx-opts.h: New.
9716 * config/rx/rx.c (rx_cpu_type): Remove.
9717 (rx_handle_option): Don't assert that global structures are in
9718 use. Access variables via opts pointer. Defer most handling of
9719 OPT_mint_register_. Use error_at.
9720 (rx_option_override): Handle deferred OPT_mint_register_ here.
9721 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
9722 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
9723 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
9724 (rx_cpu_types): New Enum and EnumValue entries.
9725 (mint-register=): Use Defer and use Var accordingly.
9727 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9729 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
9730 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
9731 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
9733 (debug_free_queue, debug_nesting, symbol_queue_index):
9735 * dbxout.c: ...to here. Make static.
9737 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9739 * gcse.c (modify_pair): Define. Define a VEC of it.
9740 (canon_modify_mem_list): Convert to an array of VECs.
9741 (free_insn_expr_list_list): Delete.
9742 (clear_modify_mem_tables): Call VEC_free instead.
9743 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
9744 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
9745 (canon_list_insert, compute_transp): Likewise.
9747 2011-04-05 Tom de Vries <tom@codesourcery.com>
9750 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
9753 2011-04-05 Tom de Vries <tom@codesourcery.com>
9756 * function.c (emit_use_return_register_into_block): New function.
9757 (thread_prologue_and_epilogue_insns): Use
9758 emit_use_return_register_into_block.
9760 2011-04-05 Tom de Vries <tom@codesourcery.com>
9763 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
9766 2011-04-05 Tom de Vries <tom@codesourcery.com>
9768 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
9770 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
9772 * config/arm/arm.md (define_constants for unspec): Replace with
9774 (define_constants for unspecv): Replace with define_c_enum.
9775 * config/arm/neon.md (define_constants for unspec): Replace with
9778 2011-04-04 Richard Henderson <rth@redhat.com>
9781 * dwarf2out.c (output_line_info): Always emit line info from
9782 at least one section.
9783 (dwarf2out_init): Create text_section_line_info here ...
9784 (set_cur_line_info_table): ... not here.
9786 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
9789 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
9792 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
9794 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
9796 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
9797 (expr_equiv_p): Remove.
9798 (insert_set_in_table): Look at <dest, src> pair instead of expr.
9799 (hash_scan_set): Update call to insert_set_in_table.
9800 (dump_hash_table): Dump <dest, src> pair.
9801 (lookup_set): Simplify. Lookup <dest, src> pair.
9802 (compute_transp): Remove, fold heavily simplified code into...
9803 (compute_local_properties): ...here. Expect COMP and TRANSP
9805 (find_avail_set): Take set directly from struct expr.
9806 (find_bypass-set): Likewise.
9807 (bypass_block): Likewise.
9808 (cprop_insn): Likewise. Remove redundant INSN_P test.
9810 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
9811 checks on form of COND from find_implicit_sets to here.
9812 (find_implicit_sets): Cleanup control flow. Split critical edges
9813 if it exposes implicit sets. Allocate/resize implicit_sets as
9815 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
9816 changed something. Run df_analyze after find_implicit_sets if any
9817 edges were split. Do not allocate implicit_sets here.
9819 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
9820 (gcse_obstack): Renamed to cprop_obstack.
9821 (GNEW, GNEWVEC, GNEWVAR): Remove.
9823 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
9824 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
9825 (gcse_alloc): Likewise, and rename to cprop_alloc.
9826 (alloc_gcse_men, free_gcse_mem): Remove.
9827 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
9828 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
9829 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
9831 * cprop.c (oprs_not_set_p): Remove.
9832 (mark_set, mark_clobber): Remove.
9833 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
9834 (reg_not_set_p): New function.
9835 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
9836 (cprop_insn): Likewise.
9837 (cprop_jump): Use FOR_EACH_EDGE.
9839 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
9842 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
9843 (rank_for_schedule): Use scheduled_insns vector instead of
9844 last_scheduled_insn.
9845 (ok_for_early_queue_removal): Likewise.
9846 (queue_to_ready): Search forward in nonscheduled_insns_begin if
9848 (choose_ready): Likewise.
9849 (commit_schedule): Use VEC_iterate.
9850 (schedule_block): Initialize nonscheduled_insns_begin. If we have
9851 a dbg_cnt, use it and ensure the first insn is in the ready list.
9852 (haifa_sched_init): Allocate scheduled_insns.
9853 (sched_extend_ready_list): Don't allocate it; reserve space.
9854 (haifa_sched_finish): Free it.
9856 2011-04-04 Joseph Myers <joseph@codesourcery.com>
9858 * optc-gen.awk: Always remove type from Variable entry before
9859 recording in var_seen.
9861 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
9863 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
9864 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
9865 call to tidy_fallthru_edges.
9867 2011-04-04 Joseph Myers <joseph@codesourcery.com>
9869 * doc/options.texi (ToLower): Document.
9870 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
9871 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
9872 * opts.h (cl_option): Add cl_tolower field.
9873 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
9874 arguments with lowercase strings.
9875 * config/rx/rx.opt (mcpu=): Add ToLower.
9876 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
9879 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
9881 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
9883 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
9885 * config/vax/vax.c: Include reload.h.
9887 2011-04-04 Anatoly Sokolov <aesok@post.ru>
9889 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
9890 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
9891 (sparc_preferred_reload_class): New function.
9893 2011-04-04 Jakub Jelinek <jakub@redhat.com>
9896 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
9897 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
9899 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
9901 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
9902 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
9904 2011-04-03 Anatoly Sokolov <aesok@post.ru>
9906 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
9907 (ASM_OUTPUT_ALIGNED_BSS): Define.
9909 2011-04-03 Michael Matz <matz@suse.de>
9911 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
9912 and next_slot members.
9913 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
9914 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
9915 (lto_streamer_cache_append): Declare.
9916 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
9917 unsigned index, remove offset parameter, ensure that we append
9918 or update existing entries.
9919 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
9920 parameter, update next_slot for append.
9921 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
9923 (lto_streamer_cache_insert_at): Likewise.
9924 (lto_streamer_cache_append): New function.
9925 (lto_streamer_cache_lookup): Use unsigned index.
9926 (lto_streamer_cache_get): Likewise.
9927 (lto_record_common_node): Don't test tree_node_can_be_shared.
9928 (preload_common_node): Adjust call to lto_streamer_cache_insert.
9929 (lto_streamer_cache_delete): Don't free offsets member.
9930 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
9931 (lto_output_string_with_length): Use lto_output_data_stream.
9932 (lto_output_tree_header): Remove ix parameter, don't write it.
9933 (lto_output_builtin_tree): Likewise.
9934 (lto_write_tree): Adjust callers to above, don't track and write
9935 offset, write unsigned index.
9936 (output_unreferenced_globals): Don't emit all global vars.
9937 (write_global_references): Use unsigned indices.
9938 (lto_output_decl_state_refs): Likewise.
9939 (write_symbol): Likewise.
9940 * lto-streamer-in.c (lto_input_chain): Move earlier.
9941 (input_function): Use unsigned index.
9942 (input_alias_pairs): Don't read and then ignore all global vars.
9943 (lto_materialize_tree): Remove ix_p parameter, don't read index,
9944 don't pass it back, use lto_streamer_cache_append.
9945 (lto_register_var_decl_in_symtab): Use unsigned index.
9946 (lto_register_function_decl_in_symtab): Likewise.
9947 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
9949 (lto_get_builtin_tree): Don't read index, use
9950 lto_streamer_cache_append.
9951 (lto_read_tree): Adjust call to lto_materialize_tree.
9953 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
9954 don't use function calls in arguments to MIN.
9956 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
9959 * gimple.c (gimple_type_leader_entry): Mark deletable.
9961 2011-04-03 Alan Modra <amodra@gmail.com>
9963 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
9965 2011-04-03 Michael Matz <matz@suse.de>
9967 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
9969 * tree.h (tree_decl_non_common.vindex): Adjust comment.
9971 2011-04-03 Michael Matz <matz@suse.de>
9973 * cgraphbuild.c (record_reference): Canonicalize constructor values.
9974 * gimple-fold.c (canonicalize_constructor_val): Accept being called
9975 without function context.
9976 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
9977 current_function_decl and cfun.
9979 2011-04-03 Michael Matz <matz@suse.de>
9981 * tree.c (decl_init_priority_insert): Don't create entry for
9983 (decl_fini_priority_insert): Ditto.
9984 (fields_compatible_p, find_compatible_field): Remove.
9985 * tree.h (fields_compatible_p, find_compatible_field): Remove.
9986 * gimple.c (gimple_compare_field_offset): Adjust block comment.
9988 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
9990 * combine.c (try_combine): Remove useless local variable.
9992 2011-04-03 Richard Guenther <rguenther@suse.de>
9993 Ira Rosen <ira.rosen@linaro.org>
9995 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
9996 non-variable offsets and compare the remaining bases of the two
9997 accesses instead of looking for exact same data-ref.
9999 2011-04-02 Kai Tietz <ktietz@redhat.com>
10002 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
10004 * i386.c (ix86_is_msabi_thiscall): New helper function.
10005 (ix86_is_type_thiscall): New helper function.
10006 (ix86_comp_type_attributes): Handle thiscall for method-functions
10008 (init_cumulative_args): Likewise.
10009 (find_drap_reg): Likewise.
10010 (ix86_static_chain): Likewise.
10011 (x86_this_parameter): Likewise.
10012 (x86_output_mi_thunk): Likewise.
10014 2011-04-01 Olivier Hainque <hainque@adacore.com>
10015 Nicolas Setton <setton@adacore.com>
10016 Eric Botcazou <ebotcazou@adacore.com>
10018 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
10019 (add_gnat_descriptive_type_attribute): New function.
10020 (gen_array_type_die): Call it.
10021 (gen_enumeration_type_die): Likewise.
10022 (gen_struct_or_union_type_die): Likewise.
10023 (modified_type_die): Likewise.
10024 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
10025 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
10026 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
10028 2011-04-01 Jakub Jelinek <jakub@redhat.com>
10031 * dwarf2out.c (resolve_addr): Don't call force_decl_die
10032 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
10035 2011-03-17 Richard Guenther <rguenther@suse.de>
10038 * lto-cgraph.c (input_overwrite_node): Clear the abstract
10039 origin for decls in other ltrans units.
10040 (input_varpool_node): Likewise.
10042 2011-04-01 Jakub Jelinek <jakub@redhat.com>
10044 PR middle-end/48335
10045 * expr.c (expand_assignment): Handle all possibilities
10046 if TO_RTX is CONCAT.
10047 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
10048 (store_split_bit_field): If SUBREG_REG (op0) or
10049 op0 itself has smaller mode than word, return it
10050 for offset 0 and const0_rtx for out-of-bounds stores.
10051 If word is const0_rtx, skip it.
10053 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
10055 * config/h8300/h8300.c (print_operand_address): Rename to...
10056 (h8300_print_operand_address): ...this. Make static. Adjust comments.
10057 Call h8300_print_operand and h8300_print_operand_address instead of
10058 print_operand and print_operand_address. Declare.
10059 (print_operand): Renake to...
10060 (h8300_print_operand): ...this. Make static. Adjust comments.
10061 Call h8300_print_operand instead of print_operand. Declare.
10062 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
10063 (h8300_register_move_cost): Likewise.
10064 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
10065 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
10066 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
10067 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
10068 * config/h8300/h8300-protos.h (print_operand): Delete.
10069 (print_operand_address): Delete.
10071 2011-04-01 Richard Henderson <rth@redhat.com>
10074 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
10075 in strict mode before dwarf4. Re-order tests to early out
10076 before switching sections.
10078 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
10080 * config/h8300/constraints.md: New file.
10081 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
10082 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
10083 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
10084 * config/h8300/predicates.md (bit_operand): Likewise.
10085 (incdec_operand): Use satisfies_constraint_M and
10086 satisfies_constraint_O. Don't use C code block.
10087 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
10088 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
10089 (compute_mov_length): Use satisfies_constraint_G.
10090 (fix_bit_operand): Use satisfies_constraint_U.
10091 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
10092 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
10093 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
10094 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
10095 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
10096 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
10097 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10098 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
10099 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
10100 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
10101 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
10102 (EXTRA_MEMORY_CONSTRAINT): Delete.
10104 2011-04-01 Andrew Pinski <pinskia@gmail.com>
10105 Michael Meissner <meissner@linux.vnet.ibm.com>
10108 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
10109 operands, as per the specifications.
10111 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
10112 (vec_extract_evenv4sf): Ditto.
10113 (vec_extract_evenv8hi): Ditto.
10114 (vec_extract_evenv16qi): Ditto.
10115 (vec_extract_oddv4si): Ditto.
10117 2011-03-31 Mark Wielaard <mjw@redhat.com>
10119 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
10120 high_pc attribute if the CU has no associated code. Only output
10121 DW_AT_entry_pc for CU if not generating strict dwarf and
10124 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
10126 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
10127 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
10129 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
10130 * final.c (final_start_function): Call the new function rather
10131 than using a NULL argument for dwarf2out_frame_debug.
10133 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
10134 that contains the prologue.
10136 * haifa-sched.c (queue_insn): New arg REASON. All callers
10137 changed. Print it in debugging output.
10139 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
10141 * sched-ebb.c (begin_schedule_ready): Remove second argument.
10142 Split most of the code into...
10143 (begin_move_insn): ... here. New function.
10144 (ebb_sched_info): Add a pointer to it.
10145 * haifa-sched.c (scheduled_insns): New static variable.
10146 (sched_extend_ready_list): Allocate it.
10147 (schedule_block): Use it to record the order of scheduled insns.
10148 Perform RTL changes to move insns only after all scheduling
10149 decisions have been made.
10150 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
10151 begin_move_insn field.
10152 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
10153 * sched-int.h (struct haifa_sched_info): Remove second argument
10154 from begin_schedule_ready hook. Add new member begin_move_insn.
10155 * sched-rgn.c (begin_schedule_ready): Remove second argument.
10156 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
10158 * haifa-sched.c (prune_ready_list): New function, broken out of
10160 (schedule_block): Use it.
10162 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10164 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
10166 2011-04-01 Kai Tietz <ktietz@redhat.com>
10168 * config.gcc (*-*-mingw*): Allow as option the
10169 posix threading model.
10170 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
10171 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
10173 (CPP_SPEC): Add pthread/no-pthread handling.
10174 (LIB_SPEC): Likewise.
10175 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
10176 (LIB_SPEC): Likewise.
10177 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
10178 flag to pass -pthread option for shared libgcc build.
10179 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
10180 for shared libgcc build.
10181 * config/i386/t-mingw-pthread: New file.
10182 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
10183 New define to enable use of library pthread by default.
10184 * config/i386/mingw.opt (pthread): New driver option.
10185 (no-pthread): New driver option.
10186 * config/i386/cygming.opt: Make sure trailing empty line is retained.
10187 * config/i386/mingw-w64.opt: Likewise.
10189 2011-04-01 Gary Funck <gary@intrepid.com>
10191 * c-decl.c (grokdeclarator): Fix formatting.
10193 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10195 * expr.c (emit_block_move_via_movmem): Use n_generator_args
10196 instead of n_operands.
10197 (set_storage_via_setmem): Likewise.
10198 * optabs.c (maybe_gen_insn): Likewise.
10199 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
10200 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
10201 (mips_expand_builtin_direct): Likewise.
10202 * config/spu/spu.c (expand_builtin_args): Likewise.
10204 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10206 * recog.h (insn_data_d): Add n_generator_args.
10207 * genoutput.c (data): Likewise.
10208 (output_insn_data): Print it.
10209 (max_opno, num_dups): Delete.
10210 (scan_operands): Just fill in "d->operand[...]".
10211 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
10213 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10215 * gensupport.h (pattern_stats): New structure.
10216 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
10217 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
10218 (max_operand_1, max_operand_vec): Delete.
10219 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
10221 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
10223 * emit-rtl.c (emit_pattern_after_setloc): New function.
10224 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
10225 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
10226 (emit_pattern_after): New function.
10227 (emit_insn_after, emit_jump_insn_after): Call it.
10228 (emit_call_insn_after, emit_debug_insn_after): Likewise.
10229 (emit_pattern_before_setloc): New function.
10230 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
10231 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
10233 (emit_pattern_before): New function.
10234 (emit_insn_before, emit_jump_insn_before): Call it.
10235 (emit_call_insn_before, emit_debug_insn_before): Likewise.
10237 2011-03-31 Richard Henderson <rth@redhat.com>
10239 * dwarf2out.c (dw_separate_line_info_ref): Remove.
10240 (dw_separate_line_info_entry): Remove.
10241 (enum dw_line_info_opcode): New.
10242 (dw_line_info_entry): Use it.
10243 (dw_line_info_table, dw_line_info_table_p): New.
10244 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
10245 (line_info_table, line_info_label_num): Remove.
10246 (line_info_table_in_use): Remove.
10247 (separate_line_info_table): Remove.
10248 (separate_line_info_table_allocated): Remove.
10249 (separate_line_info_table_in_use): Remove.
10250 (LINE_INFO_TABLE_INCREMENT): Remove.
10251 (line_info_label_num): New.
10252 (cur_line_info_table): New.
10253 (text_section_line_info, cold_text_section_line_info): New.
10254 (separate_line_info): New.
10255 (SEPARATE_LINE_CODE_LABEL): Remove.
10256 (print_dwarf_line_table): Remove.
10257 (debug_dwarf): Don't dump it.
10258 (output_one_line_info_table): New.
10259 (output_line_info): Use it.
10260 (new_line_info_table): New.
10261 (set_cur_line_info_table): New.
10262 (dwarf2out_switch_text_section): Use it.
10263 (dwarf2out_begin_function): Likewise.
10264 (push_dw_line_info_entry): New.
10265 (dwarf2out_source_line): Rewrite for new line info tables.
10266 (dwarf2out_init): Remove dead initailizations.
10268 2011-03-31 Joseph Myers <joseph@codesourcery.com>
10270 * opts.h (cl_option): Add comments to fields. Add bit-fields for
10272 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
10273 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
10274 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
10275 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
10276 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
10277 * opt-functions.awk (flag_init, switch_bit_fields): New.
10278 (switch_flags): Don't handle flags moved to bit-fields. Don't
10279 generate CL_MISSING_OK or CL_SAVE.
10280 * optc-gen.awk: Update to generate bit-field output as well as
10282 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
10283 bit-field instead of CL_REJECT_DRIVER flag.
10284 * opts-common.c (generate_canonical_option,
10285 decode_cmdline_option): Use bit-fields instead of CL_* flags.
10286 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
10287 instead of CL_REJECT_NEGATIVE flag.
10288 * toplev.c (print_switch_values): Use cl_report bit-field instead
10291 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
10293 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
10294 a zero minimum index only if it is redundant.
10296 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
10298 PR rtl-optimization/48381
10299 * ira-color.c (assign_hard_reg): Use hard reg set intersection
10300 instead of ira_class_hard_reg_index for calculating conflicting
10303 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
10305 * cprop.c: Clean up hash table building.
10306 (reg_avail_info): Remove.
10307 (oprs_available_p): Remove.
10308 (record_last_reg_set_info): Remove.
10309 (record_last_set_info): Remove.
10310 (reg_available_p): New function.
10311 (gcse_constant_p): Do not treat unfolded conditions as constants.
10312 (make_set_regs_unavailable): New function.
10313 (hash_scan_set): Simplify with new reg_available_p.
10314 (compute_hash_table_work): Traverse insns stream only once.
10315 Do not compute reg_avail_info. Traverse insns in reverse order.
10316 Record implicit sets after recording explicit sets from the block.
10318 2011-03-31 Michael Matz <matz@suse.de>
10320 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
10322 2011-03-31 Anatoly Sokolov <aesok@post.ru>
10324 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
10325 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
10326 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10327 (h8300_mode_dependent_address_p): New function.
10328 (h8300_get_index): Make static.
10330 2011-03-31 Jeff Law <law@redhat.com>
10332 * reload1.c (elimination_effects): Fix typo in recent change.
10334 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
10335 typo potentially leading to null pointer dereference.
10337 * caller-save.c (new_saved_hard_reg): Eliminate return value.
10338 (setup_save_areas): Corresponding changes to avoid useless
10341 * jump.c (reversed_comparison_code_parts): Avoid successive return
10342 statements when REVERSE_CONDITION is defined.
10344 * expr.c (expand_assignment): Avoid useless assignments.
10345 (expand_expr_real_1): Likewise.
10346 (expand_expr_real_2): Avoid useless statements.
10348 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
10350 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
10352 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
10355 * stmt.c (expand_expr_stmt): Avoid useless assignment.
10357 2011-03-31 Joseph Myers <joseph@codesourcery.com>
10360 * doc/tm.texi.in (TARGET_VERSION): Remove.
10361 * doc/tm.texi: Regenerate.
10362 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
10363 * collect2.c (main): Don't use TARGET_VERSION.
10364 * mips-tdump.c (main): Don't use TARGET_VERSION.
10365 * mips-tfile.c (main): Don't use TARGET_VERSION.
10366 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
10367 * config/rs6000/vxworksae.h: Remove.
10368 * config/alpha/alpha.h (TARGET_VERSION): Remove.
10369 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
10370 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
10371 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
10372 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
10373 * config/arm/arm.h (TARGET_VERSION): Remove.
10374 * config/arm/coff.h (TARGET_VERSION): Remove.
10375 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
10376 * config/arm/elf.h (TARGET_VERSION): Remove.
10377 * config/arm/freebsd.h (TARGET_VERSION): Remove.
10378 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
10379 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
10380 * config/arm/pe.h (TARGET_VERSION): Remove.
10381 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
10382 * config/arm/semi.h (TARGET_VERSION): Remove.
10383 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
10384 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
10385 * config/arm/vxworks.h (TARGET_VERSION): Remove.
10386 * config/avr/avr.h (TARGET_VERSION): Remove.
10387 * config/bfin/bfin.h (TARGET_VERSION): Remove.
10388 * config/fr30/fr30.h (TARGET_VERSION): Remove.
10389 * config/frv/frv.h (TARGET_VERSION): Remove.
10390 * config/h8300/h8300.h (TARGET_VERSION): Remove.
10391 * config/i386/cygwin.h (TARGET_VERSION): Remove.
10392 * config/i386/darwin.h (TARGET_VERSION): Remove.
10393 * config/i386/darwin64.h (TARGET_VERSION): Remove.
10394 * config/i386/djgpp.h (TARGET_VERSION): Remove.
10395 * config/i386/freebsd.h (TARGET_VERSION): Remove.
10396 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
10397 * config/i386/gnu.h (TARGET_VERSION): Remove.
10398 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
10399 * config/i386/i386elf.h (TARGET_VERSION): Remove.
10400 * config/i386/linux.h (TARGET_VERSION): Remove.
10401 * config/i386/linux64.h (TARGET_VERSION): Remove.
10402 * config/i386/lynx.h (TARGET_VERSION): Remove.
10403 * config/i386/mingw32.h (TARGET_VERSION): Remove.
10404 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
10405 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
10406 * config/i386/netware.h (TARGET_VERSION): Remove.
10407 * config/i386/nto.h (TARGET_VERSION): Remove.
10408 * config/i386/openbsd.h (TARGET_VERSION): Remove.
10409 * config/i386/vxworks.h (TARGET_VERSION): Remove.
10410 * config/ia64/elf.h (TARGET_VERSION): Remove.
10411 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
10412 * config/ia64/hpux.h (TARGET_VERSION): Remove.
10413 * config/ia64/linux.h (TARGET_VERSION): Remove.
10414 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
10415 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
10416 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
10417 * config/lm32/lm32.h (TARGET_VERSION): Remove.
10418 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
10419 * config/m32c/m32c.h (TARGET_VERSION): Remove.
10420 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
10421 * config/m32r/m32r.h (TARGET_VERSION): Remove.
10422 * config/m68k/linux.h (TARGET_VERSION): Remove.
10423 * config/m68k/m68k.h (TARGET_VERSION): Remove.
10424 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
10425 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
10426 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
10427 * config/mep/mep.h (TARGET_VERSION): Remove.
10428 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
10429 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
10430 * config/mips/iris6.h (MACHINE_TYPE): Remove.
10431 * config/mips/linux.h (TARGET_VERSION): Remove.
10432 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
10433 * config/mips/vxworks.h (TARGET_VERSION): Remove.
10434 * config/mmix/mmix.h (TARGET_VERSION): Remove.
10435 * config/mn10300/linux.h (TARGET_VERSION): Remove.
10436 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
10437 * config/pa/pa.h (TARGET_VERSION): Remove.
10438 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
10439 * config/picochip/picochip.h (TARGET_VERSION): Remove.
10440 * config/rs6000/aix.h (TARGET_VERSION): Remove.
10441 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
10442 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
10443 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
10444 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
10445 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
10446 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
10447 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
10448 * config/rs6000/linux.h (TARGET_VERSION): Remove.
10449 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
10450 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
10451 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
10452 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
10453 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
10454 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
10455 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
10456 * config/s390/linux.h (TARGET_VERSION): Remove.
10457 * config/s390/s390.h (TARGET_VERSION): Remove.
10458 * config/s390/tpf.h (TARGET_VERSION): Remove.
10459 * config/score/score.h (TARGET_VERSION): Remove.
10460 * config/sh/linux.h (TARGET_VERSION): Remove.
10461 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
10462 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
10463 * config/sh/sh.h (TARGET_VERSION): Remove.
10464 * config/sh/sh64.h (TARGET_VERSION): Remove.
10465 * config/sh/superh.h (TARGET_VERSION): Remove.
10466 * config/sh/vxworks.h (TARGET_VERSION): Remove.
10467 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
10468 * config/sparc/linux.h (TARGET_VERSION): Remove.
10469 * config/sparc/linux64.h (TARGET_VERSION): Remove.
10470 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
10471 TARGET_NAME32, TARGET_NAME): Remove.
10472 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
10473 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
10474 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
10475 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
10476 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
10477 * config/spu/spu.h (TARGET_VERSION): Remove.
10478 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
10479 * config/v850/v850.h (TARGET_VERSION): Remove.
10480 * config/vax/linux.h (TARGET_VERSION): Remove.
10481 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
10482 * config/xtensa/elf.h (TARGET_VERSION): Remove.
10483 * config/xtensa/linux.h (TARGET_VERSION): Remove.
10485 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
10488 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
10489 frame-related from frame-unrelated adjustments to the stack pointer.
10491 2011-03-31 Jakub Jelinek <jakub@redhat.com>
10493 * common.opt (fdebug-types-section): Move earlier.
10494 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
10496 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
10498 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
10501 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
10503 * tree.h (CASE_CHAIN): Define.
10504 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
10505 (gimple_redirect_edge_and_branch): Likewise.
10507 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
10509 PR middle-end/48367
10510 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
10513 2011-03-30 Jeff Law <law@redhat.com>
10515 * PR bootstrap/48371
10516 * reload1.c (reload): Fix botch in last change.
10518 * reload.h (struct reload): Fix typo introduced in last change.
10520 2011-03-30 Joseph Myers <joseph@codesourcery.com>
10522 * config/arm/arm.opt (mhard-float, msoft-float): Mark
10523 Undocumented. Remove help text.
10524 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
10527 2011-03-30 Joseph Myers <joseph@codesourcery.com>
10529 * doc/options.texi (NegativeAlias): Document.
10530 (Alias): Mention NegativeAlias.
10531 * opt-functions.awk: Handle NegativeAlias.
10532 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
10533 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
10534 * opts.h (CL_NEGATIVE_ALIAS): Define.
10535 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
10536 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
10538 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
10540 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10541 mno-spe and mno-isel instead of mspe=no and -misel=no.
10543 2011-03-29 Mark Wielaard <mjw@redhat.com>
10545 * common.opt (fdebug-types-section): New flag.
10546 * doc/invoke.texi: Document new -fno-debug-types-section flag.
10547 * dwarf2out.c (use_debug_types): New define.
10548 (struct die_struct): Mark die_id with GTY desc use_debug_types.
10549 (print_die): Guard output of type unit signatures using
10551 (build_abbrev_table): Replace assert of dwarf_version >= 4
10552 with assert on use_debug_types.
10553 (size_of_die): Likewise.
10554 (unmark_dies): Likewise.
10555 (value_format): Decide AT_ref_external form on use_debug_types.
10556 (output_die): Replace dwarf_version version check guard with
10557 use_debug_types where appropriate.
10558 (modified_type_die): Likewise.
10559 (gen_reference_type_die): Likewise.
10560 (dwarf2out_start_source_file): Likewise.
10561 (dwarf2out_end_source_file): Likewise.
10562 (prune_unused_types_walk_attribs): Likewise.
10563 (dwarf2out_finish): Likewise.
10565 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
10567 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
10569 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
10571 PR rtl-optimization/48332
10572 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
10573 mode of input operand N and modeN to its actual mode.
10575 2011-03-30 Jeff Law <law@redhat.com>
10577 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
10578 define accessor macro.
10579 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
10580 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
10581 (reg_equiv_init): Likewise.
10582 (reg_equivs_size): New variable.
10583 (reg_equiv_init_size): Remove.
10584 (allocate_initial_values): Move prototype to here from....
10585 * integrate.h (allocate_initial_values): Remove prototype.
10586 * integrate.c: Include reload.h.
10587 (allocate_initial_values): Corresponding changes.
10588 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
10589 (fix_reg_equiv_init, no_equiv): Corresponding changes.
10590 (update_equiv_regs): Corresponding changes.
10591 (ira): Corresponding changes.
10592 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
10593 (push_secondary_reload): Corresponding changes.
10594 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
10595 (make_memloc, find_reloads_address): Corresponding changes.
10596 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
10597 (find_reloads_address_1): Corresponding changes.
10598 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
10599 (refers_to_regno_for_reload_p): Corresponding changes.
10600 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
10601 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
10602 * reload1.c: Include ggc.h.
10603 (grow_reg_equivs): New function.
10604 (replace_pseudos_in, reload): Corresponding changes.
10605 (calculate_needs_all_insns, alter_regs): Corresponding changes.
10606 (eliminate_regs_1, elimination_effects): Corresponding changes.
10607 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
10608 (delete_output_reload): Likewise.
10609 * caller-save.c (mark_referenced_regs): Corresponding changes.
10610 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
10611 * frv/predicates.md (frv_load_operand): Corresponding changes.
10612 * microblaze/microblaze.c (double_memory_operand): Corresponding
10614 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
10615 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
10616 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
10617 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
10618 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
10620 * pa/pa.c (emit_move_sequence): Corresponding changes.
10621 * vax/vax.c (nonindexed_address_p): Corresponding changes.
10623 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
10626 * config/arm/arm.c (coproc_secondary_reload_class): Handle
10627 structure modes. Don't check neon_vector_mem_operand for
10628 vector or structure modes.
10630 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
10631 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10634 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
10635 operand 1 and reshuffle the operands to match.
10636 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
10638 2011-03-30 Christian Schüler <cschueler@gmx.de>
10641 * config/c.opt (F): Added 'Driver' to -F option.
10644 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
10646 * config/darwin.opt: Added '-arch' option.
10648 2011-03-30 Nick Clifton <nickc@redhat.com>
10650 * config/rx/rx.md: Add peepholes and patterns to combine
10651 extending loads and simple arithmetic instructions.
10652 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
10653 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
10654 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
10655 modes to use pre-decrement and post-increment addressing.
10656 (rx_is_restricted_memory_address): Add range checking of REG+INT
10658 (rx_print_operand): Add support for %Q. Fix handling of %Q.
10659 (rx_memory_move_cost): Adjust cost of stores.
10660 (rx_adjust_insn_length): New function.
10662 2011-03-30 Jakub Jelinek <jakub@redhat.com>
10665 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10666 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
10667 matching arg00/arg01 types.
10669 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
10671 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
10672 last_location to UNKNOWN_LOCATION.
10674 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
10677 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
10680 2011-03-30 Joseph Myers <joseph@codesourcery.com>
10681 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10684 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
10685 Init(PROCESSOR_V7).
10686 (sparc_cpu): Likewise.
10687 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
10690 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
10693 PR middle-end/48342
10694 PR rtl-optimization/48345
10695 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
10696 hard regs for given mode from profitable regs when doing secondary
10699 2011-03-29 Jeff Law <law@redhat.com>
10702 * tree-ssa-threadupdate.c (struct redirection_data): Remove
10703 do_not_duplicate field.
10704 (lookup_redirection_data): Corresponding changes.
10705 (create_duplicates): Always create a template block.
10706 (redirect_edges): Remove code which reused the original block
10707 when it was going to become unreachable code.
10708 (thread_block): Don't set do_not_duplicate field.
10710 2011-03-29 Joseph Myers <joseph@codesourcery.com>
10712 * lto-opts.c (register_user_option_p, lto_register_user_option):
10713 Make type argument unsigned.
10714 * lto-streamer.h (lto_register_user_option): Make type argument
10716 * opth-gen.awk: Make CL_* macros unsigned.
10717 * opts-common.c (find_opt): Make lang_mask argument unsigned.
10718 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
10719 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
10720 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
10721 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
10722 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
10723 (find_opt): Make lang_mask argument unsigned.
10725 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
10727 PR rtl-optimization/48331
10728 PR rtl-optimization/48334
10729 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
10730 for any used algorithm.
10732 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
10734 * ira-conflicts.c (build_object_conflicts): Add unused attribute
10737 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
10739 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
10740 (alpha_option_override): Don't set alpha_sr_alias_set.
10741 (emit_frame_store_1): Use gen_frame_mem rather than calling
10743 (alpha_expand_epilogue): Ditto.
10745 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
10747 PR tree-optimization/48290
10748 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
10749 vectorization, check that relevant phis in the basic block after
10750 the inner loop are really inner loop's exit phis.
10752 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
10755 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
10756 (cached_dw_loc_list_def): New structure.
10757 (cached_dw_loc_list): New typedef.
10758 (cached_dw_loc_list_table): New variable.
10759 (cached_dw_loc_list_table_hash): New function.
10760 (cached_dw_loc_list_table_eq): Likewise.
10761 (add_location_or_const_value_attribute): Take a bool cache_p.
10762 Cache the list when the parameter is true.
10763 (gen_formal_parameter_die): Update caller.
10764 (gen_variable_die): Likewise.
10765 (dwarf2out_finish): Likewise.
10766 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
10767 while generating debug info for the decl.
10768 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
10769 (dwarf2out_init): Initialize cached_dw_loc_list_table.
10770 (resolve_addr): Cache the result of resolving a chain of
10773 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
10775 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
10776 conflict object hard regset nodes have intersecting hard reg sets.
10778 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
10779 after regstat_init_n_sets_and_refs.
10781 * ira.c: Add more comments at the top.
10782 (setup_stack_reg_pressure_class, setup_pressure_classes):
10783 Add comments how we compute the register pressure classes.
10784 (setup_allocno_and_important_classes): Add more comments.
10785 (setup_class_translate_array, reorder_important_classes)
10786 (setup_reg_class_relations): Add comments.
10788 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
10791 * ira-color.c: Add 2011 to the Copyright line.
10792 (assign_hard_reg): Add more comments.
10793 (improve_allocation): Ditto.
10795 * ira-costs.c: Add 2011 to the Copyright line.
10796 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
10798 (setup_regno_cost_classes_by_mode): Ditto.
10800 Initial patches from ira-improv branch:
10802 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
10804 * ira-build.c (ira_create_object): Remove initialization of
10805 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
10806 (ira_create_allocno): Remove initialization of
10807 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
10808 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
10809 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
10810 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
10811 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
10812 Initialize ALLOCNO_ADD_DATA.
10813 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
10814 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
10816 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
10817 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
10819 * ira.c (ira_reallocate): Remove.
10820 (setup_pressure_classes): Call
10821 ira_init_register_move_cost_if_necessary. Use
10822 ira_register_move_cost instead of ira_get_register_move_cost.
10823 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
10824 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
10826 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
10827 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
10828 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
10829 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
10830 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
10831 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
10833 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
10834 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
10835 (struct allocno_color_data): New.
10836 (allocno_color_data_t): New typedef.
10837 (allocno_color_data): New definition.
10838 (ALLOCNO_COLOR_DATA): New macro.
10839 (struct object_color_data): New.
10840 (object_color_data_t): New typedef.
10841 (object_color_data): New definition.
10842 (OBJECT_COLOR_DATA): New macro.
10843 (update_copy_costs, calculate_allocno_spill_cost): Call
10844 ira_init_register_move_cost_if_necessary. Use
10845 ira_register_move_cost instead of ira_get_register_move_cost.
10846 (move_spill_restore, update_curr_costs): Ditto.
10847 (allocno_spill_priority): Make it inline.
10848 (color_pass): Allocate and free allocno_color_dat and object_color_data.
10849 (struct coalesce_data, coalesce_data_t): New.
10850 (allocno_coalesce_data): New definition.
10851 (ALLOCNO_COALESCE_DATA): New macro.
10852 (merge_allocnos, coalesced_allocno_conflict_p): Use
10853 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
10854 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
10855 (coalesce_allocnos): Ditto.
10856 (setup_coalesced_allocno_costs_and_nums): Ditto.
10857 (collect_spilled_coalesced_allocnos): Ditto.
10858 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
10859 (setup_slot_coalesced_allocno_live_ranges): Ditto.
10860 (coalesce_spill_slots): Ditto.
10861 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
10862 free allocno_coalesce_data.
10864 * ira-conflicts.c: Fix formatting.
10865 (process_regs_for_copy): Call
10866 ira_init_register_move_cost_if_necessary. Use
10867 ira_register_move_cost instead of ira_get_register_move_cost.
10868 (build_object_conflicts): Optimize.
10870 * ira-costs.c (record_reg_classes): Optimize. Call
10871 ira_init_register_move_cost_if_necessary. Use
10872 ira_register_move_cost, ira_may_move_in_cost, and
10873 ira_may_move_out_cost instead of ira_get_register_move_cost and
10874 ira_get_may_move_cost.
10875 (record_address_regs): Ditto.
10876 (scan_one_insn): Optimize.
10877 (find_costs_and_classes): Optimize.
10878 (process_bb_node_for_hard_reg_moves): Call
10879 ira_init_register_move_cost_if_necessary. Use
10880 ira_register_move_cost instead of ira_get_register_move_cost.
10882 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
10883 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
10884 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
10885 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
10887 (ira_initiate_emit_data, ira_finish_emit_data)
10888 (create_new_allocno): New functions.
10889 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
10890 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
10891 Use ira_register_move_cost instead of ira_get_register_move_cost.
10893 * ira-int.h: Fix some comments.
10894 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
10895 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
10896 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
10897 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
10899 (struct ira_allocno): Make mode and aclass a bitfield. Move other
10900 bitfield after mode. Make hard_regno a short int. Make
10901 hard_regno short. Remove first_coalesced_allocno and
10902 next_coalesced_allocno. Move mem_optimized_dest_p,
10903 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
10904 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
10905 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
10906 temp, colorable_p. Add new member add_data.
10907 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
10908 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
10909 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
10910 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
10911 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
10912 (ALLOCNO_ADD_DATA): New macro.
10913 (ira_emit_data_t): New typedef.
10914 (struct ira_emit_data): New. Move mem_optimized_dest_p,
10915 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
10916 from struct ira_allocno.
10917 (ALLOCNO_EMIT_DATA): New macro.
10918 (ira_allocno_emit_data, allocno_emit_reg): New.
10919 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
10920 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
10921 (OBJECT_ADD_DATA): New macro.
10922 (ira_reallocate): Remove.
10923 (ira_initiate_emit_data, ira_finish_emit_data): New.
10924 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
10925 (ira_init_register_move_cost_if_necessary): New.
10926 (ira_object_conflict_iter_next): Merge into
10927 ira_object_conflict_iter_cond.
10928 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
10930 * ira-live.c (process_single_reg_class_operands): Call
10931 ira_init_register_move_cost_if_necessary. Use
10932 ira_register_move_cost instead of ira_get_register_move_cost.
10934 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
10936 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
10938 * ira-costs.c: Fix formatting.
10939 (cost_classes, cost_classes_num): Remove.
10940 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
10941 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
10942 (cost_classes_del, cost_classes_htab): New.
10943 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
10944 (initiate_regno_cost_classes, setup_cost_classes): New.
10945 (setup_regno_cost_classes_by_aclass): New.
10946 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
10947 (record_reg_classes): Use regno_cost_classes instead of
10948 cost_classes. Move checking opposite operand up.
10949 (record_address_regs): Use regno_cost_classes
10950 instead of cost_classes.
10951 (scan_one_insn): Ditto. Use always general register.
10952 (print_allocno_costs): Use regno_cost_classes instead of
10954 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
10955 (find_costs_and_classes): Set up cost classes for each registers.
10956 Use also their mode for this. Use regno_cost_classes instead of
10958 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
10960 (free_ira_costs, ira_init_costs): Don't use cost_classes.
10961 (ira_costs, ira_set_pseudo_classes): Call
10962 initiate_regno_cost_classes and finish_regno_cost_classes.
10964 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
10966 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
10968 * target.def (ira_cover_classes): Remove.
10970 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
10972 * doc/tm.texi.in: Ditto.
10974 * ira-conflicts.c: Remove mentioning cover classes from the file.
10975 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
10976 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
10978 * targhooks.c (default_ira_cover_classes): Remove.
10980 * targhooks.h (default_ira_cover_classes): Ditto.
10982 * haifa-sched.c: Remove mentioning cover classes from the file.
10983 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
10984 ira_pressure_classes and ira_pressure_classes_num instead of
10985 ira_reg_class_cover_size and ira_reg_class_cover. Use
10986 sched_regno_pressure_class instead of sched_regno_cover_class.
10987 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
10988 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
10990 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
10991 classes from the file.
10992 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
10993 (struct object_hard_regs, struct object_hard_regs_node): New.
10994 (struct ira_object): New members profitable_hard_regs,
10995 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
10996 (struct ira_allocno): Rename cover_class to aclass. Rename
10997 cover_class_cost and updated_cover_class_cost to class_cost and
10998 updated_class_cost. Remove splay_removed_p and
10999 left_conflict_size. Add new members colorable_p.
11000 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
11001 (ALLOCNO_COLORABLE_P): New macro.
11002 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
11003 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
11004 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
11005 (OBJECT_...): Rename parameter C to O.
11006 (OBJECT_PROFITABLE_HARD_REGS): New macro.
11007 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
11008 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
11009 (struct target_ira_int): New members x_ira_max_memory_move_cost,
11010 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
11011 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
11012 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
11013 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
11014 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
11015 x_ira_reg_class_subunion.
11016 (ira_max_memory_move_cost, ira_max_register_move_cost)
11017 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
11018 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
11019 (ira_important_class_nums, ira_reg_class_superunion): New macros.
11020 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
11021 (ira_reg_class_union): Rename to ira_reg_class_subunion.
11022 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
11023 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
11024 (ira_tune_allocno_costs_and_cover_classes): Rename to
11025 ira_tune_allocno_costs.
11026 (ira_debug_hard_regs_forest): New.
11027 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
11028 (ira_object_conflict_iter_next): Fix comments.
11029 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
11030 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
11031 cover_class to aclass.
11032 (ira_allocate_and_accumulate_costs): Ditto.
11033 (ira_allocate_and_set_or_copy_costs): Ditto.
11035 * opts.c (decode_options): Remove ira_cover_class check.
11037 * ira-color.c: Remove mentioning cover classes from the file. Use
11038 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
11039 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
11040 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
11041 (splay-tree.h): Remove include.
11042 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
11043 before copy_freq_compare_func.
11044 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
11045 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
11047 (hard_regs_roots, hard_regs_node_vec): Ditto.
11048 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
11049 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
11050 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
11051 (create_new_object_hard_regs_node): Ditto.
11052 (add_new_object_hard_regs_node_to_forest): Ditto.
11053 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
11054 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
11056 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
11057 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
11058 (remove_unused_object_hard_regs_nodes): Ditto.
11059 (enumerate_object_hard_regs_nodes): Ditto.
11060 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
11061 (object_hard_regs_subnode_t): Ditto.
11062 (struct object_hard_regs_subnode): Ditto.
11063 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
11064 (setup_object_hard_regs_subnode_index): Ditto.
11065 (get_object_hard_regs_subnodes_num): Ditto.
11066 (form_object_hard_regs_nodes_forest): Ditto.
11067 (finish_object_hard_regs_nodes_tree): Ditto.
11068 (finish_object_hard_regs_nodes_forest): Ditto.
11069 (allocnos_have_intersected_live_ranges_p): Rename to
11070 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
11071 (pseudos_have_intersected_live_ranges_p): Rename to
11072 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
11073 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
11074 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
11075 (update_copy_costs): Remove assert. Skip cost update if the hard
11076 reg does not belong the class.
11077 (assign_hard_reg): Process only profitable hard regs.
11078 (uncolorable_allocnos_num): Make it scalar.
11079 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
11080 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
11081 and ira_reg_class_max_nregs.
11082 (bucket_allocno_compare_func): Check frequency first.
11083 (sort_bucket): Add compare function as a parameter.
11084 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
11085 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
11086 (push_allocno_to_stack): Rewrite for checking new allocno
11088 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
11089 (push_only_colorable): Pass new parameter to sort_bucket.
11090 (push_allocno_to_spill): Remove.
11091 (allocno_spill_priority_compare): Make it inline and rewrite.
11092 (splay_tree_allocate, splay_tree_free): Remove.
11093 (allocno_spill_sort_compare): New function.
11094 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
11095 build and use splay tree. Choose first allocno in uncolorable
11096 allocno bucket to spill. Remove setting spill cost.
11097 (all_conflicting_hard_regs): Remove.
11098 (setup_allocno_available_regs_num): Check only profitable hard
11099 regs. Print info about hard regs nodes.
11100 (setup_allocno_left_conflicts_size): Remove.
11101 (put_allocno_into_bucket): Don't call
11102 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
11103 (improve_allocation): New.
11104 (color_allocnos): Call setup_profitable_hard_regs,
11105 form_object_hard_regs_nodes_forest, improve_allocation,
11106 finish_object_hard_regs_nodes_forest. Setup spill cost.
11107 (print_loop_title): Use pressure classes.
11108 (color_allocnso): Ditto.
11109 (do_coloring): Remove allocation and freeing splay_tree_node_pool
11110 and allocnos_for_spilling.
11111 (ira_sort_regnos_for_alter_reg): Don't setup members
11112 {first,next}_coalesced_allocno.
11113 (color): Remove allocating and freeing removed_splay_allocno_vec.
11114 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
11115 prohibited_class_mode_regs.
11117 * ira-lives.c: Remove mentioning cover classes from the file. Fix
11119 (update_allocno_pressure_excess_length): Use pressure classes.
11120 (inc_register_pressure, dec_register_pressure): Check for pressure
11122 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
11123 pressure class. Use ira_reg_class_nregs instead of
11124 ira_reg_class_max_nregs.
11125 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
11126 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
11127 (single_reg_class): Use ira_reg_class_nregs instead of
11128 ira_reg_class_max_nregs.
11129 (process_bb_node_lives): Use pressure classes.
11131 * ira-emit.c: Remove mentioning cover classes from the file. Use
11132 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
11133 (change_loop): Use pressure classes.
11134 (modify_move_list): Call ira_set_allocno_class instead of
11135 ira_set_allocno_cover_class.
11137 * ira-build.c: Remove mentioning cover classes from the file. Use
11138 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
11139 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
11140 ALLOCNO_UPDATED_CLASS_COST instead of
11141 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
11142 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
11143 (ira_create_allocno): Remove initialization of
11144 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
11145 ALLOCNO_COLORABLE_P.
11146 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
11147 Update conflict regs for the objects.
11148 (create_cap_allocno): Remove assert. Don't propagate
11149 ALLOCNO_AVAILABLE_REGS_NUM.
11150 (ira_free_allocno_costs): New function.
11151 (finish_allocno): Change a part of code into call of
11152 ira_free_allocno_costs.
11153 (low_pressure_loop_node_p): Use pressure classes.
11154 (object_range_compare_func): Don't compare classes.
11155 (setup_min_max_conflict_allocno_ids): Ditto.
11157 * loop-invariant.c: Remove mentioning cover classes from the file.
11158 Use ira_pressure_classes and ira_pressure_classes_num instead of
11159 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
11160 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
11161 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11162 Use reg_allocno_class instead of reg_cover_class.
11163 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
11164 STACK_REG_COVER_CLASS.
11165 (get_regno_cover_class): Rename to get_regno_pressure_class.
11166 (move_loop_invariants): Initialize and finalize regstat.
11168 * ira.c: Remove mentioning cover classes from the file. Add
11169 comments about coloring without cover classes. Use ALLOCNO_CLASS
11170 instead of ALLOCNO_COVER_CLASS. Fix formatting.
11171 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
11172 setup_class_subset_and_memory_move_costs.
11173 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
11174 (setup_cover_and_important_classes): Rename to
11175 setup_allocno_and_important_classes.
11176 (setup_class_translate_array): New.
11177 (setup_class_translate): Call it for allocno and pressure classes.
11178 (cover_class_order): Rename to allocno_class_order.
11179 (comp_reg_classes_func): Use ira_allocno_class_translate instead
11180 of ira_class_translate.
11181 (reorder_important_classes): Set up ira_important_class_nums.
11182 (setup_reg_class_relations): Set up ira_reg_class_superunion.
11183 (print_class_cover): Rename to print_classes. Add parameter.
11184 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
11185 Print pressure classes too.
11186 (find_reg_class_closure): Rename to find_reg_classes. Don't call
11187 setup_reg_subclasses.
11188 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
11189 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
11190 (setup_prohibited_class_mode_regs): Use
11191 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
11192 (clarify_prohibited_class_mode_regs): New function.
11193 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
11194 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
11195 (ira_init_once): Initialize them.
11196 (free_register_move_costs): Process them.
11197 (ira_init): Move calls of find_reg_classes and
11198 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
11199 Call clarify_prohibited_class_mode_regs.
11200 (ira_no_alloc_reg): Remove.
11201 (too_high_register_pressure_p): Use pressure classes.
11203 * sched-deps.c: Remove mentioning cover classes from the file.
11204 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
11205 ira_pressure_classes and ira_pressure_classes_num instead of
11206 ira_reg_class_cover_size and ira_reg_class_cover.
11207 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
11208 sched_regno_pressure_class instead of sched_regno_cover_class.
11209 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
11210 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11212 * ira.h: Add 2010 to Copyright.
11213 (ira_no_alloc_reg): Remove external.
11214 (struct target_ira): Rename x_ira_hard_regno_cover_class,
11215 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
11216 x_ira_class_translate to x_ira_hard_regno_allocno_class,
11217 x_ira_allocno_classes_num, x_ira_allocno_classes, and
11218 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
11219 x_ira_pressure_classes, x_ira_pressure_class_translate, and
11220 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
11221 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
11222 x_ira_no_alloc_regs.
11223 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
11224 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
11225 ira_allocno_classes_num and ira_allocno_classes.
11226 (ira_class_translate): Rename to ira_allocno_class_translate.
11227 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
11228 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
11229 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
11230 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
11231 (ira_no_alloc_regs): New.
11233 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
11234 classes from the file. Use ALLOCNO_CLASS instead of
11235 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
11236 ALLOCNO_COVER_CLASS_COST.
11237 (regno_cover_class): Rename to regno_aclass.
11238 (record_reg_classes): Use ira_reg_class_subunion instead of
11239 ira_reg_class_union.
11240 (record_address_regs): Check overflow.
11241 (scan_one_insn): Ditto.
11242 (print_allocno_costs): Print total mem cost fore regional allocation.
11243 (print_pseudo_costs): Use REG_N_REFS.
11244 (find_costs_and_classes): Use classes intersected with them on the
11245 1st pass. Check overflow. Use ira_reg_class_subunion instead of
11246 ira_reg_class_union. Use ira_allocno_class_translate and
11247 regno_aclass instead of ira_class_translate and regno_cover_class.
11248 Modify code for finding regno_aclass. Setup preferred classes for
11250 (setup_allocno_cover_class_and_costs): Rename to
11251 setup_allocno_class_and_costs. Use regno_aclass instead of
11252 regno_cover_class. Use ira_set_allocno_class instead of
11253 ira_set_allocno_cover_class.
11254 (init_costs, finish_costs): Use regno_aclass instead of
11256 (ira_costs): Use setup_allocno_class_and_costs instead of
11257 setup_allocno_cover_class_and_costs.
11258 (ira_tune_allocno_costs_and_cover_classes): Rename to
11259 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
11260 by processing objects. Use ira_reg_class_max_nregs instead of
11261 ira_reg_class_nregs.
11263 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
11265 * sched-int.h: Remove mentioning cover classes from the file.
11266 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
11268 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
11269 classes from the file.
11270 (struct reg_pref): Rename coverclass into allocnoclass.
11271 (reg_cover_class): Rename to reg_allocno_class.
11273 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
11275 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
11277 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
11279 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
11281 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
11283 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
11285 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
11287 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
11289 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
11291 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
11293 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
11294 (i386_ira_cover_classes): Ditto.
11296 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
11298 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
11300 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
11302 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
11304 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
11306 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
11308 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
11309 (mips_ira_cover_classes): Ditto.
11311 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
11313 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
11315 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
11317 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
11319 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
11321 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
11322 (IRA_COVER_CLASSES_VSX): Ditto.
11324 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
11325 (rs6000_ira_cover_classes): Ditto.
11327 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
11329 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
11331 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
11333 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
11335 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
11337 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
11339 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
11341 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
11343 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
11345 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
11347 2011-03-29 Jakub Jelinek <jakub@redhat.com>
11350 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
11351 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
11352 dw_fde_unlikely_section_end_label, cold_in_std_section,
11353 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
11354 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
11356 (output_fde): Use dw_fde_second_{begin,end} if second is
11357 true, otherwise dw_fde_{begin,end}.
11358 (output_call_frame_info): Test dw_fde_second_begin != NULL
11359 instead of dw_fde_switched_sections.
11360 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
11361 fields, initialize new fields. Initialize in_std_section
11362 unconditionally from the first partition.
11363 (dwarf2out_end_epilogue): Don't override dw_fde_end when
11364 dw_fde_second_begin is non-NULL.
11365 (dwarf2out_switch_text_section): Stop initializing removed
11366 dw_fde_struct fields, initialize new fields, initialize
11367 also dw_fde_end here. Set dw_fde_switch_cfi even when
11368 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
11369 (struct var_loc_list_def): Add last_before_switch field.
11370 (arange_table, arange_table_allocated, arange_table_in_use,
11371 ARANGE_TABLE_INCREMENT, add_arange): Removed.
11372 (size_of_aranges): Count !in_std_section and !second_in_std_section
11373 hunks in fdes, instead of looking at arange_table_in_use.
11374 (output_aranges): Add aranges_length argument, don't call
11375 size_of_aranges here. Instead of using aranges_table*
11376 emit ranges for fdes when !in_std_section resp.
11377 !second_in_std_section.
11378 (dw_loc_list): Break ranges crossing section switch.
11379 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
11380 use dw_fde_second_end instead of dw_fde_end as end of last range.
11381 (gen_subprogram_die): Don't call add_arange. Use
11382 dw_fde_{begin,end} for first partition and if switched
11383 section dw_fde_second_{begin,end} for the second.
11384 (var_location_switch_text_section_1,
11385 var_location_switch_text_section): New functions.
11386 (dwarf2out_begin_function): Initialize cold_text_section even
11387 when function_section () isn't text_section.
11388 (prune_unused_types): Don't walk arange_table.
11389 (dwarf2out_finish): Don't needlessly test
11390 flag_reorder_blocks_and_partition when testing cold_text_section_used.
11391 If info_section_emitted, call size_of_aranges and if it indicates
11392 non-empty .debug_aranges, call output_aranges with the computed
11393 size. Stop using removed dw_fde_struct fields, use
11394 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
11398 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
11399 create ENTRY_VALUE if incoming or address of incoming's MEM
11401 * dwarf2out.c (mem_loc_descriptor): Don't emit
11402 DW_OP_GNU_entry_value of DW_OP_fbreg.
11403 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
11404 on ENTRY_VALUE is able to find the canonical parameter VALUE.
11405 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
11406 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
11408 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
11409 is a REG_P or MEM_P with REG_P address, compute hash directly
11410 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
11411 (preserve_only_constants): Don't clear VALUES forwaring
11412 ENTRY_VALUE to some other VALUE.
11414 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
11416 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
11417 instead of GEN_INT.
11419 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
11421 * cfgexpand.c (expand_gimple_cond): Always set the source location and
11422 block before expanding the statement.
11423 (expand_gimple_stmt_1): Likewise. Set them here...
11424 (expand_gimple_stmt): ...and not here. Tidy.
11425 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
11428 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
11430 * Makefile.in: New rule for cprop.o.
11431 * gcse.c: Move constant/copy propagation to cprop.c.
11432 (compute_local_properties): Only handle expression tables.
11433 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
11434 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
11435 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
11436 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
11437 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
11438 compute_cprop_data, find_used_regs, try_replace_reg,
11439 find_avail_set, cprop_jump, constprop_register, cprop_insn,
11440 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
11441 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
11442 find_bypass_set, reg_killed_on_edge, bypass_block,
11443 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
11444 execute_rtl_cprop, pass_rtl_cprop): Move to...
11445 * cprop.c: ...here. New file, constant/copy propagation for RTL
11446 moved from gcse.c to here with minor cleanups in duplicated code.
11448 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
11450 * config/i386/i386.c (flag_opts): Fix a typo in
11451 -mavx256-split-unaligned-store.
11453 2011-03-28 Anatoly Sokolov <aesok@post.ru>
11455 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
11456 LIBCALL_VALUE): Remove macros.
11457 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11458 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11459 (h8300_function_value, h8300_libcall_value,
11460 h8300_function_value_regno_p): New functions.
11462 2011-03-28 Anatoly Sokolov <aesok@post.ru>
11464 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
11466 2011-03-28 Jeff Law <law@redhat.com>
11468 * tree-ssa-threadupdate.c (redirect_edges): Call
11469 create_edge_and_update_destination_phis as needed.
11470 (create_edge_and_update_destination_phis): Accept new BB argument.
11471 All callers updated.
11472 (thread_block): Do not update the profile when threading around
11473 intermediate blocks.
11474 (thread_single_edge): Likewise.
11475 (determine_bb_domination_status): If BB is not a successor of the
11476 loop header, return NONDOMINATING.
11477 (register_jump_thread): Note when we register a jump thread around
11478 an intermediate block.
11479 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
11480 (thread_across_edge): Use it.
11482 2011-03-28 Tristan Gingold <gingold@adacore.com>
11484 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
11485 when for_return is 2.
11487 2011-03-28 Jeff Law <law@redhat.com>
11489 * var-tracking.c (canonicalize_values_mark): Delete unused
11491 (canonicalize_values_star, set_variable_part): Likewise.
11492 (clobber_variable_part, delete_variable_part): Likewise.
11494 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
11496 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
11498 2011-03-28 Martin Jambor <mjambor@suse.cz>
11500 * tree-inline.c (expand_call_inline): Do not check that destination
11502 (optimize_inline_calls): Assert that destination node is analyzed.
11503 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
11504 not call tree_lowering_passes.
11505 * cgraph.h (cgraph_analyze_function): Declare.
11506 * cgraphunit.c (cgraph_analyze_function): Make public.
11508 2011-03-28 Joseph Myers <joseph@codesourcery.com>
11510 * config/sparc/sparc-opts.h: New.
11511 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
11512 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
11513 (sparc_option_override): Store processor_type enumeration rather
11514 than string in cpu_default. Remove name and enumeration from
11515 cpu_table. Directly default -mcpu then default -mtune from -mcpu
11516 without using sparc_select. Use target_flags_explicit instead of
11518 * config/sparc/sparc.h (enum processor_type): Move to
11520 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
11521 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
11522 HeaderInclude entry.
11523 (mcpu=, mtune=): Use Var and Enum.
11524 (sparc_processor_type): New Enum and EnumValue entries.
11526 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11527 Iain Sandoe <iains@gcc.gnu.org>
11530 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
11532 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
11534 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
11535 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
11536 Insert new statements at it in lieu of STMT.
11537 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
11538 * tree-vect-stmts.c (vectorizable_store): Likewise.
11539 (vectorizable_load): Likewise.
11541 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
11543 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
11548 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
11550 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
11551 unaligned 256bit load/store.
11552 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
11553 (*avx_movdqu<avxmodesuffix>): Likewise.
11555 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11558 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
11559 * config/pa/pa.md (iordi3): Use new predicate in expander.
11560 (iorsi3): Likewise.
11562 2011-03-27 Anatoly Sokolov <aesok@post.ru>
11564 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
11565 FUNCTION_VALUE_REGNO_P): Remove macros.
11566 * config/mips/mips-protos.h (mips_function_value): Remove.
11567 * config/mips/mips.c (mips_function_value): Rename to...
11568 (mips_function_value_1): ... this. Make static. Handle receiving
11569 the function type in 'fn_decl_or_type' argument.
11570 (mips_function_value, mips_libcall_value,
11571 mips_function_value_regno_p): New function.
11572 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11573 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11575 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
11577 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
11578 and -mavx256-split-unaligned-store.
11579 (ix86_option_override_internal): Split 32-byte AVX unaligned
11580 load/store by default.
11581 (ix86_avx256_split_vector_move_misalign): New.
11582 (ix86_expand_vector_move_misalign): Use it.
11584 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
11585 -mavx256-split-unaligned-store.
11587 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
11588 256bit load/store. Generate unaligned store on misaligned memory
11590 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
11592 (*avx_movdqu<avxmodesuffix>): Likewise.
11594 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
11595 -mavx256-split-unaligned-store.
11597 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
11600 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
11603 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
11605 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
11606 opno arguments with an expand_operand. Use create_input_operand.
11607 (mips_prepare_builtin_target): Delete.
11608 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
11610 (mips_expand_builtin_direct): Use create_output_operand and
11611 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
11612 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
11613 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
11615 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
11617 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
11619 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
11621 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
11623 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
11624 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
11625 basic blocks and call commit_edge_insertions directly.
11626 (fixup_abnormal_edges): Move from here to...
11627 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
11628 on the edges and return whether some have actually been inserted.
11629 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
11632 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
11634 PR rtl-optimization/48144
11635 * sel-sched-ir.c (merge_history_vect): Factor out from ...
11636 (merge_expr_data): ... here.
11637 (av_set_intersect): Rename to av_set_code_motion_filter.
11638 Update all callers. Call merge_history_vect when an expression
11639 is found in both sets.
11640 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
11642 2011-03-26 Alan Modra <amodra@gmail.com>
11644 * config/rs6000/predicates.md (word_offset_memref_op): Handle
11645 cmodel medium addresses.
11646 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
11647 64-bit gpr loads and stores.
11648 (rs6000_secondary_reload_ppc64): New function.
11649 * config/rs6000/rs6000-protos.h: Declare it.
11650 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
11652 2011-03-26 Alan Modra <amodra@gmail.com>
11655 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
11656 GNU Go in traceback table.
11658 2011-03-25 Richard Henderson <rth@redhat.com>
11660 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
11661 if there are exactly 6 operands.
11662 (set_storage_via_setmem): Similarly.
11664 2011-03-25 Kai Tietz <ktietz@redhat.com>
11666 * collect2.c (write_c_file_stat): Handle backslash
11667 as right-hand directory separator.
11668 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
11669 checking just for slash.
11670 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
11671 instead of checking for trailing slash.
11672 * gcc.c (record_temp_file): Use filename_cmp instead
11674 (do_spec_1): Likewise.
11675 (replace_outfile_spec_function): Likewise.
11676 (is_directory): Use filename_ncmp instead of strncmp.
11677 (print_multilib_info): Likewise.
11678 * gcov.c (find_source): Use filename_cmp instead
11680 (make_gcov_file_name): Fix order of slash/backslash
11682 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
11683 (add_standard_paths): Likewise.
11684 * mips-tfile.c (saber_stop): Handle backslash.
11685 * prefix.c (update_path): Use filename_ncmp instead of
11687 * profile.c (output_location): Use filename_cmp instead
11689 * read-md.c (handle_toplevel_file): Handle backslash.
11690 * tlink.c (frob_extension): Likewise.
11691 * tree-cfg.c (same_line_p): Use filename_cmp instead of
11693 * tree-dump.c (dequeue_and_dump): Handle backslash.
11694 * tree.c (get_file_function_name): Likewise.
11695 * gengtype.c (read_input_list): Likewise.
11696 (get_file_realbasename): Likewise.
11697 (get_output_file_with_visibility): Use filename_cmp
11700 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
11702 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
11705 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
11707 * fold-const.c (expr_location_or): New function.
11708 (fold_truth_not_expr): Call it.
11710 2011-03-25 Jeff Law <law@redhat.com>
11712 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
11714 * c-family/c-common.c (def_fn_type): Likewise.
11715 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
11716 * emit-rtl.c (gen_rtvec): Likewise.
11717 * lto/lto-lang.c (def_fn_type): Likewise.
11719 2011-03-25 Richard Guenther <rguenther@suse.de>
11721 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
11722 also generate copies.
11723 (fini_copy_prop): Handle constant values properly.
11725 2011-03-25 Jakub Jelinek <jakub@redhat.com>
11727 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
11728 mode size instead of bitsize with DWARF2_ADDR_SIZE.
11729 (hash_loc_operands, compare_loc_operands): Handle
11730 DW_OP_GNU_entry_value.
11732 2011-03-25 Kai Tietz <ktietz@redhat.com>
11734 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
11735 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
11736 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
11737 comment and use macro TARGET_64BIT_MS_ABI instead.
11738 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
11739 and change default behavior for 32-bit MS_ABI.
11740 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
11741 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
11743 (ix86_cfun_abi): Likewise.
11744 (ix86_maybe_switch_abi): Adjust comment.
11745 (init_cumulative_args): Check for bit-ness in MS_ABI case.
11746 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
11747 instead of checking for SYSV_ABI.
11748 (ix86_nsaved_sseregs): Likewise.
11749 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
11751 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
11752 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
11753 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
11754 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
11755 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
11757 2011-03-25 Richard Guenther <rguenther@suse.de>
11759 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
11760 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
11761 (verify_gimple): Remove.
11762 * tree-cfg.c (verify_gimple_call): Merge verification
11764 (verify_gimple_phi): Merge verification from verify_stmts.
11765 (verify_gimple_label): New function.
11766 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
11767 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
11768 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
11769 (verify_stmts): Rename to verify_gimple_in_cfg.
11770 (verify_gimple_in_cfg): New function.
11771 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
11772 * tree-ssa.c (verify_ssa): Likewise.
11773 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
11775 2011-03-25 Richard Guenther <rguenther@suse.de>
11777 * passes.c (init_optimization_passes): Add FRE pass after
11780 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
11781 Andrew Stubbs <ams@codesourcery.com>
11783 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
11785 (arm_movdi_vfp_cortexa8): New pattern.
11786 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
11787 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
11788 instructions when tuning for Cortex-A8. Set attribute "arch".
11789 * config/arm/arm.md: Move include arm-tune.md up a bit.
11790 (define_attr "arch"): Add "onlya8" and "nota8" values.
11791 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
11793 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
11797 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
11799 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
11800 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
11801 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
11802 * passes.c (init_optimization_passes): Move
11803 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
11805 2011-03-25 Kai Tietz <ktietz@redhat.com>
11807 * c-typeck.c (comptypes_internal): Replace target
11808 hook call of comp_type_attributes by version in tree.c file.
11809 * gimple.c (gimple_types_compatible_p_1): Likewise.
11810 * tree-ssa.c (useless_type_conversion_p): Likewise.
11811 * tree.c (build_type_attribute_qual_variant): Likewise.
11812 (attribute_value_equal): New static helper function.
11813 (comp_type_attributes): New function.
11814 (merge_attributes): Use attribute_value_equal for comparison.
11815 (attribute_list_contained): Likewise.
11816 * tree.h (comp_type_attributes): New prototype.
11818 2011-03-25 Richard Guenther <rguenther@suse.de>
11820 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
11821 of complex types at -O0.
11822 (verify_gimple_assign_binary): Likewise.
11823 (verify_gimple_assign_ternary): Likewise.
11825 2011-03-24 Mark Wielaard <mjw@redhat.com>
11827 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
11828 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
11830 2011-03-24 Mark Wielaard <mjw@redhat.com>
11833 * dwarf2out.c (output_abbrev_section): Only write table when
11834 abbrev_die_table_in_use > 1.
11836 2011-02-24 Richard Henderson <rth@redhat.com>
11838 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
11839 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
11840 (alpha_expand_unaligned_load_words): Use extql.
11841 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
11842 (emit_insxl): Handle all modes for consistency.
11844 2011-02-24 Richard Henderson <rth@redhat.com>
11846 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
11847 (alpha_expand_unaligned_load): Likewise.
11848 (alpha_expand_unaligned_store): Likewise.
11849 (alpha_expand_unaligned_load_words): Likewise.
11850 (alpha_expand_unaligned_store_words): Likewise.
11851 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
11852 (alpha_split_lock_test_and_set_12): Likewise.
11853 (print_operand, alpha_fold_builtin_extxx): Likewise.
11854 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
11855 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
11856 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
11857 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
11858 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
11859 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
11860 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
11861 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
11862 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
11863 (extwl, extll, extql): Similarly.
11864 (inswh, inslh, insqh): Similarly.
11865 (mskbl, mskwl, mskll, mskql): Similarly.
11866 (mskwh, msklh, mskqh): Similarly.
11868 2011-02-24 Richard Henderson <rth@redhat.com>
11870 * config/alpha/alpha.md (attribute isa): Add er, ner.
11871 (attribute enabled): Handle them.
11872 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
11874 2011-02-24 Richard Henderson <rth@redhat.com>
11876 * config/alpha/alpha.md (attribute isa): Add vms.
11877 (attribute enabled): Handle it.
11878 (*movsf): Merge *movsf_{nofix,fix,nofp}.
11879 (*movdf): Merge *movdf_{nofix,fix,nofp}.
11880 (*movtf): Rename from *movtf_internal for consistency.
11881 (*movsi): Merge with *movsi_nt_vms.
11882 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
11883 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
11884 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
11885 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
11887 2011-02-24 Richard Henderson <rth@redhat.com>
11889 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
11890 (extendqisi2, extendhisi2): Likewise.
11891 (extendqidi2): Simplify BWX/non-BWX expansions.
11892 (extendhidi2): Similarly.
11894 2011-02-24 Richard Henderson <rth@redhat.com>
11896 * config/alpha/alpha.md (attribute isa): New.
11897 (attribute enabled): New.
11898 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
11899 (zero_extendqisi2, zero_extendqidi2): Similarly.
11900 (zero_extendhisi2, zero_extendhidi2): Similarly.
11901 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
11903 2011-02-24 Richard Henderson <rth@redhat.com>
11905 * config/alpha/predicates.md (input_operand): Revert last change;
11906 update comment to mention 32-bit VMS rather than Windows.
11908 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
11910 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
11911 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
11912 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
11913 * passes.c (init_optimization_passes): Move
11914 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
11916 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
11918 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
11920 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
11922 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
11925 2011-03-24 Jakub Jelinek <jakub@redhat.com>
11928 * simplify-rtx.c (simplify_const_unary_operation): Call
11929 real_convert when changing mode class with FLOAT_EXTEND.
11931 2011-03-24 Nick Clifton <nickc@redhat.com>
11933 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
11934 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
11935 * config/rx/rx.c (rx_option_override): Set align_jumps,
11936 align_loops and align_labels if not set by the user.
11937 (rx_align_for_label): New function.
11938 (rx_max_skip_for_label): New function.
11939 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
11940 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
11941 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
11942 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
11943 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
11945 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
11947 PR rtl-optimization/48263
11948 * optabs.c (expand_binop_directly): Reinstate convert_modes code
11949 and original commutative_p handling. Use maybe_gen_insn.
11951 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11953 * reload.c (find_reloads_subreg_address): Add address_reloaded
11954 parameter and return true there if the full address has been
11956 (find_reloads_toplev): Pass address_reloaded flag.
11957 (find_reloads_address_1): Don't use address_reloaded parameter.
11959 2011-03-24 Jeff Law <law@redhat.com>
11961 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
11962 unused variable "ann".
11963 (remove_unused_locals): Likewise.
11965 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
11968 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
11971 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11973 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
11974 for invalid symbolic addresses.
11975 (s390_secondary_reload): Don't use s390_check_symref_alignment for
11978 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
11980 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
11981 the argument in calls to fold_truth_not_expr.
11983 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
11985 * tree.c (record_node_allocation_statistics): New function.
11986 (make_node_stat, copy_node_stat, build_string): Call it.
11987 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
11988 (build1_stat, build_omp_clause): Likewise.
11990 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
11992 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
11995 2011-03-24 Richard Guenther <rguenther@suse.de>
11997 PR tree-optimization/48271
11998 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
11999 blocks that still exist.
12001 2011-03-24 Richard Guenther <rguenther@suse.de>
12003 PR tree-optimization/48270
12004 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
12005 not free datarefs before ddrs.
12007 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12009 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
12010 from the address built for a reference with variable offset.
12012 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
12015 * config/i386/i386.md (*movdf_internal_rex64): Do not split
12016 alternatives that can be handled with movq or movabsq insn.
12017 (*movdf_internal): Disable for !TARGET_64BIT.
12018 (*movdf_internal_nointeger): Ditto.
12019 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
12021 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
12023 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
12024 (FUNCTION_ARG_ADVANCE): Likewise.
12025 * tm.texi.in: Change references to them to hook references.
12026 * tm.texi: Regenerate.
12027 * targhooks.c (default_function_arg): Eliminate check for target macro.
12028 (default_function_incoming_arg): Likewise.
12029 (default_function_arg_advance): Likewise.
12030 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
12031 (function_arg_advance): Likewise.
12032 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
12034 2011-03-24 Richard Guenther <rguenther@suse.de>
12036 PR middle-end/48269
12037 * tree-object-size.c (addr_object_size): Do not double-account
12038 for MEM_REF offsets.
12040 2011-03-24 Diego Novillo <dnovillo@google.com>
12042 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
12043 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
12044 (lto_input_data_block): Move from lto-opts.c. Make extern.
12046 (lto_input_string): Rename from input_string. Make extern.
12048 * lto-streamer-out.c (lto_output_string_with_length): Rename from
12049 output_string_with_length.
12050 Output 0 to indicate a non-NULL string. Update all callers to
12052 (lto_output_string): Rename from output_string. Make extern.
12054 (lto_output_decl_state_streams): Make extern.
12055 (lto_output_decl_state_refs): Make extern.
12056 * lto-streamer.h (lto_input_string): Declare.
12057 (lto_input_data_block): Declare.
12058 (lto_output_string): Declare.
12059 (lto_output_string_with_length): Declare.
12060 (lto_output_decl_state_streams): Declare.
12061 (lto_output_decl_state_refs): Declare.
12063 2011-03-24 Richard Guenther <rguenther@suse.de>
12065 PR tree-optimization/46562
12066 * tree.c (build_invariant_address): New function.
12067 * tree.h (build_invariant_address): Declare.
12068 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
12069 a renamed function moved ...
12070 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
12071 Take valueization callback parameter.
12072 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
12073 * gimple-fold.h: New file.
12074 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
12075 (ccp_fold, fold_const_aggregate_ref,
12076 fold_ctor_reference, fold_nonarray_ctor_reference,
12077 fold_array_ctor_reference, fold_string_cst_ctor_reference,
12078 get_base_constructor): Move ...
12079 * gimple-fold.c: ... here.
12080 (gimple_fold_stmt_to_constant_1): New function
12081 split out from ccp_fold. Take a valueization callback parameter.
12082 Valueize all operands.
12083 (gimple_fold_stmt_to_constant): New wrapper function.
12084 (fold_const_aggregate_ref_1): New function split out from
12085 fold_const_aggregate_ref. Take a valueization callback parameter.
12086 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
12087 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
12088 invariant POINTER_PLUS_EXPRs to invariant form.
12089 (vn_valueize): New function.
12090 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
12091 * tree-vrp.c (vrp_valueize): New function.
12092 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
12093 to fold statements to constants.
12094 * tree-ssa-pre.c (eliminate): Properly guard propagation of
12095 function declarations.
12096 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
12097 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
12099 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
12101 * config/h8300/predicates.md (jump_address_operand): Fix register
12104 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
12106 * doc/invoke.texi (max-stores-to-sink): Document.
12107 * params.h (MAX_STORES_TO_SINK): Define.
12108 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
12109 if either vectorization or if-conversion is disabled.
12110 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
12111 tree-vect-data-refs.c vect_equal_offsets.
12112 (dr_equal_offsets_p): New function.
12113 (find_data_references_in_bb): Remove static.
12114 * tree-data-ref.h (find_data_references_in_bb): Declare.
12115 (dr_equal_offsets_p): Likewise.
12116 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
12117 (vect_drs_dependent_in_basic_block): Update calls to
12118 vect_equal_offsets.
12119 (vect_check_interleaving): Likewise.
12120 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
12121 (cond_if_else_store_replacement): Rename to...
12122 (cond_if_else_store_replacement_1): ... this. Change arguments and
12124 (cond_if_else_store_replacement): New function.
12125 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
12126 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
12128 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
12131 * config/arm/arm.md (casesi): Use the gen_int_mode() function
12132 to subtract lower bound instead of GEN_INT().
12134 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
12139 * doc/extend.texi (Alignment): Move section to match order in TOC.
12140 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
12141 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
12143 2011-03-23 Jeff Law <law@redhat.com>
12145 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
12146 before removing the edge.
12148 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
12149 it may have been freed by redirect_branch_edge or
12150 redirect_edge_succ_nodup.
12152 2011-03-23 Richard Guenther <rguenther@suse.de>
12154 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
12155 (check_va_list_escapes): Likewise.
12156 (check_all_va_list_escapes): Likewise.
12158 2011-03-23 Richard Guenther <rguenther@suse.de>
12160 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
12161 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
12162 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
12163 (alias.o): Likewise.
12164 (ipa-type-escape.o): Remove.
12165 (ipa-struct-reorg.o): Likewise.
12166 (GTFILES): Remove ipa-struct-reorg.c.
12167 * alias.c: Do not include ipa-type-escape.h.
12168 * tree-ssa-alias.c: Likewise.
12169 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
12170 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
12171 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
12172 and ipa-type-escape passes.
12173 * tree-pass.h (pass_ipa_type_escape): Remove.
12174 (pass_ipa_struct_reorg): Likewise.
12175 * ipa-struct-reorg.h: Remove.
12176 * ipa-struct-reorg.c: Likewise.
12177 * ipa-type-escape.h: Likewise.
12178 * ipa-type-escape.c: Likewise.
12179 * doc/invoke.texi (-fipa-struct-reorg): Remove.
12180 (--param struct-reorg-cold-struct-ratio): Likewise.
12181 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
12182 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
12183 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
12185 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12187 * config/s390/2084.md: Enable all insn reservations also for z9_ec
12188 cpu attribute value.
12189 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
12190 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
12191 * config/s390/s390.c (processor_flags_table): New constant array.
12192 (s390_handle_arch_option): Remove.
12193 (s390_handle_option): Remove s390_handle_arch_option invocations
12194 and OPT_mwarn_framesize_ handling.
12195 (s390_option_override): Remove s390_handle_arch_option invocation.
12196 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
12198 * config/s390/s390.md (cpu attribute): Add z9_ec value.
12199 * config/s390/s390.opt (s390_tune, s390_arch)
12200 (march=): Replace s390_arch_option enum and values with
12201 processor_type. Set variable name to s390_arch. Set
12202 initialization value.
12203 (mtune=): Replace s390_arch_option with processor_type. Set
12204 variable name to s390_tune. Set initialization value.
12206 2011-03-23 Julian Brown <julian@codesourcery.com>
12208 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
12209 accesses which are not naturally aligned.
12211 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
12214 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
12216 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
12218 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
12219 parameter from "int" to "enum insn_code".
12220 (expand_operand_type): New enum.
12221 (expand_operand): New structure.
12222 (create_expand_operand): New function.
12223 (create_fixed_operand, create_output_operand): Likewise
12224 (create_input_operand, create_convert_operand_to): Likewise.
12225 (create_convert_operand_from, create_address_operand): Likewise.
12226 (create_integer_operand): Likewise.
12227 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
12228 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
12229 (expand_insn, expand_jump_insn): Likewise.
12230 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
12231 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
12232 (expand_movstr, expand_builtin___clear_cache): Likewise.
12233 (expand_builtin_lock_release): Likewise.
12234 * explow.c (allocate_dynamic_stack_space): Likewise.
12235 (probe_stack_range): Likewise. Allow check_stack to FAIL,
12236 and use the default handling in that case.
12237 * expmed.c (check_predicate_volatile_ok): Delete.
12238 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
12239 (emit_cstore): Likewise.
12240 * expr.c (emit_block_move_via_movmem): Likewise.
12241 (set_storage_via_setmem, expand_assignment): Likewise.
12242 (emit_storent_insn, try_casesi): Likewise.
12243 (emit_single_push_insn): Likewise. Allow the expansion to fail.
12244 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
12245 (expand_vec_shift_expr, expand_binop_directly): Likewise.
12246 (expand_twoval_unop, expand_twoval_binop): Likewise.
12247 (expand_unop_direct, emit_indirect_jump): Likewise.
12248 (emit_conditional_move, vector_compare_rtx): Likewise.
12249 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
12250 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
12251 (expand_sync_lock_test_and_set): Likewise.
12252 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
12253 (emit_unop_insn): Likewise.
12254 (expand_copysign_absneg): Change icode to an insn_code.
12255 (create_convert_operand_from_type): New function.
12256 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
12257 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
12258 (expand_insn, expand_jump_insn): Likewise.
12259 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
12260 than const_int_operand for operand 2.
12262 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12264 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
12267 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12269 * emit-rtl.c (emit_pattern_before_noloc): New function.
12270 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
12271 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
12272 (emit_pattern_after_noloc): New function.
12273 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
12274 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
12276 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12278 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
12279 (__ffsDI2): Likewise.
12281 2011-03-22 Richard Henderson <rth@redhat.com>
12283 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
12284 of !TARGET_ABI_OPEN_VMS.
12285 (alpha_trampoline_init, alpha_start_function): Likewise.
12286 (alpha_expand_epilogue, alpha_file_start): Likewise.
12287 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
12288 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
12289 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
12290 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
12291 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
12293 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12295 * config/s390/s390-opts.h: New.
12296 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
12297 s390_arch_flags, s390_warn_framesize, s390_stack_size,
12298 s390_stack_guard): Remove.
12299 (s390_handle_arch_option): Return void. Take enum
12300 s390_arch_option value instead of string and searching array.
12301 (s390_handle_option): Don't assert that global structures are in
12302 use. Access variables via opts pointer. Use error_at. Don't use
12303 sscanf for -mstack-guard= or -mstack-size=. Update call to
12304 s390_handle_arch_option.
12305 (s390_option_override): Update call to s390_handle_arch_option.
12306 (s390_emit_prologue): Use %d format for s390_stack_size in
12307 diagnostic. Use %wd for HOST_WIDE_INT.
12308 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
12309 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
12310 * config/s390/s390.opt (config/s390/s390-opts.h): New
12311 HeaderInclude entry.
12312 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
12313 s390_arch_flags, s390_warn_framesize): New Variable entries.
12314 (s390_arch_option): New Enum and EnumValue entries.
12315 (march=): Use Enum instead of Var.
12316 (mstack-guard=, mstack-size=): Use UInteger and Var.
12317 (mtune=): Use Enum.
12319 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12321 * config/score/score.c (score_handle_option): Don't assert that
12322 global structures are in use. Access target_flags via opts
12323 pointer. Use value of -march= option to determine target_flags
12325 * config/score/score.opt (march=): Use Enum.
12326 (score_arch): New Enum and EnumValue entries.
12328 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12330 * config/mep/mep.c (option_mtiny_specified): Remove.
12331 (mep_option_override): Move register handling for -mivc2 from
12332 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
12333 instead of option_mtiny_specified.
12334 (mep_handle_option): Access target_flags via opts pointer. Don't
12335 assert that global structures are in use. Defer part of -mivc2
12336 handling and move it to mep_option_override.
12337 * config/mep/mep.opt (IVC2): New Mask entry.
12338 (mivc2): Use Var and Defer instead of Mask.
12340 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12342 * config/v850/v850-opts.h: New.
12343 * config/v850/v850.c (small_memory): Replace with
12344 small_memory_physical_max array. Make that array static const.
12345 (v850_handle_memory_option): Take integer value of argument. Take
12346 gcc_options pointer, option text and location. Return void.
12347 Update for changes to small memory structures.
12348 (v850_handle_option): Access target_flags via opts pointer. Don't
12349 assert that global structures are in use. Update calls to
12350 v850_handle_memory_option.
12351 (v850_encode_data_area): Update references to small memory settings.
12352 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
12353 (enum small_memory_type): Move to v850-opts.h.
12354 * config/v850/v850.opt (config/v850/v850-opts.h): New
12355 HeaderInclude entry.
12356 (small_memory_max): New Variable entry.
12357 (msda): Replace by pair of options msda= and msda-. Use UInteger.
12358 (mtda, mzda): Likewise.
12360 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12362 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
12363 pointer. Don't assert that global structures are in use.
12365 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12367 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
12368 via opts pointer. Don't assert that global structures are in use.
12370 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12372 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
12373 (munix=93): Use Var.
12374 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
12375 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
12376 * config/pa/pa-opts.h: New.
12377 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
12378 (pa_handle_option): Don't assert that global structures are in
12379 use. Access target_flags via opts pointer. Don't handle
12380 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
12382 (pa_option_override): Handle deferred OPT_mfixed_range_.
12384 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12386 * config/mn10300/mn10300-opts.h: New.
12387 * config/mn10300/mn10300.c (mn10300_processor,
12388 mn10300_tune_string): Remove.
12389 (mn10300_handle_option): Don't assert that global structures are
12390 in use. Access mn10300_processor via opts pointer. Don't handle
12392 * config/mn10300/mn10300.h (enum processor_type): Move to
12394 (mn10300_processor): Remove.
12395 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
12396 HeaderInclude entry.
12397 (mn10300_processor): New Variable entry.
12400 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12402 * config/microblaze/microblaze.c: Don't include opts.h.
12403 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
12404 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
12405 (mno-clearbss): Use Var and Warn.
12407 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12409 * config/m32r/m32r-opts.h: New.
12410 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
12411 (m32r_handle_option): Don't assert that global structures are in
12412 use. Access target_flags and m32r_cache_flush_func via opts
12413 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
12414 OPT_mno_flush_trap here.
12415 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
12416 include of m32r-opts.h.
12417 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
12418 HeaderInclude entry.
12419 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
12420 (mmodel=): Use Enum and Var.
12421 (m32r_model): New Enum and EnumValue entries.
12422 (mno-flush-trap): Use Var.
12423 (msdata=): Use Enum and Var.
12424 (m32r_sdata): New Enum and EnumValue entries.
12426 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12428 * config/m32c/m32c.c: Don't include opts.h.
12429 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
12430 m32c_handle_option): Remove.
12431 (m32c_option_override): Check global_options_set.x_target_memregs
12432 instead of target_memregs_set.
12433 * config/m32c/m32c.h (target_memregs): Remove.
12434 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
12437 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12439 * config/iq2000/iq2000-opts.h: New.
12440 * config/iq2000/iq2000.c: Don't include opts.h.
12441 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
12442 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
12443 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
12444 HeaderInclude entry.
12445 (iq2000_tune): New Variable entry.
12446 (march=): Add comment. Use Enum.
12447 (iq2000_arch): New Enum and EnumValue entries.
12448 (mcpu=): Use Enum and Var.
12449 (iq2000_tune): New Enum and EnumValue entries.
12451 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12453 * config/ia64/ia64-opts.h: New.
12454 * config/ia64/ia64.c (ia64_tune): Remove.
12455 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
12456 here. Use error_at.
12457 (ia64_option_override): Handle deferred OPT_mfixed_range_.
12458 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
12459 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
12460 HeaderInclude entry.
12461 (ia64_tune): New Variable entry.
12462 (mfixed-range=): Use Defer and Var.
12463 (mtune=): Use Enum and Var.
12464 (ia64_tune): New Enum and EnumValue entries.
12466 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12468 * config/frv/frv-opts.h: New.
12469 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
12471 (frv_cpu_type): Remove.
12472 * config/frv/frv.c: Don't include opts.h.
12473 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
12474 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
12475 (frv_cpu_type): New Variable entry.
12476 (frv_cpu): New Enum and EnumValue entries.
12478 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12480 * config/cris/cris.c (cris_handle_option): Access target_flags via
12481 opts pointer. Don't assert that global structures are in use.
12482 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
12483 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
12485 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12487 * config/bfin/bfin-opts.h: New.
12488 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
12489 bfin_si_revision, bfin_workarounds): Remove.
12490 (bfin_cpus): Make static const.
12491 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
12492 not bfin_lib_id_given.
12493 (bfin_handle_option): Don't set bfin_lib_id_given. Access
12494 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
12495 pointer. Use error_at. Don't assert that global structures are in use.
12496 * config/bfin/bfin.h: Include bfin-opts.h.
12497 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
12498 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
12499 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
12500 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
12503 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12505 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
12506 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
12507 or -msoft-float here.
12508 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
12509 -msoft-float and -mhard-float.
12510 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
12511 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
12513 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
12515 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
12516 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
12518 (LIBGCC_SPEC): Don't handle -msoft-float.
12519 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
12521 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
12523 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
12524 -mfloat-abi=*, not -msoft-float and -mhard-float.
12525 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
12527 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
12528 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
12529 mhard-float and msoft-float.
12530 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
12531 mfloat-abi=soft in comments, not mhard-float and msoft-float.
12532 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
12533 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
12535 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
12536 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
12538 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
12540 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
12543 2011-03-22 Richard Henderson <rth@redhat.com>
12545 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
12546 TARGET_ABI_WINDOWS_NT.
12547 (alpha_output_function_end_prologue): Likewise.
12548 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
12549 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12550 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
12551 (trap, *movsi_nt_vms): Likewise.
12552 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
12553 (*tablejump_osf_nt_internal): Remove.
12554 * config/alpha/predicates.md (input_operand): Only test Pmode.
12556 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12558 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
12559 via opts pointer. Use error_at. Don't assert that global
12560 structures are in use.
12562 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12564 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
12565 (ix86_handle_option): Access ix86_isa_flags and
12566 ix86_isa_flags_explicit via opts pointer. Don't assert that
12567 global structures are in use.
12568 (ix86_function_specific_save, ix86_function_specific_restore):
12569 Update ix86_isa_flags_explicit field name.
12570 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
12571 (ix86_isa_flags_explicit): Rename TargetSave entry to
12572 x_ix86_isa_flags_explicit.
12574 2011-03-22 Richard Henderson <rth@redhat.com>
12576 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
12577 (alpha_option_override, direct_return): Likewise.
12578 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
12579 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
12580 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
12581 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
12582 (alpha_expand_epilogue, alpha_end_function): Likewise.
12583 (alpha_init_libfuncs): Likewise.
12584 (struct machine_function): Remove unicosmk members.
12585 (print_operand) ['t']: Remove.
12586 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
12587 unicosmk_output_module_name, unicosmk_output_common,
12588 current_section_align, unicosmk_output_text_section_asm_op,
12589 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
12590 unicosmk_section_type_flags, unicosmk_unique_section,
12591 unicosmk_asm_named_section, unicosmk_insert_attributes,
12592 unicosmk_output_align, unicosmk_defer_case_vector,
12593 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
12594 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
12595 unicosmk_output_ssib, unicosmk_add_call_info_word,
12596 unicosmk_extern_head, unicosmk_output_default_externs,
12597 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
12598 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
12599 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
12600 * config/alpha/alpha-protos.h: Update.
12601 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
12602 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
12603 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
12604 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
12605 (*mulsi_se, mulvsi3): Likewise.
12606 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
12607 (*divmodsi_internal, call, call_value, realign): Likewise.
12608 (moddi3, umoddi3): Likewise; remove duplicate expander.
12609 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
12610 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
12611 (*movdi_nofix): Remove r/U alternative.
12612 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
12613 * config/alpha/constraints.md ("U"): Remove.
12614 * config/alpha/predicates.md (call_operand"): Don't test
12615 TARGET_ABI_UNICOSMK.
12617 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12619 * target.def (handle_option): Take gcc_options and
12620 cl_decoded_option pointers and location_t.
12621 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
12622 * doc/tm.texi: Regenerate.
12623 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
12624 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
12625 * lto-opts.c (lto_reissue_options): Generate option structure for
12626 targetm.handle_option call.
12627 * opts.c (target_handle_option): Update call to
12628 targetm.handle_option. Remove assertions about values now passed
12630 * targhooks.c (default_target_handle_option): New.
12631 * targhooks.h (default_target_handle_option): Declare.
12632 * config/alpha/alpha.c: Include opts.h.
12633 (alpha_handle_option): Update to new hook interface.
12634 * config/arm/arm.c: Include opts.h.
12635 (arm_handle_option): Update to new hook interface.
12636 * config/arm/t-arm (arm.o): Update dependencies.
12637 * config/bfin/bfin.c: Include opts.h.
12638 (bfin_handle_option): Update to new hook interface.
12639 * config/cris/cris.c: Include opts.h.
12640 (cris_handle_option): Update to new hook interface.
12641 * config/frv/frv.c: Include opts.h.
12642 (frv_handle_option): Update to new hook interface.
12643 * config/i386/i386.c: Include opts.h.
12644 (ix86_handle_option): Update to new hook interface.
12645 (ix86_valid_target_attribute_inner_p): Generate option structure
12646 for call to ix86_handle_option.
12647 * config/i386/t-i386 (i386.o): Update dependencies.
12648 * config/ia64/ia64.c: Include opts.h.
12649 (ia64_handle_option): Update to new hook interface.
12650 * config/ia64/t-ia64 (ia64.o): Update dependencies.
12651 * config/iq2000/iq2000.c: Include opts.h.
12652 (iq2000_handle_option): Update to new hook interface.
12653 * config/m32c/m32c.c: Include opts.h.
12654 (m32c_handle_option): Update to new hook interface.
12655 * config/m32r/m32r.c: Include opts.h.
12656 (m32r_handle_option): Update to new hook interface.
12657 * config/m68k/m68k.c: Include opts.h.
12658 (m68k_handle_option): Update to new hook interface.
12659 * config/mep/mep.c: Include opts.h.
12660 (mep_handle_option): Update to new hook interface.
12661 * config/microblaze/microblaze.c: Include opts.h.
12662 (microblaze_handle_option): Update to new hook interface.
12663 * config/mips/mips.c: Include opts.h.
12664 (mips_handle_option): Update to new hook interface.
12665 * config/mn10300/mn10300.c: Include opts.h.
12666 (mn10300_handle_option): Update to new hook interface.
12667 * config/pa/pa.c: Include opts.h.
12668 (pa_handle_option): Update to new hook interface.
12669 * config/pdp11/pdp11.c: Include opts.h.
12670 (pdp11_handle_option): Update to new hook interface.
12671 * config/rs6000/rs6000.c: Include opts.h.
12672 (rs6000_handle_option): Update to new hook interface.
12673 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
12674 * config/rx/rx.c: Include opts.h.
12675 (rx_handle_option): Update to new hook interface.
12676 * config/s390/s390.c: Include opts.h.
12677 (s390_handle_option): Update to new hook interface.
12678 * config/score/score.c: Include opts.h.
12679 (score_handle_option): Update to new hook interface.
12680 * config/sh/sh.c: Include opts.h.
12681 (sh_handle_option): Update to new hook interface.
12682 * config/sparc/sparc.c: Include opts.h.
12683 (sparc_handle_option): Update to new hook interface.
12684 * config/v850/v850.c: Include opts.h.
12685 (v850_handle_option): Update to new hook interface.
12687 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12689 * gcc.c (driver_unknown_option_callback): Only permit and save
12690 unknown -Wno- options.
12691 (driver_wrong_lang_callback): Save options directly instead of via
12692 driver_unknown_option_callback.
12694 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
12696 * combine.c (simplify_set): Try harder to find the best CC mode when
12697 simplifying a nested COMPARE on the RHS.
12699 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12701 * config/alpha/gnu.h: Remove.
12702 * config/arc: Remove directory.
12703 * config/arm/netbsd.h: Remove.
12704 * config/arm/t-pe: Remove.
12705 * config/crx: Remove directory.
12706 * config/i386/netbsd.h: Remove.
12707 * config/m68hc11: Remove directory.
12708 * config/m68k/uclinux-oldabi.h: Remove.
12709 * config/mcore/mcore-pe.h: Remove.
12710 * config/mcore/t-mcore-pe: Remove.
12711 * config/netbsd-aout.h: Remove.
12712 * config/rs6000/gnu.h: Remove.
12713 * config/sh/sh-symbian.h: Remove.
12714 * config/sh/symbian-base.c: Remove.
12715 * config/sh/symbian-c.c: Remove.
12716 * config/sh/symbian-cxx.c: Remove.
12717 * config/sh/symbian-post.h: Remove.
12718 * config/sh/symbian-pre.h: Remove.
12719 * config/sh/t-symbian: Remove.
12720 * config/svr3.h: Remove.
12721 * config/vax/netbsd.h: Remove.
12722 * config.build: Don't handle i[34567]86-*-pe.
12723 * config.gcc: Remove handling of deprecations for most deprecated
12725 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
12726 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
12727 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
12728 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
12729 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
12730 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
12732 * config.host: Don't handle i[34567]86-*-pe.
12733 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
12734 (ASM_SPEC32): Don't handle -mcall-gnu.
12735 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
12737 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
12738 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
12739 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
12740 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
12741 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
12742 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
12743 conditional on SYMBIAN.
12744 * configure.ac: Don't handle powerpc*-*-gnu*.
12745 * configure: Regenerate.
12746 * doc/extend.texi (interrupt attribute): Don't mention CRX.
12747 * doc/install-old.texi (m6811, m6812): Don't mention.
12748 * doc/install.texi (arc-*-elf*): Don't document multilib option.
12749 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
12750 (m68k-uclinuxoldabi): Don't mention.
12751 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
12753 (-mcall-gnu): Remove.
12754 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
12755 families): Remove constraint documentation.
12757 2011-03-22 Marius Strobl <marius@FreeBSD.org>
12759 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
12760 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
12761 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
12763 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
12766 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
12767 vector when peeking at the next token for vector, don't expand the
12770 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
12772 * config/avr/avr-protos.h (expand_epilogue): Change prototype
12773 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
12774 * config/avr/avr.c (init_cumulative_args)
12775 (avr_function_arg_advance): Use it.
12776 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
12778 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
12779 (avr_function_ok_for_sibcall): ...this new function.
12780 (avr_lookup_function_attribute1): New static Function.
12781 (avr_naked_function_p, interrupt_function_p)
12782 (signal_function_p, avr_OS_task_function_p)
12783 (avr_OS_main_function_p): Use it.
12784 * config/avr/avr.md ("sibcall", "sibcall_value")
12785 ("sibcall_epilogue"): New expander.
12786 ("*call_insn", "*call_value_insn"): New insn.
12787 ("call_insn", "call_value_insn"): Remove
12788 ("call", "call_value", "epilogue"): Change expander to handle
12791 2011-03-21 Nick Clifton <nickc@redhat.com>
12793 * doc/invoke.texi (Overall Options): Move closing brace to end of
12795 (Optimization Options): Add missing @gol.
12796 (Directory Options): Likewise.
12797 (i386 and x86-64 Options): Likewise.
12798 (RS6000 and PowerPC Options): Likewise.
12799 (i386 and x86-64 Windows Options): Likewise.
12800 (V850 Options): Add text missing from descriptions.
12802 2011-03-22 Richard Henderson <rth@redhat.com>
12804 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
12805 (avr_incoming_return_addr_rtx): New.
12806 (emit_push_byte): New.
12807 (expand_prologue): Use it. Remove incorrect dwarf annotation for
12808 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
12809 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
12810 (emit_pop_byte): New.
12811 (expand_epilogue): Use it. Pop frame pointer by bytes.
12812 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
12813 (INCOMING_RETURN_ADDR_RTX): New.
12814 (INCOMING_FRAME_SP_OFFSET): New.
12815 (ARG_POINTER_CFA_OFFSET): New.
12816 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
12817 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
12820 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
12822 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12824 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
12825 (FUNCTION_ARG_ADVANCE): Likewise.
12826 * tm.texi.in: Change references to them to hook references.
12827 * tm.texi: Regenerate.
12828 * targhooks.c (default_function_arg): Eliminate check for target
12830 (default_function_incoming_arg): Likewise.
12831 (default_function_arg_advance): Likewise.
12832 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
12833 (function_arg_advance): Likewise.
12834 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
12836 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12838 * tree.c (build_call_1): New function.
12839 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
12841 2011-03-22 Richard Guenther <rguenther@suse.de>
12843 PR tree-optimization/48228
12844 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
12845 for single-arg PHIs.
12847 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
12849 PR rtl-optimization/48143
12850 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
12851 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
12852 sse2_cvtps2pd): Likewise.
12854 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12856 * recog.c (canonicalize_change_group): Use validate_unshare_change.
12858 2011-03-22 Richard Guenther <rguenther@suse.de>
12860 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
12861 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
12862 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
12863 and REALIGN_LOAD_EXPR.
12864 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
12865 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
12866 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
12867 DOT_PROD_EXPR case ...
12868 (expand_expr_real_2): ... here.
12869 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
12870 and REALIGN_LOAD_EXPR.
12871 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
12872 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
12873 (vect_create_epilog_for_reduction): Likewise.
12874 (vectorizable_reduction): Likewise.
12875 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
12876 * tree-vect-stmts.c (vectorizable_load): Likewise.
12878 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
12880 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
12882 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12884 * config/s390/s390.c (s390_delegitimize_address): Fix offset
12885 handling for PLTOFF/GOTOFF.
12887 2011-03-22 Nick Clifton <nickc@redhat.com>
12889 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
12890 trailing backslash from the end of the macro definition.
12892 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12894 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
12897 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
12899 * expr.h (prepare_operand): Move to...
12900 * optabs.h (prepare_operand): ...here and change the insn code
12901 parameter from "int" to "enum insn_code".
12902 (insn_operand_matches): Declare.
12903 * expr.c (init_expr_target): Use insn_operand_matches.
12904 (compress_float_constant): Likewise.
12905 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
12906 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
12907 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
12908 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
12910 (gen_cond_trap): Likewise.
12911 (prepare_operand): Likewise. Change icode to an insn_code.
12912 (insn_operand_matches): New function.
12913 * reload.c (find_reloads_address_1): Use insn_operand_matches.
12914 * reload1.c (gen_reload): Likewise.
12915 * targhooks.c (default_secondary_reload): Likewise.
12917 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
12919 * config/alpha/alpha.md (unspec): New define_c_enum.
12922 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
12925 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
12926 between a call and its CALL_ARG_LOCATION note.
12928 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
12930 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
12932 2011-03-21 Jakub Jelinek <jakub@redhat.com>
12936 * c-common.c (shorten_compare): If primopN is first sign-extended
12937 to opN and then zero-extended to result type, set primopN to opN.
12939 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
12941 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
12942 for barrier handlers.
12944 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
12946 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
12947 UNSPEC constants to be in the unspec enumeration, and redefine
12948 all UNSPECV constants to be in the unspecv enumeration, so that
12949 dumps print which unspec/unspec_volatile this is.
12950 * config/rs6000/vector.md (UNSPEC_*): Ditto.
12951 * config/rs6000/paired.md (UNSPEC_*): Ditto.
12952 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
12953 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
12954 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
12956 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
12957 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
12958 UNSPECV_LWSYNC, since these are used as unspec_volatile.
12959 * config/rs6000/sync.md (isync, lwsync): Ditto.
12961 2011-03-21 Richard Guenther <rguenther@suse.de>
12963 * params.def (lto-min-partition): Fix typo.
12965 2011-03-21 Richard Guenther <rguenther@suse.de>
12968 * c-decl.c (grokdeclarator): Drop to the main variant only
12969 for array types. Drop flag_gen_aux_info check.
12971 2011-03-21 Richard Guenther <rguenther@suse.de>
12973 PR translation/47911
12974 * params.def (lto-partitions): Fix typo.
12975 (lto-min-partition): Fix wording.
12977 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
12979 * config/rs6000/t-freebsd: Remove duplication from file.
12981 2011-03-21 Richard Guenther <rguenther@suse.de>
12983 PR middle-end/47661
12984 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
12986 2011-03-21 Richard Guenther <rguenther@suse.de>
12989 * params.def (lto-partitions): Require at least 1 partition.
12991 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12993 * gthr-solaris.h: Remove.
12994 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
12995 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
12996 (LIB_SPEC): Likewise.
12997 * config/sol2.opt (threads): Remove.
12998 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
12999 (sparc*-*-solaris2*): Likewise.
13000 * configure.ac (enable_threads): Enable solaris support.
13001 * configure: Regenerate.
13002 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
13003 * doc/install.texi (Configuration, --enable-threads=lib): Remove
13006 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13008 * config.gcc: Obsolete *-*-solaris2.8*.
13009 * doc/install.texi (Specific, *-*-solaris2*): Document it.
13011 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13014 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
13015 reference. Solaris 8 perl works.
13017 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13020 * doc/install.texi (Prerequisites): Move jar etc. up.
13021 Explain support library version requirements.
13023 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13026 * doc/install.texi (Prerequisites): Move Perl to build
13027 requirements. Always necessary on Solaris 2 with Sun ld.
13029 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13031 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
13033 (Specific, i?86-*-solaris2.[89]): Likewise.
13034 (Specific, i?86-*-solaris2.10): Likewise.
13035 (Specific, mips-sgi-irix6): Likewise.
13036 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
13037 Update for binutils 2.21.
13039 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13041 * configure.ac (gcc_cv_lto_plugin): Fix typo.
13042 Allow -fuse-linker-plugin for non-default plugin linker.
13043 * configure: Regenerate.
13045 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
13048 * gengtype.c (files_rules): Added rule for cp/parser.h.
13050 2011-03-21 Jakub Jelinek <jakub@redhat.com>
13053 * config/s390/s390.c (s390_delegitimize_address): Don't call
13054 lowpart_subreg if orig_x has BLKmode.
13056 2011-03-21 Kai Tietz <ktietz@redhat.com>
13059 * doc/plugins.texi: Adjust documentation for plugin register_callback.
13060 * tree.h (attribute_spec): Add new member affects_type_identity.
13061 * attribs.c (empty_attribute_table): Adjust attribute_spec
13063 * config/alpha/alpha.c: Likewise.
13064 * config/arc/arc.c: Likewise.
13065 * config/arm/arm.c: Likewise.
13066 * config/avr/avr.c: Likewise.
13067 * config/bfin/bfin.c: Likewise.
13068 * config/crx/crx.c: Likewise.
13069 * config/darwin.h: Likewise.
13070 * config/h8300/h8300.c: Likewise.
13071 * config/i386/cygming.h: Likewise.
13072 * config/i386/i386.c: Likewise.
13073 * config/ia64/ia64.c: Likewise.
13074 * config/m32c/m32c.c: Likewise.
13075 * config/m32r/m32r.c: Likewise.
13076 * config/m68hc11/m68hc11.c: Likewise.
13077 * config/m68k/m68k.c: Likewise.
13078 * config/mcore/mcore.c: Likewise.
13079 * config/mep/mep.c: Likewise.
13080 * config/microblaze/microblaze.c: Likewise.
13081 * config/mips/mips.c: Likewise.
13082 * config/rs6000/rs6000.c: Likewise.
13083 * config/rx/rx.c: Likewise.
13084 * config/sh/sh.c: Likewise.
13085 * config/sol2.h: Likewise.
13086 * config/sparc/sparc.c: Likewise.
13087 * config/spu/spu.c: Likewise.
13088 * config/stormy16/stormy16.c: Likewise.
13089 * config/v850/v850.c: Likewise.
13091 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
13093 * simplify-rtx.c (simplify_binary_operation_1): Handle
13094 (xor (and A B) C) case when B and C are both constants.
13096 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
13098 * tree-dfa.c (add_referenced_var): Fix typo in comment.
13100 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
13103 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
13105 2011-03-20 Jakub Jelinek <jakub@redhat.com>
13107 PR rtl-optimization/48156
13108 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
13109 assume df and df_lr are not NULL.
13111 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13114 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
13115 between a call and its CALL_ARG_LOCATION note.
13117 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
13120 * config/sh/sh.c (find_barrier): Don't emit a constant pool
13121 between a call and its corresponding CALL_ARG_LOCATION note.
13123 2011-03-19 Anatoly Sokolov <aesok@post.ru>
13125 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
13126 instead of loop. Use HARD_REGISTER_NUM_P predicate.
13127 * haifa-sched.c (setup_ref_regs): Ditto.
13128 * caller-save.c (add_used_regs_1): Ditto.
13129 * dse.c (look_for_hardregs): Ditto.
13130 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
13131 * sched-rgn.c (check_live_1): Ditto.
13133 2011-03-18 Joseph Myers <joseph@codesourcery.com>
13135 * c-decl.c (diagnose_mismatched_decls): Give an error for
13136 redefining a typedef with variably modified type.
13138 2011-03-18 Joseph Myers <joseph@codesourcery.com>
13140 * c-decl.c (grokfield): Don't allow typedefs for structures or
13141 unions with no tag by default.
13142 * doc/extend.texi (Unnamed Fields): Update.
13144 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
13146 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
13147 Rewrite using indirect functions.
13148 (lwp_slwpcb): Ditto.
13149 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
13150 (avx_vinsertf128<mode>): Ditto.
13152 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13154 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
13157 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13159 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
13160 splitting between a call and its corresponding CALL_ARG_LOCATION note.
13162 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
13164 PR rtl-optimization/48170
13165 * gcse.c (hoist_code): Remove bogus asserts.
13167 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
13169 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
13170 computation for prologue/epilogue.
13172 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13174 * Makefile.in (check-consistency): Remove.
13176 2011-03-18 Jakub Jelinek <jakub@redhat.com>
13179 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
13180 arange_table_in_use is 0, but either text_section_used or
13181 cold_text_section_used is true. Don't call it if
13182 !info_section_emitted.
13184 2011-03-18 Anatoly Sokolov <aesok@post.ru>
13186 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
13187 FUNCTION_VALUE_REGNO_P): Remove.
13188 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
13190 * config/avr/avr.c (avr_ret_register): Make static inline.
13191 (avr_function_value_regno_p): New function.
13192 (avr_libcall_value): Make static. Add 'func' argument.
13193 (avr_function_value): Make static. Rename 'func' argument to
13194 'fn_decl_or_type', forward it to avr_libcall_value. Call
13195 avr_ret_register function instead of RET_REGISTER macro.
13196 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13198 2011-03-18 Jason Merrill <jason@redhat.com>
13201 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
13203 2011-03-18 Richard Guenther <rguenther@suse.de>
13205 * doc/install.texi (--enable-gold): Remove.
13206 (--with-plugin-ld): Document.
13207 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
13209 2011-03-18 Andrew Pinski <pinskia@gmail.com>
13211 PR middle-end/47790
13212 * expr.c (optimize_bitfield_assignment_op): Revamp to work
13213 again after expansion changes.
13215 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
13217 * combine.c (try_combine): Do simplification only call of
13218 subst() on i2 even when i1 is present. Update comments.
13220 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
13222 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
13223 and UNSPEC_PCREL_SYMOFF.
13225 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13227 * config/s390/s390.md: Use define_c_enum for the unspec constant
13230 2011-03-18 Richard Henderson <rth@redhat.com>
13231 Jakub Jelinek <jakub@redhat.com>
13234 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
13235 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
13237 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13239 PR middle-end/47725
13240 * combine.c (cant_combine_insn_p): Don't check zero/sign
13241 extended hard registers.
13243 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13245 PR middle-end/47725
13246 * combine.c (cant_combine_insn_p): Check zero/sign extended
13249 2011-03-17 Anatoly Sokolov <aesok@post.ru>
13251 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13252 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
13253 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
13254 Change return type to bool.
13255 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13257 2011-03-17 Jakub Jelinek <jakub@redhat.com>
13260 * var-tracking.c (prepare_call_arguments): If CALL target
13261 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
13262 pc instead of looking it up using cselib_lookup and use
13263 Pmode for it if x has VOIDmode.
13264 * dwarf2out.c (gen_subprogram_die): If also both first and
13265 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
13268 * function.c (assign_parms): For data.passed_pointer parms
13269 use MEM of data.entry_parm instead of data.entry_parm itself
13270 as DECL_INCOMING_RTL.
13271 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
13272 also when passed and declared mode is the same, DECL_RTL
13273 is a MEM with pseudo as address and DECL_INCOMING_RTL is
13276 2011-03-16 Jeff Law <law@redhat.com>
13278 PR rtl-optimization/37273
13279 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13280 handle them like argument loads from stack slots. Do not double
13281 count memory for memory constants and argument loads from stack slots.
13283 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13286 * var-tracking.c (prepare_call_arguments): Check SUBREG.
13288 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13291 * config/i386/i386.opt: Add Save to -mavx and -mfma.
13293 2011-03-17 Jakub Jelinek <jakub@redhat.com>
13296 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
13298 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
13299 Clear call_arg_locations and call_arg_loc_last always.
13301 PR middle-end/48152
13302 * var-tracking.c (prepare_call_arguments): If argument needs to be
13303 passed by reference, adjust argtype and mode.
13305 2011-03-17 Richard Guenther <rguenther@suse.de>
13307 PR middle-end/48134
13308 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
13309 a value make sure to fold the statement.
13311 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
13314 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
13315 return condition with !cfun->calls_alloca.
13317 2011-03-17 Richard Guenther <rguenther@suse.de>
13320 * lto-cgraph.c (input_overwrite_node): Clear the abstract
13321 origin for decls in other ltrans units.
13322 (input_varpool_node): Likewise.
13324 2011-03-17 Richard Guenther <rguenther@suse.de>
13326 PR middle-end/48165
13327 * tree-object-size.c (compute_object_offset): Properly return
13328 the offset operand of MEM_REFs as sizetype.
13330 2011-03-17 Jakub Jelinek <jakub@redhat.com>
13332 PR rtl-optimization/48141
13333 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
13334 * dse.c: Include params.h.
13335 (active_local_stores_len): New variable.
13336 (add_wild_read, dse_step1): Clear it when setting active_local_stores
13338 (record_store, check_mem_read_rtx): Decrease it when removing
13340 (scan_insn): Likewise. Increase it when adding to chain, if it
13341 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
13342 set active_local_stores to NULL before the addition.
13343 * Makefile.in (dse.o): Depend on $(PARAMS_H).
13345 PR rtl-optimization/48141
13346 * dse.c (record_store): If no positions are needed in an insn
13347 that cannot be deleted, at least unchain it from active_local_stores.
13349 2011-03-16 Dodji Seketeli <dodji@redhat.com>
13352 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
13353 (lookup_type_die_strip_naming_typedef): ... here.
13354 (get_context_die): Use it.
13355 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
13356 the anonymous struct named by the naming typedef.
13358 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
13361 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
13362 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
13364 2011-03-16 Jeff Law <law@redhat.com>
13366 * tree-vrp.c (identify_jump_threads): Slightly simplify type
13367 check for operands of conditional. Allow type to be a pointer.
13369 2011-03-16 Richard Guenther <rguenther@suse.de>
13371 PR tree-optimization/48149
13372 * fold-const.c (fold_binary_loc): Fold
13373 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
13375 2011-03-16 Richard Guenther <rguenther@suse.de>
13377 PR tree-optimization/26134
13378 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
13379 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
13380 (non_rewritable_mem_ref_base): Handle complex type component
13381 accesses, constrain offsets for vector and complex extracts
13384 2011-03-16 Richard Guenther <rguenther@suse.de>
13386 PR tree-optimization/48146
13387 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
13388 operands avoiding the need for renaming.
13390 2011-03-16 Richard Guenther <rguenther@suse.de>
13392 * gimple-fold.c (maybe_fold_reference): Open-code relevant
13393 constant folding. Move MEM_REF canonicalization first.
13394 Rely on fold_const_aggregate_ref for initializer folding.
13395 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
13397 2011-03-16 Jakub Jelinek <jakub@redhat.com>
13399 PR middle-end/48136
13400 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
13401 arg0/arg1 or their arguments are always fold converted to matching
13404 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
13407 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13410 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
13411 Handle in-tree gold.
13412 (ld_vers): Extract binutils version for gold.
13413 (gcc_cv_ld_hidden): Handle gold here.
13414 (gcc_cv_lto_plugin): Determine level of linker plugin support.
13415 * configure: Regenerate.
13416 * config.in: Regenerate.
13417 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
13418 -fuse-linker-plugin otherwise.
13419 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
13420 (LINK_COMMAND_SPEC): Use it.
13421 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
13423 2011-03-16 Jakub Jelinek <jakub@redhat.com>
13425 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
13426 * calls.c: Remove debug.h include.
13427 (emit_call_1): Don't call virtual_call_token debug hook.
13428 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
13429 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
13430 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
13431 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
13432 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
13433 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
13434 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
13435 dwarf2out_virtual_call): Remove.
13436 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
13437 copy_call_info and virtual_call hooks.
13438 (dwarf2out_init): Don't initialize vcall_insn_table,
13439 debug_dcall_section and debug_vcall_section.
13440 (prune_unused_types): Don't mark nodes from dcall_table.
13441 (dwarf2out_finish): Don't output dcall or vcall tables.
13442 * final.c (final_scan_insn): Don't call direct_call or
13443 virtual_call debug hooks.
13444 * debug.h (struct gcc_debug_hooks): Remove direct_call,
13445 virtual_call_token, copy_call_info and virtual_call hooks.
13446 (debug_nothing_uid): Remove prototype.
13447 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
13448 copy_call_info and virtual_call hooks.
13449 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13450 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
13451 * debug.c (do_nothing_debug_hooks): Likewise.
13452 (debug_nothing_uid): Remove.
13453 * doc/invoke.texi (-fenable-icf-debug): Remove.
13454 * common.opt (-fenable-icf-debug): Likewise.
13456 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
13457 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
13458 call's MEM. Handle functions returning aggregate through a hidden
13459 first pointer. For virtual calls add clobbered pc to call arguments
13461 * dwarf2out.c (gen_subprogram_die): Emit
13462 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
13466 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
13467 * rtl.h (ENTRY_VALUE_EXP): Define.
13468 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
13469 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
13470 * print-rtl.c (print_rtx): Likewise.
13471 * gengtype.c (adjust_field_rtx_def): Likewise.
13472 * var-tracking.c (vt_add_function_parameter): Adjust
13473 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
13474 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
13475 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
13476 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
13477 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
13479 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
13480 Call var_location debug hook even on CALL_INSNs.
13481 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
13482 * rtl.def (ENTRY_VALUE): New.
13483 * dwarf2out.c: Include cfglayout.h.
13484 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
13485 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
13486 (struct call_arg_loc_node): New type.
13487 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
13488 tail_call_site_count): New variables.
13489 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
13490 DW_TAG_GNU_call_site_parameter.
13491 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
13492 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
13493 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
13494 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
13495 and DW_AT_GNU_all_source_call_sites.
13496 (mem_loc_descriptor): Handle ENTRY_VALUE.
13497 (add_src_coords_attributes): Don't add enything if
13498 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
13499 (dwarf2out_abstract_function): Save and clear call_arg_location,
13500 call_site_count and tail_call_site_count around dwarf2out_decl call.
13501 (gen_call_site_die): New function.
13502 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
13503 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
13504 (dwarf2out_function_decl): Clear call_arg_locations,
13505 call_arg_loc_last, set call_site_count and tail_call_site_count
13506 to -1 and free block_map.
13507 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
13508 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
13509 followed by any real instructions.
13510 (dwarf2out_begin_function): Set call_site_count and
13511 tail_call_site_count to 0.
13512 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
13513 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
13514 attempt to force a DIE for it and worst case remove the attribute.
13515 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
13516 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
13518 * var-tracking.c: Include tm_p.h.
13519 (vt_stack_adjustments): For calls call note_register_arguments.
13520 (argument_reg_set): New variable.
13521 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
13522 ensure the VALUE is resolved.
13523 (call_arguments): New variable.
13524 (prepare_call_arguments): New function.
13525 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
13526 (struct expand_loc_callback_data): Add ignore_cur_loc field.
13527 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
13528 always use the best expression.
13529 (vt_expand_loc): Add ignore_cur_loc argument.
13530 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
13531 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
13532 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
13533 note for all calls.
13534 (vt_add_function_parameter): Use cselib_lookup_from_insn.
13535 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
13536 argument. Don't call cselib_preserve_only_values and
13537 cselib_reset_table.
13538 (note_register_arguments): New function.
13539 (vt_initialize): Compute argument_reg_set. Call
13540 vt_add_function_parameters before processing basic blocks instead of
13541 afterwards. For calls call prepare_call_arguments before calling
13542 cselib_process_insn.
13543 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
13544 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
13545 (var-tracking.o): Depend on $(TM_P_H).
13546 * cfglayout.h (insn_scope): New prototype.
13547 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
13548 * cfglayout.c (insn_scope): No longer static.
13549 * insn-notes.def (CALL_ARG_LOCATION): New.
13550 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
13551 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
13552 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
13553 nothing for DECL_EXTERNAL BLOCK_VARS.
13555 2011-03-16 Alan Modra <amodra@gmail.com>
13558 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
13559 create invalid offset address for vsx splat insn.
13560 * config/rs6000/predicates.md (splat_input_operand): New.
13561 * config/rs6000/vsx.md (vsx_splat_*): Use it.
13563 2011-03-15 Xinliang David Li <davidxl@google.com>
13566 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
13567 (normalize_preds): New function.
13568 (is_use_properly_guarded): Normalize def predicates.
13570 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13573 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
13574 in the output template.
13576 2011-03-15 Richard Guenther <rguenther@suse.de>
13578 PR middle-end/47650
13579 * tree-pretty-print.c (dump_function_declaration): Properly
13580 dump unprototyped and varargs function types.
13582 2011-03-15 Richard Guenther <rguenther@suse.de>
13584 PR tree-optimization/13954
13585 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
13588 2011-03-15 Richard Guenther <rguenther@suse.de>
13590 PR tree-optimization/48037
13591 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
13592 selects into BIT_FIELD_REFs.
13593 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
13596 2011-03-15 Jakub Jelinek <jakub@redhat.com>
13598 PR tree-optimization/48129
13599 * builtins.c (fold_builtin_snprintf): Convert to type of
13600 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
13601 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
13603 2011-03-15 Richard Guenther <rguenther@suse.de>
13605 PR tree-optimization/41490
13606 * tree-ssa-dce.c (propagate_necessity): Handle returns without
13607 value but with VUSE.
13608 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
13610 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
13611 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
13612 * tree-tailcall.c (find_tail_calls): Ignore returns.
13614 2011-03-15 Richard Guenther <rguenther@suse.de>
13616 PR middle-end/48031
13617 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
13618 or variable-indexed array accesses when in gimple form.
13620 2011-03-15 Richard Guenther <rguenther@suse.de>
13622 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
13624 2011-03-15 Alan Modra <amodra@gmail.com>
13627 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
13628 presume symbol_refs without a symbol_ref_decl are suitably
13629 aligned, nor other trees we may see here. Handle anchor symbols.
13630 (legitimate_constant_pool_address_p): Comment. Add mode param.
13631 Check cmodel=medium addresses. Adjust all calls.
13632 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
13633 creating cmodel=medium optimized access to locals.
13634 * config/rs6000/constraints.md (R): Pass QImode to
13635 legitimate_constant_pool_address_p.
13636 * config/rs6000/predicates.md (input_operand): Pass mode to
13637 legitimate_constant_pool_address_p.
13638 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
13641 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
13644 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
13645 64-bit constants being loaded into registers other than GPRs such
13646 as loading 0 into a VSX register.
13648 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13650 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
13652 2011-03-14 Jakub Jelinek <jakub@redhat.com>
13654 PR middle-end/47917
13655 * builtins.c (fold_builtin_snprintf): New function.
13656 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
13657 (fold_builtin_4): Likewise.
13659 PR middle-end/38878
13660 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
13661 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
13662 and C - X == X also strip nops from +/-/p+ operand.
13663 When optimizing -X == C, fold C to arg0's type.
13666 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
13667 emit it as add_AT_int instead of add_AT_unsigned.
13669 2011-03-14 Tom Tromey <tromey@redhat.com>
13671 * unwind-dw2.c: Include sys/sdt.h if it exists.
13672 (_Unwind_DebugHook): Use STAP_PROBE2.
13673 * config.in, configure: Rebuild.
13674 * configure.ac: Check for sys/sdt.h.
13676 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
13678 * config/i386/i386.md (ROUND_FLOOR): New constant.
13679 (ROUND_CEIL): Ditto.
13680 (ROUND_TRUNC): Ditto.
13681 (ROUND_MXCSR): Ditto.
13682 (ROUND_NO_EXC): Ditto.
13683 (rint<mode>2): Use new defines instead of numerical constants.
13684 (floor<mode>2): Ditto.
13685 (ceil<mode>2): Ditto.
13686 (btrunc<mode>2): Ditto.
13687 * config/i386/i386-builtin-types.def: Define ROUND function type
13689 * config/i386/i386.c (enum ix86_builtins): Add
13690 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
13691 (struct builtin_description): Add
13692 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
13693 (ix86_expand_sse_round): New static function.
13694 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
13696 (ix86_builtin_vectorized_function): Handle
13697 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
13699 2011-03-14 Tom Tromey <tromey@redhat.com>
13701 * c-parser.c (c_parser_asm_string_literal): Clear
13702 warn_overlength_strings.
13704 2011-03-14 Tom Tromey <tromey@redhat.com>
13706 * c-parser.c (disable_extension_diagnostics): Save
13707 warn_overlength_strings.
13708 (restore_extension_diagnostics): Restore warn_overlength_strings.
13710 2011-03-14 Jakub Jelinek <jakub@redhat.com>
13712 * BASE-VER: Change to 4.7.0.
13714 2011-03-14 Richard Guenther <rguenther@suse.de>
13716 PR middle-end/48098
13717 * tree.c (build_vector_from_val): Adjust assert to requirements
13720 2011-03-14 Jakub Jelinek <jakub@redhat.com>
13723 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
13725 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
13727 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
13728 terms of target_flags_explicit. Adjust copyright year.
13730 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
13731 * config/rs6000/t-freebsd: New file. Add override for
13734 2011-03-13 Chris Demetriou <cgd@google.com>
13736 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
13737 (-fno-diagnostics-show-option): this, to reflect current default.
13738 (-Werror=): Update text about -fno-diagnostics-show-option.
13740 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
13743 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13744 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
13745 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
13746 mode is not V2DImode or V2DFmode.
13747 (vspltis_constant): Do not handle V2DImode and V2DFmode.
13748 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
13749 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
13751 (movdi_internal64): Likewise.
13753 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
13755 PR tree-optimization/47127
13756 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
13758 (set_cloog_options): Same.
13759 (scop_to_clast): Same.
13760 (print_clast_stmt): Do not call cloog_state_malloc and
13762 (print_generated_program): Same.
13764 * graphite-clast-to-gimple.h (cloog_state): Declared.
13765 (scop_to_clast): Adjust declaration.
13766 * graphite.c (cloog_state): Defined here.
13767 (graphite_initialize): Call cloog_state_malloc.
13768 (graphite_finalize): Call cloog_state_free.
13770 2011-03-11 Jason Merrill <jason@redhat.com>
13772 * attribs.c (lookup_attribute_spec): Take const_tree.
13775 2011-03-11 Joseph Myers <joseph@codesourcery.com>
13777 * config/sparc/sparc.c (sparc_option_override): Use
13778 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
13780 2011-03-11 Richard Guenther <rguenther@suse.de>
13782 PR tree-optimization/48067
13783 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
13784 multiplication result will be only used once on the target
13787 2011-03-11 Richard Guenther <rguenther@suse.de>
13789 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
13791 2011-03-11 Richard Guenther <rguenther@suse.de>
13794 * tree.c (find_decls_types_r): Do not walk types only reachable
13795 from IDENTIFIER_NODEs.
13797 2011-03-11 Jakub Jelinek <jakub@redhat.com>
13799 PR middle-end/48044
13800 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
13801 all vnode->force_output nodes as needed.
13803 2011-03-11 Jason Merrill <jason@redhat.com>
13806 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
13807 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
13809 2011-03-11 Martin Jambor <mjambor@suse.cz>
13811 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
13814 2011-03-11 Jakub Jelinek <jakub@redhat.com>
13816 PR tree-optimization/48063
13817 * ipa-inline.c (cgraph_decide_inlining): Don't try to
13818 inline functions called once if !tree_can_inline_p (node->callers).
13820 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
13822 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
13824 * config/score/score3.c: Delete.
13825 * config/score/score3.h: Delete.
13826 * config/score/mul-div.S: Delete.
13827 * config/score/sfp-machine.h: Add new file.
13828 * config/score/constraints.md: Add new file.
13829 * config/score/t-score-softfp: Add new file.
13830 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
13831 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
13832 (score7_extra_constraint): Delete.
13833 (score7_option_override): Remove unused code.
13834 * config/score/score.c: Remove score3 and score5 define and code.
13835 * config/score/score.h: Remove score3 and score5 define and code.
13836 * config/score/score.md: Remove score3 template and unusual insn.
13837 * config/score/score.opt: Remove score3 and score5 options.
13839 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13841 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
13842 when _HPUX_SOURCE is defined.
13843 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
13845 2011-03-10 Jason Merrill <jason@redhat.com>
13848 * stor-layout.c (layout_type): Don't set structural equality
13849 on arrays of incomplete type.
13850 * tree.c (type_hash_eq): Handle comparing them properly.
13852 2011-03-10 Jakub Jelinek <jakub@redhat.com>
13855 * config/s390/s390.c (s390_delegitimize_address): Make sure the
13856 result mode matches original rtl mode.
13858 2011-03-10 Nick Clifton <nickc@redhat.com>
13860 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
13861 (andsi3, andsi3_flags): Fix timings for three operand alternative.
13863 2011-03-09 Jakub Jelinek <jakub@redhat.com>
13865 PR rtl-optimization/47866
13866 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
13867 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
13868 if target wasn't scalar.
13869 * function.c (assign_stack_temp_for_type): Assert that neither
13870 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
13871 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
13873 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
13875 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13877 * config/s390/s390-protos.h (s390_label_align): New prototype.
13878 * config/s390/s390.c (s390_label_align): New function.
13879 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
13881 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
13884 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
13885 V2DI/V2DF constants. Only all 0's or all 1's are easy.
13886 (output_vec_const_move): Ditto.
13888 2011-03-08 Anatoly Sokolov <aesok@post.ru>
13890 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
13891 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
13892 * config/mips/mips.c (mips_preferred_reload_class): Make static.
13893 Change 'rclass' argument and result type to reg_class_t.
13894 (TARGET_PREFERRED_RELOAD_CLASS): Define.
13896 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
13898 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13899 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
13900 (TARGET_MEMORY_MOVE_COST): Define.
13901 (avr_register_move_cost, avr_memory_move_cost): New Functions.
13903 2011-03-08 Jakub Jelinek <jakub@redhat.com>
13906 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
13909 PR tree-optimization/48022
13910 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
13913 2011-03-07 Jakub Jelinek <jakub@redhat.com>
13916 * var-tracking.c (find_use_val): Return NULL for
13917 cui->sets && cui->store_p BLKmode MEMs.
13919 2011-03-07 Anatoly Sokolov <aesok@post.ru>
13921 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
13923 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
13924 xstormy16_print_operand_address): Remove.
13925 * config/stormy16/stormy16.c (xstormy16_print_operand,
13926 xstormy16_print_operand_address): Make static.
13927 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13929 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
13932 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
13933 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
13936 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
13939 * cfgloopmanip.c (fix_bb_placements): Return immediately
13940 if FROM is BASE_LOOP's header.
13942 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
13944 * gimplify.c (gimplify_function_tree): Fix building calls
13945 to __builtin_return_address.
13947 2011-03-07 Alan Modra <amodra@gmail.com>
13949 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
13950 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
13951 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
13952 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
13954 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
13955 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
13956 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
13957 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
13958 * config/rs6000/rs6000.c
13959 (rs6000_elf_end_indicate_exec_stack): Rename to..
13960 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
13961 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
13962 (rs6000_file_start): ..here.
13963 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
13964 file scope variables.
13965 (call_ABI_of_interest): New function.
13966 (init_cumulative_args): Set above vars when function return value
13967 is a float, vector, or small struct.
13968 (rs6000_function_arg_advance_1): Likewise for function args.
13969 (rs6000_va_start): Set rs6000_passes_float if variable arg function
13970 references float args.
13972 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
13974 * doc/cfg.texi: Remove "See" before @ref.
13975 * doc/invoke.texi: Likewise.
13977 2011-03-05 Jason Merrill <jason@redhat.com>
13979 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
13981 2011-03-05 Anthony Green <green@moxielogic.com>
13983 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
13985 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
13987 PR rtl-optimization/47899
13988 * cfgloopmanip.c (fix_bb_placements): Fix first argument
13989 to flow_loop_nested_p when moving the loop upward.
13991 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
13994 * arm.md (movhi_insn_arch4): Accept any immediate constant.
13996 2011-03-05 Jakub Jelinek <jakub@redhat.com>
13998 PR tree-optimization/47967
13999 * ipa-cp.c (build_const_val): Return NULL instead of creating
14000 VIEW_CONVERT_EXPR for mismatching sizes.
14001 (ipcp_create_replace_map): Return NULL if build_const_val failed.
14002 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
14003 give up on versioning.
14005 2011-03-05 Alan Modra <amodra@gmail.com>
14008 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
14009 full cmodel medium/large lo_sum + high addresses.
14011 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14013 * config/s390/s390.c (s390_decompose_address): Reject non-literal
14014 pool references in UNSPEC_LTREL_OFFSET.
14016 2011-03-04 Jan Hubicka <jh@suse.cz>
14019 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
14020 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
14021 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
14023 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
14024 cgraph_add_thunk): Add node pointers.
14025 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
14026 associated to right node.
14027 (input_node): Update use of cgraph_same_body_alias
14028 and cgraph_add_thunk.
14030 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
14032 * config/i386/i386.opt (mprefer-avx128): New flag.
14033 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
14034 modes when the flag -mprefer-avx128 is on.
14036 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
14038 * dwarf2out.c (compare_loc_operands): Fix address handling.
14040 2011-03-04 Alan Modra <amodra@gmail.com>
14042 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
14044 2011-03-04 Richard Guenther <rguenther@suse.de>
14046 PR middle-end/47968
14047 * expmed.c (extract_bit_field_1): Prefer vector modes that
14048 vec_extract patterns can handle.
14050 2011-03-04 Richard Guenther <rguenther@suse.de>
14052 PR middle-end/47975
14053 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
14055 2011-03-04 Richard Henderson <rth@redhat.com>
14057 * explow.c (emit_stack_save): Remove 'after' parameter.
14058 (emit_stack_restore): Likewise.
14059 * expr.h: Update to match.
14060 * builtins.c, calls.c, stmt.c: Likewise.
14061 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
14062 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
14063 * function.c (expand_function_end): Insert the emit_stack_save
14064 sequence before parm_birth_insn instead of after.
14066 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
14068 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
14069 (ssse3_pmaddubsw128): Ditto.
14070 (ssse3_pmaddubsw): Ditto.
14072 2011-03-03 Steve Ellcey <sje@cup.hp.com>
14074 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
14076 2011-03-03 Jakub Jelinek <jakub@redhat.com>
14079 * gimplify.c (omp_add_variable): Only call omp_notice_variable
14080 on TYPE_SIZE_UNIT if it is a DECL.
14083 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
14084 first operand is not is_gimple_mem_ref_addr, try to fold it.
14085 If the operand still isn't is_gimple_mem_ref_addr, clear
14088 2011-03-03 Richard Guenther <rguenther@suse.de>
14090 PR middle-end/47283
14091 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
14093 (refs_may_alias_p_1): For release branches return true if
14094 we are confused by our input.
14096 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14098 * config/s390/s390.c (s390_function_value): Rename to ...
14099 (s390_function_and_libcall_value): ... this.
14100 (s390_function_value): New function.
14101 (s390_libcall_value): New function.
14102 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
14103 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
14104 target macro definitions.
14105 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
14107 2011-03-02 Joseph Myers <joseph@codesourcery.com>
14109 * config/i386/freebsd64.h (CC1_SPEC): Define.
14110 * config/i386/linux64.h (CC1_SPEC): Define.
14111 * config/i386/x86-64.h (CC1_SPEC): Don't define.
14113 2011-03-02 Anatoly Sokolov <aesok@post.ru>
14115 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14117 * config/stormy16/stormy16.c: Include reload.h.
14118 (xstormy16_memory_move_cost): New function.
14119 (TARGET_MEMORY_MOVE_COST): Define.
14121 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
14123 PR rtl-optimization/47925
14124 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
14125 with side effects. Remove the more-specific check for volatile asms.
14127 2011-03-02 Alan Modra <amodra@gmail.com>
14130 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
14131 toc relative addresses for valid offsets.
14133 2011-03-01 Richard Guenther <rguenther@suse.de>
14135 PR tree-optimization/47890
14136 * tree-vect-loop.c (get_initial_def_for_induction): Set
14137 related stmt properly.
14139 2011-03-01 Richard Guenther <rguenther@suse.de>
14142 * lto-streamer.c (lto_record_common_node): Also register
14143 the canonical type.
14145 2011-03-01 Richard Guenther <rguenther@suse.de>
14148 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14149 Do not stream DECL_ABSTRACT_ORIGIN.
14150 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
14151 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
14152 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14153 Do not stream DECL_ABSTRACT_ORIGIN.
14154 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
14155 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
14157 2011-02-28 Anatoly Sokolov <aesok@post.ru>
14159 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
14160 FUNCTION_VALUE_REGNO_P): Remove.
14161 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
14162 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
14163 Add 'outgoing' argument.
14164 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
14166 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14167 TARGET_FUNCTION_VALUE_REGNO_P): Define.
14169 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
14172 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
14173 (lookup_filename): Likewise.
14174 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
14176 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
14177 Jakub Jelinek <jakub@redhat.com>
14179 PR middle-end/47893
14180 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
14181 (assign_stack_local_1): Change last argument type to int.
14182 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
14183 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
14184 don't record padding space into frame_space_list nor use those areas.
14185 (assign_stack_local): Adjust caller.
14186 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
14187 of assign_stack_local, pass 0 as last argument.
14188 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
14191 2011-02-28 Jakub Jelinek <jakub@redhat.com>
14194 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
14195 Use target address_mode and pointer_mode hooks instead of hardcoded
14196 Pmode and ptr_mode. Handle some simple cases of extending if
14197 POINTERS_EXTEND_UNSIGNED < 0.
14198 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
14199 Call convert_debug_memory_address.
14200 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
14201 convert_debug_memory_address.
14203 PR middle-end/46790
14204 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
14205 * configure: Regenerated.
14206 * config.in: Regenerated.
14207 * varasm.c (default_function_section): Return NULL
14208 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
14210 2011-02-28 Martin Jambor <mjambor@suse.cz>
14212 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
14213 the description to match the printed values.
14215 2011-02-28 Richard Guenther <rguenther@suse.de>
14217 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
14218 of the copied scope tree.
14220 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14222 * doc/extend.texi (Function Attributes): Avoid deeply (and
14223 wrongly) nested tables.
14225 2011-02-27 Jakub Jelinek <jakub@redhat.com>
14227 PR middle-end/47903
14228 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
14229 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
14230 r isn't op0 nor op1.
14232 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
14234 * config/avr/avr.md: Remove magic comment for emacs.
14236 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
14239 * config/avr/avr.c (avr_option_override): Use error on bad options.
14240 (avr_help): New function.
14241 (TARGET_HELP): Define.
14243 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
14246 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
14247 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
14249 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
14251 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
14252 (ARM Options): Ditto.
14253 (i386 and x86-64 Options): Ditto.
14254 (RX Options): Ditto.
14255 (SPARC Options): Ditto.
14257 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
14259 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
14260 FreeBSD 6 and later. Generally use cpu generic.
14262 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
14264 * doc/cpp.texi: Update copyright years.
14266 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
14269 * config/lm32/lm32.md (ashrsi3): Added needed variable.
14271 2011-02-25 Jon Beniston <jon@beniston.com>
14274 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
14275 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
14276 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
14277 (lm32_block_move_inline): Add type cast to remove warning.
14278 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
14279 (gen_int_relational): Move declarations to start of function.
14281 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
14283 PR tree-optimization/45470
14284 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
14285 can throw internally only.
14286 * tree-vect-stmts.c (vectorizable_call): Likewise.
14288 2011-02-24 Anatoly Sokolov <aesok@post.ru>
14290 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
14291 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
14292 * config/stormy16/stormy16-protos.h
14293 (xstormy16_preferred_reload_class): Remove.
14294 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
14295 static. Change 'rclass' argument and return type to reg_class_t.
14296 (TARGET_PREFERRED_RELOAD_CLASS,
14297 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
14299 2011-02-24 Richard Guenther <rguenther@suse.de>
14301 * lto-streamer-in.c (input_bb): Do not find referenced vars
14302 in debug statements.
14304 2011-02-23 Jason Merrill <jason@redhat.com>
14306 * common.opt (fabi-version): Document v5 and v6.
14308 2011-02-23 Richard Guenther <rguenther@suse.de>
14310 PR tree-optimization/47849
14311 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
14313 2011-02-23 Jie Zhang <jie@codesourcery.com>
14315 * opts-common.c (decode_cmdline_option): Print empty string
14316 argument as "" in decoded->orig_option_with_args_text.
14317 * gcc.c (execute): Print empty string argument as ""
14318 in the verbose output.
14319 (do_spec_1): Keep empty string argument.
14321 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
14323 * config.gcc: Declare score-* and crx-* obsolete.
14325 2011-02-23 Jie Zhang <jie@codesourcery.com>
14327 PR rtl-optimization/47763
14328 * web.c (web_main): Ignore naked clobber when replacing register.
14330 2011-02-22 Anatoly Sokolov <aesok@post.ru>
14332 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14335 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
14338 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
14340 2011-02-22 Mike Stump <mikestump@comcast.net>
14342 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
14344 * configure: Regenerate.
14346 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
14348 PR rtl-optimization/46002
14349 * ira-color.c (update_copy_costs): Change class intersection
14350 test to reg_class_contents[] test of 'hard_regno'.
14352 2011-02-21 Joseph Myers <joseph@codesourcery.com>
14354 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
14355 than Driver option.
14356 * config/hpux11.opt (mt): Likewise.
14357 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
14358 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
14359 * config/vax/elf.opt (mno-asm-pic): Likewise.
14360 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
14362 2011-02-21 Mike Stump <mikestump@comcast.net>
14365 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
14366 tree so we can get save the type.
14367 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
14368 for CFString instead of trying to use past the end of the builtins.
14369 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
14370 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
14371 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
14372 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
14373 Rename to darwin_builtin_cfstring.
14374 (darwin_init_cfstring_builtins): Return the built type.
14376 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
14379 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
14380 (_mm256_insert_epi64): Use _mm_insert_epi64.
14382 2011-02-21 Anatoly Sokolov <aesok@post.ru>
14384 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14385 * config/stormy16/stormy16-protos.h
14386 (xstormy16_mode_dependent_address_p): Remove.
14387 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
14388 Make static. Change return type to bool. Change argument type to
14389 const_rtx. Remove dead code.
14390 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14392 2011-02-21 Richard Guenther <rguenther@suse.de>
14395 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14396 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
14397 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
14399 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14400 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
14402 2011-02-20 Richard Guenther <rguenther@suse.de>
14405 * tree.c (free_lang_data_in_decl): Clean builtins from
14406 the TU decl BLOCK_VARS.
14408 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
14412 * haifa-sched.c (fix_tick_ready): Skip tick computation
14415 2011-02-19 Richard Guenther <rguenther@suse.de>
14418 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
14419 Remove lazy BLOCK_VARS streaming.
14420 (lto_input_ts_block_tree_pointers): Likewise.
14421 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
14423 2011-02-19 Joseph Myers <joseph@codesourcery.com>
14425 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
14427 2011-02-19 Joseph Myers <joseph@codesourcery.com>
14429 * config/i386/biarch32.h, config/i386/mach.h,
14430 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
14432 2011-02-19 Jakub Jelinek <jakub@redhat.com>
14435 * config/i386/i386.md (peephole2 for shift and plus): Use
14436 operands[1] original mode in the first insn.
14438 2011-02-18 Mike Stump <mikestump@comcast.net>
14440 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
14442 2011-02-18 Jan Hubicka <jh@suse.cz>
14444 PR middle-end/47788
14445 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
14446 to zero when the function is not inlinable at all.
14448 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14450 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
14451 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14452 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
14453 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
14454 * config/pa/t-pa64: Likewise.
14455 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
14457 2011-02-18 Jakub Jelinek <jakub@redhat.com>
14460 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
14462 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14465 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
14467 2011-02-18 Anatoly Sokolov <aesok@post.ru>
14469 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
14470 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
14471 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
14472 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
14473 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
14474 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
14475 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
14476 m32r_load_postinc_p, m32r_store_preinc_predec_p,
14477 m32r_legitimate_address_p): New functions.
14478 * config/m32r/constraints.md (constraint "S"): Don't use
14479 STORE_PREINC_PREDEC_P.
14480 (constraint "U"): Don't use LOAD_POSTINC_P.
14482 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
14484 PR rtl-optimization/46178
14485 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
14486 compute ira_hard_regno_cover_class[].
14488 2011-02-18 Richard Guenther <rguenther@suse.de>
14491 * lto-streamer.h (lto_global_var_decls): Declare.
14492 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
14493 statics for global var processing.
14495 2011-02-18 Richard Guenther <rguenther@suse.de>
14497 PR tree-optimization/47737
14498 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
14499 edge dominance check.
14501 2011-02-18 Jakub Jelinek <jakub@redhat.com>
14504 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
14505 avoid invalid rtx sharing.
14507 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
14509 * doc/cpp.texi (Obsolete Features): Add background on the
14510 origin of assertions.
14512 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
14514 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
14516 * config/darwin.c (output_objc_section_asm_op): Added support for
14518 (is_objc_metadata): New.
14519 (darwin_objc2_section): New.
14520 (darwin_objc1_section): New.
14521 (machopic_select_section): Added support for ABI v1 and v2.
14522 (darwin_emit_objc_zeroed): New.
14523 (darwin_output_aligned_bss): Detect objc metadata and treat it
14525 (darwin_asm_output_aligned_decl_common): Same.
14526 (darwin_asm_output_aligned_decl_local): Same.
14527 * config/darwin-sections.def: Updated for ABI v1 and v2.
14528 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
14529 compiling Objective-C code for the NeXT runtime, default to using
14530 ABI version 0 for 32-bit, and version 2 for 64-bit.
14532 2011-02-17 Joseph Myers <joseph@codesourcery.com>
14534 * common.opt (optimize_fast): New Variable.
14535 * opts.c (default_options_optimization): Use opts->x_optimize_fast
14536 instead of local variable ofast.
14538 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
14540 * doc/invoke.texi (fobjc-abi-version): Documented.
14541 (fobjc-nilcheck): Documented.
14542 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
14545 2011-02-17 Joseph Myers <joseph@codesourcery.com>
14548 * common.opt (export-dynamic): New Driver option.
14549 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
14551 2011-02-17 Joseph Myers <joseph@codesourcery.com>
14553 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
14555 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
14556 Jan Hubicka <jh@suse.cz>
14560 * cfgexpand.c (account_used_vars_for_block): Remove.
14561 (estimated_stack_frame_size): Use referenced vars.
14562 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
14563 that were referenced in the original function. Test src_fn
14564 rather than cfun. Drop redundant get_var_ann.
14565 (setup_one_parameter): Drop redundant get_var_ann.
14566 (declare_return_variable): Likewise.
14567 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
14568 (copy_arguments_for_versioning): Drop redundant get_var_ann.
14569 * ipa-inline.c (compute_inline_parameters): Do not compute
14570 disregard_inline_limits here.
14571 (compute_inlinable_for_current, pass_inlinable): New.
14572 (pass_inline_parameters): Require PROP_referenced_vars.
14573 * cgraphunit.c (cgraph_process_new_functions): Don't run
14574 compute_inline_parameters explicitly unless function is in SSA form.
14575 (cgraph_analyze_function): Set .disregard_inline_limits.
14576 * tree-sra.c (convert_callers): Compute inliner parameters
14577 only for functions already in SSA form.
14579 2011-02-17 Joseph Myers <joseph@codesourcery.com>
14581 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
14582 -mlittle-endian-data.
14584 2011-02-17 Joseph Myers <joseph@codesourcery.com>
14586 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
14587 -mno-fpu, not -fpu and -no-fpu.
14588 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
14589 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
14591 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
14594 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
14595 input reload with PLUS RTX.
14597 2011-02-16 Joseph Myers <joseph@codesourcery.com>
14599 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
14600 of InverseVar(MDMX).
14602 2011-02-16 Joseph Myers <joseph@codesourcery.com>
14604 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
14607 2011-02-16 Joseph Myers <joseph@codesourcery.com>
14609 * config/mn10300/mn10300.opt (mno-crt0): New.
14611 2011-02-16 Joseph Myers <joseph@codesourcery.com>
14613 * config/m68k/uclinux.opt (static-libc): New Driver option.
14615 2011-02-16 Joseph Myers <joseph@codesourcery.com>
14617 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
14619 2011-02-16 Joseph Myers <joseph@codesourcery.com>
14621 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
14622 %{muser-extend-enabled}.
14624 2011-02-16 Richard Guenther <rguenther@suse.de>
14626 PR tree-optimization/47738
14627 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
14628 the TODO from tree_predictive_commoning.
14630 2011-02-15 Jeff Law <law@redhat.com>
14633 2011-01-25 Jeff Law <law@redhat.com>
14635 PR rtl-optimization/37273
14636 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14637 handle them like argument loads from stack slots. Do not double
14638 count memory for memory constants and argument loads from stack slots.
14640 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
14642 PR middle-end/47725
14643 * combine.c (cant_combine_insn_p): Revert the last change.
14645 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
14648 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
14649 mode for vector constants. Remove code that checks for TImode.
14651 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
14655 * cgraph.h (compute_inline_parameters): Return void.
14656 * ipa-inline.c (compute_inline_parameters): Adjust.
14658 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
14662 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
14664 * cfgexpand.c (estimated_stack_frame_size): Likewise.
14665 * ipa-inline.c (compute_inline_parameters): Adjust.
14667 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
14671 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
14672 Adjust all users. Pass FN to...
14673 * tree-flow-inline.h (first_referenced_var): ... this. Add
14675 * ipa-struct-reorg.c: Adjust.
14676 * tree-dfa.c: Adjust.
14677 * tree-into-ssa.c: Adjust.
14678 * tree-sra.c: Adjust.
14679 * tree-ssa-alias.c: Adjust.
14680 * tree-ssa-live.c: Adjust.
14681 * tree-ssa.c: Adjust.
14682 * tree-ssanames.c: Adjust.
14683 * tree-tailcall.c: Adjust.
14685 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
14689 * tree-flow.h (referenced_var_lookup): Add fn parameter.
14690 Adjust all callers.
14691 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
14692 * tree-flow-inline.h: Adjust.
14693 * gimple-pretty-print.c: Adjust.
14694 * tree-into-ssa.c: Adjust.
14695 * tree-ssa.c: Adjust.
14696 * cfgexpand.c: Adjust.
14698 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
14700 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
14701 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14702 (EXTRA_CONSTRAINT): Delete.
14703 * config/iq2000/constraints.md: New file.
14704 * config/iq2000/iq2000.md: Include it.
14705 (define_insn ""): Delete.
14706 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
14707 unsupported constraint letters from patterns.
14708 (call_value, call_value_internal1): Likewise.
14709 (call_value_multiple_internal1): Likewise.
14711 2011-02-15 Nick Clifton <nickc@redhat.com>
14713 * config/mn10300/mn10300.c: Include tm-constrs.h.
14714 (struct liw_data): New data structure describing an LIW candidate
14716 (extract_bundle): Use struct liw_data. Allow small integer
14717 operands for some instructions.
14718 (check_liw_constraints): Use struct liw_data. Remove swapped
14719 parameter. Add comments describing the checks. Fix bug when
14720 assigning the source of liw1 to the source of liw2.
14721 (liw_candidate): Delete. Code moved into extract_bundle.
14722 (mn10300_bundle_liw): Use struct liw_data. Check constraints
14724 * config/mn10300/predicates.md (liw_operand): New predicate.
14725 Allows registers and small integer constants.
14726 * config/mn10300/constraints.md (O): New constraint. Accetps
14727 integers in the range -8 to +7 inclusive.
14728 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
14729 for moving a small integer into a register. Give this alternative
14731 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
14732 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
14733 using the J,K,L and M constraints,
14734 (liw): Remove SI mode on second operands to allow for HI and QI
14736 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
14739 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
14741 PR middle-end/47725
14742 * combine.c (cant_combine_insn_p): Check zero/sign extended
14745 2011-02-15 Richard Guenther <rguenther@suse.de>
14747 PR tree-optimization/47743
14748 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
14749 for a non-type-compatible VN lookup bail out.
14751 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
14753 * config/fr30/constraints.md: New file.
14754 * config/fr30/fr30.md: Include it.
14755 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
14756 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14757 (EXTRA_CONSTRAINT): Delete.
14759 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
14761 * config/frv/constraints.md: New file.
14762 * config/frv/predicates.md: Include it.
14763 * config/frv/frv.c (reg_class_from_letter): Delete.
14764 (frv_option_override): Don't initialize it.
14765 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
14766 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
14767 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
14768 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
14769 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
14770 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14771 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
14772 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
14773 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
14774 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
14775 (REG_CLASS_FROM_CONSTRAINT): Delete.
14777 2011-02-15 Jakub Jelinek <jakub@redhat.com>
14779 PR middle-end/47581
14780 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
14781 if frame size is 0 in a leaf function.
14783 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14786 * config/alpha/host-osf.c: New file.
14787 * config/alpha/x-osf: New file.
14788 * config.host (alpha*-dec-osf*): Use it.
14790 2011-02-14 Anatoly Sokolov <aesok@post.ru>
14792 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14793 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
14794 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
14795 (rx_mode_dependent_address_p): ...this. Make static. Change argument
14797 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14799 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
14801 * config/stormy16/constraints.md: New file.
14802 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
14803 Use satisfies_constraint_Q and satisfies_constraint_R.
14804 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
14806 (xstormy16_legitiamte_address_p): Declare.
14807 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
14808 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14809 (EXTRA_CONSTRAINT): Delete.
14810 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
14812 (xstormy16_extra_constraint_p): Delete.
14814 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
14816 PR tree-optimization/46494
14817 * loop-unroll.c (split_edge_and_insert): Adjust comment.
14818 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
14819 (pass_rtl_loop_done): Add TODO_verify_flow.
14820 * fwprop.c (pass_rtl_fwprop): Likewise.
14821 * modulo-sched.c (pass_sms): Likewise.
14822 * tree-ssa-dom.c (pass_dominator): Likewise.
14823 * tree-ssa-loop-ch.c (pass_ch): Likewise.
14824 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
14825 (pass_tree_loop_done): Likewise.
14826 * tree-ssa-pre.c (execute_pre): Likewise.
14827 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
14828 * tree-ssa-sink.c (pass_sink_code): Likewise.
14829 * tree-vrp.c (pass_vrp): Likewise.
14831 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
14833 * config/v850/constraints.md: New file.
14834 * config/v850/v850.md: Include it.
14835 * config/v850/predicates.md (reg_or_0_operand): Use
14836 satisfies_constraint_G.
14837 (special_symbolref_operand): Use satisfies_constraint_K.
14838 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
14839 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
14840 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
14841 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
14842 (EXTRA_CONSTRAINT): Delete.
14843 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
14844 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
14845 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
14847 2011-02-14 Anatoly Sokolov <aesok@post.ru>
14850 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
14853 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
14855 * config/mcore/constraints.md: New file.
14856 * config/mcore/mcore.md: Include it.
14857 * config/mcore/mcore.c (reg_class_from_letter): Delete.
14858 * config/mcore/mcore.h (reg_class_from_letter): Delete.
14859 (REG_CLASS_FROM_LETTER): Delete.
14860 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
14861 insn_const_int_ok_for_constraint.
14862 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
14863 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
14864 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14865 (EXTRA_CONSTRAINT): Delete.
14867 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14870 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
14871 (IS_SIGHANDLER): Define.
14872 (sparc64_is_sighandler): New function, split off from
14873 sparc64_fallback_frame_state.
14874 (sparc_is_sighandler): New function, split off from
14875 sparc_fallback_frame_state.
14876 (sparc64_fallback_frame_state): Merge with ...
14877 (sparc_fallback_frame_state): ... this into ...
14878 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
14879 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
14880 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
14881 stack instead of hardcoded offsets.
14883 2011-02-14 Andriy Gapon <avg@freebsd.org>
14886 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
14888 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14890 * configure: Regenerate.
14892 2011-02-12 Joseph Myers <joseph@codesourcery.com>
14895 * gcc.c (asm_options): Correct spec matching --target-help.
14897 2011-02-12 Martin Jambor <mjambor@suse.cz>
14899 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
14900 to gimple call error.
14902 2011-02-12 Mike Stump <mikestump@comcast.net>
14904 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
14905 comments in backslash regions.
14907 2011-02-12 Mike Stump <mikestump@comcast.net>
14908 Jakub Jelinek <jakub@redhat.com>
14909 Iain Sandoe <iains@gcc.gnu.org>
14912 * dwarf2out.c (output_cfa_loc): When required, apply the
14913 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
14914 (output_loc_sequence): Likewise.
14915 (output_loc_operands_raw): Likewise.
14916 (output_loc_sequence_raw): Likewise.
14917 (output_cfa_loc): Likewise.
14918 (output_loc_list): Suppress register number adjustment when
14919 calling output_loc_sequence()
14920 (output_die): Likewise.
14922 2011-02-12 Anatoly Sokolov <aesok@post.ru>
14924 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14926 * config/xtensa/xtensa.c (xtensa_register_move_cost,
14927 xtensa_memory_move_cost): New functions.
14928 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
14930 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
14933 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
14934 in the current directory.
14935 * configure: Rebuilt.
14937 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
14939 * config/darwin.c (darwin_override_options): Add a hunk missed
14940 from the commit of r168571. Trim comment line lengths and
14941 correct indents of the preceding block.
14943 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
14945 * gcc.c (driver_handle_option): Concatenate the argument to -F with
14948 2011-02-11 Joseph Myers <joseph@codesourcery.com>
14950 * common.opt (nostartfiles): New Driver option.
14952 2011-02-11 Xinliang David Li <davidxl@google.com>
14954 PR tree-optimization/47707
14955 * tree-chrec.c (convert_affine_scev): Keep type precision.
14957 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
14959 PR tree-optimization/47420
14960 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
14962 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
14964 PR rtl-optimization/47614
14965 * rtl.h (check_for_inc_dec): Declare.
14966 * dse.c (check_for_inc_dec): Externalize...
14967 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
14968 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
14970 2011-02-11 Joseph Myers <joseph@codesourcery.com>
14973 * gcc.c (main): Do not compile inputs if there were errors in
14975 * opts-common.c (read_cmdline_option): Check for wrong language
14976 after other error checks.
14978 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
14980 * cgraph.c: Fix comment typos.
14981 * cgraph.h: Likewise.
14982 * cgraphunit.c: Likewise.
14983 * ipa-cp.c: Likewise.
14984 * ipa-inline.c: Likewise.
14985 * ipa-prop.c: Likewise.
14986 * ipa-pure-const.c: Likewise.
14987 * ipa-ref.c: Likewise.
14988 * ipa-reference.c: Likewise.
14990 2011-02-11 Jakub Jelinek <jakub@redhat.com>
14993 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
14995 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14998 * doc/sourcebuild.texi (Require Support): Document
14999 dg-require-ascii-locale.
15001 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
15003 * doc/lto.texi (Write summary): Fix missing parentheses.
15005 2011-02-10 DJ Delorie <dj@redhat.com>
15007 * config/m32c/m32c.c (m32c_option_override): Disable
15008 -fcombine-stack-adjustments until flag value tracking and compare
15009 optimization can be rewritten.
15011 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
15013 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
15015 (PROCESSOR_DEFAULT64): Likewise.
15017 2011-02-10 Richard Henderson <rth@redhat.com>
15019 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
15020 change from 2011-02-03.
15021 * config/rx/rx.c (flags_from_code): Likewise.
15022 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
15023 is valid, n/pz otherwise.
15024 (rx_select_cc_mode): Return CCmode if Y is not zero.
15026 2011-02-10 Richard Guenther <rguenther@suse.de>
15028 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
15030 2011-02-10 Richard Guenther <rguenther@suse.de>
15032 PR tree-optimization/47677
15033 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
15035 2011-02-10 Jakub Jelinek <jakub@redhat.com>
15038 * combine.c (make_compound_operation): Only change shifts into
15039 multiplication for SCALAR_INT_MODE_P.
15041 2011-02-10 Jie Zhang <jie@codesourcery.com>
15045 2011-02-05 Jie Zhang <jie@codesourcery.com>
15047 * web.c (entry_register): Don't clobber the number of the
15048 first uninitialized reference in used[].
15050 2011-02-09 Richard Guenther <rguenther@suse.de>
15052 PR tree-optimization/47664
15053 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
15056 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
15060 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
15062 (PROCESSOR_DEFAULT64): Same.
15063 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
15065 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15067 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
15069 2011-02-09 Martin Jambor <mjambor@suse.cz>
15071 PR middle-end/45505
15072 * tree-sra.c (struct access): New flags grp_scalar_read and
15073 grp_scalar_write. Changed description of assignment read and write
15075 (dump_access): Dump new flags, reorder all of them.
15076 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
15077 to detect multiple scalar reads.
15078 (analyze_access_subtree): Use the new scalar read write flags instead
15079 of the old flags. Adjusted comments.
15081 2011-02-08 DJ Delorie <dj@redhat.com>
15084 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
15087 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15089 * config/m68k/uclinux.opt: New.
15090 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
15092 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15094 * config/cris/elf.opt (sim): New Driver option.
15096 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15098 * config/xtensa/elf.opt: New.
15099 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
15101 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15103 * config/vax/elf.opt: New.
15104 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
15106 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15108 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
15110 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15112 * config/gnu-user.opt: New.
15113 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
15114 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
15115 *-*-uclinux*): Use gnu-user.opt.
15117 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
15119 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
15120 * config/i386/gnu.h (CPP_SPEC): Likewise.
15122 2011-02-08 Ian Lance Taylor <iant@google.com>
15124 * common.opt (fcx-limited-range): Add SetByCombined flag.
15125 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
15126 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
15127 (fassociative-math, freciprocal-math): Likewise.
15128 (funsafe-math-optimizations): Likewise.
15129 * opth-gen.awk: Handle SetByCombined.
15130 * optc-gen.awk: Likewise.
15131 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
15132 (set_unsafe_math_optimizations_flags): Likewise.
15133 * doc/options.texi (Option properties): Document SetByCombined.
15135 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15137 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
15138 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
15139 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
15140 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
15141 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
15143 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
15145 PR tree-optimization/46834
15146 PR tree-optimization/46994
15147 PR tree-optimization/46995
15148 * graphite-sese-to-poly.c (used_outside_reduction): New.
15149 (detect_commutative_reduction): Call used_outside_reduction.
15150 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
15151 translate_scalar_reduction_to_array only when at least one
15152 loop-phi/close-phi tuple has been detected.
15154 2011-02-08 Richard Guenther <rguenther@suse.de>
15156 PR middle-end/47639
15157 * tree-vect-generic.c (expand_vector_operations_1): Update
15159 (expand_vector_operations): ... not here. Cleanup EH info
15160 and the CFG if required.
15162 2011-02-08 Richard Guenther <rguenther@suse.de>
15164 PR tree-optimization/47641
15165 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
15166 require type compatibility.
15168 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15170 * gimple-low.c (lower_function_body): Don't remove the location of
15171 the return statement here.
15172 (lower_gimple_return): Do it here instead but only if the return
15173 statement is actually used twice.
15175 2011-02-08 Richard Guenther <rguenther@suse.de>
15177 PR tree-optimization/47632
15178 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
15179 unused up_to_stmt parameter, return whether cfg-cleanup is
15180 necessary, remove EH info properly.
15181 (forward_propagate_into_gimple_cond): Adjust caller.
15182 (forward_propagate_into_cond): Likewise.
15183 (forward_propagate_comparison): Likewise.
15184 (tree_ssa_forward_propagate_single_use_vars): Make
15185 forward_propagate_comparison case similar to the two others.
15187 2011-02-08 Nick Clifton <nickc@redhat.com>
15189 * config/mn10300/mn10300.opt (mliw): New command line option.
15190 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
15191 (liw_bundling): New automaton.
15192 (liw): New attribute.
15193 (liw_op): New attribute.
15194 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
15195 (movsi_internal): Add LIW attributes.
15196 (andsi3): Likewise.
15197 (iorsi3): Likewise.
15198 (xorsi3): Likewise.
15199 (addsi3): Separate register and immediate alternatives.
15200 Add LIW attributes.
15201 (subsi3): Likewise.
15203 (aslsi3): Likewise.
15204 (lshrsi3): Likewise.
15205 (ashrsi3): Likewise.
15206 (liw): New pattern.
15207 * config/mn10300/mn10300.c (liw_op_names): New
15208 (mn10300_print_operand): Handle 'W' operand descriptor.
15209 (extract_bundle): New function.
15210 (check_liw_constraints): New function.
15211 (liw_candidate): New function.
15212 (mn10300_bundle_liw): New function.
15213 (mn10300_reorg): New function.
15214 (TARGET_MACHINE_DEPENDENT_REORG): Define.
15215 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
15216 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
15217 __LIW__ or __NO_LIW__.
15218 * doc/invoke.texi: Describe the -mliw command line option.
15220 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15222 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
15223 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15224 pthread_mutex_unlock): Remove.
15225 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
15226 * config/pa/t-pa64: Likewise.
15227 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
15228 shared libc if not linking against libpthread.
15229 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
15231 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
15234 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
15235 on 10.6 and later to ensure that we always use the unwinder from
15236 the system. Only add -no_compact_unwind when tarteting darwin
15239 2011-02-07 Steve Ellcey <sje@cup.hp.com>
15242 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
15243 (vec_interleave_lowv2sf): Ditto.
15244 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
15245 (vec_extract_oddv2sf): Ditto.
15247 2011-02-07 Mike Stump <mikestump@comcast.net>
15250 Add __ieee_divdc3 entry point.
15251 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
15253 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
15254 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
15255 * config/darwin.c (darwin_rename_builtins): Add.
15256 * config/darwin-protos.h (darwin_rename_builtins): Add.
15258 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
15261 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
15264 2011-02-07 Mike Stump <mikestump@comcast.net>
15266 * config/darwin.opt (mmacosx-version-min): Update default OS version.
15268 2011-02-07 Denis Chertykov <chertykov@gmail.com>
15271 * config/avr/libgcc.S (exit): Move .endfunc
15273 2011-02-07 Richard Guenther <rguenther@suse.de>
15275 PR tree-optimization/47615
15276 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
15277 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
15278 (run_scc_vn): Initialize it.
15279 (visit_reference_op_load): Use it.
15280 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
15282 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15284 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
15285 DImode trapping arithmetic libfuncs.
15287 2011-02-07 Richard Guenther <rguenther@suse.de>
15289 PR tree-optimization/47621
15290 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
15292 (execute_update_addresses_taken): ... here. Make it more
15293 conservative in what we accept.
15295 2011-02-06 Joseph Myers <joseph@codesourcery.com>
15297 * config/sparc/freebsd.h (ASM_SPEC): Define.
15298 * config/sparc/vxworks.h (ASM_SPEC): Define.
15300 2011-02-06 Joseph Myers <joseph@codesourcery.com>
15302 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15304 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
15306 * doc/invoke.texi: Remove reference to compiler internals from
15307 user documentation.
15309 * reg-notes.def: Remove REG_VALUE_PROFILE.
15310 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
15312 2011-02-05 Jakub Jelinek <jakub@redhat.com>
15314 PR middle-end/47610
15315 * varasm.c (default_section_type_flags): If decl is NULL,
15316 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
15318 2011-02-05 Jie Zhang <jie@codesourcery.com>
15321 * web.c (entry_register): Don't clobber the number of the
15322 first uninitialized reference in used[].
15324 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
15326 PR tree-optimization/46194
15327 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
15328 (build_classic_dist_vector_1): Do not represent classic distance
15329 vectors when the access functions are variating in different loops.
15331 2011-02-04 Joseph Myers <joseph@codesourcery.com>
15333 * config/mips/iris6.opt: New.
15334 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
15336 2011-02-04 Richard Henderson <rth@redhat.com>
15337 Steve Ellcey <sje@cup.hp.com>
15340 * config/ia64/predicates.md (mux1_brcst_element): New.
15341 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
15342 * config/ia64/ia64.c (ia64_unpack_assemble): New.
15343 (ia64_unpack_sign): New.
15344 (ia64_expand_unpack): Rewrite using new routines.
15345 (ia64_expand_widen_sum): Ditto.
15346 (ia64_expand_dot_prod_v8qi): Ditto.
15347 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
15348 routines, add endian check.
15349 (pmpy2_even): Rename from pmpy2_r, add endian check.
15350 (pmpy2_odd): Rename from pmpy2_l, add endian check.
15351 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
15352 (vec_widen_smult_hi_v4hi): Ditto.
15353 (vec_widen_umult_lo_v4hi): Ditto.
15354 (vec_widen_umult_hi_v4hi): Ditto.
15355 (mulv2si3): Change endian checks.
15356 (sdot_prodv4hi): Rewrite with new calls.
15357 (udot_prodv4hi): New.
15358 (vec_pack_ssat_v4hi): Add endian check.
15359 (vec_pack_usat_v4hi): Ditto.
15360 (vec_pack_ssat_v2si): Ditto.
15361 (max1_even): Rename from max1_r, add endian check.
15362 (max1_odd): Rename from max1_l, add endian check.
15363 (*mux1_rev): Format change.
15364 (*mux1_mix): Ditto.
15365 (*mux1_shuf): Ditto.
15366 (*mux1_alt): Ditto.
15367 (*mux1_brcst_v8qi): Use new predicate.
15368 (vec_extract_evenv8qi): Remove endian check.
15369 (vec_extract_oddv8qi): Ditto.
15370 (vec_interleave_lowv4hi): Format change.
15371 (vec_interleave_highv4hi): Ditto.
15372 (mix2_even): Rename from mix2_r, add endian check.
15373 (mix2_odd): Rename from mux2_l, add endian check.
15374 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
15375 (vec_extract_evenodd_helper): Format change.
15376 (vec_extract_evenv4hi): Remove endian check.
15377 (vec_extract_oddv4hi): Remove endian check.
15378 (vec_interleave_lowv2si): Format change.
15379 (vec_interleave_highv2si): Format change.
15380 (vec_initv2si): Remove endian check.
15381 (vecinit_v2si): Add endian check.
15382 (reduc_splus_v2sf): Add endian check.
15383 (reduc_smax_v2sf): Ditto.
15384 (reduc_smin_v2sf): Ditto.
15385 (vec_initv2sf): Remove endian check.
15386 (fpack): Add endian check.
15387 (fswap): Add endian check.
15388 (vec_interleave_highv2sf): Add endian check.
15389 (vec_interleave_lowv2sf): Add endian check.
15390 (fmix_lr): Add endian check.
15391 (vec_setv2sf): Format change.
15392 (*vec_extractv2sf_0_be): Use shift to extract operand.
15393 (*vec_extractv2sf_1_be): New.
15394 (vec_pack_trunc_v4hi): Add endian check.
15395 (vec_pack_trunc_v2si): Format change.
15397 2011-02-04 Jakub Jelinek <jakub@redhat.com>
15399 PR inline-asm/23200
15400 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
15401 do bb, locus and block comparison and disallow loads if it is not set.
15402 (stmt_is_replaceable_p): New function.
15403 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
15405 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
15406 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
15408 * tree-flow.h (stmt_is_replaceable_p): New prototype.
15410 2011-02-04 Joseph Myers <joseph@codesourcery.com>
15412 * config/rs6000/xilinx.opt: New.
15413 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
15415 2011-02-04 Joseph Myers <joseph@codesourcery.com>
15417 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
15419 2011-02-03 Anatoly Sokolov <aesok@post.ru>
15421 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
15422 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
15423 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
15424 secondary_reload_info, xtensa_secondary_reload): Remove.
15425 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
15426 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15427 (xtensa_preferred_reload_class): Make static. Change return and
15428 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
15429 Use CONST_DOUBLE_P predicate.
15430 (xtensa_preferred_output_reload_class): New function.
15431 (xtensa_secondary_reload): Make static.
15433 2011-02-03 Joseph Myers <joseph@codesourcery.com>
15435 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
15436 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
15437 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
15439 2011-02-03 Jakub Jelinek <jakub@redhat.com>
15441 PR middle-end/31490
15442 * output.h (SECTION_RELRO): Define.
15443 (SECTION_MACH_DEP): Adjust.
15444 (get_variable_section): New prototype.
15445 * varpool.c (varpool_finalize_named_section_flags): New function.
15446 (varpool_assemble_pending_decls): Call it.
15447 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
15448 * cgraphunit.c (cgraph_output_in_order): Call
15449 varpool_finalize_named_section_flags.
15450 * varasm.c (get_section): Allow section flags conflicts between
15451 relro and read-only sections if the section hasn't been declared yet.
15452 Set SECTION_OVERRIDE after diagnosing section type conflict.
15453 (get_variable_section): No longer static.
15454 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
15455 readonly sections that need relocations.
15456 (decl_readonly_section_1): New function.
15457 (decl_readonly_section): Use it.
15460 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
15461 Steve Ellcey <sje@cup.hp.com>
15463 PR middle-end/31490
15464 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
15465 if section attribute used.
15467 2011-02-03 Jakub Jelinek <jakub@redhat.com>
15469 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
15470 * config/darwin.c (SECTION_NO_ANCHOR): Define.
15471 (darwin_init_sections): Remove assertion.
15473 2011-02-03 Nick Clifton <nickc@redhat.com>
15475 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
15477 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
15478 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
15479 instead of "n" and "pz".
15480 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
15483 2011-02-03 Jakub Jelinek <jakub@redhat.com>
15486 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
15487 fma, expand FMA_EXPR as fma{,f,l} call.
15490 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
15491 copy them into a unsigned char variable and pass address of it to
15492 lto_output_data_stream.
15495 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
15496 around backend_init_target and lang_dependent_init_target calls.
15497 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
15498 (verify_cgraph_node): Don't call set_cfun here. Use
15499 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
15500 Set error_found for incorrectly represented calls to thunks.
15502 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
15505 PR rtl-optimization/43494
15506 * rtl.h (for_each_inc_dec_fn): New type.
15507 (for_each_inc_dec): Declare.
15508 * rtlanal.c (struct for_each_inc_dec_ops): New type.
15509 (for_each_inc_dec_find_inc_dec): New fn.
15510 (for_each_inc_dec_find_mem): New fn.
15511 (for_each_inc_dec): New fn.
15512 * dse.c (struct insn_size): Remove.
15513 (replace_inc_dec, replace_inc_dec_mem): Remove.
15514 (emit_inc_dec_insn_before): New fn.
15515 (check_for_inc_dec): Use it, along with for_each_inc_dec.
15516 (canon_address): Pass mem modes to cselib_lookup.
15517 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
15518 (cselib_lookup_from_insn): Likewise.
15519 (cselib_subst_to_values): Likewise.
15520 * cselib.c (find_slot_memmode): New var.
15521 (cselib_find_slot): New fn. Use it instead of
15522 htab_find_slot_with_hash everywhere.
15523 (entry_and_rtx_equal_p): Use find_slot_memmode.
15524 (autoinc_split): New fn.
15525 (rtx_equal_for_cselib_p): Rename and implement in terms of...
15526 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
15527 Deal with autoinc. Special-case recursion into MEMs.
15528 (cselib_hash_rtx): Likewise.
15529 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
15530 address and MEM modes.
15531 (cselib_subst_to_values): Add memmode, pass it on.
15533 (cselib_lookup): Add memmode argument, pass it on.
15534 (cselib_lookup_from_insn): Add memmode.
15535 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
15536 (struct cselib_record_autoinc_data): New.
15537 (cselib_record_autoinc_cb): New fn.
15538 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
15539 mode to cselib_lookup. Reset autoinced REGs here instead of...
15540 (cselib_process_insn): ... here.
15541 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
15543 (add_uses): Likewise, also to cselib_subst_to_values.
15544 (add_stores): Likewise.
15545 * sched-deps.c (add_insn_mem_dependence): Pass mode to
15546 cselib_subst_to_values.
15547 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
15548 * gcse.c (do_local_cprop): Adjusted.
15549 * postreload.c (reload_cse_simplify_set): Adjusted.
15550 (reload_cse_simplify_operands): Adjusted.
15551 * sel-sched-dump (debug_mem_addr_value): Pass mode.
15553 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
15555 PR tree-optimization/45122
15556 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
15557 unsafe assumptions when there's more than one loop exit.
15559 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
15562 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
15563 Document using vector double with the load/store builtins, and
15564 that the load/store builtins always use Altivec instructions.
15566 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
15567 to use altivec memory instructions, even on VSX.
15568 (vector_altivec_store_<mode>): Ditto.
15570 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
15573 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15574 V2DF, V2DI support to load/store overloaded builtins.
15576 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
15577 altivec load/store builtins for V2DF/V2DI types.
15579 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
15580 set avoid indexed addresses on power6 if -maltivec.
15581 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
15582 vector_altivec_load/vector_altivec_store builtins.
15583 (altivec_expand_st_builtin): Ditto.
15584 (altivec_expand_builtin): Add VSX memory builtins.
15585 (rs6000_init_builtins): Add V2DI types to internal types.
15586 (altivec_init_builtins): Add support for V2DF/V2DI altivec
15587 load/store builtins.
15588 (rs6000_address_for_altivec): Insure memory address is appropriate
15591 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
15592 vec_vsx_ld and vec_vsx_st.
15593 (vsx_store_<mode>): Ditto.
15595 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
15596 variables to hold long long types for VSX vector memory builtins.
15597 (RS6000_BTI_unsigned_long_long): Ditto.
15598 (long_long_integer_type_internal_node): Ditti.
15599 (long_long_unsigned_type_internal_node): Ditti.
15601 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
15602 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
15603 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
15605 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
15607 (vec_vsx_st): Ditto.
15609 2011-02-02 Joseph Myers <joseph@codesourcery.com>
15611 * config/pa/pa-hpux10.opt: New.
15612 * config/hpux11.opt (pthread): New Driver option.
15613 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
15614 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
15616 2011-02-02 Joseph Myers <joseph@codesourcery.com>
15618 * config/ia64/vms.opt: New.
15619 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
15621 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
15624 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
15625 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
15626 generator functions.
15627 (vsx_floatuns<VSi><mode>2): Ditto.
15628 (vsx_fix_trunc<mode><VSi>2): Ditto.
15629 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
15631 2011-02-02 Joseph Myers <joseph@codesourcery.com>
15633 * config/i386/djgpp.opt (posix): New Driver option.
15635 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
15637 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
15638 Move to the unsupported targets list.
15640 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
15642 PR rtl-optimization/47525
15643 * df-scan.c: Update copyright years.
15644 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
15645 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
15647 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15649 * config/i386/sysv4.h (TARGET_VERSION): Remove.
15650 (SUBTARGET_RETURN_IN_MEMORY): Remove.
15651 (ASM_OUTPUT_ASCII): Remove.
15652 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
15654 2011-02-02 Jeff Law <law@redhat.com>
15656 PR middle-end/47543
15657 * reload.c (find_reloads_address): Handle reg+d address where both
15658 components are invalid by reloading the entire address.
15660 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
15661 Richard Guenther <rguenther@suse.de>
15663 PR tree-optimization/40979
15665 * passes.c (init_optimization_passes): After LIM call copy_prop
15666 and DCE to clean up.
15667 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
15669 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
15671 PR tree-optimization/47576
15672 PR tree-optimization/47555
15673 * doc/invoke.texi (scev-max-expr-complexity): Documented.
15674 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15675 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
15676 * tree-scalar-evolution.c (follow_ssa_edge): Use
15677 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
15679 2011-02-02 Richard Guenther <rguenther@suse.de>
15681 PR tree-optimization/47566
15682 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
15684 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
15688 * tree-inline.c (declare_return_variable): Remove unused caller
15693 * tree-flow-inline.h (clear_is_used, is_used_p): New.
15694 * cfgexpand.c (account_used_vars_for_block): Use them.
15695 * tree-nrv.c (tree_nrv): Likewise.
15696 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
15697 (dump_scope_block): Likewise.
15698 (remove_unused_locals): Likewise.
15702 * tree-inline.c (declare_return_variable): Add result decl to
15703 local decls only once.
15704 * gimple-low.c (record_vars_into): Mark newly-created variables
15707 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
15713 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
15715 (no_real_insns_p, schedule_block, set_priorities): Drop special
15716 treatment of boundary debug insns.
15717 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
15718 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
15719 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
15720 (BOUNDARY_DEBUG_INSN_P): Likewise.
15721 (SCHEDULE_DEBUG_INSN_P): Likewise.
15722 * sched-rgn.c (init_ready_list): Drop special treatment of
15723 boundary debug insns.
15724 * final.c (rest_of_clean_state): Clear notes' BB.
15726 2011-02-01 Joseph Myers <joseph@codesourcery.com>
15728 * config/openbsd.opt (assert=): New Driver option.
15730 2011-02-01 Joseph Myers <joseph@codesourcery.com>
15732 * config/i386/nto.opt: New.
15733 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
15735 2011-02-01 Joseph Myers <joseph@codesourcery.com>
15737 * config/i386/netware.opt: New.
15738 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
15740 2011-02-01 Joseph Myers <joseph@codesourcery.com>
15742 * config/interix.opt (posix): New Driver option.
15744 2011-02-01 DJ Delorie <dj@redhat.com>
15746 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
15748 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
15751 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
15753 PR tree-optimization/47561
15754 * toplev.c (process_options): Print the Graphite flags. Add
15755 flag_loop_flatten to the list of options requiring Graphite.
15757 2011-02-01 Joseph Myers <joseph@codesourcery.com>
15759 * config/i386/cygming.opt (posix): New Driver option.
15761 2011-02-01 Joseph Myers <joseph@codesourcery.com>
15763 * config/arm/vxworks.opt: New.
15764 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
15766 2011-02-01 Joseph Myers <joseph@codesourcery.com>
15768 * config/alpha/elf.opt: New.
15769 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
15770 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
15772 2011-02-01 Richard Guenther <rguenther@suse.de>
15774 PR tree-optimization/47559
15775 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
15776 store-motion on references that can throw.
15778 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
15780 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
15781 * tree-pass.h (TDF_CSELIB): New macro.
15782 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
15783 cselib_lookup): Check for it rather than for TDF_DETAILS.
15785 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
15788 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
15789 is HOST_BIT_BUCKET.
15791 * opts.c (finish_options): Don't add x_aux_base_name if it is
15794 2011-02-01 Richard Guenther <rguenther@suse.de>
15796 PR tree-optimization/47555
15798 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
15800 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15802 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
15805 * config/lm32/t-lm32: Add multilib for all CPU options.
15807 2011-02-01 Richard Guenther <rguenther@suse.de>
15809 PR tree-optimization/47541
15810 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
15811 sure to have a field at offset zero.
15813 2011-01-31 Joseph Myers <joseph@codesourcery.com>
15815 * config/arc/arc.opt (EB, EL): New Driver options.
15817 2011-01-31 Joseph Myers <joseph@codesourcery.com>
15819 * config/alpha/osf5.opt: New.
15820 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
15822 2011-01-31 Joseph Myers <joseph@codesourcery.com>
15824 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
15826 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
15828 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
15829 -floop-interchange.
15830 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
15831 is an alias of -floop-interchange and that it requires the
15832 Graphite infrastructure.
15833 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
15834 flag_loop_interchange based on the value of flag_tree_loop_linear.
15836 2011-01-31 Jakub Jelinek <jakub@redhat.com>
15837 Richard Guenther <rguenther@suse.de>
15839 PR tree-optimization/47538
15840 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
15841 type instead of r1type, except for comparisons. For right
15842 shifts and comparisons punt if there are mismatches in
15843 sizetype vs. non-sizetype types.
15845 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15847 * doc/sourcebuild.texi (Effective-Target Keywords): Document
15850 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15852 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
15854 * configure: Regenerate.
15856 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15858 * configure.ac (gcc_cv_ld_static_option): Define.
15859 (gcc_cv_ld_dynamic_option): Define.
15860 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
15862 (HAVE_LD_STATIC_DYNAMIC): Update message.
15863 (LD_STATIC_OPTION): Define.
15864 (LD_DYNAMIC_OPTION): Define.
15865 * configure: Regenerate.
15866 * config.in: Regenerate.
15867 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
15868 HAVE_LD_STATIC_DYNAMIC]: Use them.
15870 2011-01-31 Nick Clifton <nickc@redhat.com>
15872 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
15873 registers inside interrupt handlers if the handler is not a leaf
15876 2011-01-31 Nick Clifton <nickc@redhat.com>
15878 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
15879 reg_renumber returning an INVALID_REGNUM.
15881 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
15884 * doc/install.texi: Document host options discarded when cross
15885 configuring target libraries.
15887 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
15890 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
15893 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
15895 (no_real_insns_p, schedule_block, set_priorities): Drop special
15896 treatment of boundary debug insns.
15897 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
15898 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
15899 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
15900 (BOUNDARY_DEBUG_INSN_P): Likewise.
15901 (SCHEDULE_DEBUG_INSN_P): Likewise.
15902 * sched-rgn.c (init_ready_list): Drop special treatment of
15903 boundary debug insns.
15904 * final.c (rest_of_clean-state): Clear notes' BB.
15906 2011-01-31 Alan Modra <amodra@gmail.com>
15908 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
15909 toc relative expressions as we do in print_operand_address.
15911 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
15913 * doc/extend.texi: Follow spelling conventions.
15914 * doc/invoke.texi: Fix a typo.
15916 2011-01-30 Joseph Myers <joseph@codesourcery.com>
15918 * config/hpux11.opt: New.
15919 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
15920 ia64*-*-hpux*): Use hpux11.opt.
15922 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
15924 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
15927 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
15929 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
15932 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
15934 * doc/install.texi (Binaries): Remove outdated reference for
15935 Motorola 68HC11/68HC12 downloads.
15937 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
15939 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
15942 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
15945 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
15948 2011-01-28 Ahmad Sharif <asharif@google.com>
15950 * value-prof.c (check_counter): Corrected error message.
15952 2011-01-29 Jie Zhang <jie@codesourcery.com>
15954 * config/arm/arm.c (arm_legitimize_reload_address): New.
15955 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
15956 arm_legitimize_reload_address.
15957 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
15959 2011-01-28 Ian Lance Taylor <iant@google.com>
15961 * godump.c (go_define): Ignore macros whose definitions include
15962 two adjacent operands.
15964 2011-01-28 Jakub Jelinek <jakub@redhat.com>
15967 * varasm.c (force_const_mem): Store copy of x in desc->constant
15968 instead of x itself.
15969 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
15970 itself into REG_EQUAL note.
15972 2011-01-28 Joseph Myers <joseph@codesourcery.com>
15974 * config/freebsd.opt (posix, rdynamic): New Driver options.
15976 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15978 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
15979 -Bstatic/-Bdynamic.
15980 * configure: Regenerate.
15982 2011-01-27 Joseph Myers <joseph@codesourcery.com>
15984 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
15985 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
15987 2011-01-27 Anatoly Sokolov <aesok@post.ru>
15989 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
15990 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
15991 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
15992 (s390_preferred_reload_class): Make static. Change return and
15993 'rclass' argument type to reg_class_t.
15995 2011-01-27 Jan Hubicka <jh@suse.cz>
15997 PR middle-end/46949
15998 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
15999 (process_function_and_variable_attributes): Check defined weakrefs.
16001 2011-01-27 Martin Jambor <mjambor@suse.cz>
16003 PR tree-optimization/47228
16004 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
16005 build_ref_for_offset.
16007 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16009 * config/spu/spu-elf.h (ASM_SPEC): Remove.
16011 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
16013 PR rtl-optimization/46856
16014 * postreload.c (reload_combine_recognize_const_pattern): Do not
16015 separate cc0 setter and user on cc0 targets.
16017 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
16020 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
16021 passed a VOID_TYPE expression, immediately emit an error and
16022 return error_mark_node.
16024 2011-01-26 Jeff Law <law@redhat.com>
16026 PR rtl-optimization/47464
16027 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
16028 rather than may_trap_p as needed.
16030 2011-01-26 DJ Delorie <dj@redhat.com>
16032 PR rtl-optimization/46878
16033 * combine.c (insn_a_feeds_b): Check for the implicit cc0
16034 setter/user dependency as well.
16036 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
16038 PR rtl-optimization/44469
16039 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
16040 after removing trivially dead basic blocks.
16042 2011-01-26 Joseph Myers <joseph@codesourcery.com>
16044 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
16045 * config/frv/frv.h (LINK_SPEC): Likewise.
16046 * config/i386/netware.h (LINK_SPEC): Likewise.
16047 * config/m68k/linux.h (ASM_SPEC): Likewise.
16048 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
16049 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
16050 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16051 * config/sparc/linux.h (ASM_SPEC): Likewise.
16052 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16053 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16055 2011-01-26 Joseph Myers <joseph@codesourcery.com>
16057 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
16058 * config/frv/frv.h (ASM_SPEC): Likewise.
16059 * config/m68k/linux.h (ASM_SPEC): Likewise.
16060 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
16061 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
16062 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16063 * config/sparc/linux.h (ASM_SPEC): Likewise.
16064 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16065 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16067 2011-01-26 Joseph Myers <joseph@codesourcery.com>
16069 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
16070 * config/frv/frv.h (LINK_SPEC): Likewise.
16071 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
16073 2011-01-26 Joseph Myers <joseph@codesourcery.com>
16075 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
16076 * config/frv/frv.h (ASM_SPEC): Likewise.
16077 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
16078 * config/m68k/linux.h (ASM_SPEC): Likewise.
16079 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
16080 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
16081 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16082 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
16083 * config/sparc/linux.h (ASM_SPEC): Likewise.
16084 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16085 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16086 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
16088 2011-01-26 Steve Ellcey <sje@cup.hp.com>
16091 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
16093 (vec_extract_evenodd_help): Ditto.
16094 (vec_extract_evenv4hi): Ditto.
16095 (vec_extract_oddv4hi): Ditto.
16096 (vec_interleave_lowv2si): Ditto.
16097 (vec_interleave_highv2si): Ditto.
16098 (vec_extract_evenv2si): Ditto.
16099 (vec_extract_oddv2si: Ditto.
16100 (vec_pack_trunc_v2si): Ditto.
16102 2011-01-22 Jan Hubicka <jh@suse.cz>
16105 * cgraph.h (cgraph_local_info): New field can_change_signature.
16106 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
16107 signature can change.
16108 (ipcp_estimate_growth): Call sequence simplify only if calle signature
16110 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
16111 (cgraph_function_versioning): We can not change signature of functions
16112 that don't allow that.
16113 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
16114 (lto_input_node): Likewise.
16115 * ipa-inline.c (compute_inline_parameters): Compute
16116 local.can_change_signature.
16117 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
16118 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
16119 functions that can not change signature.
16120 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
16121 init_cumulative_args): Do not use local calling conventions
16122 for functions that can not change signature.
16124 2011-01-22 Jan Hubicka <jh@suse.cz>
16126 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
16128 2011-01-26 Richard Guenther <rguenther@suse.de>
16130 PR tree-optimization/47190
16131 * cgraphunit.c (process_common_attributes): New function.
16132 (process_function_and_variable_attributes): Use it.
16134 2011-01-26 Richard Guenther <rguenther@suse.de>
16137 * cgraphbuild.c (record_eh_tables): Record reference to personality
16140 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
16143 * sel-sched.c (moveup_expr): Don't let debug insns prevent
16144 non-debug insns from moving up.
16146 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
16149 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
16150 t-dlldir{,-x} fragment for build and add it to tmake_file.
16151 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
16152 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
16153 * config/i386/t-dlldir: New file.
16154 (SHLIB_DLLDIR): Define.
16155 * config/i386/t-dlldir-x: New file.
16156 (SHLIB_DLLDIR): Define.
16157 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
16158 (SHLIB_INSTALL): Use it.
16160 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
16163 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
16164 lower bound of the allowed Thumb-2 coprocessor load/store
16165 index range to -256. Add explaining comment.
16167 2011-01-25 Ian Lance Taylor <iant@google.com>
16169 * godump.c (go_define): Improve lexing of macro expansion to only
16170 accept expressions which match Go spec.
16172 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
16175 * tree.c (handle_dll_attribute): Handle it.
16176 * doc/extend.texi (@item dllexport): Mention it.
16177 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
16179 2011-01-25 Ian Lance Taylor <iant@google.com>
16181 PR tree-optimization/26854
16182 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
16183 (decl_jump_unsafe): Move higher in file, with no other change.
16184 (bind): Set has_jump_unsafe_decl if appropriate.
16185 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
16186 (check_earlier_gotos): Likewise.
16187 (c_check_switch_jump_warnings): Likewise.
16189 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
16191 * doc/invoke.texi (Warning Options): Add missing hyphen.
16192 (-fprofile-dir): Minor grammatical fixes.
16193 (-fbranch-probabilities): Likewise.
16195 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
16199 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
16201 (no_real_insns_p, schedule_block, set_priorities): Drop special
16202 treatment of boundary debug insns.
16203 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
16204 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
16205 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
16206 (BOUNDARY_DEBUG_INSN_P): Likewise.
16207 (SCHEDULE_DEBUG_INSN_P): Likewise.
16208 * sched-rgn.c (init_ready_list): Drop special treatment of
16209 boundary debug insns.
16210 * final.c (rest_of_clean-state): Clear notes' BB.
16212 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16214 * Makefile.in (LAMBDA_H): Removed.
16215 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
16216 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
16217 lambda-trans.o, and tree-loop-linear.o.
16218 (lto-symtab.o): Remove dependence on LAMBDA_H.
16219 (tree-loop-linear.o): Remove rule.
16220 (lambda-mat.o): Same.
16221 (lambda-trans.o): Same.
16222 (lambda-code.o): Same.
16223 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
16224 (tree-vect-slp.o): Same.
16225 * hwint.h (gcd): Moved here.
16226 (least_common_multiple): Same.
16227 * lambda-code.c: Removed.
16228 * lambda-mat.c: Removed.
16229 * lambda-trans.c: Removed.
16230 * lambda.h: Removed.
16231 * tree-loop-linear.c: Removed.
16232 * lto-symtab.c: Do not include lambda.h.
16233 * omega.c (gcd): Removed.
16234 * passes.c (init_optimization_passes): Remove pass_linear_transform.
16235 * tree-data-ref.c (print_lambda_vector): Moved here.
16236 (lambda_vector_copy): Same.
16237 (lambda_matrix_copy): Same.
16238 (lambda_matrix_id): Same.
16239 (lambda_vector_first_nz): Same.
16240 (lambda_matrix_row_add): Same.
16241 (lambda_matrix_row_exchange): Same.
16242 (lambda_vector_mult_const): Same.
16243 (lambda_vector_negate): Same.
16244 (lambda_matrix_row_negate): Same.
16245 (lambda_vector_equal): Same.
16246 (lambda_matrix_right_hermite): Same.
16247 * tree-data-ref.h: Do not include lambda.h.
16248 (lambda_vector): Moved here.
16249 (lambda_matrix): Same.
16250 (dependence_level): Same.
16251 (lambda_transform_legal_p): Removed declaration.
16252 (lambda_collect_parameters): Same.
16253 (lambda_compute_access_matrices): Same.
16254 (lambda_vector_gcd): Same.
16255 (lambda_vector_new): Same.
16256 (lambda_vector_clear): Same.
16257 (lambda_vector_lexico_pos): Same.
16258 (lambda_vector_zerop): Same.
16259 (lambda_matrix_new): Same.
16260 * tree-flow.h (least_common_multiple): Removed declaration.
16261 * tree-parloops.c (lambda_trans_matrix): Moved here.
16262 (LTM_MATRIX): Same.
16263 (LTM_ROWSIZE): Same.
16264 (LTM_COLSIZE): Same.
16265 (LTM_DENOMINATOR): Same.
16266 (lambda_trans_matrix_new): Same.
16267 (lambda_matrix_vector_mult): Same.
16268 (lambda_transform_legal_p): Same.
16269 * tree-pass.h (pass_linear_transform): Removed declaration.
16270 * tree-ssa-loop.c (tree_linear_transform): Removed.
16271 (gate_tree_linear_transform): Removed.
16272 (pass_linear_transform): Removed.
16273 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
16274 flag_loop_interchange.
16276 2011-01-25 Jakub Jelinek <jakub@redhat.com>
16278 PR tree-optimization/47265
16279 PR tree-optimization/47443
16280 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
16281 if name still has some uses.
16283 2011-01-25 Martin Jambor <mjambor@suse.cz>
16285 PR tree-optimization/47382
16286 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
16287 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
16289 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
16291 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
16292 sjlj_except_unwind_info.
16294 2011-01-25 Richard Guenther <rguenther@suse.de>
16296 PR tree-optimization/47426
16297 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
16298 visible functions results escape.
16300 2011-01-25 Jakub Jelinek <jakub@redhat.com>
16303 * config/arm/arm.c (any_sibcall_uses_r3): New function.
16304 (arm_get_frame_offsets): Use it.
16306 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16307 Jakub Jelinek <jakub@redhat.com>
16309 PR tree-optimization/47271
16310 * tree-if-conv.c (bb_postdominates_preds): New.
16311 (if_convertible_bb_p): Call bb_postdominates_preds.
16312 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
16313 (predicate_scalar_phi): Call bb_postdominates_preds.
16315 2011-01-25 Nick Clifton <nickc@redhat.com>
16317 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
16318 * config/rx/rx.c (rx_function_value): Likewise.
16319 (rx_promote_function_mode): Likewise.
16320 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
16321 in order to make it legitimate.
16322 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
16323 make sure that the first operand is the same as the result register.
16324 (addsi3_unspec): Delete.
16325 (subdi3): Do not accept immediate operands.
16326 (subdi3_internal): Likewise.
16328 2011-01-25 Jeff Law <law@redhat.com>
16330 PR rtl-optimization/37273
16331 * ira-costs.c (scan_one_insn): Detect constants living in memory and
16332 handle them like argument loads from stack slots. Do not double
16333 count memory for memory constants and argument loads from stack slots.
16335 2011-01-25 Jakub Jelinek <jakub@redhat.com>
16337 PR tree-optimization/47427
16338 PR tree-optimization/47428
16339 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
16340 coalesce if the new root var would be TREE_READONLY.
16342 2011-01-25 Richard Guenther <rguenther@suse.de>
16344 PR middle-end/47414
16345 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
16346 correct type for TBAA.
16348 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16350 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
16351 (close_phi_written_to_memory): Call for_each_index with
16352 dr_indices_valid_in_loop.
16354 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16356 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
16357 when it is initialized.
16359 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16361 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
16362 call to graphite_find_data_references_in_stmt.
16363 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
16364 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
16365 call to graphite_find_data_references_in_stmt.
16366 (analyze_drs_in_stmts): Same.
16367 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
16368 in which the scalar analysis of indices is performed.
16369 (create_data_ref): Same. Update call to dr_analyze_indices.
16370 (find_data_references_in_stmt): Update call to create_data_ref.
16371 (graphite_find_data_references_in_stmt): Same.
16372 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
16374 (create_data_ref): Same.
16375 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
16376 call to create_data_ref.
16378 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16380 * graphite-sese-to-poly.c (build_poly_scop): Move
16381 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
16383 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16385 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
16386 VAR_DECL, PARM_DECL, and RESULT_DECL.
16388 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16390 * graphite-dependences.c (reduction_dr_1): Allow several reductions
16391 in a reduction PBB.
16392 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
16393 that have already been marked as PBB_IS_REDUCTION.
16395 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16397 * graphite-scop-detection.c (same_close_phi_node): New.
16398 (remove_duplicate_close_phi): New.
16399 (make_close_phi_nodes_unique): New.
16400 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
16402 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16404 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
16405 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
16406 of both data references to be the same.
16408 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16410 * graphite-dependences.c (build_lexicographical_constraint): Remove
16411 the gdim parameter.
16412 (build_lexicographical_constraint): Adjust call to
16413 ppl_powerset_is_empty.
16414 (dependence_polyhedron): Same.
16415 (graphite_legal_transform_dr): Same.
16416 (graphite_carried_dependence_level_k): Same.
16417 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
16419 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
16421 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16423 * graphite-sese-to-poly.c
16424 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
16425 (close_phi_written_to_memory): New.
16426 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
16429 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16431 * doc/install.texi: Update the expected version number of PPL to 0.11.
16432 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
16433 #if PPL_VERSION_MINOR < 11.
16435 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16437 * graphite-dependences.c: Include graphite-cloog-util.h.
16438 (new_poly_ddr): Inlined into dependence_polyhedron.
16439 (free_poly_ddr): Moved close by new_poly_ddr.
16440 (dependence_polyhedron_1): Renamed dependence_polyhedron.
16441 Early return NULL when ppl_powerset_is_empty returns true.
16442 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
16443 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
16444 (graphite_legal_transform_dr): Call new_poly_ddr.
16445 (graphite_carried_dependence_level_k): Same.
16446 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
16447 (dot_transformed_deps_stmt_1): Removed.
16448 (dot_deps_stmt_1): Call dot_deps_stmt_2.
16449 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
16450 (dot_deps_1): Call dot_deps_2.
16451 * Makefile.in (graphite-dependences.o): Add missing dependence on
16452 graphite-cloog-util.h.
16454 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16456 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
16457 (build_lexicographical_constraint): Same.
16458 (dependence_polyhedron_1): Same.
16459 (graphite_legal_transform_dr): Same.
16460 (graphite_carried_dependence_level_k): Same.
16461 * graphite-ppl.c (ppl_powerset_is_empty): New.
16462 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
16463 * tree-data-ref.c (dump_data_reference): Print the basic block index.
16465 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16467 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
16468 the "a followed by b" relation and document it.
16470 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16472 * graphite-dependences.c (build_lexicographical_constraint): Stop the
16473 iteration when the bag of constraints is empty.
16475 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16477 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
16479 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16481 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
16482 nest and two loop depths as parameters.
16483 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
16484 lst_perfect_nestify.
16486 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16488 * graphite-dependences.c (print_pddr): Call
16489 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
16491 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16493 * graphite-ppl.c (debug_gmp_value): New.
16494 * graphite-ppl.h (debug_gmp_value): Declared.
16496 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
16498 * doc/install.texi: Document availability of cloog-0.16.
16500 2011-01-25 Vladimir Kargov <kargov@gmail.com>
16502 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
16503 invalid postdominance info.
16505 2011-01-24 Jan Hubicka <jh@suse.cz>
16508 * doc/extend.texi (weak pragma): Drop claim that it must
16509 appear before definition.
16510 * varasm.c (merge_weak, declare_weak): Only sanity check
16511 that DECL is not output at a time it is declared weak.
16513 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
16515 * machmode.def: Fixed comments.
16517 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
16519 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
16521 2011-01-24 Paul Koning <ni1d@arrl.net>
16523 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
16526 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
16529 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
16530 (block_info): Add scanned and prev.
16531 (move_or_delete_vzeroupper_2): Return if the basic block
16532 has been scanned and the upper 128bit state is unchanged
16533 from the last scan.
16534 (move_or_delete_vzeroupper_1): Return true if the exit
16536 (move_or_delete_vzeroupper): Visit basic blocks using the
16537 work-list based algorithm based on vt_find_locations in
16540 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
16542 2011-01-24 Nick Clifton <nickc@redhat.com>
16544 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
16545 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
16546 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
16547 then define __v850e1__.
16548 * doc/invoke.texi: Document -mv850es.
16550 2011-01-24 Richard Henderson <rth@redhat.com>
16552 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
16553 compound unordered comparisons.
16554 * config/rx/rx.c (rx_split_fp_compare): Remove.
16555 * config/rx/rx-protos.h: Update.
16556 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
16557 (cbranchsf4): Don't call rx_split_fp_compare.
16558 (*cbranchsf4): Use rx_split_cbranch.
16559 (*cmpsf): Don't accept "i" constraint.
16560 (*conditional_branch): Only valid after reload.
16561 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
16563 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
16566 * config/rs6000/altivec.md (vector constant splitters): Add
16567 support for creating vector single precision constants if -mvsx is
16568 used and we would create the constant using Altivec primitives.
16570 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
16571 Richard Sandiford <rdsandiford@googlemail.com>
16573 PR rtl-optimization/47166
16574 * reload1.c (emit_reload_insns): Disable the spill_reg_store
16575 mechanism for PRE_MODIFY and POST_MODIFY.
16576 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
16579 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
16581 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
16583 2011-01-22 Jan Hubicka <jh@suse.cz>
16586 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
16588 2011-01-22 Jan Hubicka <jh@suse.cz>
16590 PR tree-optimization/43884
16592 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
16593 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
16595 2011-01-22 Anatoly Sokolov <aesok@post.ru>
16597 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
16598 * config/s390/s390.c (s390_register_move_cost,
16599 s390_memory_move_cost): New.
16600 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
16602 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16604 PR middle-end/47401
16605 * except.c (sjlj_assign_call_site_values): Move setting the
16606 crtl->uses_eh_lsda flag to ...
16607 (sjlj_mark_call_sites): ... here.
16608 (sjlj_emit_function_enter): Support NULL dispatch label.
16609 (sjlj_build_landing_pads): In a function with no landing pads
16610 that still has must-not-throw regions, generate code to register
16611 a personality function with empty LSDA.
16613 2011-01-21 Richard Henderson <rth@redhat.com>
16615 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
16617 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
16619 * compare-elim.c: New file.
16620 * Makefile.in (OBJS-common): Add it.
16621 (compare-elim.o): New.
16622 * common.opt (fcompare-elim): New.
16623 * opts.c (default_options_table): Add OPT_fcompare_elim.
16624 * tree-pass.h (pass_compare_elim_after_reload): New.
16625 * passes.c (init_optimization_passes): Add it.
16626 * recog.h: Protect against re-inclusion.
16627 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
16628 * doc/invoke.texi (-fcompare-elim): Document it.
16629 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
16630 * doc/tm.texi: Rebuild.
16632 2011-01-22 Nick Clifton <nickc@redhat.com>
16634 * config/rx/rx.md (cstoresf4): Pass comparison operator to
16635 rx_split_fp_compare.
16637 2011-01-22 Nick Clifton <nickc@redhat.com>
16639 * config/rx/rx.md (UNSPEC_CONST): New.
16640 (deallocate_and_return): Wrap the amount popped off the stack in
16641 an UNSPEC_CONST in order to stop it being rejected by
16642 -mmax-constant-size.
16643 (pop_and_return): Add a "(return)" rtx.
16644 (call): Drop the immediate operand.
16645 (call_internal): Likewise.
16646 (call_value): Likewise.
16647 (call_value_internal): Likewise.
16648 (sibcall_internal): Likewise.
16649 (sibcall_value_internal): Likewise.
16650 (sibcall): Likewise. Generate an explicit call using
16652 (sibcall_value): Likewise.
16653 (mov<>): FAIL if a constant operand is not legitimate.
16654 (addsi3_unpsec): New pattern.
16656 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
16657 (ok_for_max_constant): New function.
16658 (gen_safe_add): New function.
16659 (rx_expand_prologue): Use gen_safe_add.
16660 (rx_expand_epilogue): Likewise.
16661 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
16664 2011-01-21 Jeff Law <law@redhat.com>
16666 PR tree-optimization/47053
16667 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
16668 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
16669 statements are deleted.
16670 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
16671 is nonempty, then purge dead edges and cleanup the CFG.
16673 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
16676 Temporarily revert:
16677 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
16679 * tree-dfa.c (create_var_ann): Mark variable as used.
16681 2011-01-21 Jakub Jelinek <jakub@redhat.com>
16683 PR middle-end/45566
16684 * except.c (convert_to_eh_region_ranges): Emit queued no-region
16685 notes from other section in hot/cold partitioning even if
16686 last_action is -3. Increment call_site_base.
16688 PR rtl-optimization/47366
16689 * fwprop.c (forward_propagate_into): Return bool. If
16690 any changes are made, -fnon-call-exceptions is used and
16691 REG_EH_REGION note is present, call purge_dead_edges
16692 and return true if it purged anything.
16693 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
16694 any EH edges were purged.
16696 2011-01-21 Jeff Law <law@redhat.com>
16698 PR rtl-optimization/41619
16699 * caller-save.c (setup_save_areas): Break out code to determine
16700 which hard regs are live across calls by examining the reload chains
16701 so that it is always used.
16702 Eliminate code which checked REG_N_CALLS_CROSSED.
16704 2011-01-21 Jakub Jelinek <jakub@redhat.com>
16706 PR tree-optimization/47355
16707 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
16708 NOP has non-debug uses beyond PHIs in new_bb.
16710 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
16713 * cfgexpand.c (account_used_vars_for_block): Only account vars
16714 that are annotated as used.
16715 (estimated_stack_frame_size): Don't set TREE_USED.
16716 * tree-dfa.c (create_var_ann): Mark variable as used.
16718 2011-01-21 Richard Guenther <rguenther@suse.de>
16720 PR middle-end/47395
16721 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
16723 2011-01-21 Richard Guenther <rguenther@suse.de>
16725 PR tree-optimization/47365
16726 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
16727 (vn_reference_lookup_pieces): Adjust.
16728 (vn_reference_lookup): Likewise.
16729 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
16730 (vn_reference_lookup_3): Only look through kills if in
16731 VN_WALKREWRITE mode.
16732 (vn_reference_lookup_pieces): Adjust.
16733 (vn_reference_lookup): Likewise.
16734 (visit_reference_op_load): Likewise.
16735 (visit_reference_op_store): Likewise.
16736 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
16737 (compute_avail): Likewise.
16738 (eliminate): Likewise.
16740 2011-01-21 Jakub Jelinek <jakub@redhat.com>
16742 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
16743 DECL_IGNORED_P non-reg vars if they are used.
16745 PR tree-optimization/47391
16746 * varpool.c (const_value_known_p): Return false if
16749 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
16752 * config/i386/i386.c (ix86_local_alignment): Handle
16753 case for va_list_type_node is nil.
16754 (ix86_canonical_va_list_type): Likewise.
16756 2011-01-21 Alan Modra <amodra@gmail.com>
16758 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
16759 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
16761 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16763 * config/arm/arm.md (define_attr type): Rename f_load
16764 and f_store to f_fpa_load and f_fpa_store. Update.
16765 (write_conflict): Deal with rename fallout.
16766 (*push_fp_multi): Likewise.
16767 * config/arm/fpa.md (f_load): Use f_fpa_load.
16768 (f_store): Use f_fpa_store.
16769 (*movsf_fpa): Likewise.
16770 (*movdf_fpa): Likewise.
16771 (*movxf_fpa): Likewise.
16772 (*thumb2_movsf_fpa): Likewise.
16773 (*thumb2_movdf_fpa): Likewise.
16774 (*thumb2_movxf_fpa): Likewise.
16775 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
16776 f_loadd and f_stored.
16777 (*thumb2_movdi_vfp): Likewise.
16778 (*thumb2_movsf_vfp): Fix attribute to f_loads.
16779 (*thumb2_movsi_vfp): Likewise.
16780 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
16781 Use f_loads instead of f_load.
16782 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
16784 2011-01-20 Anatoly Sokolov <aesok@post.ru>
16786 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16787 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
16788 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16789 (xtensa_mode_dependent_address_p): New function.
16790 (constantpool_address_p): Make static. Change return type to bool.
16791 Change argument type to const_rtx. Use CONST_INT_P predicate.
16793 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
16796 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
16798 2011-01-20 Jakub Jelinek <jakub@redhat.com>
16801 * cfgexpand.c (expand_debug_expr): Instead of generating
16802 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
16805 2011-01-20 Richard Guenther <rguenther@suse.de>
16807 PR middle-end/47370
16808 * tree-inline.c (remap_gimple_op_r): Recurse manually for
16809 the pointer operand of MEM_REFs.
16811 2011-01-20 Jakub Jelinek <jakub@redhat.com>
16813 PR tree-optimization/46130
16814 * ipa-split.c (consider_split): If return_bb contains non-virtual
16815 PHIs other than for retval or if split_function would not adjust it,
16818 2011-01-20 Richard Guenther <rguenther@suse.de>
16820 PR tree-optimization/47167
16821 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
16822 Revert previous change, only avoid enumeral type changes.
16824 2011-01-19 Mike Stump <mikestump@comcast.net>
16826 * doc/tm.texi.in (BRANCH_COST): Englishify.
16827 * doc/tm.texi (BRANCH_COST): Likewise.
16829 2011-01-19 Dodji Seketeli <dodji@redhat.com>
16832 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
16833 (gen_scheduled_generic_parms_dies): New functions.
16834 (gen_struct_or_union_type_die): Schedule template parameters DIEs
16835 generation for the end of CU compilation.
16836 (dwarf2out_finish): Generate template parameters DIEs here.
16838 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
16841 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
16842 debug bind stmt on merge edges.
16844 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
16848 * function.c (instantiate_expr): Instantiate incoming rtl of
16849 implicit arguments, and recurse on VALUE_EXPRs.
16850 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
16851 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
16853 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
16855 * c-parser.c (c_parser_for_statement): Initialize
16856 collection_expression.
16858 2011-01-19 Joseph Myers <joseph@codesourcery.com>
16860 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
16862 2011-01-19 Joseph Myers <joseph@codesourcery.com>
16864 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
16865 (LINK_SHLIB_SPEC): Don't use %(link_path).
16866 (SUBTARGET_EXTRA_SPECS): Remove link_path.
16868 2011-01-19 Joseph Myers <joseph@codesourcery.com>
16870 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
16871 (NO_SHARED_LIB_SUPPORT): Remove.
16872 (LINK_SHLIB_SPEC): Remove one conditional definition.
16874 2011-01-19 Joseph Myers <joseph@codesourcery.com>
16876 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
16878 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
16879 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
16880 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
16881 %{call_shared} and conditionals on these options not being passed.
16882 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
16885 2011-01-19 Jakub Jelinek <jakub@redhat.com>
16887 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
16890 * ipa-split.c: Spelling fixes.
16892 2011-01-19 Richard Henderson <rth@redhat.com>
16894 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
16895 (*mulsi3): Likewise.
16897 * longlong.h [__mn10300__] (count_leading_zeros): New.
16898 [__mn10300__] (umul_ppmm, smul_ppmm): New.
16899 [__mn10300__] (add_ssaaaa, subddmmss): New.
16900 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
16901 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
16903 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16905 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
16907 2011-01-19 Richard Henderson <rth@redhat.com>
16909 * config/mn10300/mn10300.md (addsi3_flags): New.
16910 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
16911 (subsi3_flags, subc_internal, subdi3): New.
16912 (subdi3_internal, *subdi3_degenerate): New.
16913 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
16915 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
16916 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
16917 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
16918 * config/mn10300/mn10300-protos.h: Update.
16919 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
16920 (return_ret): Likewise. Rename from return_internal_regs.
16921 (return_internal): Remove.
16923 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
16924 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
16925 (mn10300_legitimate_constant_p): Likewise.
16926 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
16927 (mn10300_frame_size): New.
16928 (mn10300_expand_prologue): Use it.
16929 (mn10300_expand_epilogue): Likewise.
16930 (mn10300_initial_offset): Likewise.
16931 * config/mn10300/mn10300-protos.h: Update.
16932 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
16933 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
16934 (prologue, epilogue, return_internal): Tidy output code.
16935 (mn10300_store_multiple_operation, return): Likewise.
16936 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
16937 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
16938 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
16939 (load_pic, am33_load_pic): New.
16940 (mn10300_load_pic0, mn10300_load_pic1): New.
16942 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
16943 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
16944 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
16945 (cc_flags_for_mode, cc_flags_for_code): New.
16946 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
16947 overflow flag is not valid. Validate that the flags we need
16948 for the comparison are valid.
16949 (mn10300_output_cmp): Remove.
16950 (mn10300_output_add): New.
16951 (mn10300_select_cc_mode): Use cc_flags_for_code.
16952 (mn10300_split_cbranch): New.
16953 (mn10300_match_ccmode): New.
16954 (mn10300_split_and_operand_count): New.
16955 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
16957 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
16958 (addsi3): ... here. Use mn10300_output_add.
16959 (*addsi3_flags): New.
16960 (*am33_subsi3, *mn10300_subsi3): Merge...
16961 (subsi3): ... here. Use attribute isa.
16962 (*subsi3_flags): New.
16963 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
16965 (*am33_andsi3, *mn10300_andsi3): Merge...
16966 (andsi3): ... here.
16967 (*andsi3_flags): New.
16968 (andsi3 splitters): New.
16969 (*am33_iorsi3, *mn10300_iorsi3): Merge...
16970 (iorsi3): ... here.
16971 (*iorsi3_flags): New.
16972 (*am33_xorsi3, *mn10300_xorsi3): Merge...
16973 (xorsi3): ... here.
16974 (*xorsi3_flags): New.
16975 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
16976 (one_cmplsi2): ... here.
16977 (*one_cmplsi2_flags): New.
16978 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
16979 instead of "dax" in constraints. Use mn10300_split_cbranch.
16980 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
16981 use matching constraints to eliminate a self-comparison.
16982 (*integer_conditional_branch): Rename from integer_conditional_branch.
16983 Use int_mode_flags to match CC_REG.
16984 (*cbranchsi4_btst, *btstsi): New.
16985 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
16986 mn10300_split_cbranch.
16987 (*am33_cmpsf): Rename from am33_cmpsf.
16988 (*float_conditional_branch): Rename from float_conditional_branch.
16989 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
16990 (zero_extendqisi2): ... here.
16991 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
16992 (zero_extendhisi2): ... here.
16993 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
16994 (extendqisi2): ... here.
16995 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
16996 (extendhisi2): ... here.
16997 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
16998 (ashlsi3): ... here.
16999 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
17000 (lshrsi3): ... here.
17001 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
17002 (ashrsi3): ... here.
17003 (consecutive add peephole): Remove.
17004 * config/mn10300/predicates.md (label_ref_operand): New.
17005 (int_mode_flags): New.
17006 (CCZN_comparison_operator): New.
17008 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
17009 (throughput_42_latency_43): New reservation.
17010 (mulsidi3, umulsidi3): New expanders.
17011 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
17012 the MDR register to allocation; separately allocate the low and
17013 high parts of the DImode result.
17014 (umulsidi3_internal): Similarly.
17015 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
17016 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
17017 (udivsi3, umodsi3): Remove.
17018 (udivmodsi4, divmodsi4): New expanders.
17019 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
17020 (*divmodsi4): Simiarly.
17021 (ext_internal): New.
17023 * config/mn10300/constraints.md ("z"): New constraint.
17024 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
17025 (FIXED_REGISTERS): Don't fix MDR.
17026 (CALL_USED_REGSITERS): Reformat nicely.
17027 (REG_ALLOC_ORDER): Add MDR.
17028 (enum regclass): Add MDR_REGS.
17029 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
17030 (IRA_COVER_CLASSES): Add MDR_REGS.
17031 (REGNO_REG_CLASS): Handle MDR_REG.
17032 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
17033 (mn10300_register_move_cost): Likewise.
17034 * config/mn10300/mn10300.md (MDR_REG): New.
17035 (*movsi_internal): Handle moves to/from MDR_REGS.
17037 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
17039 (mn10300_secondary_reload): Tidy combination reload classes.
17040 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
17041 addresses for AM33. Allow symbolic offsets for reg+imm.
17042 (mn10300_regno_in_class_p): New.
17043 (mn10300_legitimize_reload_address): New.
17044 * config/mn10300/mn10300.h (enum reg_class): Remove
17045 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
17046 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
17047 SP_OR_GENERAL_REGS.
17048 (REG_CLASS_NAMES): Update to match.
17049 (REG_CLASS_CONTENTS): Likewise.
17050 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
17051 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
17052 (REGNO_IN_RANGE_P): Remove.
17053 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
17054 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
17055 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
17056 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
17057 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
17058 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
17059 (REGNO_GENERAL_P): New.
17060 (HAVE_POST_MODIFY_DISP): New.
17061 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
17062 (LEGITIMIZE_RELOAD_ADDRESS): New.
17063 * config/mn10300/mn10300-protos.h: Update.
17065 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
17066 DATA_REGS for AM33 stack-pointer destination.
17067 (mn10300_preferred_output_reload_class): Likewise.
17068 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
17069 into a form appropriate for ...
17070 (TARGET_SECONDARY_RELOAD): New.
17071 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
17072 * config/mn10300/mn10300-protos.h: Update.
17073 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
17074 reload_insi; use the "A" constraint for the scratch; handle AM33
17075 moves of sp to non-address registers.
17077 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
17078 (*movqi_internal): ... here.
17079 (*am33_movhi, *mn10300_movhi): Merge into...
17080 (*movhi_internal): ... here.
17081 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
17082 as the source/destination of moves from/to SP.
17083 (movsf): Only allow for AM33-2.
17084 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
17085 any integer constant constraint. Only allow for AM33-2. Tidy
17086 all of the alternative outputs.
17087 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
17088 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
17090 (udivsi3, umodsi3): New patterns for MN103 only.
17092 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
17094 * doc/tm.texi.in: Spell out that a lack of register class unions
17096 * doc/tm.texi: Regenerate.
17098 2011-01-19 Jakub Jelinek <jakub@redhat.com>
17100 PR rtl-optimization/47337
17101 * dce.c (check_argument_store): New function.
17102 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
17104 PR tree-optimization/47290
17105 * tree-eh.c (infinite_empty_loop_p): New function.
17106 (cleanup_empty_eh): Use it.
17108 2011-01-18 Steve Ellcey <sje@cup.hp.com>
17111 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
17112 (a64_expand_widen_sum): Ditto.
17113 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
17114 (vec_extract_evenodd_help): Ditto.
17115 (vec_extract_evenv4hi): Ditto.
17116 (vec_extract_oddv4hi): Ditto.
17117 (vec_extract_evenv2si): Ditto.
17118 (vec_extract_oddv2si): Ditto.
17119 (vec_extract_evenv2sf): Ditto.
17120 (vec_extract_oddv2sf): Ditto.
17121 (vec_pack_trunc_v4hi: Ditto.
17122 (vec_pack_trunc_v2si): Ditto.
17123 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
17124 (vec_interleave_highv8qi): Ditto.
17126 (vec_extract_oddv8qi): Ditto.
17127 (vec_interleave_lowv4hi): Ditto.
17128 (vec_interleave_highv4hi): Ditto.
17129 (vec_interleave_lowv2si): Ditto.
17130 (vec_interleave_highv2si): Ditto.
17132 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17134 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
17135 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
17136 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
17137 (pa_c_mode_for_suffix): New.
17138 (TARGET_EXPAND_BUILTIN): Define.
17139 (TARGET_C_MODE_FOR_SUFFIX): Define.
17140 (pa_builtins): Define.
17141 (pa_init_builtins): Register __float128 type and init new support
17143 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
17144 * config/pa/quadlib.c (_U_Qfcopysign): New.
17146 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
17148 PR middle-end/46894
17149 * explow.c (allocate_dynamic_stack_space): Do not assume more than
17150 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
17153 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17155 PR tree-optimization/47179
17156 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
17157 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
17159 2011-01-18 Richard Guenther <rguenther@suse.de>
17161 PR rtl-optimization/47216
17162 * emit-rtl.c: Include tree-flow.h.
17163 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
17164 of replicating it with different semantics.
17165 * Makefile.in (emit-rtl.o): Adjust.
17167 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17169 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
17170 (cortex_a9_dp): Handle neon types correctly.
17172 2011-01-18 Jakub Jelinek <jakub@redhat.com>
17174 PR rtl-optimization/47299
17175 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
17176 subtarget. Use normal multiplication if both operands are constants.
17177 * expmed.c (expand_widening_mult): Don't try to optimize constant
17178 multiplication if op0 has VOIDmode. Convert op1 constant to mode
17181 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17183 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
17184 spacing after 'e.g.', typos, comma, hyphenation.
17186 2011-01-17 Richard Henderson <rth@redhat.com>
17188 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
17189 (rx_restricted_mem_operand): New.
17190 (rx_shift_operand): Use register_operand.
17191 (rx_source_operand, rx_compare_operand): Likewise.
17192 * config/rx/rx.md (addsi3_flags): New expander.
17193 (adddi3): Rewrite as expander.
17194 (adc_internal, *adc_flags, adddi3_internal): New patterns.
17195 (subsi3_flags): New expander.
17196 (subdi3): Rewrite as expander.
17197 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
17199 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
17200 (rx_init_builtins): Remove sat builtin.
17201 (rx_expand_builtin): Likewise.
17202 * config/rx/rx.md (ssaddsi3): New.
17203 (*sat): Rename from sat. Represent the CC_REG input.
17205 * config/rx/predicates.md (rshift_operator): New.
17206 * config/rx/rx.c (rx_expand_insv): Remove.
17207 * config/rx/rx-protos.h: Update.
17208 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
17209 operand to the canonical position.
17210 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
17211 (*bitclr, *bitclr_in_memory): Similarly.
17212 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
17213 (insv): Retain the zero_extract in the expansion.
17215 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
17216 (bswaphi2, bitinvert, revw): Likewise.
17218 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
17219 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
17220 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
17221 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
17222 (bitset, bitset_in_memory): Likewise.
17223 (bitinvert, bitinvert_in_memory): Likewise.
17224 (bitclr, bitclr_in_memory): Likewise.
17225 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
17226 (rx_strend, rx_cmpstrn): Likewise.
17227 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
17228 (bitop peep2 patterns): Remove.
17230 * config/rx/rx.c (rx_match_ccmode): New.
17231 * config/rx/rx-protos.h: Update.
17232 * config/rx/rx.md (abssi2): Clobber, don't set flags.
17233 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
17234 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
17235 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
17236 (fix_truncsfsi2, floatsisf2): Likewise.
17237 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
17238 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
17239 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
17240 (*subsi3_flags, *xorsi3_flags): New.
17242 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
17244 * config/rx/rx.c (rx_print_operand): Remove workaround for
17245 unsplit comparison operations.
17247 * config/rx/rx.md (movsicc): Split after reload.
17248 (*movsicc): Merge *movsieq and *movsine via match_operator.
17249 (*stcc): New pattern.
17251 * config/rx/rx.c (rx_float_compare_mode): Remove.
17252 * config/rx/rx.h (rx_float_compare_mode): Remove.
17253 * config/rx/rx.md (cstoresi4): Split after reload.
17254 (*sccc): New pattern.
17256 * config/rx/predicates.md (label_ref_operand): New.
17257 (rx_z_comparison_operator): New.
17258 (rx_zs_comparison_operator): New.
17259 (rx_fp_comparison_operator): New.
17260 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
17261 Validate that the flags are set properly for the comparison.
17262 (rx_gen_cond_branch_template): Remove.
17263 (rx_cc_modes_compatible): Remove.
17264 (mode_from_flags): New.
17265 (flags_from_code): Rename from flags_needed_for_conditional.
17266 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
17267 (rx_select_cc_mode): Likewise.
17268 (rx_split_fp_compare): New.
17269 (rx_split_cbranch): New.
17270 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
17271 (*cbranchsi4): Use match_operator and rx_split_cbranch.
17272 (*cbranchsf4): Similarly.
17273 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
17274 match_operator and rx_split_cbranch.
17275 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
17276 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
17277 (*cmpsi): Rename from cmpsi.
17278 (*tstsi): Rename from tstsi.
17279 (*cmpsf): Rename from cmpsf; use CC_Fmode.
17280 (*conditional_branch): Rename from conditional_branch.
17281 (*reveresed_conditional_branch): Remove.
17282 (b<code>): Remove expander.
17283 * config/rx/rx-protos.h: Update.
17285 * config/rx/rx.c (rx_compare_redundant): Remove.
17286 * config/rx/rx.md (cmpsi): Don't use it.
17287 * config/rx/rx-protos.h: Update.
17289 * config/rx/rx-modes.def (CC_F): New mode.
17290 * config/rx/rx.c (rx_select_cc_mode): New.
17291 * config/rx/rx.h (SELECT_CC_MODE): Use it.
17292 * config/rx/rx-protos.h: Update.
17294 2011-01-17 Richard Henderson <rth@redhat.com>
17296 * except.c (dump_eh_tree): Fix stray ; after for statement.
17298 2011-01-17 Richard Guenther <rguenther@suse.de>
17300 PR tree-optimization/47313
17301 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
17302 handling before copying the body. Properly deal with
17303 by-reference result in SSA form.
17305 2011-01-17 Ian Lance Taylor <iant@google.com>
17308 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
17309 (struct_value_alias_set): Don't define.
17310 (sparc_option_override): Don't set sparc_sr_alias_set and
17311 struct_value_alias_set.
17312 (save_or_restore_regs): Use gen_frame_mem rather than calling
17314 (sparc_struct_value_rtx): Likewise.
17316 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
17319 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
17320 (_mm_maskstore_pd): Likewise.
17321 (_mm_maskload_ps): Likewise.
17322 (_mm_maskstore_ps): Likewise.
17323 (_mm256_maskload_pd): Change mask to __m256i.
17324 (_mm256_maskstore_pd): Likewise.
17325 (_mm256_maskload_ps): Likewise.
17326 (_mm256_maskstore_ps): Likewise.
17328 * config/i386/i386-builtin-types.def: Updated.
17329 (ix86_expand_special_args_builtin): Likewise.
17331 * config/i386/i386.c (bdesc_special_args): Update
17332 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
17333 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
17334 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
17335 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
17337 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
17338 Use <avxpermvecmode> on mask register.
17339 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
17341 2011-01-17 Olivier Hainque <hainque@adacore.com>
17342 Michael Haubenwallner <michael.haubenwallner@salomon.at>
17343 Eric Botcazou <ebotcazou@adacore.com>
17346 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
17347 if <= USHRT_MAX in 32-bit mode.
17349 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17351 * doc/install.texi (Configuration, Specific): Wrap long
17352 lines in examples. Allow line wrapping in long options
17353 and URLs where beneficial for PDF output.
17355 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
17357 * config/mips/mips.c (mips_classify_symbol): Don't return
17358 SYMBOL_PC_RELATIVE for nonlocal labels.
17360 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
17362 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
17364 2011-01-15 Jan Hubicka <jh@suse.cz>
17366 PR tree-optimization/47276
17367 * ipa.c (function_and_variable_visibility): Do not try to mark alias
17368 declarations as needed.
17370 2011-01-15 Martin Jambor <mjambor@suse.cz>
17372 * common.opt (fdevirtualize): New flag.
17373 * doc/invoke.texi (Option Summary): Document it.
17374 * opts.c (default_options_table): Add devirtualize flag.
17375 * ipa-prop.c (detect_type_change): Return immediately if
17376 devirtualize flag is not set.
17377 (detect_type_change_ssa): Likewise.
17378 (compute_known_type_jump_func): Likewise.
17379 (ipa_analyze_virtual_call_uses): Likewise.
17381 2011-01-14 Martin Jambor <mjambor@suse.cz>
17383 PR tree-optimization/45934
17384 PR tree-optimization/46302
17385 * ipa-prop.c (type_change_info): New type.
17386 (stmt_may_be_vtbl_ptr_store): New function.
17387 (check_stmt_for_type_change): Likewise.
17388 (detect_type_change): Likewise.
17389 (detect_type_change_ssa): Likewise.
17390 (compute_complex_assign_jump_func): Check for dynamic type change.
17391 (compute_complex_ancestor_jump_func): Likewise.
17392 (compute_known_type_jump_func): Likewise.
17393 (compute_scalar_jump_functions): Likewise.
17394 (ipa_analyze_virtual_call_uses): Likewise.
17395 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
17397 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17399 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
17400 * config/i386/i386.opt (msse5): New Alias.
17402 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17404 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
17405 * config/sparc/linux64.h (CC1_SPEC): Likewise.
17406 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
17407 * config/sparc/sparc.h (CC1_SPEC): Likewise.
17409 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17411 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
17413 * config/sparc/linux64.h (CC1_SPEC): Likewise.
17414 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
17415 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
17416 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
17418 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
17420 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17422 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
17424 2011-01-14 Mike Stump <mikestump@comcast.net>
17426 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
17427 * config/fr30/fr30.md: Likweise
17428 (movsi_push): Likewise.
17429 (movsi_pop): Likewise.
17430 (enter_func): Likewise.
17431 * config/moxie/moxie.md (movsi_push): Likewise.
17432 (movsi_pop): Likewise.
17434 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17436 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
17437 %{no_archive} %{exact_version}.
17438 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
17439 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
17440 %{no_archive} %{exact_version}.
17441 * config/mips/openbsd.h (LINK_SPEC): Likewise.
17442 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
17443 * config/mips/vxworks.h: Likewise.
17445 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17447 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
17449 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17451 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
17452 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
17454 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17456 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
17459 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17461 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
17463 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
17464 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
17466 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
17467 Don't handle -shlib.
17469 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17471 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
17472 (CC1_SPEC): Don't handle -profile.
17474 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17476 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
17477 * config/mips/mips.h (CC1_SPEC): Likewise.
17479 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17481 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
17482 * config/mips/mips.h (CC1_SPEC): Likewise.
17484 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17486 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
17487 * config/m32r/linux.h (LINK_SPEC): Likewise.
17488 * config/mips/linux.h (LINK_SPEC): Likewise.
17489 * config/mips/linux64.h (LINK_SPEC): Likewise.
17490 * config/sparc/linux.h (LINK_SPEC): Likewise.
17491 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
17492 LINK_SPEC): Likewise.
17493 * config/xtensa/linux.h (LINK_SPEC): Likewise.
17495 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17497 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
17499 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
17501 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17503 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
17504 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
17506 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17508 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
17510 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17512 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
17513 supports -Bstatic/-Bdynamic.
17514 * configure: Regenerate.
17516 2011-01-14 Jan Hubicka <jh@suse.cz>
17517 Jack Howarth <howarth@bromo.med.uc.edu>
17520 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
17521 when checking debug_info_level. Test write_symbols instead of
17522 debug_hooks->var_location when setting flag_var_tracking_uninit.
17524 2011-01-14 Richard Guenther <rguenther@suse.de>
17526 PR tree-optimization/47179
17527 * target.def (ref_may_alias_errno): New target hook.
17528 * targhooks.h (default_ref_may_alias_errno): Declare.
17529 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
17530 (default_ref_may_alias_errno): New function.
17531 * target.h (struct ao_ref_s): Declare.
17532 * tree-ssa-alias.c: Include target.h.
17533 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
17534 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
17535 (targhooks.o): Likewise.
17536 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
17537 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
17539 2011-01-14 Richard Guenther <rguenther@suse.de>
17541 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
17543 2011-01-14 Richard Guenther <rguenther@suse.de>
17545 PR tree-optimization/47280
17546 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
17547 return CFG changes.
17548 (tree_ssa_forward_propagate_single_use_vars): Deal with
17549 CFG changes from associate_plusminus.
17551 2011-01-14 Richard Guenther <rguenther@suse.de>
17553 PR middle-end/47281
17555 2011-01-11 Richard Guenther <rguenther@suse.de>
17557 PR tree-optimization/46076
17558 * tree-ssa.c (useless_type_conversion_p): Conversions from
17559 unprototyped to empty argument list function types are useless.
17561 2011-01-14 Richard Guenther <rguenther@suse.de>
17563 PR tree-optimization/47286
17564 * tree-ssa-structalias.c (new_var_info): Register variables are global.
17566 2011-01-14 Martin Jambor <mjambor@suse.cz>
17568 PR middle-end/46823
17569 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
17571 2011-01-13 Anatoly Sokolov <aesok@post.ru>
17573 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
17574 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17575 * config/xtensa/xtensa.c (xtensa_libcall_value,
17576 xtensa_function_value_regno_p): New functions.
17577 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
17579 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
17582 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
17584 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
17585 New function prototype.
17586 * config/i386/winnt.c (i386_pe_assemble_visibility):
17587 Warn only if attribute was specified by user.
17589 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
17592 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
17594 (floatunsdidf2_fcfidu): Ditto.
17596 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17598 * config/s390/s390.c (print_operand_address): Replace 'error' with
17599 'output_operand_lossage'.
17600 (print_operand): Likewise.
17602 2011-01-13 Jeff Law <law@redhat.com>
17604 PR rtl-optimization/39077
17605 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
17606 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
17607 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
17608 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
17609 * gcse.c (prune_insertions_deletions): New function.
17610 (compute_pre_data): Use it.
17612 2011-01-13 Dodji Seketeli <dodji@redhat.com>
17615 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
17617 (prune_unused_types_mark): Use it.
17619 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
17621 PR rtl-optimization/45352
17622 * sel-sched.c: Update copyright years.
17623 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
17624 in the advancing loop when we have issued issue_rate insns.
17626 2011-01-12 Richard Henderson <rth@redhat.com>
17628 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
17629 (TARGET_MD_ASM_CLOBBERS): New.
17631 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
17632 (TARGET_DELEGITIMIZE_ADDRESS): New.
17634 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
17635 (clzsi2, *bsch): New patterns.
17637 * config/mn10300/mn10300.md (INT): New mode iterator.
17638 (*mov<INT>_clr): New pattern, and peep2 to generate it.
17640 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
17641 flag_split_wide_types.
17643 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
17644 (mn10300_trampoline_init): Rewrite without a template, an immediate
17645 load and a direct branch.
17646 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
17648 2011-01-12 Anatoly Sokolov <aesok@post.ru>
17650 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17651 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
17652 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
17653 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17655 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
17658 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
17661 2011-01-12 Jan Hubicka <jh@suse.cz>
17664 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
17665 (PLUGIN_COND_CLOSE): New macro.
17666 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
17668 2011-01-12 Richard Guenther <rguenther@suse.de>
17671 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
17672 register variables in a MEM_REF.
17674 2011-01-12 Joseph Myers <joseph@codesourcery.com>
17676 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
17677 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
17678 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
17679 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
17680 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
17681 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
17682 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
17683 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
17684 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
17685 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
17686 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
17687 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
17688 * config/gnu-user.h: New. Copied from linux.h.
17689 (LINUX_TARGET_STARTFILE_SPEC): Rename to
17690 GNU_USER_TARGET_STARTFILE_SPEC.
17691 (LINUX_TARGET_ENDFILE_SPEC): Rename to
17692 GNU_USER_TARGET_ENDFILE_SPEC.
17693 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
17694 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
17695 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
17696 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
17697 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
17698 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
17699 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
17700 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
17701 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
17702 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
17703 * config/arm/linux-eabi.h (CC1_SPEC): Use
17704 GNU_USER_TARGET_CC1_SPEC.
17705 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
17706 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
17707 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
17708 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
17709 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
17710 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
17711 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
17712 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
17714 2011-01-12 Richard Guenther <rguenther@suse.de>
17717 * doc/invoke.texi (ffast-math): Document it is turned on
17720 2011-01-12 Jan Hubicka <jh@suse.cz>
17722 PR tree-optimization/47233
17723 * opts.c (common_handle_option): Disable ipa-reference with profile
17726 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
17728 * c-parser.c (c_parser_objc_at_property_declaration): Improved
17731 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
17733 * c-parser.c (c_lex_one_token): Updated and reindented some
17734 comments. No changes in code.
17736 2011-01-11 Ian Lance Taylor <iant@google.com>
17738 * godump.c (go_output_var): Don't output the variable if there is
17739 already a type with the same name.
17741 2011-01-11 Ian Lance Taylor <iant@google.com>
17743 * godump.c (go_format_type): Don't generate float80.
17745 2011-01-11 Richard Henderson <rth@redhat.com>
17747 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
17748 declaration. Rewrite for both speed and size.
17749 (mn10300_address_cost_1): Remove.
17750 (mn10300_register_move_cost): New.
17751 (mn10300_memory_move_cost): New.
17752 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
17753 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
17754 extensions, shifts, BSWAP, CLZ.
17755 (mn10300_wide_const_load_uses_clr): Remove.
17756 (TARGET_REGISTER_MOVE_COST): New.
17757 (TARGET_MEMORY_MOVE_COST): New.
17758 * config/mn10300/mn10300-protos.h: Update.
17759 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
17761 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
17762 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
17763 * config/mn10300/mn10300-protos.h: Update.
17764 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
17765 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
17766 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
17767 (*test_int_bitfield, *test_byte_bitfield): Remove.
17768 (*bit_test, *subreg_bit_test): Remove.
17769 * config/mn10300/predicates.md (const_8bit_operand): Remove.
17771 * config/mn10300/constraints.md ("c"): Rename from "A".
17772 ("A", "D"): New constraint letters.
17773 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
17774 (fmssf4, fnmasf4, fnmssf4): Likewise.
17776 * config/mn10300/mn10300.md (isa): New attribute.
17777 (enabled): New attribute.
17779 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
17780 (abssf2, negsf2): Define only for hardware fp.
17781 (sqrtsf2): Reformat.
17782 (addsf3, subsf3, mulsf3): Merge expander and insn.
17784 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
17785 (DEBUGGER_AUTO_OFFSET): Remove.
17786 (DEBUGGER_ARG_OFFSET): Remove.
17788 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
17789 Emit register stores with the same offsets as the hardware.
17790 (mn10300_store_multiple_operation): Don't check that the register
17791 save offsets are monotonic.
17792 * config/mn10300/mn10300-protos.h: Update.
17794 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
17796 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
17797 in terms of the value on the stack, not the MDR register.
17799 2011-01-11 Jan Hubicka <jh@suse.cz>
17803 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
17804 (symbol_alias_set_destroy, symbol_alias_set_contains,
17805 propagate_aliases_backward): Declare.
17806 * lto-streamer-out.c (struct sets): New sturcture.
17807 (trivally_defined_alias): New function.
17808 (output_alias_pair_p): Rewrite.
17809 (output_unreferenced_globals): Fix output of alias pairs.
17810 (produce_symtab): Likewise.
17811 * ipa.c (function_and_variable_visibility): Set weak alias destination
17813 * varasm.c (symbol_alias_set_t): Remove.
17814 (symbol_alias_set_destroy): Export.
17815 (propagate_aliases_forward, propagate_aliases_backward): New functions
17817 (compute_visible_aliases): ... this one; remove.
17818 (trivially_visible_alias): New
17819 (trivially_defined_alias): New.
17820 (remove_unreachable_alias_pairs): Rewrite.
17821 (finish_aliases_1): Reorganize code checking if alias is defined.
17822 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
17825 2011-01-11 Richard Guenther <rguenther@suse.de>
17827 PR tree-optimization/46076
17828 * tree-ssa.c (useless_type_conversion_p): Conversions from
17829 unprototyped to empty argument list function types are useless.
17831 2011-01-11 Richard Guenther <rguenther@suse.de>
17833 PR middle-end/45235
17834 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
17835 volatile MEMs as MEM_READONLY_P.
17837 2011-01-11 Richard Guenther <rguenther@suse.de>
17839 PR tree-optimization/47239
17840 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
17842 2011-01-11 Jeff Law <law@redhat.com>
17844 PR tree-optimization/47086
17845 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
17846 IVs from statements that might throw.
17848 2011-01-10 Jan Hubicka <jh@suse.cz>
17851 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
17853 2011-01-10 Jan Hubicka <jh@suse.cz>
17856 * profile.c (read_profile_edge_counts): Ignore profile inconistency
17857 when correcting profile.
17859 2011-01-10 Jan Hubicka <jh@suse.cz>
17862 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
17863 DECL_FINI_PRIORITY.
17864 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
17865 Restore DECL_FINI_PRIORITY.
17867 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17869 * doc/gimple.texi: Fix quoting of multi-word return values in
17870 @deftypefn statements. Ensure presence of return value. Wrap
17871 overlong @deftypefn lines.
17872 (is_gimple_operand, is_gimple_min_invariant_address): Remove
17873 descriptions of removed functions.
17874 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
17875 of multi-word return value in @deftypefn statement.
17877 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17879 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
17880 (Conditional Expressions, Logical Operators)
17881 (Statement and operand traversals): Do not indent smallexample
17882 code. Fix duplicate function argument in example.
17884 2011-01-10 Jeff Law <law@redhat.com>
17886 PR tree-optimization/47141
17887 * ipa-split.c (split_function): Handle case where we are
17888 returning a value and the return block has a virtual operand phi.
17890 2011-01-10 Jan Hubicka <jh@suse.cz>
17892 PR tree-optimization/47234
17893 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
17894 (pass_feedback_split_functions): Declare.
17895 * passes.c (init_optimization_passes): Add ipa-split as subpass of
17897 * ipa-split.c (gate_split_functions): Update comments; disable
17898 split-functions for profile_arc_flag and branch_probabilities.
17899 (gate_feedback_split_functions): New function.
17900 (execute_feedback_split_functions): New function.
17901 (pass_feedback_split_functions): New global var.
17903 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
17906 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
17907 calling gimple_call_set_cannot_inline.
17909 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
17911 * config/darwin-sections.def: Remove unused section.
17913 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
17916 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
17918 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
17921 * c-parser.c (c_parser_declaration_or_fndef): Improved
17924 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
17926 * config/i386/winnt.c (i386_pe_start_function): Make sure
17927 to switch back to function's section.
17929 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
17933 * plugin.c: Move include of dlfcn.h from here...
17934 * system.h: ... to here.
17936 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17938 * doc/cpp.texi (C++ Named Operators): Fix markup for header
17940 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
17941 two extra empty pages in PDF output.
17943 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
17946 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
17947 for error recovery purposes behave as if it was not specified so
17948 that the default type is usd.
17950 2011-01-07 Jan Hubicka <jh@suse.cz>
17952 PR tree-optmization/46469
17953 * ipa.c (function_and_variable_visibility): Clear needed flags on
17954 nodes with external decls; handle weakrefs merging correctly.
17956 2011-01-07 Joseph Myers <joseph@codesourcery.com>
17958 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
17961 2011-01-07 Jan Hubicka <jh@suse.cz>
17963 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
17964 and no longer claim that gold is required for linker plugin.
17965 * configure: Regenerate.
17966 * gcc.c (PLUGIN_COND): New macro.
17967 (LINK_COMMAND_SPEC): Use it.
17968 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
17969 * config.in (HAVE_LTO_PLUGIN): New.
17970 * configure.ac (--with-lto-plugin): New parameter; autodetect
17973 2011-01-07 Jan Hubicka <jh@suse.cz>
17975 PR tree-optimization/46367
17976 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
17977 when we can update original.
17978 (cgraph_mark_inline_edge): Sanity check.
17979 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
17981 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17983 * config/spu/spu.h (ASM_COMMENT_START): Define.
17985 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
17988 * gcc.c (%>S): New.
17989 (SWITCH_KEEP_FOR_GCC): Likewise.
17990 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
17991 (do_spec_1): Handle "%>".
17993 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
17995 2011-01-07 Jakub Jelinek <jakub@redhat.com>
17998 * config/i386/i386.c (ix86_delegitimize_address): If
17999 simplify_gen_subreg fails, return orig_x.
18002 * value-prof.c (gimple_stringop_fixed_value): Handle
18003 lhs of the call properly.
18005 2011-01-07 Jan Hubicka <jh@suse.cz>
18008 * lto-opt.c (lto_reissue_options): Set flag_shlib.
18010 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
18012 * target.def (function_switched_text_sections): New hook.
18013 * doc/tm.texi: Regenerated.
18014 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
18015 * final.c (default_function_switched_text_sections): New.
18016 (final_scan_insn): Call function_switched_text_sections when a
18017 mid-function section change occurs.
18018 * output.h (default_function_switched_text_sections): Declare.
18019 * config/darwin-protos.h (darwin_function_switched_text_sections):
18021 * config/darwin.c (darwin_function_switched_text_sections): New.
18022 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
18024 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
18026 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
18027 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
18028 the secondary code fragment when outputting for DWARF == 2.
18030 2011-01-07 Anatoly Sokolov <aesok@post.ru>
18032 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18033 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
18035 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
18036 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18038 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
18041 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
18042 when it is not empty.
18044 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
18047 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
18048 (case ${target}): Add btver1.
18049 * config/i386/driver-i386.c (host_detect_local_cpu): Let
18050 -march=native recognize btver1 processors.
18051 * config/i386/i386-c.c (ix86_target_macros_internal): Add
18052 btver1 def_and_undef
18053 * config/i386/i386.c (struct processor_costs btver1_cost): New
18055 (m_BTVER1): New definition.
18056 (m_AMD_MULTIPLE): Includes m_BTVER1.
18057 (initial_ix86_tune_features): Add btver1 tune.
18058 (processor_target_table): Add btver1 entry.
18059 (static const char *const cpu_names): Add btver1 entry.
18060 (software_prefetching_beneficial_p): Add btver1.
18061 (ix86_option_override_internal): Add btver1 instruction sets.
18062 (ix86_issue_rate): Add btver1.
18063 (ix86_adjust_cost): Add btver1.
18064 * config/i386/i386.h (TARGET_BTVER1): New definition.
18065 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
18066 (enum processor_type): Add PROCESSOR_BTVER1.
18067 * config/i386/i386.md (define_attr "cpu"): Add btver1.
18069 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18072 * config/i386/i386.c (legitimize_tls_address)
18073 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
18074 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
18075 (tls_initial_exec_64_sun): New pattern.
18077 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
18079 * doc/invoke.texi (Overall Options): Improve wording and markup
18080 of the description of -wrapper.
18082 2011-01-06 Joseph Myers <joseph@codesourcery.com>
18084 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
18085 rdynamic, threads): New Driver options.
18087 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18090 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
18091 if coming from .tdata.
18092 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
18094 2011-01-06 Jan Hubicka <jh@suse.cz>
18097 * collect2.c (main): Do not enable LTOmode when plugin is active.
18099 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18102 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
18103 --version output if supported.
18104 * configure: Regenerate.
18106 2011-01-06 Joseph Myers <joseph@codesourcery.com>
18108 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
18111 2011-01-06 Jakub Jelinek <jakub@redhat.com>
18114 * c-convert.c (convert): When converting a complex expression
18115 other than COMPLEX_EXPR to a different complex type, ensure
18116 c_save_expr is called instead of save_expr, unless in_late_binary_op.
18117 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
18118 when converting COMPLEX_TYPE.
18120 2011-01-06 Ira Rosen <irar@il.ibm.com>
18122 PR tree-optimization/47139
18123 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
18124 only the last reduction value is used outside the loop. Update
18127 2011-01-05 Joseph Myers <joseph@codesourcery.com>
18129 * config/rtems.opt: New.
18130 * config.gcc (*-*-rtems*): Use rtems.opt.
18132 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
18134 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
18135 processors do not support 3DNow instructions.
18137 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18139 * config/spu/spu.c (spu_option_override): Set parameter
18140 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
18142 2011-01-05 Jan Hubicka <jh@suse.cz>
18144 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
18145 at the command line.
18147 2011-01-05 Martin Jambor <mjambor@suse.cz>
18150 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
18151 deltas on streamed outgoing edges.
18152 (output_node_opt_summary): Output info for outgoing edges only when
18153 the node is in new parameter set.
18154 (output_cgraph_opt_summary): New parameter set, passed to the two
18155 aforementioned functions. Update its forward declaration and its
18158 2011-01-05 Tom Tromey <tromey@redhat.com>
18160 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
18161 operator to c_finish_omp_atomic.
18162 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
18163 (build_unary_op): Update.
18164 (build_modify_expr): Update.
18165 (build_asm_expr): Update.
18167 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18169 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
18170 newly inserted insns.
18171 (pad_bb): Likewise.
18172 (spu_emit_branch_hint): Likewise.
18173 (insert_hbrp_for_ilb_runout): Likewise.
18174 (spu_machine_dependent_reorg): Call df_finish_pass after
18175 schedule_insns returns.
18177 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18179 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
18181 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
18183 PR tree-optimization/47005
18184 * tree-sra.c (struct access): Add 'non_addressable' bit.
18185 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
18186 (decide_one_param_reduction): Return 0 if the parameter is passed by
18187 reference and one of the accesses in the group is non_addressable.
18189 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
18191 PR tree-optimization/47056
18192 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
18193 (mark_load): Likewise. Handle FUNCTION_DECL specially.
18194 (mark_store): Likewise. Pass STMT to ipa_record_reference.
18196 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
18198 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
18199 initializer. Skip view conversions from aggregate types.
18201 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
18204 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
18206 2011-01-04 Philipp Thomas <pth@suse.de>
18208 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
18211 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18213 * function.c (thread_prologue_and_epilogue_insns): Do not crash
18214 on empty epilogue sequences.
18216 2011-01-04 Joseph Myers <joseph@codesourcery.com>
18218 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
18219 non-static): New Driver options.
18221 2011-01-04 Jie Zhang <jie@codesourcery.com>
18224 * gcc.c (default_compilers[]): Set combinable field to 0
18225 for all assembly languages.
18227 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
18229 * config/mips/loongson3a.md: New file.
18230 * config/mips/mips.md: Include loongson3a.md.
18231 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
18234 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
18236 PR middle-end/47017
18237 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
18238 instead of convert_memory_address_addr_space on the base expression.
18240 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18242 * config/spu/spu.c (spu_option_override): Update error text
18243 for bad -march= / -mtune= values.
18245 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18247 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
18248 if branch-hint optimization will be performed.
18250 2011-01-03 Jakub Jelinek <jakub@redhat.com>
18252 PR tree-optimization/47148
18253 * ipa-split.c (split_function): Convert arguments to
18254 DECL_ARG_TYPE if possible.
18256 PR tree-optimization/47155
18257 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
18258 when computing uns.
18260 PR rtl-optimization/47157
18261 * combine.c (try_combine): If undobuf.other_insn becomes
18262 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
18263 and set *new_direct_jump_p too.
18265 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
18267 PR tree-optimization/47021
18268 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
18270 2011-01-03 Jakub Jelinek <jakub@redhat.com>
18272 * gcc.c (process_command): Update copyright notice dates.
18273 * gcov.c (print_version): Likewise.
18274 * gcov-dump.c (print_version): Likewise.
18275 * mips-tfile.c (main): Likewise.
18276 * mips-tdump.c (main): Likewise.
18278 2011-01-03 Martin Jambor <mjambor@suse.cz>
18280 PR tree-optimization/46801
18281 * tree-sra.c (type_internals_preclude_sra_p): Check whether
18282 aggregate fields start at byte boundary instead of the bit-field flag.
18284 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
18287 * gcc.c (main): Revert revision 168407.
18289 2011-01-03 Martin Jambor <mjambor@suse.cz>
18291 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
18293 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18295 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
18296 vector optab to expand vector/scalar shift, update gimple to vector.
18298 2011-01-03 Martin Jambor <mjambor@suse.cz>
18300 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
18303 2011-01-03 Martin Jambor <mjambor@suse.cz>
18305 PR tree-optimization/46984
18306 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
18308 (cgraph_create_indirect_edge): Fixed line length.
18309 (cgraph_indirect_call_info): Declare.
18310 (cgraph_make_edge_direct) Update declaration.
18311 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
18312 (cgraph_create_indirect_edge): Use it.
18313 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
18315 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
18316 the new thunk_delta representation.
18317 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
18319 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
18320 (ipa_read_indirect_edge_info): Likewise.
18321 * lto-cgraph.c (output_edge_opt_summary): New function.
18322 (output_node_opt_summary): Call it on all outgoing edges.
18323 (input_edge_opt_summary): New function.
18324 (input_node_opt_summary): Call it on all outgoing edges.
18326 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
18329 * gcc.c (main): Don't check have_o when settting combine_inputs.
18331 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
18333 * regrename.c: Add general comment describing the pass.
18334 (struct du_head): Remove 'length' field.
18335 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
18336 (regrename_optimize): Do not sort chains. Rework comments, add others.
18337 Force renaming to the preferred class (if any) in the first pass and do
18338 not consider registers that belong to it in the second pass.
18339 (create_new_chain): Do not set 'length' field.
18340 (scan_rtx_reg): Likewise.
18342 2011-01-02 Jakub Jelinek <jakub@redhat.com>
18344 PR tree-optimization/47140
18345 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
18346 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
18347 to bit_value_binop.
18349 PR rtl-optimization/47028
18350 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
18351 parm_birth_insn instead of at the beginning of first bb.
18353 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
18355 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
18356 Remove the word "see" before "@pxref".
18357 * doc/rtl.texi: Remove the word "see" before "@pxref".
18359 2011-01-01 Jan Hubicka <jh@suse.cz>
18361 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
18364 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
18367 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
18370 Copyright (C) 2011 Free Software Foundation, Inc.
18372 Copying and distribution of this file, with or without modification,
18373 are permitted in any medium without royalty provided the copyright
18374 notice and this notice are preserved.