]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to common/common-target-def.h.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
677f3fa8
JM
12011-06-14 Joseph Myers <joseph@codesourcery.com>
2
3 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
4 common/common-target-def.h.
5 * target.def (default_target_flags, handle_option,
6 supports_split_stack, optimization_table, init_struct,
7 except_unwind_info, unwind_tables_default, have_named_sections):
8 Move to common/common-target.def.
9 * target.h (enum opt_levels, struct default_options): Move to
10 common/common-target.h.
11 * targhooks.c (default_except_unwind_info,
12 dwarf2_except_unwind_info, sjlj_except_unwind_info,
13 default_target_handle_option, empty_optimization_table): Move to
14 common/common-targhooks.c.
15 * targhooks.h (default_except_unwind_info,
16 dwarf2_except_unwind_info, sjlj_except_unwind_info,
17 default_target_handle_option, empty_optimization_table): Move to
18 common/common-targhooks.h.
19 * common/common-target-def.h: Include common/common-targhooks.h.
20 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
21 defined.
22 * common/common-target.def (handle_option, option_init_struct,
23 option_optimization_table, default_target_flags,
24 except_unwind_info, supports_split_stack, unwind_tables_default,
25 have_named_sections): Move from target.def.
26 (HOOK_PREFIX): Undefine at end of file.
27 * common/common-target.h: Include input.h.
28 (enum opt_levels, struct default_options): Move from target.h.
29 * common/common-targhooks.c, common/common-targhooks.h: New.
30 * config.gcc (target_has_targetm_common): Default to yes.
31 (moxie*): Set target_has_targetm_common=no.
32 (hppa*-*-*): Don't set target_has_targetm_common=yes.
33 * doc/tm.texi: Regenerate.
34 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
35 (C_TARGET_DEF_H): Add common/common-targhooks.h.
36 (GCC_OBJS): Remove vec.o.
37 (OBJS): Remove hooks.o and vec.o.
38 (OBJS-libcommon-target): Add vec.o, hooks.o and
39 common/common-targhooks.o.
40 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
41 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
42 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
43 cfglayout.o, $(out_object_file), $(common_out_object_file)):
44 Update dependencies.
45 (common/common-targhooks.o): New.
46 * common/config/default-common.c: Include tm.h. Add FIXME
47 comment.
48 * common/config/pa/pa-common.c: Include more headers. Take
49 copyright dates from pa.c.
50 (pa_option_optimization_table, pa_handle_option,
51 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
52 TARGET_HANDLE_OPTION): Move from pa.c.
53 * common/config/alpha/alpha-common.c,
54 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
55 common/config/bfin/bfin-common.c,
56 common/config/cris/cris-common.c,
57 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
58 common/config/h8300/h8300-common.c,
59 common/config/i386/i386-common.c,
60 common/config/ia64/ia64-common.c,
61 common/config/iq2000/iq2000-common.c,
62 common/config/lm32/lm32-common.c,
63 common/config/m32c/m32c-common.c,
64 common/config/m32r/m32r-common.c,
65 common/config/m68k/m68k-common.c,
66 common/config/mcore/mcore-common.c,
67 common/config/mep/mep-common.c,
68 common/config/microblaze/microblaze-common.c,
69 common/config/mips/mips-common.c,
70 common/config/mmix/mmix-common.c,
71 common/config/mn10300/mn10300-common.c,
72 common/config/pdp11/pdp11-common.c,
73 common/config/picochip/picochip-common.c,
74 common/config/rs6000/rs6000-common.c,
75 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
76 common/config/score/score-common.c, common/config/sh/sh-common.c,
77 common/config/sparc/sparc-common.c,
78 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
79 common/config/vax/vax-common.c,
80 common/config/xstormy16/xstormy16-common.c,
81 common/config/xtensa/xtensa-common.c: New.
82 * config/alpha/alpha.c: Include common/common-target.h.
83 (alpha_option_optimization_table, alpha_handle_option,
84 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
85 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
86 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
87 * config/arm/arm.c (arm_option_optimization_table,
88 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
89 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
90 arm-common.c.
91 * config/avr/avr.c (avr_option_optimization_table,
92 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
93 to avr-common.c.
94 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
95 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
96 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
97 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
98 * config/cris/cris.c (cris_option_optimization_table,
99 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
100 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
101 cris-common.c.
102 * config/fr30/fr30.c (fr30_option_optimization_table,
103 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
104 to fr30-common.c.
105 * config/frv/frv.c (frv_option_optimization_table,
106 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
107 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
108 * config/h8300/h8300.c (h8300_option_optimization_table,
109 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
110 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
111 * config/i386/i386-protos.h (ix86_handle_option): Declare.
112 * config/i386/i386.c: Include common/common-target.h.
113 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
114 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
115 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
116 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
117 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
118 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
119 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
120 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
121 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
122 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
123 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
124 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
125 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
126 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
127 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
128 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
129 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
130 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
131 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
132 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
133 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
134 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
135 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
136 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
137 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
138 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
139 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
140 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
141 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
142 ix86_option_optimization_table, ix86_option_init_struct,
143 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
144 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
145 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
146 i386-common.c.
147 * config/i386/t-i386 (i386.o): Update dependencies.
148 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
149 * config/ia64/ia64.c (ia64_option_optimization_table,
150 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
151 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
152 ia64_handle_option): Move to ia64-common.c.
153 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
154 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
155 * config/lm32/lm32.c (lm32_option_optimization_table,
156 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
157 to lm32-common.c.
158 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
159 m32c-common.c.
160 * config/m32r/m32r.c (m32r_option_optimization_table,
161 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
162 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
163 m32r_handle_option): Move to m32r-common.c.
164 (m32r_memory_move_cost): Remove comment referring to
165 TARGET_HANDLE_OPTION.
166 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
167 Move to m68k-common.c.
168 * config/mcore/mcore.c (mcore_option_optimization_table,
169 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
170 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
171 * config/mep/mep.c (mep_option_optimization_table,
172 mep_handle_option, TARGET_HANDLE_OPTION,
173 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
174 Move to mep-common.c.
175 * config/microblaze/microblaze.c
176 (microblaze_option_optimization_table,
177 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
178 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
179 * config/mips/mips.c (mips_handle_option,
180 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
181 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
182 mips-common.c.
183 * config/mmix/mmix.c (mmix_option_optimization_table,
184 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
185 Move to mmix-common.c.
186 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
187 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
188 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
189 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
190 * config/pa/pa.c: Include common/common-target.h.
191 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
192 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
193 pa_handle_option): Move to pa-common.c.
194 (pa_option_override): Use targetm_common.except_unwind_info.
195 (pa_asm_output_mi_thunk, pa_function_section): Use
196 targetm_common.have_named_sections.
197 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
198 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
199 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
200 pdp11_handle_option, pdp11_option_init_struct): Move to
201 pdp11-common.c.
202 * config/picochip/picochip.c (picochip_option_optimization_table,
203 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
204 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
205 * config/rs6000/rs6000.c: Include common/common-target.h.
206 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
207 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
208 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
209 rs6000_handle_option): Move to rs6000-common.c.
210 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
211 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
212 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
213 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
214 * config/s390/s390.c (processor_flags_table,
215 s390_option_optimization_table, s390_option_init_struct,
216 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
217 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
218 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
219 * config/s390/s390.h (processor_flags_table): Declare.
220 * config/score/score.c (score_option_optimization_table,
221 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
222 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
223 score_handle_option): Move to score-common.c.
224 * config/sh/sh.c (sh_option_optimization_table,
225 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
226 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
227 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
228 * config/sparc/sparc.c: Include common/common-target.h.
229 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
230 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
231 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
232 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
233 spu_option_init_struct): Move to spu-common.c.
234 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
235 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
236 * config/v850/v850.c (small_memory_physical_max,
237 v850_handle_memory_optionn v850_handle_option,
238 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
239 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
240 v850-common.c.
241 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to
242 vax-common.c.
243 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
244 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
245 Move to xtensa-common.c.
246 * cfglayout.c: Include common/common-target.h.
247 (fixup_reorder_chain): Use targetm_common.have_named_sections.
248 * cfgrtl.c: Include common/common-target.h.
249 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
250 targetm_common.have_named_sections.
251 * dbxout.c: Include common/common-target.h.
252 (dbxout_function_end): Use targetm_common.have_named_sections.
253 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
254 targetm_common.except_unwind_info.
255 * dwarf2out.c: Include common/common-target.h.
256 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
257 dwarf2out_begin_prologue, dwarf2out_frame_init,
258 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
259 targetm_common.except_unwind_info.
260 * except.c: Include common/common-target.h.
261 (init_eh, finish_eh_generation,
262 output_one_function_exception_table): Use
263 targetm_common.except_unwind_info.
264 (switch_to_exception_section): Use
265 targetm_common.have_named_sections.
266 * explow.c: Include common/common-target.h.
267 * expr.c: Include common/common-target.h.
268 (build_personality_function): Use
269 targetm_common.except_unwind_info.
270 * function.c: Include common/common-target.h.
271 (expand_function_end): Use targetm_common.except_unwind_info.
272 * haifa-sched.c: Include common/common-target.h.
273 (sched_create_recovery_edges): Use
274 targetm_common.have_named_sections.
275 * lto-opts.c: Include common/common-target.h instead of target.h.
276 (lto_reissue_options): Use targetm_common.handle_option.
277 * opts.c: Include common/common-target.h.
278 (target_handle_option): Use targetm_common.handle_option.
279 (init_options_struct): Update comment referring to
280 targetm.target_option.optimization. Use
281 targetm_common.default_target_flags,
282 targetm_common.unwind_tables_default and
283 targetm_common.option_init_struct.
284 (default_options_optimization): Use
285 targetm_common.option_optimization_table.
286 (finish_options): Use targetm_common.except_unwind_info,
287 targetm_common.unwind_tables_default,
288 targetm_common.have_named_sections and
289 targetm_common.supports_split_stack.
290 * toplev.c: Include common/common-target.h.
291 (process_options): Use targetm_common.have_named_sections.
292 * tree-tailcall.c: Include common/common-target.h.
293 (suitable_for_tail_call_opt_p): Use
294 targetm_common.except_unwind_info.
295 * tree.c: Include common/common-target.h.
296 (build_common_builtin_nodes): Use
297 targetm_common.except_unwind_info.
298 * varasm.c: Include common/common-target.h.
299 (resolve_unique_section, hot_function_section,
300 default_function_section): Use targetm_common.have_named_sections.
301
d26c7090
ER
3022011-06-14 Easwaran Raman <eraman@google.com>
303
304 PR rtl-optimization/44194
305 * dse.c: Include tree-flow.h
306 (insn_info): Add new field non_frame_wild_read.
307 (group_info): Add new fields escaped_n and escaped_p.
308 (kill_on_calls): New variable.
309 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
310 (dse_step0): Initialize kill_on_calls.
311 (can_escape): New function.
312 (set_usage_bits): Add additional parameter; record information
313 about escaped locations.
314 (record_store): Pass EXPR corresponding to MEM to
315 set_usage_bits.
316 (dse_step2_nospill): Set kill_on_calls based on
317 group->escaped_n and group->escaped_n.
318 (add_wild_read): Refactor into...
319 (reset_active_stores): ... New function, and
320 (free_read_records): ... New function.
321 (add_non_frame_wild_read): New function.
322 (scan_insn): Call add_non_frame_wild_read on non-const calls.
323 (scan_reads_nospill): Handle instructions with
324 non_frame_wild_read.
325 (dse_step5_nospill): Call scan_reads_nospill for instructions
326 marked as non_frame_wild_read.
327 (dse_step7): Free escaped_n, escaped_p and kill_on_calls
328 bitmaps.
329
c49a6962
JM
3302011-06-14 Joseph Myers <joseph@codesourcery.com>
331
332 * common/common-target-def.h, common/common-target.def,
333 common/common-target.h, common/config/default-common.c,
334 common/config/pa/pa-common.c: New files.
335 * Makefile.in (common_out_file, common_out_object_file,
336 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
337 (OBJS-libcommon-target): Include $(common_out_object_file).
338 (prefix.o): Update dependencies.
339 ($(common_out_object_file), common/common-target-hooks-def.h,
340 s-common-target-hooks-def-h): New.
341 (s-tm-texi): Also check timestamp on common-target.def.
342 (build/genhooks.o): Update dependencies.
343 * config.gcc (common_out_file, target_has_targetm_common): Define.
344 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
345 TARGET_ALWAYS_STRIP_DOTDOT.
346 * configure.ac (common_out_object_file): Define.
347 (common_out_file, common_out_object_file): Substitute.
348 (common): Create directory.
349 * configure: Regenerate.
350 * doc/tm.texi.in (targetm_common): Document.
351 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
352 * doc/tm.texi: Regenerate.
353 * genhooks.c (hook_array): Also include common/common-target.def.
354 * prefix.c (tm.h): Don't include.
355 (common/common-target.h): Include.
356 (ALWAYS_STRIP_DOTDOT): Don't define.
357 (update_path): Use targetm_common.always_strip_dotdot instead of
358 ALWAYS_STRIP_DOTDOT.
359 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
360
22c5fa5f
DL
3612011-06-14 David Li <davidxl@google.com>
362
363 * passes.c (execute_function_todo): Remove TODO_dump_func.
364 (execute_one_pass): Remove TODO_dump_func.
365 (execute_function_dump): New function.
366 * tree-vrp.c: Remove TODO_dump_func.
367 * regrename.c: Remove TODO_dump_func.
368 * fwprop.c: Remove TODO_dump_func.
369 * tree-into-ssa.c: Remove TODO_dump_func.
370 * tree-complex.c: Remove TODO_dump_func.
371 * tracer.c: Remove TODO_dump_func.
372 * tree-loop-distribution.c: Remove TODO_dump_func.
373 * postreload-gcse.c: Remove TODO_dump_func.
374 * postreload.c: Remove TODO_dump_func.
375 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
376 * tree-tailcall.c: Remove TODO_dump_func.
377 * ipa-cp.c: Remove TODO_dump_func.
378 * final.c: Remove TODO_dump_func.
379 * tree-emutls.c: Remove TODO_dump_func.
380 * omp-low.c: Remove TODO_dump_func.
381 * tree-ssa-dse.c: Remove TODO_dump_func.
382 * tree-ssa-uncprop.c: Remove TODO_dump_func.
383 * auto-inc-dec.c: Remove TODO_dump_func.
384 * reorg.c: Remove TODO_dump_func.
385 * tree-ssa-copyrename.c: Remove TODO_dump_func.
386 * tree-ssa-ccp.c: Remove TODO_dump_func.
387 * compare-elim.c: Remove TODO_dump_func.
388 * mode-switching.c: Remove TODO_dump_func.
389 * modulo-sched.c: Remove TODO_dump_func.
390 * tree-call-cdce.c: Remove TODO_dump_func.
391 * cse.c: Remove TODO_dump_func.
392 * web.c: Remove TODO_dump_func.
393 * tree-stdarg.c: Remove TODO_dump_func.
394 * lto-streamer-out.c: Remove TODO_dump_func.
395 * tree-ssa-math-opts.c: Remove TODO_dump_func.
396 * tree-ssa-dom.c: Remove TODO_dump_func.
397 * tree-nrv.c: Remove TODO_dump_func.
398 * loop-init.c: Remove TODO_dump_func.
399 * gimple-low.c: Remove TODO_dump_func.
400 * ipa-inline.c: Remove TODO_dump_func.
401 * tree-ssa-sink.c: Remove TODO_dump_func.
402 * jump.c: Remove TODO_dump_func.
403 * ifcvt.c: Remove TODO_dump_func.
404 * tree-ssa-loop.c: Remove TODO_dump_func.
405 * recog.c: Remove TODO_dump_func.
406 * dse.c: Remove TODO_dump_func.
407 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
408 * matrix-reorg.c: Remove TODO_dump_func.
409 * tree-eh.c: Remove TODO_dump_func.
410 * regmove.c: Remove TODO_dump_func.
411 * function.c: Remove TODO_dump_func.
412 * tree-vectorizer.c: Remove TODO_dump_func.
413 * ipa-split.c: Remove TODO_dump_func.
414 * gcse.c: Remove TODO_dump_func.
415 * tree-if-conv.c: Remove TODO_dump_func.
416 * init-regs.c: Remove TODO_dump_func.
417 * tree-ssa-phiopt.c: Remove TODO_dump_func.
418 * implicit-zee.c: Remove TODO_dump_func.
419 * lower-subreg.c: Remove TODO_dump_func.
420 * bt-load.c: Remove TODO_dump_func.
421 * tree-dfa.c: Remove TODO_dump_func.
422 * except.c: Remove TODO_dump_func.
423 * emit-rtl.c: Remove TODO_dump_func.
424 * store-motion.c: Remove TODO_dump_func.
425 * cfgexpand.c: Remove TODO_dump_func.
426 * tree-cfgcleanup.c: Remove TODO_dump_func.
427 * cfgcleanup.c: Remove TODO_dump_func.
428 * tree-ssa-pre.c: Remove TODO_dump_func.
429 * tree-sra.c: Remove TODO_dump_func.
430 * tree-mudflap.c: Remove TODO_dump_func.
431 * tree-ssa-copy.c: Remove TODO_dump_func.
432 * cfglayout.c: Remove TODO_dump_func.
433 * tree-ssa-forwprop.c: Remove TODO_dump_func.
434 * tree-ssa-dce.c: Remove TODO_dump_func.
435 * ira.c: Remove TODO_dump_func.
436 * tree-ssa.c: Remove TODO_dump_func.
437 * integrate.c: Remove TODO_dump_func.
438 * tree-optimize.c: Remove TODO_dump_func.
439 * tree-ssa-phiprop.c: Remove TODO_dump_func.
440 * tree-object-size.c: Remove TODO_dump_func.
441 * combine.c: Remove TODO_dump_func.
442 * bb-reorder.c: Remove TODO_dump_func.
443 * cprop.c: Remove TODO_dump_func.
444 * var-tracking.c: Remove TODO_dump_func.
445 * tree-profile.c: Remove TODO_dump_func.
446 * tree-vect-generic.c: Remove TODO_dump_func.
447 * reg-stack.c: Remove TODO_dump_func.
448 * sched-rgn.c: Remove TODO_dump_func.
449 * tree-ssa-structalias.c: Remove TODO_dump_func.
450 * tree-switch-conversion.c: Remove TODO_dump_func.
451 * tree-cfg.c: Remove TODO_dump_func.
452 * tree-ssa-reassoc.c: Remove TODO_dump_func.
453 * combine-stack-adj.c: Remove TODO_dump_func.
454 * dce.c: Remove TODO_dump_func.
455 * tree-ssanames.c: Remove TODO_dump_func.
456 * regcprop.c: Remove TODO_dump_func.
457
fa465762
L
4582011-06-14 H.J. Lu <hongjiu.lu@intel.com>
459
460 PR middle-end/47364
461 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
462 and properly handle result not in Pmode.
463
7d8d16c3
RM
4642011-06-14 Robert Millan <rmh@gnu.org>
465
466 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
467 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
468 `config/linux.h'.
469
470 * config/i386/kfreebsd-gnu64.h: New file.
471 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
472 with `i386/kfreebsd-gnu64.h'.
473
474 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
475 (GNU_USER_LINK_EMULATION64): New macros.
476 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
477 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
478 of hardcoding `elf_i386' and `elf_x86_64'.
479
0ccef3d2
NC
4802011-06-14 Nick Clifton <nickc@redhat.com>
481
482 PR target/49403
483 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
484
485 PR target/49402
486 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
487
8a76c4a0
JJ
4882011-06-14 Jakub Jelinek <jakub@redhat.com>
489
1ace6185
JJ
490 PR fortran/49103
491 * tree.h (DECL_NONSHAREABLE): Define.
492 (struct tree_decl_common): Change decl_common_unused to
493 decl_nonshareable_flag.
494 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
495 Ignore vars with DECL_NONSHAREABLE bit set.
496 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
497 on stores to automatic aggregate vars.
498
8a76c4a0
JJ
499 PR rtl-optimization/49390
500 Revert:
501 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
502
503 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
504 MEM_ALIAS_SET.
505
b4a9343c
ZD
5062011-06-14 Zdenek Dvorak <ook@ucw.cz>
507 Tom de Vries <tom@codesourcery.com>
508
509 PR target/45098
510 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
511 Document changed semantics.
512 (max_stmt_executions, max_stmt_executions_int): Declare.
513 * tree-data-ref.c (estimated_loop_iterations)
514 (estimated_loop_iterations_int): Move functions...
515 * tree-ssa-loop-niter.c (estimated_loop_iterations)
516 (estimated_loop_iterations_int): here.
517 (record_estimate): Change nb_iterations_upper_bound and
518 nb_iterations_estimate semantics.
519 (max_stmt_executions, max_stmt_executions_int): New function.
520 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
521 (max_stmt_executions_tree): this.
522 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
523 estimated_loop_iterations_tree.
524 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
525 max_stmt_executions_int instead of estimated_loop_iterations_int.
526 * predict.c (predict_loops): Idem.
527 * tree-parloops.c (parallelize_loops): Idem.
528 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
529 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
530 (init_omega_for_ddr_1): Idem.
531 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
532 (loop_prefetch_arrays): Idem
533 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
534 max_stmt_executions instead of estimated_loop_iterations.
535 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
536 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
537 instead of nb_iterations_upper_bound.
538
d2640c43
JH
5392011-06-13 Jan Hubicka <jh@suse.cz>
540
541 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
542
40873cdd
RH
5432011-06-14 Richard Henderson <rth@redhat.com>
544
545 PR debug/48459
546 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
547 (based_loc_descr): Assert it's true.
548 (compute_frame_pointer_to_fb_displacement): Set it, rather than
549 aborting immediately.
550
73e8cb24
SL
5512011-06-14 Sanjin Liu <scliu@faraday-tech.com>
552 Mingfeng Wu <mingfeng@faraday-tech.com>
553
554 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
555
f835f0a7
JH
5562011-06-13 Jan Hubicka <jh@suse.cz>
557
558 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
559
ee6f1177
JH
5602011-06-13 Jan Hubicka <jh@suse.cz>
561
562 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
563 similarly to DECL_COMDAT.
564 * cgraphunit.c (cgraph_analyze_function): Likewise.
565 * ipa.c (function_and_variable_visibility): Likewise.
566
618abf9a
JH
5672011-06-13 Jan Hubicka <jh@suse.cz>
568
569 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
570 BINFO_VIRTUALS when streaming for ltrans unit.
571
a45fe02f
DE
5722011-06-13 David Edelsohn <dje.gcc@gmail.com>
573
574 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
575 (movdi_internal64): Same.
576
5772011-06-13 Edmar Wienskoski <edmar@freescale.com>
578
7d8d16c3
RM
579 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
580 a set of similar patterns, where the MATCH_OPERAND for the function
581 argument is replaced with individual references to hardware registers.
a45fe02f
DE
582 (save_fpregs_<mode>): Ditto
583 (restore_gpregs_<mode>): Ditto
584 (return_and_restore_gpregs_<mode>): Ditto
585 (return_and_restore_fpregs_<mode>): Ditto
586 (return_and_restore_fpregs_aix_<mode>): Ditto
587
8775a18b
JH
5882011-06-13 Jan Hubicka <jh@suse.cz>
589
590 * ipa-utils.c (postorder_stack): New structure.
591 (ipa_reverse_postorder): Handle aliases.
592
5932011-06-13 Jan Hubicka <jh@suse.cz>
594
595 * ipa-inline.c (reset_edge_caches): Walk aliases.
596 (update_caller_keys): Do not test inlinability of aliases.
597 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
598 (do_estimate_growth): Fix typo.
599
6c69a029
JH
6002011-06-13 Jan Hubicka <jh@suse.cz>
601
602 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
603 (can_remove_node_now_p): ... here; handle same comdat groups.
604 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
605 (inline_call): Update use of can_remove_node_now_p.
606
10c63ba4 6072011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 608
10c63ba4 609 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
610 condition to disallow non-identical memory locations.
611 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
612 preference to bit manipulation instructions.
495f8c14 613
9aa3f5c5
JH
6142011-06-13 Jan Hubicka <jh@suse.cz>
615
616 * cgraph.c (cgraph_for_node_thunks_and_aliases,
617 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
618 (nonremovable_p): New function.
619 (cgraph_can_remove_if_no_direct_calls_p): New function.
620 (used_from_object_file_p): New functoin.
10c63ba4
EB
621 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
622 references from aliases.
9aa3f5c5
JH
623 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
624 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
625 (want_inline_function_called_once_p): Use it; accept aliases called
626 once, too.
9aa3f5c5
JH
627 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
628
30cecf17
RR
6292011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
630
631 PR target/48454
632 * config/arm/neon.md (vec_pack_trunc): Set the lengths
633 correctly for the case with Quad vectors.
634
29f85237
JJ
6352011-06-13 Jakub Jelinek <jakub@redhat.com>
636 Ira Rosen <ira.rosen@linaro.org>
637
638 PR tree-optimization/49352
639 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
640 all, make sure loop_use_stmt after the loop is a def stmt of a used
641 SSA_NAME that is the only one defined inside of the loop. Don't
642 check for COND_EXPR and GIMPLE_BINARY_RHS.
643 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
644 check_reduction is true.
645
c3e3f090
JH
6462011-06-11 Jan Hubicka <jh@suse.cz>
647
648 PR middle-end/49373
649 * ipa.c (cgraph_externally_visible_p): Check resolution info.
650
516e0768
JH
6512011-06-11 Jan Hubicka <jh@suse.cz>
652
653 PR middle-end/48836
654 * ipa-inline-transform.c: Include tree-pass.h
655 (inline_transform): Set TODO_update_ssa_only_virtuals.
656 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
657
903b0a8b
JH
6582011-06-11 Jan Hubicka <jh@suse.cz>
659
660 PR middle-end/49378
661 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
662 aliases and thunks.
663
44542f8e
IR
6642011-06-12 Ira Rosen <ira.rosen@linaro.org>
665
666 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
667 Take number of iterations to peel into account for equally frequent
668 misalignment values.
669
ea89702b
JH
6702011-06-11 Jan Hubicka <jh@suse.cz>
671
672 * lto-streamer-out.c (produce_symtab): Stream out the newly represented
673 aliases.
674
380ed5ed
JH
6752011-06-11 Jan Hubicka <jh@suse.cz>
676
10c63ba4
EB
677 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying
678 args.
380ed5ed
JH
679 (ipa_update_after_lto_read): Likewise.
680 (ipa_write_node_info): Do not sream call_with_var_arguments.
681 (ipa_read_node_info): Likewise.
682
00cfc363
JH
6832011-06-11 Jan Hubicka <jh@suse.cz>
684
685 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
686
39e2db00
JH
6872011-06-11 Jan Hubicka <jh@suse.cz>
688
689 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
690 (lto_symtab_resolve_can_prevail_p): Likewise.
691 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
692 * cgraph.c (same_body_aliases_done): New global var.
693 (cgraph_same_body_alias_1): Rename to ...
694 (cgraph_create_function_alias): ... this one; reorg to new
695 representation.
696 (cgraph_same_body_alias): Use cgraph_create_function_alias;
697 record references when asked to.
698 (cgraph_add_thunk): Fix formating.
699 (cgraph_get_node): Kill same body alias code.
700 (cgraph_node_for_asm): Likewise.
701 (cgraph_remove_same_body_alias): Remove.
702 (cgraph_remove_node): Kill same body alias code.
703 (cgraph_mark_address_taken_node): Mark also the aliased function
704 as having address taken.
705 (dump_cgraph_node): Dump same body aliases.
706 (cgraph_for_node_thunks_and_aliases): Update for new alias
707 representation.
708 (cgraph_for_node_and_aliases): Likewise.
709 * cgraph.h (same_body): Kll pointer.
710 (same_body_alias): Update comment.
711 (same_body_aliases_done): Declare.
712 (cgraph_remove_same_body_alias): Remove declaration.
713 (cgraph_create_function_alias): Declare.
714 (cgraph_process_same_body_aliases): Declare.
715 (cgraph_function_with_gimple_body_p): Check for alias.
716 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
717 (cgraph_alias_aliased_node): New function.
718 (cgraph_function_node): Update for new aliases.
719 (cgraph_function_or_thunk_node): Likewise.
720 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
721 (inline_call): Remove dead aliases.
10c63ba4
EB
722 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
723 name hack for same body aliases.
39e2db00
JH
724 (clone_of_p): Look through aliases.
725 (verify_cgraph_node): Verify aliases.
726 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
727 (cgraph_process_same_body_aliases): New function.
728 (process_function_and_variable_attributes): Disable weakref warning on
729 alias.
730 (cgraph_analyze_functions): Handle aliases.
731 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
732 (assemble_thunks): Rename to ...
733 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
734 (cgraph_expand_function): Remove alias output code.
735 (cgraph_output_in_order): Skip aliases.
736 (cgraph_preserve_function_body_p): Aliases don't need preserving.
737 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
738 (ipa_record_reference): Do not assert on alias references.
739 (ipa_ref_has_aliases_p): New function.
740 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
741 (ipa_ref_has_aliases_p): Declare.
742 * lto-cgraph.c (lto_output_node): Handle aliases.
743 (input_node): Likewise.
744 * lto-streamer-out.c (lto_output): Skip aliases.
745 (produce_symtab): Kill same_body_alias code.
746 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
747 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
748 * ipa-inline.c (update_caller_keys): Walk aliases.
749 (inline_small_functions): Fix thinko in previous patch.
750 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
751 (function_and_variable_visibility): Do not walk same body aliases.
752 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
753 (ipa_pta_execute): Use it.
754
9ee65b55
UB
7552011-06-11 Uros Bizjak <ubizjak@gmail.com>
756
757 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
758 (*vec_dupv2df): Rename from vec_dupv2df.
759 (vec_dupv2df): New expander.
760
7612011-06-11 Uros Bizjak <ubizjak@gmail.com>
762
763 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
764
7652011-06-11 Uros Bizjak <ubizjak@gmail.com>
766
767 * config/i386/i386.md: Use default value in "isa" attribute.
768 * config/i386/sse.md: Ditto.
769 * config/i386/mmx.md: Ditto.
770
ba68a139
WG
7712011-06-10 Wei Guozhi <carrot@google.com>
772
773 PR target/45335
774 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
775 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
776 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
777 related peephole2.
778 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
779 related peephole2.
780 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
781 (arm_legitimate_ldrd_p): New prototype.
782 (arm_output_ldrd): New prototype.
783 * config/arm/arm.c (arm_check_ldrd_operands): New function.
784 (arm_legitimate_ldrd_p): New function.
785 (arm_output_ldrd): New function.
786
deced1e2
XDL
7872011-06-10 David Li <davidxl@google.com>
788
789 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
790 * passes.c (passr_eq): New function.
791 (create_pass_tab): New function.
792 (pass_traverse): New function.
793 (dump_one_pass): New function.
794 (dump_pass_list): New function.
795 (dump_passes): New function.
796
71fb4f92
JH
7972011-06-10 Jan Hubicka <jh@suse.cz>
798
799 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
800 setting the nothrow flag.
801 * ipa-reference.c (propagate): Skip aliases.
802 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
803 (propagate_nothrow): Skip aliases; do not update cgraph.
804 (local_pure_const): Do not update cgraph.
805 * tree-profile.c (tree_profiling): Do fixup_cfg.
806
41817394
JH
8072011-06-10 Jan Hubicka <jh@suse.cz>
808
809 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
810 (cgraph_local_node_p): ... here; handle aliases.
811 (has_addr_references_p): Break out from ...;
812 (cgraph_remove_unreachable_nodes) ... here.
813
fb37c1de
JH
8142011-06-10 Jan Hubicka <jh@suse.cz>
815
816 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
817 * common.opt (flag_inline_functions_called_once): Do not
818 initialize to 1.
fb37c1de 819
0818c24c
JH
8202011-06-10 Jan Hubicka <jh@suse.cz>
821
822 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
823 (ipcp_initialize_node_lattices): Do not deal with aliases;
824 Do not try to propagate through thunks.
0818c24c
JH
825 (ipcp_change_tops_to_bottom): Do not deal with aliases.
826
c8246dbe
JH
8272011-06-10 Jan Hubicka <jh@suse.cz>
828
9ee65b55
UB
829 * ipa-prop.c (ipa_write_node_info): Stream jump functions
830 for indirect calls.
c8246dbe
JH
831 (ipa_read_node_info): Likewise.
832
d7e2a1c1
BS
8332011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
834
835 PR lto/49302
836 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
837 (build_and_insert_call): Likewise.
838 (build_and_insert_ref): New.
839 (gimple_expand_builtin_pow): Minor cleanup.
840 (gimple_expand_builtin_cabs): New.
841 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 842
749f25d8
JH
8432011-06-10 Jan Hubicka <jh@suse.cz>
844
845 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
846 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
847 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
848 (ipcp_propagate_stage): Skip aliases when propagating.
849 (ipcp_need_redirect_p): Skip aliases.
850 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
851 collect_callers_of_node.
852 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
853 for aliases.
854 (ipa_compute_jump_functions): Look through aliases.
855
8340fbd7
RO
8562011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
857
858 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
859
9aaa7e47
HPN
8602011-06-10 Hans-Peter Nilsson <hp@axis.com>
861
862 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
863 Adjust comments.
864 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
865
f1724940
JH
8662011-06-10 Jan Hubicka <jh@suse.cz>
867
868 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
869 Update call of gimple_get_virt_method_for_binfo.
870 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
871 refuse_thunks parameter.
872 (gimple_fold_call): Update.
873 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
874
a6f834c5
JH
8752011-06-10 Jan Hubicka <jh@suse.cz>
876
877 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
878 (not_all_callers_have_enough_arguments_p): ... this one; turn into
879 worker for cgraph_for_node_and_aliases.
880 (convert_callers_for_node): Break out from ...
881 (convert_callers): ... here.
882 (modify_function): Use collect_callers_of_node.
883 (ipa_early_sra): Use cgraph_for_node_and_aliases.
884
7871eee3
RG
8852011-06-10 Richard Guenther <rguenther@suse.de>
886
887 PR tree-optimization/49361
888 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
889 when not already in gimple form.
890
dae957ae
RG
8912011-06-10 Richard Guenther <rguenther@suse.de>
892
893 PR bootstrap/49344
894 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
895 FOR_EACH_PHI_OR_STMT_USE.
896
a5b1779f
JH
8972011-06-10 Jan Hubicka <jh@suse.cz>
898
899 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
900 (clone_inlined_nodes): ... here.
901 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
902 to real destination prior inlining.
903 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
904 can_early_inline_edge_p, want_early_inline_function_p,
905 want_early_inline_function_p, want_inline_small_function_p,
906 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
907 edge_badness, update_all_callee_keys, lookup_recursive_calls,
908 add_new_edges_to_heap, inline_small_functions, flatten_function,
909 inline_always_inline_functions, early_inline_small_functions): Use
910 cgraph_function_or_thunk_node.
911 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
912 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
913 (do_estimate_edge_growth_1): Break out from ...
914 (do_estimate_growth) ... here; walk aliases.
915 (inline_generate_summary): Skip aliases.
916
c1ae3ca5
RG
9172011-06-10 Richard Guenther <rguenther@suse.de>
918
9ee65b55
UB
919 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
920 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 921
b504a918
PC
9222011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
923
924 * tree.h (error_operand_p): Add.
925 * dbxout.c (dbxout_type_fields): Use the latter.
926 * c-decl.c (add_stmt): Likewise.
927 * gimplify.c (omp_add_variable, omp_notice_variable,
928 gimplify_scan_omp_clauses): Likewise.
929
3f5ea9dc 9302011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 931
3f5ea9dc
GJL
932 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
933 when a value is actually passed in regs.
934
b11b0904 9352011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 936 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
937
938 * doc/invoke.texi (SPARC options): Add -mflat.
939 * config/sparc/sparc.opt: Likewise.
940 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
941 (sparc_flat_expand_prologue): Declare.
942 (sparc_flat_expand_epilogue): Likewise.
943 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
944 (CPP_ENDIAN_SPEC): Replace with...
945 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
946 (CPP_SPEC): Adjust to above change.
947 (EXTRA_SPECS): Likewise.
948 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
949 (INCOMING_REGNO): Likewise.
950 (OUTGOING_REGNO): Likewise.
951 (LOCAL_REGNO): Likewise.
952 (SETUP_FRAME_ADDRESSES): Likewise.
953 (FIXED_REGISTERS): Set 0 for %fp.
954 (CALL_USED_REGISTERS): Likewise.
955 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
956 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
957 (RETURN_ADDR_REGNUM): Define.
958 (RETURN_ADDR_RTX): Use it.
959 (INCOMING_RETURN_ADDR_REGNUM): Define.
960 (INCOMING_RETURN_ADDR_RTX): Use it.
961 (DWARF_FRAME_RETURN_COLUMN): Likewise.
962 (EH_RETURN_REGNUM): Define.
963 (EH_RETURN_STACKADJ_RTX): Use it.
964 (EH_RETURN_HANDLER_RTX): Delete.
965 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
966 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
967 Delete.
968 (struct machine_function): Add frame_size, apparent_frame_size,
969 frame_base_reg, frame_base_offset, n_global_fp_regs and
970 save_local_in_regs_p fields.
971 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
972 sparc_frame_base_offset, sparc_n_global_fp_regs,
973 sparc_save_local_in_regs_p): New macros.
974 (sparc_option_override): Error out if -fcall-saved-REG is specified
975 for Out registers.
976 (eligible_for_restore_insn): Fix formatting.
977 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
978 (eligible_for_sibcall_delay): Likewise.
979 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
980 (sparc_legitimate_address_p): Adjust to above change.
981 (save_global_or_fp_reg_p): New predicate.
982 (return_addr_reg_needed_p): Likewise.
983 (save_local_or_in_reg_p): Likewise.
984 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
985 (SORR_SAVE, SORR_RESTORE): Delete.
986 (sorr_pred_t): New typedef.
987 (sorr_act_t): New enum.
988 (save_or_restore_regs): Rename to...
989 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
990 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
991 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
992 mechanism. Add CFI information for double-word saves in 32-bit mode.
993 (emit_adjust_base_to_offset): New function extracted from...
994 (emit_save_or_restore_regs): ...this. Rename the rest to...
995 (emit_save_or_restore_regs_global_fp_regs): ...this.
996 (emit_save_or_restore_regs_local_in_regs): New function.
997 (gen_create_flat_frame_[123]): New functions.
998 (sparc_expand_prologue): Use SIZE local variable. Adjust.
999 (sparc_flat_expand_prologue): New function.
1000 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
1001 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
1002 (sparc_flat_expand_epilogue): New function.
1003 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
1004 (output_return): Likewise.
1005 (output_sibcall): Likewise.
1006 (sparc_output_mi_thunk): Likewise.
1007 (sparc_frame_pointer_required): Likewise.
1008 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
1009 function optimization.
1010 * config/sparc/sparc.md (flat): New attribute.
1011 (prologue): Add TARGET_FLAT handling.
1012 (save_register_window): Disable if TARGET_FLAT.
1013 (create_flat_frame_[123]): New patterns.
1014 (epilogue): Add TARGET_FLAT handling.
1015 (sibcall_epilogue): Likewise.
1016 (eh_return): New expander.
1017 (eh_return_internal): New insn and splitter.
1018 (return_internal): Add TARGET_FLAT handling.
1019 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
1020 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
1021 (nonlocal_goto): Add TARGET_FLAT handling.
1022 * config/sparc/t-elf: Add -mflat multilib.
1023 * config/sparc/t-leon: Likewise.
1024
fede8efa
JH
10252011-06-10 Jan Hubicka <jh@suse.cz>
1026
1027 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
1028 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
1029 (self_recursive_p): Use cgraph_function_node.
1030 (propagate_pure_const): Likewise.
1031 (propagate_nothrow): Likewise.
1032 * ipa-reference.c (ipa_reference_get_not_read_global): Use
1033 cgraph_function_node.
1034 (propagate_bits): Likewise.
1035 (propagate): Likewise.
1036
0127c76f
RR
10372011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1038 Richard Earnshaw <rearnsha@arm.com>
1039
9ee65b55 1040 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
1041 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
1042 (*thumb2_movdi_vfp): Delete.
1043 (*arm_movdi_vfp_cortexa8): Delete.
1044 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
1045 (*movdi_vfp_cortexa8): Likewise.
1046
f93fe5a0
RG
10472011-06-10 Richard Guenther <rguenther@suse.de>
1048
1049 * stor-layout.c (initialize_sizetypes): Give names to all
1050 sizetype kinds.
1051
f2164f87
IR
10522011-06-10 Ira Rosen <ira.rosen@linaro.org>
1053
1054 PR tree-optimization/49318
1055 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
1056 irrelevant pattern statements.
1057
3f91c962
HPN
10582011-06-10 Hans-Peter Nilsson <hp@axis.com>
1059
3d223145
HPN
1060 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
1061
3f91c962
HPN
1062 PR bootstrap/49354
1063 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
1064 to last assignment.
1065
b125ad45
JH
10662011-06-09 Jan Hubicka <jh@suse.cz>
1067
1068 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
1069 do not recompute reachable flag.
1070 (cgraph_finalize_function, cgraph_analyze_functions): Set
1071 redefined_extern_inline here.
1072
be330ed4
JH
10732011-06-09 Jan Hubicka <jh@suse.cz>
1074
1075 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
1076 (cgraph_only_called_directly_p): ... this one; bring offline.
1077 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1078 varpool_used_from_object_file_p): Drop names from the declaratoin.
1079 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
1080 collect_callers_of_node): New.
1081 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
1082 (cgraph_edge_recursive_p): Use cgraph_function_node.
1083 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
1084 (cgraph_node_cannot_be_local_p_1): Break out from ...
1085 (cgraph_node_can_be_local_p): ... here; walk aliases.
1086 (cgraph_for_node_thunks_and_aliases): New function.
1087 (cgraph_for_node_and_aliases): New function.
1088 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
1089 (cgraph_make_node_local) ... here; use
1090 cgraph_for_node_thunks_and_aliases.
be330ed4 1091 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
1092 (cgraph_set_nothrow_flag) ... here;
1093 use cgraph_for_node_thunks_and_aliases.
be330ed4 1094 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
1095 (cgraph_set_const_flag) ... here;
1096 use cgraph_for_node_thunks_and_aliases.
be330ed4 1097 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
1098 (cgraph_set_pure_flag) ... here;
1099 use cgraph_for_node_thunks_and_aliases.
be330ed4 1100 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
1101 (cgraph_propagate_frequency) ... here; use
1102 cgraph_for_node_thunks_and_aliases.
be330ed4 1103 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
1104 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
1105 New functions.
be330ed4
JH
1106 (collect_callers_of_node_1, collect_callers_of_node): New functions.
1107
2ea91d6b
HPN
11082011-06-10 Hans-Peter Nilsson <hp@axis.com>
1109
1110 PR rtl-optimization/49154
1111 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
1112 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
1113 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
1114 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
1115 * config/cris/cris.h (cris_register_move_cost): Remove
1116 !TARGET_V32 code. Tweak comments.
1117
9cf4fb5a
JH
11182011-06-09 Jan Hubicka <jh@suse.cz>
1119
1120 * cgraphbuild.c (record_eh_tables): Mark personality function as having
1121 address taken.
1122
6049a4c8
HPN
11232011-06-10 Hans-Peter Nilsson <hp@axis.com>
1124
c577822e 1125 PR rtl-optimization/49154
9ee65b55
UB
1126 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
1127 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 1128
54e1e4f7 1129 PR rtl-optimization/49154
6049a4c8
HPN
1130 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
1131 register classes.
1132 * doc/tm.texi: Regenerate.
1133
3be68b64
KK
11342011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
1135
1136 PR target/49307
1137 * config/sh/sh.md (UNSPEC_CHKADD): New.
1138 (chk_guard_add): New define_insn_and_split.
1139 (symGOT_load): Use chk_guard_add instead of blockage.
1140
bf806a90
KT
11412011-06-09 Kai Tietz <ktietz@redhat.com>
1142
1143 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
1144
d5a9738b
EB
11452011-06-09 Eric Botcazou <ebotcazou@adacore.com>
1146
1147 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
1148
527e82c2
WG
11492011-06-09 Wei Guozhi <carrot@google.com>
1150
1151 PR target/46975
1152 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
1153 (peephole2 for conditional move): Generate 16 bit instructions.
1154
b8bc3a43
UB
11552011-06-09 Uros Bizjak <ubizjak@gmail.com>
1156
1157 * config/i386/i386.md (*movdi_internal_rex64): Merge
1158 alternatives 6 and 8.
1159
4745da6e
DL
11602011-06-09 David Li <davidxl@google.com>
1161
1162 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
1163 * passes.c (passr_eq): New function.
1164 (create_pass_tab): New function.
1165 (pass_traverse): New function.
1166 (dump_one_pass): New function.
1167 (dump_pass_list): New function.
1168 (dump_passes): New function.
1169
bdf67bcb
DL
11702011-06-09 David Li <davidxl@google.com>
1171
1172 * tree-complex.c (tree_lower_complex): Gate cleanup.
1173 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
1174 (execute_optimize_stdarg): Ditto.
1175 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
1176 (execute_cleanup_eh_1): Ditto.
1177 (execute_cleanup_eh): Ditto.
1178 * gcse.c (gate_rtl_pre): Ditto.
1179 (execute_rtl_pre): Ditto.
1180 * except.c (finish_eh_generation): Ditto.
1181 (convert_to_eh_region_ranges): Ditto.
1182 * cprop.c (one_cprop_pass): Ditto.
1183
547fdef8
BS
11842011-06-09 Bernd Schmidt <bernds@codesourcery.com>
1185
1186 PR target/48673
1187 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
1188 in all basic blocks.
1189
10e48e39
RO
11902011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1191
1192 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
1193 (HAVE_ENABLE_EXECUTE_STACK): Define.
1194 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
1195 (HAVE_ENABLE_EXECUTE_STACK): Define.
1196 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1197 (HAVE_ENABLE_EXECUTE_STACK): Define.
1198 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
1199 (ENABLE_EXECUTE_STACK): Remove.
1200 (HAVE_ENABLE_EXECUTE_STACK): Define.
1201 [IN_LIBGCC2]: Don't include <windows.h>.
1202 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1203 (HAVE_ENABLE_EXECUTE_STACK): Define.
1204 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
1205 (HAVE_ENABLE_EXECUTE_STACK): Define.
1206 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
1207 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
1208 (HAVE_ENABLE_EXECUTE_STACK): Define.
1209 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
1210 (HAVE_ENABLE_EXECUTE_STACK): Define.
1211 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
1212 (HAVE_ENABLE_EXECUTE_STACK): Define.
1213 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1214 (HAVE_ENABLE_EXECUTE_STACK): Define.
1215 * config/alpha/alpha.c (alpha_trampoline_init): Test
1216 HAVE_ENABLE_EXECUTE_STACK.
1217 * config/i386/i386.c (ix86_trampoline_init): Likewise.
1218 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1219 (sparc64_initialize_trampoline): Likewise.
1220 * libgcc2.c [L_enable_execute_stack]: Remove.
1221 * system.h (ENABLE_EXECUTE_STACK): Poison.
1222 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
1223 * doc/tm.texi: Regenerate.
1224 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
1225
8ced31fe
JJ
12262011-06-09 Jakub Jelinek <jakub@redhat.com>
1227
1228 PR middle-end/49308
1229 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
1230 variable. After resetting and rescanning insn continue with previous
1231 statement.
1232
ee610fcd
RO
12332011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1234
1235 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
1236 (gcc_cv_ld_hidden): Likewise.
1237 * configure: Regenerate.
1238 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
1239 (ix86_stack_protect_fail): Mark unused.
1240 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
1241 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
1242 [TARGET_MACHO]: Don't define.
1243 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
1244 (TARGET_STACK_PROTECT_FAIL): Likewise.
1245 (rs6000_stack_protect_fail): Mark unused.
1246 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 1247 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 1248
8f2e22ff
AK
12492011-06-08 Andi Kleen <ak@linux.intel.com>
1250
1251 * varasm.c (get_section): Print location of other conflict
1252 for section conflicts.
1253
815cecbe
AK
12542011-06-08 Andi Kleen <ak@linux.intel.com>
1255
1256 * config/i386/driver-i386.c (host_detect_local_cpu):
1257 Add model 0x2d Intel CPU.
1258
1460ec5c
AK
12592011-06-08 Andi Kleen <ak@linux.intel.com>
1260
1261 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
1262 (globalize_reg): Add decl parameter. Compute location. Pass location
1263 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
1264 * rtl.h (globalize_reg): Update prototype.
1265 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
1266
df17530a
MX
12672011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
1268
1269 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
1270
409fed48
KK
12712011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1272
1273 PR target/49305
1274 * config/sh/predicates.md (general_movsrc_operand): Check
1275 mode for memory with indexed address for QI and HImode.
1276 (general_movdst_operand): Likewise.
1277
87c16a45
NP
12782011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
1279
b8bc3a43 1280 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 1281
49931fcb
AO
12822011-06-08 Alexandre Oliva <aoliva@redhat.com>
1283
1284 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
1285 (num_ssa_operands): Likewise.
1286 (op_iter_init_phiuse): Forward-declare.
1287 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
1288
29494d1f
NC
12892011-06-08 Nick Clifton <nickc@redhat.com>
1290
1291 * doc/invoke.texi (ARM Options): Update description of
1292 -mthumb-interwork.
1293
4ffae7ff
L
12942011-06-08 H.J. Lu <hongjiu.lu@intel.com>
1295
1296 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1297 unknown Intel family 0x6 CPUs.
1298
d9c77712
MJ
12992011-06-08 Martin Jambor <mjambor@suse.cz>
1300
1301 * tree-sra.c (mark_rw_status): Removed.
1302 (analyze_access_subtree): New parameter parent instead of
1303 mark_read and mark_write, propagate from that.
1304
b1def36c
JB
13052011-06-08 Julian Brown <julian@codesourcery.com>
1306
1307 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
1308 for double-precision helper functions in hard-float mode if only
1309 single-precision arithmetic is supported in hardware.
1310
6c8e9fc9
AM
13112011-06-08 Alexander Monakov <amonakov@ispras.ru>
1312
1313 PR rtl-optimization/49303
1314 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1315 code_motion_path_driver returned 0 or 1.
1316 (sel_region_finish): Clear h_d_i_d.
1317
c2bbcb0d
KK
13182011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1319
1320 * config/sh/sh.c (prepare_move_operands): Set pic register
1321 appropriately for global and local dynamic tls models even
1322 if flag_pic is unset.
1323
6976ae51
JM
13242011-06-07 Jason Merrill <jason@redhat.com>
1325
1326 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
1327
bb5b1f5e
XDL
13282011-06-07 Xinliang David Li <davidxl@google.com>
1329 * passes.c (enable_disable_pass): Handle assembler name.
1330 (is_pass_explicitly_enabled_or_disabled): Ditto.
1331
91ffe356
RO
13322011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1333
1334 PR tree-optimization/48497
1335 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
1336
06bc3ec7
BS
13372011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1338
1339 PR tree-optimization/46728
1340 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
1341 to use gimple_val_nonnegative_real_p.
1342 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
1343 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 1344
c074d740
L
13452011-06-07 H.J. Lu <hongjiu.lu@intel.com>
1346
1347 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
1348
8973b112
SG
13492011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
1350
1351 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
1352 constant vectors.
1353
67b88453
RG
13542011-06-07 Richard Guenther <rguenther@suse.de>
1355
1356 * stor-layout.c (initialize_sizetypes): Initialize all
1357 sizetypes based on target definitions.
1358 (set_sizetype): Remove.
1359 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
1360 * tree.h (set_sizetype): Remove.
1361
1dcad079
NC
13622011-06-07 Nick Clifton <nickc@redhat.com>
1363
1364 * config.gcc: Unify V850 architecture options and add support for
1365 newer V850 architectures.
1366 * config/v850/t-v850e: Delete.
1367
009db074
RG
13682011-06-07 Richard Guenther <rguenther@suse.de>
1369
1370 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
1371 Call set_sizetype from here.
1372
f373314f
AS
13732011-06-07 Andrew Stubbs <ams@codesourcery.com>
1374
1375 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
1376 (*maddhisi4tb, *maddhisi4tt): New define_insns.
1377
c536876e
AS
13782011-06-07 Bernd Schmidt <bernds@codesourcery.com>
1379 Andrew Stubbs <ams@codesourcery.com>
1380
1381 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
1382 multiplies.
1383 * doc/md.texi (Canonicalization of Instructions): Document widening
1384 multiply canonicalization.
1385
308dc890
JJ
13862011-06-07 Jakub Jelinek <jakub@redhat.com>
1387
1388 PR gcov-profile/49299
b8bc3a43 1389 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 1390
383d9c83
IR
13912011-06-07 Ira Rosen <ira.rosen@linaro.org>
1392
1393 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
1394 a pointer.
1395 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
1396 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
1397 vect_recog_pow_pattern): Likewise.
1398 (vect_pattern_recog_1): Remove declaration.
1399 (widened_name_p): Remove declaration. Add new argument to specify
1400 whether to check that both types are either signed or unsigned.
1401 (vect_recog_widen_mult_pattern): Update documentation. Handle
1402 unsigned patterns and multiplication by constants.
1403 (vect_pattern_recog_1): Update vect_recog_func references. Use
1404 statement information from the statement returned from pattern
1405 detection functions.
1406 (vect_pattern_recog): Update vect_recog_func reference.
1407 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
1408 multiplication by a constant use the type of the other operand.
1409
4de4b0f2
RS
14102011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
1411
1412 PR rtl-optimization/49145
1413 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
1414
a9d24544
JJ
14152011-06-06 Jakub Jelinek <jakub@redhat.com>
1416
99a5e049
JJ
1417 PR debug/49262
1418 * dwarf2out.c (native_encode_initializer): Decrement count in each
1419 iteration.
1420
04902d4c
JJ
1421 PR debug/49294
1422 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
1423 non-MODE_INT modes.
1424
a9d24544
JJ
1425 PR c++/49264
1426 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
1427 if stmt folded into nothing.
b8bc3a43
UB
1428 * tree-inline.c (fold_marked_statements): If a builtin at the end of
1429 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
1430 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
1431 to be NULL. Don't compute count and frequency if new_call is NULL.
1432
47c79d56
DN
14332011-06-04 Diego Novillo <dnovillo@google.com>
1434
1435 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
1436 (cgraph.o): Likewise.
1437 (cgraphunit.o): Likewise.
1438 * cgraphunit.c: Include lto-streamer.h
1439 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
1440 if LTO is enabled.
1441 * lto-streamer-in.c (unpack_value_fields): Call
1442 streamer_hooks.unpack_value_fields if set.
1443 (lto_materialize_tree): For unhandled nodes, first try to
1444 call lto_streamer_hooks.alloc_tree, if it exists.
1445 (lto_input_ts_decl_common_tree_pointers): Move reading of
1446 DECL_INITIAL to lto_streamer_read_tree.
1447 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
1448 (lto_streamer_read_tree): New.
1449 (lto_reader_init): Rename from lto_init_reader.
1450 Move initialization code to lto/lto.c.
1451 * lto-streamer-out.c (pack_value_fields): Call
1452 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
1453 (lto_output_tree_ref): For tree nodes that are not normally indexable,
1454 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 1455 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
1456 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
1457 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
1458 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
1459 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
1460 (lto_streamer_write_tree): New.
1461 (lto_output): Call lto_streamer_init directly.
1462 (lto_writer_init): Remove.
1463 * lto-streamer.c (streamer_hooks): New.
1464 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
1465 instead of lto_preload_common_nodes.
1466 (lto_is_streamable): Move from lto-streamer.h
1467 (lto_streamer_hooks_init): New.
1468 (streamer_hooks): New.
1469 (streamer_hooks_init): New.
1470 * lto-streamer.h (struct output_block): Forward declare.
1471 (struct lto_input_block): Likewise.
1472 (struct data_in): Likewise.
1473 (struct bitpack_d): Likewise.
1474 (struct streamer_hooks): Declare.
1475 (streamer_hooks): Declare.
1476 (lto_streamer_hooks_init): Declare.
1477 (lto_streamer_write_tree): Declare.
1478 (lto_streamer_read_tree): Declare.
1479 (streamer_hooks_init): Declare.
1480 (lto_is_streamable): Move to lto-streamer.c
1481
22afe143
AK
14822011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1483
1484 * longlong.h (smul_ppmm): The resulting register pair contains the
1485 higher order word first.
1486
3906ea1b
BS
14872011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1488
1489 PR tree-optimization/46728
1490 * builtins.c (powi_table): Remove.
1491 (powi_lookup_cost): Remove.
1492 (powi_cost): Remove.
1493 (expand_powi_1): Remove.
1494 (expand_powi): Remove.
1495 (expand_builtin_pow_root): Remove.
1496 (expand_builtin_pow): Remove.
1497 (expand_builtin_powi): Eliminate handling of constant exponent.
1498 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 1499
3598cabd
AO
15002011-06-06 Alexandre Oliva <aoliva@redhat.com>
1501
1502 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
1503
a7a110bb
AO
15042011-06-06 Alexandre Oliva <aoliva@redhat.com>
1505
1506 * dce.c (reset_unmarked_insns_debug_uses): New.
1507 (delete_unmarked_insns): Skip debug insns.
1508 (prescan_insns_for_dce): Likewise.
1509 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
1510 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
1511 active reg can be found.
1512 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
1513 (convert_regs_1): Use it.
1514
6d8402ac
AO
15152011-06-06 Alexandre Oliva <aoliva@redhat.com>
1516
1517 * tree-pretty-print.c (dump_function_header): Add flags.
1518 Don't dump decl_uid with nouid.
1519 * tree-pretty-print.h (dump_function_header): Adjust.
1520 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
1521 * passes.c (pass_init_dump_file): Pass dump_flags on.
1522 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
1523
f75e1f1e
AO
15242011-06-06 Alexandre Oliva <aoliva@redhat.com>
1525
1526 PR bootstrap/49270
1527 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
1528
275311c4
MP
15292011-06-06 Mikael Pettersson <mikpe@it.uu.se>
1530
1531 PR tree-optimization/49243
1532 * calls.c (setjmp_call_p): Also check if fndecl has the
1533 returns_twice attribute.
1534
aa4203e7
RO
15352011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1536
1537 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
1538 -ffast-math etc.
1539
48f9d59a
RH
15402011-06-06 Richard Henderson <rth@redhat.com>
1541 Georg-Johann Lay <avr@gjlay.de>
1542
1543 PR target/42210
1544 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
1545 New predicates.
1546 * config/avr/avr.md ("insv"): New insn expander.
1547 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
1548 "*insv.not.io", "*insv.reg"): New insns.
1549
11494830
HPN
15502011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
1551
1552 PR target/49285
b8bc3a43
UB
1553 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
1554 to nonimmediate_operand from memory_operand for the operand that is to
1555 be forced to memory by the expander. Lose the constraints.
11494830 1556
679e70df
EB
15572011-06-05 Eric Botcazou <ebotcazou@adacore.com>
1558
1559 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
1560 EH return when delayed branches are disabled.
1561
4d3d7f15
UB
15622011-06-05 Uros Bizjak <ubizjak@gmail.com>
1563
1564 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
1565 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
1566 calculation.
1567 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
1568 Simplify MODE_V1DF and MODE_V2SF handling.
1569 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
1570 Simplify MODE_SF handling.
1571
a45c0557
JH
15722011-06-04 Jan Hubicka <jh@suse.cz>
1573
1574 PR tree-optimization/48893
1575 PR tree-optimization/49091
1576 PR tree-optimization/49179
1577 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
1578 Bounds check.
1579
26740835
JH
15802011-06-04 Jan Hubicka <jh@suse.cz>
1581
1582 PR lto/48954
b8bc3a43
UB
1583 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
1584 bitmaps.
26740835 1585
014ab419
JW
15862011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
1587
1588 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
1589
407bcba7
JJ
15902011-06-04 Jakub Jelinek <jakub@redhat.com>
1591
1592 PR target/49281
1593 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
1594 to be strictly smaller than 1 << shiftcount.
1595
e3195c52
JH
15962011-06-04 Jan Hubicka <jh@suse.cz>
1597
1598 PR tree-optimize/48929
1599 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
1600 of empty predicate.
1601
047d33a0
AO
16022011-06-04 Alexandre Oliva <aoliva@redhat.com>
1603
1604 PR debug/48333
1605 * calls.c (emit_call_1): Prefer the __builtin declaration of
1606 builtin functions.
1607
dc587809
DN
16082011-06-03 Diego Novillo <dnovillo@google.com>
1609
1610 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
1611 (lto_input_tree_pointers): Likewise.
1612 * lto-streamer-out.c (pack_value_fields): Likewise.
1613 (lto_output_tree_pointers): Likewise.
1614 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
1615 and OPTIMIZATION_NODE.
1616
58cd1d70
RO
16172011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1618
1619 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
1620 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
1621 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
1622 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
1623 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
1624 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
1625 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
1626 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
1627 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
1628 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
1629 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
1630 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
1631 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
1632 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
1633 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
1634 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
1635 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
1636 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
1637 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
1638 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
1639 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
1640 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
1641 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
1642 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
1643 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
1644 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
1645 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
1646 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
1647 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
1648 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
1649 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
1650 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
1651 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
1652 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
1653 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
1654 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
1655 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
1656 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
1657 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
1658 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
1659 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
1660 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
1661 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
1662 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
1663 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
1664 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
1665 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
1666 * system.h (MD_UNWIND_SUPPORT): Poison.
1667 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
1668 * doc/tm.texi: Regenerate.
1669 * unwind-dw2.c: Include md-unwind-support.h instead of
1670 MD_UNWIND_SUPPORT.
1671 * config/ia64/unwind-ia64.c: Likewise.
1672 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
1673
10c63ba4 16742011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
1675
1676 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
1677
1b7a0148
RH
16782011-06-03 Richard Henderson <rth@redhat.com>
1679 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1680
1681 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
1682 (sigill_hdlr): Correct insn, insn size.
1683 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
1684
737346fa
RO
16852011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1686
1687 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
1688 t-slibgcc-dummy.
1689 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
1690 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
1691 * config/mips/t-iris: Remove.
1692 * config/mips/t-irix6: New file.
1693 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
1694
c192cee6
RO
16952011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1696
1697 * Makefile.in (LIB2ADDEHDEP): Remove.
1698 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
1699 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
1700 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
1701 * config/t-darwin (LIB2ADDEHDEP): Remove.
1702 * config/t-freebsd (LIB2ADDEHDEP): Remove.
1703 * config/t-linux (LIB2ADDEHDEP): Remove.
1704
d5828cc7
DN
17052011-06-03 Diego Novillo <dnovillo@google.com>
1706
1707 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
1708 (lto_register_var_decl_in_symtab): Likewise.
1709 (lto_register_function_decl_in_symtab): Likewise.
1710 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 1711 logic to uniquify_nodes.
d5828cc7 1712
ee33b5f0
RO
17132011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1714
1715 * config/alpha/t-osf5: Remove.
1716 * config/alpha/t-osf-pthread: Remove.
1717 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
1718 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
1719
16868d84
JB
17202011-06-03 Julian Brown <julian@codesourcery.com>
1721
1722 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
1723 (strongarm1110): Use strongarm tuning.
4d3d7f15 1724 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
1725 * config/arm/arm.c (arm_strongarm_tune): New.
1726 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
1727 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
1728 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
1729 setting, using previous defaults or 1 for Cortex-A5.
1730 (arm_option_override): Set max_insns_skipped from current tuning.
1731
1cec1285
NS
17322011-06-03 Nathan Sidwell <nathan@codesourcery.com>
1733
1734 * doc/install.texi (Options specification): Document --with-specs.
1735
eed55426
RR
17362011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1737
1738 * config/arm/neon.md (orndi3_neon): Actually split it.
1739
d5b6cc25
AO
17402011-06-02 Alexandre Oliva <aoliva@redhat.com>
1741
1742 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
1743 * var-tracking.c (reverse_op): Limite recurse depth to 5.
1744
2ba42841
AO
17452011-06-02 Alexandre Oliva <aoliva@redhat.com>
1746
1747 PR debug/47590
1748 * target.def (delay_sched2, delay_vartrack): New.
1749 * doc/tm.texi.in: Update.
1750 * doc/tm.texi: Rebuild.
1751 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
1752 * var-tracking.c (gate_handle_var_tracking): Likewise.
1753 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
1754 (bfin_flag_var_tracking): Drop.
1755 (output_file_start): Don't save and override flag_var_tracking.
1756 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
1757 (bfin_reorg): Test original variables.
1758 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
1759 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
1760 (ia64_flag_var_tracking): Drop.
1761 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
1762 (ia64_file_start): Don't save and override flag_var_tracking.
1763 (ia64_override_options_after_change): Ditto
1764 flag_schedule_insns_after_reload.
1765 (ia64_reorg): Test original variables.
1766 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
1767 (picochip_flag_var_tracking): Drop.
1768 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
1769 (picochip_option_override): Don't save and override
1770 flag_schedule_insns_after_reload.
1771 (picochip_asm_file_start): Ditto flag_var_tracking.
1772 (picochip_reorg): Test original variables.
1773 * config/spu/spu.c (spu_flag_var_tracking): Drop.
1774 (TARGET_DELAY_VARTRACK): Define.
1775 (spu_var_tracking): New.
1776 (spu_machine_dependent_reorg): Call it.
1777 (asm_file_start): Don't save and override flag_var_tracking.
1778
a700b5f0
KK
17792011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1780
1781 PR target/49163
1782 * config/sh/predicates.md (general_movsrc_operand): Return 0
1783 for memory and memory subreg of which address is an invalid
1784 indexed address for QI and HImode.
1785 (general_movdst_operand): Likewise.
1786
76015c34
EB
17872011-06-02 Eric Botcazou <ebotcazou@adacore.com>
1788
1789 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
1790 edges only, when there is a non-local label in the function.
1791 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
1792
4e76acd2
UB
17932011-06-02 Uros Bizjak <ubizjak@gmail.com>
1794
1795 * config/i386/constraints.md (Y3): New register constraint.
1796 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
1797 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
1798 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
1799 *sse2_interleave_lowv2df.
1800
288f605f
JB
18012011-06-02 Julian Brown <julian@codesourcery.com>
1802
1803 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
1804 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
1805 (arm_cortex_a5_tune): New.
1806
7ec70105
JB
18072011-06-02 Julian Brown <julian@codesourcery.com>
1808
153668ec
JB
1809 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
1810 * config/arm/arm.c (arm_default_branch_cost): New.
1811 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
1812 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
1813 (arm_fa726_tune): Set branch_cost field using
1814 arm_default_branch_cost.
1815 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
1816 current_tune structure.
1817 * dojump.c (tm_p.h): Include file.
1818
18192011-06-02 Julian Brown <julian@codesourcery.com>
1820
1821 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
1822 tuning.
7ec70105
JB
1823 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
1824 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
1825 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
1826 field.
1827 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
1828 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
1829 (arm_fa726te_tune): Add prefer_constant_pool setting.
1830 (arm_v6t2_tune, arm_cortex_tune): New.
1831 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
1832 prefer_constant_pool setting.
1833
aad61732
UB
18342011-06-02 Uros Bizjak <ubizjak@gmail.com>
1835
4e76acd2
UB
1836 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
1837 switch statement.
aad61732
UB
1838 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
1839 (*movdf_internal) <case 6,7,8>: Ditto.
1840
4e76acd2 1841 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
1842 * config/i386/sse.md (vec_set<mode>_0): Merge with
1843 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
1844 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
1845 *vec_extractv2di_1_sse.
1846 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
1847 and *vec_concatv2di_rex64_sse.
1848
6e588138
SH
18492011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
1850
1851 PR target/48807
1852 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
1853 of cgraph_local_info for null before attempting to use it.
1854
bc6d3f91
EB
18552011-06-02 Eric Botcazou <ebotcazou@adacore.com>
1856
1857 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
1858 (current_function_dynamic_alloc_count): Delete.
1859 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
1860 (expand_builtin_nonlocal_goto): Remove obsolete comment.
1861 (expand_builtin_update_setjmp_buf): Remove dead code.
1862 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
1863 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
1864 support.
1865 * function.c (instantiate_virtual_regs): Likewise.
1866 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
1867 for a block with a single abnormal incoming edge.
1868 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 1869 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
1870 * config/sparc/sparc-protos.h (load_got_register): Declare.
1871 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1872 (load_got_register): Make global.
1873 (sparc_frame_pointer_required): Add 'static'.
1874 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
1875 (sparc_builtin_setjmp_frame_value): New function.
1876 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
1877 (save_stack_nonlocal): New expander.
1878 (restore_stack_nonlocal): Likewise.
1879 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
1880 (nonlocal_goto_internal): New insn.
1881 (goto_handler_and_restore): Delete.
1882 (builtin_setjmp_setup): Likewise.
1883 (do_builtin_setjmp_setup): Likewise.
1884 (setjmp): Likewise.
1885 (builtin_setjmp_receiver): New expander.
1886
69282fee
DL
18872011-06-01 David Li <davidxl@google.com>
1888
1889 PR middle-end/49261
1890 * tree-pretty-print.c (dump_function_header): Format cleanup.
1891
e95873dd
KK
18922011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
1893
1894 PR target/49238
1895 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
1896 needed when original operands are used for msw_skip comparison.
1897
88c15821
JJ
18982011-06-01 Jakub Jelinek <jakub@redhat.com>
1899
1900 PR debug/49250
1901 * var-tracking.c (add_uses, add_stores): Don't call
1902 cselib_subst_to_values on ENTRY_VALUE.
1903
07233947
DN
19042011-06-01 Diego Novillo <dnovillo@google.com>
1905
1906 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
1907 output_record_start with LTO_null instead of output_zero.
1908 (lto_output_ts_binfo_tree_pointers): Likewise.
1909 (lto_output_tree): Likewise.
1910 (output_eh_try_list): Likewise.
1911 (output_eh_region): Likewise.
1912 (output_eh_lp): Likewise.
1913 (output_eh_regions): Likewise.
1914 (output_bb): Likewise.
1915 (output_function): Likewise.
1916 (output_unreferenced_globals): Likewise.
1917 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
1918 instead of NUM_TREE_CODES.
1919 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
1920 (lto_output_int_in_range): Change << to >> when shifting VAL.
1921
4ee3537a
DN
19222011-06-01 Diego Novillo <dnovillo@google.com>
1923
1924 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
1925 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
1926
02972eaf
RS
19272011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1928
1929 PR target/45074
1930 * optabs.h (valid_multiword_target_p): Declare.
1931 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
1932 doing multi-word operations.
1933 * optabs.c (expand_binop): Likewise.
1934 (expand_doubleword_bswap): Likewise.
1935 (expand_absneg_bit): Likewise.
1936 (expand_unop): Likewise.
1937 (expand_copysign_bit): Likewise.
1938 (multiword_target_p): New function.
1939
4d41c2d1
RS
19402011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1941
1942 PR rtl-optimization/48830
1943 PR rtl-optimization/48808
1944 PR rtl-optimization/48792
1945 * reload.c (push_reload): Check contains_reg_of_mode.
1946 * reload1.c (strip_paradoxical_subreg): New function.
1947 (gen_reload_chain_without_interm_reg_p): Use it to handle
1948 paradoxical subregs.
1949 (emit_output_reload_insns, gen_reload): Likewise.
1950
5f57dccb
DL
19512011-06-01 David Li <davidxl@google.com>
1952
1953 * predict.c : Change pass name
1954 * ipa.c: Ditto.
1955 * dce.c: Ditto.
1956 * tree-profile.c: Ditto.
1957 * except.c: Ditto.
1958
ea6cf778
DL
19592011-06-01 David Li <davidxl@google.com>
1960
1961 * tree-pretty-print.c (dump_function_header): New function.
1962 * final.c (rest_of_clean_state): Use header dumper.
1963 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
1964 * passes.c (pass_init_dump_file): Use header dumper.
1965
ebdc0d4b
JJ
19662011-06-01 Jakub Jelinek <jakub@redhat.com>
1967
eeeb9b49
JJ
1968 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
1969 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
1970 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
1971 New functions.
1972 (mem_loc_descriptor): Use them.
1973
ebdc0d4b
JJ
1974 * var-tracking.c (create_entry_value): New function.
1975 (vt_add_function_parameter): Use it.
1976
0699e415
RO
19772011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1978
1979 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
1980 Include <signal.h>, <ucontext.h>.
1981 (sigill_caught): Define.
1982 (sigill_hdlr): New function.
1983 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
1984 insns can be executed.
aad61732 1985 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
1986 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
1987
ca24c5ad
RO
19882011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1989
1990 * config/t-slibgcc-darwin: Move to ...
aad61732 1991 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
1992 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
1993 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
1994 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 1995 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
1996 Remove i386/t-crtstuff from tmake_file.
1997 (i[34567]86-*-solaris2*): Remove t-svr4,
1998 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
1999 t-slibgcc-dummy.
2000 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
2001 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
2002 sparc/t-crtfm from tmake_file.
2003 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
2004 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
2005 Remove extra_parts.
2006 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
2007 * config/i386/t-nwld (SHLIB_LINK): Remove.
2008 * config/i386/t-rtems-i386: Rename to ...
2009 * config/i386/t-rtems: ... this.
2010 ($(T)crti.o, $(T)crtn.o): Remove.
2011 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
2012 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
2013 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
2014 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
2015 EXTRA_MULTILIB_PARTS): Remove.
2016 * config/sparc/t-sol2-64: Likewise.
2017 * config/sparc/t-sol2: Remove.
2018 * config/sparc/t-crtin: Remove.
2019 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
2020 * config/i386/gmon-sol2.c: Remove.
2021 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
2022 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
2023 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
2024 * config/i386/sol2-gc1.asm: Remove.
2025 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
2026 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
2027 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
2028 * config/t-slibgcc-sld: Remove.
2029
a78d13c3
JJ
20302011-06-01 Jakub Jelinek <jakub@redhat.com>
2031
2032 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
2033 base_type_for_mode with op_mode instead of mode.
2034
572070ef
PB
20352011-06-01 Paul Brook <paul@cpodesourcery.com>
2036
2037 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
2038 Cortex-A15.
2039 * config/arm/arm-tune.md: Regenerate.
2040 * config/arm/arm-tables.opt: Regenerate.
2041 * config/arm/arm.c (FL_DIV): Rename...
2042 (FL_THUMB_DIV): ... to this.
2043 (FL_ARM_DIV): Define.
2044 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
2045 (arm_arch_hwdiv): Remove.
2046 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
2047 (arm_issue_rate): Add cortexr5.
2048 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
2049 __ARM_ARCH_EXT_IDIV__.
2050 (TARGET_IDIV): Define.
2051 (arm_arch_hwdiv): Remove.
2052 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
2053 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
2054 (divsi3, udivsi3): New patterns.
2055 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
2056 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
2057
11026b51
MJ
20582011-06-01 Martin Jambor <mjambor@suse.cz>
2059
2060 * ipa-utils.c (ipa_dfs_info): New field scc_no.
2061 * ipa-utils.c (searchc): Set scc_no.
2062
b6156cf2
MJ
20632011-06-01 Martin Jambor <mjambor@suse.cz>
2064
2065 * ipa-utils.c (searchc_env): New field allow_overwritable.
2066 (searchc): do not ignore edges to overwritable nodes if indicated
2067 by env->allow_overwritable.
2068 (ipa_reduced_postorder): Set env.allow_overwritable.
2069
6807da97
RG
20702011-06-01 Richard Guenther <rguenther@suse.de>
2071
2072 * tree.c (free_lang_data): Do not reset boolean_type_node nor
2073 char_type_node.
2074 * lto-streamer.c (lto_record_common_node): Take node pointer,
2075 do not register types.
2076 (lto_preload_common_nodes): Explicitly skip preloading nodes
2077 that differ between frontends.
2078
66bd20e7 20792011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
2080
2081 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
2082 NON_FLOAT_REGS.
2083
66bd20e7 20842011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
2085
2086 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
2087 parameter value for dump. Dump cost on outermost call only.
2088 (rs6000_memory_move_cost): Dump cost on outermost call only.
2089
7351d8da
JJ
20902011-05-31 Jakub Jelinek <jakub@redhat.com>
2091
ead7c399
JJ
2092 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
2093 DW_OP_GNU_convert ops.
2094
509f4495
JJ
2095 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
2096 cselib_preserve_constants.
2097 (cselib_lookup_1): If cselib_preserve_constants,
2098 a new VALUE is being created for REG and there is a VALUE for the
2099 same register in wider mode, add another loc with lowpart SUBREG of
2100 the wider VALUE.
2101 (cselib_subst_to_values): Handle ENTRY_VALUE.
2102 * var-tracking.c (replace_expr_with_values): Return NULL for
2103 ENTRY_VALUE too.
2104 * dwarf2out.c (convert_descriptor_to_signed): New function.
2105 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
2106 instead of two shifts.
2107 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
2108 the right mode if needed.
2109 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
2110 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
2111 convert_descriptor_to_signed.
2112 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
2113 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
2114
7351d8da
JJ
2115 PR target/48688
2116 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
2117
5cc93ee0
UB
21182011-05-31 Uros Bizjak <ubizjak@gmail.com>
2119
2120 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
2121 of X87MODEI12 and SWI48x instead of SSEMODEI24.
2122 (SWI248x): New mode iterator, rename from X87MODEI.
2123 (X87MODEI): Remove mode iterator.
2124 (X87MODEI12): Ditto.
2125 (SSEMODEI24): Ditto.
2126
f0686e78
AO
21272011-05-31 Alexandre Oliva <aoliva@redhat.com>
2128
2129 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
2130 * doc/invoke.texi: Document max-vartrack-expr-depth.
2131 * var-tracking.c (EXPR_DEPTH): New.
2132 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
2133
f3308413
AO
21342011-05-31 Alexandre Oliva <aoliva@redhat.com>
2135
2136 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
2137 * config/i386/sse.md: Add n to negated FMA pattern names.
2138
28c14a04
AO
21392011-05-31 Alexandre Oliva <aoliva@redhat.com>
2140
2141 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
2142
70efc82d
AO
21432011-05-31 Alexandre Oliva <aoliva@redhat.com>
2144
5cc93ee0 2145 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 2146
6ba5d856
UB
21472011-05-31 Uros Bizjak <ubizjak@gmail.com>
2148
2149 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
2150 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
2151
21522011-05-31 Uros Bizjak <ubizjak@gmail.com>
2153
2154 * config/i386/i386.md (*movtf_internal): Avoid allocating general
2155 registers. Penalize F*r->o alternative to prevent partial memory
2156 stalls. Slightly penalize *roF->*r alternative. Generate SSE
2157 CONST_DOUBLE immediates when optimizing function for size. Do not move
2158 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
2159 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
2160 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
2161 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
2162 alternatives.
2163 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
2164
2165 (fp_register_operand splitters): Use fp_register_operand
2166 constraint. Do not use FP_REG_P in insn condition.
2167 (any_fp_register_operand splitters): Use any_fp_register_operand
2168 constraint. Do not use ANY_FP_REG_P in insn condition.
2169
533c07c5
JH
21702011-05-31 Jan Hubicka <jh@suse.cz>
2171
2172 * cgraph.h (cgraph_inline_failed_t): Give enum a name
2173 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
2174 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
2175 (lto_output_edge): Use output_enum and var_len_unsigned.
2176 (lto_output_varpool_node): Likewise.
2177 (input_overwrite_node): Do not take resolution parameter;
2178 extract it from a bitpack.
2179 (input_node): Do not read resolution; use input_enum and
2180 var_len_unsigned.
2181 (input_varpool_node): Likewise.
2182 (input_edge): Likewise.
2183 (input_cgraph_1): Likewise.
2184
2611db71
RG
21852011-05-31 Richard Guenther <rguenther@suse.de>
2186
2187 * gimple.c (gimple_register_canonical_type): Do not register
2188 any types via gimple_register_type.
2189
b9e57365
JH
21902011-05-31 Jan Hubicka <jh@suse.cz>
2191
2192 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
2193 of thunks.
2194
35979cc2
JJ
21952011-05-31 Jakub Jelinek <jakub@redhat.com>
2196
2197 PR rtl-optimization/49235
2198 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
2199 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
2200
8f7de592
IR
22012011-05-31 Ira Rosen <ira.rosen@linaro.org>
2202
2203 PR tree-optimization/49093
2204 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
2205 data references.
2206
8d8a3bda
DS
22072011-05-31 Dodji Seketeli <dodji@redhat.com>
2208
2209 PR debug/49047
2210 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 2211 for concrete functions containing the code of cloned functions.
8d8a3bda 2212
2e87621c
RG
22132011-05-31 Richard Guenther <rguenther@suse.de>
2214
2215 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
2216 to ...
2217 (forward_propagate_into_comparison_1): ... this.
2218 (forward_propagate_comparison): Rename to ...
2219 (forward_propagate_into_comparison): ... this. Split out
2220 real forward propagation code to ...
2221 (forward_propagate_comparison): ... this.
2222 (forward_propagate_into_gimple_cond): Remove looping.
2223 (forward_propagate_into_cond): Likewise.
2224 (simplify_not_neg_expr): Return whether we have done something.
2225 (simplify_gimple_switch): Likewise.
2226 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
2227 (ssa_forward_propagate_and_combine): ... this. Re-structure
2228 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 2229 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
2230 (pass_forwprop): Adjust.
2231
5a880d5d
ILT
22322011-05-30 Ian Lance Taylor <iant@google.com>
2233
2234 * godump.c (go_format_type): Correct length of name added to
2235 obstack for anonymous field.
2236
5f133038
KK
22372011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
2238
2239 PR target/49186
2240 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
2241 part of the second operand is 0.
2242
b17d5426
UB
22432011-05-30 Uros Bizjak <ubizjak@gmail.com>
2244
2245 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
2246 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
2247 to memory for !TARGET_MEMORY_MISMATCH_STALL.
2248 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 2249 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
2250 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
2251 when optimizing function for size. Do not move CONST_DOUBLEs
2252 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
2253 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
2254 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
2255 check for ANY_FP_REGNO_P instead.
2256 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
2257 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
2258 function for speed.
2259 * config/i386/i386.c (ix86_option_override_internal): Do not
2260 set TARGET_INTEGER_DFMODE_MOVES here.
2261
a0cd843f
L
22622011-05-30 H.J. Lu <hongjiu.lu@intel.com>
2263
2264 PR target/49168
aad61732 2265 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 2266
006a5f38
JJ
22672011-05-30 Jakub Jelinek <jakub@redhat.com>
2268
2269 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
2270 DW_TAG_rvalue_reference_type even for
2271 -gdwarf-4 -fno-debug-types-section.
2272
6e96f98a
BS
22732011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2274
2275 PR tree-optimization/46728
2276 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
2277 (build_and_insert_binop): New.
2278 (gimple_expand_builtin_pow): Reorder args for
2279 build_and_insert_call; use build_and_insert_binop; add more
2280 optimizations for fractional exponents.
b17d5426 2281
4f60111f
NF
22822011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
2283
2284 PR bootstrap/49190
2285
2286 Revert:
2287 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2288
2289 * tree.h (struct tree_identifier): Inherit from tree_typed, not
2290 tree_common.
2291 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
2292 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
2293 TS_BASE instead of TS_COMMON.
2294 * varasm.c (assemble_name): Remove assert.
2295
3fd7879d
RS
22962011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
2297
2298 * config.gcc: Keep obselete list sorted.
2299
80060f7a
JJ
23002011-05-30 Jakub Jelinek <jakub@redhat.com>
2301 Eric Botcazou <ebotcazou@adacore.com>
2302
2303 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
2304 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
2305 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
2306 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
2307 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
2308
17e99cdb
RG
23092011-05-30 Richard Guenther <rguenther@suse.de>
2310
2311 * gimple.c (gimple_types_compatible_p_1): Compare record
2312 and union type members properly.
2313
42b05b6e
RG
23142011-05-30 Richard Guenther <rguenther@suse.de>
2315
2316 PR tree-optimization/49210
6ba5d856
UB
2317 * ipa-split.c (split_function): Care for the case where the call
2318 result is not trivially convertible to the result holding variable.
42b05b6e 2319
f3321158
RG
23202011-05-30 Richard Guenther <rguenther@suse.de>
2321
2322 PR tree-optimization/49218
2323 * tree-vrp.c (adjust_range_with_scev): Properly check whether
2324 overflow occured.
2325
d12d8efe
RG
23262011-05-30 Richard Guenther <rguenther@suse.de>
2327
2328 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
2329 New function split out from ...
2330 (forward_propagate_into_gimple_cond): ... here. Adjust.
2331 (forward_propagate_into_cond): Likewise.
2332 (forward_propagate_comparison): Also propagate into
2333 comparisons on assignment RHS. Change return value to
2334 behave similar to forward_propagate_into_cond.
2335 (tree_ssa_forward_propagate_single_use_vars): Handle
2336 strict-overflow warnings properly for forward_propagate_comparison.
2337
df33b41f
RO
23382011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2339
2340 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
2341 from plugin linker.
2342 * configure: Regenerate.
2343
69940d4d
IR
23442011-05-30 Ira Rosen <ira.rosen@linaro.org>
2345
2346 PR tree-optimization/49199
2347 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 2348 non-reduction operands are either defined in the loop or by induction.
69940d4d 2349
226c52aa
XDL
23502011-05-29 Xinliang David Li <davidxl@google.com>
2351
2352 * opts-global.c (handle_common_deferred_options): Handle new options.
2353 * passes.c (register_one_dump_file): Call register_pass_name.
2354 (execute_one_pass): Check explicit enable/disable flag.
2355 (passr_hash): New function.
2356 (passr_eq): Ditto.
2357 (register_pass_name): Ditto.
2358 (get_pass_by_name): Ditto.
2359 (pass_hash): Ditto.
2360 (pass_eq): Ditto.
2361 (enable_pass): Ditto.
2362 (disable_pass): Ditto.
2363 (is_pass_explicitly_enabled_or_disabled): Ditto.
2364
491d8eed
UB
23652011-05-29 Uros Bizjak <ubizjak@gmail.com>
2366
2367 * config/i386/i386.md (*movoi_internal_avx): Use
2368 standard_sse_constant_opcode for alternative 0.
2369 (*movti_internal_sse): Ditto.
2370 (*movti_internal_rex64): Use standard_sse_constant_opcode for
2371 alternative 2.
2372 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
2373 sselog1 type moves.
2374 (*movsi_internal): Ditto.
2375 (*movdi_internal): Ditto. Add ssecvt type moves.
2376
eb93b31f
EB
23772011-05-29 Eric Botcazou <ebotcazou@adacore.com>
2378
2379 PR target/48830
2380 * rtlanal.c (simplify_subreg_regno): Adjust comment.
2381
3f831b7d
JJ
23822011-05-29 Jakub Jelinek <jakub@redhat.com>
2383
2384 PR rtl-optimization/49095
2385 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
2386 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
2387
ee3ee488
RS
23882011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
2389
2390 PR target/43995
2391 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
2392 recurse_p argument. Only follow register copies if it is set,
2393 and prevent mips_find_pic_call_symbol from recursing.
2394 (mips_find_pic_call_symbol): Add a recurse_p argument.
2395 Pass it to mips_pic_call_symbol_from_set.
2396 (mips_annotate_pic_calls): Update accordingly.
2397
65f3dedb
RS
23982011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
2399
2400 * emit-rtl.c (try_split): Use a loop to search for
2401 NOTE_INSN_CALL_ARG_LOCATIONs.
2402
61e374ab
RG
24032011-05-29 Richard Guenther <rguenther@suse.de>
2404
2405 PR tree-optimization/49217
2406 * ipa-pure-const.c (propagate_pure_const): Fix typos.
2407
fac009a8
JH
24082011-05-28 Jan Hubicka <jh@suse.cz>
2409
2410 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
2411 length.
2412 (string_slot_free): Remove
2413 (create_output_block): Initialize obstack.
2414 (destroy_output_block): Free obstack.
2415 (lto_string_index): Add PERSISTENT parameter; do not duplicate
2416 the string unless it needs to be added into the hash.
2417 (lto_output_string_with_length): Add persistent attribute;
2418 handle NULL strings.
2419 (lto_output_string): Add PERSISTENT parameter.
2420 (output_string_cst, output_identifier): Simplify.
2421 (lto_output_location_bitpack): Update.
2422 (lto_output_builtin_tree): Update.
2423 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
2424 (lto_output_string, lto_output_string_with_length): Remove
2425 declarations; functions are static now.
fac009a8 2426
fa766006
JH
24272011-05-28 Jan Hubicka <jh@suse.cz>
2428
2429 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
2430 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
2431 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
2432 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
2433 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
2434 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
2435 unpack_ts_decl_with_vis_value_fields,
2436 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
2437 lto_get_builtin_tree): Use enum and variable length i/o.
2438 * basic-block.h (profile_status_d): Add PROFILE_LAST.
2439 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
2440 New functions.
2441 (bp_pack_enum, bp_unpack_enum): New macros.
2442
e092158b
RS
24432011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2444
2445 * genrecog.c: Remove redundant forward declarations.
2446
7ca2afa0
RS
24472011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2448
2449 * config.gcc: Deprecate mips*-*-openbsd*.
2450
a601a53a
RS
24512011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2452
2453 PR bootstrap/49195
2454 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
2455 for match_op_dup.
2456
fc64b448
AP
24572011-05-27 Andrew Pinski <pinskia@gmail.com>
2458
2459 PR middle-end/48981
2460 * gengtype.c (vec_prefix_type): New function.
2461 (note_def_vec): Use vec_prefix_type and change the length
2462 attribute to be based on the prefix.
2463 * vec.c: Include coretypes.h before vec.h.
2464 (struct vec_prefix): Remove.
2465 (vec_gc_p_reserve): Change the offsetof to sizeof.
2466 (vec_gc_p_reserve_exact): Likewise.
2467 (vec_heap_p_reserve): Likewise.
2468 (vec_heap_p_reserve_exact): Likewise.
2469 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
2470 (vec_stack_p_reserve): Change the offsetof to sizeof.
2471 (vec_stack_p_reserve_exact): Likewise.
2472 * vec.h (struct vec_prefix): New struct definition.
2473 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
2474 (VEC_T_GTY(T,B)): Likewise.
2475 (DEF_VEC_FUNC_P(T)): Use prefix field.
2476 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
2477 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
2478
ba869341
BS
24792011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2480
2481 PR tree-optimization/46728
2482 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
2483 (powi_as_mults): Add gimple_set_location.
2484 (build_and_insert_call): New.
2485 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
2486 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 2487
d296760d
AM
24882011-05-27 Alexander Monakov <amonakov@ispras.ru>
2489
2490 * doc/contrib.texi: Update copyright years.
2491 (Contributors): Add Zdenek Sojka.
2492
38e01f9e
NF
24932011-05-27 Nathan Froyd <froydnj@codesourcery.com>
2494
2495 * c-decl.c (c_push_function_context): Copy the current statement
2496 list stack.
2497 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
2498 (finish_struct): Call building_stmt_list_p instead of checking
2499 cur_stmt_list.
2500 * c-parser.c (c_parser_postfix_expression): Likewise.
2501 * c-typeck.c (c_end_compound_stmt): Likewise.
2502 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
2503 * tree-iterator.c (stmt_list_cache): Change to a VEC.
2504 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
2505 (free_stmt_list): Likewise.
2506 * tree.h (struct tree_statement_list): Include typed_tree instead
2507 of tree_common.
2508 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
2509 as TS_TYPED instead of TS_COMMON.
2510
8950516e 25112011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 2512 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
2513
2514 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
2515 (HAVE_AS_IX86_TLSGDPTL): Define.
2516 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
2517 (HAVE_AS_IX86_TLSLDMPLT): Define.
2518 * configure: Regenerate.
2519 * config.in: Regenerate.
2520 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
2521 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
2522 TARGET_SUN_TLS, use @tlsgdplt or @plt.
2523 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
2524 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
2525 @tlsldmplt or @plt.
2526 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
2527
b0bd15f7
BS
25282011-05-27 Bernd Schmidt <bernds@codesourcery.com>
2529
2530 * sched-int.h (struct _haifa_deps_insn_data): New members cond
2531 and reverse_cond.
2532 (INSN_COND, INSN_REVERSE_COND): New macros.
2533 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
2534 once.
2535 (sched_get_condition_with_rev): Cache the results, and look them up
2536 if possible.
2537 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
2538 are clobbered by the current insn.
2539 * target.def (exposed_pipline): New sched data hook.
2540 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
2541 * doc/tm.texi: Regenerate.
2542
fa65a9cf
BS
25432011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2544
2545 PR tree-optimization/49170
2546 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
2547 sincos or cexp.
b0bd15f7 2548
c2299dfe
RG
25492011-05-27 Richard Guenther <rguenther@suse.de>
2550
2551 PR middle-end/49189
2552 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
2553 of comparisons.
2554
a95b23b4
BS
25552011-05-27 Bernd Schmidt <bernds@codesourcery.com>
2556
2557 * haifa-sched.c (sched_scan_info): Remove.
2558 (schedule_block): Call sched_extend_luids rather than sched_init_luids
2559 with NULL args.
2560 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
2561 Remove functions.
2562 (sched_scan): Remove.
2563 (sched_extend_luids): Renamed from luids_extend_insn and no longer
2564 static. All callers changed.
2565 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
2566 static. All callers changed.
2567 (sched_init_luids): Remove all arguments except the first. All
2568 callers changed. Don't use sched_scan.
2569 (haifa_init_h_i_d): Likewise.
2570 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
2571 manually rather than using sched_init_luids. Likewise with
2572 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
2573 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
2574 rather than sched_init_luids with NULL args.
2575 * sel-sched-ir.c (new_insns): Remove variable.
2576 (sched_scan): New static function, previously in haifa-sched.c. Remove
2577 all arguments but the first two; all callers changed.
2578 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
2579 rather than sched_init_luids.
2580 (sel_init_bbs): Remove second argument. All callers changed.
2581 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
2582 with NULL arguments.
2583 (create_insn_rtx_from_pattern): Likewise.
2584 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
2585 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
2586 (sched_init_insn_luid, sched_extend_luids): Declare.
2587 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
2588 declarations.
2589
f8f972fc
RB
25902011-05-27 Richard Guenther <rguenther@suse.de>
2591
2592 PR middle-end/49177
2593 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
2594 A CMP B ? (T) true : (T) false for non-integral types T again.
2595
51a9ed47
JH
25962011-05-27 Jan Hubicka <jh@suse.cz>
2597
2598 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
2599 so 0 means NULL string.
2600 (lto_output_string_with_length): ... here.
f8f972fc
RB
2601 (lto_output_string, output_string_cst, output_identifier): Update
2602 handling of NULL strings.
51a9ed47
JH
2603 (lto_output_location_bitpack): New function.
2604 (lto_output_location): Use it.
2605 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
2606 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
2607 len values.
2608 * lto-streamer-in.c (string_for_index): Break out from ...; offset
2609 values by 1.
491d8eed 2610 (input_string_internal): ... here;
f8f972fc
RB
2611 (input_string_cst, input_identifier, lto_input_string): Update handling
2612 of NULL strings.
51a9ed47
JH
2613 (lto_input_location_bitpack): New function
2614 (lto_input_location): Use it.
f8f972fc
RB
2615 (unpack_ts_type_common_value_fields): Pack align & alias in var len
2616 values.
51a9ed47
JH
2617 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
2618 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
2619 (bp_pack_value): Sanity check the value range.
2620 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
2621 New functions.
2622 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
2623 New functions.
2624
66bd20e7 26252011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
2626
2627 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
2628 call_arg_location instructions down the floor.
2629
574e418a
VM
26302011-05-26 Vladimir Makarov <vmakarov@redhat.com>
2631
2632 PR rtl-optimization/49154
2633 * ira.c (setup_pressure_classes): Process class without sublcasses
2634 as a candidate for pressure classes.
2635
6a1a787e
RS
26362011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
2637
2638 PR rtl-optimization/48575
2639 * genrecog.c (position_type): New enum.
2640 (position): New structure.
2641 (decision): Use position structure instead of a string.
2642 (root_pos, peep2_insn_pos_list): New variables.
2643 (next_position, compare_positions): New functions.
2644 (new_decision): Use position structures instead of strings.
2645 (maybe_both_true): Likewise.
2646 (change_state): Likewise.
2647 (write_tree): Likewise.
2648 (make_insn_sequence): Likewise.
2649
92e948a8
NF
26502011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2651
2652 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
2653 TS_BASE instead of TS_COMMON.
2654 (find_decls_types_r): Check for TS_TYPED structure before looking at
2655 TREE_TYPE.
2656 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
2657 Add chain field.
2658 (BLOCK_CHAIN): Use new chain field.
2659
66bd20e7 26602011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
2661
2662 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
2663 moves expensive on Power7 also.
2664
1f498652
RG
26652011-05-26 Richard Guenther <rguenther@suse.de>
2666
2667 * fold-const.c (fold_unary_loc): Remove bogus code.
2668
a2fc3e63
NF
26692011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2670
2671 * tree.h (struct tree_identifier): Inherit from tree_typed, not
2672 tree_common.
2673 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
2674 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
2675 TS_BASE instead of TS_COMMON.
2676 * varasm.c (assemble_name): Remove assert.
2677
d11bf18f
BS
26782011-05-26 Bernd Schmidt <bernds@codesourcery.com>
2679
2680 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
2681 substituted first.
2682 * libgcc-std.ver: Delete file.
2683
ac8e1875
RG
26842011-05-26 Richard Guenther <rguenther@suse.de>
2685
2686 PR tree-optimization/48702
2687 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
2688 only when we know the base address is within bounds.
2689 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
2690 assume the base address of TARGET_MEM_REFs is in bounds.
2691
7e32e652
RO
26922011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2693
2694 PR target/49099
2695 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
2696 declaration in TARGET_SOLARIS.
2697
66bd20e7 26982011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
2699
2700 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 2701 The instruction is then expanded explicitly.
43660e0b
HS
2702 (supported_compare): Callable instruction.
2703 (compare): Likewise.
2704
1537737f
JJ
27052011-05-26 Jakub Jelinek <jakub@redhat.com>
2706
2707 PR c++/49165
2708 * gimplify.c (shortcut_cond_r): Don't special case
2709 COND_EXPRs if they have void type on one of their arms.
2710
7b1ac803
BS
27112011-05-26 Bernd Schmidt <bernds@codesourcery.com>
2712
2713 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
2714 to reduce duplication, and to achieve a slightly more logical order
2715 of operations.
2716
1aa9438f
JJ
27172011-05-26 Jakub Jelinek <jakub@redhat.com>
2718
2719 PR tree-optimization/49161
2720 * tree-vrp.c (struct case_info): New type.
2721 (compare_case_labels): Sort case_info structs instead of
2722 trees, and not primarily by CASE_LABEL uids but by
2723 label_for_block indexes.
2724 (find_switch_asserts): Put case labels into struct case_info
2725 array instead of TREE_VEC, adjust sorting, compare label_for_block
2726 values instead of CASE_LABELs.
2727
50fed7bf
RR
27282011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2729
2730 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
2731 ("orndi3_neon"): Likewise.
2732 ("bic<mode>3_neon"): Likewise.
2733
48df3fa6
IR
27342011-05-26 Ira Rosen <ira.rosen@linaro.org>
2735
2736 PR tree-optimization/49038
2737 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
2738 Ensure at least one epilogue iteration if required by data
2739 accesses with gaps.
2740 * tree-vectorizer.h (struct _loop_vec_info): Add new field
2741 to mark loops that require peeling for gaps.
2742 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
2743 (vect_get_known_peeling_cost): Take peeling for gaps into
2744 account.
2745 (vect_transform_loop): Generate epilogue if required by data
2746 access with gaps.
2747 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
2748 loop as requiring an epilogue if there are gaps in the end of
2749 the strided group.
2750
53febcba
ILT
27512011-05-25 Ian Lance Taylor <iant@google.com>
2752
2753 * godump.c (go_format_type): Output the first field with a usable
2754 Go type, if any.
2755
dbbc4d4c
ILT
27562011-05-25 Ian Lance Taylor <iant@google.com>
2757
2758 * godump.c (go_format_type): Check for invalid type names, pointer
2759 target types, and struct field types.
2760
f03a5402
JM
27612011-05-25 Jason Merrill <jason@redhat.com>
2762
2763 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
2764
c497c412
UB
27652011-05-25 Uros Bizjak <ubizjak@gmail.com>
2766
2767 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
2768
e470affe
L
27692011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2770
2771 * config/i386/i386.md (*movqi_extv_1)): Put back
2772 "register_operand" check in "type" calculation.
2773 (*movqi_extzv_2): Likewise.
2774
6c81b2bc
L
27752011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2776
c497c412 2777 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 2778
0c007eb2
BS
27792011-05-25 Bernd Schmidt <bernds@codesourcery.com>
2780
2781 PR bootstrap/49160
2782 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
2783 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
2784 __divxc3, __divtc3): Wrap definitions in #ifndef.
2785
521ca78e
L
27862011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2787
2788 PR target/49142
2789 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
2790 "register_operand" check and replace q_regs_operand with
2791 QIreg_operand in "type" calculation.
2792 (*movqi_extv_1): Likewise.
2793 (*movqi_extzv_2_rex64): Likewise.
2794 (*movqi_extzv_2): Likewise.
2795
2796 * config/i386/predicates.md (QIreg_operand): New.
2797
29f8b844
RG
27982011-05-25 Richard Guenther <rguenther@suse.de>
2799
2800 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
2801 type-based offset disambiguation, streamline MEM_REF and
2802 TARGET_MEM_REF handling.
2803
74838de3
L
28042011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2805
2806 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
2807 (bdesc_special_args): Add pause intrinsic.
2808
2809 * config/i386/i386.md (UNSPEC_PAUSE): New.
2810 (pause): Likewise.
2811 (*pause): Likewise.
2812 * config/i386/ia32intrin.h (__pause): Likewise.
2813
2814 * doc/extend.texi (X86 Built-in Functions): Add documentation for
2815 pause intrinsic.
2816
d24ad7d6
BS
28172011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2818
2819 PR tree-optimization/46728
2820 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
2821 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 2822
d9f8303f
NF
28232011-05-25 Nathan Froyd <froydnj@codesourcery.com>
2824
2825 * tree.h (struct tree_exp): Inherit from struct tree_typed.
2826 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
2827 instead of TS_COMMON.
2828
cdbf4541
BS
28292011-05-25 Bernd Schmidt <bernds@codesourcery.com>
2830
2831 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
2832 LIBGCC2_GNU_PREFIX is defined.
2833 (__N): New macro.
2834 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
2835 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
2836 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
2837 __clz_tab): Define using __N.
2838 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
2839 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
2840 * target.def (libfunc_gnu_prefix): New hook.
2841 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
2842 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
2843 * doc/tm.texi: Regenerate.
2844 * system.h (LIBGCC2_GNU_PREFIX): Poison.
2845 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
2846 account.
2847 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
2848 (init_optabs): Likewise for the bswap libfuncs.
2849 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
2850 and divide.
2851 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
2852 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
2853 * libgcc-std.ver: Remove.
2854 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
2855 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
2856 libgcc-std.ver.
2857 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
2858 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
2859 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
2860 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
2861 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
2862 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
2863 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
2864 * config/fixed-bit.h (FIXED_OP): Define differently depending on
2865 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
2866 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
2867
f242c0a5
JH
28682011-05-25 Jan Hubicka <jh@suse.cz>
2869
2870 * lto-streamer-out.c (output_record_start): Use lto_output_enum
2871 (lto_output_tree): Use output_record_start.
2872 * lto-streamer-in.c (input_record_start): Use lto_input_enum
2873 (lto_get_pickled_tree): Use input_record_start.
2874 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
2875 (lto_value_range_error): New function.
2876 * lto-streamer.h (lto_value_range_error): Declare.
2877 (lto_output_int_in_range, lto_input_int_in_range): New functions.
2878 (lto_output_enum, lto_input_enum): New macros.
2879
a11e0df4
EB
28802011-05-25 Eric Botcazou <ebotcazou@adacore.com>
2881
2882 * common.opt (flag_stack_usage_info): New variable.
2883 (-Wstack-usage): New option.
2884 * doc/invoke.texi (Warning options): Document -Wstack-usage.
2885 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
2886 <OPT_fstack_usage>: Likewise.
2887 * toplev.c (output_stack_usage): Handle -Wstack-usage.
2888 * calls.c (expand_call): Test flag_stack_usage_info variable instead
2889 of flag_stack_usage.
2890 (emit_library_call_value_1): Likewise.
2891 * explow.c (allocate_dynamic_stack_space): Likewise.
2892 * function.c (instantiate_virtual_regs ): Likewise.
2893 (prepare_function_start): Likewise.
2894 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
2895 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
2896 * config/arm/arm.c (arm_expand_prologue): Likewise.
2897 (thumb1_expand_prologue): Likewise.
2898 * config/avr/avr.c (expand_prologue): Likewise.
2899 * config/i386/i386.c (ix86_expand_prologue): Likewise.
2900 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2901 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
2902 * config/mips/mips.c (mips_expand_prologue): Likewise.
2903 * config/pa/pa.c (hppa_expand_prologue): Likewise.
2904 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2905 * config/s390/s390.c (s390_emit_prologue): Likewise.
2906 * config/sh/sh.c (sh_expand_prologue): Likewise.
2907 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2908 * config/spu/spu.c (spu_expand_prologue): Likewise.
2909
e7cfe241
RG
29102011-05-25 Richard Guenther <rguenther@suse.de>
2911
2912 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
2913 (gimple_canonical_types_compatible_p): Likewise.
2914
c5235f4c
JH
29152011-05-25 Jan Hubicka <jh@suse.cz>
2916
2917 PR middle-end/49062
2918 * ipa.c (function_and_variable_visibility): Only add to same
2919 comdat group list if DECL_ONE_ONLY.
2920
8242a0f6
AB
29212011-05-25 Andrey Belevantsev <abel@ispras.ru>
2922
2923 PR rtl-optimization/49014
2924 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
2925
642a011d
JJ
29262011-05-25 Jakub Jelinek <jakub@redhat.com>
2927
2928 PR target/49128
2929 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
2930
30a435d8
VM
29312011-05-24 Vladimir Makarov <vmakarov@redhat.com>
2932
2933 PR rtl-optimization/48757
2934 * ira-build.c (loop_with_eh_edge_p): Rename to
2935 loop_with_complex_edge_p, check edges on complexity, make function
2936 conditional.
2937 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
2938 conditional.
2939
24d1bbc7
EB
29402011-05-24 Eric Botcazou <ebotcazou@adacore.com>
2941
2942 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
2943 force flag_ira_share_save_slots to 0.
2944
65773087
EB
29452011-05-24 Eric Botcazou <ebotcazou@adacore.com>
2946
2947 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
2948 (vt_initialize): Set PROLOGUE_BB unconditionally.
2949 Add block comment about CFA_BASE_RTX machinery.
2950 Reset FP_CFA_OFFSET to -1 on all invalid paths.
2951 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
2952
4e26ba90
NP
29532011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
2954
2955 PR objc/48187
2956 * c-parser.c (c_parser_objc_class_instance_variables): More robust
2957 parsing of syntax error in ObjC instance variable lists. In
2958 particular, avoid an infinite loop if there is a stray ']'.
2959 Updated error message.
2960
936fd13c
ILT
29612011-05-24 Ian Lance Taylor <iant@google.com>
2962
2963 * godump.c (go_define): Don't accept a string immediately after
2964 another operand.
2965
f17333e3
ILT
29662011-05-24 Ian Lance Taylor <iant@google.com>
2967
2968 * godump.c (struct godump_container): Add invalid_hash field.
2969 (go_format_type): Return false if type is found in invalid_hash.
2970 (go_output_typedef): Add invalid type to invalid_hash.
2971 (go_finish): Create and delete invalid_hash.
2972
d24ad7d6 29732011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 2974
78be79d5
BS
2975 PR tree-optimization/46728
2976 * tree-ssa-math-opts.c (powi_table): New.
2977 (powi_lookup_cost): New.
2978 (powi_cost): New.
2979 (powi_as_mults_1): New.
2980 (powi_as_mults): New.
2981 (gimple_expand_builtin_powi): New.
2982 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
2983 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 2984
caee412b
RO
29852011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2986
2987 PR target/3746
2988 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
2989 mips-tdump native.
2990 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
2991 * mips-tdump.c: Likewise.
2992
5eed4f27
L
29932011-05-24 H.J. Lu <hongjiu.lu@intel.com>
2994
2995 PR target/49128
2996 * config/i386/driver-i386.c (host_detect_local_cpu): Always
2997 add -mno-XXX. Handle FMA.
2998
8c5fdaae
VM
29992011-05-24 Vladimir Makarov <vmakarov@redhat.com>
3000
3001 PR rtl-optimization/48633
3002 * ira-build.c (loop_with_eh_edge_p): New function.
3003 (mark_loops_for_removal): Use it.
3004
30052011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
3006
3007 PR rtl-optimization/48971
3008 * ira.c (setup_pressure_classes): Don't check register move cost
3009 for classes with one registers. Don't add pressure class if there
3010 is a pressure class with the same available hard registers.
3011 Check contains_reg_of_mode. Fix a typo in collecting
3012 temp_hard_regset. Ignore hard registers not belonging to a class.
3013
df1f7315
UB
30142011-05-24 Uros Bizjak <ubizjak@gmail.com>
3015
3016 PR target/49133
3017 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
3018
ee0cb37c
EB
30192011-05-24 Eric Botcazou <ebotcazou@adacore.com>
3020 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3021
3022 PR gcov-profile/48845
3023 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
3024
6a20ce76
RG
30252011-05-24 Richard Guenther <rguenther@suse.de>
3026
3027 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
3028 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
3029 (gimple_types_compatible_p_1): Adjust.
3030 (iterative_hash_canonical_type): Do not bother about complete vs.
3031 incomplete types.
3032 (gimple_canonical_types_compatible_p): Likewise.
3033
2fcb858c
RO
30342011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3035
3036 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
3037
96d91dcf
RG
30382011-05-24 Richard Guenther <rguenther@suse.de>
3039
3040 PR bootstrap/49078
3041 * gimple.c (gimple_register_canonical_type): Revert
3042 previous change.
3043 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
3044 does not for a tree for the case where it matters. Cache
3045 pointer-type alias-sets.
3046
1ed1641d
JM
30472011-05-24 Joseph Myers <joseph@codesourcery.com>
3048
3049 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
3050 (OBJS): Remove options.o, opts-common.o and prefix.o.
3051 (OBJS-libcommon-target): New.
3052 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
3053 (BACKEND): Include libcommon-target.a.
3054 (MOSTLYCLEANFILES): Include libcommon-target.a.
3055 (libcommon-target.a): New.
3056 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
3057 prefix.o.
3058
57dfdff0
JM
30592011-05-23 Joseph Myers <joseph@codesourcery.com>
3060
3061 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
3062 parts of output shared with the driver.
3063 * optc-gen.awk: Don't generate parts of output not shared with the
3064 driver.
3065 * opth-gen.awk: Remove GCC_DRIVER conditionals.
3066 * doc/options.texi (SourcerInclude): Mention options-save.c.
3067 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
3068 (OBJS): Add options-save.o.
3069 (options-save.c, options-save.o): New.
3070 (options.o): Update dependencies.
3071 (gcc-options.o): Remove.
3072 (mostlyclean): Remove options-save.c.
3073
0e0d82a7
JJ
30742011-05-23 Jakub Jelinek <jakub@redhat.com>
3075
9166988f
JJ
3076 PR debug/49032
3077 * dbxout.c: Include cgraph.h.
3078 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
3079 and without value expr, return NULL if no varpool node exists for
3080 it or if it is not needed.
3081 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
3082
0e0d82a7
JJ
3083 PR c/49120
3084 * c-decl.c (start_decl): Convert expr to void_type_node.
3085
65712d5c
RS
30862011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
3087
3088 PR rtl-optimization/48826
3089 * emit-rtl.c (try_split): When splitting a call that is followed
3090 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
3091
9025085e
JJ
30922011-05-23 Jakub Jelinek <jakub@redhat.com>
3093
3094 * cfgexpand.c (expand_debug_expr): For unused non-addressable
3095 parameters passed in memory prefer using DECL_INCOMING_RTL over
3096 the pseudos it will be copied into.
3097
34a061be
L
30982011-05-23 H.J. Lu <hongjiu.lu@intel.com>
3099
3100 PR target/47315
3101 * config/i386/i386.c (ix86_option_override_internal): Save the
3102 initial options after checking vzeroupper.
3103
c375a3a4
DL
31042011-05-23 David Li <davidxl@google.com>
3105
3106 PR tree-optimization/48988
3107 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
3108 Initialize has_valid_pred for each pred chain.
3109
e1caba18
RG
31102011-05-23 Richard Guenther <rguenther@suse.de>
3111
3112 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
3113 (iterative_hash_gimple_type): Always hash type names.
3114
dde05067
NF
31152011-05-23 Nathan Froyd <froydnj@codesourcery.com>
3116
3117 * c-typeck.c (build_function_call_vec): Tweak call to
3118 check_function_arguments.
3119
094f6ab3
RG
31202011-05-23 Richard Guenther <rguenther@suse.de>
3121
3122 PR tree-optimization/49115
3123 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
3124 is not necessarily carried out, do not claim it kills the ref.
3125 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
3126
9a9822e1
RG
31272011-05-23 Richard Guenther <rguenther@suse.de>
3128
3129 PR middle-end/15419
3130 * builtins.c (fold_builtin_memory_op): Be less restrictive about
3131 what pointer types we accept for folding.
3132
c8028650
RO
31332011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3134
3135 * gthr-gnat.c: Remove.
3136 * gthr-gnat.h: Remove.
3137 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
3138 * config/t-freebsd (LIB2ADDEH): Likewise.
3139 * config/t-linux (LIB2ADDEH): Likewise.
3140 * config/t-sol2 (LIB2ADDEH): Likewise.
3141 * config/ia64/t-vms (LIB2ADDEH): Likewise.
3142 * configure.ac (target_thread_file): Remove gnat handling.
3143 * configure: Regenerate.
3144 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
3145
15882fe9
TG
31462011-05-23 Tristan Gingold <gingold@adacore.com>
3147 Eric Botcazou <ebotcazou@adacore.com>
3148
3149 * gcov.c (create_file_names): If no object directory is specified,
3150 keep the directory of the file.
3151
da90c957
RO
31522011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3153
3154 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
3155 * configure: Regenerate.
3156
7bba408b
JJ
31572011-05-23 Jakub Jelinek <jakub@redhat.com>
3158
3159 PR middle-end/48973
3160 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
3161 failed and the comparison has a single bit signed type, use
3162 constm1_rtx instead of const1_rtx for true value.
3163 (do_store_flag): If ops->type is single bit signed type, disable
3164 signel bit test optimization and pass -1 instead of 1 as last
3165 parameter to emit_store_flag_force.
3166
bc69f7ff
TV
31672011-05-23 Tom de Vries <tom@codesourcery.com>
3168
3169 PR target/45098
3170 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
3171 function.
3172 (infer_loop_bounds_from_undefined): Use new function.
3173
29cedf8e
RS
31742011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
3175
3176 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
3177 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
3178 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
3179 and -O0 otherwise.
3180 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
3181
afe8b6ec
EB
31822011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3183
3184 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
3185 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
3186 returns true.
3187
872dab53
RS
31882011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
3189
3190 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
3191
145f6c5b
EB
31922011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3193
3194 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
3195 UNSPEC_MOVE_PIC pattern.
3196
8ac79835
EB
31972011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3198
3199 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
3200 (sparc-*-rtems*): Likewise.
3201 (sparc64-*-elf*): Likewise.
3202 (sparc64-*-rtems*): Likewise.
3203 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
3204 * config/sparc/t-crtin: New file.
3205 * config/sparc/t-sol2 (crti.o): Delete rule.
3206 (crtn.o): Likewise.
3207 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
3208 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
3209 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
3210 (ENDFILE_SPEC): Add crtn.o.
3211
5fb43dd8
TV
32122011-05-22 Tom de Vries <tom@codesourcery.com>
3213
3214 PR middle-end/48689
3215 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
3216 CODE_CONTAINS_STRUCT (TS_COMMON).
3217
ccb1b17b
JJ
32182011-05-22 Jakub Jelinek <jakub@redhat.com>
3219
3220 PR middle-end/49029
3221 * expmed.c (extract_fixed_bit_field): Test whether target can be used
3222 only after deciding which mode to use.
3223
50ad7db2
TV
32242011-05-22 Tom de Vries <tom@codesourcery.com>
3225
3226 PR target/45098
dc0a3366 3227 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
3228 for call to get_shiftadd_cost.
3229
ef230b38
UB
32302011-05-22 Uros Bizjak <ubizjak@gmail.com>
3231
3232 PR target/49104
3233 * config/i386/cpuid.h (bit_MMXEXT): New define.
3234
15f072f9
NC
32352011-05-22 Nick Clifton <nickc@redhat.com>
3236
3237 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
3238 initialisation of non-existant args[2] element. Use args[] array
3239 not arg[] array to pass arguments to build_function_type_list.
3240
e38fdc94
IR
32412011-05-22 Ira Rosen <ira.rosen@linaro.org>
3242
3243 PR tree-optimization/49087
ef230b38 3244 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 3245
5b018c65
JM
32462011-05-21 Jason Merrill <jason@redhat.com>
3247
3248 PR c++/49092
3249 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
3250 static storage duration.
3251
abd9a770
EB
32522011-05-21 Eric Botcazou <ebotcazou@adacore.com>
3253
3254 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
3255 frame pointer.
3256
bd9a3248
EB
32572011-05-21 Eric Botcazou <ebotcazou@adacore.com>
3258
3259 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
3260 false if there are call-saved registers here...
3261 (sparc_can_use_return_insn_p): ...but here instead.
3262 (save_or_restore_regs): Fix thinko.
3263 (sparc_expand_prologue): Use current_function_is_leaf.
3264 (sparc_frame_pointer_required): Likewise.
3265
a5dfec9a
NC
32662011-05-21 Nick Clifton <nickc@redhat.com>
3267
3268 PR target/49098
3269 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
3270
555c3771
NP
32712011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
3272
3273 * gengtype.c (walk_type): Implemented "atomic" GTY option.
3274 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
3275
86fa5de4
JM
32762011-05-21 Joseph Myers <joseph@codesourcery.com>
3277
3278 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
3279 * optc-gen.awk: Move common code to opt-read.awk.
3280 * opth-gen.awk: Likewise.
ef230b38 3281 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 3282
bce33ab2
NF
32832011-05-20 Nathan Froyd <froydnj@codesourcery.com>
3284
3285 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
3286
e6450c11
TV
32872011-05-20 Tom de Vries <tom@codesourcery.com>
3288
3289 PR target/45098
3290 * tree-ssa-loop-ivopts.c: Include expmed.h.
3291 (get_shiftadd_cost): New function.
3292 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
3293
0e8b84ec
JJ
32942011-05-20 Jakub Jelinek <jakub@redhat.com>
3295
3296 PR bootstrap/49086
3297 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
3298 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
3299
946bdf67
JM
33002011-05-20 Joseph Myers <joseph@codesourcery.com>
3301
3302 * Makefile.in: Update comment referring to $(OBJS-common).
3303
c53aafdf
ILT
33042011-05-20 Ian Lance Taylor <iant@google.com>
3305
3306 * godump.c (go_output_typedef): Put enum constants in the macro
3307 hash table to avoid duplicate Go const definitions.
3308
2691e6d7
JM
33092011-05-20 Joseph Myers <joseph@codesourcery.com>
3310
3311 * Makefile.in (LIBDEPS): Add libcommon.a.
3312 (LIBS): Likewise.
3313 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
3314 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
3315 pretty-print.o and version.o.
3316 (OBJS-libcommon): New.
3317 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
3318 (BACKEND): Add libcommon.a.
3319 (MOSTLYCLEANFILES): Likewise.
3320 (libcommon.a): New.
3321 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
3322 (cpp$(exeext)): Likewise.
3323 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
3324 pretty-print.o and input.o.
3325 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
3326 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
3327 (errors.o): Remove.
3328 (mips-tfile): Don't explicitly use version.o.
3329 (mips-tdump): Likewise.
3330 (gcov.o): Depend on $(DIAGNOSTIC_H).
3331 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
3332 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
3333 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
3334 * gcov-dump.c: Include intl.h and diagnostic.h.
3335 (main): Initialize diagnostics.
3336 * gcov.c: Include diagnostic.h.
3337 (fnotice): Remove.
3338 (main): Initialize diagnostics.
3339 * lto-wrapper.c: Include diagnostic.h.
3340 (main): Initialize diagnostics.
3341
252b3e8c
MM
33422011-05-20 Michael Matz <matz@suse.de>
3343
3344 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
3345
2ee36ba6
MM
33462011-05-20 Michael Matz <matz@suse.de>
3347 Richard Guenther <rguenther@suse.de>
3348
3349 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
3350 use lto_streamer_cache_append directly instead of returning a VEC.
3351 (preload_common_node): Remove.
3352 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
3353 track seen nodes.
3354 (lto_streamer_cache_create): Call lto_preload_common_nodes.
3355
90ff582f
RG
33562011-05-20 Richard Guenther <rguenther@suse.de>
3357
3358 PR tree-optimization/49079
3359 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
3360 MEM_REFs correctly for the trailing array access detection.
3361 Special case constants the same way as decls for overall size
3362 constraining.
3363
3cda91d8
UB
33642011-05-20 Uros Bizjak <ubizjak@gmail.com>
3365
3366 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
3367 argument expansion.
3368
6c66f733
JJ
33692011-05-20 Jakub Jelinek <jakub@redhat.com>
3370
3371 PR tree-optimization/49073
3cda91d8
UB
3372 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
3373 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
3374 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
3375
0ea80a16
RG
33762011-05-20 Richard Guenther <rguenther@suse.de>
3377
3378 PR middle-end/48849
3379 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
3380 of pointer types the same way the middle-end does.
3381
fb291a1e
RG
33822011-05-20 Richard Guenther <rguenther@suse.de>
3383
3cda91d8
UB
3384 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
3385 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 3386
37cb25ed
QN
33872011-05-19 Quentin Neill <quentin.neill@amd.com>
3388
3389 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
3390 (fma4_fmaddsub): Likewise
3391
a30726a4
JH
33922011-05-19 Jan Hubicka <jh@suse.cz>
3393
3394 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
3395 (GIMPLE_TYPE_PAIR_SIZE): New macro.
3396 (type_pair_cache): New static var.
3397 (lookup_type_pair): Use fixed sized custom hash; make inline.
3398 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
3399 calls of lookup_type_pair.
3400 (print_gimple_types_stats): Remove cache stats.
3401 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
3402 and gtc_ob.
3403
0955cf61
UB
34042011-05-19 Uros Bizjak <ubizjak@gmail.com>
3405
3406 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
3407 when TARGET_RDRND is active.
3408 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
3409 Generate dummy SImode target register when target is NULL.
3410
12d844c8
JM
34112011-05-19 Joseph Myers <joseph@codesourcery.com>
3412
3413 * config/arm/arm-fpus.def: New.
3414 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
3415 arm-fpus.def.
3416 * config/arm/arm-tables.opt: Regenerate.
3417 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
3418 (arm_option_override): Don't decode FPU name to string here.
3419 * config/arm/arm.opt (mfpu=): Use Enum.
3420 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
3421 Update dependencies.
3422
9e350e99
JM
34232011-05-19 Joseph Myers <joseph@codesourcery.com>
3424
3425 * collect2.c: Include diagnostic.h.
3426 (fatal_perror, fatal, error, fancy_abort): Remove.
3427 (main): Set progname. Call xmalloc_set_program_name and
3428 diagnostic_initialize.
3429 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
3430 scan_libraries, resolve_lib_name): Call fatal_error instead of
3431 fatal and fatal_perror.
3432 * collect2.h (error, fatal, fatal_perror): Don't declare.
3433 * tlink.c: Include diagnostic-core.h.
3434 (recompile_files): Call fatal_error instead of fatal_perror.
3435 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
3436 pretty-print.o and input.o.
3437 (collect2.o, tlink.o): Update dependencies.
3438
86ff4081
RO
34392011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3440
3441 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
3442
2ca48caa
RO
34432011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3444
3445 PR target/40483
3446 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
3447 COMDAT group syntax, both SPARC and x86 variants.
3448 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
3449 * configure: Regenerate.
3450 * config/sol2.h (TARGET_SOLARIS): Define.
3451 (PUSHSECTION_FORMAT): Remove.
3452 (SECTION_NAME_FORMAT): Define.
3453 * config/sol2.c: Include hashtab.h.
3454 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
3455 expansion, using SECTION_NAME_FORMAT.
3456 (solaris_comdat_htab): New variable.
3457 (struct comdat_entry): Define.
3458 (comdat_hash): New function.
3459 (comdat_eq): New function.
3460 (solaris_elf_asm_comdat_section): New function.
3461 (solaris_define_comdat_signature): New function.
3462 (solaris_code_end): New function.
3463 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
3464 (solaris_code_end): Declare.
3465 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
3466 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
3467 solaris_code_end.
3468 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
3469 Remove ATTRIBUTE_UNUSED.
3470 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
3471 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 3472 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
3473 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
3474 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
3475 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
3476 (PUSHSECTION_FORMAT): Remove.
3477 (SECTION_NAME_FORMAT): Redefine.
3478
da5fb469
KT
34792011-05-19 Kai Tietz <ktietz@redhat.com>
3480
3481 * tree-cfg.c (verify_gimple_assign_binary): Barf on
3482 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
3483 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
3484
1651e703 34852011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
3486 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3487
3488 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
3489
e497b9bd
RG
34902011-05-19 Richard Guenther <rguenther@suse.de>
3491
3492 PR middle-end/48985
3493 * tree-object-size.c (addr_object_size): If the pointed-to
3494 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
3495
31b3ca64
RG
34962011-05-19 Richard Guenther <rguenther@suse.de>
3497
3498 * gimple.c (gimple_types_compatible_p_1): Compare names of
3499 the types themselves.
3500 (iterative_hash_gimple_type): And hash them that way.
3501 (gimple_register_type_1): If we register a main variant properly
3502 initialize the leader to ourselves.
3503
bb8d292d
TV
35042011-05-19 Tom de Vries <tom@codesourcery.com>
3505
3506 PR target/45098
3507 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
3508 get_loop_invariant_expr_id.
3509 (get_loop_invariant_expr_id): Use get_expr_id.
3510 (parm_decl_cost): New function.
3511 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
3512 Improve bound cost estimation. Use different inv_expr_id for elim and
3513 express cases.
3514
a53c5024
TV
35152011-05-19 Tom de Vries <tom@codesourcery.com>
3516
3517 PR target/45098
3518 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
3519 cost_base.cost == 0.
3520
31f9eb59
L
35212011-05-18 H.J. Lu <hongjiu.lu@intel.com>
3522
3523 PR target/49002
66bd20e7
EB
3524 * config/i386/sse.md
3525 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
3526 load cast.
31f9eb59 3527
681056ae
JJ
35282011-05-18 Jakub Jelinek <jakub@redhat.com>
3529
3530 PR tree-optimization/49039
3531 * tree-vrp.c (extract_range_from_binary_expr): For
3532 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
3533 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
3534
b5ee6752
TV
35352011-05-18 Tom de Vries <tom@codesourcery.com>
3536
3537 PR target/45098
3538 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
3539
0bda47a3
UB
35402011-05-18 Uros Bizjak <ubizjak@gmail.com>
3541
3542 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
3543 (*tls_global_dynamic_64): Ditto.
3544 (*tls_local_dynamic_base_32_gnu): Ditto.
3545 (*tls_local_dynamic_base_64): Ditto.
3546 (tls_initial_exec_64_sun): Ditto.
3547
033b0805
SH
35482011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
3549
3550 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
3551 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
3552 bf592-none.
3553 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
3554 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
3555 * config/bfin/bfin.c (bfin_cpus): Add bf592.
3556 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 3557 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
3558 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
3559 * config/bfin/elf.h (LIB_SPEC): Add bf592.
3560
ba163417
JM
35612011-05-18 Joseph Myers <joseph@codesourcery.com>
3562
3563 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 3564 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
3565 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
3566 target_thread_pointer, arm_structure_size_boundary, struct
3567 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
3568 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
3569 (arm_option_override) Don't process most enumerated option values here.
3570 Don't process target_fpe_name here. Work with integer not string for
3571 structure size boundary; use separate diagnostics for each case.
ba163417
JM
3572 * config/arm/arm.h (enum float_abi_type, enum
3573 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
3574 to arm-opts.h.
3575 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
3576 arm_structure_size_boundary): Remove.
3577 * config/arm/arm.opt (mabi=): Use Enum and Init.
3578 (arm_abi_type): New Enum and EnumValue entries.
3579 (mfloat-abi=): Use Enum and Init.
3580 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 3581 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
3582 (mfp16-format=): Use Enum and Init.
3583 (arm_fp16_format_type): New Enum and EnumValue entries.
3584 (mstructure-size-boundary=): Use UInteger and Init.
3585 (mtp=): Use Enum and Init.
3586 (arm_tp_type): New Enum and EnumValue entries.
3587
179184e3
RG
35882011-05-18 Richard Guenther <rguenther@suse.de>
3589
3590 PR tree-optimization/49018
3591 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
3592 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
3593 gimple_has_side_effects.
3594
93b2a207
RG
35952011-05-18 Richard Guenther <rguenther@suse.de>
3596
3597 * gimple.c (gimple_register_type_1): New function, split out from ...
3598 (gimple_register_type): ... here. Avoid infinite recursion.
3599
b010117a
IR
36002011-05-18 Ira Rosen <ira.rosen@linaro.org>
3601
3602 PR tree-optimization/41881
3603 * tree-vectorizer.h (struct _loop_vec_info): Add new field
3604 reduction_chains along with a macro for its access.
3605 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
3606 (destroy_loop_vec_info): Free reduction chains.
3607 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
3608 (vect_is_slp_reduction): New function.
3609 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
3610 (vect_create_epilog_for_reduction): Support SLP reduction chains.
3611 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
3612 definition types for reduction chains.
3613 (vect_supported_load_permutation_p): Don't allow permutations for
3614 reduction chains.
3615 (vect_analyze_slp_instance): Support reduction chains.
3616 (vect_analyze_slp): Try to build SLP instance from reduction chains.
3617 (vect_get_constant_vectors): Handle reduction chains.
3618 (vect_schedule_slp_instance): Mark the first statement of the
3619 reduction chain as reduction.
3620
e14c1050
IR
36212011-05-18 Ira Rosen <ira.rosen@linaro.org>
3622
3623 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
3624 names for group elements access.
3625 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
3626 reduction chains as well. Remove data reference and interleaving
3627 related words from the fields names.
3628 * tree-vect-loop.c (vect_transform_loop): Use new names for group
3629 elements access.
3630 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
3631 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
3632 vect_update_interleaving_chain, vect_same_range_drs,
3633 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
3634 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
3635 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
3636 vect_analyze_group_access, vect_analyze_data_ref_access,
3637 vect_create_data_ref_ptr, vect_transform_strided_load,
3638 vect_record_strided_load_vectors): Likewise.
3639 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
3640 vect_model_load_cost, vectorizable_store, vectorizable_load,
3641 vect_remove_stores, new_stmt_vec_info): Likewise.
3642 * tree-vect-slp.c (vect_build_slp_tree,
3643 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
3644
51c213f7
RG
36452011-05-18 Richard Guenther <rguenther@suse.de>
3646
3647 PR middle-end/48989
3648 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
3649 operand verification.
3650 (verify_gimple_assign_binary): Likewise.
3651 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
3652 to non-1-precision BOOLEAN_TYPEs.
3653
8f5e5434
TV
36542011-05-18 Tom de Vries <tom@codesourcery.com>
3655
3656 PR target/45098
3657 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
3658
116bc3a4
JJ
36592011-05-18 Jakub Jelinek <jakub@redhat.com>
3660
3661 PR tree-optimization/49000
3662 * tree-ssa.c (execute_update_addresses_taken): Call
3663 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
3664 be rewritten and decl has been marked for renaming, reset
3665 the debug stmt.
3666
26a8964c
JM
36672011-05-17 Joseph Myers <joseph@codesourcery.com>
3668
3669 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
3670 enum_opts_set when testing if attributes have set -mfpmath=.
3671
82bd45d7
RS
36722011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
3673
3674 * config/mips/mips.c (mips_handle_option): Remove unused variable.
3675
267ffce3
UB
36762011-05-17 Uros Bizjak <ubizjak@gmail.com>
3677
3678 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
3679 info->entry with 0
3680 * tree-inline.c (maybe_inline_call_in_expr): Initialize
3681 id.transform_lang_insert_block with NULL.
3682
36832011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
3684
3685 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
3686 (output_fp_compare): Change args 3 and 4 to bool.
3687 (ix86_expand_call): Change arg 6 to bool.
3688 (ix86_attr_length_immediate_default): Change arg 2 to bool.
3689 (ix86_attr_length_vex_default): Change arg 3 to bool.
3690 * config/i386/i386.md: Update all uses.
3691 * config/i386/i386.c: Ditto.
3692 (ix86_flags_dependent): Change return type to bool.
3693
5beaf664
RG
36942011-05-17 Richard Guenther <rguenther@suse.de>
3695
3696 * gimple.c (type_hash_pair_compare): Fix comparison.
3697
008bad7a
RG
36982011-05-17 Richard Guenther <rguenther@suse.de>
3699
3700 * gimple.c (iterative_hash_gimple_type): Simplify singleton
3701 case some more, fix final hash value of the non-singleton case.
3702
36461340
RG
37032011-05-17 Richard Guenther <rguenther@suse.de>
3704
3705 PR bootstrap/49013
3706 Revert
3707 2011-05-16 Richard Guenther <rguenther@suse.de>
3708
3709 * gimple.c (gimple_types_compatible_p_1): Use names of the
3710 type itself, not its main variant.
3711 (iterative_hash_gimple_type): Likewise.
3712
6b6a59f3
RG
37132011-05-17 Richard Guenther <rguenther@suse.de>
3714
3715 * gimple.c (gimple_register_canonical_type): Use the main-variant
3716 leader for computing the canonical type.
3717
4ffc4134
NC
37182011-05-17 Nick Clifton <nickc@redhat.com>
3719
a1d8754e
NC
3720 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
3721 moves.
3722
4ffc4134
NC
3723 * config/rx/rx.md: Add peephole to remove redundant extensions
3724 after loads.
39960f7a
NC
3725 (bitset_in_memory): Use rx_restricted_mem_operand.
3726 (bitinvert_in_memory): Likewise.
3727 (bitclr_in_memory): Likewise.
4ffc4134 3728
b3db92ac
KI
37292011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
3730 Nick Clifton <nickc@redhat.com>
3731
3732 * config/rx/rx.md: Add peepholes to match a register move followed
3733 by a comparison of the moved register. Replace these with an
3734 addition of zero that does both actions in one instruction.
3735
8637e32a
JJ
37362011-05-17 Jakub Jelinek <jakub@redhat.com>
3737
3738 PR target/48986
3739 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
3740 predicate to allow CONST_INT.
3741 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
3742
8023568e
JM
37432011-05-16 Joseph Myers <joseph@codesourcery.com>
3744
3745 * opts-common.c (opt_enum_arg_to_value): New.
3746 * opts.h (opt_enum_arg_to_value): Declare.
3747 * config/i386/i386.opt (fpmath): Remove.
3748 (mfpmath=): Use Enum, Init and Save.
3749 (fpmath_unit): New Enum and EnumValue entries.
3750 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
3751 name for function fpmath state.
3752 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
3753 * config/i386/i386.c: Include diagnostic.h.
3754 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 3755 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 3756 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 3757 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
3758 (x86_function_specific_save, ix86_function_specific_restore):
3759 Don't handle fpmath state specially.
3760 (ix86_function_specific_print): Pass fpmath state to
3761 ix86_target_string instead of printing in this function.
3762 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
3763 Handle enum attributes.
3764 (IX86_ATTR_ENUM, ix86_opt_enum): New.
3765 (ix86_valid_target_attribute_tree): Update option_strings
3766 handling. Handle fpmath as enum option.
3767 (ix86_can_inline_p): Update field names for function fpmath state.
3768 (ix86_expand_builtin): Update call to ix86_target_string.
3769 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
3770 (ix86_fpmath): Remove.
3771 * config/i386/t-i386 (i386.o): Update dependencies.
3772
9e8d926e
JM
37732011-05-16 Joseph Myers <joseph@codesourcery.com>
3774
3775 PR preprocessor/48677
3776 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
3777 from decoded_options[0], not from itself.
3778
f6449011
UB
37792011-05-16 Uros Bizjak <ubizjak@gmail.com>
3780
3781 * config/i386/constraints.md (z): New constraint.
3782 * config/i386/i386.c (c): New mode attribute.
3783 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
3784 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
3785 constraint for operand 0.
3786 (*call_vzeroupper): Ditto.
3787 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
3788 (*call_rex64_ms_sysv_vzeroupper): Ditto.
3789 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
3790 Use "lzm" constraint for operand 0.
3791 (*call_pop_vzeroupper): Ditto.
3792 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
3793 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
3794 constraint for operand 0.
3795 (*sibcall_vzeroupper): Ditto.
3796 (*sibcall_rex64_ms_sysv): Ditto.
3797 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
3798 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
3799 *sibcall_pop_1. Use "Uz" constraint for operand 0.
3800 (*sibcall_pop_vzeroupper): Ditto.
3801 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
3802 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
3803 mode iterator. Use "<c>zm" constraint for operand 1.
3804 (*call_value_vzeroupper): Ditto.
3805 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 3806 for operand 1.
f6449011
UB
3807 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
3808 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
3809 *call_value_pop_1. Use "lzm" constraint for operand 1.
3810 (*call_value_pop_vzeroupper): Ditto.
3811 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
3812 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
3813 mode iterator. Use "Uz" constraint for operand 1.
3814 (*sibcall_value_vzeroupper): Ditto.
3815 (*sibcall_value_rex64_ms_sysv): Ditto.
3816 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
3817 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
3818 constraint for operand 1.
3819 (*sibcall_value_pop_vzeroupper): Ditto.
3820 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
3821 and "z" constraint for operand 2.
3822 (*tls_global_dynamic_32_gnu): Ditto.
3823 (*tls_local_dynamic_base_32_gnu): Ditto.
3824 (*tls_local_dynamic_base_64): Ditto.
3825 (*tls_local_dynamic_32_once): Ditto.
3826 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
3827 Update all callers.
3828 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
3829
c11b6902
RG
38302011-05-16 Richard Guenther <rguenther@suse.de>
3831
3832 * gimple.c (gimple_types_compatible_p_1): Use names of the
3833 type itself, not its main variant.
3834 (iterative_hash_gimple_type): Likewise.
3835
1e83b5f1
RG
38362011-05-16 Richard Guenther <rguenther@suse.de>
3837
f6449011
UB
3838 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
3839 always visit pointer target and function result and argument types.
1e83b5f1 3840
62e36382
JM
38412011-05-16 Jason Merrill <jason@redhat.com>
3842
3843 PR c++/48999
3844 * tree-inline.c (copy_statement_list): Put back recursion.
3845
687027a4
GJL
38462011-05-16 Georg-Johann Lay <avr@gjlay.de>
3847
3848 PR target/27663
3849 PR target/41076
3850 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
3851 * config/avr/avr.md ("*ior<mode>qi.byte0",
3852 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
3853
f24a5190
GJL
38542011-05-16 Georg-Johann Lay <avr@gjlay.de>
3855
3856 PR target/45099
3857 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
3858 register is needed for a function argument.
3859
3066f593
RG
38602011-05-16 Richard Guenther <rguenther@suse.de>
3861
3862 * gimple.c (struct type_hash_pair): New type.
3863 (type_hash_pair_compare): New function.
f6449011 3864 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 3865
b2ab2cf4
RE
38662011-05-16 Revital Eres <revital.eres@linaro.org>
3867
f6449011 3868 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 3869
dfb737fc
UB
38702011-05-15 Uros Bizjak <ubizjak@gmail.com>
3871
3872 * config/i386/i386.md (floating point move splitters): Fix
3873 usage of standard_80387_constant_p.
f6449011 3874 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 3875
8caa1de0
UB
38762011-05-15 Uros Bizjak <ubizjak@gmail.com>
3877
3878 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
3879
8a519095
EB
38802011-05-14 Eric Botcazou <ebotcazou@adacore.com>
3881
3882 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
3883 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
3884 (tree_ssa_lim_finalize): Likewise.
3885
479fecd3
UB
38862011-05-14 Uros Bizjak <ubizjak@gmail.com>
3887
3888 * config/i386/constraint.md (Yd, Yx): New register constraints.
3889 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
3890 Yd conditional register constraint.
3891 (*movtf_internal): Use standard_sse_constant_opcode.
3892 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
3893 Yx conditional register constraint.
3894 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
3895 Yd conditional register constraint. Use standard_sse_constant_p to
3896 check for valid SSE constants and call standard_sse_constant_opcode to
3897 output SSE insn.
3898 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
3899 constants and call standard_sse_constant_opcode to output SSE insn.
3900 * config/i386/i386.c (ix86_option_ovverride_internal): Set
3901 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
3902 optimize_size is set.
3903 (standard_sse_constant_opcode): Output conditional AVX insn templates.
3904
2d8c9ad5
TB
39052011-05-14 Tobias Burnus <burnus@net-b.de>
3906
3907 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
3908
411a20d6
MJ
39092011-05-13 Martin Jambor <mjambor@suse.cz>
3910
3911 * ipa-prop.c (ipa_cst_from_jfunc): New function.
3912 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
3913 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
3914 (evaluate_conditions_for_ipcp_clone): Removed.
3915 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
3916 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
3917 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
3918
dc764d10
EB
39192011-05-13 Eric Botcazou <ebotcazou@adacore.com>
3920
3921 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
3922 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
3923 lieu of MAY_HAVE_DEBUG_STMTS.
3924 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
3925 debug statements if !MAY_HAVE_DEBUG_STMTS.
3926
9f47a24e
MT
39272011-05-13 Martin Thuresson <martint@google.com>
3928
3929 PR gcov-profile/47793
3930 * libgcov.c (gcov_exit): Support relative profile paths.
3931 * doc/invoke.texi (-fprofile-dir): Update for above change.
3932
b8a71aed
RG
39332011-05-13 Richard Guenther <rguenther@suse.de>
3934
3935 * gimple.c (gimple_canonical_types_compatible_p): Do not use
3936 type-pair caching, do not compare hashes.
3937
eb9f9259
NF
39382011-05-13 Nathan Froyd <froydnj@codesourcery.com>
3939
3940 PR middle-end/48965
3941 * tree-cfg.c (edge_to_cases_cleanup): Return true.
3942 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
3943
3c6cbf7a
KT
39442011-05-13 Kai Tietz <ktietz@redhat.com>
3945
3946 * gimplify.c (gimplify_expr): Make sure operand is boolified.
3947 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
3948 compatible type for TRUTH_NOT_EXPR.
3949
2e7f5dc0
L
39502011-05-13 H.J. Lu <hongjiu.lu@intel.com>
3951
dc764d10 3952 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
3953 (ix86_hard_regno_mode_ok): Change return value to bool. Use
3954 can_create_pseudo_p ().
3955
e834e95c
RG
39562011-05-13 Richard Guenther <rguenther@suse.de>
3957
3958 PR lto/48978
3959 * gimple.c (iterative_hash_gimple_type): Revert change in
3960 pointer target and function result and argument hashing.
3961
34203483
UB
39622011-05-13 Uros Bizjak <ubizjak@gmail.com>
3963
3964 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
3965 (*movxf_internal_nointeger): Ditto.
3966 (*movdf_internal_rex64): Ditto.
3967 (*movdf_internal): Ditto.
3968 (*movdf_internal_nointeger): Ditto.
3969 (*movsf_internal): Ditto.
3970 (sincos splitters): Use can_create_pseudo ().
3971
7eb68c06
JM
39722011-05-13 Joseph Myers <joseph@codesourcery.com>
3973
3974 * config/i386/i386-opts.h: New.
3975 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
3976 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
3977 ix86_section_threshold): Remove.
3978 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
3979 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
3980 OPT_mbranch_cost_.
3981 (ix86_option_override_internal): Don't decode strings for options
3982 other than -march=, -mtune= and -mfpmath=. Don't allow for
3983 __attribute__ uses in remaining diagnostics for options with
34203483 3984 string arguments. Don't check for integer arguments being negative.
7eb68c06 3985 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 3986 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
3987 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
3988 ix86_branch_cost, ix86_section_threshold): Remove.
3989 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
3990 HeaderInclude.
3991 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
3992 but not Var.
3993 (masm=): Use Enum and Init.
3994 (asm_dialect): New Enum and EnumValue entries.
3995 (mbranch-cost=): Use UInteger.
3996 (mlarge-data-threshold=): Use UInteger and Init.
3997 (mcmodel=): Use Enum and Init.
3998 (cmodel): New Enum and EnumValue entries.
3999 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
4000 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
4001 mregparm=): Use UInteger.
4002 (mstringop-strategy=): Use Enum and Init.
4003 (stringop_alg): New Enum and EnumValue entries.
4004 (mtls-dialect=): Use Enum and Init.
4005 (tls_dialect): New Enum and EnumValue entries.
4006 (mabi=): Use Enum and Init.
4007 (calling_abi): New Enum and EnumValue entries.
4008 (mveclibabi=): Use Enum and Init.
4009 (ix86_veclibabi): New Enum and EnumValue entries.
4010
f67e203c
NC
40112011-05-13 Nick Clifton <nickc@redhat.com>
4012
34203483
UB
4013 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
4014 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 4015
221df0b6
KT
40162011-05-13 Kai Tietz <ktietz@redhat.com>
4017
4018 PR middle-end/48984
4019 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
4020 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
4021 (gimple_boolify): Check for cast for boolean_type_node instead for
4022 BOOLEAN_TYPE.
4023
208cb8cb
RG
40242011-05-13 Richard Guenther <rguenther@suse.de>
4025
4026 PR tree-optimization/48172
4027 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
4028 multiplying by number of iterations for equal step.
4029 (vect_create_cond_for_alias_checks): Likewise.
4030
b88ecf55
AS
40312011-05-13 Andreas Schwab <schwab@redhat.com>
4032
4033 * configure.ac: Use AS_HELP_STRING throughout.
4034 * configure: Regenerate.
4035
569b527e
L
40362011-05-12 H.J. Lu <hongjiu.lu@intel.com>
4037
34203483 4038 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
4039 (ix86_emit_restore_regs_using_mov): Likewise.
4040 (ix86_emit_restore_sse_regs_using_mov): Likewise.
4041
8b9a1428
AS
40422011-05-12 Anatoly Sokolov <aesok@post.ru>
4043
4044 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
4045 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
4046 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
4047 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
4048 RTX_OK_FOR_OLO10_P): ...here.
4049 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
4050 SYMBOLIC_CONST.
4051
1d15f620
KT
40522011-05-12 Kai Tietz <ktietz@redhat.com>
4053
4054 * gimplify.c (gimple_boolify): Re-boolify expression
4055 arguments even if expression type is of kind BOOLEAN_TYPE.
4056 (gimplify_boolean_expr): Removed.
4057 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
4058 and XOR. Additional take care that we keep expression's type.
4059 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
4060 of TRUTH_AND|OR|XOR_EXPR.
4061
c2b5fc8d
JJ
40622011-05-12 Jakub Jelinek <jakub@redhat.com>
4063
4064 PR tree-optimization/48975
4065 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
4066 on all bbs here and free and clear ifc_bbs at the end.
4067
61332f77
RG
40682011-05-12 Richard Guenther <rguenther@suse.de>
4069
4070 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
4071 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
4072 until after simple checks.
4073 (gimple_types_compatible_p): Likewise.
4074 (iterative_hash_gimple_type): Always hash pointer targets
4075 and function return and argument types.
4076 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
4077 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
4078 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
4079 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
4080 completely in the simple compare section.
4081 (gimple_register_canonical_type): Query the cache again after
4082 registering.
4083
e2a3a5f1
RG
40842011-05-12 Richard Guenther <rguenther@suse.de>
4085
4086 PR tree-optimization/48172
4087 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
4088 the number of iterations from the segment size calculation.
4089 (vect_create_cond_for_alias_checks): Adjust.
4090
2c703f3a
JJ
40912011-05-12 Jakub Jelinek <jakub@redhat.com>
4092
4093 PR debug/48967
4094 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
4095 if validate_subreg fails.
4096
40972011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
4098
4099 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
4100 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
4101 early.
4102
87e91fca
DD
41032011-05-12 DJ Delorie <dj@redhat.com>
4104
d53903d6 4105 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
4106 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
4107 created builtin into rx_builtins array.
4108 (rx_builtin_decl): New function.
34203483 4109 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 4110
5f2f13fd
DD
41112011-05-12 DJ Delorie <dj@redhat.com>
4112 Nick Clifton <nickc@redhat.com>
4113
4114 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
4115 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
4116 (rx_is_legitimate_address): Add pre-decrement and post-increment
4117 addressing in HImode and QImode. Fix test for out of range
4118 REG+INT addressing.
87e91fca 4119 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 4120 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 4121 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 4122 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 4123
57421f45
JM
41242011-05-11 Jason Merrill <jason@redhat.com>
4125
4126 * tree.c (type_hash_canon): Use struct tree_type_non_common.
4127
898c90c0
EB
41282011-05-11 Eric Botcazou <ebotcazou@adacore.com>
4129
4130 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
4131 reindent the subsequent block.
4132
79bec923
ST
41332011-05-11 Satoru Takabayashi <satorux@google.com>
4134 Paul Pluzhnikov <ppluzhnikov@google.com>
4135
34203483 4136 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
4137 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
4138 * config.in: Add LINKER_HASH_STYLE.
4139 * configure.ac: Add --with-linker-hash-style.
4140 * configure: Regenerate.
79bec923 4141
d0340959
RG
41422011-05-11 Richard Guenther <rguenther@suse.de>
4143
4144 PR middle-end/48964
4145 * gimple.c (iterative_hash_canonical_type): Fix typo.
4146
cb032fee
UB
41472011-05-11 Uros Bizjak <ubizjak@gmail.com>
4148
4149 * config/i386/i386.c (legitimize_tls_address)
479fecd3 4150 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
4151 expanders directly for TARGET_GNU2_TLS. Determine pic and
4152 __tls_get_addr symbol reference here. Update call to
4153 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 4154 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
4155 expanders directly for TARGET_GNU2_TLS. Determine
4156 __tls_get_addr symbol reference here. Update call to
4157 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
4158 unique UNSPEC REG_EQUIV to libcall block.
4159 (ix86_tls_get_addr): Declare static.
4160 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
4161 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
4162 Do not determine pic and __tls_get_addr symbol reference here. Do not
4163 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
4164 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
4165 (tls_global_dynamic_64): Add operand 2. Do not determine
4166 __tls_get_addr symbol reference here. Do not call
4167 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
4168 (tls_local_dynamic_base64): Ditto for operand 1.
4169
6d3cc8f0
EB
41702011-05-11 Eric Botcazou <ebotcazou@adacore.com>
4171
4172 * function.c (expand_function_start): Initialize stack_check_probe_note
4173 only if the generic stack checking mechanism is used.
4174
51e020fc
RG
41752011-05-11 Richard Guenther <rguenther@suse.de>
4176
4177 PR tree-optimization/15256
4178 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
4179 (A & B) | C, combine (A op CST1) op CST2.
4180 (tree_ssa_forward_propagate_single_use_vars): Only bother to
4181 visit assigns that have uses.
4182
51545682
NF
41832011-05-11 Nathan Froyd <froydnj@codesourcery.com>
4184
cb032fee 4185 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
4186 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
4187 (unpack_ts_type_common_value_fields): ...this. Update comment.
4188 (unpack_value_fields): Adjust for renaming.
4189 (lto_input_ts_type_tree_pointers): Split into...
4190 (lto_input_ts_type_common_tree_pointer): ...this and...
4191 (lto_input_ts_type_non_common_tree_pointers): ...this.
4192 (lto_input_tree_pointers): Adjust for above split.
4193 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
4194 (pack_ts_type_common_value_fields): ...this. Update comment.
4195 (lto_output_ts_type_tree_pointers): Split into...
4196 (lto_output_ts_type_common_tree_pointers): ...this and...
4197 (lto_output_ts_type_non_common_tree_pointers): ...this.
4198 (lto_output_tree_pointers): Adjust for above split.
4199 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
4200 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
4201 * stor-layout.c (vector_type_mode): Adjust location of mode field.
4202 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
4203 Define.
4204 (struct tree_type): Split into...
4205 (struct tree_type_common: ...this and...
4206 (struct tree_type_with_lang_specific): ...this and...
4207 (struct tree_type_non_common): ...this. Adjust accessor macros
4208 accordingly.
4209 (TYPE_VALUES_RAW): Define.
4210 (union tree_node): Update for above changes.
4211 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
4212 TS_TYPE_NON_COMMON.
4213 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
4214 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
4215 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
4216 * treestructu.def (TS_TYPE): Remove.
4217 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
4218 Define.
4219
b03c3082
JJ
42202011-05-11 Jakub Jelinek <jakub@redhat.com>
4221
4222 PR debug/48159
4223 * tree-ssa.c (reset_debug_uses): New function.
4224 * tree-flow.h (reset_debug_uses): New prototype.
4225 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
4226 * tree-loop-distribution.c (generate_loops_for_partition): Call
4227 reset_debug_uses on the stmts that will be removed. Keep around
4228 all debug stmts, don't count them as bits in partition bitmap.
4229 (generate_builtin): Don't count debug stmts or labels as bits in
4230 partition bitmap.
4231
b5e04de5
RG
42322011-05-11 Richard Guenther <rguenther@suse.de>
4233
4234 * gimple.c (gimple_type_hash_1): Merge with ...
4235 (gimple_type_hash): ... this.
4236 (gtc_visit): Remove mode parameter and simplify accordingly.
4237 (gimple_types_compatible_p_1): Likewise.
4238 (gimple_types_compatible_p): Likewise.
4239 (iterative_hash_gimple_type): Likewise.
4240 (visit): Likewise.
4241 (gimple_type_eq): Adjust.
4242
fc6970e4
RE
42432011-05-11 Revital Eres <revital.eres@linaro.org>
4244
4245 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
4246 enters the branch create an anti edge in the opposite direction
4247 to prevent the creation of reg-moves.
4248 * modulo-sched.c: Adjust comment to reflect the fact we are
4249 scheduling closing branch.
4250 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
4251 (stage_count): New field in struct partial_schedule.
4252 (calculate_stage_count): New function.
4253 (normalize_sched_times): Rename to reset_sched_times and handle
4254 incrementing the sched time of the nodes by a constant value
4255 passed as parameter.
4256 (duplicate_insns_of_cycles): Skip closing branch.
4257 (sms_schedule_by_order): Schedule closing branch.
4258 (ps_insn_find_column): Handle closing branch.
4259 (sms_schedule): Call reset_sched_times and adjust the code to
4260 support scheduling of the closing branch.
4261 (ps_insert_empty_row): Update calls to normalize_sched_times
4262 and rotate_partial_schedule functions.
4263
41a58a92
RG
42642011-05-11 Richard Guenther <rguenther@suse.de>
4265
4266 PR middle-end/48953
4267 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
4268
e9f8dcf9
JM
42692011-05-11 Joseph Myers <joseph@codesourcery.com>
4270
cb032fee
UB
4271 * opts.c (finish_options): Move warning settings from process_options.
4272 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 4273
10c224a9
RG
42742011-05-11 Richard Guenther <rguenther@suse.de>
4275
4276 PR tree-optimization/18041
4277 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
4278 (simplify_bitwise_binary): ... this. Handle operand conversions
4279 by applying them to the result instead.
4280 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
4281
825b27de
RG
42822011-05-11 Richard Guenther <rguenther@suse.de>
4283
4284 * gimple.c (gimple_canonical_types_compatible_p): Split out
4285 from gimple_types_compatible_p and friends. Do not recurse
4286 to pointed-to types.
4287 (gimple_canonical_type_eq): Use it.
4288 (iterative_hash_canonical_type): Split out from
4289 iterative_hash_gimple_type and friends. Do not recurse
4290 to pointed-to types.
4291 (gimple_canonical_type_hash): Use it, allocate the hash here.
4292
ca756625
RE
42932011-05-11 Revital Eres <revital.eres@linaro.org>
4294
4295 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
4296 recognizing doloop.
4297
b8abece3
RE
42982011-05-11 Revital Eres <revital.eres@linaro.org>
4299
4300 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
4301 instead of PREV_INSN.
4302
ce7b3761
RE
43032011-05-11 Revital Eres <revital.eres@linaro.org>
4304
4305 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
4306 * loop-doloop.c (doloop_condition_get): Likewise.
4307 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
4308 (doloop_end): New.
4309 * config/arm/arm.md (*addsi3_compare0): Remove "*".
4310
a9dc9d37
NF
43112011-05-10 Nathan Froyd <froydnj@codesourcery.com>
4312
4313 * tree.def (CASE_LABEL_EXPR): Add an operand.
4314 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
4315
96703596
JM
43162011-05-10 Joseph Myers <joseph@codesourcery.com>
4317
4318 * c-decl.c (c_override_global_bindings_to_false): Remove.
4319 (global_bindings_p): Don't check
4320 c_override_global_bindings_to_false.
4321 * c-tree.h (c_override_global_bindings_to_false): Remove.
4322 * c-typeck.c (composite_type): Don't set
4323 c_override_global_bindings_to_false.
4324
dbcc9f08
MM
43252011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4326
4327 PR target/48857, 48495
4328 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
4329 (VSX_MODE): Ditto.
4330 (VSX_MOVE_MODE): Ditto.
4331 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
4332 VSX vector types. Add V2DImode.
4333 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
4334 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
4335 (MODES_TIEABLE_P): Ditto.
4336
4337 * config/rs6000/rs6000.c (rs6000_emit_move): Use
4338 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
4339 VSX_VECTOR_MODE.
4340 (init_cumulative_args): Ditto.
4341 (rs6000_function_arg_boundary): Ditto.
4342 (rs6000_function_arg_advance_1): Ditto.
4343 (rs6000_function_arg): Ditto.
4344 (rs6000_function_ok_for_sibcall): Ditto.
4345 (emit_frame_save): Ditto.
4346 (rs6000_function_value): Ditto.
4347 (rs6000_libcall_value): Ditto.
4348
4a68b4ca
JM
43492011-05-10 Joseph Myers <joseph@codesourcery.com>
4350
4351 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
4352 i386/darwin-lib.h to $libgcc_tm_file.
4353 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
4354
bcb521e9
JM
43552011-05-10 Joseph Myers <joseph@codesourcery.com>
4356
4357 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
4358
f10d3ac9
JM
43592011-05-10 Joseph Myers <joseph@codesourcery.com>
4360
cb032fee 4361 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
4362 * config/rs6000/rs6000-tables.opt: New file (generated).
4363 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
4364 rs6000/rs6000-tables.opt to extra_options.
4365 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
4366 * config/rs6000/rs6000.c (rs6000_select): Remove.
4367 (processor_target_table): Move contents to rs6000-cpus.def.
4368 (darwin_rs6000_override_options): Check
4369 global_options_set.x_rs6000_cpu_index instead of
4370 rs6000_select[1].string.
4371 (rs6000_option_override_internal): Likewise.
4372 (rs6000_handle_option): Don't assert that global structures are in
4373 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
4374 (rs6000_default_cpu): New variable.
4375 (rs6000_file_start): Set it instead of local default_cpu. Check
4376 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
4377 global_options_set.x_rs6000_tune_index instead of rs6000_select.
4378 (rs6000_darwin_file_start): Check rs6000_default_cpu and
4379 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
4380 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
4381 rs6000_select): Remove.
4382 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
4383 Remove.
4384 (mcpu=, mtune=): Use Var, Init, Enum and Save.
4385 * config/rs6000/t-rs6000
4386 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
4387 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
4388 global_options_set.x_rs6000_cpu_index instead of
4389 rs6000_select[1].string.
4390 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
4391 global_options_set.x_rs6000_cpu_index instead of
4392 rs6000_select[1].string.
4393
80cf2e08
JM
43942011-05-10 Joseph Myers <joseph@codesourcery.com>
4395
4396 * config.gcc (libgcc_tm_file): Define instead of including files
4397 from ../../libgcc/config/ in tm_file.
cb032fee 4398 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
4399 * configure: Regenerate.
4400 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
4401 libgcc_tm.h, cs-libgcc_tm.h): New.
4402 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
4403 (clean): Remove libgcc_tm.h.
4404 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
4405 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
4406 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
4407
fd01a351
GJL
44082011-05-10 Georg-Johann Lay <avr@gjlay.de>
4409
4410 PR target/48896
4411 * config/avr/avr.c (avr_ret_register): Return unsigned int
4412 instead of int.
4413 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
4414 it to avr_libcall_value.
4415 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
4416 expand_expr.
4417 (avr_expand_binop_builtin): Ditto.
4418 (avr_expand_unop_builtin): Ditto.
4419
34cc3c86
DD
44202011-05-10 DJ Delorie <dj@redhat.com>
4421
4422 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
4423 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
4424 * config/rx/rx.c (rx_align_for_label): Add label and
4425 uses_threshold parameters. Do not align when the label is not
4426 used enough.
4427 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
4428
be173289
RG
44292011-05-10 Richard Guenther <rguenther@suse.de>
4430
4431 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
4432 a series of conversions and apply foldings similar to what
4433 fold-const does.
4434 (tree_ssa_forward_propagate_single_use_vars): Call it.
4435
e7f78021
JJ
44362011-05-10 Jakub Jelinek <jakub@redhat.com>
4437
6ae70ea2
JJ
4438 PR tree-optimization/48611
4439 PR tree-optimization/48794
4440 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
4441 referenced from RESX or EH_DISPATCH arguments.
4442
e7f78021
JJ
4443 PR debug/48928
4444 * dfp.c (decimal_to_decnumber): Handle conversion from
4445 dconst{1,2,m1,half}.
4446
fca132b9
UB
44472011-05-09 Uros Bizjak <ubizjak@gmail.com>
4448
4449 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
4450 for !flag_prefer_avx128.
4451 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
4452
e4c03378
EB
44532011-05-09 Eric Botcazou <ebotcazou@adacore.com>
4454
4455 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
4456 (fold_ternary_loc): Use expr_location_or.
4457
805d6a75
L
44582011-05-09 H.J. Lu <hongjiu.lu@intel.com>
4459
4460 PR debug/48853
4461 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
4462 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
4463 Pmode and mem_mode is not VOIDmode.
4464
e4c03378 44652011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 4466
e4c03378
EB
4467 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
4468 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 4469
51e7f377
UB
44702011-05-09 Uros Bizjak <ubizjak@gmail.com>
4471
4472 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
4473 (const_pow2_1_to_8_operand): Ditto.
4474 (const_pow2_1_to_128_operand): Ditto.
4475 (const_pow2_1_to_32768_operand): Ditto.
4476 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
4477 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
4478 in insn constraint to check integer value of operand 3.
4479 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
4480
4481 (PINSR_MODE): New mode iterator.
4482 (sse2p4_1): New mode attribute.
4483 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
4484 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
4485 iterator. Use const_int_operand instead of
4486 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
4487 exact_log2 in insn constraint to check integer value of operand 3.
4488
44892011-05-09 Uros Bizjak <ubizjak@gmail.com>
4490
4491 * config/i386/sse.md (blendbits): Remove mode attribute.
4492 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
4493 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
4494 Check integer value of operand 3 in insn constraint.
4495
0ca8de87
RG
44962011-05-09 Richard Guenther <rguenther@suse.de>
4497
4498 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
4499 for diagnostics.
4500 (lto_symtab_merge): Likewise. Do not register types here.
4501 (lto_symtab_merge_decls_2): Likewise.
4502 (lto_symtab_merge_decls_1): Likewise.
4503 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
4504 * gimple.c (enum gtc_mode): Declare.
4505 (gimple_types_compatible_p): Make static.
4506
a9e6994a
AK
45072011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4508
4509 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
4510 temporary register to match Pmode.
4511
fb55d62e
UB
45122011-05-09 Uros Bizjak <ubizjak@gmail.com>
4513
4514 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
4515 and *vec_concatv4si_1_avx.
4516
eb1485a6
UB
45172011-05-09 Uros Bizjak <ubizjak@gmail.com>
4518
4519 PR rtl-optimization/48927
4520 * ira-conflicts.c (commutative_constraint_p): Use
4521 recog_data.alternative_enabled_p to disable alternatives where
4522 "enabled" attribute is false.
4523 (get_dup_num): Ditto.
4524 * ira-lives.c (single_reg_class): Ditto.
4525 (ira_implicitly_set_insn_hard_regs): Ditto.
4526
c46d001a
EB
45272011-05-09 Eric Botcazou <ebotcazou@adacore.com>
4528
4529 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
4530 (dataflow_set_preserve_mem_locs): Likewise.
4531
45322011-05-09 Philipp Thomas <pth@suse.de>
4533
6d9e7c41
PT
4534 * config/mep/mep.c (mep_validate_vliw): Syntax description
4535 should not be translated.
4536
d371df6f
JM
45372011-05-09 Joseph Myers <joseph@codesourcery.com>
4538
4539 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
4540 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 4541 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
4542 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
4543 MIPS_ARCH_OPTION_NATIVE): Define.
4544 * config/mips/mips.c (mips_cpu_info_table): Move contents to
4545 mips-cpus.def.
4546 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
4547 mips_parse_cpu): Remove.
4548 (mips_cpu_info_from_opt, mips_default_arch): New.
4549 (mips_handle_option): Don't assert that global structures are in
4550 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
4551 (mips_option_override): Use new variables and functions to set
eb1485a6 4552 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
4553 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
4554 definition.
4555 * config/mips/mips.opt (march=): Use ToLower and Enum.
4556 (mips): Use ToLower, Enum and Var.
4557 (mtune=): Use ToLower and Enum.
4558 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
4559
4fc07af9
JH
45602011-05-08 Jan Hubicka <jh@suse.cz>
4561
4562 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
4563 Arrange type pairs to be UID ordered.
4564 (gimple_lookup_type_leader): Make inline.
4565
2cf320a8
NC
45662011-05-09 Nick Clifton <nickc@redhat.com>
4567
61d6def5
NC
4568 PR target/48899
4569 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
4570 PROCESSOR_DEFAULT.
4571
2cf320a8
NC
4572 PR target/48897
4573 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
4574 variable 's'.
4575
4f82319d
CLT
45762011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
4577
4578 * combine.c (simplify_comparison): Abstract out parts into...
4579 (simplify_compare_const): ... new function.
4580 (try_combine): Generalize parallel arithmetic/compare combining
4581 to call simplify_compare_const() and CANONICALIZE_COMPARE().
4582
74605a11
JH
45832011-05-08 Jan Hubicka <jh@suse.cz>
4584
4585 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
4586 (cgraph_create_virtual_clone): Call hooks once virtual clone
4587 is finished.
74605a11 4588 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
4589 * ipa-cp.c (ipcp_estimate_growth): Use
4590 estimate_ipcp_clone_size_and_time.
74605a11
JH
4591 * ipa-inline-transform.c (clone_inlined_nodes): Update.
4592 * lto-cgraph.c (input_node): Update.
4593 * ipa-inline.c (recursive_inlining): Update.
4594 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
4595 (evaluate_conditions_for_known_args): Break out from ...
4596 (evaluate_conditions_for_edge): ... here.
4597 (evaluate_conditions_for_ipcp_clone): New function.
4598 (inline_node_duplication_hook): Update clone summary based
4599 on parameter map.
4600 (estimate_callee_size_and_time): Rename to ...
4601 (estimate_node_size_and_time): take NODE instead of EDGE;
4602 take POSSIBLE_TRUTHS as argument.
4603 (estimate_callee_size_and_time): Update.
4604 (estimate_ipcp_clone_size_and_time): New function.
4605 (do_estimate_edge_time): Update.
4606
5c049507
RG
46072011-05-08 Richard Guenther <rguenther@suse.de>
4608
4609 PR middle-end/48908
4610 PR middle-end/48905
4611 * expmed.c (expand_shift_1): Compute adjusted constant shift
4612 amount manually.
4613
f64c36ba
EB
46142011-05-08 Eric Botcazou <ebotcazou@adacore.com>
4615
4616 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
4617
c461a957
EB
46182011-05-08 Eric Botcazou <ebotcazou@adacore.com>
4619
4620 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
4621
7c74e556
JW
46222011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
4623
4624 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
4625
b4c0a884
JH
46262011-05-07 Jan Hubicka <jh@suse.cz>
4627
a9bcb3f0
EB
4628 * ipa-inline-transform.c (inline_call): Account when program size
4629 decreases.
b4c0a884 4630 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
4631 (edge_badness): Reorganize to be power 2 based; fix thinko when
4632 computing badness for negative growth; update comments to match
4633 reality; better dumps.
b4c0a884 4634
c99c0026
EB
46352011-05-07 Eric Botcazou <ebotcazou@adacore.com>
4636
4637 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
4638 type to bool and adjust comment.
4639 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
4640 (fold_mathfn_compare): Remove calls to global_bindings_p.
4641 (fold_inf_compare): Likewise.
4642 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
4643 * c-tree.h (global_bindings_p): Adjust prototype.
4644 * c-decl.c (global_bindings_p): Return bool and simplify.
4645
1400c8e5
ZD
46462011-05-07 Zdenek Dvorak <ook@ucw.cz>
4647
4648 PR tree-optimization/48837
4649 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
4650 when accumulator transformation is performed.
4651
5d0878e7
JH
46522011-05-06 Jan Hubicka <jh@suse.cz>
4653
a9bcb3f0
EB
4654 * i386.h (ix86_tune_indices): Add
4655 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 4656 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
4657 * i386.c (initial_ix86_tune_features): Add
4658 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
4659 (software_prefetching_beneficial_p): Remove predicate.
4660 (ix86_option_override_internal): Use new macro.
4661
58696ce5
JH
46622011-05-06 Jan Hubicka <jh@suse.cz>
4663
4664 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
4665
c47d0034
JH
46662011-05-06 Jan Hubicka <jh@suse.cz>
4667
4668 * cgraph.c (cgraph_add_thunk): Create real function node instead
4669 of alias node; finalize it and mark needed/reachale; arrange visibility
4670 to be right and add it into the corresponding same comdat group list.
4671 (dump_cgraph_node): Dump thunks.
4672 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
4673 cgraph_function_with_gimple_body_p,
4674 cgraph_first_function_with_gimple_body,
c47d0034
JH
4675 cgraph_next_function_with_gimple_body): New functions.
4676 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
4677 New macros.
4678 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
4679 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
4680 * cgraphunit.c (cgraph_finalize_function): Only look into possible
4681 devirtualization when optimizing.
4682 (verify_cgraph_node): Verify thunks.
4683 (cgraph_analyze_function): Analyze thunks.
4684 (cgraph_mark_functions_to_output): Output thunks only in combination
4685 with function they are assigned to.
4686 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
4687 alias into normal node.
4688 (assemble_thunks): New functoin.
4689 (cgraph_expand_function): Use it.
4690 * lto-cgraph.c (lto_output_node): Stream thunks.
4691 (input_overwrite_node): Stream in thunks.
4692 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
4693 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
4694 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
4695 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
4696 (inline_analyze_function): Do not care about thunk jump functions.
4697 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
4698 * ipa-prop.c (ipa_prop_write_jump_functions): Use
4699 cgraph_function_with_gimple_body_p.
4700 * passes.c (do_per_function_toporder): Use
4701 cgraph_function_with_gimple_body_p.
c47d0034
JH
4702 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
4703 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
4704 (function_called_by_processed_nodes_p): Likewise.
4705
d8f426ec
JM
47062011-05-06 Joseph Myers <joseph@codesourcery.com>
4707
4708 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
4709 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
4710 entries.
4711 (mabi=): Replace with separate entries for mabi=altivec,
4712 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
4713 mabi=ieeelongdouble and mabi=ibmlongdouble.
4714 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
4715 check for -mabi=spe without SPE ABI support here.
4716 (rs6000_handle_option): Replace OPT_mabi_ handling with
4717 OPT_mabi_altivec and OPT_mabi_spe handling.
4718
80bde45b
CC
47192011-05-06 Cary Coutant <ccoutant@google.com>
4720
4721 * dwarf2out.c (contains_subprogram_definition): New function.
4722 (should_move_die_to_comdat): Call it.
4723
a91926b9
JL
47242011-05-06 Jeff Law <law@redhat.com>
4725
4726 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
4727 remove_ctrl_stmt_and_useless_edges.
4728 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
4729 (fixup_template_block, thread_single_edge): Likewise.
4730 (mark_threaded_blocks): Use THREAD_TARGET.
4731
1fc1b66d
AM
47322011-05-06 Alan Modra <amodra@gmail.com>
4733
4734 PR target/48900
4735 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
4736 const0_rtx as the arg to the dummy __tls_get_addr libcall.
4737
e194de64
UB
47382011-05-06 Uros Bizjak <ubizjak@gmail.com>
4739
4740 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
4741 constraint modifier to "r".
4742
d740dc9e
JM
47432011-05-06 Joseph Myers <joseph@codesourcery.com>
4744
4745 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
4746 fall through for OPT_mcmodel_.
4747
cab78b15
AK
47482011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4749
4750 * config/s390/s390.c (s390_asm_trampoline_template): Comment
4751 instruction sizes.
e194de64 4752 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 4753
ee6824ae
RR
47542011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4755
eb1485a6
UB
4756 PR target/47930
4757 * config/arm/arm.opt (marm): Document it.
4758 (mthumb): Reject negative variant.
ee6824ae 4759
9ef58464
UB
47602011-05-06 Uros Bizjak <ubizjak@gmail.com>
4761
4762 PR target/48898
4763 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
4764 Fix typo in "ccvt" variable name.
4765
155b6176
TG
47662011-05-06 Tristan Gingold <gingold@adacore.com>
4767
4768 PR target/48895
4769 * config/vms/vms-ar.c (main): Remove cwd variable.
4770
3becc47b
JJ
47712011-05-06 Jakub Jelinek <jakub@redhat.com>
4772
4773 PR debug/48902
4774 * var-tracking.c (prepare_call_arguments): Move else before #endif.
4775
3d528853
NF
47762011-05-05 Nathan Froyd <froydnj@codesourcery.com>
4777
4778 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
4779 * gimplify.c (gimplify_switch_expr): Likewise.
4780 * omp-low.c (expand_omp_sections): Likewise.
4781 * tree-eh.c (lower_try_finally_switch): Likewise.
4782 (lower_eh_dispatch): Likewise.
4783 * tree.h (build_case_label): Declare.
4784 * tree.c (build_case_label): Define.
4785
deb5046b
JM
47862011-05-05 Jason Merrill <jason@redhat.com>
4787
4788 PR c++/40975
4789 * tree-inline.c (copy_tree_r): Use copy_statement_list.
4790 (copy_statement_list): Don't recurse.
4791 * stor-layout.c (copy_self_referential_tree_r): Don't allow
4792 STATEMENT_LIST.
4793
013c0411
JM
47942011-05-05 Joseph Myers <joseph@codesourcery.com>
4795
4796 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
4797 through from -mfpu= handling.
4798 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
4799
a0905f8b
BS
48002011-05-05 Bernd Schmidt <bernds@codesourcery.com>
4801
4802 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
4803 POST_MODIFY.
4804
fc4538e4
SE
48052011-05-05 Steve Ellcey <sje@cup.hp.com>
4806
4807 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
4808 for 11.31.
4809 (hppa[12]*-*-hpux11*): Ditto.
4810 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
4811 * config/ia64/hpux-unix2003.h: New.
4812 * config/pa/pa-hpux1131.opt: New.
4813 * config/pa/pa-hpux1131.h: New.
4814 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
4815 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 4816 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 4817
1e30c578
JJ
48182011-05-05 Jakub Jelinek <jakub@redhat.com>
4819
4820 PR debug/48853
4821 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
4822 instead of mode as 3rd argument to recursive call.
4823 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
4824 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
4825 VOIDmode.
4826 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
4827 don't give up if mode is Pmode and mem_mode is not VOIDmode.
4828 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
4829 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
4830
d19eb620
JB
48312011-05-05 Julian Brown <julian@codesourcery.com>
4832
4833 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
4834 parenthesis in D-register case.
4835
c860fe8c
JM
48362011-05-05 Joseph Myers <joseph@codesourcery.com>
4837
4838 * opt-functions.awk (var_type_struct): Handle Enum options.
4839 * optc-gen.awk: Don't check range of variables of character type.
4840 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
4841 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
4842 rs6000_sdata_name, rs6000_explicit_options): Remove.
4843 (rs6000_option_override_internal): Check for -malign-power here.
4844 Use global_options_set instead of rs6000_explicit_options.
4845 (rs6000_parse_fpu_option): Remove.
4846 (rs6000_handle_option): Access variables via opts and opts_set
4847 pointers. Use error_at and warning_at. Add fall-through
4848 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
4849 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
4850 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
4851 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
4852 here. Don't use rs6000_parse_fpu_option.
4853 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
4854 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
4855 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
4856 (mrecip=): Use Var.
4857 (mspe): Use Var and Save.
4858 (mtraceback=): Use Enum and Var.
4859 (rs6000_traceback_type): New Enum and EnumValue entries.
4860 (mfloat-gprs=): Use Enum, Var and Save.
4861 (rs6000_float_gprs): New Enum and EnumValue entries.
4862 (mlong-double-): use Var and Save.
4863 (msched-costly-dep=, minsert-sched-nops=): Use Var.
4864 (malign-): Use Enum and Var.
4865 (rs6000_alignment_flags): New Enum and EnumValue entries.
4866 (mfpu=): Use Enum.
4867 (fpu_type_t): New Enum and EnumValue entries.
4868 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4869 global_options_set instead of rs6000_explicit_options.
4870 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4871 global_options_set instead of rs6000_explicit_options.
4872 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4873 global_options_set instead of rs6000_explicit_options.
4874 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4875 global_options_set instead of rs6000_explicit_options.
4876 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
4877 global_options_set instead of rs6000_explicit_options.
4878 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4879 global_options_set instead of rs6000_explicit_options.
4880 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
4881 definition.
4882 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4883 global_options_set instead of rs6000_explicit_options.
4884 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
4885 (rs6000_cmodel): New Enum and EnumValue entries.
4886 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4887 global_options_set instead of rs6000_explicit_options.
4888 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
4889 (mtls-size=): Use Enum and Var.
4890 (rs6000_tls_size): New Enum and EnumValue entries.
4891
0691dde9
MM
48922011-05-05 Michael Matz <matz@suse.de>
4893
4894 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
4895 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
4896 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
4897 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
4898 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
4899 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
4900 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
4901 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
4902 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
4903 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
4904 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
4905 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
4906 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
4907 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
4908 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
4909 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
4910
86529a49
RG
49112011-05-05 Richard Guenther <rguenther@suse.de>
4912
4913 * expmed.c (expand_variable_shift): Rename to ...
4914 (expand_shift_1): ... this. Take an expanded shift amount.
4915 For rotates recurse directly not building trees for the shift amount.
4916 (expand_variable_shift): Wrap around expand_shift_1.
4917 (expand_shift): Adjust.
4918
d0228c2e
JJ
49192011-05-05 Jakub Jelinek <jakub@redhat.com>
4920
4921 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
4922
907a08d9
EB
49232011-05-05 Eric Botcazou <ebotcazou@adacore.com>
4924
4925 * tree.h (get_pending_sizes): Remove prototype.
4926 (put_pending_size): Likewise.
4927 (put_pending_sizes): Likewise.
4928 * stor-layout.c (pending_sizes): Delete.
4929 (get_pending_sizes): Likewise.
4930 (put_pending_size): Likewise.
4931 (put_pending_sizes): Likewise.
4932 (variable_size): Do not call put_pending_size and tidy up.
4933 * function.h (struct function): Remove dont_save_pending_sizes_p.
4934 * lto-streamer-in.c (input_function): Do not stream it.
4935 * lto-streamer-out.c (output_function): Likewise.
4936 * tree-inline.c (initialize_cfun): Do not copy it.
4937 * c-decl.c (store_parm_decls): Do not set it.
4938 * omp-low.c (create_task_copyfn): Likewise.
4939 * tree-optimize.c (tree_rest_of_compilation): Likewise.
4940
386d9c57
UB
49412011-05-05 Uros Bizjak <ubizjak@gmail.com>
4942
4943 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
4944 conditions.
4945 (*movdf_internal): Ditto.
4946 (*movdf_internal_nointeger): Ditto.
4947 (*movsf_internal): Ditto.
4948
a04a722b
JM
49492011-05-05 Joseph Myers <joseph@codesourcery.com>
4950
4951 * c-decl.c (finish_decl): Don't call get_pending_sizes.
4952 (grokparm): Add parameter expr. Pass it to grokdeclarator.
4953 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
4954 (c_variable_size): Remove.
4955 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
4956 call put_pending_sizes.
4957 (get_parm_info): Add parameter expr. Use it to set
4958 arg_info->pending_sizes.
4959 (store_parm_decls): Use arg_info->pending_sizes instead or calling
4960 get_pending_sizes.
4961 * c-parser.c (c_parser_parms_declarator): Update call to
4962 c_parser_parms_list_declarator.
4963 (c_parser_parms_list_declarator): Take parameter expr. Update
4964 call to push_parm_decl. Update recursive call. Don't call
4965 get_pending_sizes. Update calls to get_parm_info.
4966 (c_parser_objc_method_definition): Update calls to
4967 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 4968 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
4969 (c_parser_objc_method_decl): Add parameter expr. Update call to
4970 grokparm.
386d9c57 4971 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
4972 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
4973 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
4974
c92a6f97
MH
49752011-05-05 Michael Hope <michael.hope@linaro.org>
4976
386d9c57
UB
4977 PR pch/45979
4978 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
4979 __ARM_EABI__ hosts.
c92a6f97 4980
07ea0048
UW
49812011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4982
4983 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
4984 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
4985 (spu_output_mi_thunk): New function.
4986
d634bfa1
RO
49872011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4988
4989 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
4990 targetm.asm_out.print_operand.
4991 * config/sol2.c: Include target.h.
4992
40fda55b
JH
49932011-05-04 Jan Hubicka <jh@suse.cz>
4994
4995 * ipa-inline.c (reset_edge_caches): New function.
4996 (update_caller_keys): Add check_inlinablity_for; do not
4997 reset edge caches; remove now unnecesary loop.
386d9c57 4998 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
4999 (update_all_callee_keys): Likewise.
5000 (inline_small_functions): Sanity check cache; update code
5001 recomputing it.
5002
0360f70d
BS
50032011-05-04 Bernd Schmidt <bernds@codesourcery.com>
5004
5005 PR rtl-optimization/47612
5006 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
5007 as the last insn of the sequence to be moved.
5008
7a994646
TB
50092011-05-04 Tobias Burnus <burnus@net-b.de>
5010
5011 PR fortran/48864
5012 * doc/invoke.texi (Ofast): Document that it
5013 enables Fortran's -fno-protect-parens.
5014
7a2f7208
UB
50152011-05-04 Uros Bizjak <ubizjak@gmail.com>
5016
5017 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
5018
a2d42931
EB
50192011-05-04 Eric Botcazou <ebotcazou@adacore.com>
5020
5021 * stor-layout.c (variable_size): Do not issue errors.
5022
f81b1a3d
RG
50232011-05-04 Richard Guenther <rguenther@suse.de>
5024
5025 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
5026 for array-ref indices.
5027 (tree_coverage_counter_addr): Likewise.
5028 (build_fn_info_type): Use size_int for index types.
5029 (build_gcov_info): Likewise.
5030
c62c040f
RG
50312011-05-04 Richard Guenther <rguenther@suse.de>
5032
5033 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
5034 to build_int_cst.
5035 * c-typeck.c (really_start_incremental_init): Use bitsize_int
5036 for constructor indices.
5037 (push_init_level): Likewise.
5038
1e3287d0
RG
50392011-05-04 Richard Guenther <rguenther@suse.de>
5040
5041 * explow.c (promote_mode): Move variable declarations before code.
5042
6c32445b
NF
50432011-05-04 Nathan Froyd <froydnj@codesourcery.com>
5044
5045 * tree.h (build_function_type_array): Declare.
5046 (build_varargs_function_type_array): Declare.
5047 (build_function_type_vec, build_varargs_function_type_vec): Define.
5048 * tree.c (build_function_type_array_1): New function.
5049 (build_function_type_array): New function.
5050 (build_varargs_function_type_array): New function.
5051
fdabf269
RS
50522011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
5053
5054 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
5055 before setting STMT_VINFO_TYPE.
5056
a207915a
UW
50572011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5058
5059 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
5060 instead of spu_pass_by_reference.
5061
5e617be8
AK
50622011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5063
5064 * calls.c (emit_library_call_value_1): Invoke
5065 promote_function_mode hook on libcall arguments.
5066 * explow.c (promote_function_mode, promote_mode): Handle TYPE
5067 argument being NULL.
5068 * targhooks.c (default_promote_function_mode): Lisewise.
5069 * config/s390/s390.c (s390_promote_function_mode): Likewise.
5070 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
5071
5072 * doc/tm.texi: Document that TYPE argument might be NULL.
5073
486d04be
SH
50742011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5075
5076 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
5077
9b19b026
SH
50782011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5079
5080 From Bernd Schmidt
5081 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
5082
502bc3df
RO
50832011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5084
5085 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
5086 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
5087 Move ...
5088 * mips-tfile.c: ... here.
5089 Don't include coretypes.h, tm.h, filenames.h.
5090 (saber_stop): Remove definition and all calls.
5091 [__SABER__]: Remove.
5092 (__LINE__): Remove default.
5093 (Size_t, Ptrdiff_t): Remove definitions.
5094 Replace by size_t, ptrdiff_t.
5095 [!MIPS_DEBUGGING_INFO]: Remove.
5096 (SHASH_SIZE, THASH_SIZE): Remove defaults.
5097 (progname): Add const.
5098 (STATIC): Remove.
5099 Replace all uses by static.
5100 (ALIGN_SYMTABLE_OFFSET): Remove default.
5101 * mips-tdump.c: Don't include coretypes.h, tm.h.
5102 Remove !MIPS_IS_STAB guard.
5103 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
5104 $(TM_H), filenames.h dependencies.
5105 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
5106
991eb6ef
SH
51072011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5108
5109 From Jie Zhang
5110 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
5111 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
5112
420ccc84
SH
51132011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5114
5115 From Bernd Schmidt
5116 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
5117 account and save/restore RETS.
5118 (PROFILE_BEFORE_PROLOGUE): Define.
5119 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
5120 the push insn to use predecrement.
5121
9f8d69ee
SH
51222011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5123
5124 From Jie Zhang
5125 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
5126
662c03f4
NC
51272011-05-04 Nick Clifton <nickc@redhat.com>
5128
5129 * config/mn10300/mn10300.c: Include cfgloop.h.
5130 (DUMP): New macro.
5131 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
5132 Lcc or a FLcc insn into the instruction stream.
5133 (mn10300_block_contains_call): New function. Returns true if the
5134 given basic block contains a CALL insn.
5135 (mn10300_loop_contains_call_insn): New function. Returns true if
5136 the given loop contains a CALL insn.
5137 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
5138 to use the SETLB and Lcc or FLcc insns.
5139 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
5140 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
5141 * config/mn10300/mn10300.opt (msetlb): New option. Used to
5142 disable the SETLB optimization.
5143 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
5144 __SETLB__ or __NO_SETLB__.
5145 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
5146 (movsf_internal): Handle MDR register.
5147 (cmpsi): Make visible.
5148 (setlb): New pattern.
5149 (Lcc): New pattern.
5150 (FLcc): New pattern.
5151
843b6915
UB
51522011-05-04 Uros Bizjak <ubizjak@gmail.com>
5153
5154 PR target/48860
5155 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
5156 for reg<->xmm moves.
5157 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
5158 (vec_concatv2di_rex64_sse): Ditto.
5159 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
5160 (*vec_extractv2di_1_rex64): Ditto.
5161
5162 Revert:
5163 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
5164
5165 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
5166 reg<->xmm moves.
5167 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
5168
d35936ab
RG
51692011-05-04 Richard Guenther <rguenther@suse.de>
5170
5171 * tree.h (int_const_binop): Remove notrunc argument.
5172 * fold-const.c (int_const_binop): Remove notrunc argument. Always
5173 create integer constants that are properly truncated.
5174 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
5175 (const_binop): Remove zero notrunc argument to int_const_binop.
5176 (size_binop_loc): Likewise.
5177 (fold_div_compare): Likewise.
5178 (maybe_canonicalize_comparison_1): Likewise.
5179 (fold_comparison): Likewise.
5180 (fold_binary_loc): Likewise.
5181 (multiple_of_p): Likewise.
5182 * expr.c (store_constructor): Likewise.
5183 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5184 (maybe_fold_stmt_addition): Likewise.
5185 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
5186 * stor-layout.c (layout_type): Likewise.
5187 * tree-data-ref.c (tree_fold_divides_p): Likewise.
5188 * tree-sra.c (build_ref_for_offset): Likewise.
5189 (build_user_friendly_ref_for_offset): Likewise.
5190 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
5191 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5192 * tree-ssa-loop-niter.c (inverse): Likewise.
5193 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
5194 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
5195 * tree-switch-conversion.c (check_range): Likewise.
5196 (build_constructors): Likewise.
5197 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
5198 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
5199 (extract_range_from_assert): Likewise.
5200 (vrp_int_const_binop): Likewise.
5201 (extract_range_from_binary_expr): Likewise.
5202 (extract_range_from_unary_expr): Likewise.
5203 (check_array_ref): Likewise.
5204 (find_case_label_range): Likewise.
5205 (simplify_div_or_mod_using_ranges): Likewise.
5206 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
5207 comparing case labels for merging.
5208
8992c063
MW
52092011-05-03 Mark Wielaard <mjw@redhat.com>
5210
5211 * dwarf2out.c (debug_str_hash_forced): Removed.
5212 (gen_label_for_indirect_string): Removed.
5213 (get_debug_string_label): Removed.
5214 (AT_string_form): Generate label directly.
5215 (output_indirect_string): Test indirect_string_node for
5216 DW_FORM_strp instead of checking label and refcount.
5217 (prune_indirect_string): Removed.
5218 (prune_unused_types): Don't check debug_str_hash_forced or
5219 call prune_indirect_string.
5220
4868e6ea
AO
52212011-05-04 Alexandre Oliva <aoliva@redhat.com>
5222
5223 PR other/48093
5224 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
5225
01a5c0ab
AO
52262011-05-04 Alexandre Oliva <aoliva@redhat.com>
5227
5228 PR debug/47994
5229 PR debug/47919
5230 * combine.c (try_combine): Skip debug insns at m_split tests.
5231
6ac00218
MW
52322011-04-26 Mark Wielaard <mjw@redhat.com>
5233
5234 PR42288
5235 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
5236 when info_section_emitted.
5237
3af42a7b
JM
52382011-05-03 Joseph Myers <joseph@codesourcery.com>
5239
5240 * config/mips/mips-opts.h: New.
5241 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
5242 to mips-opts.h.
5243 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
5244 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
5245 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
5246 via opts pointer.
5247 * config/mips/mips.h (enum mips_code_readable_setting): Move to
5248 mips-opts.h.
5249 (mips_abi, mips_code_readable): Don't declare.
843b6915 5250 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
5251 (mabi=): Use Enum and Var.
5252 (mips_abi): New Enum and EnumValue entries.
5253 (mcode-readable=): Use Enum and Var.
5254 (mips_code_readable_setting): New Enum and EnumValue entries.
5255 (mr10k-cache-barrier=): Use Enum and Var.
5256 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
5257
1cb1a99f
JH
52582011-05-03 Jan Hubicka <jh@suse.cz>
5259
5260 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
5261 replace hash by pointer map.
5262 (cgraph_node_set_element_def, cgraph_node_set_element,
5263 const_cgraph_node_set_element, varpool_node_set_element_def,
5264 varpool_node_set_element, const_varpool_node_set_element): Remove.
5265 (free_cgraph_node_set, free_varpool_node_set): New function.
5266 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
5267 * tree-emutls.c: Free varpool node set.
5268 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
5269 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
5270 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
5271 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
5272 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
5273 Move here from ipa.c; implement using pointer_map
5274 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
5275 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
5276 debug_cgraph_node_set, varpool_node_set_new,
5277 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
5278 dump_varpool_node_set, debug_varpool_node_set):
5279 Move to ipa-uitls.c.
5280 * passes.c (ipa_write_summaries): Update.
5281
7f31f4db
SH
52822011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5283
7a2f7208
UB
5284 From Mike Frysinger:
5285 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
5286 bf542/bf544/bf547/bf548/bf549.
7f31f4db 5287
b70fce6d
UB
52882011-05-03 Uros Bizjak <ubizjak@gmail.com>
5289
5290 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
5291
265b1d82
SH
52922011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5293
5294 From Bernd Schmidt:
5295 * config/bfin/bfin.md (MOVCC): New mode_macro.
5296 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
5297 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
5298 comments from generated assembly.
5299
f0b568f3
SH
53002011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5301
5302 From Bernd Schmidt
5303 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
5304 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
5305 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
5306 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
5307 * config/bfin/lib1funcs.asm (___muldi3): New function.
5308
2c67cf6e
NF
53092011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5310
5311 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
5312 build_function_type_list instead of build_function_type.
5313 Rearrange initialization of `args' to do so.
5314
f9ac28ad
NF
53152011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5316
5317 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
5318 instead of build_function_type.
5319
22b8798c
NF
53202011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5321
5322 * config/rs6000/rs6000.c (spe_init_builtins): Call
5323 build_function_type_list instead of build_function_type.
5324 (paired_init_builtins, altivec_init_builtins): Likewise.
5325 (builtin_function_type): Likewise.
5326
4cb44528
NF
53272011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5328
5329 * config/sh/sh.c (sh_media_init_builtins): Call
5330 build_function_type_list instead of build_function_type.
5331
4c203a6a
NF
53322011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5333
5334 * config/sparc/sparc.c (sparc_file_end): Call
5335 build_function_type_list instead of build_function_type.
5336
d6a3d62b
NF
53372011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5338
5339 * config/alpha/alpha.c (alpha_init_builtins): Call
5340 build_function_type_list instead of build_function_type.
5341
de530b86
NF
53422011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5343
5344 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
5345 build_function_type_list instead of build_function_type.
5346
baeec5f2
NF
53472011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5348
5349 * config/iq2000/i2000.c (iq2000_init_builtins): Call
5350 build_function_type_list instead of build_function_type.
5351 Delete `endlink' variable.
5352
c19afe52
NF
53532011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5354
5355 * config/avr/avr.c (avr_init_builtins): Call
5356 build_function_type_list instead of build_function_type.
5357
a341df0a
NF
53582011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5359
5360 * config/picochip/picochip.c (picochip_init_builtins): Call
5361 build_function_type_list instead of build_function_type.
5362 Delete `endlink' variable.
5363
2102b1e1
NF
53642011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5365
5366 * config/bfin/bfin.c (bfin_init_builtins): Call
5367 build_function_type_list instead of build_function_type.
5368
9f111209
SH
53692011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5370
5371 From Bernd Schmidt
5372 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
5373 that's not CONST_INT. Seemingly redundant check is due to PR39768.
5374
7071d064
SH
53752011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5376
5377 From Jie Zhang:
5378 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
5379 libbffastfp overrides libgcc when -mfast-fp.
5380
748f7574 53812011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
5382
5383 Originally from Bernd Schmidt
5384 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
5385 * config/bfin/bfin.c (override_options): Test it and error if
5386 TARGET_FDPIC.
5387
1a3a9152
SH
53882011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5389
5390 Originally From Bernd Schmidt
5391 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
5392 FD-PIC.
5393
7134c090
JL
53942011-05-03 Jeff Law <law@redhat.com>
5395
5396 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
5397 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
5398 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
5399 than accessing AUX field directly. Free the AUX field before
5400 clearing it.
7134c090
JL
5401 (thread_block, thread_through_loop_header): Likewise.
5402 (thread_single_edge, mark_threaded_blocks): Likewise.
5403 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
5404 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 5405
2c7eebae
BS
54062011-05-03 Bernd Schmidt <bernds@codesourcery.com>
5407
5408 * function.c (init_function_start): Call decide_function_section.
5409 * varasm.c (decide_function_section): New function.
5410 (assemble_start_function): When not using
5411 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
5412 or first_function_block_is_cold.
5413 * rtl.h (decide_function_section): Declare.
5414
17038fcf
JJ
54152011-05-03 Uros Bizjak <ubizjak@gmail.com>
5416 Jakub Jelinek <jakub@redhat.com>
5417
5418 PR target/48774
5419 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
5420 only succeed if req_mode is the same as set_mode.
5421
3810076b
BS
54222011-05-03 Bernd Schmidt <bernds@codesourcery.com>
5423
5424 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
5425 * genemit.c (gen_exp): Handle RETURN.
5426 * emit-rtl.c (verify_rtx_sharing): Likewise.
5427 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
5428 * rtl.c (copy_rtx): RETURN is shared.
5429 * rtl.h (enum global_rtl_index): Add GR_RETURN.
5430 (ret_rtx): New.
5431 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
5432 * config/s390/s390.c (s390_emit_epilogue): Likewise.
5433 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
5434 * config/cris/cris.c (cris_expand_return): Likewise.
5435 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
5436 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
5437 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
5438 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
5439 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
5440 Likewise.
5441 * config/v850/v850.c (expand_epilogue): Likewise.
5442 * config/bfin/bfin.c (bfin_expand_call): Likewise.
5443 * config/arm/arm.md (epilogue): Likewise.
5444 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
5445 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
5446 variable to ret_reg.
5447
9efdb4ad
RG
54482011-05-03 Richard Guenther <rguenther@suse.de>
5449
5450 PR lto/48846
5451 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
5452 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
5453 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
5454
60a45536
RG
54552011-05-03 Richard Guenther <rguenther@suse.de>
5456
5457 * c-decl.c (grokdeclarator): Instead of looking at
5458 TREE_OVERFLOW check if the constant fits in the index type.
5459
3188ed59
RS
54602011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
5461
5462 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
5463 (vec_store_lanes<mode><mode>): Likewise.
5464
272c6793
RS
54652011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
5466
5467 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
5468 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
5469 convert_optab_index values.
5470 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
5471 * genopinit.c (optabs): Initialize the new optabs.
5472 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
5473 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
5474 (expand_STORE_LANES): New functions.
5475 * tree.h (build_array_type_nelts): Declare.
5476 * tree.c (build_array_type_nelts): New function.
5477 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
5478 (vect_model_load_cost): Likewise.
5479 (vect_store_lanes_supported, vect_load_lanes_supported)
5480 (vect_record_strided_load_vectors): Declare.
5481 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
5482 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
5483 (vect_transform_strided_load): Split out statement recording into...
5484 (vect_record_strided_load_vectors): ...this new function.
5485 * tree-vect-stmts.c (create_vector_array, read_vector_array)
5486 (write_vector_array, create_array_ref): New functions.
5487 (vect_model_store_cost): Add store_lanes_p argument.
5488 (vect_model_load_cost): Add load_lanes_p argument.
5489 (vectorizable_store): Try to use store-lanes functions for
5490 interleaved stores.
5491 (vectorizable_load): Likewise load-lanes and loads.
5492 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
5493 to vect_model_store_cost.
5494 (vect_build_slp_tree): Likewise vect_model_load_cost.
5495
0f6d54f7
RS
54962011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
5497
5498 * hooks.h (hook_bool_mode_uhwi_false): Declare.
5499 * hooks.c (hook_bool_mode_uhwi_false): New function.
5500 * target.def (array_mode_supported_p): New hook.
5501 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
5502 * doc/tm.texi: Regenerate.
5503 * stor-layout.c (mode_for_array): New function.
5504 (layout_type): Use it.
5505 * config/arm/arm.c (arm_array_mode_supported_p): New function.
5506 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
5507
b15eacc7
EB
55082011-05-03 Eric Botcazou <ebotcazou@adacore.com>
5509
5510 PR target/48723
5511 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
5512 for -fstack-check if the size to allocate is negative.
5513
575bfb00
LC
55142011-05-02 Lawrence Crowl <crowl@google.com>
5515
5516 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
5517 (timevar_cond_start): New for starting a timer only when it is not
5518 already running.
5519 (timevar_cond_stop): New for stopping a timer when it was not already
5520 running.
5521
5522 * timevar.c (timevar_stop): Enable start/stop timers to start again.
5523 (timevar_cond_start): New as above.
5524 (timevar_cond_stop): New as above.
5525
5526 * timevar.def: Add start/stop timers for compiler phases,
5527 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
5528 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
5529 and TV_PHASE_FINALIZE.
5530 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
5531 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
5532 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
5533 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
5534 Make unused TV_OVERLOAD into a start/stop timer.
5535
5536 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
5537 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
5538 to indicate that they are start/stop timers.
5539
5540 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
5541 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
5542 Move initialization to do_compile.
5543 (do_compile): Add initialization from above.
5544 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
5545
5546 * c-decl.c (c_write_global_declarations): Add start/stop of
5547 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
5548
5549 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
5550 or TV_PARSE_INLINE, as appropriate.
5551 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
5552 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
5553
3533b943
JM
55542011-05-02 Jason Merrill <jason@redhat.com>
5555
5556 PR c++/40975
5557 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
5558
2609a0ce
SM
55592011-05-02 Simon Martin <simartin@users.sourceforge.net>
5560
5561 PR c/35445
5562 * c-decl.c (finish_decl): Only create a composite if the types are
5563 compatible.
5564
6b0e4cbb
JM
55652011-05-02 Joseph Myers <joseph@codesourcery.com>
5566
5567 * config/fr30/fr30-protos.h (Mmode): Don't define.
5568 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
5569 definition where used.
5570 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
5571 define. Expand definitions where used.
5572 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
5573 Expand definitions where used.
5574 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
5575 rx_function_arg, rx_function_arg_advance,
5576 rx_function_arg_boundary): Expand definitions of those macros.
5577 * config/v850/v850-protos.h (Mmode): Don't define. Expand
5578 definition where used.
5579
4e938ce6
UB
55802011-05-02 Uros Bizjak <ubizjak@gmail.com>
5581
5582 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
5583 reg<->xmm moves.
5584 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
5585 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
5586 with *movv2sf_internal_rex64_avx.
5587 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
5588 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
5589 Use %v prefix in insn mnemonic to handle TARGET_AVX.
5590 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
5591 "vex" in "prefix" attribute calculation.
5592 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
5593
36019c19
SH
55942011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
5595
7a2f7208
UB
5596 PR target/47951
5597 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
5598 inputs match the output.
36019c19 5599
f69ea688
AS
56002011-05-02 Andreas Schwab <schwab@linux-m68k.org>
5601
5602 PR target/47955
5603 * config/m68k/m68k.c (m68k_expand_prologue): Set
5604 current_function_static_stack_size.
5605
c33406f5
JH
56062011-05-02 Jan Hubicka <jh@suse.cz>
5607
5608 * lto-streamer.c (lto_streamer_cache_insert_1,
5609 lto_streamer_cache_lookup, lto_streamer_cache_create,
5610 lto_streamer_cache_delete): Use pointer map instead of hashtable.
5611 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
5612
47c94d21
JM
56132011-05-02 Joseph Myers <joseph@codesourcery.com>
5614
5615 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
5616 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
5617 config/m68k/t-opts: New files.
5618 * config/m68k/m68k-tables.opt: New file (generated).
5619 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
5620 extra_options and m68k/t-opts to tmake_file.
5621 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
5622 (all_isas): Initialize using m68k-isas.def.
5623 (all_microarchs): Initialize using m68k-microarchs.def.
5624 (m68k_find_selection): Remove.
5625 (m68k_handle_option): Don't assert that global structures are in
5626 use. Use error_at. Access variables via opts pointer. Don't
5627 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
5628 directly for -m68020-40 and -m68020-60.
5629 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
5630 m68k_tune_entry here.
5631 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
5632 to m68k-opts.h.
5633 (m68k_library_id_string): Remove declaration.
4e938ce6 5634 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
5635 (m68k_library_id_string): New Variable.
5636 (march=, mcpu=, mtune=): Use Enum and Var.
5637
e562bf36
RG
56382011-05-02 Richard Guenther <rguenther@suse.de>
5639
5640 * varasm.c (output_constructor_regular_field): Compute zero-based
5641 index with double-ints. Make sure to ICE instead of producing
5642 wrong code.
5643 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
5644 in asserts. Properly use a signed type.
5645
6bec6c98
UB
56462011-05-02 Uros Bizjak <ubizjak@gmail.com>
5647
5648 * config/i386/sse.md (V): New mode iterator.
5649 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
5650 TARGET_SSE2.
5651 (V_256): Rename from AVX256MODE.
5652 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
5653 condition to all users.
5654 (VF1): Ditto.
5655 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
5656 condition to all users.
5657 (VF_128): Make V4SF mode unconditional.
5658 (VF_256): Rename from AVX256MODEF2P.
5659 (VI4F_128): Rename from SSEMODE4S.
5660 (VI8F_128): Rename from SSEMODE2D.
5661 (VI4F_256): Rename from AVX256MODE8P.
5662 (VI8F_256): Rename from AVX256MODE4P.
5663 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
5664 (ssescalarmodesuffix): Remove SF and DF modes.
5665 (SSEMODE124): Remove.
5666 (SSEMODE1248): Ditto.
5667 (SSEMODEF2P): Ditto.
5668 (AVXMODEF2P): Ditto.
5669 (AVXMODEFDP): Ditto.
5670 (AVXMODEFSP): Ditto.
5671 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
5672 unconditional.
5673 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
5674 unconditional.
5675 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
5676 xop_pcmov_<mode>256. Use V mode iterator.
5677
5678 Adjust RTX patterns globally for renamed mode attributes.
5679
2dfdcb4b
UW
56802011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5681
5682 * haifa-sched.c (sched_emit_insn): Emit insn before first
5683 non-scheduled insn. Inform back-end about new insn. Add
5684 new insn to scheduled_insns list.
5685
90bc4623
RG
56862011-05-02 Richard Guenther <rguenther@suse.de>
5687
5688 PR tree-optimization/48822
5689 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
5690 (process_scc): Indicate which iteration we start.
5691
bc0fe8cb
JH
56922011-05-02 Jan Hubicka <jh@suse.cz>
5693
5694 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
5695 (lto_section_overrun): New.
5696 * lto-section-out.c (append_block): Rename to ...
5697 (lto_append_block): ... this one; export.
5698 (lto_output_1_stream): Move lto lto-streamer.h
5699 (lto_output_data_stream): Update.
5700 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
5701 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
5702 functions.
5703
f070a9d1
RG
57042011-05-02 Richard Guenther <rguenther@suse.de>
5705
5706 * tree.c (tree_code_counts): New global array.
5707 (record_node_allocation_statistics): Count individual tree codes.
5708 (dump_tree_statistics): Dump individual code stats.
5709
09dfe187
JH
57102011-05-01 Jan Hubicka <jh@suse.cz>
5711
5712 * ipa-inline.c (caller_growth_limits): Fix thinko when
5713 looking for largest stack frame.
5714 * ipa-inline.h (dump_inline_summary): Declare.
5715 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
5716 on stack usage.
5717 (dump_inline_summary): Export.
5718 (debug_inline_summary): Declare as DEBUG_FUNCTION.
5719
6f76a878
AS
57202011-05-01 Anatoly Sokolov <aesok@post.ru>
5721
5722 * reginfo.c (memory_move_cost): Change rclass argument type form
5723 'enum reg_class' to reg_class_t.
5724 * reload.h (memory_move_cost): Update prototype.
5725 * postreload.c reload_cse_simplify_set): Change type dclass var to
5726 reg_class_t.
5727 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
5728 Update prototype.
5729 (ira_allocate_and_set_costs): Change aclass argument type form
5730 'enum reg_class' to reg_class_t.
6bec6c98 5731 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
5732 Change aclass argument type to reg_class_t.
5733 (update_conflict_hard_reg_costs): Change type aclass and pref vars
5734 to reg_class_t.
5735 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
5736 memory_move_cost call.
5737
5738 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
5739 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
5740 Change type tmp var to reg_class_t.
5741
9a4ac625
JH
57422011-04-30 Jan Hubicka <jh@suse.cz>
5743
5744 * ipa-inline.c (can_inline_edge_p): Disregard limits when
5745 inlining into function with flatten attribute.
5746 (want_inline_small_function_p): Be more realistic about inlining
5747 cold calls where callee size grows.
5748
dd8352ee
JH
57492011-04-30 Jan Hubicka <jh@suse.cz>
5750
5751 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
5752 flags.
5753
46e43d2b
AS
57542011-04-30 Anatoly Sokolov <aesok@post.ru>
5755
5756 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
5757 PRINT_OPERAND_PUNCT_VALID_P): Remove.
5758 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
5759 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
5760 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5761 (print_operand): Rename to...
5762 (sparc_print_operand): ...this. Make static. Adjust
5763 sparc_print_operand function call.
5764 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
5765 functions.
5766
ecb62563
JH
57672011-04-30 Jan Hubicka <jh@suse.cz>
5768
6bec6c98 5769 PR middle-end/48752
ecb62563
JH
5770 * ipa-inline.c (early_inliner): Disable when doing late
5771 addition of function.
5772
edb9b69e
JJ
57732011-04-30 Jakub Jelinek <jakub@redhat.com>
5774
be80a87e
JJ
5775 * dwarf2out.c (get_address_mode): New inline.
5776 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
5777 if not dwarf_strict emit
5778 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
5779 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
5780 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
5781 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
5782 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
5783 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
5784 mem_loc_descriptor callers.
5785 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
5786 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
5787 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
5788 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
5789 (base_types): New variable.
5790 (get_base_type_offset, calc_base_type_die_sizes,
5791 base_type_for_mode, mark_base_types, base_type_cmp,
5792 move_marked_base_types): New functions.
5793 (calc_die_sizes): Assert that die_offset is 0 or equal to
5794 next_die_offset.
5795 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
5796 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
5797 callers. If not dwarf_strict, call mem_loc_descriptor even for
5798 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
5799 (gen_subprogram_die): Don't give up on call site parameters
5800 with non-integral or large integral modes. Adjust
5801 mem_loc_descriptor callers.
5802 (prune_unused_types): Call prune_unused_types_mark on base_types
5803 vector entries.
5804 (resolve_addr): Call mark_base_types.
5805 (dwarf2out_finish): Call move_marked_base_types.
5806
edb9b69e
JJ
5807 PR tree-optimization/48809
5808 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
5809 type.
5810 (gen_inbound_check): Don't compute index_expr - range_min in utype
5811 again, instead reuse SSA_NAME initialized in build_arrays.
5812 Remove two useless gsi_for_stmt calls.
5813
a6545a3d
JL
58142011-04-29 Jeff Law <law@redhat.com>
5815
5816 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
5817
af8bca3c
MJ
58182011-04-29 Martin Jambor <mjambor@suse.cz>
5819
5820 * cgraph.h (cgraph_postorder): Remove declaration.
5821 * ipa-utils.h (ipa_free_postorder_info): Declare.
5822 (ipa_reverse_postorder): Likewise.
5823 * cgraphunit.c: Include ipa-utils.h.
5824 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
5825 * ipa-inline.c: Include ipa-utils.h.
5826 (ipa_inline): Update call to ipa_reverse_postorder.
5827 * ipa-pure-const.c (propagate_pure_const): Update call to
5828 ipa_reduced_postorder and ipa_print_order. Call
5829 ipa_free_postorder_info to clean up.
5830 (propagate_nothrow): Likewise.
5831 * ipa-reference.c (propagate): Removed a useless call to
5832 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
5833 and ipa_print_order. Call ipa_free_postorder_info to clean up.
5834 * ipa.c: Include ipa-utils.h.
5835 (ipa_profile): Update call to ipa_reverse_postorder.
5836 (cgraph_postorder): Moved to...
5837 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
5838 (ipa_utils_print_order): Renamed to ipa_print_order.
5839 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
5840 comments.
5841 (ipa_free_postorder_info): New function.
5842 * passes.c: Include ipa-utils.h.
5843 (do_per_function_toporder): Update call to ipa_reverse_postorder.
5844 (ipa_write_summaries): Likewise.
5845 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
5846 (cgraphunit.o): Likewise.
5847 (ipa.o): Likewise.
5848 (ipa-inline.o): Likewise.
5849
b15c64ee
JH
58502011-04-29 Jan Hubicka <jh@suse.cz>
5851
5852 * gcc.dg/tree-ssa/inline-10.c: New testcase.
5853 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
5854 * ipa-inline.h (clause_t): Turn into unsigned int.
5855 * ipa-inline-analysis.c (add_clause): Do more simplification.
5856 (and_predicates): Shortcut more cases.
5857 (predicates_equal_p): Move forward; check that clauses are properly
5858 ordered.
5859 (or_predicates): Shortcut more cases.
5860 (edge_execution_predicate): Rewrite as...
5861 (set_cond_stmt_execution_predicate): ... this function; handle
5862 __builtin_constant_p.
5863 (set_switch_stmt_execution_predicate): New .
5864 (compute_bb_predicates): New.
5865 (will_be_nonconstant_predicate): Update TODO.
5866 (estimate_function_body_sizes): Use compute_bb_predicates
5867 and free them later, always try to estimate if stmt is constant.
5868 (estimate_time_after_inlining, estimate_size_after_inlining):
5869 Gracefully handle optimized out edges.
5870 (read_predicate): Fix off by one error.
5871
a88fdc2a
NP
58722011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
5873
5874 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
5875
d984c8ef
XDL
58762011-04-27 Xinliang David Li <davidxl@google.com>
5877
5878 * tree-profile.c (init_ic_make_global_vars): Set
5879 tls attribute on ic vars.
5880 * coverage.c (coverage_end_function): Initialize
5881 function_list with zero.
5882
45a2c477
RG
58832011-04-29 Richard Guenther <rguenther@suse.de>
5884
5885 * builtins.c (fold_builtin_classify_type): Use integer_type_node
5886 for the type of the result.
5887 (fold_builtin_isascii): Likewise.
5888 (fold_builtin_toascii): Use integer_type_node where appropriate.
5889 (fold_builtin_logb): Likewise.
5890 (fold_builtin_frexp): Likewise.
5891 (fold_builtin_strstr): Likewise.
5892 (fold_builtin_strpbrk): Likewise.
5893 (fold_builtin_fputs): Likewise.
5894 (fold_builtin_sprintf): Likewise.
5895 (fold_builtin_snprintf): Likewise.
5896 (fold_builtin_printf): Likewise.
5897 (do_mpfr_remquo): Use a proper type for the assigned constant.
5898 (do_mpfr_lgamma_r): Likewise.
5899 * dwarf2out.c (resolve_one_addr): Use size_int.
5900 * except.c (init_eh): Likewise.
5901 (assign_filter_values): Use integer_type_node for filter values.
5902 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
5903 indices.
5904 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
5905 for EH region numbers.
5906 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
5907 for the shift amount.
5908
eb6c3df1
RG
59092011-04-29 Richard Guenther <rguenther@suse.de>
5910
5911 * expr.h (expand_shift): Rename to ...
5912 (expand_variable_shift): ... this.
5913 (expand_shift): Take a constant shift amount.
5914 * expmed.c (expand_shift): Rename to ...
5915 (expand_variable_shift): ... this.
5916 (expand_shift): New wrapper around expand_variable_shift.
5917 * expr.c (convert_move, emit_group_load_1, emit_group_store,
5918 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
5919 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
5920 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
5921 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
5922 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
5923 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
5924 emit_store_flag_1, emit_store_flag): Likewise.
5925 * builtins.c (expand_builtin_signbit): Likewise.
5926 * calls.c (load_register_parameters): Likewise.
5927 * function.c (assign_parm_setup_block): Likewise.
5928 * lower-subreg.c (resolve_shift_zext): Likewise.
5929 * optabs.c (widen_bswap, expand_abs_nojump,
5930 expand_one_cmpl_abs_nojump, expand_float): Likewise.
5931 * spu/spu.c (spu_expand_extv): Likewise.
5932 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
5933
9f616812
RG
59342011-04-29 Richard Guenther <rguenther@suse.de>
5935
5936 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
5937 for the remapped region number.
5938 * predict.c (build_predict_expr): Use integer_type_node for the
5939 predict kind.
5940 * fold-const.c (fold_binary_loc): Use integer_type_node for
5941 the shift amount. Use a proper type for the PLUS_EXPR operand.
5942
b823cdfe
MM
59432011-04-29 Michael Matz <matz@suse.de>
5944
5945 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
5946 other trees that just builtins.
5947 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
5948
413581ba
RG
59492011-04-29 Richard Guenther <rguenther@suse.de>
5950
5951 * tree-nested.c (get_trampoline_type): Use size_int.
5952 (get_nl_goto_field): Likewise.
5953 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
5954 for all indexes.
5955 (lower_eh_constructs_2): Likewise.
5956 (lower_resx): Likewise.
5957 (lower_eh_dispatch): Likewise.
5958 * tree-mudflap.c (mf_build_string): Use size_int.
5959 (mudflap_register_call): Use integer_type_node for the flag.
5960 (mudflap_enqueue_constant): Use size_int.
5961 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
5962 instead of rebuilding it.
5963
5c04e9f4
RG
59642011-04-29 Richard Guenther <rguenther@suse.de>
5965
5966 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
5967 Handle OBJ_TYPE_REF.
5968 (find_func_aliases_for_call): Use it more consistently.
5969
5c24671b
AO
59702011-04-29 Alexandre Oliva <aoliva@redhat.com>
5971
5972 * haifa-sched.c (last_nondebug_scheduled_insn): New.
5973 (rank_for_schedule): Use it.
5974 (schedule_block): Set it.
5975
10adac51
XDL
59762011-04-28 David Li <davidxl@google.com>
5977
5978 * tree.c (crc32_string): Use crc32_byte.
5979 (crc32_byte): New function.
5980 * tree.h (crc32_byte): New function.
5981 * gcov.c (read_graph_file): Handle new cfg_cksum.
5982 (read_count_file): Ditto.
5983 * profile.c (instrument_values): Ditto.
5984 (get_exec_counts): Ditto.
5985 (read_profile_edge_counts): Ditto.
5986 (compute_branch_probabilities): Ditto.
5987 (compute_value_histograms): Ditto.
5988 (branch_prob): Ditto.
5989 (end_branch_prob): Ditto.
5990 * coverage.c (read_counts_file): Ditto.
5991 (get_coverage_counts): Ditto.
5992 (tree_coverage_counter_addr): Ditto.
5993 (coverage_checksum_string): Ditto.
5994 (coverage_begin_output): Ditto.
5995 (coverage_end_function): Ditto.
5996 (build_fn_info_type): Ditto.
5997 (build_fn_info_value): Ditto.
5998 * libgcov.c (gcov_exit): Ditto.
5999 * gcov-dump.c (tag_function): Ditto.
6000 (compute_checksum): Remove.
6001
5d6358a5
AM
60022011-04-29 Alan Modra <amodra@gmail.com>
6003
6004 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6005 unspec plus offset. Tidy macho code.
6006
85ad2ef5
MJ
60072011-04-29 Martin Jambor <mjambor@suse.cz>
6008
6009 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
6010 node instead of a decl. Update all callers.
6011 * cgraph.h: Update declaration.
6012
437f4a00
IR
60132011-04-28 Ira Rosen <ira.rosen@linaro.org>
6014
6015 PR tree-optimization/48765
6016 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
6017 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
6018 to indicate if loop aware SLP is being used. Scan the statements
6019 and update the vectorization factor according to the type of
6020 vectorization before statement analysis.
6021 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
6022 pass it to vect_analyze_loop_operations.
6023 (vectorizable_reduction): Set number of copies to 1 in case of pure
6024 SLP statement.
6025 * tree-vect-stmts.c (vectorizable_conversion,
6026 vectorizable_assignment, vectorizable_shift,
6027 vectorizable_operation, vectorizable_type_demotion,
6028 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
6029 Likewise.
6030 (vectorizable_condition): Move the check that it is not SLP
6031 vectorization before the number of copies check.
6032 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
6033 to vectorize the loop using SLP.
6034
c6fc44f3
JJ
60352011-04-28 Jakub Jelinek <jakub@redhat.com>
6036
6037 PR middle-end/48597
6038 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
6039 inline asm.
6040
6c0170ea
JM
60412011-04-28 Joseph Myers <joseph@codesourcery.com>
6042
6043 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
6044 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
6045 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
6046 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
6047 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
6048 linux*.h headers.
6bec6c98 6049 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
6050 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6051 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6052 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 6053 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
6054 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
6055 REG_NAME.
6056 * config/i386/linux.h (REG_NAME): Don't define.
6057 * config/i386/linux64.h (REG_NAME): Don't define.
6058 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
6059 Undefine before defining.
6060
970dabbd
JH
60612011-04-28 Jan Hubicka <jh@suse.cz>
6062
6bec6c98
UB
6063 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
6064 nonconstant_names array.
970dabbd
JH
6065 (estimate_function_body_sizes): Build nonconstant_names array; handle
6066 BUILT_IN_CONSTANT_P.
6067
8d3e3924
RG
60682011-04-28 Richard Guenther <rguenther@suse.de>
6069
6070 PR bootstrap/48804
6071 Revert
6072 2011-04-28 Richard Guenther <rguenther@suse.de>
6073
6074 * tree-ssa-structalias.c (solve_constraints): Build succ graph
6075 as late as possible.
6bec6c98 6076
8576f20a
RG
60772011-04-28 Richard Guenther <rguenther@suse.de>
6078
6079 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
6080 (debug_constraint): Do it here.
6081 (dump_constraints): And here.
6082 (rewrite_constraints): And here.
6083 (dump_constraint_edge): Remove.
6084 (dump_constraint_graph): Rewrite to produce DOT output.
6085 (solve_constraints): Build succ graph as late as possible.
6086 Dump constraint graphs before and after solving.
6087
e38811ce
RG
60882011-04-28 Richard Guenther <rguenther@suse.de>
6089
6090 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6091 New function split out from ...
6092 (find_func_aliases): ... here. Call it.
6093 (find_func_aliases_for_call): Likewise.
6094
fbaf0d0c
GDR
60952011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
6096
6097 * internal-fn.h (internal_fn_name_array): Declare.
6098 (internal_fn_flags_array): Likewise.
6099
cbb734aa
UB
61002011-04-27 Uros Bizjak <ubizjak@gmail.com>
6101
6102 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
6103 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
6104 Move from sse.md.
6105 (ssemodefsuffix): Remove.
6106 (ssevecmodesuffix): New mode attribute.
6107 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
6108 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
6109 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
6110 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
6111 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
6112 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
6113 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
6114 ssemodesuffix mode attribute.
6115 (float splitters): Use ssevecmodesuffix mode attribute.
6116 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
6117 (sseinsmode): Rename from avxvecmode.
6118 (avxsizesuffix): Rename from avxmodesuffix.
6119 (sseintvecmode): Rename from avxpermvecmode.
6120 (ssedoublevecmode): Rename from ssedoublesizemode.
6121 (ssehalfvecmode): Rename from avxhalfvecmode.
6122 (ssescalarmode): Rename from avxscalarmode.
6123 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
6124 templates for ssemodesuffix mode attribute.
6125 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
6126 mode attribute.
6127
6128 Adjust RTX patterns globally for renamed mode attributes.
6129
991278ab
JH
61302011-04-27 Jan Hubcika <jh@suse.cz>
6131
6132 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
6133 * ipa-inline-analysis.c: Include alloc-pool.h.
6134 (edge_predicate_pool): New.
6135 (trye_predicate_p): New function
6136 (false_predicate_p): New function.
6137 (add_clause): Sanity check that false clauses are "optimized";
6138 never add clauses to predicate that is already known to be false.
6139 (and_predicate): Use flase_predicate_p.
6140 (evaulate_predicate): Rename to ...
6141 (evaluate_predicate): ... this one; update all callers; assert
6142 that false is not listed among possible truths.
6143 (dump_predicate): Use true_predicate_p.
6144 (account_size_time): Use false_predicate_p.
6145 (evaulate_conditions_for_edge): Rename to ...
6146 (evaluate_conditions_for_edge) ... this one.
6147 (edge_set_predicate): New function.
6148 (inline_edge_duplication_hook): Duplicate edge predicates.
6149 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 6150 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
6151 (dump_inline_summary): Update.
6152 (estimate_function_body_sizes): Set edge predicates.
6153 (estimate_calls_size_and_time): Handle predicates.
6154 (estimate_callee_size_and_time): Update.
6155 (remap_predicate): Add toplev_predicate; update comment.
6156 (remap_edge_predicates): New function.
6157 (inline_merge_summary): Compute toplev predicate; update.
6158 (read_predicate): New function.
6159 (read_inline_edge_summary): Use it.
6160 (inline_read_section): Likewise.
6161 (write_predicate): New function.
6162 (write_inline_edge_summary): Use it.
6163 (inline_write_summary): Likewise.
6164 (inline_free_summary): Free alloc pool and edge summary vec.
6165
648b5f85
RG
61662011-04-27 Richard Guenther <rguenther@suse.de>
6167
6168 * tree-ssa-structalias.c (changed_count): Remove.
6169 (changed): Use a bitmap.
6170 (unify_nodes): Adjust.
6171 (do_sd_constraint): Likewise.
6172 (do_ds_constraint): Likewise.
6173 (do_complex_constraint): Likewise.
6174 (solve_graph): Likewise.
6175
4d5dcfb2
JH
61762011-04-27 Jan Hubicka <jh@suse.cz>
6177
6178 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
6179
200eb7d2
UB
61802011-04-27 Uros Bizjak <ubizjak@gmail.com>
6181
6182 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
6183 (avx_vperm2f128_*_operand): Ditto.
6184 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
6185 Use avx_vpermilp_parallel in insn condition.
6186 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
6187 Use avx_vperm2f128_parallel in insn condition.
6188
7d6e2521
RG
61892011-04-27 Richard Guenther <rguenther@suse.de>
6190
6191 * Makefile.in (tree-ssa-structalias.o): Remove
6192 gt-tree-ssa-structalias.h dependency.
6193 (GTFILES): Remove tree-ssa-structalias.c.
6194 * tree.c (allocate_decl_uid): New function.
6195 (make_node_stat): Use it.
6196 (copy_node_stat): Likewise.
6197 * tree.h (allocate_decl_uid): Declare.
6198 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
6199 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
6200 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 6201 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
6202 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
6203 (struct heapvar_map): Likewise.
6204 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
6205 heapvar_insert): Likewise.
6206 (make_heapvar_for): Rename to ...
6207 (make_heapvar): ... this. Simplify.
6208 (fake_var_decl_obstack): New global var.
6209 (build_fake_var_decl): New function.
6210 (make_constraint_from_heapvar): Adjust.
6211 (handle_lhs_call): Likewise.
6212 (create_function_info_for): Likewise.
6213 (intra_create_variable_infos): Likewise.
6214 (init_alias_vars): Allocate fake_var_decl_obstack.
6215 (init_alias_heapvars, delete_alias_heapvars): Remove.
6216 (compute_points_to_sets): Do not call init_alias_heapvars.
6217 (ipa_pta_execute): Likewise.
6218 (delete_points_to_sets): Free fake_var_decl_obstack.
6219
526ed6c2
UW
62202011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6221
6222 * config/spu/divmovti4.c (union qword_UTItype): New data type.
6223 (si_from_UTItype, si_to_UTItype): New functions.
6224 (__udivmodti4): Use them to implement type-punning.
6225 * config/spu/multi3.c (union qword_TItype): New data type.
6226 (si_from_TItype, si_to_TItype): New functions.
6227 (__multi3): Use them to implement type-punning.
6228
c187d33c
UW
62292011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6230
6231 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
6232
40982661
JH
62332011-04-27 Jan Hubicka <jh@suse.cz>
6234
6235 * ipa-prop.c (function_insertion_hook_holder): New holder.
6236 (ipa_add_new_function): New function.
200eb7d2
UB
6237 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
6238 Register/deregister holder.
40982661 6239
9aef53ee
RG
62402011-04-27 Richard Guenther <rguenther@suse.de>
6241
6242 PR tree-optimization/48772
200eb7d2 6243 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 6244
f63d806d
RG
62452011-04-27 Richard Guenther <rguenther@suse.de>
6246
6247 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
6248 TARGET_MEM_REF handling.
6249
e1ea7451
NC
62502011-04-27 Nick Clifton <nickc@redhat.com>
6251
9b5db25d
NC
6252 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
6253 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
6254 (REG_CLASS_NAMES): Likewise.
6255 (REG_CLASS_CONTENTS): Likewise.
6256 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
6257 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
6258 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
6259 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
6260 (EVEN_REGS): New macro. Alias for QUAD_REGS.
6261 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
6262 duplicate register classes.
97d20907 6263 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
6264 (frv_register_move_cost): Likewise.
6265
e1ea7451
NC
6266 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
6267 end of the regno_reg_class array.
6268
5c2f94b4
JJ
62692011-04-27 Jakub Jelinek <jakub@redhat.com>
6270
6271 PR c/48742
6272 * c-typeck.c (build_binary_op): Don't wrap arguments if
6273 int_operands is true.
6274
57a944d7
KK
62752011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
6276
6277 PR target/48767
6278 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
6279 targetm.calls.must_pass_in_stack for void type.
6280
898b8927
JH
62812011-04-26 Jan Hubicka <jh@suse.cz>
6282
6283 * cgraphbuild.c (build_cgraph_edges): Update call
6284 of cgraph_create_edge and cgraph_create_indirect_edge.
6285 * cgraph.c (cgraph_create_edge_including_clones,
6286 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
6287 cgraph_update_edges_for_call_stmt_node): Do not take nest
6288 argument; do not initialize call_stmt_size/time.
6289 (dump_cgraph_node): Do not dump nest.
6290 (cgraph_clone_edge): Do not take loop_nest argument;
6291 do not propagate it; do not clone call_stmt_size/time.
6292 (cgraph_clone_node): Likewise.
6293 (cgraph_create_virtual_clone): Update.
6294 * cgraph.h (struct cgraph_edge): Remove
6295 call_stmt_size/call_stmt_time/loop_nest.
6296 (cgraph_create_edge, cgraph_create_indirect_edge,
6297 cgraph_create_edge_including_clones, cgraph_clone_node): Update
6298 prototype.
6299 * tree-emutls.c (gen_emutls_addr): Update.
6300 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
6301 loop_nest; handle indirect calls, too.
6302 (clone_inlined_nodes): Do not care about updating inline summaries.
6303 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
6304 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
6305 stream call_stmt_size/call_stmt_time/loop_nest.
6306 * ipa-inline.c (edge_badness): Update.
6307 (ipa_inline): dump summaries after inlining.
6308 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 6309 New.
898b8927
JH
6310 (inline_edge_summary): New function.
6311 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
6312 (inline_edge_removal_hook): Handle edge summaries.
6313 (inline_edge_duplication_hook): New hook.
6314 (inline_summary_alloc): Alloc hooks.
6315 (initialize_growth_caches): Do not register removal hooks.
6316 (free_growth_caches); Do not free removal hook.
6317 (dump_inline_edge_summary): New function.
6318 (dump_inline_summary): Use it.
6319 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
6320 (inline_update_callee_summaries): New function.
6321 (inline_merge_summary): Use it.
6322 (do_estimate_edge_time, do_estimate_edge_growth): Update.
6323 (read_inline_edge_summary): New function.
6324 (inline_read_section): Use it.
6325 (write_inline_edge_summary): New function.
6326 (inline_write_summary): Use it.
6327 (inline_free_summary): Free edge new holders.
6328 * tree-inline.c (copy_bb): Update.
6329
ffa03772
JM
63302011-04-26 Jason Merrill <jason@redhat.com>
6331
6332 * tree-eh.c (lower_try_finally_switch): Create the label along with
6333 the CASE_LABEL_EXPR.
6334
6d7b45ad
DM
63352011-04-26 David S. Miller <davem@davemloft.net>
6336 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6337
6338 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
6339 * configure: Regenerate.
6340
df10b6d4
MM
63412011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6342
6343 PR target/48258
6344 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
6345 reduction.
6346 (VEC_reduc): New code iterator and splitters for vector reduction.
6347 (VEC_reduc_name): Ditto.
6348 (VEC_reduc_rtx): Ditto.
6349 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
6350 (reduc_<VEC_reduc_name>_v4sf): Ditto.
6351
6352 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6353 support for extracting SF on VSX.
6354
6355 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
6356 generating xscvspdp.
6357 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
6358 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
6359 double add, minimum, maximum vector reduction.
6360 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
6361 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
6362 optimize double vector reduction.
6363 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
6364
35a5db04
JM
63652011-04-26 Joseph Myers <joseph@codesourcery.com>
6366
6367 * config/fr30/fr30.h (inhibit_libc): Don't define.
6368 * config/m32r/m32r-protos.h: Correct comment.
6369 * config/v850/v850.h (GHS_default_section_names,
6370 GHS_current_section_names): Use tree, not union tree_node *.
6371
2f964ad6
XDL
63722011-04-26 Xinliang David Li <davidxl@google.com>
6373
200eb7d2 6374 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
6375 * c-family/c-opts.c (c_common_handle_option): Set
6376 warn_maybe_uninitialized.
6377 * opts.c (common_handle_option): Ditto.
6378 * common.opt: New option.
6379 * tree-ssa.c (warn_uninit): Add one more parameter.
6380 (warn_uninitialized_var): Pass warning code.
6381 * tree-flow.h: Interface change.
6382
9c7bd91a
RO
63832011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6384
200eb7d2 6385 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
6386 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
6387 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
6388
c2f36e21
RO
63892011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6390
6391 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
6392 * config/mips/mips.opt (mmips-tfile): Remove.
6393
6394 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
6395 mips-tdump reference to ...
200eb7d2 6396 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
6397 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
6398 reference by Tru64 UNIX.
6399
2c9da85b
JJ
64002011-04-26 Jakub Jelinek <jakub@redhat.com>
6401
0c5f6539
JJ
6402 PR debug/48768
6403 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
6404 is error_mark_node, set value to NULL.
6405
2c9da85b
JJ
6406 PR tree-optimization/48734
6407 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
6408 if return value from maybe_fold_*_comparsions isn't something
6409 the code is prepared to handle.
6410
77fa1d54
UB
64112011-04-26 Uros Bizjak <ubizjak@gmail.com>
6412
6413 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
6414 mode check.
6415 (ext_QIreg_nomode_operands): Remove.
6416 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
6417 (*andsi_1): Ditto.
6418 (*andhi_1): Ditto.
6419
0e2a6c2b
AS
64202011-04-26 Andrew Stubbs <ams@codesourcery.com>
6421
6422 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
6423
961562d8
RB
64242011-04-26 Richard Guenther <rguenther@suse.de>
6425
6426 * c-typeck.c (build_unary_op): Do not expand array-refs via
6427 pointer arithmetic. Only adjust qualifiers for function types.
6428
64292011-04-26 Richard Guenther <rguenther@suse.de>
6430
6431 PR middle-end/48694
6432 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
6433 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
6434 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
6435 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 6436
a0d260fc
PC
64372011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
6438
6bec6c98 6439 * doc/extend.texi: Document __underlying_type.
a0d260fc 6440
4d583bb9
SB
64412011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
6442
6443 * config/rs6000/titan.md (automata_option "progress"): Remove.
6444
1f3fcdc3
JL
64452011-04-25 Jeff Law <law@redhat.com>
6446
6447 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
6448
e5b0dad8
JK
64492011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
6450
6451 * system.h (ENUM_BITFIELD): Remove.
6452
5157a881 64532011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 6454 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
6455
6456 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
6457 for STORE_FLAG_VALUE==-1 case.
6458
ed4c109e
RS
64592011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
6460
6461 PR target/43804
6462 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
6463 LEGITIMATE_PIC_OPERAND_P.
6464
f3181aa2
JH
64652011-04-24 Jan Hubicka <jh@suse.cz>
6466
6467 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
6468 WPA hack.
77fa1d54
UB
6469 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
6470 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
6471 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
6472 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
6473 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
6474 Sanity check predicate length.
6475 (remap_predicate): Likewise; sanity check jump functions.
6476 (inline_read_section, inline_write_summary): Sanity check
6477 predicate length.
6478
5307cbaa
PC
64792011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
6480
6481 PR other/48748
6482 * doc/extend.texi (Type Traits): Document __is_standard_layout,
6483 __is_literal_type, and __is_trivial; update throughout about
6484 possibly cv-qualified void types.
6485
bebd5f99
GP
64862011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
6487
6488 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
6489 testsuite and make it version agnostic.
6490
7ee28a74
JH
64912011-04-22 Jan Hubicka <jh@suse.cz>
6492
6493 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
6494
16997bc0
JJ
64952011-04-23 Jakub Jelinek <jakub@redhat.com>
6496
6497 PR c/48685
6498 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
6499 to VOID_TYPE even around MODIFY_EXPR.
6500
f94d4ab1
MS
65012011-04-22 Mike Stump <mikestump@comcast.net>
6502
1a84c183 6503 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
6504 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
6505 comment.
6506
632b4f8e
JH
65072011-04-22 Jan Hubicka <jh@suse.cz>
6508
6509 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
6510 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
6511 ipa-prop.c; update all uses.
632b4f8e 6512 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
6513 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
6514 merge summary of inlined function into former caller.
632b4f8e
JH
6515 * ipa-inline.c (max_benefit): Remove.
6516 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
6517 (update_caller_keys): Use
6518 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
6519 (update_callee_keys): Likewise.
6520 (update_all_callee_keys): Likewise.
77fa1d54
UB
6521 (inline_small_functions): Do not collect max_benefit; do not reset
6522 estimated_growth; call free_growth_caches and initialize_growth_caches.
6523 * ipa-inline.h (struct condition, type clause_t, struct predicate,
6524 struct size_time_entry): New structures.
632b4f8e 6525 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
6526 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
6527 and estimated_growth.
632b4f8e
JH
6528 (edge_growth_cache_entry): New structure.
6529 (node_growth_cache, edge_growth_cache): New global vars.
6530 (estimate_growth): Turn into inline.
6531 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
6532 initialize_growth_caches, free_growth_caches): Declare.
6533 (estimate_edge_growth): Rewrite.
6534 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
6535 (reset_node_growth_cache, reset_edge_growth_cache): New inline
6536 functions.
632b4f8e
JH
6537 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
6538 (NUM_CONDITIONS): New constant.
6539 (predicate_conditions): New enum.
6540 (IS_NOT_CONSTANT): New constant.
6541 (edge_removal_hook_holder): New var.
6542 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
6543 (true_predicate, single_cond_predicate, false_predicate,
6544 not_inlined_predicate, add_condition, add_clause, and_predicates,
6545 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
6546 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
6547 evaulate_conditions_for_edge): New functions.
6548 (inline_summary_alloc): Move to heap.
6549 (inline_node_removal_hook): Clear condition and entry vectors.
6550 (inline_edge_removal_hook): New function.
6551 (initialize_growth_caches, free_growth_caches): New function.
6552 (dump_inline_summary): Update.
6553 (edge_execution_predicate): New function.
6554 (will_be_nonconstant_predicate): New function.
6555 (estimate_function_body_sizes): Compute BB and constantness predicates.
6556 (compute_inline_parameters): Do not clear estimated_growth.
6557 (estimate_edge_size_and_time): New function.
6558 (estimate_calls_size_and_time): New function.
6559 (estimate_callee_size_and_time): New function.
6560 (remap_predicate): New function.
6561 (inline_merge_summary): New function.
6562 (do_estimate_edge_time): New function based on...
6563 (estimate_edge_time): ... this one.
6564 (do_estimate_edge_growth): New function.
6565 (do_estimate_growth): New function based on....
6566 (estimate_growth): ... this one.
6567 (inline_analyze_function): Analyze after deciding on jump functions.
6568 (inline_read_section): New function.
6569 (inline_read_summary): Use it.
6570 (inline_write_summary): Write all the new data.
6571 * ipa-prop.c (ipa_get_param_decl_index): Export.
6572 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
6573 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
6574 Declare.
6575 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
6576 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
6577 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
6578 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
6579 cgraph_edge_inlinable_p): Remove.
6580 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
6581 (cgraph_process_new_functions): Update call of
6582 compute_inline_parameters.
632b4f8e 6583
1df5b0db
RG
65842011-04-22 Richard Guenther <rguenther@suse.de>
6585
6586 * tree.c (build_int_cst): Properly create canonicalized integer
6587 constants.
6588 (build_int_cst_type): Remove scary comments.
6589
ae01169c
XDL
65902011-04-22 Xinliang David Li <davidxl@google.com>
6591
6592 * toplev.c (process_options): Enable -Werror=coverage-mismatch
6593 by default when -Wno-error is not specified.
6594 * opts-global.c (decode_options): Remove call to
6595 control_warning_options.
6596
93dfac24
JJ
65972011-04-22 Jakub Jelinek <jakub@redhat.com>
6598
6599 PR tree-optimization/48717
6600 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
6601 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
6602
1b5f5069
JM
66032011-04-22 Joseph Myers <joseph@codesourcery.com>
6604
6605 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
6606 definition where used.
6607
144f4153
JJ
66082011-04-22 Jakub Jelinek <jakub@redhat.com>
6609
6610 PR c/48716
6611 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
6612 TREE_STATIC variables declared inside of some OpenMP construct.
6613
f9fd305b
MJ
66142011-04-22 Martin Jambor <mjambor@suse.cz>
6615
6616 PR middle-end/48585
1d284ec5 6617 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 6618
49819fef
AM
66192011-04-22 Alexander Monakov <amonakov@ispras.ru>
6620
6621 PR c/36750
6622 * c-typeck.c (pop_init_level): Do not warn about initializing
6623 with ` = {0}'.
6624
401f6699
AM
66252011-04-22 Alan Modra <amodra@gmail.com>
6626
6627 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
6628 when returning call_cookie.
6629 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
6630 pointers, to functions with no more vector args than the current
6631 function, and some non-local calls for ABI_V4.
6632 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
6633 sibcall_nonlocal_aix64): Combine to ..
6634 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
6635 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
6636 (sibcall_value_nonlocal_aix<mode>): ..likewise.
6637 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
6638 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
6639 operand.
6640 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
6641 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
6642 sibcall_value_symbolic_64): Delete.
6643
903d1e67
XDL
66442011-04-21 Xinliang David Li <davidxl@google.com>
6645
6646 * cgraph.h: Remove pid.
6647 * cgraph.c: Remove pid.
6648 * value-prof.c (init_node_map): New function.
6649 (del_node_map): New function.
6650 (find_func_by_funcdef_no): New function.
6651 (gimple_ic_transform): Call new function.
6652 * cgraphunit.c (cgraph_finalize_function): Remove pid.
6653 * function.c (get_last_funcdef_no): New function.
6654 * function.h (get_last_funcdef_no): New function.
6655 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
6656 to libgcov function.
6657 (tree-profiling): Call node map init and delete function.
6658
7378e95f
ILT
66592011-04-21 Ian Lance Taylor <iant@google.com>
6660
6661 * godump.c (go_format_type): Use exported Go name for anonymous
6662 field name.
6663
e84a6fcf
NF
66642011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6665
6666 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
6667 Call builtin_function_type_list instead of builtin_function_type.
6668 (UNARY, BINARY, TRINARY, QUAD): Likewise.
6669
4fe058e2
NF
66702011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6671
6672 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
6673 build_function_type_list instead of build_function_type.
6674 Delete variable `endlink'.
6675
1ba0a2d2
NF
66762011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6677
6678 * config/s390/s390.c (s390_init_builtins): Call
6679 build_function_type_list instead of build_function_type.
6680
c0676219
NF
66812011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6682
6683 * config/ia64/ia64.c (ia64_init_builtins): Call
6684 build_function_type_list instead of builtin_function_type.
6685
6ddfda8a
ER
66862011-04-21 Easwaran Raman <eraman@google.com>
6687
3a6448ea 6688 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
6689 (add_stack_var): ...and its reference here...
6690 (expand_stack_vars): ...and here.
6691 (stack_var_cmp): Sort by descending order of size.
6692 (partition_stack_vars): Change heuristic.
1d284ec5 6693 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
6694 (dump_stack_var_partition): Add newline after each partition.
6695
23756963
DA
66962011-04-21 Dimitrios Apostolou <jimis@gmx.net>
6697 Jeff Law <law@redhat.com>
6698
77fa1d54 6699 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
6700 * gengtype.c (matching_file_name_substitute): Likewise.
6701
aa2a43d2
RG
67022011-04-21 Richard Guenther <rguenther@suse.de>
6703
6704 PR lto/48703
1d284ec5 6705 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 6706
4d931f41
EB
67072011-04-21 Eric Botcazou <ebotcazou@adacore.com>
6708
6709 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
6710
f103fa7a
RG
67112011-04-21 Richard Guenther <rguenther@suse.de>
6712
6713 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
6714 file name.
6715
e19f6650
RG
67162011-04-21 Richard Guenther <rguenther@suse.de>
6717
6718 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
6719 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
6720 Use DECL_P, not SSA_VAR_P.
6721 (ptr_derefs_may_alias_p): Likewise.
6722 (ptr_deref_may_alias_ref_p_1): Likewise.
6723 (decl_refs_may_alias_p): Likewise.
6724 (refs_may_alias_p_1): Likewise.
6725 (ref_maybe_used_by_call_p_1): Likewise.
6726 (call_may_clobber_ref_p_1): Likewise.
6727 (indirect_ref_may_alias_decl_p): Assume indirect refrences
6728 are either MEM_REF or TARGET_MEM_REF.
6729 (indirect_refs_may_alias_p): Likewise.
6730 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
6731 for MEM_EXPR of indirect calls.
6732
9d1831bb
TG
67332011-04-21 Tristan Gingold <gingold@adacore.com>
6734
6735 * vmsdbgout.c (write_srccorr): Compute file length from the string.
6736 (dst_file_info_struct): Remove flen field.
6737 (lookup_filename): Remove code that set flen field.
6738
f199c029
TG
67392011-04-21 Tristan Gingold <gingold@adacore.com>
6740
6741 * config/ia64/ia64.c (ia64_start_function): Add a guard.
6742
2894086e
UB
67432011-04-21 Uros Bizjak <ubizjak@gmail.com>
6744
6745 PR target/48708
6746 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
6747 vec_extract and vec_concat for non-SSE4_1 targets.
6748
53f94a5c
RG
67492011-04-21 Richard Guenther <rguenther@suse.de>
6750
6751 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
6752 return statements.
6753
f0dca5ba
JM
67542011-04-21 Joseph Myers <joseph@codesourcery.com>
6755
6756 * config/i386/cygming.h (union tree_node, TREE): Don't define or
6757 undefine.
6758 (FILE): Don't undefine.
6759
984514ac
JM
67602011-04-21 Joseph Myers <joseph@codesourcery.com>
6761
6762 * config/alpha/alpha.c (struct machine_function): Use rtx, not
6763 struct rtx_def *.
6764 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
6765 struct rtx_def *.
6766 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 6767 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
6768 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
6769 rtx_def *.
6770 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
6771 definitions where used.
6772 * config/microblaze/microblaze.h (struct microblaze_args): Use
6773 rtx, not struct rtx_def *.
6774 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
6775 rtx_def *.
2894086e
UB
6776 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
6777 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
6778 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
6779 not struct rtx_def *.
6780 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
6781 struct rtx_def *.
6782 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
6783 rtx_def *.
2894086e 6784 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 6785
0b5a2724
RS
67862011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
6787
6788 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
6789 operand_equal_p to compare DR_BASE_ADDRESSes.
6790 (vect_check_interleaving): Likewise.
6791
4b18d683
RS
67922011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
6793
6794 PR target/46329
6795 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
6796 for all Neon struct constants.
6797
1a627b35
RS
67982011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
6799
6800 * target.def (legitimate_constant_p): New hook.
6801 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
6802 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
6803 * doc/tm.texi: Regenerate.
6804 * hooks.h (hook_bool_mode_rtx_true): Declare.
6805 * hooks.c (hook_bool_mode_rtx_true): Define.
6806 * system.h (LEGITIMATE_CONSTANT_P): Poison.
6807 * calls.c (precompute_register_parameters): Replace uses of
6808 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
6809 (emit_library_call_value_1): Likewise.
6810 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
6811 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
6812 * ira-costs.c (scan_one_insn): Likewise.
6813 * recog.c (general_operand, immediate_operand): Likewise.
6814 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
6815 * reload1.c (init_eliminable_invariants): Likewise.
6816
6817 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
6818 mode argument.
6819 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
6820 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
6821 argument.
6822 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6823 * config/alpha/predicates.md (input_operand): Update call to
6824 alpha_legitimate_constant_p.
6825
6826 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
6827 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
6828 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
6829 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6830 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
6831 (arm_legitimate_constant_p): New functions.
6832 (arm_cannot_force_const_mem): Make static.
6833
6834 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
6835
6836 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
6837 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
6838 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
6839 instead of bfin_legitimate_constant_p.
6840 (bfin_legitimate_constant_p): Make static. Add a mode argument.
6841 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6842
6843 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
6844
6845 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
6846
6847 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
6848 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
6849 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6850 (frv_legitimate_constant_p): Make static. Add a mode argument.
6851
6852 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
6853 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
6854 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
6855
6856 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
6857 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
6858 * config/i386/i386.c (legitimate_constant_p): Rename to...
6859 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
6860 argument.
6861 (ix86_cannot_force_const_mem): Update accordingly.
6862 (ix86_legitimate_address_p): Likewise.
6863 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6864 * config/i386/i386.md: Update commentary.
6865
6866 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
6867 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
6868 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6869 (ia64_legitimate_constant_p): Make static. Add a mode argument.
6870
6871 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
6872
6873 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
6874 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
6875 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6876 (lm32_legitimate_constant_p): Make static. Add a mode argument.
6877
6878 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
6879 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
6880 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
6881
6882 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
6883 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6884 (m32r_legitimate_constant_p): New function.
6885
6886 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
6887 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
6888 LEGITIMATE_CONSTANT_P.
6889 (LEGITIMATE_CONSTANT_P): Delete.
6890 * config/m68k/m68k.c (m68k_expand_prologue): Call
6891 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
6892 (m68k_legitimate_constant_p): New function.
6893 * config/m68k/m68k.md: Update comments.
6894
6895 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
6896 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6897 (mcore_legitimate_constant_p): New function.
6898
6899 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
6900 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
6901 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
6902 Add a mode argument.
6903 (mep_legitimate_address): Update accordingly.
6904 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6905
6906 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
6907 Delete.
6908 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
6909 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
6910 static. Check OP's mode for VOIDmode.
6911 (microblaze_legitimate_constant_p): New function.
6912 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6913
6914 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
6915 * config/mips/mips.c (mips_legitimate_constant_p): New function.
6916 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
6917 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6918 * config/mips/predicates.md: Update comments.
6919
6920 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
6921 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
6922 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6923 (mmix_legitimate_constant_p): Make static, return a bool, and take
6924 a mode argument.
6925 (mmix_print_operand_address): Update accordingly.
6926
6927 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
6928 Delete.
6929 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
6930 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
6931 static. Add a mode argument.
1a627b35
RS
6932 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6933
6934 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
6935
6936 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
6937 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6938 (pa_legitimate_constant_p): New function.
6939
6940 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
6941
6942 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
6943 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6944 (pdp11_legitimate_constant_p): New function.
6945
6946 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
6947 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6948 (rs6000_legitimate_constant_p): New function.
6949
6950 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
6951 (rx_legitimate_constant_p): ...this.
6952 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
6953 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
6954 (rx_legitimate_constant_p): ...this.
6955 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6956 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
6957
6958 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
6959 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
6960 * config/s390/s390.c (legitimate_constant_p): Rename to...
6961 (s390_legitimate_constant_p): ...this. Make static, return a bool,
6962 and add a mode argument.
6963 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6964
6965 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
6966
6967 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
6968 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6969 (sh_legitimate_constant_p): New function.
6970
6971 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
6972 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
6973 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6974 (legitimate_constant_p): Rename to...
6975 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
6976 argument.
6977 (constant_address_p): Update accordingly.
6978
6979 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
6980 argument and return a bool.
6981 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
6982 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6983 (spu_legitimate_constant_p): Add a mode argument and return a bool.
6984 (spu_rtx_costs): Update accordingly.
6985 * config/spu/predicates.md (vec_imm_operand): Likewise.
6986
6987 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
6988
6989 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
6990 * config/v850/v850.c (v850_legitimate_constant_p): New function.
6991 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6992
6993 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
6994 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
6995 * config/vax/vax.c (legitimate_constant_p): Likewise.
6996
6997 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
6998 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6999 (xtensa_legitimate_constant_p): New function.
7000
fbbf66e7
RS
70012011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7002
7003 * target.def (cannot_force_const_mem): Add a mode argument.
7004 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
7005 * doc/tm.texi: Regenerate.
7006 * hooks.h (hook_bool_mode_rtx_false): Declare.
7007 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
7008 (hook_bool_mode_const_rtx_true): Likewise.
7009 (hook_bool_mode_rtx_false): New function.
7010 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
7011 to be non-VOID. Update call to cannot_force_const_mem.
7012 (find_reloads): Update accordingly.
7013 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
7014 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
7015 argument.
7016 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
7017 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
7018 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
7019 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
7020 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
7021 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
7022 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
7023 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
7024 (m68k_cannot_force_const_mem): ...this new function.
7025 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
7026 argument.
7027 (mips_const_insns, mips_legitimize_const_move): Update calls.
7028 (mips_secondary_reload_class): Likewise.
7029 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
7030 (pa_cannot_force_const_mem): ...this new function.
2894086e 7031 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
7032 (rs6000_cannot_force_const_mem): ...this new function.
7033 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
7034 argument.
7035 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
7036 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
7037 to...
7038 (xtensa_cannot_force_const_mem): ...this new function.
7039
b861891b
NF
70402011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7041
7042 * config/mips/mips.c (mips16_build_function_stub): Call
7043 build_function_type_list instead of build_function_type.
7044 (mips16_build_call_stub): Likewise.
7045
34149ed5
NF
70462011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7047
7048 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
7049 instead of build_function_type.
7050
12526412
NF
70512011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7052
7053 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
7054 instead of build_function_type.
7055
3b84d61f
UB
70562011-04-20 Uros Bizjak <ubizjak@gmail.com>
7057
7058 PR target/48678
7059 * config/i386/i386.md (insv): Change operand 0 constraint to
7060 "register_operand". Change operand 1 and 2 constraint to
7061 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
7062 * config/i386/sse.md (sse4_1_pinsrb): Export.
7063 (sse2_pinsrw): Ditto.
7064 (sse4_1_pinsrd): Ditto.
7065 (sse4_1_pinsrq): Ditto.
7066 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
7067 * config/i386/i386.c (ix86_expand_pinsr): New.
7068
4a25752b
ER
70692011-04-20 Easwaran Raman <eraman@google.com>
7070
7071 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
7072 containing union type only with -fstrict-aliasing.
7073
04695783
JM
70742011-04-20 Jim Meyering <meyering@redhat.com>
7075
7076 Remove useless if-before-free tests.
7077 * calls.c (expand_call, save_area): Likewise.
7078 * cfgcleanup.c (try_forward_edges): Likewise.
7079 * collect2.c (collect_execute): Likewise.
7080 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
7081 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
7082 * coverage.c (coverage_checksum_string): Likewise.
7083 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
7084 * cselib.c (cselib_init): Likewise.
7085 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
7086 (df_set_clean_cfg): Likewise.
7087 * function.c (free_after_compilation): Likewise.
7088 * gcc.c (do_spec_1, main): Likewise.
7089 * gcov.c (create_file_names): Likewise.
7090 * gensupport.c (identify_predicable_attribute): Likewise.
7091 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
7092 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
7093 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
7094 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
7095 * ipa-pure-const.c (local_pure_const): Likewise.
7096 * ipa-reference.c (propagate): Likewise.
7097 * ira-costs.c (free_ira_costs): Likewise.
7098 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
7099 * matrix-reorg.c (mat_free): Likewise.
7100 * prefix.c (get_key_value): Likewise.
7101 * profile.c (compute_value_histograms): Likewise.
7102 * reload1.c (free_reg_equiv): Likewise.
7103 * sched-deps.c (free_deps): Likewise.
7104 * sel-sched-ir.c (fence_clear): Likewise.
7105 * sese.c (set_rename, if_region_set_false_region): Likewise.
7106 * tree-data-ref.c (free_rdg): Likewise.
7107 * tree-eh.c (lower_try_finally): Likewise.
7108 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
7109 * tree-ssa-live.c (delete_var_map): Likewise.
7110 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
7111 * tree-ssa-pre.c (phi_trans_add): Likewise.
7112
6788475a
JJ
71132011-04-20 Jakub Jelinek <jakub@redhat.com>
7114
7115 PR tree-optimization/48611
7116 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
7117 beyond ERT_MUST_NOT_THROW region.
7118
0eda4033
CM
71192011-04-20 Catherine Moore <clm@codesourcery.com>
7120
7121 * config/mips/mips.opt (mfix-24k): New.
7122 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
7123 * config/mips/mips.md (length): Increase by 4 for stores if
7124 fixing 24K errata.
7125 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
7126 all noreorder if fixing 24K errata.
7127 * doc/invoke.texi: Document mfix-24k.
7128
01475747
CLT
71292011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
7130
7131 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 7132 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 7133
bc2c1a60
AS
71342011-04-20 Andrew Stubbs <ams@codesourcery.com>
7135
7136 * config/arm/arm.c (arm_gen_constant): Move movw support ....
7137 (const_ok_for_op): ... to here.
7138
583722ee
KT
71392011-04-20 Kai Tietz <ktietz@redhat.com>
7140
2894086e
UB
7141 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
7142 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 7143
422c0989
AS
71442011-04-20 Andrew Stubbs <ams@codesourcery.com>
7145
7146 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
7147
d7978bff
RG
71482011-04-20 Richard Guenther <rguenther@suse.de>
7149
7150 PR tree-optimization/47892
7151 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
7152 are if-convertible.
7153
818412ba
EB
71542011-04-20 Eric Botcazou <ebotcazou@adacore.com>
7155
7156 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
7157
b501ce4e
TG
71582011-04-20 Tristan Gingold <gingold@adacore.com>
7159
7160 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
7161
516edfdd
GJL
71622011-04-20 Georg-Johann Lay <avr@gjlay.de>
7163
7164 PR target/18145
7165
7166 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
7167 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
7168 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
7169 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
7170 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
7171
7172 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
7173 New prototype.
7174
7175 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
7176 (avr_asm_named_section, avr_asm_output_aligned_common,
7177 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
7178 New functions to update...
7179 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
7180 (avr_asm_init_sections): Overwrite section callbacks for
7181 data_section, bss_section.
7182 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
7183 from here to...
7184 (avr_file_end): ...here.
7185
dafc9511
RG
71862011-04-20 Richard Guenther <rguenther@suse.de>
7187
7188 PR middle-end/48695
7189 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 7190 objects and types here. Adjust for their offset before comparing.
dafc9511 7191
1da0876c
RS
71922011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
7193
7194 * tree-vect-stmts.c (vectorizable_store): Only chain one related
7195 statement per copy.
7196
25583c4f
RS
71972011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
7198
7199 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
7200 (GIMPLE_H): Include $(INTERNAL_FN_H).
7201 (OBJS-common): Add internal-fn.o.
7202 (internal-fn.o): New rule.
7203 * internal-fn.def: New file.
7204 * internal-fn.h: Likewise.
7205 * internal-fn.c: Likewise.
7206 * gimple.h: Include internal-fn.h.
7207 (GF_CALL_INTERNAL): New gf_mask.
7208 (gimple_statement_call): Put fntype into a union with a new
7209 internal_fn field.
7210 (gimple_build_call_internal): Declare.
7211 (gimple_build_call_internal_vec): Likewise.
7212 (gimple_call_same_target_p): Likewise.
7213 (gimple_call_internal_p): New function.
7214 (gimple_call_internal_fn): Likewise.
7215 (gimple_call_fntype): Return null for internal calls.
7216 (gimple_call_set_fntype): Assert that the function is not internal.
7217 (gimple_call_set_fn): Likewise.
7218 (gimple_call_set_fndecl): Likewise.
7219 (gimple_call_set_internal_fn): New function.
7220 (gimple_call_addr_fndecl): Handle null functions.
7221 (gimple_call_return_type): Likewise null types.
7222 * gimple.c (gimple_build_call_internal_1): New function.
7223 (gimple_build_call_internal): Likewise.
7224 (gimple_build_call_internal_vec): Likewise.
7225 (gimple_call_same_target_p): Likewise.
7226 (gimple_call_flags): Handle calls to internal functions.
7227 (gimple_call_fnspec): New function.
7228 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
7229 (gimple_has_side_effects): Handle null functions.
7230 (gimple_rhs_has_side_effects): Likewise.
7231 (gimple_call_copy_skip_args): Handle calls to internal functions.
7232 * cfgexpand.c (expand_call_stmt): Likewise.
7233 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
7234 * gimple-fold.c (gimple_fold_call): Handle null functions.
7235 (gimple_fold_stmt_to_constant_1): Don't fold
7236 calls to internal functions.
7237 * gimple-low.c (gimple_check_call_args): Handle calls to internal
7238 functions.
7239 * gimple-pretty-print.c (dump_gimple_call): Likewise.
7240 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
7241 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
7242 (do_warn_unused_result): Likewise.
7243 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
7244 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
7245 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
7246 the target of a call.
7247 (initialize_hash_element): Update accordingly.
7248 (hashable_expr_equal_p): Use gimple_call_same_target_p.
7249 (iterative_hash_hashable_expr): Handle calls to internal functions.
7250 (print_expr_hash_elt): Likewise.
7251 * tree-ssa-pre.c (can_value_number_call): Likewise.
7252 (eliminate): Handle null functions.
7253 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
7254 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
7255 (find_func_aliases): Likewise.
7256 * value-prof.c (gimple_ic_transform): Likewise.
7257 (gimple_indirect_call_to_profile): Likewise.
7258 * lto-streamer-in.c (input_gimple_stmt): Likewise.
7259 * lto-streamer-out.c (output_gimple_stmt): Likewise.
7260
1a3118e9
JH
72612011-04-19 Jan Hubicka <jh@suse.cz>
7262
7263 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
7264 * ipa-inline.c (inline_small_functions): Compute summaries first,
7265 populate heap later.
1a3118e9 7266
fee8b6da
JH
72672011-04-19 Jan Hubicka <jh@suse.cz>
7268
7269 * cgraph.h (save_inline_function_body): Remove.
7270 * ipa-inline-transform.c: New file, broke out of...
7271 * ipa-inline.c: ... this one; Update toplevel comment.
7272 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
7273 make global.
7274 (update_noncloned_frequencies): Move to ipa-inline-transform.c
7275 (cgraph_mark_inline_edge): Rename to inline_call; move to
7276 ipa-inline-transform.c.
7277 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
7278 move to ipa-inline-transform.c
7279 (recursive_inlining, inline_small_functions, flatten_function,
7280 ipa_inline, inline_always_inline_functions,
7281 early_inline_small_functions): Update.
7282 (inline_transform): Move to ipa-inline-transform.c.
7283 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
7284 Declare.
7285 * Makefile.in (ipa-inline-transform.o): New file.
7286 * cgraphunit.c (save_inline_function_body): Move to
7287 ipa-inline-transform.c
7288
f0679612
DD
72892011-04-19 DJ Delorie <dj@redhat.com>
7290
7291 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
7292 registers if we already know there aren't any.
7293 (m32c_emit_epilogue): Don't emit a barrier here.
7294 (m32c_emit_eh_epilogue): Likewise.
7295 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
7296 operands at expand time.
7297 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
7298 int" wchar type.
7299 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
7300 duplicates. Provide aliases instead.
7301 * config/m32c/prologue.md (eh_return): Emit a barrier here.
7302 (eh_epilogue): Add a "(return)" here as a hint to other parts of
7303 the compiler.
7304
32257ddc
AS
73052011-04-19 Anatoly Sokolov <aesok@post.ru>
7306
7307 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
7308 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
7309 (general_or_i64_p, sparc_register_move_cost): New function.
7310
60bea929
RO
73112011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7312
7313 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 7314 Add lynx, mipssde. Sort table.
60bea929 7315
444b3995 73162011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 7317
9d12f71a
EB
7318 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
7319 not negative.
444b3995 7320
d708ce50
JJ
73212011-04-19 Jakub Jelinek <jakub@redhat.com>
7322
7323 PR target/48678
7324 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
7325 is a SUBREG with non-MODE_INT mode inside of it.
7326
49c471e3
MJ
73272011-04-19 Martin Jambor <mjambor@suse.cz>
7328
7329 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
7330 also according to actual contants.
7331 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
7332 (gimple_fold_call): Use it.
7333 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
7334
0004f992
MJ
73352011-04-19 Martin Jambor <mjambor@suse.cz>
7336
7337 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
7338 non-pointer assignments.
7339
40591473
MJ
73402011-04-19 Martin Jambor <mjambor@suse.cz>
7341
7342 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
7343 account anc_offset and otr_type from the indirect edge info.
7344 * ipa-prop.c (get_ancestor_addr_info): New function.
7345 (compute_complex_ancestor_jump_func): Assignment analysis moved to
7346 get_ancestor_addr_info, call it.
7347 (ipa_note_param_call): Do not initialize information about polymorphic
7348 calls, return the indirect call graph edge. Remove the last
7349 parameter, adjust all callers.
7350 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
7351 parameters. Initialize polymorphic information in the indirect edge.
7352
abe36b81
EB
73532011-04-19 Eric Botcazou <ebotcazou@adacore.com>
7354
7355 PR lto/48148
7356 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
7357 the types if they have different enumeration identifiers.
7358
e6416b30
JH
73592011-04-19 Jan Hubicka <jh@suse.cz>
7360
7361 * cgraph.h (cgraph_optimize_for_size_p): Declare.
7362 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
7363 * predict.c (cgraph_optimize_for_size_p): Break out from ...
7364 (optimize_function_for_size_p) ... here.
7365
d39132ea
RG
73662011-04-19 Richard Guenther <rguenther@suse.de>
7367
7368 PR lto/48207
7369 * tree.c (free_lang_data): Do not reset the decl-assembler-name
7370 langhook.
7371
ff7037dc
EB
73722011-04-19 Eric Botcazou <ebotcazou@adacore.com>
7373
7374 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
7375 if DECL_NO_INLINE_WARNING_P is set on the function.
7376
c1ee2892
BS
73772011-04-19 Bernd Schmidt <bernds@codesourcery.com>
7378
7379 PR fortran/47976
7380 * reload1.c (inc_for_reload): Return void. All callers changed.
7381 (emit_input_reload_insns): Don't try to delete previous output
7382 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
7383
73842011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
7385
7386 * gengtype.h: Updated copyright year.
7387 (struct input_file_st): Add inpisplugin field.
7388 (type_fileloc): New function.
7389 * gengtype.c
7390 (write_typed_struct_alloc_def): Add gcc_assert.
7391 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
7392 (write_typed_alloc_defns): Don't output for plugin files.
7393 (input_file_by_name): Clear inpisplugin field.
7394 (main): Set inpisplugin field for plugin files.
7395
897e0a89
NP
73962011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
7397
7398 * gengtype-state.c (string_eq): New.
7399 (read_state): Use string_eq instead of strcmp when creating the
7400 state_ident_tab.
7401
363ee90e
WG
74022011-04-19 Wei Guozhi <carrot@google.com>
7403
7404 PR target/47855
7405 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
7406 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
7407 linkage.
7408 * config/arm/constraints.md (Uu): New constraint.
7409 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
7410
18a24fed
TG
74112011-04-19 Tristan Gingold <gingold@adacore.com>
7412
7413 * config.gcc (-*-*-*vms): Added.
7414 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
7415 definitions moved.
7416 * config/vms/vms-ld.c: New file.
7417 * config/vms/vms-ar.c: New file.
7418 * config/vms/t-vmsnative: New file.
7419
1c13f168
XDL
74202011-04-18 Xinliang David Li <davidxl@google.com>
7421
7422 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
7423
84825707
JJ
74242011-04-18 Jakub Jelinek <jakub@redhat.com>
7425
7426 PR middle-end/48661
7427 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
7428 if TREE_TYPE (v) is non-NULL.
7429
7430 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
7431 gimple_get_virt_mehtod_for_binfo.
7432 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
7433 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
7434 callers.
7435 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7436
7d4f8d02 74372011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
7438 Steve Ellcey <sje@cup.hp.com>
7439
7d4f8d02
EB
7440 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
7441 use its mode as source mode if it isn't VOIDmode.
7254cb57 7442
474e8e70
DCR
74432011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
7444
7445 * doc/passes.texi: Fill crossref nodes.
7446
cff41484
JM
74472011-04-18 Jim Meyering <meyering@redhat.com>
7448
7d4f8d02 7449 Fix doubled-word typos in comments and strings
cff41484
JM
7450 * config/alpha/vms-unwind.h: s/for for/for/
7451 * config/arm/unwind-arm.h: Likewise.
7452 * config/microblaze/microblaze.c: Likewise.
7453 * config/sh/constraints.md: s/in in/in/
7454 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
7455
f60c2554
UB
74562011-04-18 Uros Bizjak <ubizjak@gmail.com>
7457
7458 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
7459 (AVX_FLOAT_MODE_P): Ditto.
7460 (AVX128_VEC_FLOAT_MODE_P): Ditto.
7461 (AVX256_VEC_FLOAT_MODE_P): Ditto.
7462 (AVX_VEC_FLOAT_MODE_P): Ditto.
7463 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
7464 (UNSPEC_MASKSTORE): Ditto.
7465 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
7466 Merge from <sse>_movmsk<ssemodesuffix> and
7467 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
7468 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
7469 iterator.
7470 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
7471 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
7472 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
7473
09a2806f
JH
74742011-04-18 Jan Hubicka <jh@suse.cz>
7475
8a8dccb2
JH
7476 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
7477
09a2806f
JH
7478 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
7479 (want_inline_function_called_once_p): Break out the logic from
7480 ipa_inline.
7481 (edge_badness): Ensure that profile is not misupdated.
7482 (lookup_recursive_calls): Prioritize by call frequencies.
7483 (inline_small_functions): Move program size estimates here;
7484 actually process whole queue even when unit growth has been
7485 met. (to properly compute inline_failed reasons and for the
f60c2554 7486 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
7487 (ipa_inline): Remove unit summary code; first inline hot calls
7488 of functions called once, cold calls next.
7489 (order, nnodes): Remove unused variables.
7490 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
7491 (GTFILES): Remove ipa-inline.c
7492 * sel-sched.c (fill_insns): Silence uninitialized var warning.
7493
3eea52ef
EB
74942011-04-18 Eric Botcazou <ebotcazou@adacore.com>
7495
7496 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
7497
229a1c59 74982011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 7499 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
7500
7501 * arm.c (neon_builtin_type_bits): Remove.
7502 (typedef enum neon_builtin_mode): New.
7503 (T_MAX): Don't define.
7504 (typedef enum neon_builtin_datum): Remove bits, codes[],
7505 num_vars and base_fcode. Add mode, code and fcode.
7506 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
7507 VAR10): Change accordingly.
7508 (neon_builtin_data[]): Change accordingly
7509 (arm_init_neon_builtins): Change accordingly.
7510 (neon_builtin_compare): Remove.
7511 (locate_neon_builtin_icode): Remove.
7512 (arm_expand_neon_builtin): Change accordingly.
7513
7514 * arm.h (enum arm_builtins): Move to ...
7515 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
7516
7517 * arm.c (arm_builtin_decl): Declare.
7518 (TARGET_BUILTIN_DECL): Define.
7519 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
7520 (arm_builtin_decls[]): New.
7521 (arm_init_neon_builtins): Store builtin declarations in
7522 arm_builtin_decls[].
7523 (arm_init_tls_builtins): Likewise.
7524 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
7525 (arm_builtin_decl): New.
7526
75e802cc
RG
75272011-04-18 Richard Guenther <rguenther@suse.de>
7528
7529 * tree.c (upper_bound_in_type): Build properly canonicalized
7530 INTEGER_CSTs.
7531 (lower_bound_in_type): Likewise.
7532
3b45a007
RG
75332011-04-18 Richard Guenther <rguenther@suse.de>
7534
7535 * gimple.h (gimple_call_addr_fndecl): New function.
7536 (gimple_call_fndecl): Use it.
7537 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
7538 for direct calls.
7539 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
7540 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
7541
d25a79ea
RG
75422011-04-18 Richard Guenther <rguenther@suse.de>
7543
7544 PR middle-end/48650
7545 * tree.c (build_string): STRING_CST is now derived from tree_typed.
7546
7d5fc814
EB
75472011-04-18 Eric Botcazou <ebotcazou@adacore.com>
7548
7549 PR lto/48492
7550 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
7551 DECL_IN_CONSTANT_POOL without RTL.
7552
7e7cfcf6
UW
75532011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
7554 Ira Rosen <ira.rosen@linaro.org>
7555
7556 PR target/48252
7557 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
7558 to match neon_vzip/vuzp/vtrn_internal.
7559 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
7560 outputs explicitly dependent on both inputs.
7561 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
7562
49eab32e
JJ
75632011-04-18 Jakub Jelinek <jakub@redhat.com>
7564
7565 PR tree-optimization/48616
7566 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
7567 whether the shift is by scalar or vector based on whether all SLP
7568 scalar stmts have the same rhs.
7569
e54170f4
CLT
75702011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
7571
7572 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
7573 memory operands.
7574
b14ee6c9
RS
75752011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
7576
269e0e18 7577 PR target/43700
b14ee6c9
RS
7578 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
7579 registers.
7580
10158cd3
JH
75812011-04-17 Jan Hubicka <jh@suse.cz>
7582
7583 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
7584 * cgrpahunit.c (cgraph_finalize_function): Do not set
7585 finalized_by_frontend.
10158cd3
JH
7586 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
7587 finalized_by_frontend.
7588
2e9bb6ba
JH
75892011-04-17 Jan Hubicka <jh@suse.cz>
7590
7591 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
7592 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
7593 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
7594 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
7595 method.
2e9bb6ba
JH
7596 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
7597 gimple-fold.c
7598 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
7599
beb628e1
EB
76002011-04-17 Eric Botcazou <ebotcazou@adacore.com>
7601
7602 PR lto/48538
7603 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
7604 is non-null before accessing it.
7605 (input_cgraph): Remove trailing spaces.
7606
3e2fdd24
RE
76072011-04-17 Revital Eres <revital.eres@linaro.org>
7608
7609 * params.def (sms-min-sc): New param flag.
7610 * modulo-sched.c (sms_schedule): Use it.
7611 * doc/invoke.texi (sms-min-sc): Document it.
7612
4c0f7679
JH
76132011-04-17 Jan Hubicka <jh@suse.cz>
7614
7615 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
7616 present, also set gimple_call_set_cannot_inline.
7617 * ipa-inline.c: Update toplevel comment.
7618 (MAX_TIME): Remove.
7619 (cgraph_clone_inlined_nodes): Fix linebreaks.
7620 (cgraph_check_inline_limits): Restructure to ...
7621 (caller_growth_limits): ... this one; be more tolerant
7622 on growth in nested inline chains; add explanatory comment;
7623 fix stack accounting thinko introduced by previous patch.
7624 (cgraph_default_inline_p): Remove.
7625 (report_inline_failed_reason): New function.
7626 (can_inline_edge_p): New function.
7627 (can_early_inline_edge_p): New function.
7628 (leaf_node_p): Move upwards in file.
7629 (want_early_inline_function_p): New function.
7630 (want_inline_small_function_p): New function.
7631 (want_inline_self_recursive_call_p): New function.
7632 (cgraph_edge_badness): Rename to ...
7633 (edge_badness) ... this one; fix linebreaks.
7634 (update_edge_key): Update call of edge_baddness; add
7635 detailed dump about queue updates.
7636 (update_caller_keys): Use can_inline_edge_p and
7637 want_inline_small_function_p.
7638 (cgraph_decide_recursive_inlining): Rename to...
7639 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
7640 want_inline_self_recursive_call_p; simplify and remove no longer
7641 valid FIXME.
4c0f7679
JH
7642 (cgraph_set_inline_failed): Remove.
7643 (add_new_edges_to_heap): Use can_inline_edge_p and
7644 want_inline_small_function_p.
7645 (cgraph_decide_inlining_of_small_functions): Rename to ...
7646 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
7647 can/want predicates; cleanup debug ouput; work edges till fibheap
7648 is exhausted and do not stop once unit growth is reached; remove
7649 later loop processing remaining edges.
4c0f7679
JH
7650 (cgraph_flatten): Rename to ...
7651 (flatten_function): ... this one; use can_inline_edge_p
7652 and can_early_inline_edge_p predicates.
7653 (cgraph_decide_inlining): Rename to ...
7654 (ipa_inline): ... this one; remove unreachable nodes before
7655 inlining functions called once; simplify the pass.
7656 (cgraph_perform_always_inlining): Rename to ...
7657 (inline_always_inline_functions): ... this one; use
f60c2554 7658 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
7659 (cgraph_decide_inlining_incrementally): Rename to ...
7660 (early_inline_small_functions): ... this one; simplify
7661 using new predicates; cleanup; make dumps prettier.
7662 (cgraph_early_inlining): Rename to ...
7663 (early_inliner): newer inline regular functions into always-inlines;
7664 fix updating of call stmt summaries.
7665 (pass_early_inline): Update for new names.
7666 (inline_transform): Fix formating.
7667 (gate_cgraph_decide_inlining): Rename to ...
7668 (pass_ipa_inline): ... this one.
7669 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
7670 * ipa-inline-analysis.c (dump_inline_summary): Update.
7671 (compute_inline_parameters): Do not compute disregard_inline_limits;
7672 look for mismatching arguments.
7673 (estimate_growth): Fix handlig of non-trivial self recursion.
7674 (inline_read_summary): Do not read info->disregard_inline_limits.
7675 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
7676 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
7677 and move all checks into can_inline_edge_p predicate; re-enable code
7678 comparing optimization levels.
4c0f7679
JH
7679 (expand_call_inline): Do not test inline_forbidden_into_p.
7680 * Makefile.in (ipa-inline.o): Update arguments.
7681
54333b7c
RE
76822011-04-17 Revital Eres <revital.eres@linaro.org>
7683
7684 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
7685
42c2bf92
RE
76862011-04-17 Revital Eres <revital.eres@linaro.org>
7687
7688 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
7689
b183e9e0
MM
76902011-04-17 Michael Matz <matz@suse.de>
7691
7692 PR tree-optimization/48622
7693 PR lto/48645
7694 * ipa-inline-analysis.c (inline_read_summary): Read size/time
7695 in same order as they're written.
7696
b8a17fa2
JDA
76972011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7698
7699 * config/pa/predicates.md: Reorganize and simplify predicates.
7700 Eliminate duplicate code checks.
7701 (arith_operand): Rename to arith14_operand
7702 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
7703 * config/pa/pa.md: Use renamed operands.
7704 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
7705 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
7706 arith11_operand, adddi3_operand, indexed_memory_operand,
7707 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
7708 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
7709 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
7710 move_dest_operand, move_src_operand, prefetch_cc_operand,
7711 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
7712 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
7713 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
7714 div_operand, int5_operand, movb_comparison_operator,
7715 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
7716 arith_double_operand, ireg_operand, lhs_lshift_operand,
7717 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
7718 integer_store_memory_operand): Likewise.
7719 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
7720 (integer_store_memory_operand, read_only_operand,
7721 function_label_operand, borx_reg_operand,
7722 non_hard_reg_operand): Likewise.
7723 (eq_neq_comparison_operator): Delete unused operator.
7724 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
7725 function_label_operand.
7726 (emit_move_sequence): Likewise.
7727
8dfb9f16
UB
77282011-04-16 Uros Bizjak <ubizjak@gmail.com>
7729
7730 * config/i386/sse.md (sseunpackmode): New mode attribute.
7731 (ssepackmode): Ditto.
7732 (vec_pack_trunc_<mode>): Macroize expander from
7733 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
7734 (vec_unpacks_lo_<mode>): Macroize expander from
7735 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7736 (vec_unpacks_hi_<mode>): Macroize expander from
7737 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7738 (vec_unpacku_lo_<mode>): Macroize expander from
7739 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7740 (vec_unpacku_hi_<mode>): Macroize expander from
7741 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7742 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
7743 ix86_expand_sse4_unpack.
7744 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
7745
e7f23018
JH
77462011-04-16 Jan Hubicka <jh@suse.cz>
7747
7748 * cgraphbuild.c: Include ipa-inline.h.
7749 (reset_inline_failed): Use initialize_inline_failed.
7750 * cgraph.c: Include ipa-inline.h.
7751 (cgraph_create_node_1): Do not initialize estimated_growth.
7752 (initialize_inline_failed): More to ipa-inline-analysis.c
7753 (dump_cgraph_node): Do not dump inline flags.
7754 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
7755 and disregard_inline_limits flags.
7756 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
7757 time, size, estimated_growth.
8dfb9f16
UB
7758 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
7759 Update.
e7f23018
JH
7760 * cgraphunit.c (cgraph_decide_is_function_needed): Use
7761 DECL_DISREGARD_INLINE_LIMITS.
7762 (cgraph_analyze_function): Do not initialize
7763 node->local.disregard_inline_limits.
7764 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
7765 inlinable, versionable and disregard_inline_limits.
7766 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
7767 cgraph_check_inline_limits, cgraph_default_inline_p,
7768 cgraph_edge_badness, update_caller_keys, update_callee_keys,
7769 add_new_edges_to_heap): Update.
7770 (cgraph_decide_inlining_of_small_function): Update; set
7771 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
7772 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
7773 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
7774 * ipa-inline.h (inline_summary): Add inlinable, versionable,
7775 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
7776 time, size and estimated_growth parameters.
e7f23018
JH
7777 (estimate_edge_growth): Update.
7778 (initialize_inline_failed): Declare.
7779 * ipa-split.c: Include ipa-inline.h
7780 (execute_split_functions): Update.
7781 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
7782 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
7783 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
7784 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
7785 estimated_growth to INT_MIN.
7786 (inline_node_duplication_hook): Likewise.
7787 (dump_inline_summary): Dump new fields.
7788 (compute_inline_parameters): Update.
7789 (estimate_edge_time, estimate_time_after_inlining,
7790 estimate_size_after_inlining, estimate_growth, inline_read_summary,
7791 inline_write_summary):
7792 (initialize_inline_failed): Move here from cgraph.c.
7793 * tree-sra.c: Include ipa-inline.h.
7794 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
7795 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
7796 ipa-inline.h.
e7f23018 7797
e81b8564
UB
77982011-04-16 Uros Bizjak <ubizjak@gmail.com>
7799
7800 * config/i386/sse.md (V16): New mode iterator.
7801 (VI1, VI8): Ditto.
7802 (AVXMODEQI, AVXMODEDI): Remove.
7803 (sse2, sse3): New mode attribute.
7804 (mov<mode>): Use V16 mode iterator.
7805 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
7806 (push<mode>1): Use V16 mode iterator.
7807 (movmisalign<mode>): Ditto.
7808 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
7809 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
7810 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
7811 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
7812 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
7813 avx_movdqu<avxmodesuffix>.
7814 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
7815 *avx_movdqu<avxmodesuffix>.
7816 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
7817 avx_lddqu<avxmodesuffix>.
7818 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
7819 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
7820 avx_movnt<AVXMODEDI:mode>.
7821 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
7822 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
7823
4743d438
BS
78242011-04-16 Bernd Schmidt <bernds@codesourcery.com>
7825
7826 PR target/48629
7827 * haifa-sched.c (prune_ready_list, schedule_block): Use
7828 sched_pressure_p rather than flag_sched_pressure.
7829
748f7574 78302011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
7831
7832 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
7833 cgraph_get_node instead of cgraph_get_create_node.
7834
2ba172e0
JJ
78352011-04-15 Jakub Jelinek <jakub@redhat.com>
7836
7837 * cfgexpand.c (expand_debug_expr): Use
7838 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
7839
63d2a353
MM
78402011-04-15 Michael Matz <matz@suse.de>
7841
7842 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
7843 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
7844 * function.c (gimplify_parameters): Ditto.
7845 * gimplify.c (gimplify_vla_decl): Ditto.
7846
7847 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
7848 (gimple_call_set_alloca_for_var): New inline function.
7849 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
7850 * gimple.c (gimple_build_call_from_tree): Remember
7851 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
7852 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
7853
7854 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
7855 calls if they were for VLA objects.
7856
dee74c34
MJ
78572011-04-15 Martin Jambor <mjambor@suse.cz>
7858
7859 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
7860 of ADR_EXPRs.
7861
8e5837bc
MJ
78622011-04-15 Martin Jambor <mjambor@suse.cz>
7863
7864 PR middle-end/48601
7865 * tree-emutls.c (lower_emutls_function_body): Call
7866 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
7867 result is non-NULL.
7868
0dc33c3c
NP
78692011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
7870
7871 * c-decl.c (detect_field_duplicates): Call
7872 objc_detect_field_duplicates instead of objc_get_interface_ivars.
7873
edcdea5b
NF
78742011-04-15 Nathan Froyd <froydnj@codesourcery.com>
7875
7876 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
7877 * gimple.c (gimple_asm_clobbers_memory_p): Define.
7878 * ipa-pure-const.c (check_stmt): Call it.
7879 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
7880
8456558d
RG
78812011-04-15 Richard Guenther <rguenther@suse.de>
7882
7883 PR tree-optimization/48290
7884 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
7885 Properly decide inhibiting propagation based on the valueized
7886 operand. Do loop-closed SSA form preserving here ...
7887 (init_copy_prop): ... not here.
7888
266446be
L
78892011-04-15 H.J. Lu <hongjiu.lu@intel.com>
7890
7891 PR target/48612
7892 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
7893 (*ieee_smax<mode>3): Likewise.
7894
17465c6e
AK
78952011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7896
7897 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
7898 Replace match_operand with match_dup for the third operand in
7899 these expanders.
7900
bce204e5
MK
79012011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
7902
7903 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
7904 to track processing of conditionals. Update all callers.
7905 (try_combine, simplify_if_then_else): Update.
7906
3162fdf4
MK
79072011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
7908
7909 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
7910 -fsched-pressure.
7911
79002a57 79122011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 7913
79002a57
GJL
7914 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
7915 instead of match_operand for operand 3.
7916
4fd3a105
RS
79172011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
7918
7919 * recog.h (insn_operand_data): Add an "allows_mem" field.
7920 * genoutput.c (output_operand_data): Initialize it.
7921 * optabs.c (maybe_legitimize_operand_same_code): New function.
7922 (maybe_legitimize_operand): Use it when matching the original
7923 op->value.
7924
ad19c4be
EB
79252011-04-15 Eric Botcazou <ebotcazou@adacore.com>
7926
7927 * gimplify.c: Fix issues in comments throughout.
7928 (voidify_wrapper_expr): Fix long line.
7929 (build_stack_save_restore): Likewise.
7930 (gimplify_loop_expr): Likewise.
7931 (gimplify_compound_lval): Likewise.
7932 (gimplify_init_ctor_eval): Likewise.
7933 (gimplify_modify_expr_rhs): Likewise.
7934 (omp_notice_threadprivate_variable): Likewise.
7935
b25aa0e8 79362011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 7937
b25aa0e8
EB
7938 * cfgexpand.c (expand_call_stmt): Convert the function type to the
7939 original one if this is not a builtin function.
e7925582 7940
09db7afe
JJ
79412011-04-14 Jakub Jelinek <jakub@redhat.com>
7942
7943 PR target/48605
7944 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
7945 offset it as needed based on top 2 bits in operands[3], change
7946 MEM mode to SFmode and mask those 2 bits away from operands[3].
7947
c59633d9
NP
79482011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
7949
7950 * c-parser.c (c_parser_objc_protocol_definition): Updated for
7951 change from objc_declare_protocols() to objc_declare_protocol().
7952
5e60198b
UB
79532011-04-14 Uros Bizjak <ubizjak@gmail.com>
7954
7955 * config/i386/sse.md (sse4_1): New mode attribute.
7956 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
7957 avx_blend<ssemodesuffix><avxmodesuffix> and
7958 sse4_1_blend<ssemodesuffix> using VF mode iterator.
7959 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
7960 avx_blendv<ssemodesuffix><avxmodesuffix> and
7961 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
7962 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
7963 avx_dp<ssemodesuffix><avxmodesuffix> and
7964 sse4_1_dp<ssemodesuffix> using VF mode iterator.
7965 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
7966 (sse4_1_packusdw): Merge with *avx_packusdw.
7967 (sse4_1_pblendvb): Merge with *avx_pblendvb.
7968 (sse4_1_pblendw): Merge with *avx_pblendw.
7969 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
7970 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
7971 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
7972 VF mode iterator.
7973 (sse4_1_round<ssescalarmodesuffix>): Merge with
7974 *avx_round<ssescalarmodesuffix>.
7975 (aesenc): Merge with *avx_aesenc.
7976 (aesenclast): Merge with *avx_aesenclast.
7977 (aesdec): Merge with *avx_aesdec.
7978 (aesdeclast): Merge with *avx_aesdeclast.
7979 (pclmulqdq): Merge with *pclmulqdq.
7980 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
7981 New predicate.
7982 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
7983
6f197850
L
79842011-04-14 H.J. Lu <hongjiu.lu@intel.com>
7985
7986 PR middle-end/48608
7987 * cfgexpand.c (get_decl_align_unit): Renamed to ...
7988 (align_local_variable): This. Update DECL_ALIGN.
7989 (add_stack_var): Updated.
7990 (expand_one_stack_var): Likewise.
7991
4a5ba3ed
RG
79922011-04-14 Richard Guenther <rguenther@suse.de>
7993
7994 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
7995 Remove.
7996 (dse_initialize_block_local_data, dse_leave_block,
7997 record_voperand_set, get_stmt_uid): Likewise.
7998 (dse_possible_dead_store_p): Allow any kind of killing stmt.
7999 (dse_optimize_stmt): Remove voperand set handling code.
8000 Simplify and improve to handle any kind of killing stmt.
8001 (dse_record_phi): Remove.
8002 (dse_enter_block): Simplify.
8003 (tree_ssa_dse): Likewise.
8004 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
8005
10a5dd5d
JH
80062011-04-14 Jan Hubicka <jh@suse.cz>
8007
8008 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
8009 * cgraph.h (struct inline_summary): Move to ipa-inline.h
8010 (cgraph_local_info): Remove inline_summary.
8011 * ipa-cp.c: Include ipa-inline.h.
8012 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
8013 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
8014 accesor.
8015 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
8016 (input_overwrite_node): Do not set inline summary.
8017 (input_node): Do not stream inline summary.
8018 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
8019 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
8020 growth; we do not have inline parameters computed for that anyway.
8021 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
8022 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
8023 (inline_summary_t): New type and VECtor.
8024 (debug_inline_summary, dump_inline_summaries): Declare.
8025 (inline_summary): Use VOCtor.
8026 (estimate_edge_growth): Kill hack computing call stmt size directly.
8027 * lto-section-in.c (lto_section_name): Add inline section.
8028 * ipa-inline-analysis.c: Include lto-streamer.h
8029 (node_removal_hook_holder, node_duplication_hook_holder): New holders
8030 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
8031 (inline_summary_vec): Define.
8032 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
8033 dump_inline_summaries): New functions.
5e60198b
UB
8034 (estimate_function_body_sizes): Properly compute size/time of outgoing
8035 calls.
8036 (compute_inline_parameters): Alloc inline_summary; do not compute
8037 size/time of incomming calls.
10a5dd5d
JH
8038 (estimate_edge_time): Avoid missing time summary hack.
8039 (inline_read_summary): Read inline summary info.
8040 (inline_write_summary): Write inline summary info.
8041 (inline_free_summary): Free all hooks and inline summary vector.
8042 * lto-streamer.h: Add LTO_section_inline_summary section.
8043 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
8044 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
8045
b602d918
RS
80462011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8047
8048 * tree-vectorizer.h (vect_strided_store_supported): Add a
8049 HOST_WIDE_INT argument.
8050 (vect_strided_load_supported): Likewise.
8051 (vect_permute_store_chain): Return void.
8052 (vect_transform_strided_load): Likewise.
8053 (vect_permute_load_chain): Delete.
8054 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
8055 count argument. Check that the count is a power of two.
8056 (vect_strided_load_supported): Likewise.
8057 (vect_permute_store_chain): Return void. Update after above changes.
8058 Assert that the access is supported.
8059 (vect_permute_load_chain): Likewise.
8060 (vect_transform_strided_load): Return void.
8061 * tree-vect-stmts.c (vectorizable_store): Update calls after
8062 above interface changes.
8063 (vectorizable_load): Likewise.
8064 (vect_analyze_stmt): Don't check for strided powers of two here.
8065
ab4472fa
RG
80662011-04-14 Richard Guenther <rguenther@suse.de>
8067
8068 PR tree-optimization/48590
8069 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
8070 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
8071 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
8072 BUILT_IN_STACK_SAVE.
8073 * tree-ssa-dce.c (propagate_necessity): Handle
8074 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
8075
32dabdaf
NP
80762011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
8077
8078 * c-parser.c (c_parser_objc_class_declaration): Updated call to
8079 objc_declare_class.
8080
daade206
RG
80812011-04-14 Richard Guenther <rguenther@suse.de>
8082
8083 * tree.h (get_object_alignment_1): Declare.
8084 * builtins.c (get_object_alignment_1): Split out worker from ...
8085 (get_object_alignment): ... here.
8086 * fold-const.c (get_pointer_modulus_and_residue): Use
8087 get_object_alignment_1.
8088
920e8172
RS
80892011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8090
8091 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
8092 type parameter.
8093 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
8094 parameter. Generalise code to handle arrays as well as vectors.
8095 (vect_setup_realignment): Update accordingly.
8096 * tree-vect-stmts.c (vectorizable_store): Likewise.
8097 (vectorizable_load): Likewise.
8098
5ce1ee7f
RS
80992011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8100
8101 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
8102 within the per-copy loop.
8103
6438fe33 81042011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
8105
8106 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
8107 in the dump file.
8108
6438fe33 81092011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
8110
8111 * doc/options.texi (Negative): Explicitly mention that the
8112 Negative chain must be circular.
8113
61e46a7d
NF
81142011-04-14 Nathan Froyd <froydnj@codesourcery.com>
8115
8116 * function.h (block_chainon): Declare.
8117 * function.c (block_chainon): Define.
8118
43ea6502 81192011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 8120 Eric Weddington <eric.weddington@atmel.com>
748f7574 8121 Georg-Johann Lay <avr@gjlay.de>
5e60198b 8122
f60c2554 8123 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
8124 New Includes
8125 (avr_init_builtins, avr_expand_builtin,
8126 avr_expand_delay_cycles, avr_expand_unop_builtin,
8127 avr_expand_binop_builtin ): New functions.
8128 (avr_builtin_id): New enum
8129 (struct avr_builtin_description): New struct
8130 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
8131 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 8132
43ea6502 8133 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 8134 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
8135 UNSPECV_DELAY_CYCLES): new enumeration values
8136 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
8137 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
8138 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
8139 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
8140 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
8141 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
8142 "fmulsu"): New insns
5e60198b 8143
43ea6502
AS
8144 * config/avr/avr-c.c: fix line endings
8145 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
8146 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
8147 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
8148 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
8149 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 8150
43ea6502
AS
8151 * doc/extend.texi (AVR Built-in Functions): New node
8152 (Target Builtins): Add documentation of AVR
8153 built-in functions.
8154
8a9b55f3
GJL
81552011-04-14 Georg-Johann Lay <avr@gjlay.de>
8156
8157 PR target/44643
8158 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
8159 alone. Error if non-const data has attribute progmem.
8160
94bd1825
NF
81612011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8162
8163 * tree.h (struct tree_constructor): Include tree_typed instead of
8164 tree_common.
8165 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
8166 TS_TYPED instead of TS_COMMON.
8167
5e60198b 81682011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
8169
8170 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
8171 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
8172 (sse2_psadbw): Merge with *avx_psadbw.
8173 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
8174 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
8175 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
8176 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
8177 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
8178 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
8179 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
8180 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
8181 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
8182 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
8183 (ssse3_palignrti): Merge with *avx_palignrti.
8184
4b1a4694
NF
81852011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8186
8187 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
8188 * tree-ssanames.c (fini_ssanames): VEC_free it.
8189 (make_ssa_name_fn): Update for VECness of free_ssanames.
8190 (release_ssa_name, release_dead_ssa_names): Likewise.
8191 * tree.h (struct tree_ssa_name): Include tree_typed instead of
8192 tree_common.
8193 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
8194 TS_TYPED instead of TS_COMMON.
8195
4da3b811
NF
81962011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8197
8198 * postreload-gcse.c (gcse_after_reload_main): Add calls to
8199 statistics_counter_event.
8200 * tree-ssa-copyrename.c (stats): Define.
8201 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
8202 statistics_counter_event.
8203 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
8204 (bswap_stats, widen_mul_stats): Define.
8205 (insert_reciprocals): Increment rdivs_inserted.
8206 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
8207 rfuncs_inserted. Add calls to statistics_counter_event.
8208 (execute_cse_sincos_1): Increment inserted.
8209 (execute_cse_sincos): Zeroize sincos_stats. Add call to
8210 statistics_counter_event.
8211 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
8212 of bswap_stats. Add calls to statistics_counter_event.
8213 (convert_mult_to_widen): Increment widen_mults_inserted.
8214 (convert_plusminus_to_widen): Increment maccs_inserted.
8215 (convert_mult_to_fma): Increment fmas_inserted.
8216 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
8217 calls to statistics_counter_event.
8218
89fa552a
VM
82192011-04-13 Vladimir Makarov <vmakarov@redhat.com>
8220
8221 PR rtl-optimization/48455
8222 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
8223 `temp_costs->mem_cost'.
8224
03dfc36d
JH
82252011-04-13 Jan Hubicka <jh@suse.cz>
8226
8227 * ipa-inline.h: New file.
8228 * ipa-inline-analysis.c: New file. Broken out of ...
8229 * ipa-inline.c: ... this file; update toplevel comment;
8230 include ipa-inline.h
8231 (inline_summary): Move to ipa-inline.h
8232 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
8233 ipa-inline-analysis.c.
7d4f8d02
EB
8234 (cgraph_estimate_time_after_inlining): Rename to
8235 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
8236 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
8237 to estimate_edge_growth.
8238 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
8239 rename to estimate_size_after_inlining.
8240 (cgraph_mark_inline_edge): Update for new naming convention.
8241 (cgraph_check_inline_limits): Likewise.
8242 (cgraph_edge_badness): Likewise.
8243 (cgraph_decide_recursive_inlining): Likewise.
8244 (cgraph_decide_inlining_of_small_functions): Likewise.
8245 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
8246 (cgraph_estimate_growth): Rename to estimate_growth; move to
8247 ipa-inline-analysis.c.
03dfc36d
JH
8248 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
8249 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
8250 (compute_inline_parameters): Likewise.
8251 (compute_inline_parameters_for_current): Likewise.
8252 (pass_inline_parameters): Likewise.
8253 (inline_indirect_intraprocedural_analysis): Likewise.
8254 (analyze_function): Rename to inline_analyze_function; likewise.
8255 (add_new_function): Move to ipa-inline-analysis.c.
8256 (inline_generate_summary): Likewise.
8257 (inline_read_summary): Likewise.
8258 (inline_write_summary): Likewise.
8259 * Makefile.in (ipa-inline-analysis.c): New file.
8260
7673c962
RO
82612011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8262
8263 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
8264 * configure: Regenerate.
8265
9698252f
NF
82662011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8267
8268 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
8269 instead of tree_common.
8270 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
8271 Likewise.
8272 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
8273 TS_TYPED rather than TS_COMMON.
8274 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
8275
3a7bfdd5
GJL
82762011-04-01 Georg-Johann Lay <avr@gjlay.de>
8277
8278 PR target/45263
86d83530
GJL
8279 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
8280 r20 around calls of __tablejump_elpm__
3a7bfdd5 8281
20790697
JJ
82822011-04-13 Jakub Jelinek <jakub@redhat.com>
8283
8284 PR middle-end/48591
8285 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
8286 NULL.
8287 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
8288
094d7661
BS
82892011-04-13 Bernd Schmidt <bernds@codesourcery.com>
8290
8291 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
8292 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
8293 (cfi_vec): New typedef.
8294 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
8295 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
8296 (cie_cfi_vec): New static variable.
8297 (cie_cfi_head): Delete.
8298 (add_cfi): Accept a cfi_vec * as first argument. All callers and
8299 declaration changed. Use vector rather than list operations.
8300 (new_cfi): Don't initialize the dw_cfi_next field.
8301 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
8302 rather than list operations.
8303 (lookup_cfa): Use vector rather than list operations.
8304 (output_cfis): New argument upto. Accept a cfi_vec rather than
8305 a dw_cfi_ref list head as argument. All callers changed.
8306 Iterate over the vector using upto as a maximum index.
8307 (output_all_cfis): New static function.
8308 (output_fde): Use vector rather than list operations. Use the
8309 new upto argument for output_cfis rather than manipulating a
8310 list.
8311 (dwarf2out_begin_prologue): Change initializations to match
8312 new struct members.
8313 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
8314 from the vector length rather than searching for the end of a list.
8315 Use output_all_cfis.
8316 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
8317
673a5740
NC
83182011-04-13 Nick Clifton <nickc@redhat.com>
8319
8320 * config/rx/rx.md (movmemsi): Do not use this pattern when
8321 volatile pointers are involved.
8322
1ee8b298
UB
83232011-04-13 Uros Bizjak <ubizjak@gmail.com>
8324
8325 * config/i386/sse.md (pinsrbits): Remove.
8326 (sse2_packsswb): Merge with *avx_packsswb.
8327 (sse2_packssdw): Merge with *avx_packssdw.
8328 (sse2_packuswb): Merge with *avx_packuswb.
8329 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
8330 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
8331 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
8332 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
8333 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
8334 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
8335 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
8336 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
8337 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
8338 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
8339 (sse2_loadld): Merge with *avx_loadld.
8340 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
8341 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
8342 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
8343 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
8344 (vec_concatv2di): Merge with *vec_concatv2di_avx.
8345
81f653d6
NF
83462011-04-12 Nathan Froyd <froydnj@codesourcery.com>
8347
8348 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
8349 calling TREE_CHAIN.
8350 * print-tree.c (print_node): Likewise.
8351 * tree-inline.c (copy_tree_r): Likewise.
8352 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
8353 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
8354 instead of TS_COMMON.
8355 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
8356 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
8357 (copy_node_stat): Zero TREE_CHAIN only if necessary.
8358 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
8359 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
8360 ...and these...
8361 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
8362 * tree.h: ...here.
8363 (TREE_CHAIN): Check for a TS_COMMON structure.
8364 (TREE_TYPE): Check for a TS_TYPED structure.
8365
748f7574 83662011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
8367
8368 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
8369 cgraph_get_create_node instead of cgraph_node.
8370
eb345401
NP
83712011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
8372
8373 * c-parser.c (c_parser_initelt): Updated call to
8374 objc_build_message_expr.
8375 (c_parser_postfix_expression): Likewise.
8376
a6c46762
KT
83772011-04-12 Kai Tietz <ktietz@redhat.com>
8378
8379 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
8380 MASK_MS_BITFIELD_LAYOUT bit.
8381
b4ccfed9
JJ
83822011-04-12 Jakub Jelinek <jakub@redhat.com>
8383
8384 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
8385 assert it is always true.
8386 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
8387 moves.
8388
0d8a2528
NP
83892011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
8390
8391 * c-parser.c (c_lex_one_token): Rewritten conditional used when
8392 compiling Objective-C to be more efficient.
8393
06bd234a
AF
83942011-04-12 Axel Freyn <axel-freyn@gmx.de>
8395
8396 * opts-common.c (decode_cmdline_options_to_array): Remove variable
8397 argv_copied.
8398
28569ac3
RS
83992011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8400
8401 * recog.h, genoutput.c, optabs.c: Revert last patch.
8402
ae59e00d
RR
84032011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8404
81b1e7eb
UB
8405 PR target/48090
8406 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 8407
cff1b7e0
RS
84082011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8409
8410 * recog.h (insn_operand_data): Add an "allows_mem" field.
8411 * genoutput.c (output_operand_data): Initialize it.
8412 * optabs.c (maybe_legitimize_operand_same_code): New function.
8413 (maybe_legitimize_operand): Use it when matching the original
8414 op->value.
8415
77059241
RS
84162011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8417
8418 * genpreds.c (process_define_predicate): Move most processing
8419 to gensupport.c. Continue to validate the expression.
8420 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
8421 (process_define_predicate): Move processing to gensupport.c.
8422 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
8423 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
8424 (compute_predicate_codes): Moved from genrecog.c. Add lineno
8425 argument.
8426 (valid_predicate_name_p): New function, split out from old
8427 genpreds.c:process_define_predicate.
8428 (process_define_predicate): New function, combining code from
8429 old genpreds.c and genrecog.c functions.
8430 (process_rtx): Call it for DEFINE_PREDICATE and
8431 DEFINE_SPECIAL_PREDICATE.
8432
6308e208
RS
84332011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8434
8435 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
8436 size of a '%A' memory reference.
8437 (T_DREG, T_QREG): New neon_builtin_type_bits.
8438 (arm_init_neon_builtins): Assert that the load and store operands
8439 are neon_struct_operands.
8440 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
8441 (NEON_ARG_MEMORY): New builtin_arg.
8442 (neon_dereference_pointer): New function.
8443 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
8444 Handle NEON_ARG_MEMORY.
8445 (arm_expand_neon_builtin): Update after above interface changes.
8446 Use NEON_ARG_MEMORY for loads and stores.
8447 * config/arm/predicates.md (neon_struct_operand): New predicate.
8448 * config/arm/iterators.md (V_two_elem): Tweak formatting.
8449 (V_three_elem): Use BLKmode for accesses that have no associated mode.
8450 (V_four_elem): Tweak formatting.
8451 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
8452 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
8453 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
8454 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
8455 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
8456 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
8457 (neon_vst4<mode>): Replace pointer operand with a memory operand.
8458 Use %A in the output template.
8459 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
8460 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
8461 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
8462 the width of the memory access. Remove post-increment.
8463 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
8464
e5db8f2f
NC
84652011-04-12 Nick Clifton <nickc@redhat.com>
8466
8467 * config/v850/v850.c (expand_prologue): Do not use the CALLT
8468 instruction for interrupt handlers if the target is the basic V850
8469 architecture.
8470 (expand_epilogue): Likewise.
8471
74f091d6
JJ
84722011-04-12 Jakub Jelinek <jakub@redhat.com>
8473
8474 PR rtl-optimization/48549
8475 * combine.c (propagate_for_debug): Also stop after BB_END of
8476 this_basic_block. Process LAST and just stop processing after it.
8477 (combine_instructions): If last_combined_insn has been deleted,
8478 set last_combined_insn to its PREV_INSN.
8479
f20ca725
RG
84802011-04-12 Richard Guenther <rguenther@suse.de>
8481
8482 PR tree-optimization/46076
8483 * gimple.h (struct gimple_statement_call): Add fntype field.
8484 (gimple_call_fntype): Adjust.
8485 (gimple_call_set_fntype): New function.
8486 * gimple.c (gimple_build_call_1): Set the call function type.
8487 * gimplify.c (gimplify_call_expr): Preserve the function
8488 type the frontend used for the call.
8489 (gimplify_modify_expr): Likewise.
8490 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
8491 function type.
8492 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
8493 function type.
8494 * tree-ssa.c (useless_type_conversion_p): Function pointer
8495 conversions are useless.
8496
a358e188
MJ
84972011-04-12 Martin Jambor <mjambor@suse.cz>
8498
8499 * cgraph.h (cgraph_node): Remove function declaration.
8500 (cgraph_create_node): Declare.
8501 (cgraph_get_create_node): Likewise.
8502 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
8503 Updated all callers.
8504 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
8505 the decl does not already exist. Call cgraph_get_create_node instead
8506 of cgraph_node.
8507 (cgraph_get_create_node): New function.
8508 (cgraph_same_body_alias): Update comment.
8509 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
8510 assert it does not return NULL.
8511 (cgraph_update_edges_for_call_stmt): Likewise.
8512 (cgraph_clone_edge): Likewise.
8513 (cgraph_create_virtual_clone): Likewise.
8514 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
8515 instead of cgraph_node.
8516 (cgraph_add_new_function): Call cgraph_create_node or
8517 cgraph_get_create_node instead of cgraph_node.
8518 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
8519 instead of cgraph_node.
8520 (record_eh_tables): Likewise.
8521 (mark_address): Likewise.
8522 (mark_load): Likewise.
8523 (build_cgraph_edges): Call cgraph_get_create_node instead
8524 of cgraph_node.
8525 (rebuild_cgraph_edges): Likewise.
8526 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
8527 instead of cgraph_node.
8528 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
8529 cgraph_node.
8530 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
8531 cgraph_create_node instead of cgraph_node.
8532 * c-decl.c (finish_function): Call cgraph_get_create_node instead
8533 of cgraph_node.
8534 * lto-cgraph.c (input_node): Likewise.
8535 * lto-streamer-in.c (input_function): Likewise.
8536 * varasm.c (mark_decl_referenced): Likewise.
8537 (assemble_alias): Likewise.
8538
fe660d7b
MJ
85392011-04-12 Martin Jambor <mjambor@suse.cz>
8540
8541 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
8542 instead of cgraph_node and assert it does not return NULL.
8543 * lto-streamer-in.c (lto_read_body): Likewise.
8544 * omp-low.c (new_omp_context): Likewise.
8545 (create_task_copyfn): Likewise.
8546 * tree-emutls.c (lower_emutls_function_body): Likewise.
8547 * matrix-reorg.c (transform_allocation_sites): Likewise.
8548
bae5cddf
JJ
85492011-04-12 Jakub Jelinek <jakub@redhat.com>
8550
8551 PR c/48552
8552 * c-typeck.c (build_asm_expr): Error out on attempts to use
8553 void type outputs or inputs for constraints that allow reg or
8554 don't allow memory.
8555
06eb52ca
CLT
85562011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
8557 Richard Earnshaw <rearnsha@arm.com>
8558
8559 PR target/48250
8560 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
8561 to use sign-magnitude offsets. Reject unsupported unaligned
8562 cases. Add detailed description in comments.
8563 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
8564 condition from TARGET_32BIT to TARGET_ARM.
8565
648a616b
NF
85662011-04-11 Nathan Froyd <froydnj@codesourcery.com>
8567
8568 * tree.h (struct typed_tree): New.
8569 (struct tree_common): Include it instead of tree_base.
8570 (TREE_TYPE): Update for new location of type field.
8571 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
8572 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
8573 (union tree_node): Add typed field.
8574 * treestruct.def (TS_TYPED): New.
8575 * lto-streamer.c (check_handled_ts_structures): Handle it.
8576 * tree.c (MARK_TS_TYPED): New macro.
8577 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
8578
1e6d1da0
EB
85792011-04-11 Eric Botcazou <ebotcazou@adacore.com>
8580
8581 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
8582 (force_nonfallthru): Do not alter the loop nest if no basic block
8583 was created.
8584
85852011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
8586
8587 * config/i386/sse.md (VI): New mode iterator.
8588 (SSEMODEI): Remove.
8589 (AVX256MODEI): Ditto.
8590 (AVXMODEF4P): Ditto.
8591 (avxvecpsmode): Ditto.
8592 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
8593 (sse2_andnot<mode>3): New expander.
8594 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
8595 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
8596 (<any_logic:code><mode>3): Use VI mode iterator.
8597 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
8598 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
8599 (*andnottf3): Handle AVX three-operand constraints.
8600 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
8601
b1372d5d 86022011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 8603 Robert Millan <rmh@gnu.org>
b1372d5d
JM
8604
8605 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
8606 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
8607 GNU_USER_DYNAMIC_LINKER64): Define.
8608 (REG_NAME): Don't undefine.
8609 (MD_UNWIND_SUPPORT): Undefine.
8610 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
8611 (REG_NAME): Don't undefine.
8612 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 8613 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 8614
761c0c6e
JM
86152011-04-11 Joseph Myers <joseph@codesourcery.com>
8616
8617 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
8618 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
8619
26e0228f
XDL
86202011-04-11 Xinliang David Li <davidxl@google.com>
8621
8622 * value-profile.c (check_ic_target): New function.
8623 (gimple_ic_transform): Sanity check indirect call target.
8624 * gimple-low.c (gimple_check_call_args): Interface change.
8625 (gimple_check_call_matching_types): New function.
8626 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
8627
86282011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
8629
8630 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
8631 tree-pretty-print.h & realmpfr.h.
8632
a58dfa49
VM
86332011-04-11 Vladimir Makarov <vmakarov@redhat.com>
8634
8635 PR middle-end/48464
8636 * ira.c (setup_pressure_classes): Fix typo in loop condition.
8637 (setup_allocno_and_important_classes): Ditto.
8638
107fd1c1
JM
86392011-04-11 Joseph Myers <joseph@codesourcery.com>
8640
8641 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
8642 GNU_USER_DYNAMIC_LINKER.
8643 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
8644 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8645 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
8646 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
8647 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
8648 GNU_USER_TARGET_OS_CPP_BUILTINS.
8649 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
8650 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8651 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
8652 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8653 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
8654 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
8655 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
8656 GNU_USER_TARGET_OS_CPP_BUILTINS.
8657 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8658 GNU_USER_DYNAMIC_LINKER.
8659 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8660 GNU_USER_TARGET_OS_CPP_BUILTINS.
8661 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
8662 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8663 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
8664 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8665 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
8666 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
8667 GNU_USER_DYNAMIC_LINKER64): Remove.
8668 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
8669 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8670 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8671 GNU_USER_DYNAMIC_LINKER.
8672 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8673 GNU_USER_TARGET_OS_CPP_BUILTINS.
8674 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8675 GNU_USER_TARGET_OS_CPP_BUILTINS.
8676 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
8677 to GNU_USER_TARGET_OS_CPP_BUILTINS.
8678 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8679 GNU_USER_TARGET_OS_CPP_BUILTINS.
8680 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
8681 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
8682 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
8683 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
8684 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8685 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8686 GNU_USER_DYNAMIC_LINKER.
8687 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
8688 GNU_USER_TARGET_OS_CPP_BUILTINS.
8689 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
8690 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8691 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8692 GNU_USER_DYNAMIC_LINKER.
8693 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
8694 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8695 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
8696 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8697 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8698 GNU_USER_DYNAMIC_LINKER.
8699 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
8700 GNU_USER_DYNAMIC_LINKERN32.
8701 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
8702 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
8703 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
8704 GNU_USER_DYNAMIC_LINKER32.
8705 * config/mn10300/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/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
8710 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8711 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
8712 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 8713 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
8714 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
8715 GNU_USER_DYNAMIC_LINKER32.
8716 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
8717 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
8718 GNU_USER_DYNAMIC_LINKER.
8719 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
8720 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8721 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
8722 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
8723 GNU_USER_DYNAMIC_LINKER64.
8724 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
8725 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8726 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8727 GNU_USER_DYNAMIC_LINKER.
8728 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
8729 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8730 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8731 GNU_USER_DYNAMIC_LINKER.
8732 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
8733 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8734 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
8735 GNU_USER_DYNAMIC_LINKER32.
8736 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
8737 GNU_USER_DYNAMIC_LINKER64.
8738 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
8739 GNU_USER_DYNAMIC_LINKER64.
8740 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
8741 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8742 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
8743 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 8744 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 8745
e24609cf
JM
87462011-04-11 Joseph Myers <joseph@codesourcery.com>
8747
8748 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
8749 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
8750 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
8751 GNU_USER_DYNAMIC_LINKER.
8752 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
8753 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
8754 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
8755 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
8756 GNU_USER_DYNAMIC_LINKER64.
8757 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
8758 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
8759 GNU_USER_LINK_EMULATION.
8760 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
8761 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
8762 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
8763 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
8764 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
8765 CPP_SPEC, CC1_SPEC): Remove.
8766 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
8767 (GNU_USER_DYNAMIC_LINKER): Define.
8768 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
8769 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
8770 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
8771 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
8772 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
8773 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
8774 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
8775 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
8776 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
8777 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
8778 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
8779 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
8780 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
8781 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
8782 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
8783 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
8784 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8785 GNU_USER_DYNAMIC_LINKER.
8786 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8787 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
8788 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8789 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
8790 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8791 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
8792 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
8793 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
8794 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 8795 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 8796
b8ce4e94
KT
87972011-04-11 Kai Tietz <ktietz@redhat.com>
8798
8799 PR target/9601
8800 PR target/11772
8801 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
8802 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
8803 comment.
8804 (ix86_is_msabi_thiscall): Removed.
8805 (ix86_is_type_thiscall): Likewise.
8806 (ix86_get_callcvt): New function.
8807 (ix86_comp_type_attributes): Simplify check.
8808 (ix86_function_regparm): Use ix86_get_callcvt for calling
8809 convention attribute checks.
8810 (ix86_return_pops_args): Likewise.
8811 (ix86_static_chain): Likewise.
8812 (x86_this_parameter): Likewise.
8813 (x86_output_mi_thunk): Likewise.
8814 (ix86_function_type_abi): Optimize check for types without attributes.
8815 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
8816 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
8817 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
8818 by flag-values.
8819 (IX86_BASE_CALLCVT): Helper macro.
8820 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
8821 Use ix86_get_callcvt for calling convention attribute checks and avoid
8822 symbol-decoration for stdcall in TARGET_RTD case.
8823 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
8824 Likewise.
8825 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
8826 for declaration.
8827
798dd0ba
UB
88282011-04-11 Uros Bizjak <ubizjak@gmail.com>
8829
8830 * config/i386/sse.md (VI_128): New mode iterator.
8831 (VI12_128): Rename from SSEMODE12.
8832 (VI14_128): Rename from SSEMODE14.
8833 (VI124_128): New mode iterator.
8834 (VI24_128): Rename from SSEMODE248.
8835 (VI248_128): Rename from SSEMODE248.
8836 (SSEMODE124C8): Remove.
8837 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
8838 (*sse2_<plusminus_insn><mode>3): Merge with
8839 *avx_<plusminus_insn><mode>3.
8840 (*mulv8hi3): Merge with *avx_mulv8hi3.
8841 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
8842 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
8843 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
8844 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
8845 (ashr<mode>3): Merge with *avx_ashr<mode>3.
8846 (lshr<mode>3): Merge with *avx_lshr<mode>3.
8847 (ashl<mode>3): Merge with *avx_ashl<mode>3.
8848 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
8849 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
8850 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8851 (*<smaxmin:code>v8hi3): Ditto.
8852 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
8853 (*<smaxmin:code>v16qi3): Ditto.
8854 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
8855 (*sse2_eq<mode>3): Ditto.
8856 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
8857 (*sse2_gt<mode>3): Ditto.
8858 (vcondv2di): Split out of vcond<mode>.
8859 (vconduv2di): Split out of vcondu<mode>.
8860
956011be
RG
88612011-04-11 Richard Guenther <rguenther@suse.de>
8862
8863 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
8864 before calling tree_low_cst.
8865
e6313a78
RG
88662011-04-11 Richard Guenther <rguenther@suse.de>
8867
8868 * stor-layout.c (layout_type): Compute all array index size operations
8869 in the original type.
8870 (initialize_sizetypes): Add comment.
8871 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
8872
e69d7376
JM
88732011-04-11 Joseph Myers <joseph@codesourcery.com>
8874
8875 * common.opt (Tbss=, Tdata=, Ttext=): New options.
8876
9f9ebcdf
MJ
88772011-04-11 Martin Jambor <mjambor@suse.cz>
8878
8879 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
8880 of cgraph_node, handle NULL return value.
8881 (cgraph_global_info): Likewise.
8882 (cgraph_rtl_info): Likewise.
8883 * tree-inline.c (estimate_num_insns): Likewise.
8884 * gimplify.c (unshare_body): Likewise.
8885 (unvisit_body): Likewise.
8886 (gimplify_body): Likewise.
8887 * predict.c (optimize_function_for_size_p): Likewise.
8888 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8889 (call_may_clobber_ref_p_1): Likewise.
8890 * varasm.c (function_section_1): Likewise.
8891 (assemble_start_function): Likewise.
8892
581985d7
MJ
88932011-04-11 Martin Jambor <mjambor@suse.cz>
8894
8895 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
8896 of cgraph_node.
8897 * final.c (rest_of_clean_state): Likewise.
8898 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
8899 * passes.c (pass_init_dump_file): Likewise.
8900 (execute_all_ipa_transforms): Likewise.
8901 (function_called_by_processed_nodes_p): Likewise.
8902 * predict.c (maybe_hot_frequency_p): Likewise.
8903 (probably_never_executed_bb_p): Likewise.
8904 (compute_function_frequency): Likewise.
8905 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
8906 (unnest_nesting_tree_1): Likewise.
8907 (lower_nested_functions): Likewise.
8908 * tree-optimize.c (execute_fixup_cfg): Likewise.
8909 (tree_rest_of_compilation): Likewise.
8910 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
8911 * tree-sra.c (ipa_early_sra): Likewise.
8912 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
8913 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
8914 * ipa.c (record_cdtor_fn): Likewise.
8915 * ipa-inline.c (cgraph_early_inlining): Likewise.
8916 (compute_inline_parameters_for_current): Likewise.
8917 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
8918 * ipa-pure-const.c (local_pure_const): Likewise.
8919 * ipa-split.c (split_function): Likewise.
8920 (execute_split_functions): Likewise.
8921 * cgraphbuild.c (build_cgraph_edges): Likewise.
8922 (rebuild_cgraph_edges): Likewise.
8923 (cgraph_rebuild_references): Likewise.
8924 (remove_cgraph_callee_edges): Likewise.
8925 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
8926 (verify_cgraph_node): Likewise.
8927 (cgraph_analyze_functions): Likewise.
8928 (cgraph_preserve_function_body_p): Likewise.
8929 (save_inline_function_body): Likewise.
8930 (save_inline_function_body): Likewise.
8931 * tree-inline.c (copy_bb): Likewise.
8932 (optimize_inline_calls): Likewise.
8933
57dbdc5a
MJ
89342011-04-11 Martin Jambor <mjambor@suse.cz>
8935
8936 PR tree-optimization/48195
8937 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
8938 ipa_check_create_edge_args.
8939 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
8940 ipa_check_create_edge_args.
8941 * ipa-inline.c (inline_generate_summary): Do not call
8942 ipa_check_create_node_params and ipa_check_create_edge_args.
8943 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
8944 ipa_check_create_edge_args.
8945
d108e679
AS
89462011-04-09 Anatoly Sokolov <aesok@post.ru>
8947
8948 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
8949 instead of loop.
8950 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
8951 * function.c (record_hard_reg_sets): Likewise.
8952 * ira.c (compute_regs_asm_clobbered): Likewise.
8953 * sched-deps.c (sched_analyze_1): Likewise.
8954 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
8955
3411bc59
XDL
89562011-04-09 Xinliang David Li <davidxl@google.com>
8957
8958 PR tree-optimization/PR48484
8959 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
8960 has_valid_pred lazily
8961
b365495a
DS
89622011-04-09 Duncan Sands <baldrick@free.fr>
8963
8964 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
8965
68bc509a
EB
89662011-04-08 Eric Botcazou <ebotcazou@adacore.com>
8967
8968 * combine.c (combine_validate_cost): Adjust comments. Set registered
8969 cost of I0 to zero at the end, if any.
8970
041e059f
XDL
89712011-04-08 Xinliang David Li <davidxl@google.com>
8972
68bc509a
EB
8973 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
8974 to insane profile data.
041e059f 8975
444b3995
XDL
89762011-04-08 Xinliang David Li <davidxl@google.com>
8977
8978 * ipa-cp.c (ipcp_update_profiling): Correct
8979 negative scale factor due to insane profile data.
8980
6a801cf2
XDL
89812011-04-08 Xinliang David Li <davidxl@google.com>
8982
8983 * final.c (dump_basic_block_info): New function.
8984 (final): Dump basic block.
8985 (final_scan_insn): Remove old dump.
8986
d5f3624e
SK
89872011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
8988
68bc509a
EB
8989 PR target/47829
8990 * config.gcc (i386-*-freebsd): Disable unwind table generation for
8991 crtbegin/crtend.
d5f3624e 8992
42821aff
MM
89932011-04-08 Michael Matz <matz@suse.de>
8994
8995 PR middle-end/48389
8996 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
8997 functions.
8998 (rebuild_jump_labels): Call rebuild_jump_labels_1.
8999 * rtl.h (rebuild_jump_labels_chain): Declare.
9000 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
9001 insns inserted on edges.
9002
ad7be009
JM
90032011-04-08 Joseph Myers <joseph@codesourcery.com>
9004
9005 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
9006 * config/arm/arm-arches.def: New.
9007 * config/arm/arm-opts.h: New.
9008 * config/arm/genopt.sh: New.
9009 * config/arm/arm-tables.opt: New (generated).
9010 * config/arm/arm.c (arm_handle_option, arm_target_help,
9011 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
9012 (all_architectures): Get most table contents from arm-arches.def.
9013 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
9014 arm_selected_tune here.
9015 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
9016 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
9017 (march=, mcpu=, mtune=): Use Enum and Var.
9018 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
9019 (arm.o): Update dependencies.
ecbb6fb7 9020
42821aff 90212011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
9022
9023 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
9024 of header_file.
9025 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
9026 (write_typed_alloc_defns): Likewise.
9027 (main): Calls write_typed_alloc_defns with output_header.
9028
8d189b3f
VM
90292011-04-08 Vladimir Makarov <vmakarov@redhat.com>
9030
68bc509a 9031 PR inline-asm/48435
8d189b3f
VM
9032 * ira-color.c (setup_profitable_hard_regs): Add comments.
9033 Don't take prohibited hard regs into account.
9034 (setup_conflict_profitable_regs): Rename to
9035 get_conflict_profitable_regs.
9036 (check_hard_reg_p): Check prohibited hard regs.
9037
44f370bf
NF
90382011-04-08 Nathan Froyd <froydnj@codesourcery.com>
9039
9040 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
9041 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
9042 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
9043
483d7ad3
JDA
90442011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9045
9046 PR target/48366
9047 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 9048 move from floating point to shift amount register.
483d7ad3
JDA
9049 (emit_move_sequence): Remove secondary reload support for floating
9050 point to shift amount amount register copies.
9051 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
9052 amount register copies.
9053 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
9054 register, return false if mode isn't a scalar integer mode.
9055 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
9056
97e03fa1
RG
90572011-04-08 Richard Guenther <rguenther@suse.de>
9058
9059 * gimple.c (gimple_call_flags): Remove kludge.
9060
9d40778b
AM
90612011-04-08 Alexander Monakov <amonakov@ispras.ru>
9062
9063 * sel-sched.c (sel_region_init): Move call to
9064 sel_setup_region_sched_flags after setup_current_loop_nest.
9065
19ac7892
AB
90662011-04-08 Andrey Belevantsev <abel@ispras.ru>
9067
9068 PR rtl-optimization/48272
19ac7892
AB
9069 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
9070 init_insn_reg_pressure_info. Adjust a caller.
9071 * sched-int.h (init_insn_reg_pressure_info): Declare.
9072 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
9073 when sched-pressure is enabled.
9074
0f8c63cc
RG
90752011-04-08 Richard Guenther <rguenther@suse.de>
9076
9077 * gimple.c (gimple_set_modified): Do not queue calls to
9078 MODIFIED_NORETURN_CALLS here ...
9079 * tree-ssa-operands.c (update_stmt_operands): ... but here.
9080
5e5a425e
RG
90812011-04-08 Richard Guenther <rguenther@suse.de>
9082
9083 PR lto/48467
9084 * toplev.c (lang_dependent_init): Do not open asm_out_file
9085 in WPA mode, nor perform debug machinery initialization.
9086 (finalize): Do not unlink asm_out_file in WPA mode.
9087
9bfc434b
RG
90882011-04-08 Richard Guenther <rguenther@suse.de>
9089
9090 * gimple.h (gimple_call_fntype): New function.
9091 (gimple_call_return_type): Use it.
9092 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
9093 * gimple-low.c (gimple_check_call_args): Likewise.
9094 * gimple.c (gimple_call_flags): Likewise.
9095 (gimple_call_arg_flags): Likewise.
9096 (gimple_call_return_flags): Likewise.
9097 * tree-cfg.c (verify_gimple_call): Likewise.
9098 (do_warn_unused_result): Likewise.
9099 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
9100 * value-prof.c (gimple_ic_transform): Fix fndecl check.
9101
7c1f0b40
DM
91022011-04-08 Dmitry Melnik <dm@ispras.ru>
9103
9104 PR rtl-optimization/48235
9105 * sel-sched.c (code_motion_process_successors): Recompute the last
9106 insn in basic block if control flow changed.
9107 (code_motion_path_driver): Ditto. Recompute the first insn as well.
9108 Update condition for ilist_remove.
9109
ea4d630f
AM
91102011-04-08 Alexander Monakov <amonakov@ispras.ru>
9111
9112 PR rtl-optimization/48302
9113 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
9114 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
9115 it to record added preheader blocks.
9116 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
9117 on to sel_add_loop_preheaders.
9118 (sel_region_init): Move call to setup_current_loop_nest after
9119 sel_init_bbs.
9120
07643d76
AM
91212011-04-08 Alexander Monakov <amonakov@ispras.ru>
9122
9123 PR target/48273
9124 * cfgloop.h (loop_has_exit_edges): New helper.
9125 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
9126 non-clonable.
9127 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
9128 that have no exit edges.
9129
1f3b2b4e
AM
91302011-04-08 Alexander Monakov <amonakov@ispras.ru>
9131
9132 PR rtl-optimization/48442
9133 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
9134 all callers. Adjust assert.
9135
554f1948
JJ
91362011-04-08 Jakub Jelinek <jakub@redhat.com>
9137
9138 PR tree-optimization/48377
9139 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
9140 is_packed to true even for types with smaller TYPE_ALIGN than
9141 TYPE_SIZE.
9142
ddf72388
RG
91432011-04-08 Richard Guenther <rguenther@suse.de>
9144
9145 PR bootstrap/48513
9146 * doc/tm.texi: Re-generate.
9147
0c27e2d8
WG
91482011-04-08 Wei Guozhi <carrot@google.com>
9149
9150 PR target/47855
9151 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
9152 * config/arm/arm.c (arm_attr_length_push_multi): New function.
9153 * config/arm/arm.md (*push_multi): Change the length computation to
9154 call a C function.
9155
07c5f94e
AS
91562011-04-08 Anatoly Sokolov <aesok@post.ru>
9157
9158 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
9159 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
9160 * doc/tm.texi: Regenerate.
9161 * system.h (ASM_OUTPUT_BSS): Poison.
9162 * varasm.c (asm_output_bss): Remove function.
9163 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 9164
07c5f94e
AS
9165 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
9166 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
9167 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
9168 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9169 Likewise.
9170 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9171 Likewise.
9172 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9173 Likewise.
9174 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
9175
5f2c36e1
JM
91762011-04-07 Joseph Myers <joseph@codesourcery.com>
9177
9178 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
9179 EnumValue lines.
9180
39e7722b
JM
91812011-04-07 Joseph Myers <joseph@codesourcery.com>
9182
9183 * config/m68k/m68k.c (m68k_handle_option): Don't handle
9184 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
9185 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
9186 OPT_mcpu32.
9187 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
9188 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
9189 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
9190 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
9191 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
9192 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
9193 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
9194 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
9195 options. Don't map other m68k options manually. Don't handle
9196 old-style options as canonical.
9197 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 9198 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 9199
cf103ca4
EB
92002011-04-07 Eric Botcazou <ebotcazou@adacore.com>
9201
9202 * basic-block.h (force_nonfallthru): Move to...
9203 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
9204 (force_nonfallthru): ...here.
9205 * cfghooks.c (force_nonfallthru): New function.
9206 * cfgrtl.c (force_nonfallthru): Rename into...
9207 (rtl_force_nonfallthru): ...this.
9208 (commit_one_edge_insertion): Do not set AUX field.
9209 (commit_edge_insertions): Do not discover new basic blocks.
9210 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
9211 (cfg_layout_rtl_cfg_hooks): Likewise.
9212 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
9213 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
9214 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
9215
14431f58
AS
92162011-04-07 Anatoly Sokolov <aesok@post.ru>
9217
9218 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
9219 Remove macros.
9220
3729983c
UB
92212011-04-07 Uros Bizjak <ubizjak@gmail.com>
9222
9223 * config/i386/sse.md: Update copyright year.
9224 (avxcvtvecmode): Remove.
9225 (sse_movhlps): Merge with *avx_movhlps.
9226 (sse_movlhps): Merge with *avx_movlhps.
9227 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
9228 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
9229 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
9230 (sse_loadhps): Merge with *avx_loadhps.
9231 (sse_storelps): Merge with *avx_storelps.
9232 (sse_loadlps): Merge with *avx_loadlps.
9233 (sse_movss): Merge with *avx_movss.
9234 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
9235 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
9236 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
9237 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
9238 (vec_set<mode>_0): Ditto.
9239 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
9240 (sse4_1_insertps): Merge with *avx_insertps.
9241 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
9242 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
9243 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
9244 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
9245 (sse2_storehpd): Merge with *avx_storehpd.
9246 (sse2_loadhpd): Merge with *avx_loadhpd.
9247 (sse2_loadlpd): Merge with *avx_loadlpd.
9248 (sse2_movsd): Merge with *avx_movsd.
9249 (*vec_concatv2df): Merge with *vec_concatv2df.
9250
4e626909
JJ
92512011-04-07 Jakub Jelinek <jakub@redhat.com>
9252
9253 PR debug/48343
9254 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 9255 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
9256 (try_combine): Add last_combined_insn parameter, pass it instead of
9257 i3 to propagate_for_debug.
9258
3729983c 92592011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
9260
9261 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
9262 to handle MDR <-> data register transfers.
9263 (movhi_internal): Likewise.
9264
20c03367
AM
92652011-04-07 Alan Modra <amodra@gmail.com>
9266
9267 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
9268 previous stack info.
9269
bf22920b
TV
92702011-04-07 Tom de Vries <tom@codesourcery.com>
9271
9272 PR target/43920
9273 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
9274 flow_find_cross_jump. Swap variables to implement backward replacement.
9275 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
9276
823918ae
TV
92772011-04-07 Tom de Vries <tom@codesourcery.com>
9278
9279 PR target/43920
9280 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
9281 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
9282 and bb2.
9283 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
9284 src1 or src2. Redirect edges to the last basic block. Update
9285 frequency and count on multiple basic blocks in case of fallthru.
823918ae 9286
472c95f5
TV
92872011-04-07 Tom de Vries <tom@codesourcery.com>
9288
9289 PR target/43920
9290 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
9291 function.
3729983c
UB
9292 (old_insns_match_p): Change return type. Replace return false/true
9293 with return dir_none/dir_both. Use can_replace_by.
9294 (flow_find_cross_jump): Add dir_p parameter. Init replacement
9295 direction from dir_p. Register replacement direction in dir, last_dir
9296 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
9297 merge_dir. Return replacement direction in dir_p.
9298 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
9299 return type of old_insns_match_p.
9300 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
9301 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
9302 flow_find_cross_jump.
9303 * basic-block.h (enum replace_direction): New type.
9304 (flow_find_cross_jump): Add parameter to declaration.
9305
a95d4000
UB
93062011-04-06 Uros Bizjak <ubizjak@gmail.com>
9307
9308 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
9309 (AVXMODEDCVTPS2DQ): Ditto.
9310 (VEC_FLOAT_MODE): Ditto.
9311 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
9312 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
9313 (<any_logic:code><mode>3): Use VF mode iterator.
9314 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
9315 Use VF mode iterator.
9316 (copysign<mode>3): Use VF mode iterator.
9317 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
9318 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
9319 (*<any_logic:code><MODEF:mode>3): Merge with
9320 *avx_<any_logic:code><MODEF:mode>3.
9321 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
9322 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
9323 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
9324 (avx_cvtdq2ps<avxmodesuffix>): Remove.
9325 (sse2_cvtdq2ps): Use %v modifier.
9326 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
9327 (avx_cvtps2dq<avxmodesuffix>): Remove.
9328 (sse2_cvtps2dq): Use %v modifier.
9329 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
9330 (avx_cvttps2dq<avxmodesuffix>): Remove.
9331 (sse2_cvttps2dq): Use %v modifier.
9332 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
9333 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
9334 (sse2_cvtsd2siq): Fix insn template.
9335 (sse2_cvtsd2siq_2): Ditto.
9336 (sse2_cvttsd2siq): Ditto.
9337 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
9338 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
9339
ad01c437
JM
93402011-04-06 Joseph Myers <joseph@codesourcery.com>
9341
9342 * gcov-io.c: Use GCC Runtime Library Exception.
9343
fe846284
JJ
93442011-04-06 Jakub Jelinek <jakub@redhat.com>
9345
9346 PR debug/48466
9347 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
9348 as base_reg whatever register reg has been eliminated to, instead
9349 of hardcoding STACK_POINTER_REGNUM.
9350
acce4e77
JM
93512011-04-06 Joseph Myers <joseph@codesourcery.com>
9352
9353 * doc/tm.texi.in: Document C target hooks as separate from general
9354 target hooks.
9355 * doc/tm.texi: Regenerate.
9356 * genhooks.c (struct hook_desc): Add docname field.
9357 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
9358 docname field.
9359 (hook_array): Include c-target.def.
9360 (emit_documentation): Use docname field in output.
9361 (emit_init_macros): Take docname argument. Only emit definitions
9362 for hooks matching docname.
9363 (main): Expect additional arguments in all cases. Pass argument
9364 to emit_init_macros.
9365 * target.def: Move initial macro definitions and comments to
9366 target-hooks-macros.h.
9367 (gcc_targetcm): Move to c-family/c-target.def.
9368 * target.h (targetcm): Move declaration to c-family/c-target.h.
9369 * targhooks.c (default_handle_c_option): Move to
9370 c-family/c-opts.c.
9371 * targhooks.h (default_handle_c_option): Move declaration to
9372 c-family/c-common.h.
9373 * target-hooks-macros.h: New file.
9374 * config.gcc (target_has_targetcm): Define and use to add to
9375 c_target_objs and cxx_target_objs.
9376 * config/default-c.c: New file.
9377 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
9378 of target.h and target-def.h.
9379 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
9380 (darwin_objc_construct_string, darwin_cfstring_ref_p,
9381 darwin_check_cfstring_format_arg): Make static.
9382 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
9383 TARGET_STRING_OBJECT_REF_TYPE_P,
9384 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
9385 * config/darwin-protos.h (darwin_objc_construct_string,
9386 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
9387 declare.
9388 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
9389 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 9390 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
9391 * config/t-darwin (darwin-c.o): Update dependencies.
9392 * system.h (TARGET_HAS_TARGETCM): Poison.
9393 * Makefile.in (TARGET_H): Update.
9394 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
9395 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
9396 (default-c.o): New target.
9397 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 9398 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
9399 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
9400 c-target.def.
9401 (build/genhooks.o): Update dependencies.
9402
275b4baa 94032011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 9404
275b4baa
RG
9405 * ipa-inline.c (enum inlining_mode): Remove.
9406 (cgraph_flatten): Use some other token.
9407 (cgraph_edge_early_inlinable_p): New function, split out from ...
9408 (cgraph_perform_always_inlining): New function, split out from ...
9409 (cgraph_decide_inlining_incrementally): ... here.
9410 (cgraph_mark_inline_edge): Adjust.
9411 (cgraph_early_inlining): Re-structure.
9412 (pass_early_inline): Require SSA form.
9413
f15b8bdf 94142011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
9415 Julian Brown <julian@codesourcery.com>
9416 Mark Shinwell <shinwell@codesourcery.com>
9417
9418 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
9419 LO_REGS only for Thumb-1.
9420 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
9421 be used in short instructions when optimising for size on Thumb-2.
9422
516426da
EB
94232011-04-06 Eric Botcazou <ebotcazou@adacore.com>
9424
9425 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
9426 associated with user returns to be preserved.
9427
96621ebf
TG
94282011-04-06 Tristan Gingold <gingold@adacore.com>
9429
f15b8bdf
EB
9430 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
9431 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
9432 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
9433 if XCOFF_DEBUGGING_INFO.
9434
07c0852e
UB
94352011-04-06 Uros Bizjak <ubizjak@gmail.com>
9436
9437 * config/i386/i386.md (attribute isa): New.
9438 (attribute enabled): New.
9439 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
9440 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
9441 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
9442 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
9443 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
9444 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
9445 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
9446 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
9447
9448 * config/i386/sse.md (VF): New mode iterator.
9449 (VF1): Ditto.
9450 (VF2): Ditto.
9451 (VF_128): Ditto.
9452 (SSEMODEF4): Remove.
9453 (attribute sse): Handle V8SF and V4DF modes.
9454 (<absneg:code><mode>2): Use VF mode iterator.
9455 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
9456 mode iterator.
9457 (<plusminus_insn><mode>3): Use VF mode iterator.
9458 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
9459 Use VF mode iterator.
9460 (<sse>_vm<plusminus_insn><mode>3): Merge with
9461 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
9462 (mul<mode>3): Use VF mode iterator.
9463 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
9464 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
9465 mode iterator.
9466 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
9467 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
9468 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
9469 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
9470 mode iterator.
9471 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
9472 Use VF1 mode iterator.
9473 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
9474 (sqrt<VF2:mode>2): New expander.
9475 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
9476 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
9477 and sqrtv2df2. Use VF mode iterator.
9478 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
9479 mode iterator.
9480 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
9481 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
9482 Use VF1 mode iterator.
9483 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
9484 (<smaxmin:code><mode>3): Use VF mode iterator.
9485 (*<smaxmin:code><mode>3_finite): Merge with
9486 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
9487 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
9488 (<sse>_vm<smaxmin:code><mode>2): Merge with
9489 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
9490 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
9491 mode iterator.
9492 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
9493 mode iterator.
9494 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
9495 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
9496 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
9497 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
9498 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
9499 VF mode iterator.
9500 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
9501 Use VF_128 mode iterator.
9502 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
9503 mode iterator.
9504 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
9505 VF_128 mode iterator.
9506 (vcond<mode>): Use VF mode iterator.
9507 * config/i386/predicates.md (sse_comparison_operator): Merge with
9508 avx_comparison_float_operator. Do not declare as special_predicate.
9509 * config/i386/i386.c (struct builtin_description): Update for renamed
9510 compare patterns.
9511 (ix86_expand_args_builtin): Ditto.
9512 (ix86_expand_sse_compare_mask): Ditto.
9513
ff5d142c
RG
95142011-04-06 Richard Guenther <rguenther@suse.de>
9515
9516 * tree-inline.c (estimate_num_insns): For calls simply account
9517 for all passed arguments and a used return value.
9518
d7d1d041 95192011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 9520
d7d1d041
RG
9521 PR tree-optimization/47663
9522 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
9523 call_stmt_time fields.
9524 (cgraph_edge_inlinable_p): Declare.
9525 (cgraph_edge_recursive_p): New inline function.
9526 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
9527 (cgraph_clone_edge): Copy it.
9528 * ipa-inline.c (cgraph_estimate_edge_time): New function.
9529 Account for call stmt time.
9530 (cgraph_estimate_time_after_inlining): Take edge argument.
9531 (cgraph_estimate_edge_growth): Account call stmt size.
9532 (cgraph_estimate_size_after_inlining): Take edge argument.
9533 (cgraph_mark_inline_edge): Adjust.
9534 (cgraph_check_inline_limits): Likewise.
9535 (cgraph_recursive_inlining_p): Remove.
9536 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
9537 (cgraph_decide_recursive_inlining): Take edge argument and
9538 adjust.
9539 (cgraph_decide_inlining_of_small_functions): Do not avoid
9540 diags for recursive inlining here.
9541 (cgraph_flatten): Adjust.
9542 (cgraph_decide_inlining_incrementally): Likewise.
9543 (estimate_function_body_sizes): Remove call cost handling.
9544 (compute_inline_parameters): Initialize caller edge call costs.
9545 (cgraph_estimate_edge_growth): New function.
9546 (cgraph_estimate_growth): Use it.
9547 (cgraph_edge_badness): Likewise.
9548 (cgraph_check_inline_limits): Take an edge argument.
9549 (cgraph_decide_inlining_of_small_functions): Adjust.
9550 (cgraph_decide_inlining): Likewise.
9551 * tree-inline.c (estimate_num_insns): Only account for call
9552 return value if it is used.
9553 (expand_call_inline): Avoid diagnostics on recursive inline
9554 functions here.
9555 * lto-cgraph.c (lto_output_edge): Output edge call costs.
9556 (input_edge): Input edge call costs.
9557
2feb95f7
RO
95582011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9559
9560 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
9561
26fbd9c2
JW
95622011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
9563
9564 * doc/invoke.texi (Spec Files): Fix typo.
9565
694dc0ca
EB
95662011-04-06 Eric Botcazou <ebotcazou@adacore.com>
9567
9568 * profile.c (branch_prob): Move declaration of local variable. Remove
9569 obsolete ??? comment. Expand the location explicitly instead of using
9570 the LOCATION_FILE and LOCATION_LINE macros.
9571
4925d0d5
WG
95722011-04-06 Wei Guozhi <carrot@google.com>
9573
9574 PR target/47855
9575 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
9576 (arm_cond_branch): Likewise.
9577 (arm_cond_branch_reversed): Likewise.
9578 (arm_jump): Likewise.
9579 (push_multi): Likewise.
9580 * config/arm/constraints.md (Py): New constraint.
9581
f55dfa2f
NF
95822011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9583
9584 PR bootstrap/48471
9585 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
9586 Move these...
9587 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
9588 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
9589 #ifdef DBX_DEBUGGING_INFO.
9590
fca96842
BS
95912011-04-05 Bernd Schmidt <bernds@codesourcery.com>
9592
9593 PR bootstrap/48403
9594 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
9595 if old and new states differ.
9596
30b83e38
JM
95972011-04-05 Joseph Myers <joseph@codesourcery.com>
9598
9599 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
9600 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
9601 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
9602 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
9603 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
9604 mcfv4e): Use Alias.
9605 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
9606 ColdFire options to -mcpu= options.
9607
277a9aa5
JL
96082011-04-05 Jeff Law <law@redhat.com>
9609
9610 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
9611 check if BB is a successor of LOOP->header and return
9612 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
9613
c1e2610e
SB
96142011-04-05 Steven Bosscher <steven@gcc.gnu.org>
9615
9616 * cprop.c (struct reg_use): Remove.
9617 (reg_use_table): Make an array of RTX.
9618 (find_used_regs, constprop_register, local_cprop_pass,
9619 bypass_block): Simplify users of reg_use_table.
9620 (cprop_insn): Likewise. Iterate if copy propagation succeeded
9621 on one of the uses found by find_used_regs.
9622
e532f586
NF
96232011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9624
9625 PR bootstrap/48469
9626 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
9627 declaration.
9628
3fb7c055
NF
96292011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9630
9631 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
9632 as an rtx.
9633 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
9634
b71b43d9
SB
96352011-04-05 Steven Bosscher <steven@gcc.gnu.org>
9636
9637 PR middle-end/48441
9638 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
9639
b405b274
NF
96402011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9641
9642 * combine.c: Include obstack.h.
9643 (struct insn_link): Define.
9644 (uid_log_links): Adjust type.
9645 (FOR_EACH_LOG_LINK): New macro.
9646 (insn_link_obstack): Declare.
9647 (alloc_insn_link): Define.
9648 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
9649 type of link variables.
9650 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
9651 (try_combine, record_promoted_values, distribute_notes): Likewise.
9652 (distribute_links): Likewise. Tweak prototype.
9653 (clear_log_links): Delete.
9654 (adjust_for_new_dest): Call alloc_insn_link.
9655 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
9656
6409abe3
NF
96572011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9658
9659 * gcse.c (modify_mem_list): Convert to an array of VECs.
9660 (canon_modify_mem_list, compute_transp): Tweak formatting.
9661 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
9662 (load_killed_in_block_p): Likewise.
9663 (record_last_mem_set_info): Likewise.
9664 (clear_modify_mem_tables): Likewise.
9665
170d8157
TV
96662011-04-05 Tom de Vries <tom@codesourcery.com>
9667
9668 PR middle-end/48461
9669 * function.c (emit_use_return_register_into_block): Only define if
9670 HAVE_return.
9671
c5911a55
EB
96722011-04-05 Eric Botcazou <ebotcazou@adacore.com>
9673
9674 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
9675
abd016e6
JM
96762011-04-05 Joseph Myers <joseph@codesourcery.com>
9677
9678 * config/rx/rx-opts.h: New.
9679 * config/rx/rx.c (rx_cpu_type): Remove.
9680 (rx_handle_option): Don't assert that global structures are in
9681 use. Access variables via opts pointer. Defer most handling of
9682 OPT_mint_register_. Use error_at.
9683 (rx_option_override): Handle deferred OPT_mint_register_ here.
9684 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
9685 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
9686 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
9687 (rx_cpu_types): New Enum and EnumValue entries.
9688 (mint-register=): Use Defer and use Var accordingly.
9689
1ed13f83
NF
96902011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9691
9692 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
9693 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
9694 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
9695 Move these...
9696 (debug_free_queue, debug_nesting, symbol_queue_index):
9697 ...and these...
9698 * dbxout.c: ...to here. Make static.
9699
6ce1edcf
NF
97002011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9701
9702 * gcse.c (modify_pair): Define. Define a VEC of it.
9703 (canon_modify_mem_list): Convert to an array of VECs.
9704 (free_insn_expr_list_list): Delete.
9705 (clear_modify_mem_tables): Call VEC_free instead.
9706 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
9707 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
9708 (canon_list_insert, compute_transp): Likewise.
9709
c201ac94
TV
97102011-04-05 Tom de Vries <tom@codesourcery.com>
9711
9712 PR target/43920
9713 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
9714 for size.
9715
4c029f40
TV
97162011-04-05 Tom de Vries <tom@codesourcery.com>
9717
9718 PR target/43920
9719 * function.c (emit_use_return_register_into_block): New function.
9720 (thread_prologue_and_epilogue_insns): Use
9721 emit_use_return_register_into_block.
9722
2a562b0a
TV
97232011-04-05 Tom de Vries <tom@codesourcery.com>
9724
9725 PR target/43920
9726 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
9727 insn.
9728
0248bceb
TV
97292011-04-05 Tom de Vries <tom@codesourcery.com>
9730
9731 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
9732
ffa94123
YZ
97332011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
9734
798dd0ba
UB
9735 * config/arm/arm.md (define_constants for unspec): Replace with
9736 define_c_enum.
9737 (define_constants for unspecv): Replace with define_c_enum.
9738 * config/arm/neon.md (define_constants for unspec): Replace with
9739 define_c_enum.
ffa94123 9740
3b8f9b46
RH
97412011-04-04 Richard Henderson <rth@redhat.com>
9742
720cf80f 9743 PR bootstrap/48400
3b8f9b46
RH
9744 * dwarf2out.c (output_line_info): Always emit line info from
9745 at least one section.
9746 (dwarf2out_init): Create text_section_line_info here ...
9747 (set_cur_line_info_table): ... not here.
9748
720cf80f 97492011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
9750
9751 PR target/48380
9752 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 9753 not called.
e5b0e1ca 9754
720cf80f 9755 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 9756
196565d4
SB
97572011-04-04 Steven Bosscher <steven@gcc.gnu.org>
9758
b77f9eab
SB
9759 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
9760 (expr_equiv_p): Remove.
9761 (insert_set_in_table): Look at <dest, src> pair instead of expr.
9762 (hash_scan_set): Update call to insert_set_in_table.
9763 (dump_hash_table): Dump <dest, src> pair.
9764 (lookup_set): Simplify. Lookup <dest, src> pair.
9765 (compute_transp): Remove, fold heavily simplified code into...
9766 (compute_local_properties): ...here. Expect COMP and TRANSP
9767 unconditionally.
9768 (find_avail_set): Take set directly from struct expr.
9769 (find_bypass-set): Likewise.
9770 (bypass_block): Likewise.
9771 (cprop_insn): Likewise. Remove redundant INSN_P test.
9772
384d7a55
SB
9773 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
9774 checks on form of COND from find_implicit_sets to here.
9775 (find_implicit_sets): Cleanup control flow. Split critical edges
9776 if it exposes implicit sets. Allocate/resize implicit_sets as
9777 necessary.
9778 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
9779 changed something. Run df_analyze after find_implicit_sets if any
9780 edges were split. Do not allocate implicit_sets here.
9781
3084ce69
SB
9782 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
9783 (gcse_obstack): Renamed to cprop_obstack.
9784 (GNEW, GNEWVEC, GNEWVAR): Remove.
9785 (gmalloc): Remove.
9786 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
9787 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
9788 (gcse_alloc): Likewise, and rename to cprop_alloc.
9789 (alloc_gcse_men, free_gcse_mem): Remove.
9790 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
9791 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
9792 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
9793
196565d4
SB
9794 * cprop.c (oprs_not_set_p): Remove.
9795 (mark_set, mark_clobber): Remove.
9796 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
9797 (reg_not_set_p): New function.
9798 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
9799 (cprop_insn): Likewise.
9800 (cprop_jump): Use FOR_EACH_EDGE.
9801
9b69cf83
BS
98022011-04-04 Bernd Schmidt <bernds@codesourcery.com>
9803
9804 PR bootstrap/48403
9805 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
9806 (rank_for_schedule): Use scheduled_insns vector instead of
9807 last_scheduled_insn.
9808 (ok_for_early_queue_removal): Likewise.
9809 (queue_to_ready): Search forward in nonscheduled_insns_begin if
9810 we have a dbg_cnt.
9811 (choose_ready): Likewise.
9812 (commit_schedule): Use VEC_iterate.
9813 (schedule_block): Initialize nonscheduled_insns_begin. If we have
9814 a dbg_cnt, use it and ensure the first insn is in the ready list.
9815 (haifa_sched_init): Allocate scheduled_insns.
9816 (sched_extend_ready_list): Don't allocate it; reserve space.
9817 (haifa_sched_finish): Free it.
9818
24f48c2f
JM
98192011-04-04 Joseph Myers <joseph@codesourcery.com>
9820
9821 * optc-gen.awk: Always remove type from Variable entry before
9822 recording in var_seen.
9823
8effe856
EB
98242011-04-04 Eric Botcazou <ebotcazou@adacore.com>
9825
9826 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
9827 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
9828 call to tidy_fallthru_edges.
9829
413519ae
JM
98302011-04-04 Joseph Myers <joseph@codesourcery.com>
9831
9832 * doc/options.texi (ToLower): Document.
3729983c 9833 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
9834 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
9835 * opts.h (cl_option): Add cl_tolower field.
9836 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
9837 arguments with lowercase strings.
9838 * config/rx/rx.opt (mcpu=): Add ToLower.
9839 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
9840 argument.
9841
7d34a1b0
RS
98422011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
9843
9844 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
9845
c30e7434
RS
98462011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
9847
9848 * config/vax/vax.c: Include reload.h.
9849
112a861d
AS
98502011-04-04 Anatoly Sokolov <aesok@post.ru>
9851
9852 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
9853 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
9854 (sparc_preferred_reload_class): New function.
9855
e8c6bb74
JJ
98562011-04-04 Jakub Jelinek <jakub@redhat.com>
9857
2aeaa366 9858 PR debug/48401
e8c6bb74
JJ
9859 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
9860 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
9861
2c081caf
NF
98622011-04-03 Nathan Froyd <froydnj@codesourcery.com>
9863
9864 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
9865 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
9866
53802f27
AS
98672011-04-03 Anatoly Sokolov <aesok@post.ru>
9868
9869 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
9870 (ASM_OUTPUT_ALIGNED_BSS): Define.
9871
e89964e3
MM
98722011-04-03 Michael Matz <matz@suse.de>
9873
9874 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
9875 and next_slot members.
9876 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
9877 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
9878 (lto_streamer_cache_append): Declare.
9879 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
9880 unsigned index, remove offset parameter, ensure that we append
9881 or update existing entries.
9882 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
9883 parameter, update next_slot for append.
9884 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
9885 parameter.
9886 (lto_streamer_cache_insert_at): Likewise.
9887 (lto_streamer_cache_append): New function.
9888 (lto_streamer_cache_lookup): Use unsigned index.
9889 (lto_streamer_cache_get): Likewise.
9890 (lto_record_common_node): Don't test tree_node_can_be_shared.
9891 (preload_common_node): Adjust call to lto_streamer_cache_insert.
9892 (lto_streamer_cache_delete): Don't free offsets member.
9893 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
9894 (lto_output_string_with_length): Use lto_output_data_stream.
9895 (lto_output_tree_header): Remove ix parameter, don't write it.
9896 (lto_output_builtin_tree): Likewise.
9897 (lto_write_tree): Adjust callers to above, don't track and write
9898 offset, write unsigned index.
9899 (output_unreferenced_globals): Don't emit all global vars.
9900 (write_global_references): Use unsigned indices.
9901 (lto_output_decl_state_refs): Likewise.
9902 (write_symbol): Likewise.
9903 * lto-streamer-in.c (lto_input_chain): Move earlier.
9904 (input_function): Use unsigned index.
9905 (input_alias_pairs): Don't read and then ignore all global vars.
9906 (lto_materialize_tree): Remove ix_p parameter, don't read index,
9907 don't pass it back, use lto_streamer_cache_append.
9908 (lto_register_var_decl_in_symtab): Use unsigned index.
9909 (lto_register_function_decl_in_symtab): Likewise.
9910 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
9911 index.
9912 (lto_get_builtin_tree): Don't read index, use
9913 lto_streamer_cache_append.
9914 (lto_read_tree): Adjust call to lto_materialize_tree.
9915
9916 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
9917 don't use function calls in arguments to MIN.
9918
9919 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
9920 twice.
9921
9922 * gimple.c (gimple_type_leader_entry): Mark deletable.
9923
b9a5b5b2
AM
99242011-04-03 Alan Modra <amodra@gmail.com>
9925
9926 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
9927
ac6a641b
MM
99282011-04-03 Michael Matz <matz@suse.de>
9929
9930 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
9931 an integer.
9932 * tree.h (tree_decl_non_common.vindex): Adjust comment.
9933
0038d4e0
MM
99342011-04-03 Michael Matz <matz@suse.de>
9935
e9c18386 9936 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
9937 * gimple-fold.c (canonicalize_constructor_val): Accept being called
9938 without function context.
9939 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
9940 current_function_decl and cfun.
9941
91f2fae8
MM
99422011-04-03 Michael Matz <matz@suse.de>
9943
9944 * tree.c (decl_init_priority_insert): Don't create entry for
9945 default priority.
9946 (decl_fini_priority_insert): Ditto.
9947 (fields_compatible_p, find_compatible_field): Remove.
9948 * tree.h (fields_compatible_p, find_compatible_field): Remove.
9949 * gimple.c (gimple_compare_field_offset): Adjust block comment.
9950
da29e070
EB
99512011-04-03 Eric Botcazou <ebotcazou@adacore.com>
9952
9953 * combine.c (try_combine): Remove useless local variable.
9954
4979c28b 99552011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 9956 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
9957
9958 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
9959 non-variable offsets and compare the remaining bases of the two
9960 accesses instead of looking for exact same data-ref.
9961
b4ddcaee
KT
99622011-04-02 Kai Tietz <ktietz@redhat.com>
9963
f90298e1
KT
9964 PR target/48416
9965 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
9966
b4ddcaee
KT
9967 * i386.c (ix86_is_msabi_thiscall): New helper function.
9968 (ix86_is_type_thiscall): New helper function.
9969 (ix86_comp_type_attributes): Handle thiscall for method-functions
9970 special.
9971 (init_cumulative_args): Likewise.
9972 (find_drap_reg): Likewise.
9973 (ix86_static_chain): Likewise.
9974 (x86_this_parameter): Likewise.
9975 (x86_output_mi_thunk): Likewise.
9976
2a9d769a 99772011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
9978 Nicolas Setton <setton@adacore.com>
9979 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
9980
9981 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
9982 (add_gnat_descriptive_type_attribute): New function.
9983 (gen_array_type_die): Call it.
9984 (gen_enumeration_type_die): Likewise.
9985 (gen_struct_or_union_type_die): Likewise.
9986 (modified_type_die): Likewise.
9987 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
9988 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
9989 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
9990
15a03a11
JJ
99912011-04-01 Jakub Jelinek <jakub@redhat.com>
9992
9993 PR bootstrap/48148
9994 * dwarf2out.c (resolve_addr): Don't call force_decl_die
9995 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
9996
9997 Revert:
9998 2011-03-17 Richard Guenther <rguenther@suse.de>
9999
10000 PR bootstrap/48148
10001 * lto-cgraph.c (input_overwrite_node): Clear the abstract
10002 origin for decls in other ltrans units.
10003 (input_varpool_node): Likewise.
10004
19228b93
JJ
100052011-04-01 Jakub Jelinek <jakub@redhat.com>
10006
10007 PR middle-end/48335
10008 * expr.c (expand_assignment): Handle all possibilities
10009 if TO_RTX is CONCAT.
e9c18386 10010 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
10011 (store_split_bit_field): If SUBREG_REG (op0) or
10012 op0 itself has smaller mode than word, return it
10013 for offset 0 and const0_rtx for out-of-bounds stores.
10014 If word is const0_rtx, skip it.
10015
88cb339e
N
100162011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
10017
10018 * config/h8300/h8300.c (print_operand_address): Rename to...
10019 (h8300_print_operand_address): ...this. Make static. Adjust comments.
10020 Call h8300_print_operand and h8300_print_operand_address instead of
10021 print_operand and print_operand_address. Declare.
10022 (print_operand): Renake to...
10023 (h8300_print_operand): ...this. Make static. Adjust comments.
10024 Call h8300_print_operand instead of print_operand. Declare.
10025 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
10026 (h8300_register_move_cost): Likewise.
10027 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
10028 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
10029 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
10030 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
10031 * config/h8300/h8300-protos.h (print_operand): Delete.
10032 (print_operand_address): Delete.
10033
756d6ee9
RH
100342011-04-01 Richard Henderson <rth@redhat.com>
10035
10036 PR 48400
10037 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
10038 in strict mode before dwarf4. Re-order tests to early out
10039 before switching sections.
10040
ceaaaeab
NF
100412011-04-01 Nathan Froyd <froydnj@codesourcery.com>
10042
10043 * config/h8300/constraints.md: New file.
10044 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
10045 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
10046 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
10047 * config/h8300/predicates.md (bit_operand): Likewise.
10048 (incdec_operand): Use satisfies_constraint_M and
10049 satisfies_constraint_O. Don't use C code block.
10050 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
10051 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
10052 (compute_mov_length): Use satisfies_constraint_G.
10053 (fix_bit_operand): Use satisfies_constraint_U.
10054 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
10055 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
10056 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
10057 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
10058 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
10059 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
10060 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10061 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
10062 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
10063 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
10064 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
10065 (EXTRA_MEMORY_CONSTRAINT): Delete.
10066
08ae38e0
AP
100672011-04-01 Andrew Pinski <pinskia@gmail.com>
10068 Michael Meissner <meissner@linux.vnet.ibm.com>
10069
10070 PR target/48262
10071 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
10072 operands, as per the specifications.
10073
10074 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
10075 (vec_extract_evenv4sf): Ditto.
10076 (vec_extract_evenv8hi): Ditto.
10077 (vec_extract_evenv16qi): Ditto.
10078 (vec_extract_oddv4si): Ditto.
10079
bdb0b0f6
MW
100802011-03-31 Mark Wielaard <mjw@redhat.com>
10081
10082 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
10083 high_pc attribute if the CU has no associated code. Only output
10084 DW_AT_entry_pc for CU if not generating strict dwarf and
10085 dwarf_version < 4.
10086
722279e4
BS
100872011-04-01 Bernd Schmidt <bernds@codesourcery.com>
10088
10089 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
10090 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
10091 out of ...
10092 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
10093 * final.c (final_start_function): Call the new function rather
10094 than using a NULL argument for dwarf2out_frame_debug.
10095
c5dd277d
BS
10096 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
10097 that contains the prologue.
10098
ec4efea9
BS
10099 * haifa-sched.c (queue_insn): New arg REASON. All callers
10100 changed. Print it in debugging output.
10101
2a6a0d80
BS
10102 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
10103
86014d07
BS
10104 * sched-ebb.c (begin_schedule_ready): Remove second argument.
10105 Split most of the code into...
10106 (begin_move_insn): ... here. New function.
10107 (ebb_sched_info): Add a pointer to it.
10108 * haifa-sched.c (scheduled_insns): New static variable.
10109 (sched_extend_ready_list): Allocate it.
10110 (schedule_block): Use it to record the order of scheduled insns.
10111 Perform RTL changes to move insns only after all scheduling
10112 decisions have been made.
10113 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
10114 begin_move_insn field.
10115 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
10116 * sched-int.h (struct haifa_sched_info): Remove second argument
10117 from begin_schedule_ready hook. Add new member begin_move_insn.
10118 * sched-rgn.c (begin_schedule_ready): Remove second argument.
10119 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
10120
9d701248
BS
10121 * haifa-sched.c (prune_ready_list): New function, broken out of
10122 schedule_block.
10123 (schedule_block): Use it.
10124
1ca1dad5
UW
101252011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10126
10127 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
10128
49568e45
KT
101292011-04-01 Kai Tietz <ktietz@redhat.com>
10130
10131 * config.gcc (*-*-mingw*): Allow as option the
10132 posix threading model.
07c0852e 10133 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
10134 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
10135 definition.
10136 (CPP_SPEC): Add pthread/no-pthread handling.
10137 (LIB_SPEC): Likewise.
10138 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
10139 (LIB_SPEC): Likewise.
10140 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
10141 flag to pass -pthread option for shared libgcc build.
10142 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
10143 for shared libgcc build.
10144 * config/i386/t-mingw-pthread: New file.
10145 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
10146 New define to enable use of library pthread by default.
10147 * config/i386/mingw.opt (pthread): New driver option.
10148 (no-pthread): New driver option.
e9c18386 10149 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
10150 * config/i386/mingw-w64.opt: Likewise.
10151
748f7574 101522011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
10153
10154 * c-decl.c (grokdeclarator): Fix formatting.
10155
f04713ee
RS
101562011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10157
10158 * expr.c (emit_block_move_via_movmem): Use n_generator_args
10159 instead of n_operands.
10160 (set_storage_via_setmem): Likewise.
10161 * optabs.c (maybe_gen_insn): Likewise.
10162 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
10163 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
10164 (mips_expand_builtin_direct): Likewise.
10165 * config/spu/spu.c (expand_builtin_args): Likewise.
10166
b29387ee
RS
101672011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10168
10169 * recog.h (insn_data_d): Add n_generator_args.
10170 * genoutput.c (data): Likewise.
10171 (output_insn_data): Print it.
10172 (max_opno, num_dups): Delete.
10173 (scan_operands): Just fill in "d->operand[...]".
10174 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
10175
e792559a
RS
101762011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10177
10178 * gensupport.h (pattern_stats): New structure.
10179 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
10180 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
10181 (max_operand_1, max_operand_vec): Delete.
10182 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
10183
e8110d6f
NF
101842011-03-31 Nathan Froyd <froydnj@codesourcery.com>
10185
10186 * emit-rtl.c (emit_pattern_after_setloc): New function.
10187 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
10188 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
10189 (emit_pattern_after): New function.
10190 (emit_insn_after, emit_jump_insn_after): Call it.
10191 (emit_call_insn_after, emit_debug_insn_after): Likewise.
10192 (emit_pattern_before_setloc): New function.
10193 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
10194 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
10195 Likewise.
10196 (emit_pattern_before): New function.
10197 (emit_insn_before, emit_jump_insn_before): Call it.
10198 (emit_call_insn_before, emit_debug_insn_before): Likewise.
10199
576f85f1
RH
102002011-03-31 Richard Henderson <rth@redhat.com>
10201
10202 * dwarf2out.c (dw_separate_line_info_ref): Remove.
10203 (dw_separate_line_info_entry): Remove.
10204 (enum dw_line_info_opcode): New.
10205 (dw_line_info_entry): Use it.
10206 (dw_line_info_table, dw_line_info_table_p): New.
10207 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
10208 (line_info_table, line_info_label_num): Remove.
10209 (line_info_table_in_use): Remove.
10210 (separate_line_info_table): Remove.
10211 (separate_line_info_table_allocated): Remove.
10212 (separate_line_info_table_in_use): Remove.
10213 (LINE_INFO_TABLE_INCREMENT): Remove.
10214 (line_info_label_num): New.
10215 (cur_line_info_table): New.
10216 (text_section_line_info, cold_text_section_line_info): New.
10217 (separate_line_info): New.
10218 (SEPARATE_LINE_CODE_LABEL): Remove.
10219 (print_dwarf_line_table): Remove.
10220 (debug_dwarf): Don't dump it.
10221 (output_one_line_info_table): New.
10222 (output_line_info): Use it.
10223 (new_line_info_table): New.
10224 (set_cur_line_info_table): New.
10225 (dwarf2out_switch_text_section): Use it.
10226 (dwarf2out_begin_function): Likewise.
10227 (push_dw_line_info_entry): New.
10228 (dwarf2out_source_line): Rewrite for new line info tables.
10229 (dwarf2out_init): Remove dead initailizations.
10230
300d83d9
JM
102312011-03-31 Joseph Myers <joseph@codesourcery.com>
10232
10233 * opts.h (cl_option): Add comments to fields. Add bit-fields for
10234 various flags.
10235 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
10236 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
10237 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
10238 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
10239 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
10240 * opt-functions.awk (flag_init, switch_bit_fields): New.
10241 (switch_flags): Don't handle flags moved to bit-fields. Don't
10242 generate CL_MISSING_OK or CL_SAVE.
10243 * optc-gen.awk: Update to generate bit-field output as well as
10244 flags field.
10245 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
10246 bit-field instead of CL_REJECT_DRIVER flag.
10247 * opts-common.c (generate_canonical_option,
10248 decode_cmdline_option): Use bit-fields instead of CL_* flags.
10249 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
10250 instead of CL_REJECT_NEGATIVE flag.
10251 * toplev.c (print_switch_values): Use cl_report bit-field instead
10252 of CL_REPORT flag.
10253
d4d73ce2
EB
102542011-03-31 Eric Botcazou <ebotcazou@adacore.com>
10255
10256 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
10257 a zero minimum index only if it is redundant.
10258
b8faca75
VM
102592011-03-31 Vladimir Makarov <vmakarov@redhat.com>
10260
10261 PR rtl-optimization/48381
10262 * ira-color.c (assign_hard_reg): Use hard reg set intersection
10263 instead of ira_class_hard_reg_index for calculating conflicting
10264 hard registers.
10265
7d11cebe
SB
102662011-03-31 Steven Bosscher <steven@gcc.gnu.org>
10267
10268 * cprop.c: Clean up hash table building.
10269 (reg_avail_info): Remove.
10270 (oprs_available_p): Remove.
10271 (record_last_reg_set_info): Remove.
10272 (record_last_set_info): Remove.
10273 (reg_available_p): New function.
10274 (gcse_constant_p): Do not treat unfolded conditions as constants.
10275 (make_set_regs_unavailable): New function.
10276 (hash_scan_set): Simplify with new reg_available_p.
10277 (compute_hash_table_work): Traverse insns stream only once.
10278 Do not compute reg_avail_info. Traverse insns in reverse order.
10279 Record implicit sets after recording explicit sets from the block.
10280
98faf84f
MM
102812011-03-31 Michael Matz <matz@suse.de>
10282
e9c18386 10283 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 10284
f52d97da
AS
102852011-03-31 Anatoly Sokolov <aesok@post.ru>
10286
10287 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
10288 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
10289 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10290 (h8300_mode_dependent_address_p): New function.
10291 (h8300_get_index): Make static.
10292
e16b6fd0
JL
102932011-03-31 Jeff Law <law@redhat.com>
10294
10c51983
JL
10295 * reload1.c (elimination_effects): Fix typo in recent change.
10296
e9c18386 10297 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
10298 typo potentially leading to null pointer dereference.
10299
10300 * caller-save.c (new_saved_hard_reg): Eliminate return value.
10301 (setup_save_areas): Corresponding changes to avoid useless
10302 assignments.
10303
10304 * jump.c (reversed_comparison_code_parts): Avoid successive return
10305 statements when REVERSE_CONDITION is defined.
10306
10307 * expr.c (expand_assignment): Avoid useless assignments.
10308 (expand_expr_real_1): Likewise.
10309 (expand_expr_real_2): Avoid useless statements.
10310
10311 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
10312
10313 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
10314
10315 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
10316 statements.
10317
10318 * stmt.c (expand_expr_stmt): Avoid useless assignment.
10319
eb1eb914
JM
103202011-03-31 Joseph Myers <joseph@codesourcery.com>
10321
10322 PR target/47109
10323 * doc/tm.texi.in (TARGET_VERSION): Remove.
10324 * doc/tm.texi: Regenerate.
10325 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
10326 * collect2.c (main): Don't use TARGET_VERSION.
10327 * mips-tdump.c (main): Don't use TARGET_VERSION.
10328 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 10329 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
10330 * config/rs6000/vxworksae.h: Remove.
10331 * config/alpha/alpha.h (TARGET_VERSION): Remove.
10332 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
10333 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
10334 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
10335 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
10336 * config/arm/arm.h (TARGET_VERSION): Remove.
10337 * config/arm/coff.h (TARGET_VERSION): Remove.
10338 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
10339 * config/arm/elf.h (TARGET_VERSION): Remove.
10340 * config/arm/freebsd.h (TARGET_VERSION): Remove.
10341 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
10342 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
10343 * config/arm/pe.h (TARGET_VERSION): Remove.
10344 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
10345 * config/arm/semi.h (TARGET_VERSION): Remove.
10346 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
10347 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
10348 * config/arm/vxworks.h (TARGET_VERSION): Remove.
10349 * config/avr/avr.h (TARGET_VERSION): Remove.
10350 * config/bfin/bfin.h (TARGET_VERSION): Remove.
10351 * config/fr30/fr30.h (TARGET_VERSION): Remove.
10352 * config/frv/frv.h (TARGET_VERSION): Remove.
10353 * config/h8300/h8300.h (TARGET_VERSION): Remove.
10354 * config/i386/cygwin.h (TARGET_VERSION): Remove.
10355 * config/i386/darwin.h (TARGET_VERSION): Remove.
10356 * config/i386/darwin64.h (TARGET_VERSION): Remove.
10357 * config/i386/djgpp.h (TARGET_VERSION): Remove.
10358 * config/i386/freebsd.h (TARGET_VERSION): Remove.
10359 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
10360 * config/i386/gnu.h (TARGET_VERSION): Remove.
10361 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
10362 * config/i386/i386elf.h (TARGET_VERSION): Remove.
10363 * config/i386/linux.h (TARGET_VERSION): Remove.
10364 * config/i386/linux64.h (TARGET_VERSION): Remove.
10365 * config/i386/lynx.h (TARGET_VERSION): Remove.
10366 * config/i386/mingw32.h (TARGET_VERSION): Remove.
10367 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
10368 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
10369 * config/i386/netware.h (TARGET_VERSION): Remove.
10370 * config/i386/nto.h (TARGET_VERSION): Remove.
10371 * config/i386/openbsd.h (TARGET_VERSION): Remove.
10372 * config/i386/vxworks.h (TARGET_VERSION): Remove.
10373 * config/ia64/elf.h (TARGET_VERSION): Remove.
10374 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
10375 * config/ia64/hpux.h (TARGET_VERSION): Remove.
10376 * config/ia64/linux.h (TARGET_VERSION): Remove.
10377 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
10378 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
10379 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
10380 * config/lm32/lm32.h (TARGET_VERSION): Remove.
10381 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
10382 * config/m32c/m32c.h (TARGET_VERSION): Remove.
10383 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
10384 * config/m32r/m32r.h (TARGET_VERSION): Remove.
10385 * config/m68k/linux.h (TARGET_VERSION): Remove.
10386 * config/m68k/m68k.h (TARGET_VERSION): Remove.
10387 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
10388 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
10389 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
10390 * config/mep/mep.h (TARGET_VERSION): Remove.
10391 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
10392 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
10393 * config/mips/iris6.h (MACHINE_TYPE): Remove.
10394 * config/mips/linux.h (TARGET_VERSION): Remove.
10395 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
10396 * config/mips/vxworks.h (TARGET_VERSION): Remove.
10397 * config/mmix/mmix.h (TARGET_VERSION): Remove.
10398 * config/mn10300/linux.h (TARGET_VERSION): Remove.
10399 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
10400 * config/pa/pa.h (TARGET_VERSION): Remove.
10401 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
10402 * config/picochip/picochip.h (TARGET_VERSION): Remove.
10403 * config/rs6000/aix.h (TARGET_VERSION): Remove.
10404 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
10405 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
10406 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
10407 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
10408 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
10409 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
10410 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
10411 * config/rs6000/linux.h (TARGET_VERSION): Remove.
10412 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
10413 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
10414 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
10415 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
10416 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
10417 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
10418 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
10419 * config/s390/linux.h (TARGET_VERSION): Remove.
10420 * config/s390/s390.h (TARGET_VERSION): Remove.
10421 * config/s390/tpf.h (TARGET_VERSION): Remove.
10422 * config/score/score.h (TARGET_VERSION): Remove.
10423 * config/sh/linux.h (TARGET_VERSION): Remove.
10424 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
10425 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
10426 * config/sh/sh.h (TARGET_VERSION): Remove.
10427 * config/sh/sh64.h (TARGET_VERSION): Remove.
10428 * config/sh/superh.h (TARGET_VERSION): Remove.
10429 * config/sh/vxworks.h (TARGET_VERSION): Remove.
10430 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
10431 * config/sparc/linux.h (TARGET_VERSION): Remove.
10432 * config/sparc/linux64.h (TARGET_VERSION): Remove.
10433 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
10434 TARGET_NAME32, TARGET_NAME): Remove.
10435 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
10436 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
10437 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
10438 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
10439 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
10440 * config/spu/spu.h (TARGET_VERSION): Remove.
10441 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
10442 * config/v850/v850.h (TARGET_VERSION): Remove.
10443 * config/vax/linux.h (TARGET_VERSION): Remove.
10444 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
10445 * config/xtensa/elf.h (TARGET_VERSION): Remove.
10446 * config/xtensa/linux.h (TARGET_VERSION): Remove.
10447
ace31bca
EB
104482011-03-31 Eric Botcazou <ebotcazou@adacore.com>
10449
10450 PR target/48142
10451 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
10452 frame-related from frame-unrelated adjustments to the stack pointer.
10453
76f9db36
JJ
104542011-03-31 Jakub Jelinek <jakub@redhat.com>
10455
10456 * common.opt (fdebug-types-section): Move earlier.
10457 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
10458
b7826465
AT
104592011-03-31 Andreas Tobler <andreast@fgznet.ch>
10460
10461 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
10462 var.
10463
1290e54c
NF
104642011-03-30 Nathan Froyd <froydnj@codesourcery.com>
10465
10466 * tree.h (CASE_CHAIN): Define.
10467 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
10468 (gimple_redirect_edge_and_branch): Likewise.
10469
bddc98e1
VM
104702011-03-30 Vladimir Makarov <vmakarov@redhat.com>
10471
10472 PR middle-end/48367
10473 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
10474 calculation.
10475
c865e437
JL
104762011-03-30 Jeff Law <law@redhat.com>
10477
b3750213 10478 * PR bootstrap/48371
c865e437
JL
10479 * reload1.c (reload): Fix botch in last change.
10480
10481 * reload.h (struct reload): Fix typo introduced in last change.
10482
2cdf9574
JM
104832011-03-30 Joseph Myers <joseph@codesourcery.com>
10484
10485 * config/arm/arm.opt (mhard-float, msoft-float): Mark
10486 Undocumented. Remove help text.
10487 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
10488 -mhard-float.
10489
666a21a2
JM
104902011-03-30 Joseph Myers <joseph@codesourcery.com>
10491
10492 * doc/options.texi (NegativeAlias): Document.
10493 (Alias): Mention NegativeAlias.
10494 * opt-functions.awk: Handle NegativeAlias.
e9c18386 10495 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
10496 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
10497 * opts.h (CL_NEGATIVE_ALIAS): Define.
10498 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
10499 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
10500 OPT_mspe_.
10501 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
10502 Alias entries.
10503 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10504 mno-spe and mno-isel instead of mspe=no and -misel=no.
10505
0fa4e351
MW
105062011-03-29 Mark Wielaard <mjw@redhat.com>
10507
10508 * common.opt (fdebug-types-section): New flag.
10509 * doc/invoke.texi: Document new -fno-debug-types-section flag.
10510 * dwarf2out.c (use_debug_types): New define.
10511 (struct die_struct): Mark die_id with GTY desc use_debug_types.
10512 (print_die): Guard output of type unit signatures using
10513 use_debug_types.
10514 (build_abbrev_table): Replace assert of dwarf_version >= 4
10515 with assert on use_debug_types.
10516 (size_of_die): Likewise.
10517 (unmark_dies): Likewise.
10518 (value_format): Decide AT_ref_external form on use_debug_types.
10519 (output_die): Replace dwarf_version version check guard with
10520 use_debug_types where appropriate.
10521 (modified_type_die): Likewise.
10522 (gen_reference_type_die): Likewise.
10523 (dwarf2out_start_source_file): Likewise.
10524 (dwarf2out_end_source_file): Likewise.
10525 (prune_unused_types_walk_attribs): Likewise.
10526 (dwarf2out_finish): Likewise.
10527
4648deb4
VM
105282011-03-30 Vladimir Makarov <vmakarov@redhat.com>
10529
10530 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
10531
4f431835
RS
105322011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
10533
10534 PR rtl-optimization/48332
10535 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
10536 mode of input operand N and modeN to its actual mode.
10537
f2034d06
JL
105382011-03-30 Jeff Law <law@redhat.com>
10539
10540 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
10541 define accessor macro.
10542 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
10543 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
10544 (reg_equiv_init): Likewise.
10545 (reg_equivs_size): New variable.
10546 (reg_equiv_init_size): Remove.
10547 (allocate_initial_values): Move prototype to here from....
10548 * integrate.h (allocate_initial_values): Remove prototype.
10549 * integrate.c: Include reload.h.
10550 (allocate_initial_values): Corresponding changes.
10551 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
10552 (fix_reg_equiv_init, no_equiv): Corresponding changes.
10553 (update_equiv_regs): Corresponding changes.
10554 (ira): Corresponding changes.
10555 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
10556 (push_secondary_reload): Corresponding changes.
10557 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
10558 (make_memloc, find_reloads_address): Corresponding changes.
10559 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
10560 (find_reloads_address_1): Corresponding changes.
10561 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
10562 (refers_to_regno_for_reload_p): Corresponding changes.
10563 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
10564 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
10565 * reload1.c: Include ggc.h.
10566 (grow_reg_equivs): New function.
10567 (replace_pseudos_in, reload): Corresponding changes.
10568 (calculate_needs_all_insns, alter_regs): Corresponding changes.
10569 (eliminate_regs_1, elimination_effects): Corresponding changes.
10570 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
10571 (delete_output_reload): Likewise.
10572 * caller-save.c (mark_referenced_regs): Corresponding changes.
10573 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
10574 * frv/predicates.md (frv_load_operand): Corresponding changes.
10575 * microblaze/microblaze.c (double_memory_operand): Corresponding
10576 changes.
10577 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
10578 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 10579 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
10580 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
10581 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
10582 changes.
10583 * pa/pa.c (emit_move_sequence): Corresponding changes.
10584 * vax/vax.c (nonindexed_address_p): Corresponding changes.
10585
159b81b0
RS
105862011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
10587
10588 PR target/47551
10589 * config/arm/arm.c (coproc_secondary_reload_class): Handle
10590 structure modes. Don't check neon_vector_mem_operand for
10591 vector or structure modes.
10592
a6217191
RS
105932011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
10594 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10595
10596 PR target/43590
10597 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
10598 operand 1 and reshuffle the operands to match.
10599 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
10600
bd837408
CS
106012011-03-30 Christian Schüler <cschueler@gmx.de>
10602
6955d771 10603 PR driver/48208
bd837408 10604 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 10605
6955d771 10606 PR driver/48260
bd837408
CS
10607 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
10608 handler function.
10609 * config/darwin.opt: Added '-arch' option.
10610
e9c0470a
NC
106112011-03-30 Nick Clifton <nickc@redhat.com>
10612
10613 * config/rx/rx.md: Add peepholes and patterns to combine
10614 extending loads and simple arithmetic instructions.
10615 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
10616 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
10617 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 10618 modes to use pre-decrement and post-increment addressing.
e9c18386 10619 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 10620 addresses.
e9c18386
UB
10621 (rx_print_operand): Add support for %Q. Fix handling of %Q.
10622 (rx_memory_move_cost): Adjust cost of stores.
10623 (rx_adjust_insn_length): New function.
e9c0470a 10624
8a87e7ab
JJ
106252011-03-30 Jakub Jelinek <jakub@redhat.com>
10626
10627 PR c/48305
10628 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10629 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
10630 matching arg00/arg01 types.
10631
12486e03
EB
106322011-03-30 Eric Botcazou <ebotcazou@adacore.com>
10633
10634 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
10635 last_location to UNKNOWN_LOCATION.
10636
0b99eef6
L
106372011-03-30 H.J. Lu <hongjiu.lu@intel.com>
10638
10639 PR target/48349
10640 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
10641 FLOAT_SSE_REGS.
10642
023592aa
JM
106432011-03-30 Joseph Myers <joseph@codesourcery.com>
10644 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10645
10646 PR bootstrap/48337
10647 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
10648 Init(PROCESSOR_V7).
10649 (sparc_cpu): Likewise.
10650 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
10651 PROCESSOR_V7.
10652
ad3b266b
VM
106532011-03-29 Vladimir Makarov <vmakarov@redhat.com>
10654
10655 PR target/48336
10656 PR middle-end/48342
10657 PR rtl-optimization/48345
10658 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
10659 hard regs for given mode from profitable regs when doing secondary
10660 allocation.
10661
633c9126
JL
106622011-03-29 Jeff Law <law@redhat.com>
10663
10664 PR bootstrap/48327
10665 * tree-ssa-threadupdate.c (struct redirection_data): Remove
10666 do_not_duplicate field.
10667 (lookup_redirection_data): Corresponding changes.
10668 (create_duplicates): Always create a template block.
10669 (redirect_edges): Remove code which reused the original block
10670 when it was going to become unreachable code.
10671 (thread_block): Don't set do_not_duplicate field.
10672
eb50f63a
JM
106732011-03-29 Joseph Myers <joseph@codesourcery.com>
10674
10675 * lto-opts.c (register_user_option_p, lto_register_user_option):
10676 Make type argument unsigned.
10677 * lto-streamer.h (lto_register_user_option): Make type argument
10678 unsigned.
10679 * opth-gen.awk: Make CL_* macros unsigned.
10680 * opts-common.c (find_opt): Make lang_mask argument unsigned.
10681 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
10682 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
10683 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
10684 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
10685 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
10686 (find_opt): Make lang_mask argument unsigned.
10687
76763a6d
VM
106882011-03-29 Vladimir Makarov <vmakarov@redhat.com>
10689
10690 PR rtl-optimization/48331
10691 PR rtl-optimization/48334
10692 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
10693 for any used algorithm.
10694
5c82436e
VM
106952011-03-29 Vladimir Makarov <vmakarov@redhat.com>
10696
10697 * ira-conflicts.c (build_object_conflicts): Add unused attribute
10698 to parent_max.
10699
7a81008b
UB
107002011-03-29 Uros Bizjak <ubizjak@gmail.com>
10701
10702 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
10703 (alpha_option_override): Don't set alpha_sr_alias_set.
10704 (emit_frame_store_1): Use gen_frame_mem rather than calling
10705 set_mem_alias_set.
10706 (alpha_expand_epilogue): Ditto.
10707
86c8d1f6
IR
107082011-03-29 Ira Rosen <ira.rosen@linaro.org>
10709
10710 PR tree-optimization/48290
10711 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
10712 vectorization, check that relevant phis in the basic block after
10713 the inner loop are really inner loop's exit phis.
10714
0d12220f
RS
107152011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
10716
e8cf17e7 10717 PR debug/48190
0d12220f
RS
10718 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
10719 (cached_dw_loc_list_def): New structure.
10720 (cached_dw_loc_list): New typedef.
10721 (cached_dw_loc_list_table): New variable.
10722 (cached_dw_loc_list_table_hash): New function.
10723 (cached_dw_loc_list_table_eq): Likewise.
10724 (add_location_or_const_value_attribute): Take a bool cache_p.
10725 Cache the list when the parameter is true.
10726 (gen_formal_parameter_die): Update caller.
10727 (gen_variable_die): Likewise.
10728 (dwarf2out_finish): Likewise.
10729 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
10730 while generating debug info for the decl.
10731 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
10732 (dwarf2out_init): Initialize cached_dw_loc_list_table.
10733 (resolve_addr): Cache the result of resolving a chain of
10734 location lists.
10735
1756cb66
VM
107362011-03-28 Vladimir Makarov <vmakarov@redhat.com>
10737
10738 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
10739 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 10740
1756cb66
VM
10741 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
10742 after regstat_init_n_sets_and_refs.
10743
10744 * ira.c: Add more comments at the top.
10745 (setup_stack_reg_pressure_class, setup_pressure_classes):
10746 Add comments how we compute the register pressure classes.
10747 (setup_allocno_and_important_classes): Add more comments.
10748 (setup_class_translate_array, reorder_important_classes)
10749 (setup_reg_class_relations): Add comments.
10750
10751 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
10752 start of the file.
10753
10754 * ira-color.c: Add 2011 to the Copyright line.
10755 (assign_hard_reg): Add more comments.
10756 (improve_allocation): Ditto.
10757
10758 * ira-costs.c: Add 2011 to the Copyright line.
10759 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
10760 comments.
10761 (setup_regno_cost_classes_by_mode): Ditto.
10762
10763 Initial patches from ira-improv branch:
10764
10765 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
10766
f60c2554 10767 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
10768 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
10769 (ira_create_allocno): Remove initialization of
10770 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
10771 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
10772 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
10773 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
10774 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
10775 Initialize ALLOCNO_ADD_DATA.
10776 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
10777 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
10778 ALLOCNO_REG.
10779 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
10780 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
10781
10782 * ira.c (ira_reallocate): Remove.
10783 (setup_pressure_classes): Call
10784 ira_init_register_move_cost_if_necessary. Use
10785 ira_register_move_cost instead of ira_get_register_move_cost.
10786 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
10787 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
10788
10789 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
10790 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
10791 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
10792 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
10793 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
10794 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
10795 Fix formatting.
7a81008b 10796 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
10797 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
10798 (struct allocno_color_data): New.
10799 (allocno_color_data_t): New typedef.
10800 (allocno_color_data): New definition.
10801 (ALLOCNO_COLOR_DATA): New macro.
10802 (struct object_color_data): New.
10803 (object_color_data_t): New typedef.
10804 (object_color_data): New definition.
10805 (OBJECT_COLOR_DATA): New macro.
10806 (update_copy_costs, calculate_allocno_spill_cost): Call
10807 ira_init_register_move_cost_if_necessary. Use
10808 ira_register_move_cost instead of ira_get_register_move_cost.
10809 (move_spill_restore, update_curr_costs): Ditto.
10810 (allocno_spill_priority): Make it inline.
7a81008b 10811 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
10812 (struct coalesce_data, coalesce_data_t): New.
10813 (allocno_coalesce_data): New definition.
10814 (ALLOCNO_COALESCE_DATA): New macro.
10815 (merge_allocnos, coalesced_allocno_conflict_p): Use
10816 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
10817 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
10818 (coalesce_allocnos): Ditto.
10819 (setup_coalesced_allocno_costs_and_nums): Ditto.
10820 (collect_spilled_coalesced_allocnos): Ditto.
10821 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
10822 (setup_slot_coalesced_allocno_live_ranges): Ditto.
10823 (coalesce_spill_slots): Ditto.
10824 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
10825 free allocno_coalesce_data.
10826
10827 * ira-conflicts.c: Fix formatting.
10828 (process_regs_for_copy): Call
10829 ira_init_register_move_cost_if_necessary. Use
10830 ira_register_move_cost instead of ira_get_register_move_cost.
10831 (build_object_conflicts): Optimize.
10832
10833 * ira-costs.c (record_reg_classes): Optimize. Call
10834 ira_init_register_move_cost_if_necessary. Use
10835 ira_register_move_cost, ira_may_move_in_cost, and
10836 ira_may_move_out_cost instead of ira_get_register_move_cost and
10837 ira_get_may_move_cost.
10838 (record_address_regs): Ditto.
10839 (scan_one_insn): Optimize.
10840 (find_costs_and_classes): Optimize.
10841 (process_bb_node_for_hard_reg_moves): Call
10842 ira_init_register_move_cost_if_necessary. Use
10843 ira_register_move_cost instead of ira_get_register_move_cost.
10844
10845 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
10846 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
10847 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
10848 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
10849 definitions.
10850 (ira_initiate_emit_data, ira_finish_emit_data)
10851 (create_new_allocno): New functions.
7a81008b 10852 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
10853 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
10854 Use ira_register_move_cost instead of ira_get_register_move_cost.
10855
10856 * ira-int.h: Fix some comments.
7a81008b
UB
10857 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
10858 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
10859 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
10860 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
10861 add_data.
10862 (struct ira_allocno): Make mode and aclass a bitfield. Move other
10863 bitfield after mode. Make hard_regno a short int. Make
10864 hard_regno short. Remove first_coalesced_allocno and
10865 next_coalesced_allocno. Move mem_optimized_dest_p,
10866 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
10867 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
10868 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
10869 temp, colorable_p. Add new member add_data.
10870 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
10871 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
10872 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
10873 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
10874 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
10875 (ALLOCNO_ADD_DATA): New macro.
10876 (ira_emit_data_t): New typedef.
10877 (struct ira_emit_data): New. Move mem_optimized_dest_p,
10878 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
10879 from struct ira_allocno.
10880 (ALLOCNO_EMIT_DATA): New macro.
10881 (ira_allocno_emit_data, allocno_emit_reg): New.
10882 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 10883 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
10884 (OBJECT_ADD_DATA): New macro.
10885 (ira_reallocate): Remove.
10886 (ira_initiate_emit_data, ira_finish_emit_data): New.
10887 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
10888 (ira_init_register_move_cost_if_necessary): New.
10889 (ira_object_conflict_iter_next): Merge into
10890 ira_object_conflict_iter_cond.
7a81008b 10891 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 10892
f60c2554 10893 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
10894 ira_init_register_move_cost_if_necessary. Use
10895 ira_register_move_cost instead of ira_get_register_move_cost.
10896
10897 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
10898
10899 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
10900
10901 * ira-costs.c: Fix formatting.
10902 (cost_classes, cost_classes_num): Remove.
10903 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
10904 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
10905 (cost_classes_del, cost_classes_htab): New.
10906 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
10907 (initiate_regno_cost_classes, setup_cost_classes): New.
10908 (setup_regno_cost_classes_by_aclass): New.
7a81008b 10909 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
10910 (record_reg_classes): Use regno_cost_classes instead of
10911 cost_classes. Move checking opposite operand up.
10912 (record_address_regs): Use regno_cost_classes
10913 instead of cost_classes.
10914 (scan_one_insn): Ditto. Use always general register.
10915 (print_allocno_costs): Use regno_cost_classes instead of
10916 cost_classes.
10917 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
10918 (find_costs_and_classes): Set up cost classes for each registers.
10919 Use also their mode for this. Use regno_cost_classes instead of
10920 cost_classes.
10921 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
10922 cost_classes.
10923 (free_ira_costs, ira_init_costs): Don't use cost_classes.
10924 (ira_costs, ira_set_pseudo_classes): Call
10925 initiate_regno_cost_classes and finish_regno_cost_classes.
10926
10927 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
10928
10929 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
10930
10931 * target.def (ira_cover_classes): Remove.
10932
7a81008b 10933 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
10934
10935 * doc/tm.texi.in: Ditto.
10936
10937 * ira-conflicts.c: Remove mentioning cover classes from the file.
10938 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 10939 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
10940
10941 * targhooks.c (default_ira_cover_classes): Remove.
10942
10943 * targhooks.h (default_ira_cover_classes): Ditto.
10944
10945 * haifa-sched.c: Remove mentioning cover classes from the file.
10946 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
10947 ira_pressure_classes and ira_pressure_classes_num instead of
10948 ira_reg_class_cover_size and ira_reg_class_cover. Use
10949 sched_regno_pressure_class instead of sched_regno_cover_class.
10950 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
10951 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
10952
10953 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
10954 classes from the file.
10955 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
10956 (struct object_hard_regs, struct object_hard_regs_node): New.
10957 (struct ira_object): New members profitable_hard_regs,
10958 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
10959 (struct ira_allocno): Rename cover_class to aclass. Rename
10960 cover_class_cost and updated_cover_class_cost to class_cost and
10961 updated_class_cost. Remove splay_removed_p and
10962 left_conflict_size. Add new members colorable_p.
10963 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
10964 (ALLOCNO_COLORABLE_P): New macro.
10965 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
10966 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
10967 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
10968 (OBJECT_...): Rename parameter C to O.
10969 (OBJECT_PROFITABLE_HARD_REGS): New macro.
10970 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
10971 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
10972 (struct target_ira_int): New members x_ira_max_memory_move_cost,
10973 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
10974 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
10975 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
10976 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
10977 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
10978 x_ira_reg_class_subunion.
10979 (ira_max_memory_move_cost, ira_max_register_move_cost)
10980 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
10981 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
10982 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 10983 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
10984 (ira_reg_class_union): Rename to ira_reg_class_subunion.
10985 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
10986 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
10987 (ira_tune_allocno_costs_and_cover_classes): Rename to
10988 ira_tune_allocno_costs.
10989 (ira_debug_hard_regs_forest): New.
10990 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
10991 (ira_object_conflict_iter_next): Fix comments.
7a81008b 10992 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
10993 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
10994 cover_class to aclass.
10995 (ira_allocate_and_accumulate_costs): Ditto.
10996 (ira_allocate_and_set_or_copy_costs): Ditto.
10997
10998 * opts.c (decode_options): Remove ira_cover_class check.
10999
11000 * ira-color.c: Remove mentioning cover classes from the file. Use
11001 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
11002 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
11003 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
11004 (splay-tree.h): Remove include.
11005 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
11006 before copy_freq_compare_func.
11007 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
11008 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
11009 New definitions.
11010 (hard_regs_roots, hard_regs_node_vec): Ditto.
11011 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
11012 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
11013 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
11014 (create_new_object_hard_regs_node): Ditto.
11015 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 11016 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
11017 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
11018 Ditto.
11019 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
11020 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
11021 (remove_unused_object_hard_regs_nodes): Ditto.
11022 (enumerate_object_hard_regs_nodes): Ditto.
11023 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
11024 (object_hard_regs_subnode_t): Ditto.
11025 (struct object_hard_regs_subnode): Ditto.
11026 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
11027 (setup_object_hard_regs_subnode_index): Ditto.
11028 (get_object_hard_regs_subnodes_num): Ditto.
11029 (form_object_hard_regs_nodes_forest): Ditto.
11030 (finish_object_hard_regs_nodes_tree): Ditto.
11031 (finish_object_hard_regs_nodes_forest): Ditto.
11032 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 11033 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
11034 (pseudos_have_intersected_live_ranges_p): Rename to
11035 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
11036 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
11037 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
11038 (update_copy_costs): Remove assert. Skip cost update if the hard
11039 reg does not belong the class.
11040 (assign_hard_reg): Process only profitable hard regs.
11041 (uncolorable_allocnos_num): Make it scalar.
11042 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
11043 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
11044 and ira_reg_class_max_nregs.
11045 (bucket_allocno_compare_func): Check frequency first.
11046 (sort_bucket): Add compare function as a parameter.
11047 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
11048 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
11049 (push_allocno_to_stack): Rewrite for checking new allocno
11050 colorability.
7a81008b 11051 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
11052 (push_only_colorable): Pass new parameter to sort_bucket.
11053 (push_allocno_to_spill): Remove.
11054 (allocno_spill_priority_compare): Make it inline and rewrite.
11055 (splay_tree_allocate, splay_tree_free): Remove.
11056 (allocno_spill_sort_compare): New function.
11057 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
11058 build and use splay tree. Choose first allocno in uncolorable
11059 allocno bucket to spill. Remove setting spill cost.
11060 (all_conflicting_hard_regs): Remove.
11061 (setup_allocno_available_regs_num): Check only profitable hard
11062 regs. Print info about hard regs nodes.
11063 (setup_allocno_left_conflicts_size): Remove.
11064 (put_allocno_into_bucket): Don't call
7a81008b 11065 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
11066 (improve_allocation): New.
11067 (color_allocnos): Call setup_profitable_hard_regs,
11068 form_object_hard_regs_nodes_forest, improve_allocation,
11069 finish_object_hard_regs_nodes_forest. Setup spill cost.
11070 (print_loop_title): Use pressure classes.
11071 (color_allocnso): Ditto.
11072 (do_coloring): Remove allocation and freeing splay_tree_node_pool
11073 and allocnos_for_spilling.
11074 (ira_sort_regnos_for_alter_reg): Don't setup members
11075 {first,next}_coalesced_allocno.
11076 (color): Remove allocating and freeing removed_splay_allocno_vec.
11077 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
11078 prohibited_class_mode_regs.
11079
11080 * ira-lives.c: Remove mentioning cover classes from the file. Fix
11081 formatting.
11082 (update_allocno_pressure_excess_length): Use pressure classes.
11083 (inc_register_pressure, dec_register_pressure): Check for pressure
11084 class.
11085 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
11086 pressure class. Use ira_reg_class_nregs instead of
11087 ira_reg_class_max_nregs.
11088 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
11089 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
11090 (single_reg_class): Use ira_reg_class_nregs instead of
11091 ira_reg_class_max_nregs.
11092 (process_bb_node_lives): Use pressure classes.
11093
11094 * ira-emit.c: Remove mentioning cover classes from the file. Use
11095 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
11096 (change_loop): Use pressure classes.
11097 (modify_move_list): Call ira_set_allocno_class instead of
11098 ira_set_allocno_cover_class.
11099
11100 * ira-build.c: Remove mentioning cover classes from the file. Use
11101 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
11102 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
11103 ALLOCNO_UPDATED_CLASS_COST instead of
11104 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
11105 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
11106 (ira_create_allocno): Remove initialization of
11107 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
11108 ALLOCNO_COLORABLE_P.
11109 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
11110 Update conflict regs for the objects.
11111 (create_cap_allocno): Remove assert. Don't propagate
11112 ALLOCNO_AVAILABLE_REGS_NUM.
11113 (ira_free_allocno_costs): New function.
11114 (finish_allocno): Change a part of code into call of
11115 ira_free_allocno_costs.
11116 (low_pressure_loop_node_p): Use pressure classes.
11117 (object_range_compare_func): Don't compare classes.
11118 (setup_min_max_conflict_allocno_ids): Ditto.
11119
11120 * loop-invariant.c: Remove mentioning cover classes from the file.
11121 Use ira_pressure_classes and ira_pressure_classes_num instead of
11122 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
11123 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
11124 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11125 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
11126 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
11127 STACK_REG_COVER_CLASS.
11128 (get_regno_cover_class): Rename to get_regno_pressure_class.
11129 (move_loop_invariants): Initialize and finalize regstat.
11130
11131 * ira.c: Remove mentioning cover classes from the file. Add
11132 comments about coloring without cover classes. Use ALLOCNO_CLASS
11133 instead of ALLOCNO_COVER_CLASS. Fix formatting.
11134 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
11135 setup_class_subset_and_memory_move_costs.
11136 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
11137 (setup_cover_and_important_classes): Rename to
11138 setup_allocno_and_important_classes.
11139 (setup_class_translate_array): New.
11140 (setup_class_translate): Call it for allocno and pressure classes.
11141 (cover_class_order): Rename to allocno_class_order.
11142 (comp_reg_classes_func): Use ira_allocno_class_translate instead
11143 of ira_class_translate.
11144 (reorder_important_classes): Set up ira_important_class_nums.
11145 (setup_reg_class_relations): Set up ira_reg_class_superunion.
11146 (print_class_cover): Rename to print_classes. Add parameter.
11147 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
11148 Print pressure classes too.
11149 (find_reg_class_closure): Rename to find_reg_classes. Don't call
11150 setup_reg_subclasses.
7a81008b 11151 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
11152 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
11153 (setup_prohibited_class_mode_regs): Use
7a81008b 11154 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
11155 (clarify_prohibited_class_mode_regs): New function.
11156 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
11157 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
11158 (ira_init_once): Initialize them.
11159 (free_register_move_costs): Process them.
11160 (ira_init): Move calls of find_reg_classes and
11161 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
11162 Call clarify_prohibited_class_mode_regs.
11163 (ira_no_alloc_reg): Remove.
11164 (too_high_register_pressure_p): Use pressure classes.
11165
11166 * sched-deps.c: Remove mentioning cover classes from the file.
11167 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
11168 ira_pressure_classes and ira_pressure_classes_num instead of
11169 ira_reg_class_cover_size and ira_reg_class_cover.
11170 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
11171 sched_regno_pressure_class instead of sched_regno_cover_class.
11172 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
11173 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11174
11175 * ira.h: Add 2010 to Copyright.
11176 (ira_no_alloc_reg): Remove external.
11177 (struct target_ira): Rename x_ira_hard_regno_cover_class,
11178 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
11179 x_ira_class_translate to x_ira_hard_regno_allocno_class,
11180 x_ira_allocno_classes_num, x_ira_allocno_classes, and
11181 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
11182 x_ira_pressure_classes, x_ira_pressure_class_translate, and
11183 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
11184 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
11185 x_ira_no_alloc_regs.
7a81008b 11186 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
11187 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
11188 ira_allocno_classes_num and ira_allocno_classes.
11189 (ira_class_translate): Rename to ira_allocno_class_translate.
11190 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
11191 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
11192 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
11193 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
11194 (ira_no_alloc_regs): New.
11195
11196 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
11197 classes from the file. Use ALLOCNO_CLASS instead of
11198 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
11199 ALLOCNO_COVER_CLASS_COST.
11200 (regno_cover_class): Rename to regno_aclass.
11201 (record_reg_classes): Use ira_reg_class_subunion instead of
11202 ira_reg_class_union.
11203 (record_address_regs): Check overflow.
11204 (scan_one_insn): Ditto.
7a81008b 11205 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
11206 (print_pseudo_costs): Use REG_N_REFS.
11207 (find_costs_and_classes): Use classes intersected with them on the
11208 1st pass. Check overflow. Use ira_reg_class_subunion instead of
11209 ira_reg_class_union. Use ira_allocno_class_translate and
11210 regno_aclass instead of ira_class_translate and regno_cover_class.
11211 Modify code for finding regno_aclass. Setup preferred classes for
11212 the next pass.
11213 (setup_allocno_cover_class_and_costs): Rename to
11214 setup_allocno_class_and_costs. Use regno_aclass instead of
11215 regno_cover_class. Use ira_set_allocno_class instead of
11216 ira_set_allocno_cover_class.
11217 (init_costs, finish_costs): Use regno_aclass instead of
11218 regno_cover_class.
11219 (ira_costs): Use setup_allocno_class_and_costs instead of
11220 setup_allocno_cover_class_and_costs.
11221 (ira_tune_allocno_costs_and_cover_classes): Rename to
11222 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
11223 by processing objects. Use ira_reg_class_max_nregs instead of
11224 ira_reg_class_nregs.
11225
11226 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
11227
11228 * sched-int.h: Remove mentioning cover classes from the file.
11229 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
11230
11231 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
11232 classes from the file.
11233 (struct reg_pref): Rename coverclass into allocnoclass.
11234 (reg_cover_class): Rename to reg_allocno_class.
11235
7a81008b 11236 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
11237
11238 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
11239
11240 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
11241
11242 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
11243
11244 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
11245
11246 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
11247
11248 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
11249
11250 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
11251
11252 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
11253
11254 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
11255
11256 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
11257 (i386_ira_cover_classes): Ditto.
11258
11259 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
11260
11261 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
11262
11263 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
11264
11265 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
11266
11267 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
11268
11269 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
11270
11271 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
11272 (mips_ira_cover_classes): Ditto.
11273
11274 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
11275
11276 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
11277
11278 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
11279
11280 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
11281
11282 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
11283
11284 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
11285 (IRA_COVER_CLASSES_VSX): Ditto.
11286
11287 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
11288 (rs6000_ira_cover_classes): Ditto.
11289
11290 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
11291
11292 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
11293
11294 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
11295
11296 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
11297
11298 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
11299
11300 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
11301
11302 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
11303
11304 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
11305
11306 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
11307
11308 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
11309
2b80199f
JJ
113102011-03-29 Jakub Jelinek <jakub@redhat.com>
11311
71dae1fe
JJ
11312 PR debug/48253
11313 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
11314 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
11315 dw_fde_unlikely_section_end_label, cold_in_std_section,
11316 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
11317 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
11318 fields.
11319 (output_fde): Use dw_fde_second_{begin,end} if second is
11320 true, otherwise dw_fde_{begin,end}.
11321 (output_call_frame_info): Test dw_fde_second_begin != NULL
11322 instead of dw_fde_switched_sections.
11323 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
11324 fields, initialize new fields. Initialize in_std_section
11325 unconditionally from the first partition.
11326 (dwarf2out_end_epilogue): Don't override dw_fde_end when
11327 dw_fde_second_begin is non-NULL.
11328 (dwarf2out_switch_text_section): Stop initializing removed
11329 dw_fde_struct fields, initialize new fields, initialize
11330 also dw_fde_end here. Set dw_fde_switch_cfi even when
11331 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
11332 (struct var_loc_list_def): Add last_before_switch field.
11333 (arange_table, arange_table_allocated, arange_table_in_use,
11334 ARANGE_TABLE_INCREMENT, add_arange): Removed.
11335 (size_of_aranges): Count !in_std_section and !second_in_std_section
11336 hunks in fdes, instead of looking at arange_table_in_use.
11337 (output_aranges): Add aranges_length argument, don't call
11338 size_of_aranges here. Instead of using aranges_table*
11339 emit ranges for fdes when !in_std_section resp.
11340 !second_in_std_section.
11341 (dw_loc_list): Break ranges crossing section switch.
11342 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 11343 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
11344 (gen_subprogram_die): Don't call add_arange. Use
11345 dw_fde_{begin,end} for first partition and if switched
11346 section dw_fde_second_{begin,end} for the second.
11347 (var_location_switch_text_section_1,
11348 var_location_switch_text_section): New functions.
11349 (dwarf2out_begin_function): Initialize cold_text_section even
11350 when function_section () isn't text_section.
11351 (prune_unused_types): Don't walk arange_table.
11352 (dwarf2out_finish): Don't needlessly test
11353 flag_reorder_blocks_and_partition when testing cold_text_section_used.
11354 If info_section_emitted, call size_of_aranges and if it indicates
11355 non-empty .debug_aranges, call output_aranges with the computed
11356 size. Stop using removed dw_fde_struct fields, use
11357 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
11358 for second.
11359
2b80199f
JJ
11360 PR debug/48203
11361 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
11362 create ENTRY_VALUE if incoming or address of incoming's MEM
11363 is a hard REG.
11364 * dwarf2out.c (mem_loc_descriptor): Don't emit
11365 DW_OP_GNU_entry_value of DW_OP_fbreg.
11366 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
11367 on ENTRY_VALUE is able to find the canonical parameter VALUE.
11368 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
11369 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
11370 ENTRY_VALUE_EXPs.
11371 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
11372 is a REG_P or MEM_P with REG_P address, compute hash directly
11373 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
11374 (preserve_only_constants): Don't clear VALUES forwaring
11375 ENTRY_VALUE to some other VALUE.
11376
8a445129
RS
113772011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
11378
11379 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
11380 instead of GEN_INT.
11381
c82fee88
EB
113822011-03-28 Eric Botcazou <ebotcazou@adacore.com>
11383
11384 * cfgexpand.c (expand_gimple_cond): Always set the source location and
11385 block before expanding the statement.
11386 (expand_gimple_stmt_1): Likewise. Set them here...
11387 (expand_gimple_stmt): ...and not here. Tidy.
11388 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
11389 unknown.
11390
e45425ec
SB
113912011-03-28 Steven Bosscher <steven@gcc.gnu.org>
11392
11393 * Makefile.in: New rule for cprop.o.
11394 * gcse.c: Move constant/copy propagation to cprop.c.
11395 (compute_local_properties): Only handle expression tables.
11396 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
11397 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
11398 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
11399 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 11400 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
11401 compute_cprop_data, find_used_regs, try_replace_reg,
11402 find_avail_set, cprop_jump, constprop_register, cprop_insn,
11403 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
11404 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
11405 find_bypass_set, reg_killed_on_edge, bypass_block,
11406 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
11407 execute_rtl_cprop, pass_rtl_cprop): Move to...
11408 * cprop.c: ...here. New file, constant/copy propagation for RTL
11409 moved from gcse.c to here with minor cleanups in duplicated code.
11410
c09d5426
L
114112011-03-28 H.J. Lu <hongjiu.lu@intel.com>
11412
11413 * config/i386/i386.c (flag_opts): Fix a typo in
11414 -mavx256-split-unaligned-store.
11415
9eaa7740
AS
114162011-03-28 Anatoly Sokolov <aesok@post.ru>
11417
11418 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
11419 LIBCALL_VALUE): Remove macros.
11420 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11421 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11422 (h8300_function_value, h8300_libcall_value,
11423 h8300_function_value_regno_p): New functions.
11424
dcec2be2
AS
114252011-03-28 Anatoly Sokolov <aesok@post.ru>
11426
11427 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
11428
520af9ec
JL
114292011-03-28 Jeff Law <law@redhat.com>
11430
11431 * tree-ssa-threadupdate.c (redirect_edges): Call
11432 create_edge_and_update_destination_phis as needed.
11433 (create_edge_and_update_destination_phis): Accept new BB argument.
11434 All callers updated.
11435 (thread_block): Do not update the profile when threading around
11436 intermediate blocks.
11437 (thread_single_edge): Likewise.
11438 (determine_bb_domination_status): If BB is not a successor of the
11439 loop header, return NONDOMINATING.
11440 (register_jump_thread): Note when we register a jump thread around
11441 an intermediate block.
11442 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
11443 (thread_across_edge): Use it.
11444
7450b54f
TG
114452011-03-28 Tristan Gingold <gingold@adacore.com>
11446
11447 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
11448 when for_return is 2.
11449
649beb33
JL
114502011-03-28 Jeff Law <law@redhat.com>
11451
11452 * var-tracking.c (canonicalize_values_mark): Delete unused
11453 lhs assignment.
11454 (canonicalize_values_star, set_variable_part): Likewise.
11455 (clobber_variable_part, delete_variable_part): Likewise.
11456
d5b8da97
SB
114572011-03-28 Steven Bosscher <steven@gcc.gnu.org>
11458
11459 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
11460
322dd859
MJ
114612011-03-28 Martin Jambor <mjambor@suse.cz>
11462
11463 * tree-inline.c (expand_call_inline): Do not check that destination
11464 node is analyzed.
11465 (optimize_inline_calls): Assert that destination node is analyzed.
11466 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
11467 not call tree_lowering_passes.
11468 * cgraph.h (cgraph_analyze_function): Declare.
11469 * cgraphunit.c (cgraph_analyze_function): Make public.
11470
aa53e58b
JM
114712011-03-28 Joseph Myers <joseph@codesourcery.com>
11472
11473 * config/sparc/sparc-opts.h: New.
11474 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
11475 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
11476 (sparc_option_override): Store processor_type enumeration rather
11477 than string in cpu_default. Remove name and enumeration from
11478 cpu_table. Directly default -mcpu then default -mtune from -mcpu
11479 without using sparc_select. Use target_flags_explicit instead of
11480 fpu_option_set.
11481 * config/sparc/sparc.h (enum processor_type): Move to
11482 sparc-opts.h.
11483 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
11484 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
11485 HeaderInclude entry.
11486 (mcpu=, mtune=): Use Var and Enum.
11487 (sparc_processor_type): New Enum and EnumValue entries.
11488
dd350eba
RO
114892011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11490 Iain Sandoe <iains@gcc.gnu.org>
11491
11492 PR target/48245
11493 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
11494
1b29f05e
EB
114952011-03-28 Eric Botcazou <ebotcazou@adacore.com>
11496
11497 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
11498 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
11499 Insert new statements at it in lieu of STMT.
11500 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
11501 * tree-vect-stmts.c (vectorizable_store): Likewise.
11502 (vectorizable_load): Likewise.
11503
506e6808
UB
115042011-03-28 Uros Bizjak <ubizjak@gmail.com>
11505
11506 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
11507 (divtf3): Ditto.
11508 (multf3): Ditto.
11509 (subtf3): Ditto.
11510
2e939ee9
L
115112011-03-27 H.J. Lu <hongjiu.lu@intel.com>
11512
11513 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
11514 unaligned 256bit load/store.
11515 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
11516 (*avx_movdqu<avxmodesuffix>): Likewise.
11517
5e85ab88
JDA
115182011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11519
11520 PR target/48288
11521 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
11522 * config/pa/pa.md (iordi3): Use new predicate in expander.
11523 (iorsi3): Likewise.
11524
47be3d6d
AS
115252011-03-27 Anatoly Sokolov <aesok@post.ru>
11526
506e6808 11527 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 11528 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
11529 * config/mips/mips-protos.h (mips_function_value): Remove.
11530 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
11531 (mips_function_value_1): ... this. Make static. Handle receiving
11532 the function type in 'fn_decl_or_type' argument.
11533 (mips_function_value, mips_libcall_value,
11534 mips_function_value_regno_p): New function.
11535 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11536 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11537
d253656a
L
115382011-03-27 H.J. Lu <hongjiu.lu@intel.com>
11539
11540 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
11541 and -mavx256-split-unaligned-store.
11542 (ix86_option_override_internal): Split 32-byte AVX unaligned
11543 load/store by default.
11544 (ix86_avx256_split_vector_move_misalign): New.
11545 (ix86_expand_vector_move_misalign): Use it.
11546
11547 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
11548 -mavx256-split-unaligned-store.
11549
11550 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
11551 256bit load/store. Generate unaligned store on misaligned memory
11552 operand.
11553 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
11554 256bit load/store.
11555 (*avx_movdqu<avxmodesuffix>): Likewise.
11556
11557 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
11558 -mavx256-split-unaligned-store.
11559
1ea9206a
RS
115602011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
11561
11562 PR target/38598
11563 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
11564 Update commentary.
11565
b99ce2a8
RS
115662011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
11567
11568 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
11569 opno arguments with an expand_operand. Use create_input_operand.
11570 (mips_prepare_builtin_target): Delete.
11571 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
11572 functions.
11573 (mips_expand_builtin_direct): Use create_output_operand and
11574 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
11575 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
11576 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
11577
69d52339
IR
115782011-03-27 Ira Rosen <ira.rosen@linaro.org>
11579
11580 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
11581 function.
11582 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
11583
ba5e9aca
EB
115842011-03-26 Eric Botcazou <ebotcazou@adacore.com>
11585
11586 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
11587 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
11588 basic blocks and call commit_edge_insertions directly.
11589 (fixup_abnormal_edges): Move from here to...
11590 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
11591 on the edges and return whether some have actually been inserted.
11592 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
11593 compensation code.
11594
5d369d58
AB
115952011-03-26 Andrey Belevantsev <abel@ispras.ru>
11596
11597 PR rtl-optimization/48144
11598 * sel-sched-ir.c (merge_history_vect): Factor out from ...
11599 (merge_expr_data): ... here.
11600 (av_set_intersect): Rename to av_set_code_motion_filter.
11601 Update all callers. Call merge_history_vect when an expression
11602 is found in both sets.
11603 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
11604
f082c000
AM
116052011-03-26 Alan Modra <amodra@gmail.com>
11606
11607 * config/rs6000/predicates.md (word_offset_memref_op): Handle
11608 cmodel medium addresses.
11609 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
11610 64-bit gpr loads and stores.
11611 (rs6000_secondary_reload_ppc64): New function.
11612 * config/rs6000/rs6000-protos.h: Declare it.
11613 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
11614
8ac5e12e
AM
116152011-03-26 Alan Modra <amodra@gmail.com>
11616
11617 PR target/47487
11618 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
11619 GNU Go in traceback table.
11620
c2654ded
RH
116212011-03-25 Richard Henderson <rth@redhat.com>
11622
11623 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
11624 if there are exactly 6 operands.
11625 (set_storage_via_setmem): Similarly.
11626
ba78087b
KT
116272011-03-25 Kai Tietz <ktietz@redhat.com>
11628
11629 * collect2.c (write_c_file_stat): Handle backslash
11630 as right-hand directory separator.
11631 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
11632 checking just for slash.
11633 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
11634 instead of checking for trailing slash.
11635 * gcc.c (record_temp_file): Use filename_cmp instead
11636 of strcmp.
11637 (do_spec_1): Likewise.
11638 (replace_outfile_spec_function): Likewise.
11639 (is_directory): Use filename_ncmp instead of strncmp.
11640 (print_multilib_info): Likewise.
11641 * gcov.c (find_source): Use filename_cmp instead
11642 instead of strcmp.
11643 (make_gcov_file_name): Fix order of slash/backslash
11644 checks.
11645 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
11646 (add_standard_paths): Likewise.
11647 * mips-tfile.c (saber_stop): Handle backslash.
11648 * prefix.c (update_path): Use filename_ncmp instead of
11649 strncmp.
11650 * profile.c (output_location): Use filename_cmp instead
11651 of strcmp.
11652 * read-md.c (handle_toplevel_file): Handle backslash.
11653 * tlink.c (frob_extension): Likewise.
11654 * tree-cfg.c (same_line_p): Use filename_cmp instead of
11655 strcmp.
11656 * tree-dump.c (dequeue_and_dump): Handle backslash.
11657 * tree.c (get_file_function_name): Likewise.
11658 * gengtype.c (read_input_list): Likewise.
11659 (get_file_realbasename): Likewise.
11660 (get_output_file_with_visibility): Use filename_cmp
11661 instead of strcmp.
11662
75f6ec9a
RS
116632011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
11664
11665 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
11666 case to VFPv1.
11667
6c4e2997
NF
116682011-03-25 Nathan Froyd <froydnj@codesourcery.com>
11669
11670 * fold-const.c (expr_location_or): New function.
11671 (fold_truth_not_expr): Call it.
11672
0edf1bb2
JL
116732011-03-25 Jeff Law <law@redhat.com>
11674
11675 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
11676 va_end.
11677 * c-family/c-common.c (def_fn_type): Likewise.
11678 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
11679 * emit-rtl.c (gen_rtvec): Likewise.
11680 * lto/lto-lang.c (def_fn_type): Likewise.
11681
fdc2de95
RG
116822011-03-25 Richard Guenther <rguenther@suse.de>
11683
11684 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
11685 also generate copies.
11686 (fini_copy_prop): Handle constant values properly.
11687
21385db0
JJ
116882011-03-25 Jakub Jelinek <jakub@redhat.com>
11689
11690 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
11691 mode size instead of bitsize with DWARF2_ADDR_SIZE.
11692 (hash_loc_operands, compare_loc_operands): Handle
11693 DW_OP_GNU_entry_value.
11694
6510e8bb
KT
116952011-03-25 Kai Tietz <ktietz@redhat.com>
11696
11697 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
11698 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
11699 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
11700 comment and use macro TARGET_64BIT_MS_ABI instead.
11701 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
11702 and change default behavior for 32-bit MS_ABI.
11703 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
11704 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
11705 32-bit, too.
11706 (ix86_cfun_abi): Likewise.
11707 (ix86_maybe_switch_abi): Adjust comment.
11708 (init_cumulative_args): Check for bit-ness in MS_ABI case.
11709 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
11710 instead of checking for SYSV_ABI.
11711 (ix86_nsaved_sseregs): Likewise.
11712 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
11713 to 16 bytes.
11714 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
11715 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
11716 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
11717 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
11718 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
11719
34019e28
RG
117202011-03-25 Richard Guenther <rguenther@suse.de>
11721
11722 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
11723 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
11724 (verify_gimple): Remove.
11725 * tree-cfg.c (verify_gimple_call): Merge verification
11726 from verify_stmts.
11727 (verify_gimple_phi): Merge verification from verify_stmts.
11728 (verify_gimple_label): New function.
11729 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
11730 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
11731 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
11732 (verify_stmts): Rename to verify_gimple_in_cfg.
11733 (verify_gimple_in_cfg): New function.
11734 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
11735 * tree-ssa.c (verify_ssa): Likewise.
11736 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
11737
605896f5
RG
117382011-03-25 Richard Guenther <rguenther@suse.de>
11739
11740 * passes.c (init_optimization_passes): Add FRE pass after
11741 early SRA.
11742
7baa7c13
BS
117432011-03-25 Bernd Schmidt <bernds@codesourcery.com>
11744 Andrew Stubbs <ams@codesourcery.com>
11745
11746 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
11747 for Cortex-A8.
11748 (arm_movdi_vfp_cortexa8): New pattern.
11749 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
11750 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
11751 instructions when tuning for Cortex-A8. Set attribute "arch".
11752 * config/arm/arm.md: Move include arm-tune.md up a bit.
11753 (define_attr "arch"): Add "onlya8" and "nota8" values.
11754 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
11755
45dbce1b
NF
117562011-03-25 Nathan Froyd <froydnj@codesourcery.com>
11757
4ff08abf 11758 PR bootstrap/48282
45dbce1b
NF
11759 Revert:
11760 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
11761
11762 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
11763 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
11764 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
11765 * passes.c (init_optimization_passes): Move
11766 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
11767
ac9a30ae
KT
117682011-03-25 Kai Tietz <ktietz@redhat.com>
11769
11770 * c-typeck.c (comptypes_internal): Replace target
11771 hook call of comp_type_attributes by version in tree.c file.
11772 * gimple.c (gimple_types_compatible_p_1): Likewise.
11773 * tree-ssa.c (useless_type_conversion_p): Likewise.
11774 * tree.c (build_type_attribute_qual_variant): Likewise.
11775 (attribute_value_equal): New static helper function.
11776 (comp_type_attributes): New function.
11777 (merge_attributes): Use attribute_value_equal for comparison.
11778 (attribute_list_contained): Likewise.
11779 * tree.h (comp_type_attributes): New prototype.
11780
afdac116
RG
117812011-03-25 Richard Guenther <rguenther@suse.de>
11782
11783 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
11784 of complex types at -O0.
11785 (verify_gimple_assign_binary): Likewise.
11786 (verify_gimple_assign_ternary): Likewise.
11787
ec6165f8
MW
117882011-03-24 Mark Wielaard <mjw@redhat.com>
11789
11790 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
11791 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
11792
2a5ac39a
MW
117932011-03-24 Mark Wielaard <mjw@redhat.com>
11794
11795 PR debug/48041
11796 * dwarf2out.c (output_abbrev_section): Only write table when
11797 abbrev_die_table_in_use > 1.
11798
e533b2a4
RH
117992011-02-24 Richard Henderson <rth@redhat.com>
11800
11801 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
11802 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
11803 (alpha_expand_unaligned_load_words): Use extql.
11804 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
11805 (emit_insxl): Handle all modes for consistency.
11806
0b2a7367
RH
118072011-02-24 Richard Henderson <rth@redhat.com>
11808
11809 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
11810 (alpha_expand_unaligned_load): Likewise.
11811 (alpha_expand_unaligned_store): Likewise.
11812 (alpha_expand_unaligned_load_words): Likewise.
11813 (alpha_expand_unaligned_store_words): Likewise.
11814 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
11815 (alpha_split_lock_test_and_set_12): Likewise.
11816 (print_operand, alpha_fold_builtin_extxx): Likewise.
11817 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
11818 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
11819 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
11820 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
11821 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
11822 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
11823 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
11824 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
11825 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
11826 (extwl, extll, extql): Similarly.
11827 (inswh, inslh, insqh): Similarly.
11828 (mskbl, mskwl, mskll, mskql): Similarly.
11829 (mskwh, msklh, mskqh): Similarly.
11830
315b2bef
RH
118312011-02-24 Richard Henderson <rth@redhat.com>
11832
11833 * config/alpha/alpha.md (attribute isa): Add er, ner.
11834 (attribute enabled): Handle them.
11835 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
11836
67102517
RH
118372011-02-24 Richard Henderson <rth@redhat.com>
11838
11839 * config/alpha/alpha.md (attribute isa): Add vms.
11840 (attribute enabled): Handle it.
11841 (*movsf): Merge *movsf_{nofix,fix,nofp}.
11842 (*movdf): Merge *movdf_{nofix,fix,nofp}.
11843 (*movtf): Rename from *movtf_internal for consistency.
11844 (*movsi): Merge with *movsi_nt_vms.
11845 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
11846 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
11847 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
11848 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
11849
6aba5cb4
RH
118502011-02-24 Richard Henderson <rth@redhat.com>
11851
11852 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
11853 (extendqisi2, extendhisi2): Likewise.
11854 (extendqidi2): Simplify BWX/non-BWX expansions.
11855 (extendhidi2): Similarly.
11856
bdfb351b
RH
118572011-02-24 Richard Henderson <rth@redhat.com>
11858
11859 * config/alpha/alpha.md (attribute isa): New.
11860 (attribute enabled): New.
11861 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
11862 (zero_extendqisi2, zero_extendqidi2): Similarly.
11863 (zero_extendhisi2, zero_extendhidi2): Similarly.
11864 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
11865
6abe71eb
RH
118662011-02-24 Richard Henderson <rth@redhat.com>
11867
11868 * config/alpha/predicates.md (input_operand): Revert last change;
11869 update comment to mention 32-bit VMS rather than Windows.
11870
7114321e
NF
118712011-03-24 Nathan Froyd <froydnj@codesourcery.com>
11872
11873 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
11874 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
11875 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
11876 * passes.c (init_optimization_passes): Move
11877 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
11878
c8679567
EB
118792011-03-24 Eric Botcazou <ebotcazou@adacore.com>
11880
11881 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
11882
27173058
UB
118832011-03-24 Uros Bizjak <ubizjak@gmail.com>
11884
11885 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
11886 correctly.
11887
6f0c9f06
JJ
118882011-03-24 Jakub Jelinek <jakub@redhat.com>
11889
11890 PR debug/48204
11891 * simplify-rtx.c (simplify_const_unary_operation): Call
11892 real_convert when changing mode class with FLOAT_EXTEND.
11893
662666e5
NC
118942011-03-24 Nick Clifton <nickc@redhat.com>
11895
11896 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
11897 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
11898 * config/rx/rx.c (rx_option_override): Set align_jumps,
11899 align_loops and align_labels if not set by the user.
11900 (rx_align_for_label): New function.
11901 (rx_max_skip_for_label): New function.
11902 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
11903 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
11904 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
11905 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
11906 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
11907
2b99b2b8
RS
119082011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
11909
11910 PR rtl-optimization/48263
11911 * optabs.c (expand_binop_directly): Reinstate convert_modes code
11912 and original commutative_p handling. Use maybe_gen_insn.
11913
ccecd6ea
AK
119142011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11915
11916 * reload.c (find_reloads_subreg_address): Add address_reloaded
11917 parameter and return true there if the full address has been
11918 reloaded.
11919 (find_reloads_toplev): Pass address_reloaded flag.
11920 (find_reloads_address_1): Don't use address_reloaded parameter.
11921
67295642
JL
119222011-03-24 Jeff Law <law@redhat.com>
11923
11924 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
11925 unused variable "ann".
11926 (remove_unused_locals): Likewise.
11927
11928 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
11929 statement.
11930
11931 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
11932 after it is freed.
11933
212aa74f
AK
119342011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11935
11936 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
11937 for invalid symbolic addresses.
11938 (s390_secondary_reload): Don't use s390_check_symref_alignment for
11939 larl operands.
11940
fe784e0d
EB
119412011-03-24 Eric Botcazou <ebotcazou@adacore.com>
11942
11943 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
11944 the argument in calls to fold_truth_not_expr.
11945
63ee8641
NF
119462011-03-24 Nathan Froyd <froydnj@codesourcery.com>
11947
11948 * tree.c (record_node_allocation_statistics): New function.
11949 (make_node_stat, copy_node_stat, build_string): Call it.
11950 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
11951 (build1_stat, build_omp_clause): Likewise.
11952
61be2a1c
RS
119532011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
11954
11955 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
11956 last commit.
11957
a881aaa7
RG
119582011-03-24 Richard Guenther <rguenther@suse.de>
11959
11960 PR tree-optimization/48271
11961 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
11962 blocks that still exist.
11963
dbaa912c
RG
119642011-03-24 Richard Guenther <rguenther@suse.de>
11965
11966 PR tree-optimization/48270
11967 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
11968 not free datarefs before ddrs.
11969
1d60cc55
EB
119702011-03-24 Eric Botcazou <ebotcazou@adacore.com>
11971
11972 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
11973 from the address built for a reference with variable offset.
11974
c78dd519
UB
119752011-03-24 Uros Bizjak <ubizjak@gmail.com>
11976
11977 PR target/48237
11978 * config/i386/i386.md (*movdf_internal_rex64): Do not split
11979 alternatives that can be handled with movq or movabsq insn.
11980 (*movdf_internal): Disable for !TARGET_64BIT.
11981 (*movdf_internal_nointeger): Ditto.
11982 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
11983
b25b9e8f
NF
119842011-03-24 Nathan Froyd <froydnj@codesourcery.com>
11985
11986 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
11987 (FUNCTION_ARG_ADVANCE): Likewise.
11988 * tm.texi.in: Change references to them to hook references.
11989 * tm.texi: Regenerate.
c78dd519 11990 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
11991 (default_function_incoming_arg): Likewise.
11992 (default_function_arg_advance): Likewise.
c78dd519 11993 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
11994 (function_arg_advance): Likewise.
11995 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
11996
190b2187
RG
119972011-03-24 Richard Guenther <rguenther@suse.de>
11998
11999 PR middle-end/48269
12000 * tree-object-size.c (addr_object_size): Do not double-account
12001 for MEM_REF offsets.
12002
a183b5c7
DN
120032011-03-24 Diego Novillo <dnovillo@google.com>
12004
12005 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 12006 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
12007 (lto_input_data_block): Move from lto-opts.c. Make extern.
12008 Update all users.
12009 (lto_input_string): Rename from input_string. Make extern.
12010 Update all users.
12011 * lto-streamer-out.c (lto_output_string_with_length): Rename from
12012 output_string_with_length.
12013 Output 0 to indicate a non-NULL string. Update all callers to
12014 not emit 0.
12015 (lto_output_string): Rename from output_string. Make extern.
12016 Update all users.
12017 (lto_output_decl_state_streams): Make extern.
12018 (lto_output_decl_state_refs): Make extern.
12019 * lto-streamer.h (lto_input_string): Declare.
12020 (lto_input_data_block): Declare.
12021 (lto_output_string): Declare.
12022 (lto_output_string_with_length): Declare.
12023 (lto_output_decl_state_streams): Declare.
12024 (lto_output_decl_state_refs): Declare.
12025
cfef45c8
RG
120262011-03-24 Richard Guenther <rguenther@suse.de>
12027
12028 PR tree-optimization/46562
12029 * tree.c (build_invariant_address): New function.
12030 * tree.h (build_invariant_address): Declare.
12031 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
12032 a renamed function moved ...
12033 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
12034 Take valueization callback parameter.
12035 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
12036 * gimple-fold.h: New file.
12037 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
12038 (ccp_fold, fold_const_aggregate_ref,
12039 fold_ctor_reference, fold_nonarray_ctor_reference,
12040 fold_array_ctor_reference, fold_string_cst_ctor_reference,
12041 get_base_constructor): Move ...
12042 * gimple-fold.c: ... here.
12043 (gimple_fold_stmt_to_constant_1): New function
12044 split out from ccp_fold. Take a valueization callback parameter.
12045 Valueize all operands.
12046 (gimple_fold_stmt_to_constant): New wrapper function.
12047 (fold_const_aggregate_ref_1): New function split out from
12048 fold_const_aggregate_ref. Take a valueization callback parameter.
12049 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
12050 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
12051 invariant POINTER_PLUS_EXPRs to invariant form.
12052 (vn_valueize): New function.
12053 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
12054 * tree-vrp.c (vrp_valueize): New function.
12055 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
12056 to fold statements to constants.
12057 * tree-ssa-pre.c (eliminate): Properly guard propagation of
12058 function declarations.
12059 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
12060 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
12061
5e0a7e40
RS
120622011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
12063
12064 * config/h8300/predicates.md (jump_address_operand): Fix register
12065 mode check.
12066
bfe068c3
IR
120672011-03-24 Ira Rosen <ira.rosen@linaro.org>
12068
12069 * doc/invoke.texi (max-stores-to-sink): Document.
12070 * params.h (MAX_STORES_TO_SINK): Define.
12071 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
12072 if either vectorization or if-conversion is disabled.
12073 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
12074 tree-vect-data-refs.c vect_equal_offsets.
12075 (dr_equal_offsets_p): New function.
12076 (find_data_references_in_bb): Remove static.
12077 * tree-data-ref.h (find_data_references_in_bb): Declare.
12078 (dr_equal_offsets_p): Likewise.
12079 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
12080 (vect_drs_dependent_in_basic_block): Update calls to
12081 vect_equal_offsets.
12082 (vect_check_interleaving): Likewise.
12083 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
12084 (cond_if_else_store_replacement): Rename to...
12085 (cond_if_else_store_replacement_1): ... this. Change arguments and
12086 documentation.
12087 (cond_if_else_store_replacement): New function.
12088 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
12089 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
12090
4908b0bf
CLT
120912011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
12092
12093 PR target/46934
12094 * config/arm/arm.md (casesi): Use the gen_int_mode() function
12095 to subtract lower bound instead of GEN_INT().
12096
2be478a2
JW
120972011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
12098
12099 PR other/48179
12100 PR other/48221
12101 PR other/48234
12102 * doc/extend.texi (Alignment): Move section to match order in TOC.
12103 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
12104 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
12105
0c617be4
JL
121062011-03-23 Jeff Law <law@redhat.com>
12107
12108 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
12109 before removing the edge.
12110
12111 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
12112 it may have been freed by redirect_branch_edge or
12113 redirect_edge_succ_nodup.
12114
58da96fe
RG
121152011-03-23 Richard Guenther <rguenther@suse.de>
12116
c78dd519 12117 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
12118 (check_va_list_escapes): Likewise.
12119 (check_all_va_list_escapes): Likewise.
12120
b8beb4d1
RG
121212011-03-23 Richard Guenther <rguenther@suse.de>
12122
12123 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
12124 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
12125 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
12126 (alias.o): Likewise.
12127 (ipa-type-escape.o): Remove.
12128 (ipa-struct-reorg.o): Likewise.
12129 (GTFILES): Remove ipa-struct-reorg.c.
12130 * alias.c: Do not include ipa-type-escape.h.
12131 * tree-ssa-alias.c: Likewise.
12132 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
12133 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
12134 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
12135 and ipa-type-escape passes.
12136 * tree-pass.h (pass_ipa_type_escape): Remove.
12137 (pass_ipa_struct_reorg): Likewise.
12138 * ipa-struct-reorg.h: Remove.
12139 * ipa-struct-reorg.c: Likewise.
12140 * ipa-type-escape.h: Likewise.
12141 * ipa-type-escape.c: Likewise.
12142 * doc/invoke.texi (-fipa-struct-reorg): Remove.
12143 (--param struct-reorg-cold-struct-ratio): Likewise.
12144 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
12145 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
12146 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
12147
f137aa63
AK
121482011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12149
12150 * config/s390/2084.md: Enable all insn reservations also for z9_ec
12151 cpu attribute value.
12152 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
12153 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
12154 * config/s390/s390.c (processor_flags_table): New constant array.
12155 (s390_handle_arch_option): Remove.
12156 (s390_handle_option): Remove s390_handle_arch_option invocations
12157 and OPT_mwarn_framesize_ handling.
12158 (s390_option_override): Remove s390_handle_arch_option invocation.
12159 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
12160 warnings.
12161 * config/s390/s390.md (cpu attribute): Add z9_ec value.
12162 * config/s390/s390.opt (s390_tune, s390_arch)
12163 (march=): Replace s390_arch_option enum and values with
12164 processor_type. Set variable name to s390_arch. Set
12165 initialization value.
12166 (mtune=): Replace s390_arch_option with processor_type. Set
12167 variable name to s390_tune. Set initialization value.
12168
bf90208f
JB
121692011-03-23 Julian Brown <julian@codesourcery.com>
12170
12171 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
12172 accesses which are not naturally aligned.
12173
3460fdf3
RS
121742011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
12175
12176 PR target/47553
12177 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
12178
a5c7d693
RS
121792011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
12180
12181 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
12182 parameter from "int" to "enum insn_code".
12183 (expand_operand_type): New enum.
12184 (expand_operand): New structure.
12185 (create_expand_operand): New function.
12186 (create_fixed_operand, create_output_operand): Likewise
12187 (create_input_operand, create_convert_operand_to): Likewise.
12188 (create_convert_operand_from, create_address_operand): Likewise.
12189 (create_integer_operand): Likewise.
12190 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
12191 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
12192 (expand_insn, expand_jump_insn): Likewise.
12193 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
12194 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
12195 (expand_movstr, expand_builtin___clear_cache): Likewise.
12196 (expand_builtin_lock_release): Likewise.
12197 * explow.c (allocate_dynamic_stack_space): Likewise.
12198 (probe_stack_range): Likewise. Allow check_stack to FAIL,
12199 and use the default handling in that case.
12200 * expmed.c (check_predicate_volatile_ok): Delete.
12201 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
12202 (emit_cstore): Likewise.
12203 * expr.c (emit_block_move_via_movmem): Likewise.
12204 (set_storage_via_setmem, expand_assignment): Likewise.
12205 (emit_storent_insn, try_casesi): Likewise.
12206 (emit_single_push_insn): Likewise. Allow the expansion to fail.
12207 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
12208 (expand_vec_shift_expr, expand_binop_directly): Likewise.
12209 (expand_twoval_unop, expand_twoval_binop): Likewise.
12210 (expand_unop_direct, emit_indirect_jump): Likewise.
12211 (emit_conditional_move, vector_compare_rtx): Likewise.
12212 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
12213 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
12214 (expand_sync_lock_test_and_set): Likewise.
12215 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
12216 (emit_unop_insn): Likewise.
12217 (expand_copysign_absneg): Change icode to an insn_code.
12218 (create_convert_operand_from_type): New function.
12219 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
12220 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
12221 (expand_insn, expand_jump_insn): Likewise.
12222 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
12223 than const_int_operand for operand 2.
12224
78fadbab
AK
122252011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12226
12227 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
12228 if possible.
12229
5f02387d
NF
122302011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12231
12232 * emit-rtl.c (emit_pattern_before_noloc): New function.
12233 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
12234 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
12235 (emit_pattern_after_noloc): New function.
12236 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
12237 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
12238
fdf3e18a
NF
122392011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12240
12241 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
12242 (__ffsDI2): Likewise.
12243
42d085c1
RH
122442011-03-22 Richard Henderson <rth@redhat.com>
12245
12246 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
12247 of !TARGET_ABI_OPEN_VMS.
12248 (alpha_trampoline_init, alpha_start_function): Likewise.
12249 (alpha_expand_epilogue, alpha_file_start): Likewise.
12250 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
12251 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
12252 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
12253 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
12254 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
12255
cabbe12a
JM
122562011-03-22 Joseph Myers <joseph@codesourcery.com>
12257
12258 * config/s390/s390-opts.h: New.
12259 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
12260 s390_arch_flags, s390_warn_framesize, s390_stack_size,
12261 s390_stack_guard): Remove.
12262 (s390_handle_arch_option): Return void. Take enum
12263 s390_arch_option value instead of string and searching array.
12264 (s390_handle_option): Don't assert that global structures are in
12265 use. Access variables via opts pointer. Use error_at. Don't use
12266 sscanf for -mstack-guard= or -mstack-size=. Update call to
12267 s390_handle_arch_option.
12268 (s390_option_override): Update call to s390_handle_arch_option.
12269 (s390_emit_prologue): Use %d format for s390_stack_size in
12270 diagnostic. Use %wd for HOST_WIDE_INT.
12271 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
12272 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
12273 * config/s390/s390.opt (config/s390/s390-opts.h): New
12274 HeaderInclude entry.
12275 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
12276 s390_arch_flags, s390_warn_framesize): New Variable entries.
12277 (s390_arch_option): New Enum and EnumValue entries.
12278 (march=): Use Enum instead of Var.
12279 (mstack-guard=, mstack-size=): Use UInteger and Var.
12280 (mtune=): Use Enum.
12281
05b12036
JM
122822011-03-22 Joseph Myers <joseph@codesourcery.com>
12283
12284 * config/score/score.c (score_handle_option): Don't assert that
12285 global structures are in use. Access target_flags via opts
12286 pointer. Use value of -march= option to determine target_flags
12287 settings.
12288 * config/score/score.opt (march=): Use Enum.
12289 (score_arch): New Enum and EnumValue entries.
12290
dd51e35a
JM
122912011-03-22 Joseph Myers <joseph@codesourcery.com>
12292
12293 * config/mep/mep.c (option_mtiny_specified): Remove.
12294 (mep_option_override): Move register handling for -mivc2 from
12295 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
12296 instead of option_mtiny_specified.
12297 (mep_handle_option): Access target_flags via opts pointer. Don't
12298 assert that global structures are in use. Defer part of -mivc2
12299 handling and move it to mep_option_override.
12300 * config/mep/mep.opt (IVC2): New Mask entry.
12301 (mivc2): Use Var and Defer instead of Mask.
12302
4a8d3d91
JM
123032011-03-22 Joseph Myers <joseph@codesourcery.com>
12304
12305 * config/v850/v850-opts.h: New.
12306 * config/v850/v850.c (small_memory): Replace with
12307 small_memory_physical_max array. Make that array static const.
12308 (v850_handle_memory_option): Take integer value of argument. Take
12309 gcc_options pointer, option text and location. Return void.
12310 Update for changes to small memory structures.
12311 (v850_handle_option): Access target_flags via opts pointer. Don't
12312 assert that global structures are in use. Update calls to
12313 v850_handle_memory_option.
c78dd519
UB
12314 (v850_encode_data_area): Update references to small memory settings.
12315 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
12316 (enum small_memory_type): Move to v850-opts.h.
12317 * config/v850/v850.opt (config/v850/v850-opts.h): New
12318 HeaderInclude entry.
12319 (small_memory_max): New Variable entry.
12320 (msda): Replace by pair of options msda= and msda-. Use UInteger.
12321 (mtda, mzda): Likewise.
12322
117fdbfa
JM
123232011-03-22 Joseph Myers <joseph@codesourcery.com>
12324
12325 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
12326 pointer. Don't assert that global structures are in use.
12327
d715091c
JM
123282011-03-22 Joseph Myers <joseph@codesourcery.com>
12329
12330 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
12331 via opts pointer. Don't assert that global structures are in use.
12332
1bb721dc
JM
123332011-03-22 Joseph Myers <joseph@codesourcery.com>
12334
12335 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
12336 (munix=93): Use Var.
12337 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
12338 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
12339 * config/pa/pa-opts.h: New.
12340 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
12341 (pa_handle_option): Don't assert that global structures are in
12342 use. Access target_flags via opts pointer. Don't handle
12343 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
12344 OPT_munix_98 here.
12345 (pa_option_override): Handle deferred OPT_mfixed_range_.
12346
cd8d8754
JM
123472011-03-22 Joseph Myers <joseph@codesourcery.com>
12348
12349 * config/mn10300/mn10300-opts.h: New.
12350 * config/mn10300/mn10300.c (mn10300_processor,
12351 mn10300_tune_string): Remove.
12352 (mn10300_handle_option): Don't assert that global structures are
12353 in use. Access mn10300_processor via opts pointer. Don't handle
12354 OPT_mtune_ here.
12355 * config/mn10300/mn10300.h (enum processor_type): Move to
12356 mn10300-opts.h.
12357 (mn10300_processor): Remove.
12358 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
12359 HeaderInclude entry.
12360 (mn10300_processor): New Variable entry.
12361 (mtune=): Use Var.
12362
24e6e6b1
JM
123632011-03-22 Joseph Myers <joseph@codesourcery.com>
12364
12365 * config/microblaze/microblaze.c: Don't include opts.h.
12366 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
12367 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
12368 (mno-clearbss): Use Var and Warn.
12369
8a784afb
JM
123702011-03-22 Joseph Myers <joseph@codesourcery.com>
12371
12372 * config/m32r/m32r-opts.h: New.
12373 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
12374 (m32r_handle_option): Don't assert that global structures are in
12375 use. Access target_flags and m32r_cache_flush_func via opts
12376 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
12377 OPT_mno_flush_trap here.
12378 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
12379 include of m32r-opts.h.
12380 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
12381 HeaderInclude entry.
12382 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
12383 (mmodel=): Use Enum and Var.
12384 (m32r_model): New Enum and EnumValue entries.
12385 (mno-flush-trap): Use Var.
12386 (msdata=): Use Enum and Var.
12387 (m32r_sdata): New Enum and EnumValue entries.
12388
bbfc9a8c
JM
123892011-03-22 Joseph Myers <joseph@codesourcery.com>
12390
12391 * config/m32c/m32c.c: Don't include opts.h.
12392 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
12393 m32c_handle_option): Remove.
12394 (m32c_option_override): Check global_options_set.x_target_memregs
12395 instead of target_memregs_set.
12396 * config/m32c/m32c.h (target_memregs): Remove.
12397 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
12398 variable.
12399
e24b8335
JM
124002011-03-22 Joseph Myers <joseph@codesourcery.com>
12401
12402 * config/iq2000/iq2000-opts.h: New.
12403 * config/iq2000/iq2000.c: Don't include opts.h.
12404 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 12405 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
12406 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
12407 HeaderInclude entry.
12408 (iq2000_tune): New Variable entry.
12409 (march=): Add comment. Use Enum.
12410 (iq2000_arch): New Enum and EnumValue entries.
12411 (mcpu=): Use Enum and Var.
12412 (iq2000_tune): New Enum and EnumValue entries.
12413
e6cc0c98
JM
124142011-03-22 Joseph Myers <joseph@codesourcery.com>
12415
12416 * config/ia64/ia64-opts.h: New.
12417 * config/ia64/ia64.c (ia64_tune): Remove.
12418 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
12419 here. Use error_at.
12420 (ia64_option_override): Handle deferred OPT_mfixed_range_.
12421 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
12422 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
12423 HeaderInclude entry.
12424 (ia64_tune): New Variable entry.
12425 (mfixed-range=): Use Defer and Var.
12426 (mtune=): Use Enum and Var.
12427 (ia64_tune): New Enum and EnumValue entries.
12428
db25893c
JM
124292011-03-22 Joseph Myers <joseph@codesourcery.com>
12430
12431 * config/frv/frv-opts.h: New.
12432 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
12433 frv-opts.h.
12434 (frv_cpu_type): Remove.
12435 * config/frv/frv.c: Don't include opts.h.
12436 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 12437 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
12438 (frv_cpu_type): New Variable entry.
12439 (frv_cpu): New Enum and EnumValue entries.
12440
6c223f5d
JM
124412011-03-22 Joseph Myers <joseph@codesourcery.com>
12442
12443 * config/cris/cris.c (cris_handle_option): Access target_flags via
12444 opts pointer. Don't assert that global structures are in use.
12445 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
12446 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
12447
bbd399cf
JM
124482011-03-22 Joseph Myers <joseph@codesourcery.com>
12449
12450 * config/bfin/bfin-opts.h: New.
12451 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
12452 bfin_si_revision, bfin_workarounds): Remove.
12453 (bfin_cpus): Make static const.
12454 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
12455 not bfin_lib_id_given.
12456 (bfin_handle_option): Don't set bfin_lib_id_given. Access
12457 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 12458 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
12459 * config/bfin/bfin.h: Include bfin-opts.h.
12460 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
12461 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
12462 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
12463 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
12464 entries.
12465
5e1b4d5a
JM
124662011-03-22 Joseph Myers <joseph@codesourcery.com>
12467
12468 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
12469 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
12470 or -msoft-float here.
12471 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
12472 -msoft-float and -mhard-float.
c78dd519 12473 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
12474 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
12475 msoft-float.
12476 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
12477 -msoft-float.
12478 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
12479 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
12480 not mhard-float.
12481 (LIBGCC_SPEC): Don't handle -msoft-float.
12482 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
12483 -mhard-float.
12484 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
12485 msoft-float.
12486 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
12487 -mfloat-abi=*, not -msoft-float and -mhard-float.
12488 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
12489 -msoft-float.
12490 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
12491 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
12492 mhard-float and msoft-float.
12493 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
12494 mfloat-abi=soft in comments, not mhard-float and msoft-float.
12495 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
12496 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
12497 mhard-float.
12498 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
12499 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
12500 msoft-float.
12501 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
12502 not mhard-float.
12503 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
12504 not msoft-float.
12505
800d1de1
RH
125062011-03-22 Richard Henderson <rth@redhat.com>
12507
12508 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
12509 TARGET_ABI_WINDOWS_NT.
12510 (alpha_output_function_end_prologue): Likewise.
12511 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
12512 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12513 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
12514 (trap, *movsi_nt_vms): Likewise.
12515 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
12516 (*tablejump_osf_nt_internal): Remove.
12517 * config/alpha/predicates.md (input_operand): Only test Pmode.
12518
c59ddd2b
JM
125192011-03-22 Joseph Myers <joseph@codesourcery.com>
12520
12521 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
12522 via opts pointer. Use error_at. Don't assert that global
12523 structures are in use.
12524
1333f97f
JM
125252011-03-22 Joseph Myers <joseph@codesourcery.com>
12526
12527 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
12528 (ix86_handle_option): Access ix86_isa_flags and
12529 ix86_isa_flags_explicit via opts pointer. Don't assert that
12530 global structures are in use.
12531 (ix86_function_specific_save, ix86_function_specific_restore):
12532 Update ix86_isa_flags_explicit field name.
c78dd519 12533 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
12534 (ix86_isa_flags_explicit): Rename TargetSave entry to
12535 x_ix86_isa_flags_explicit.
12536
75db85d8
RH
125372011-03-22 Richard Henderson <rth@redhat.com>
12538
12539 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
12540 (alpha_option_override, direct_return): Likewise.
12541 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
12542 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
12543 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
12544 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
12545 (alpha_expand_epilogue, alpha_end_function): Likewise.
12546 (alpha_init_libfuncs): Likewise.
12547 (struct machine_function): Remove unicosmk members.
12548 (print_operand) ['t']: Remove.
12549 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
12550 unicosmk_output_module_name, unicosmk_output_common,
12551 current_section_align, unicosmk_output_text_section_asm_op,
12552 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
12553 unicosmk_section_type_flags, unicosmk_unique_section,
12554 unicosmk_asm_named_section, unicosmk_insert_attributes,
12555 unicosmk_output_align, unicosmk_defer_case_vector,
12556 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
12557 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
12558 unicosmk_output_ssib, unicosmk_add_call_info_word,
12559 unicosmk_extern_head, unicosmk_output_default_externs,
12560 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
12561 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
12562 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
12563 * config/alpha/alpha-protos.h: Update.
12564 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
12565 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
12566 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
12567 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
12568 (*mulsi_se, mulvsi3): Likewise.
12569 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
12570 (*divmodsi_internal, call, call_value, realign): Likewise.
12571 (moddi3, umoddi3): Likewise; remove duplicate expander.
12572 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
12573 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
12574 (*movdi_nofix): Remove r/U alternative.
12575 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
12576 * config/alpha/constraints.md ("U"): Remove.
12577 * config/alpha/predicates.md (call_operand"): Don't test
12578 TARGET_ABI_UNICOSMK.
12579
96e45421
JM
125802011-03-22 Joseph Myers <joseph@codesourcery.com>
12581
12582 * target.def (handle_option): Take gcc_options and
12583 cl_decoded_option pointers and location_t.
12584 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
12585 * doc/tm.texi: Regenerate.
12586 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
12587 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
12588 * lto-opts.c (lto_reissue_options): Generate option structure for
12589 targetm.handle_option call.
12590 * opts.c (target_handle_option): Update call to
12591 targetm.handle_option. Remove assertions about values now passed
12592 down to hook.
12593 * targhooks.c (default_target_handle_option): New.
12594 * targhooks.h (default_target_handle_option): Declare.
12595 * config/alpha/alpha.c: Include opts.h.
12596 (alpha_handle_option): Update to new hook interface.
12597 * config/arm/arm.c: Include opts.h.
12598 (arm_handle_option): Update to new hook interface.
12599 * config/arm/t-arm (arm.o): Update dependencies.
12600 * config/bfin/bfin.c: Include opts.h.
12601 (bfin_handle_option): Update to new hook interface.
12602 * config/cris/cris.c: Include opts.h.
12603 (cris_handle_option): Update to new hook interface.
12604 * config/frv/frv.c: Include opts.h.
12605 (frv_handle_option): Update to new hook interface.
12606 * config/i386/i386.c: Include opts.h.
12607 (ix86_handle_option): Update to new hook interface.
12608 (ix86_valid_target_attribute_inner_p): Generate option structure
12609 for call to ix86_handle_option.
12610 * config/i386/t-i386 (i386.o): Update dependencies.
12611 * config/ia64/ia64.c: Include opts.h.
12612 (ia64_handle_option): Update to new hook interface.
12613 * config/ia64/t-ia64 (ia64.o): Update dependencies.
12614 * config/iq2000/iq2000.c: Include opts.h.
12615 (iq2000_handle_option): Update to new hook interface.
12616 * config/m32c/m32c.c: Include opts.h.
12617 (m32c_handle_option): Update to new hook interface.
12618 * config/m32r/m32r.c: Include opts.h.
12619 (m32r_handle_option): Update to new hook interface.
12620 * config/m68k/m68k.c: Include opts.h.
12621 (m68k_handle_option): Update to new hook interface.
12622 * config/mep/mep.c: Include opts.h.
12623 (mep_handle_option): Update to new hook interface.
12624 * config/microblaze/microblaze.c: Include opts.h.
12625 (microblaze_handle_option): Update to new hook interface.
12626 * config/mips/mips.c: Include opts.h.
12627 (mips_handle_option): Update to new hook interface.
12628 * config/mn10300/mn10300.c: Include opts.h.
12629 (mn10300_handle_option): Update to new hook interface.
12630 * config/pa/pa.c: Include opts.h.
12631 (pa_handle_option): Update to new hook interface.
12632 * config/pdp11/pdp11.c: Include opts.h.
12633 (pdp11_handle_option): Update to new hook interface.
12634 * config/rs6000/rs6000.c: Include opts.h.
12635 (rs6000_handle_option): Update to new hook interface.
12636 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
12637 * config/rx/rx.c: Include opts.h.
12638 (rx_handle_option): Update to new hook interface.
12639 * config/s390/s390.c: Include opts.h.
12640 (s390_handle_option): Update to new hook interface.
12641 * config/score/score.c: Include opts.h.
12642 (score_handle_option): Update to new hook interface.
12643 * config/sh/sh.c: Include opts.h.
12644 (sh_handle_option): Update to new hook interface.
12645 * config/sparc/sparc.c: Include opts.h.
12646 (sparc_handle_option): Update to new hook interface.
12647 * config/v850/v850.c: Include opts.h.
12648 (v850_handle_option): Update to new hook interface.
12649
66017846
JM
126502011-03-22 Joseph Myers <joseph@codesourcery.com>
12651
12652 * gcc.c (driver_unknown_option_callback): Only permit and save
12653 unknown -Wno- options.
12654 (driver_wrong_lang_callback): Save options directly instead of via
12655 driver_unknown_option_callback.
12656
e8b97ccd
EB
126572011-03-22 Eric Botcazou <ebotcazou@adacore.com>
12658
12659 * combine.c (simplify_set): Try harder to find the best CC mode when
12660 simplifying a nested COMPARE on the RHS.
12661
ebb9f8b0
JM
126622011-03-22 Joseph Myers <joseph@codesourcery.com>
12663
12664 * config/alpha/gnu.h: Remove.
12665 * config/arc: Remove directory.
12666 * config/arm/netbsd.h: Remove.
12667 * config/arm/t-pe: Remove.
12668 * config/crx: Remove directory.
12669 * config/i386/netbsd.h: Remove.
12670 * config/m68hc11: Remove directory.
12671 * config/m68k/uclinux-oldabi.h: Remove.
12672 * config/mcore/mcore-pe.h: Remove.
12673 * config/mcore/t-mcore-pe: Remove.
12674 * config/netbsd-aout.h: Remove.
12675 * config/rs6000/gnu.h: Remove.
12676 * config/sh/sh-symbian.h: Remove.
12677 * config/sh/symbian-base.c: Remove.
12678 * config/sh/symbian-c.c: Remove.
12679 * config/sh/symbian-cxx.c: Remove.
12680 * config/sh/symbian-post.h: Remove.
12681 * config/sh/symbian-pre.h: Remove.
12682 * config/sh/t-symbian: Remove.
12683 * config/svr3.h: Remove.
12684 * config/vax/netbsd.h: Remove.
12685 * config.build: Don't handle i[34567]86-*-pe.
12686 * config.gcc: Remove handling of deprecations for most deprecated
12687 targets.
12688 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
12689 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
12690 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
12691 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
12692 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
12693 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
12694 Remove cases.
12695 * config.host: Don't handle i[34567]86-*-pe.
12696 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
12697 (ASM_SPEC32): Don't handle -mcall-gnu.
12698 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
12699 -mcall-gnu.
12700 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
12701 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
12702 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
12703 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
12704 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
12705 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
12706 conditional on SYMBIAN.
12707 * configure.ac: Don't handle powerpc*-*-gnu*.
12708 * configure: Regenerate.
12709 * doc/extend.texi (interrupt attribute): Don't mention CRX.
12710 * doc/install-old.texi (m6811, m6812): Don't mention.
12711 * doc/install.texi (arc-*-elf*): Don't document multilib option.
12712 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
12713 (m68k-uclinuxoldabi): Don't mention.
12714 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
12715 Remove.
12716 (-mcall-gnu): Remove.
12717 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
12718 families): Remove constraint documentation.
12719
999a7d80
MS
127202011-03-22 Marius Strobl <marius@FreeBSD.org>
12721
12722 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
12723 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
12724 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
12725
45540bcf
MM
127262011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
12727
12728 PR target/48226
12729 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
12730 vector when peeking at the next token for vector, don't expand the
12731 keywords.
12732
980a0ff4
GJL
127332011-03-21 Georg-Johann Lay <avr@gjlay.de>
12734
12735 * config/avr/avr-protos.h (expand_epilogue): Change prototype
12736 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
12737 * config/avr/avr.c (init_cumulative_args)
12738 (avr_function_arg_advance): Use it.
12739 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
12740 sibcall epilogues.
12741 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
12742 (avr_function_ok_for_sibcall): ...this new function.
12743 (avr_lookup_function_attribute1): New static Function.
12744 (avr_naked_function_p, interrupt_function_p)
12745 (signal_function_p, avr_OS_task_function_p)
12746 (avr_OS_main_function_p): Use it.
12747 * config/avr/avr.md ("sibcall", "sibcall_value")
12748 ("sibcall_epilogue"): New expander.
12749 ("*call_insn", "*call_value_insn"): New insn.
12750 ("call_insn", "call_value_insn"): Remove
12751 ("call", "call_value", "epilogue"): Change expander to handle
12752 sibling calls.
12753
49168734
NC
127542011-03-21 Nick Clifton <nickc@redhat.com>
12755
12756 * doc/invoke.texi (Overall Options): Move closing brace to end of
12757 options list.
12758 (Optimization Options): Add missing @gol.
12759 (Directory Options): Likewise.
12760 (i386 and x86-64 Options): Likewise.
12761 (RS6000 and PowerPC Options): Likewise.
12762 (i386 and x86-64 Windows Options): Likewise.
12763 (V850 Options): Add text missing from descriptions.
12764
bdfe906f
RH
127652011-03-22 Richard Henderson <rth@redhat.com>
12766
12767 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
12768 (avr_incoming_return_addr_rtx): New.
12769 (emit_push_byte): New.
12770 (expand_prologue): Use it. Remove incorrect dwarf annotation for
12771 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
12772 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
12773 (emit_pop_byte): New.
12774 (expand_epilogue): Use it. Pop frame pointer by bytes.
12775 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
12776 (INCOMING_RETURN_ADDR_RTX): New.
12777 (INCOMING_FRAME_SP_OFFSET): New.
12778 (ARG_POINTER_CFA_OFFSET): New.
12779 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
12780 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
12781 (pophi): Remove.
12782
d090a5aa
RH
12783 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
12784
fdf3e18a
NF
127852011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12786
12787 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
12788 (FUNCTION_ARG_ADVANCE): Likewise.
12789 * tm.texi.in: Change references to them to hook references.
12790 * tm.texi: Regenerate.
12791 * targhooks.c (default_function_arg): Eliminate check for target
12792 macro.
12793 (default_function_incoming_arg): Likewise.
12794 (default_function_arg_advance): Likewise.
c78dd519 12795 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
12796 (function_arg_advance): Likewise.
12797 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
12798
009d3fcf
NF
127992011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12800
12801 * tree.c (build_call_1): New function.
12802 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
12803
7bec30e1
RG
128042011-03-22 Richard Guenther <rguenther@suse.de>
12805
12806 PR tree-optimization/48228
12807 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
12808 for single-arg PHIs.
12809
0b7e851b
AB
128102011-03-22 Andrey Belevantsev <abel@ispras.ru>
12811
12812 PR rtl-optimization/48143
12813 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
12814 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
12815 sse2_cvtps2pd): Likewise.
12816
d89afca5
AK
128172011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12818
12819 * recog.c (canonicalize_change_group): Use validate_unshare_change.
12820
f471fe72
RG
128212011-03-22 Richard Guenther <rguenther@suse.de>
12822
12823 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
12824 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
12825 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
12826 and REALIGN_LOAD_EXPR.
12827 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
12828 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
12829 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
12830 DOT_PROD_EXPR case ...
12831 (expand_expr_real_2): ... here.
12832 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
12833 and REALIGN_LOAD_EXPR.
12834 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
12835 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
12836 (vect_create_epilog_for_reduction): Likewise.
12837 (vectorizable_reduction): Likewise.
12838 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
12839 * tree-vect-stmts.c (vectorizable_load): Likewise.
12840
f2f81d57
EB
128412011-03-22 Eric Botcazou <ebotcazou@adacore.com>
12842
12843 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
12844
ab081dd6
AK
128452011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12846
12847 * config/s390/s390.c (s390_delegitimize_address): Fix offset
12848 handling for PLTOFF/GOTOFF.
12849
6fd5332b
NC
128502011-03-22 Nick Clifton <nickc@redhat.com>
12851
12852 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
12853 trailing backslash from the end of the macro definition.
12854
01841ac0
AK
128552011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12856
12857 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
12858 and PLT unspecs.
12859
2ef6ce06
RS
128602011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
12861
12862 * expr.h (prepare_operand): Move to...
12863 * optabs.h (prepare_operand): ...here and change the insn code
12864 parameter from "int" to "enum insn_code".
12865 (insn_operand_matches): Declare.
12866 * expr.c (init_expr_target): Use insn_operand_matches.
12867 (compress_float_constant): Likewise.
12868 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
12869 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
12870 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
12871 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
12872 Likewise.
2ef6ce06
RS
12873 (gen_cond_trap): Likewise.
12874 (prepare_operand): Likewise. Change icode to an insn_code.
12875 (insn_operand_matches): New function.
12876 * reload.c (find_reloads_address_1): Use insn_operand_matches.
12877 * reload1.c (gen_reload): Likewise.
12878 * targhooks.c (default_secondary_reload): Likewise.
12879
9e43ad68
UB
128802011-03-21 Uros Bizjak <ubizjak@gmail.com>
12881
9a96da32
UB
12882 * config/alpha/alpha.md (unspec): New define_c_enum.
12883 (unspecv): Ditto.
12884
128852011-03-21 Uros Bizjak <ubizjak@gmail.com>
12886
12887 PR debug/48214
9e43ad68
UB
12888 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
12889 between a call and its CALL_ARG_LOCATION note.
12890
31408f60
EB
128912011-03-21 Eric Botcazou <ebotcazou@adacore.com>
12892
12893 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
12894
128952011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
12896
12897 PR c/42544
12898 PR c/48197
12899 * c-common.c (shorten_compare): If primopN is first sign-extended
12900 to opN and then zero-extended to result type, set primopN to opN.
12901
9dfd55f5
DJ
129022011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
12903
12904 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
12905 for barrier handlers.
12906
f3c33d9d
MM
129072011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
12908
12909 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
12910 UNSPEC constants to be in the unspec enumeration, and redefine
12911 all UNSPECV constants to be in the unspecv enumeration, so that
12912 dumps print which unspec/unspec_volatile this is.
12913 * config/rs6000/vector.md (UNSPEC_*): Ditto.
12914 * config/rs6000/paired.md (UNSPEC_*): Ditto.
12915 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
12916 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
12917 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
12918
12919 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
12920 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
12921 UNSPECV_LWSYNC, since these are used as unspec_volatile.
12922 * config/rs6000/sync.md (isync, lwsync): Ditto.
12923
ac43f774
RG
129242011-03-21 Richard Guenther <rguenther@suse.de>
12925
12926 * params.def (lto-min-partition): Fix typo.
12927
411cdbd8
RG
129282011-03-21 Richard Guenther <rguenther@suse.de>
12929
12930 PR c/47939
12931 * c-decl.c (grokdeclarator): Drop to the main variant only
12932 for array types. Drop flag_gen_aux_info check.
12933
1cd9e416
RG
129342011-03-21 Richard Guenther <rguenther@suse.de>
12935
12936 PR translation/47911
12937 * params.def (lto-partitions): Fix typo.
12938 (lto-min-partition): Fix wording.
12939
ada5ad67
AT
129402011-03-21 Andreas Tobler <andreast@fgznet.ch>
12941
12942 * config/rs6000/t-freebsd: Remove duplication from file.
12943
f9613c9a
RG
129442011-03-21 Richard Guenther <rguenther@suse.de>
12945
12946 PR middle-end/47661
12947 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
12948
9bfbc1eb
RG
129492011-03-21 Richard Guenther <rguenther@suse.de>
12950
12951 PR lto/48210
12952 * params.def (lto-partitions): Require at least 1 partition.
12953
a2268084
RO
129542011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12955
12956 * gthr-solaris.h: Remove.
12957 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
12958 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
12959 (LIB_SPEC): Likewise.
12960 * config/sol2.opt (threads): Remove.
9e43ad68 12961 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
12962 (sparc*-*-solaris2*): Likewise.
12963 * configure.ac (enable_threads): Enable solaris support.
12964 * configure: Regenerate.
9e43ad68 12965 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
12966 * doc/install.texi (Configuration, --enable-threads=lib): Remove
12967 solaris.
12968
c43d9a1b
RO
129692011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12970
12971 * config.gcc: Obsolete *-*-solaris2.8*.
12972 * doc/install.texi (Specific, *-*-solaris2*): Document it.
12973
084239f4
RO
129742011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12975
12976 PR bootstrap/48135
12977 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
12978 reference. Solaris 8 perl works.
12979
64cadbe7
RO
129802011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12981
12982 PR bootstrap/48135
12983 * doc/install.texi (Prerequisites): Move jar etc. up.
12984 Explain support library version requirements.
12985
eb975109
RO
129862011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12987
12988 PR bootstrap/48135
12989 * doc/install.texi (Prerequisites): Move Perl to build
12990 requirements. Always necessary on Solaris 2 with Sun ld.
12991
8a509ffd
RO
129922011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12993
12994 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
12995 binutils 2.21.
12996 (Specific, i?86-*-solaris2.[89]): Likewise.
12997 (Specific, i?86-*-solaris2.10): Likewise.
12998 (Specific, mips-sgi-irix6): Likewise.
12999 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
13000 Update for binutils 2.21.
13001
8fbc58a1
RO
130022011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13003
13004 * configure.ac (gcc_cv_lto_plugin): Fix typo.
13005 Allow -fuse-linker-plugin for non-default plugin linker.
13006 * configure: Regenerate.
13007
7e84ad0b
NP
130082011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
13009
13010 PR bootstrap/48167
13011 * gengtype.c (files_rules): Added rule for cp/parser.h.
13012
2f36e14b
JJ
130132011-03-21 Jakub Jelinek <jakub@redhat.com>
13014
13015 PR target/48213
13016 * config/s390/s390.c (s390_delegitimize_address): Don't call
13017 lowpart_subreg if orig_x has BLKmode.
13018
62d784f7
KT
130192011-03-21 Kai Tietz <ktietz@redhat.com>
13020
13021 PR target/12171
9e43ad68
UB
13022 * doc/plugins.texi: Adjust documentation for plugin register_callback.
13023 * tree.h (attribute_spec): Add new member affects_type_identity.
13024 * attribs.c (empty_attribute_table): Adjust attribute_spec
13025 initializers.
62d784f7
KT
13026 * config/alpha/alpha.c: Likewise.
13027 * config/arc/arc.c: Likewise.
13028 * config/arm/arm.c: Likewise.
13029 * config/avr/avr.c: Likewise.
13030 * config/bfin/bfin.c: Likewise.
13031 * config/crx/crx.c: Likewise.
13032 * config/darwin.h: Likewise.
13033 * config/h8300/h8300.c: Likewise.
13034 * config/i386/cygming.h: Likewise.
13035 * config/i386/i386.c: Likewise.
13036 * config/ia64/ia64.c: Likewise.
13037 * config/m32c/m32c.c: Likewise.
13038 * config/m32r/m32r.c: Likewise.
13039 * config/m68hc11/m68hc11.c: Likewise.
13040 * config/m68k/m68k.c: Likewise.
13041 * config/mcore/mcore.c: Likewise.
13042 * config/mep/mep.c: Likewise.
13043 * config/microblaze/microblaze.c: Likewise.
13044 * config/mips/mips.c: Likewise.
13045 * config/rs6000/rs6000.c: Likewise.
13046 * config/rx/rx.c: Likewise.
13047 * config/sh/sh.c: Likewise.
13048 * config/sol2.h: Likewise.
13049 * config/sparc/sparc.c: Likewise.
13050 * config/spu/spu.c: Likewise.
13051 * config/stormy16/stormy16.c: Likewise.
13052 * config/v850/v850.c: Likewise.
13053
54833ec0
CLT
130542011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
13055
13056 * simplify-rtx.c (simplify_binary_operation_1): Handle
13057 (xor (and A B) C) case when B and C are both constants.
13058
14a41392
MX
130592011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
13060
13061 * tree-dfa.c (add_referenced_var): Fix typo in comment.
13062
806c3492
EB
130632011-03-20 Eric Botcazou <ebotcazou@adacore.com>
13064
13065 PR bootstrap/48168
13066 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
13067
65e0a0f3
JJ
130682011-03-20 Jakub Jelinek <jakub@redhat.com>
13069
13070 PR rtl-optimization/48156
13071 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
13072 assume df and df_lr are not NULL.
13073
b6a75dda
RR
130742011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13075
13076 PR debug/48023
13077 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
13078 between a call and its CALL_ARG_LOCATION note.
13079
5969b52d
KK
130802011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
13081
13082 PR debug/48178
13083 * config/sh/sh.c (find_barrier): Don't emit a constant pool
13084 between a call and its corresponding CALL_ARG_LOCATION note.
13085
f773c2bd
AS
130862011-03-19 Anatoly Sokolov <aesok@post.ru>
13087
13088 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
13089 instead of loop. Use HARD_REGISTER_NUM_P predicate.
13090 * haifa-sched.c (setup_ref_regs): Ditto.
13091 * caller-save.c (add_used_regs_1): Ditto.
13092 * dse.c (look_for_hardregs): Ditto.
13093 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
13094 * sched-rgn.c (check_live_1): Ditto.
13095
8bf872f9
JM
130962011-03-18 Joseph Myers <joseph@codesourcery.com>
13097
13098 * c-decl.c (diagnose_mismatched_decls): Give an error for
13099 redefining a typedef with variably modified type.
13100
ff8e2159
JM
131012011-03-18 Joseph Myers <joseph@codesourcery.com>
13102
13103 * c-decl.c (grokfield): Don't allow typedefs for structures or
13104 unions with no tag by default.
13105 * doc/extend.texi (Unnamed Fields): Update.
13106
16cc4440
UB
131072011-03-18 Uros Bizjak <ubizjak@gmail.com>
13108
13109 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
13110 Rewrite using indirect functions.
13111 (lwp_slwpcb): Ditto.
13112 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
13113 (avx_vinsertf128<mode>): Ditto.
13114
e101e12e
AK
131152011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13116
13117 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
13118 unspecs.
13119
4627c7fb
AK
131202011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13121
13122 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 13123 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 13124
2d36b47f
MK
131252011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
13126
13127 PR rtl-optimization/48170
13128 * gcse.c (hoist_code): Remove bogus asserts.
13129
2a3d7659
JL
131302011-03-18 Georg-Johann Lay <avr@gjlay.de>
13131
13132 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
13133 computation for prologue/epilogue.
13134
34c3ef05
RO
131352011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13136
13137 * Makefile.in (check-consistency): Remove.
13138
81f2b976
JJ
131392011-03-18 Jakub Jelinek <jakub@redhat.com>
13140
13141 PR debug/48176
13142 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
13143 arange_table_in_use is 0, but either text_section_used or
13144 cold_text_section_used is true. Don't call it if
13145 !info_section_emitted.
13146
68fd7765
AS
131472011-03-18 Anatoly Sokolov <aesok@post.ru>
13148
13149 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
13150 FUNCTION_VALUE_REGNO_P): Remove.
13151 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
13152 Remove.
13153 * config/avr/avr.c (avr_ret_register): Make static inline.
13154 (avr_function_value_regno_p): New function.
13155 (avr_libcall_value): Make static. Add 'func' argument.
13156 (avr_function_value): Make static. Rename 'func' argument to
13157 'fn_decl_or_type', forward it to avr_libcall_value. Call
13158 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 13159 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 13160
b4ef8aac
JM
131612011-03-18 Jason Merrill <jason@redhat.com>
13162
13163 PR c++/23372
13164 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
13165
09a52fc3
RG
131662011-03-18 Richard Guenther <rguenther@suse.de>
13167
13168 * doc/install.texi (--enable-gold): Remove.
13169 (--with-plugin-ld): Document.
13170 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
13171
2a3d7659 131722011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
13173
13174 PR middle-end/47790
13175 * expr.c (optimize_bitfield_assignment_op): Revamp to work
13176 again after expansion changes.
13177
2abbb0fe
CLT
131782011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
13179
13180 * combine.c (try_combine): Do simplification only call of
13181 subst() on i2 even when i1 is present. Update comments.
13182
2efd0aa6
KK
131832011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
13184
13185 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
13186 and UNSPEC_PCREL_SYMOFF.
13187
30a49b23
AK
131882011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13189
13190 * config/s390/s390.md: Use define_c_enum for the unspec constant
13191 definitions.
13192
419e1853
JJ
131932011-03-18 Richard Henderson <rth@redhat.com>
13194 Jakub Jelinek <jakub@redhat.com>
13195
13196 PR bootstrap/48161
13197 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
13198 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
13199
37875856
L
132002011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13201
13202 PR middle-end/47725
13203 * combine.c (cant_combine_insn_p): Don't check zero/sign
13204 extended hard registers.
13205
76069764
L
132062011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13207
13208 PR middle-end/47725
13209 * combine.c (cant_combine_insn_p): Check zero/sign extended
13210 hard registers.
13211
24da2019
AS
132122011-03-17 Anatoly Sokolov <aesok@post.ru>
13213
13214 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13215 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
13216 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
13217 Change return type to bool.
13218 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13219
a82ff31f
JJ
132202011-03-17 Jakub Jelinek <jakub@redhat.com>
13221
8b29c87a
JJ
13222 PR debug/48163
13223 * var-tracking.c (prepare_call_arguments): If CALL target
13224 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
13225 pc instead of looking it up using cselib_lookup and use
13226 Pmode for it if x has VOIDmode.
13227 * dwarf2out.c (gen_subprogram_die): If also both first and
13228 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
13229
a82ff31f
JJ
13230 PR debug/48163
13231 * function.c (assign_parms): For data.passed_pointer parms
13232 use MEM of data.entry_parm instead of data.entry_parm itself
13233 as DECL_INCOMING_RTL.
13234 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
13235 also when passed and declared mode is the same, DECL_RTL
13236 is a MEM with pseudo as address and DECL_INCOMING_RTL is
13237 a MEM too.
13238
82ce305c
JL
132392011-03-16 Jeff Law <law@redhat.com>
13240
13241 PR rtl-optimization/37273
13242 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13243 handle them like argument loads from stack slots. Do not double
13244 count memory for memory constants and argument loads from stack slots.
13245
fe58e02b
L
132462011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13247
13248 PR debug/48160
13249 * var-tracking.c (prepare_call_arguments): Check SUBREG.
13250
6fc4dbc7
L
132512011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13252
13253 PR target/48171
13254 * config/i386/i386.opt: Add Save to -mavx and -mfma.
13255
db3ed0b3
JJ
132562011-03-17 Jakub Jelinek <jakub@redhat.com>
13257
8054a389
JJ
13258 PR bootstrap/48153
13259 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
13260 if dwarf_strict.
13261 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
13262 Clear call_arg_locations and call_arg_loc_last always.
13263
db3ed0b3
JJ
13264 PR middle-end/48152
13265 * var-tracking.c (prepare_call_arguments): If argument needs to be
13266 passed by reference, adjust argtype and mode.
13267
1bce4ff3
RG
132682011-03-17 Richard Guenther <rguenther@suse.de>
13269
13270 PR middle-end/48134
13271 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
13272 a value make sure to fold the statement.
13273
7c71147d
CLT
132742011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
13275
13276 PR target/43872
13277 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
13278 return condition with !cfun->calls_alloca.
13279
0e1ee172
RG
132802011-03-17 Richard Guenther <rguenther@suse.de>
13281
13282 PR bootstrap/48148
13283 * lto-cgraph.c (input_overwrite_node): Clear the abstract
13284 origin for decls in other ltrans units.
13285 (input_varpool_node): Likewise.
13286
f8bce518
RG
132872011-03-17 Richard Guenther <rguenther@suse.de>
13288
13289 PR middle-end/48165
13290 * tree-object-size.c (compute_object_offset): Properly return
13291 the offset operand of MEM_REFs as sizetype.
13292
1b6fa860
JJ
132932011-03-17 Jakub Jelinek <jakub@redhat.com>
13294
dabd47e7
JJ
13295 PR rtl-optimization/48141
13296 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
13297 * dse.c: Include params.h.
13298 (active_local_stores_len): New variable.
13299 (add_wild_read, dse_step1): Clear it when setting active_local_stores
13300 to NULL.
13301 (record_store, check_mem_read_rtx): Decrease it when removing
13302 from the chain.
13303 (scan_insn): Likewise. Increase it when adding to chain, if it
13304 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
13305 set active_local_stores to NULL before the addition.
13306 * Makefile.in (dse.o): Depend on $(PARAMS_H).
13307
1b6fa860
JJ
13308 PR rtl-optimization/48141
13309 * dse.c (record_store): If no positions are needed in an insn
13310 that cannot be deleted, at least unchain it from active_local_stores.
13311
7b5cb7d6
DS
133122011-03-16 Dodji Seketeli <dodji@redhat.com>
13313
13314 PR debug/47510
13315 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
13316 (lookup_type_die_strip_naming_typedef): ... here.
13317 (get_context_die): Use it.
13318 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
13319 the anonymous struct named by the naming typedef.
13320
585e9d9d
L
133212011-03-16 H.J. Lu <hongjiu.lu@intel.com>
13322
13323 PR target/48154
13324 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
13325 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
13326
6261ab0e
JL
133272011-03-16 Jeff Law <law@redhat.com>
13328
13329 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 13330 check for operands of conditional. Allow type to be a pointer.
6261ab0e 13331
0b0081ec
RG
133322011-03-16 Richard Guenther <rguenther@suse.de>
13333
13334 PR tree-optimization/48149
13335 * fold-const.c (fold_binary_loc): Fold
13336 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
13337
64a3d647
RG
133382011-03-16 Richard Guenther <rguenther@suse.de>
13339
13340 PR tree-optimization/26134
13341 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
13342 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
13343 (non_rewritable_mem_ref_base): Handle complex type component
13344 accesses, constrain offsets for vector and complex extracts
13345 more properly.
13346
ef13324e
RG
133472011-03-16 Richard Guenther <rguenther@suse.de>
13348
13349 PR tree-optimization/48146
13350 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
13351 operands avoiding the need for renaming.
13352
f0eddb90
RG
133532011-03-16 Richard Guenther <rguenther@suse.de>
13354
13355 * gimple-fold.c (maybe_fold_reference): Open-code relevant
13356 constant folding. Move MEM_REF canonicalization first.
13357 Rely on fold_const_aggregate_ref for initializer folding.
13358 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
13359
e42348b8
JJ
133602011-03-16 Jakub Jelinek <jakub@redhat.com>
13361
29f10e71
JJ
13362 PR middle-end/48136
13363 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
13364 arg0/arg1 or their arguments are always fold converted to matching
13365 types.
13366
e42348b8
JJ
13367 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
13368 to nargs.
13369
55b46574
RO
133702011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13371
13372 PR lto/46944
13373 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
13374 Handle in-tree gold.
13375 (ld_vers): Extract binutils version for gold.
13376 (gcc_cv_ld_hidden): Handle gold here.
13377 (gcc_cv_lto_plugin): Determine level of linker plugin support.
13378 * configure: Regenerate.
13379 * config.in: Regenerate.
13380 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
13381 -fuse-linker-plugin otherwise.
13382 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
13383 (LINK_COMMAND_SPEC): Use it.
13384 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
13385
2b1c5433
JJ
133862011-03-16 Jakub Jelinek <jakub@redhat.com>
13387
c2969d8e
JJ
13388 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
13389 * calls.c: Remove debug.h include.
13390 (emit_call_1): Don't call virtual_call_token debug hook.
13391 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
13392 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
13393 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
13394 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
13395 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
13396 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
13397 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
13398 dwarf2out_virtual_call): Remove.
13399 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
13400 copy_call_info and virtual_call hooks.
13401 (dwarf2out_init): Don't initialize vcall_insn_table,
13402 debug_dcall_section and debug_vcall_section.
13403 (prune_unused_types): Don't mark nodes from dcall_table.
13404 (dwarf2out_finish): Don't output dcall or vcall tables.
13405 * final.c (final_scan_insn): Don't call direct_call or
13406 virtual_call debug hooks.
13407 * debug.h (struct gcc_debug_hooks): Remove direct_call,
13408 virtual_call_token, copy_call_info and virtual_call hooks.
13409 (debug_nothing_uid): Remove prototype.
13410 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
13411 copy_call_info and virtual_call hooks.
13412 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13413 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
13414 * debug.c (do_nothing_debug_hooks): Likewise.
13415 (debug_nothing_uid): Remove.
13416 * doc/invoke.texi (-fenable-icf-debug): Remove.
13417 * common.opt (-fenable-icf-debug): Likewise.
13418
325f5379
JJ
13419 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
13420 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
13421 call's MEM. Handle functions returning aggregate through a hidden
13422 first pointer. For virtual calls add clobbered pc to call arguments
13423 chain.
13424 * dwarf2out.c (gen_subprogram_die): Emit
13425 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
13426 can't be emitted.
13427
a58a8e4b
JJ
13428 PR debug/45882
13429 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
13430 * rtl.h (ENTRY_VALUE_EXP): Define.
13431 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
13432 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
13433 * print-rtl.c (print_rtx): Likewise.
13434 * gengtype.c (adjust_field_rtx_def): Likewise.
13435 * var-tracking.c (vt_add_function_parameter): Adjust
13436 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
13437 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
13438 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
13439 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
13440 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
13441
2b1c5433
JJ
13442 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
13443 Call var_location debug hook even on CALL_INSNs.
13444 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
13445 * rtl.def (ENTRY_VALUE): New.
13446 * dwarf2out.c: Include cfglayout.h.
13447 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
13448 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
13449 (struct call_arg_loc_node): New type.
13450 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
13451 tail_call_site_count): New variables.
13452 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
13453 DW_TAG_GNU_call_site_parameter.
13454 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
13455 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
13456 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
13457 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
13458 and DW_AT_GNU_all_source_call_sites.
13459 (mem_loc_descriptor): Handle ENTRY_VALUE.
13460 (add_src_coords_attributes): Don't add enything if
13461 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
13462 (dwarf2out_abstract_function): Save and clear call_arg_location,
13463 call_site_count and tail_call_site_count around dwarf2out_decl call.
13464 (gen_call_site_die): New function.
13465 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
13466 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
13467 (dwarf2out_function_decl): Clear call_arg_locations,
13468 call_arg_loc_last, set call_site_count and tail_call_site_count
13469 to -1 and free block_map.
13470 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
13471 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
13472 followed by any real instructions.
13473 (dwarf2out_begin_function): Set call_site_count and
13474 tail_call_site_count to 0.
13475 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
13476 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
13477 attempt to force a DIE for it and worst case remove the attribute.
13478 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
13479 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
13480 the decl itself.
13481 * var-tracking.c: Include tm_p.h.
13482 (vt_stack_adjustments): For calls call note_register_arguments.
13483 (argument_reg_set): New variable.
13484 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
13485 ensure the VALUE is resolved.
13486 (call_arguments): New variable.
13487 (prepare_call_arguments): New function.
13488 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
13489 (struct expand_loc_callback_data): Add ignore_cur_loc field.
13490 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
13491 always use the best expression.
13492 (vt_expand_loc): Add ignore_cur_loc argument.
13493 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
13494 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
13495 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
13496 note for all calls.
13497 (vt_add_function_parameter): Use cselib_lookup_from_insn.
13498 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
13499 argument. Don't call cselib_preserve_only_values and
13500 cselib_reset_table.
13501 (note_register_arguments): New function.
13502 (vt_initialize): Compute argument_reg_set. Call
13503 vt_add_function_parameters before processing basic blocks instead of
13504 afterwards. For calls call prepare_call_arguments before calling
13505 cselib_process_insn.
13506 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
13507 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
13508 (var-tracking.o): Depend on $(TM_P_H).
13509 * cfglayout.h (insn_scope): New prototype.
13510 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
13511 * cfglayout.c (insn_scope): No longer static.
13512 * insn-notes.def (CALL_ARG_LOCATION): New.
13513 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
13514 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
13515 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
13516 nothing for DECL_EXTERNAL BLOCK_VARS.
13517
9ef13bd0
AM
135182011-03-16 Alan Modra <amodra@gmail.com>
13519
13520 PR target/45844
13521 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
13522 create invalid offset address for vsx splat insn.
13523 * config/rs6000/predicates.md (splat_input_operand): New.
13524 * config/rs6000/vsx.md (vsx_splat_*): Use it.
13525
56b67510
XDL
135262011-03-15 Xinliang David Li <davidxl@google.com>
13527
13528 PR c/47837
13529 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
13530 (normalize_preds): New function.
13531 (is_use_properly_guarded): Normalize def predicates.
13532
80fffdef
RR
135332011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13534
732f37c6 13535 PR target/46788
80fffdef
RR
13536 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
13537 in the output template.
13538
930672ad
RG
135392011-03-15 Richard Guenther <rguenther@suse.de>
13540
13541 PR middle-end/47650
13542 * tree-pretty-print.c (dump_function_declaration): Properly
13543 dump unprototyped and varargs function types.
13544
c7ee7b45
RG
135452011-03-15 Richard Guenther <rguenther@suse.de>
13546
13547 PR tree-optimization/13954
13548 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
13549 and friends.
13550
b2ad5e37
RG
135512011-03-15 Richard Guenther <rguenther@suse.de>
13552
13553 PR tree-optimization/48037
13554 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
13555 selects into BIT_FIELD_REFs.
13556 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
13557 vector select.
13558
7ee93d4e
JJ
135592011-03-15 Jakub Jelinek <jakub@redhat.com>
13560
13561 PR tree-optimization/48129
13562 * builtins.c (fold_builtin_snprintf): Convert to type of
13563 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
13564 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
13565
e106efc7
RG
135662011-03-15 Richard Guenther <rguenther@suse.de>
13567
13568 PR tree-optimization/41490
13569 * tree-ssa-dce.c (propagate_necessity): Handle returns without
13570 value but with VUSE.
13571 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
13572 return statements.
13573 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
13574 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
13575 * tree-tailcall.c (find_tail_calls): Ignore returns.
13576
17dea42f
RG
135772011-03-15 Richard Guenther <rguenther@suse.de>
13578
13579 PR middle-end/48031
13580 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
13581 or variable-indexed array accesses when in gimple form.
13582
01c77a60
RG
135832011-03-15 Richard Guenther <rguenther@suse.de>
13584
16cc4440 13585 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 13586
77b0791e
AM
135872011-03-15 Alan Modra <amodra@gmail.com>
13588
13589 PR target/48032
13590 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
13591 presume symbol_refs without a symbol_ref_decl are suitably
13592 aligned, nor other trees we may see here. Handle anchor symbols.
13593 (legitimate_constant_pool_address_p): Comment. Add mode param.
13594 Check cmodel=medium addresses. Adjust all calls.
13595 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
13596 creating cmodel=medium optimized access to locals.
13597 * config/rs6000/constraints.md (R): Pass QImode to
13598 legitimate_constant_pool_address_p.
13599 * config/rs6000/predicates.md (input_operand): Pass mode to
13600 legitimate_constant_pool_address_p.
13601 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
13602 Update prototype.
13603
35f61ba4
MM
136042011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
13605
13606 PR target/48053
13607 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
13608 64-bit constants being loaded into registers other than GPRs such
13609 as loading 0 into a VSX register.
13610
07332e6d
RO
136112011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13612
16cc4440 13613 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 13614
de888d90
JJ
136152011-03-14 Jakub Jelinek <jakub@redhat.com>
13616
ba3ceb2d
JJ
13617 PR middle-end/47917
13618 * builtins.c (fold_builtin_snprintf): New function.
13619 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
13620 (fold_builtin_4): Likewise.
13621
2e64f8b8
JJ
13622 PR middle-end/38878
13623 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
13624 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
13625 and C - X == X also strip nops from +/-/p+ operand.
13626 When optimizing -X == C, fold C to arg0's type.
13627
de888d90
JJ
13628 PR debug/47946
13629 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
13630 emit it as add_AT_int instead of add_AT_unsigned.
13631
136322011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
13633
13634 * unwind-dw2.c: Include sys/sdt.h if it exists.
13635 (_Unwind_DebugHook): Use STAP_PROBE2.
13636 * config.in, configure: Rebuild.
13637 * configure.ac: Check for sys/sdt.h.
13638
d34abfd2
UB
136392011-03-14 Uros Bizjak <ubizjak@gmail.com>
13640
13641 * config/i386/i386.md (ROUND_FLOOR): New constant.
13642 (ROUND_CEIL): Ditto.
13643 (ROUND_TRUNC): Ditto.
13644 (ROUND_MXCSR): Ditto.
13645 (ROUND_NO_EXC): Ditto.
13646 (rint<mode>2): Use new defines instead of numerical constants.
13647 (floor<mode>2): Ditto.
13648 (ceil<mode>2): Ditto.
13649 (btrunc<mode>2): Ditto.
13650 * config/i386/i386-builtin-types.def: Define ROUND function type
13651 aliases.
13652 * config/i386/i386.c (enum ix86_builtins): Add
13653 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
13654 (struct builtin_description): Add
13655 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
13656 (ix86_expand_sse_round): New static function.
13657 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
13658 function types.
13659 (ix86_builtin_vectorized_function): Handle
13660 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
13661
87f9e23d
TT
136622011-03-14 Tom Tromey <tromey@redhat.com>
13663
13664 * c-parser.c (c_parser_asm_string_literal): Clear
13665 warn_overlength_strings.
13666
b3ab9ea2
TT
136672011-03-14 Tom Tromey <tromey@redhat.com>
13668
13669 * c-parser.c (disable_extension_diagnostics): Save
13670 warn_overlength_strings.
13671 (restore_extension_diagnostics): Restore warn_overlength_strings.
13672
6bd73dd8
JJ
136732011-03-14 Jakub Jelinek <jakub@redhat.com>
13674
13675 * BASE-VER: Change to 4.7.0.
13676
7f4d6e1b
RG
136772011-03-14 Richard Guenther <rguenther@suse.de>
13678
13679 PR middle-end/48098
13680 * tree.c (build_vector_from_val): Adjust assert to requirements
13681 and reality.
13682
c6104ef1
JJ
136832011-03-14 Jakub Jelinek <jakub@redhat.com>
13684
13685 PR bootstrap/48102
d34abfd2 13686 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 13687
dfa95e19
AT
136882011-03-14 Andreas Tobler <andreast@fgznet.ch>
13689
f60c2554 13690 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
13691 terms of target_flags_explicit. Adjust copyright year.
13692
13693 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
13694 * config/rs6000/t-freebsd: New file. Add override for
13695 LIB2FUNCS_EXTRA.
13696
bb322018
CD
136972011-03-13 Chris Demetriou <cgd@google.com>
13698
13699 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
13700 (-fno-diagnostics-show-option): this, to reflect current default.
13701 (-Werror=): Update text about -fno-diagnostics-show-option.
13702
12b1c80b
PB
137032011-03-12 Peter Bergner <bergner@vnet.ibm.com>
13704
13705 PR target/48053
13706 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13707 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
13708 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
13709 mode is not V2DImode or V2DFmode.
13710 (vspltis_constant): Do not handle V2DImode and V2DFmode.
13711 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
13712 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
13713 registers to 0.
13714 (movdi_internal64): Likewise.
13715
57d598f7
SP
137162011-03-12 Sebastian Pop <sebastian.pop@amd.com>
13717
13718 PR tree-optimization/47127
13719 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
13720 parameter.
13721 (set_cloog_options): Same.
13722 (scop_to_clast): Same.
13723 (print_clast_stmt): Do not call cloog_state_malloc and
13724 cloog_state_free.
13725 (print_generated_program): Same.
13726 (gloog): Same.
13727 * graphite-clast-to-gimple.h (cloog_state): Declared.
13728 (scop_to_clast): Adjust declaration.
13729 * graphite.c (cloog_state): Defined here.
13730 (graphite_initialize): Call cloog_state_malloc.
13731 (graphite_finalize): Call cloog_state_free.
13732
f231b5ff
JM
137332011-03-11 Jason Merrill <jason@redhat.com>
13734
13735 * attribs.c (lookup_attribute_spec): Take const_tree.
13736 * tree.h: Adjust.
13737
6a4e2bd5
JM
137382011-03-11 Joseph Myers <joseph@codesourcery.com>
13739
13740 * config/sparc/sparc.c (sparc_option_override): Use
13741 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
13742
a758fd67
RG
137432011-03-11 Richard Guenther <rguenther@suse.de>
13744
13745 PR tree-optimization/48067
13746 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
13747 multiplication result will be only used once on the target
13748 stmt.
13749
03dfda54
RG
137502011-03-11 Richard Guenther <rguenther@suse.de>
13751
13752 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
13753
5f11a50a
RG
137542011-03-11 Richard Guenther <rguenther@suse.de>
13755
13756 PR lto/48073
13757 * tree.c (find_decls_types_r): Do not walk types only reachable
13758 from IDENTIFIER_NODEs.
13759
4074f163
JJ
137602011-03-11 Jakub Jelinek <jakub@redhat.com>
13761
13762 PR middle-end/48044
13763 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
13764 all vnode->force_output nodes as needed.
13765
30f7cdcd
JM
137662011-03-11 Jason Merrill <jason@redhat.com>
13767
13768 PR c++/48069
13769 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
13770 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
13771
62ecfeb8
MJ
137722011-03-11 Martin Jambor <mjambor@suse.cz>
13773
13774 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
13775 cgraph_node.
13776
e89e03ab
JJ
137772011-03-11 Jakub Jelinek <jakub@redhat.com>
13778
13779 PR tree-optimization/48063
13780 * ipa-inline.c (cgraph_decide_inlining): Don't try to
13781 inline functions called once if !tree_can_inline_p (node->callers).
13782
efbe978b 137832011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 13784
efbe978b
EB
13785 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
13786 extra_objs.
9d6193a7
CL
13787 * config/score/score3.c: Delete.
13788 * config/score/score3.h: Delete.
13789 * config/score/mul-div.S: Delete.
13790 * config/score/sfp-machine.h: Add new file.
13791 * config/score/constraints.md: Add new file.
13792 * config/score/t-score-softfp: Add new file.
efbe978b 13793 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
13794 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
13795 (score7_extra_constraint): Delete.
efbe978b 13796 (score7_option_override): Remove unused code.
9d6193a7
CL
13797 * config/score/score.c: Remove score3 and score5 define and code.
13798 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 13799 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
13800 * config/score/score.opt: Remove score3 and score5 options.
13801
5de27cca
JDA
138022011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13803
13804 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
13805 when _HPUX_SOURCE is defined.
13806 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
13807
18d92053
JM
138082011-03-10 Jason Merrill <jason@redhat.com>
13809
13810 PR c++/48029
13811 * stor-layout.c (layout_type): Don't set structural equality
13812 on arrays of incomplete type.
13813 * tree.c (type_hash_eq): Handle comparing them properly.
13814
67a2f76d
JJ
138152011-03-10 Jakub Jelinek <jakub@redhat.com>
13816
13817 PR debug/48043
18d92053 13818 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
13819 result mode matches original rtl mode.
13820
d845b2f9
NC
138212011-03-10 Nick Clifton <nickc@redhat.com>
13822
13823 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 13824 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 13825
db7ec035
JJ
138262011-03-09 Jakub Jelinek <jakub@redhat.com>
13827
13828 PR rtl-optimization/47866
13829 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
13830 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
13831 if target wasn't scalar.
13832 * function.c (assign_stack_temp_for_type): Assert that neither
13833 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
13834 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
13835 macro.
13836 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
13837
5d304e47
AK
138382011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13839
13840 * config/s390/s390-protos.h (s390_label_align): New prototype.
13841 * config/s390/s390.c (s390_label_align): New function.
13842 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
13843
93b826f0
MM
138442011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
13845
13846 PR target/47755
13847 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
13848 V2DI/V2DF constants. Only all 0's or all 1's are easy.
13849 (output_vec_const_move): Ditto.
13850
ef78aed6
AS
138512011-03-08 Anatoly Sokolov <aesok@post.ru>
13852
13853 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
13854 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
13855 * config/mips/mips.c (mips_preferred_reload_class): Make static.
13856 Change 'rclass' argument and result type to reg_class_t.
13857 (TARGET_PREFERRED_RELOAD_CLASS): Define.
13858
5f892aa0
GJL
138592011-03-08 Georg-Johann Lay <avr@gjlay.de>
13860
9e43ad68
UB
13861 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13862 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
13863 (TARGET_MEMORY_MOVE_COST): Define.
13864 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 13865
32bd2409
JJ
138662011-03-08 Jakub Jelinek <jakub@redhat.com>
13867
530a4800
JJ
13868 PR debug/47881
13869 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
13870 removed anything.
13871
32bd2409
JJ
13872 PR tree-optimization/48022
13873 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
13874 for EQ/NE_EXPR.
13875
c7148991
JJ
138762011-03-07 Jakub Jelinek <jakub@redhat.com>
13877
13878 PR debug/47991
13879 * var-tracking.c (find_use_val): Return NULL for
13880 cui->sets && cui->store_p BLKmode MEMs.
13881
43070a6e
AS
138822011-03-07 Anatoly Sokolov <aesok@post.ru>
13883
13884 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
13885 Remove.
13886 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
13887 xstormy16_print_operand_address): Remove.
13888 * config/stormy16/stormy16.c (xstormy16_print_operand,
13889 xstormy16_print_operand_address): Make static.
13890 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13891
efbe978b 138922011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
13893
13894 PR target/47862
13895 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
13896 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
13897 before definition.
13898
cec8ac0b
ZD
138992011-03-07 Zdenek Dvorak <ook@ucw.cz>
13900
13901 PR bootstrap/48000
13902 * cfgloopmanip.c (fix_bb_placements): Return immediately
13903 if FROM is BASE_LOOP's header.
13904
59527282
PW
139052011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
13906
13907 * gimplify.c (gimplify_function_tree): Fix building calls
13908 to __builtin_return_address.
13909
617718f7
AM
139102011-03-07 Alan Modra <amodra@gmail.com>
13911
13912 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
13913 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
13914 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
13915 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
13916 return_mode args.
13917 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
13918 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
13919 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
13920 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
13921 * config/rs6000/rs6000.c
13922 (rs6000_elf_end_indicate_exec_stack): Rename to..
13923 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
13924 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
13925 (rs6000_file_start): ..here.
13926 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
13927 file scope variables.
13928 (call_ABI_of_interest): New function.
13929 (init_cumulative_args): Set above vars when function return value
13930 is a float, vector, or small struct.
13931 (rs6000_function_arg_advance_1): Likewise for function args.
13932 (rs6000_va_start): Set rs6000_passes_float if variable arg function
13933 references float args.
13934
38528d50
MX
139352011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
13936
13937 * doc/cfg.texi: Remove "See" before @ref.
13938 * doc/invoke.texi: Likewise.
13939
f42cf4f4
JM
139402011-03-05 Jason Merrill <jason@redhat.com>
13941
13942 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
13943
804a304d
AG
139442011-03-05 Anthony Green <green@moxielogic.com>
13945
13946 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
13947
634ee309
ZD
139482011-03-05 Zdenek Dvorak <ook@ucw.cz>
13949
13950 PR rtl-optimization/47899
13951 * cfgloopmanip.c (fix_bb_placements): Fix first argument
13952 to flow_loop_nested_p when moving the loop upward.
13953
6fe471c8
RE
139542011-03-05 Richard Earnshaw <rearnsha@arm.com>
13955
13956 PR target/47719
13957 * arm.md (movhi_insn_arch4): Accept any immediate constant.
13958
cc58ceee
JJ
139592011-03-05 Jakub Jelinek <jakub@redhat.com>
13960
13961 PR tree-optimization/47967
13962 * ipa-cp.c (build_const_val): Return NULL instead of creating
13963 VIEW_CONVERT_EXPR for mismatching sizes.
13964 (ipcp_create_replace_map): Return NULL if build_const_val failed.
13965 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
13966 give up on versioning.
13967
ea868305
AM
139682011-03-05 Alan Modra <amodra@gmail.com>
13969
13970 PR target/47986
13971 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
13972 full cmodel medium/large lo_sum + high addresses.
13973
bc6ce334
AK
139742011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13975
13976 * config/s390/s390.c (s390_decompose_address): Reject non-literal
13977 pool references in UNSPEC_LTREL_OFFSET.
13978
87e7b310
JH
139792011-03-04 Jan Hubicka <jh@suse.cz>
13980
13981 PR lto/47497
13982 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
13983 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
13984 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
13985 Add node pointers.
87e7b310
JH
13986 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
13987 cgraph_add_thunk): Add node pointers.
13988 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
13989 associated to right node.
13990 (input_node): Update use of cgraph_same_body_alias
13991 and cgraph_add_thunk.
13992
d9c64246
CF
139932011-03-04 Changpeng Fang <changpeng.fang@amd.com>
13994
13995 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
13996 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
13997 modes when the flag -mprefer-avx128 is on.
d9c64246 13998
08707076
RS
139992011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
14000
14001 * dwarf2out.c (compare_loc_operands): Fix address handling.
14002
52517c81
AM
140032011-03-04 Alan Modra <amodra@gmail.com>
14004
14005 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
14006
b147c5b9
RG
140072011-03-04 Richard Guenther <rguenther@suse.de>
14008
14009 PR middle-end/47968
14010 * expmed.c (extract_bit_field_1): Prefer vector modes that
14011 vec_extract patterns can handle.
14012
8750672f
RG
140132011-03-04 Richard Guenther <rguenther@suse.de>
14014
14015 PR middle-end/47975
14016 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
14017
9eac0f2a
RH
140182011-03-04 Richard Henderson <rth@redhat.com>
14019
14020 * explow.c (emit_stack_save): Remove 'after' parameter.
14021 (emit_stack_restore): Likewise.
14022 * expr.h: Update to match.
14023 * builtins.c, calls.c, stmt.c: Likewise.
14024 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
14025 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
14026 * function.c (expand_function_end): Insert the emit_stack_save
14027 sequence before parm_birth_insn instead of after.
14028
dfee1406
UB
140292011-03-03 Uros Bizjak <ubizjak@gmail.com>
14030
14031 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
14032 (ssse3_pmaddubsw128): Ditto.
14033 (ssse3_pmaddubsw): Ditto.
14034
f1d4c3de
SE
140352011-03-03 Steve Ellcey <sje@cup.hp.com>
14036
14037 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
14038
71f3a3f5
JJ
140392011-03-03 Jakub Jelinek <jakub@redhat.com>
14040
423ed416
JJ
14041 PR c/47963
14042 * gimplify.c (omp_add_variable): Only call omp_notice_variable
14043 on TYPE_SIZE_UNIT if it is a DECL.
14044
71f3a3f5
JJ
14045 PR debug/47283
14046 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
14047 first operand is not is_gimple_mem_ref_addr, try to fold it.
14048 If the operand still isn't is_gimple_mem_ref_addr, clear
14049 MEM_EXPR on op0.
14050
4b1a5c0d
RG
140512011-03-03 Richard Guenther <rguenther@suse.de>
14052
14053 PR middle-end/47283
14054 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
14055 match comment.
14056 (refs_may_alias_p_1): For release branches return true if
14057 we are confused by our input.
14058
b46616fd
AK
140592011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14060
14061 * config/s390/s390.c (s390_function_value): Rename to ...
14062 (s390_function_and_libcall_value): ... this.
14063 (s390_function_value): New function.
14064 (s390_libcall_value): New function.
dfee1406 14065 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
14066 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
14067 target macro definitions.
14068 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
14069
46d8fabb
JM
140702011-03-02 Joseph Myers <joseph@codesourcery.com>
14071
14072 * config/i386/freebsd64.h (CC1_SPEC): Define.
14073 * config/i386/linux64.h (CC1_SPEC): Define.
14074 * config/i386/x86-64.h (CC1_SPEC): Don't define.
14075
6b1ce545
AS
140762011-03-02 Anatoly Sokolov <aesok@post.ru>
14077
14078 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14079 Remove.
14080 * config/stormy16/stormy16.c: Include reload.h.
14081 (xstormy16_memory_move_cost): New function.
14082 (TARGET_MEMORY_MOVE_COST): Define.
14083
34161e98
RS
140842011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
14085
14086 PR rtl-optimization/47925
14087 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
14088 with side effects. Remove the more-specific check for volatile asms.
14089
f60a97cf
AM
140902011-03-02 Alan Modra <amodra@gmail.com>
14091
14092 PR target/47935
14093 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
14094 toc relative addresses for valid offsets.
14095
f2ca11ca
RG
140962011-03-01 Richard Guenther <rguenther@suse.de>
14097
14098 PR tree-optimization/47890
14099 * tree-vect-loop.c (get_initial_def_for_induction): Set
14100 related stmt properly.
14101
7a00d9ea
RG
141022011-03-01 Richard Guenther <rguenther@suse.de>
14103
14104 PR lto/47924
14105 * lto-streamer.c (lto_record_common_node): Also register
14106 the canonical type.
14107
06c7edcc
RG
141082011-03-01 Richard Guenther <rguenther@suse.de>
14109
14110 PR lto/46911
14111 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14112 Do not stream DECL_ABSTRACT_ORIGIN.
14113 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
14114 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
14115 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14116 Do not stream DECL_ABSTRACT_ORIGIN.
14117 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
14118 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
14119
998871e9
AS
141202011-02-28 Anatoly Sokolov <aesok@post.ru>
14121
14122 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
14123 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 14124 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
14125 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
14126 Add 'outgoing' argument.
14127 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
14128 function.
14129 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14130 TARGET_FUNCTION_VALUE_REGNO_P): Define.
14131
94369251
KT
141322011-02-28 Kai Tietz <kai.tietz@onevision.com>
14133
14134 PR debug/28047
14135 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
14136 (lookup_filename): Likewise.
b2e2ea67 14137 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 14138
80a832cd
JJ
141392011-02-28 Bernd Schmidt <bernds@codesourcery.com>
14140 Jakub Jelinek <jakub@redhat.com>
14141
14142 PR middle-end/47893
14143 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
14144 (assign_stack_local_1): Change last argument type to int.
14145 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
14146 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 14147 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
14148 (assign_stack_local): Adjust caller.
14149 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
14150 of assign_stack_local, pass 0 as last argument.
14151 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
14152 callers.
14153
1b500976
JJ
141542011-02-28 Jakub Jelinek <jakub@redhat.com>
14155
f61c6f34
JJ
14156 PR debug/47283
14157 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
14158 Use target address_mode and pointer_mode hooks instead of hardcoded
14159 Pmode and ptr_mode. Handle some simple cases of extending if
14160 POINTERS_EXTEND_UNSIGNED < 0.
14161 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
14162 Call convert_debug_memory_address.
14163 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
14164 convert_debug_memory_address.
14165
1b500976
JJ
14166 PR middle-end/46790
14167 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
14168 * configure: Regenerated.
14169 * config.in: Regenerated.
14170 * varasm.c (default_function_section): Return NULL
b2e2ea67 14171 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 14172
2f2935b6
MJ
141732011-02-28 Martin Jambor <mjambor@suse.cz>
14174
14175 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
14176 the description to match the printed values.
14177
474086eb
RG
141782011-02-28 Richard Guenther <rguenther@suse.de>
14179
14180 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
14181 of the copied scope tree.
14182
15bf6f3a
RW
141832011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14184
14185 * doc/extend.texi (Function Attributes): Avoid deeply (and
14186 wrongly) nested tables.
14187
f6b439c9
JJ
141882011-02-27 Jakub Jelinek <jakub@redhat.com>
14189
14190 PR middle-end/47903
14191 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
14192 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
14193 r isn't op0 nor op1.
14194
1d8ca2c7
GJL
141952011-02-23 Georg-Johann Lay <avr@gjlay.de>
14196
14197 * config/avr/avr.md: Remove magic comment for emacs.
14198
593fca4b
GJL
141992011-02-23 Georg-Johann Lay <avr@gjlay.de>
14200
14201 PR target/45261
14202 * config/avr/avr.c (avr_option_override): Use error on bad options.
14203 (avr_help): New function.
14204 (TARGET_HELP): Define.
14205
6609216e
GJL
142062011-02-22 Georg-Johann Lay <avr@gjlay.de>
14207
14208 PR target/42240
14209 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
14210 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
14211
03d458af
GP
142122011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
14213
14214 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
14215 (ARM Options): Ditto.
14216 (i386 and x86-64 Options): Ditto.
14217 (RX Options): Ditto.
14218 (SPARC Options): Ditto.
14219
1c379b78
TC
142202011-02-26 Tijl Coosemans <tijl@coosemans.org>
14221
14222 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
14223 FreeBSD 6 and later. Generally use cpu generic.
14224
d5ed058c 142252011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 14226
d5ed058c
GP
14227 * doc/cpp.texi: Update copyright years.
14228
509d65dd 142292011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 14230
509d65dd 14231 PR target/46898
308d39cd
SB
14232 * config/lm32/lm32.md (ashrsi3): Added needed variable.
14233
509d65dd 142342011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 14235
509d65dd 14236 PR target/46898
308d39cd
SB
14237 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
14238 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
14239 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
14240 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 14241 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
14242 (gen_int_relational): Move declarations to start of function.
14243
822ba6d7
EB
142442011-02-25 Eric Botcazou <ebotcazou@adacore.com>
14245
14246 PR tree-optimization/45470
14247 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
14248 can throw internally only.
14249 * tree-vect-stmts.c (vectorizable_call): Likewise.
14250
ef795fc2
AS
142512011-02-24 Anatoly Sokolov <aesok@post.ru>
14252
14253 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
14254 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
14255 * config/stormy16/stormy16-protos.h
14256 (xstormy16_preferred_reload_class): Remove.
14257 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
14258 static. Change 'rclass' argument and return type to reg_class_t.
14259 (TARGET_PREFERRED_RELOAD_CLASS,
14260 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
14261
1c3277ee
RG
142622011-02-24 Richard Guenther <rguenther@suse.de>
14263
14264 * lto-streamer-in.c (input_bb): Do not find referenced vars
14265 in debug statements.
14266
67e18edb
JM
142672011-02-23 Jason Merrill <jason@redhat.com>
14268
14269 * common.opt (fabi-version): Document v5 and v6.
14270
b14fad9d
RG
142712011-02-23 Richard Guenther <rguenther@suse.de>
14272
14273 PR tree-optimization/47849
14274 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
14275
7fcf46f5
JZ
142762011-02-23 Jie Zhang <jie@codesourcery.com>
14277
14278 * opts-common.c (decode_cmdline_option): Print empty string
14279 argument as "" in decoded->orig_option_with_args_text.
14280 * gcc.c (execute): Print empty string argument as ""
14281 in the verbose output.
14282 (do_spec_1): Keep empty string argument.
14283
f85b70fd
NF
142842011-02-23 Nathan Froyd <froydnj@codesourcery.com>
14285
14286 * config.gcc: Declare score-* and crx-* obsolete.
14287
b152a615
JZ
142882011-02-23 Jie Zhang <jie@codesourcery.com>
14289
14290 PR rtl-optimization/47763
14291 * web.c (web_main): Ignore naked clobber when replacing register.
14292
bb6e77bc
AS
142932011-02-22 Anatoly Sokolov <aesok@post.ru>
14294
14295 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14296 Remove.
14297
68bf6491
SP
142982011-02-22 Sebastian Pop <sebastian.pop@amd.com>
14299
14300 PR doc/47848
14301 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
14302
88ee1fc7
MS
143032011-02-22 Mike Stump <mikestump@comcast.net>
14304
14305 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
14306 assembler.
14307 * configure: Regenerate.
14308
6042d1dd
CLT
143092011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
14310
14311 PR rtl-optimization/46002
14312 * ira-color.c (update_copy_costs): Change class intersection
14313 test to reg_class_contents[] test of 'hard_regno'.
14314
7de97f9e
JM
143152011-02-21 Joseph Myers <joseph@codesourcery.com>
14316
14317 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
14318 than Driver option.
14319 * config/hpux11.opt (mt): Likewise.
14320 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
14321 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
14322 * config/vax/elf.opt (mno-asm-pic): Likewise.
14323 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
14324
d1d46f9f
MS
143252011-02-21 Mike Stump <mikestump@comcast.net>
14326
14327 PR target/47822
14328 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
14329 tree so we can get save the type.
14330 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
14331 for CFString instead of trying to use past the end of the builtins.
14332 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
14333 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
14334 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
14335 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
14336 Rename to darwin_builtin_cfstring.
14337 (darwin_init_cfstring_builtins): Return the built type.
14338
23e0d930
UB
143392011-02-21 Uros Bizjak <ubizjak@gmail.com>
14340
14341 PR target/47840
14342 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
14343 (_mm256_insert_epi64): Use _mm_insert_epi64.
14344
192997cf
AS
143452011-02-21 Anatoly Sokolov <aesok@post.ru>
14346
14347 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14348 * config/stormy16/stormy16-protos.h
14349 (xstormy16_mode_dependent_address_p): Remove.
14350 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
14351 Make static. Change return type to bool. Change argument type to
14352 const_rtx. Remove dead code.
14353 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14354
e292d003
RG
143552011-02-21 Richard Guenther <rguenther@suse.de>
14356
14357 PR lto/47820
14358 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14359 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
14360 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
14361 TUs context.
23e0d930 14362 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
14363 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
14364
77f846e9
RG
143652011-02-20 Richard Guenther <rguenther@suse.de>
14366
14367 PR lto/47822
14368 * tree.c (free_lang_data_in_decl): Clean builtins from
14369 the TU decl BLOCK_VARS.
23e0d930 14370
b2cddfc8
AO
143712011-02-19 Alexandre Oliva <aoliva@redhat.com>
14372
14373 PR debug/47620
14374 PR debug/47630
14375 * haifa-sched.c (fix_tick_ready): Skip tick computation
14376 for debug insns.
14377
becf4c11
RG
143782011-02-19 Richard Guenther <rguenther@suse.de>
14379
14380 PR lto/47647
14381 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
14382 Remove lazy BLOCK_VARS streaming.
14383 (lto_input_ts_block_tree_pointers): Likewise.
14384 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
14385
27f98305
JM
143862011-02-19 Joseph Myers <joseph@codesourcery.com>
14387
14388 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
14389
064bf3f4
JM
143902011-02-19 Joseph Myers <joseph@codesourcery.com>
14391
14392 * config/i386/biarch32.h, config/i386/mach.h,
14393 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
14394
9215ddc3
JJ
143952011-02-19 Jakub Jelinek <jakub@redhat.com>
14396
14397 PR target/47800
14398 * config/i386/i386.md (peephole2 for shift and plus): Use
14399 operands[1] original mode in the first insn.
14400
8b021004
MS
144012011-02-18 Mike Stump <mikestump@comcast.net>
14402
65ded153 14403 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 14404
f84ae14c
JH
144052011-02-18 Jan Hubicka <jh@suse.cz>
14406
14407 PR middle-end/47788
65ded153
EB
14408 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
14409 to zero when the function is not inlinable at all.
f84ae14c 14410
eddabc80
JDA
144112011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14412
14413 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
14414 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14415 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
14416 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
14417 * config/pa/t-pa64: Likewise.
14418 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
14419
ca3da783
JJ
144202011-02-18 Jakub Jelinek <jakub@redhat.com>
14421
14422 PR driver/47787
14423 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
14424
430aa868
JDA
144252011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14426
14427 PR target/47792
14428 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
14429
4bf7ff7e
AS
144302011-02-18 Anatoly Sokolov <aesok@post.ru>
14431
14432 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
14433 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
14434 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
14435 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
14436 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
14437 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
14438 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
14439 m32r_load_postinc_p, m32r_store_preinc_predec_p,
14440 m32r_legitimate_address_p): New functions.
14441 * config/m32r/constraints.md (constraint "S"): Don't use
14442 STORE_PREINC_PREDEC_P.
14443 (constraint "U"): Don't use LOAD_POSTINC_P.
14444
7efcf910
CLT
144452011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
14446
14447 PR rtl-optimization/46178
14448 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
14449 compute ira_hard_regno_cover_class[].
14450
237d6259
RG
144512011-02-18 Richard Guenther <rguenther@suse.de>
14452
14453 PR lto/47798
14454 * lto-streamer.h (lto_global_var_decls): Declare.
14455 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
14456 statics for global var processing.
14457
12d80acc
RG
144582011-02-18 Richard Guenther <rguenther@suse.de>
14459
14460 PR tree-optimization/47737
14461 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
14462 edge dominance check.
14463
abfea58d
JJ
144642011-02-18 Jakub Jelinek <jakub@redhat.com>
14465
14466 PR debug/47780
14467 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
14468 avoid invalid rtx sharing.
14469
f73c8882
GP
144702011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
14471
14472 * doc/cpp.texi (Obsolete Features): Add background on the
14473 origin of assertions.
14474
d764a8e6
IS
144752011-02-17 Iain Sandoe <iains@gcc.gnu.org>
14476
14477 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 14478 objc_abi == 2.
d764a8e6
IS
14479 * config/darwin.c (output_objc_section_asm_op): Added support for
14480 ABI v1 and v2.
14481 (is_objc_metadata): New.
14482 (darwin_objc2_section): New.
14483 (darwin_objc1_section): New.
14484 (machopic_select_section): Added support for ABI v1 and v2.
14485 (darwin_emit_objc_zeroed): New.
14486 (darwin_output_aligned_bss): Detect objc metadata and treat it
14487 appropriately.
14488 (darwin_asm_output_aligned_decl_common): Same.
14489 (darwin_asm_output_aligned_decl_local): Same.
14490 * config/darwin-sections.def: Updated for ABI v1 and v2.
14491 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
14492 compiling Objective-C code for the NeXT runtime, default to using
14493 ABI version 0 for 32-bit, and version 2 for 64-bit.
14494
0a8134ca
JM
144952011-02-17 Joseph Myers <joseph@codesourcery.com>
14496
14497 * common.opt (optimize_fast): New Variable.
14498 * opts.c (default_options_optimization): Use opts->x_optimize_fast
14499 instead of local variable ofast.
14500
0a256240
NP
145012011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
14502
14503 * doc/invoke.texi (fobjc-abi-version): Documented.
14504 (fobjc-nilcheck): Documented.
14505 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
14506 version.
14507
fa381cb2
JM
145082011-02-17 Joseph Myers <joseph@codesourcery.com>
14509
14510 PR driver/47390
14511 * common.opt (export-dynamic): New Driver option.
14512 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
14513
5437eaa6
JM
145142011-02-17 Joseph Myers <joseph@codesourcery.com>
14515
14516 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
14517
bb7e6d55
AO
145182011-02-17 Alexandre Oliva <aoliva@redhat.com>
14519 Jan Hubicka <jh@suse.cz>
14520
14521 PR debug/47106
14522 PR debug/47402
14523 * cfgexpand.c (account_used_vars_for_block): Remove.
14524 (estimated_stack_frame_size): Use referenced vars.
14525 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
14526 that were referenced in the original function. Test src_fn
14527 rather than cfun. Drop redundant get_var_ann.
14528 (setup_one_parameter): Drop redundant get_var_ann.
14529 (declare_return_variable): Likewise.
14530 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
14531 (copy_arguments_for_versioning): Drop redundant get_var_ann.
14532 * ipa-inline.c (compute_inline_parameters): Do not compute
14533 disregard_inline_limits here.
bb7e6d55
AO
14534 (compute_inlinable_for_current, pass_inlinable): New.
14535 (pass_inline_parameters): Require PROP_referenced_vars.
14536 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 14537 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
14538 (cgraph_analyze_function): Set .disregard_inline_limits.
14539 * tree-sra.c (convert_callers): Compute inliner parameters
14540 only for functions already in SSA form.
14541
f181a8a7
JM
145422011-02-17 Joseph Myers <joseph@codesourcery.com>
14543
14544 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
14545 -mlittle-endian-data.
14546
c6869789
JM
145472011-02-17 Joseph Myers <joseph@codesourcery.com>
14548
14549 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
14550 -mno-fpu, not -fpu and -no-fpu.
14551 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
14552 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
14553
fbf4bfd3
UB
145542011-02-17 Uros Bizjak <ubizjak@gmail.com>
14555
14556 PR target/43653
14557 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
14558 input reload with PLUS RTX.
14559
70be5dc7
JM
145602011-02-16 Joseph Myers <joseph@codesourcery.com>
14561
14562 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
14563 of InverseVar(MDMX).
14564
30b1646e
JM
145652011-02-16 Joseph Myers <joseph@codesourcery.com>
14566
14567 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
14568 --m4-340.
14569
ab7b71e9
JM
145702011-02-16 Joseph Myers <joseph@codesourcery.com>
14571
14572 * config/mn10300/mn10300.opt (mno-crt0): New.
14573
466f3f08
JM
145742011-02-16 Joseph Myers <joseph@codesourcery.com>
14575
14576 * config/m68k/uclinux.opt (static-libc): New Driver option.
14577
8226cd7b
JM
145782011-02-16 Joseph Myers <joseph@codesourcery.com>
14579
14580 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
14581
45cab1d7
JM
145822011-02-16 Joseph Myers <joseph@codesourcery.com>
14583
14584 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
14585 %{muser-extend-enabled}.
14586
65aab64f
RG
145872011-02-16 Richard Guenther <rguenther@suse.de>
14588
14589 PR tree-optimization/47738
14590 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
14591 the TODO from tree_predictive_commoning.
14592
fc2fa4fb
JL
145932011-02-15 Jeff Law <law@redhat.com>
14594
14595 Revert
14596 2011-01-25 Jeff Law <law@redhat.com>
14597
14598 PR rtl-optimization/37273
14599 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14600 handle them like argument loads from stack slots. Do not double
14601 count memory for memory constants and argument loads from stack slots.
14602
4e380b8e
L
146032011-02-15 H.J. Lu <hongjiu.lu@intel.com>
14604
14605 PR middle-end/47725
14606 * combine.c (cant_combine_insn_p): Revert the last change.
14607
e3a69bb4
MM
146082011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
14609
14610 PR target/47755
14611 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
14612 mode for vector constants. Remove code that checks for TImode.
14613
de650422
AO
146142011-02-15 Alexandre Oliva <aoliva@redhat.com>
14615
14616 PR debug/47106
14617 PR debug/47402
14618 * cgraph.h (compute_inline_parameters): Return void.
14619 * ipa-inline.c (compute_inline_parameters): Adjust.
14620
30925d94
AO
146212011-02-15 Alexandre Oliva <aoliva@redhat.com>
14622
14623 PR debug/47106
14624 PR debug/47402
14625 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
14626 rather than decl.
14627 * cfgexpand.c (estimated_stack_frame_size): Likewise.
14628 * ipa-inline.c (compute_inline_parameters): Adjust.
14629
1b9a784a
AO
146302011-02-15 Alexandre Oliva <aoliva@redhat.com>
14631
14632 PR debug/47106
14633 PR debug/47402
14634 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
14635 Adjust all users. Pass FN to...
14636 * tree-flow-inline.h (first_referenced_var): ... this. Add
14637 fn argument.
14638 * ipa-struct-reorg.c: Adjust.
14639 * tree-dfa.c: Adjust.
14640 * tree-into-ssa.c: Adjust.
14641 * tree-sra.c: Adjust.
14642 * tree-ssa-alias.c: Adjust.
14643 * tree-ssa-live.c: Adjust.
14644 * tree-ssa.c: Adjust.
14645 * tree-ssanames.c: Adjust.
14646 * tree-tailcall.c: Adjust.
14647
27c6b086
AO
146482011-02-15 Alexandre Oliva <aoliva@redhat.com>
14649
14650 PR debug/47106
14651 PR debug/47402
14652 * tree-flow.h (referenced_var_lookup): Add fn parameter.
14653 Adjust all callers.
14654 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
14655 * tree-flow-inline.h: Adjust.
14656 * gimple-pretty-print.c: Adjust.
14657 * tree-into-ssa.c: Adjust.
14658 * tree-ssa.c: Adjust.
14659 * cfgexpand.c: Adjust.
14660
679e8183
NF
146612011-02-15 Nathan Froyd <froydnj@codesourcery.com>
14662
fbf4bfd3
UB
14663 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
14664 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14665 (EXTRA_CONSTRAINT): Delete.
14666 * config/iq2000/constraints.md: New file.
14667 * config/iq2000/iq2000.md: Include it.
679e8183
NF
14668 (define_insn ""): Delete.
14669 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
14670 unsupported constraint letters from patterns.
14671 (call_value, call_value_internal1): Likewise.
14672 (call_value_multiple_internal1): Likewise.
14673
a45d420a
NC
146742011-02-15 Nick Clifton <nickc@redhat.com>
14675
14676 * config/mn10300/mn10300.c: Include tm-constrs.h.
14677 (struct liw_data): New data structure describing an LIW candidate
14678 instruction.
14679 (extract_bundle): Use struct liw_data. Allow small integer
14680 operands for some instructions.
14681 (check_liw_constraints): Use struct liw_data. Remove swapped
14682 parameter. Add comments describing the checks. Fix bug when
14683 assigning the source of liw1 to the source of liw2.
14684 (liw_candidate): Delete. Code moved into extract_bundle.
14685 (mn10300_bundle_liw): Use struct liw_data. Check constraints
14686 before swapping.
14687 * config/mn10300/predicates.md (liw_operand): New predicate.
14688 Allows registers and small integer constants.
14689 * config/mn10300/constraints.md (O): New constraint. Accetps
14690 integers in the range -8 to +7 inclusive.
14691 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
14692 for moving a small integer into a register. Give this alternative
14693 LIW attributes.
14694 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
14695 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
14696 using the J,K,L and M constraints,
14697 (liw): Remove SI mode on second operands to allow for HI and QI
14698 mode values.
14699 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
14700 instruction.
14701
8a73faf1
L
147022011-02-15 H.J. Lu <hongjiu.lu@intel.com>
14703
14704 PR middle-end/47725
14705 * combine.c (cant_combine_insn_p): Check zero/sign extended
14706 hard registers.
14707
48feba28
RG
147082011-02-15 Richard Guenther <rguenther@suse.de>
14709
14710 PR tree-optimization/47743
14711 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
14712 for a non-type-compatible VN lookup bail out.
14713
ad1c1eeb
NF
147142011-02-15 Nathan Froyd <froydnj@codesourcery.com>
14715
14716 * config/fr30/constraints.md: New file.
14717 * config/fr30/fr30.md: Include it.
14718 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
14719 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14720 (EXTRA_CONSTRAINT): Delete.
14721
49ac143d
NF
147222011-02-15 Nathan Froyd <froydnj@codesourcery.com>
14723
14724 * config/frv/constraints.md: New file.
14725 * config/frv/predicates.md: Include it.
14726 * config/frv/frv.c (reg_class_from_letter): Delete.
14727 (frv_option_override): Don't initialize it.
14728 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
14729 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
14730 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
14731 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
14732 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
14733 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14734 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
14735 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
14736 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
14737 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
14738 (REG_CLASS_FROM_CONSTRAINT): Delete.
14739
c95f9494
JJ
147402011-02-15 Jakub Jelinek <jakub@redhat.com>
14741
14742 PR middle-end/47581
14743 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
14744 if frame size is 0 in a leaf function.
14745
13aed611
RO
147462011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14747
14748 PR pch/14940
14749 * config/alpha/host-osf.c: New file.
14750 * config/alpha/x-osf: New file.
14751 * config.host (alpha*-dec-osf*): Use it.
14752
b09c3081
AS
147532011-02-14 Anatoly Sokolov <aesok@post.ru>
14754
14755 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14756 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
14757 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
14758 (rx_mode_dependent_address_p): ...this. Make static. Change argument
14759 type to const_rtx.
14760 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14761
d634083b
NF
147622011-02-14 Nathan Froyd <froydnj@codesourcery.com>
14763
14764 * config/stormy16/constraints.md: New file.
14765 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
14766 Use satisfies_constraint_Q and satisfies_constraint_R.
14767 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
14768 Delete.
14769 (xstormy16_legitiamte_address_p): Declare.
14770 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
14771 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14772 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 14773 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
14774 Un-staticize.
14775 (xstormy16_extra_constraint_p): Delete.
14776
c7dd803e
EB
147772011-02-14 Eric Botcazou <ebotcazou@adacore.com>
14778
14779 PR tree-optimization/46494
14780 * loop-unroll.c (split_edge_and_insert): Adjust comment.
14781 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
14782 (pass_rtl_loop_done): Add TODO_verify_flow.
14783 * fwprop.c (pass_rtl_fwprop): Likewise.
14784 * modulo-sched.c (pass_sms): Likewise.
14785 * tree-ssa-dom.c (pass_dominator): Likewise.
14786 * tree-ssa-loop-ch.c (pass_ch): Likewise.
14787 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
14788 (pass_tree_loop_done): Likewise.
14789 * tree-ssa-pre.c (execute_pre): Likewise.
14790 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
14791 * tree-ssa-sink.c (pass_sink_code): Likewise.
14792 * tree-vrp.c (pass_vrp): Likewise.
14793
c6150df6
NF
147942011-02-14 Nathan Froyd <froydnj@codesourcery.com>
14795
c7dd803e
EB
14796 * config/v850/constraints.md: New file.
14797 * config/v850/v850.md: Include it.
14798 * config/v850/predicates.md (reg_or_0_operand): Use
14799 satisfies_constraint_G.
14800 (special_symbolref_operand): Use satisfies_constraint_K.
14801 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
14802 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
14803 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
14804 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
14805 (EXTRA_CONSTRAINT): Delete.
14806 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
14807 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
14808 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 14809
30dd1ea3
AS
148102011-02-14 Anatoly Sokolov <aesok@post.ru>
14811
14812 PR target/47696
14813 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
14814 description.
14815
944f4bb3
NF
148162011-02-14 Nathan Froyd <froydnj@codesourcery.com>
14817
14818 * config/mcore/constraints.md: New file.
14819 * config/mcore/mcore.md: Include it.
14820 * config/mcore/mcore.c (reg_class_from_letter): Delete.
14821 * config/mcore/mcore.h (reg_class_from_letter): Delete.
14822 (REG_CLASS_FROM_LETTER): Delete.
14823 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
14824 insn_const_int_ok_for_constraint.
14825 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
14826 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
14827 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14828 (EXTRA_CONSTRAINT): Delete.
14829
ad56a54c
RO
148302011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14831
14832 PR ada/41929
14833 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
14834 (IS_SIGHANDLER): Define.
14835 (sparc64_is_sighandler): New function, split off from
14836 sparc64_fallback_frame_state.
14837 (sparc_is_sighandler): New function, split off from
14838 sparc_fallback_frame_state.
14839 (sparc64_fallback_frame_state): Merge with ...
14840 (sparc_fallback_frame_state): ... this into ...
14841 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
14842 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
14843 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
14844 stack instead of hardcoded offsets.
ad56a54c 14845
fbf4bfd3 148462011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
14847
14848 PR target/45808
14849 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
14850
029c8f3e
RW
148512011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14852
14853 * configure: Regenerate.
14854
a016dc83
JM
148552011-02-12 Joseph Myers <joseph@codesourcery.com>
14856
14857 PR driver/45731
14858 * gcc.c (asm_options): Correct spec matching --target-help.
14859
8957a0ec
MJ
148602011-02-12 Martin Jambor <mjambor@suse.cz>
14861
14862 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
14863 to gimple call error.
14864
6ef828bc
MS
148652011-02-12 Mike Stump <mikestump@comcast.net>
14866
14867 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
14868 comments in backslash regions.
14869
a4015be5
MS
148702011-02-12 Mike Stump <mikestump@comcast.net>
14871 Jakub Jelinek <jakub@redhat.com>
14872 Iain Sandoe <iains@gcc.gnu.org>
14873
14874 PR target/47324
14875 * dwarf2out.c (output_cfa_loc): When required, apply the
14876 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
14877 (output_loc_sequence): Likewise.
14878 (output_loc_operands_raw): Likewise.
14879 (output_loc_sequence_raw): Likewise.
14880 (output_cfa_loc): Likewise.
14881 (output_loc_list): Suppress register number adjustment when
14882 calling output_loc_sequence()
14883 (output_die): Likewise.
14884
5378dda2
AS
148852011-02-12 Anatoly Sokolov <aesok@post.ru>
14886
14887 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14888 Remove macros.
14889 * config/xtensa/xtensa.c (xtensa_register_move_cost,
14890 xtensa_memory_move_cost): New functions.
14891 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
14892
f3d533d3
AO
148932011-02-12 Alexandre Oliva <aoliva@redhat.com>
14894
14895 PR lto/47225
14896 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
14897 in the current directory.
14898 * configure: Rebuilt.
14899
9d53403c
IS
149002011-02-12 Iain Sandoe <iains@gcc.gnu.org>
14901
14902 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 14903 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
14904 correct indents of the preceding block.
14905
a350a6c8
IS
149062011-02-12 Iain Sandoe <iains@gcc.gnu.org>
14907
14908 * gcc.c (driver_handle_option): Concatenate the argument to -F with
14909 the switch.
14910
bab79a40
JM
149112011-02-11 Joseph Myers <joseph@codesourcery.com>
14912
14913 * common.opt (nostartfiles): New Driver option.
14914
1bbc6693
XDL
149152011-02-11 Xinliang David Li <davidxl@google.com>
14916
14917 PR tree-optimization/47707
14918 * tree-chrec.c (convert_affine_scev): Keep type precision.
14919
1da7d8c0
EB
149202011-02-11 Eric Botcazou <ebotcazou@adacore.com>
14921
14922 PR tree-optimization/47420
14923 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
14924
149252011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
14926
14927 PR rtl-optimization/47614
14928 * rtl.h (check_for_inc_dec): Declare.
14929 * dse.c (check_for_inc_dec): Externalize...
14930 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
14931 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
14932
4df47bca
JM
149332011-02-11 Joseph Myers <joseph@codesourcery.com>
14934
14935 PR driver/47678
14936 * gcc.c (main): Do not compile inputs if there were errors in
14937 option handling.
14938 * opts-common.c (read_cmdline_option): Check for wrong language
14939 after other error checks.
14940
61502ca8
NF
149412011-02-11 Nathan Froyd <froydnj@codesourcery.com>
14942
14943 * cgraph.c: Fix comment typos.
14944 * cgraph.h: Likewise.
14945 * cgraphunit.c: Likewise.
14946 * ipa-cp.c: Likewise.
14947 * ipa-inline.c: Likewise.
14948 * ipa-prop.c: Likewise.
14949 * ipa-pure-const.c: Likewise.
14950 * ipa-ref.c: Likewise.
14951 * ipa-reference.c: Likewise.
14952
b63f974e
JJ
149532011-02-11 Jakub Jelinek <jakub@redhat.com>
14954
d50c5e0c
JJ
14955 PR debug/47684
14956 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 14957
6dd2a13c
RO
149582011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14959
14960 PR testsuite/47400
14961 * doc/sourcebuild.texi (Require Support): Document
14962 dg-require-ascii-locale.
14963
4a087ccf
MX
149642011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
14965
14966 * doc/lto.texi (Write summary): Fix missing parentheses.
14967
a4403164
DD
149682011-02-10 DJ Delorie <dj@redhat.com>
14969
14970 * config/m32c/m32c.c (m32c_option_override): Disable
14971 -fcombine-stack-adjustments until flag value tracking and compare
14972 optimization can be rewritten.
14973
4fac45bd
PB
149742011-02-10 Peter Bergner <bergner@vnet.ibm.com>
14975
14976 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
14977 PROCESSOR_POWER7.
14978 (PROCESSOR_DEFAULT64): Likewise.
14979
72602cd1
RH
149802011-02-10 Richard Henderson <rth@redhat.com>
14981
14982 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
14983 change from 2011-02-03.
14984 * config/rx/rx.c (flags_from_code): Likewise.
14985 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
14986 is valid, n/pz otherwise.
14987 (rx_select_cc_mode): Return CCmode if Y is not zero.
14988
ea57f573
RG
149892011-02-10 Richard Guenther <rguenther@suse.de>
14990
ea4c3e65 14991 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 14992
92b1d23b
RG
149932011-02-10 Richard Guenther <rguenther@suse.de>
14994
14995 PR tree-optimization/47677
14996 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
14997
525a2d06
JJ
149982011-02-10 Jakub Jelinek <jakub@redhat.com>
14999
15000 PR target/47665
15001 * combine.c (make_compound_operation): Only change shifts into
15002 multiplication for SCALAR_INT_MODE_P.
15003
06c969bd
JZ
150042011-02-10 Jie Zhang <jie@codesourcery.com>
15005
15006 PR testsuite/47622
15007 Revert
15008 2011-02-05 Jie Zhang <jie@codesourcery.com>
15009 PR debug/42631
15010 * web.c (entry_register): Don't clobber the number of the
15011 first uninitialized reference in used[].
15012
282ec48e
RG
150132011-02-09 Richard Guenther <rguenther@suse.de>
15014
15015 PR tree-optimization/47664
15016 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
15017 all edges again.
15018
df98c3e8
DE
150192011-02-09 David Edelsohn <dje.gcc@gmail.com>
15020
d0f21cd6
DE
15021 PR target/46481
15022 PR target/47032
df98c3e8
DE
15023 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
15024 PROCESSOR_POWER7.
15025 (PROCESSOR_DEFAULT64): Same.
15026 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
15027
67b6839f
RO
150282011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15029
15030 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
15031
4fd73214
MJ
150322011-02-09 Martin Jambor <mjambor@suse.cz>
15033
15034 PR middle-end/45505
15035 * tree-sra.c (struct access): New flags grp_scalar_read and
15036 grp_scalar_write. Changed description of assignment read and write
15037 flags.
15038 (dump_access): Dump new flags, reorder all of them.
15039 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
15040 to detect multiple scalar reads.
15041 (analyze_access_subtree): Use the new scalar read write flags instead
15042 of the old flags. Adjusted comments.
15043
91140cd3
DD
150442011-02-08 DJ Delorie <dj@redhat.com>
15045
15046 PR target/47548
15047 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
15048 patterns.
15049
4254bbfe
JM
150502011-02-08 Joseph Myers <joseph@codesourcery.com>
15051
15052 * config/m68k/uclinux.opt: New.
15053 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
15054
f1fda84e
JM
150552011-02-08 Joseph Myers <joseph@codesourcery.com>
15056
15057 * config/cris/elf.opt (sim): New Driver option.
15058
4933ae74
JM
150592011-02-08 Joseph Myers <joseph@codesourcery.com>
15060
15061 * config/xtensa/elf.opt: New.
15062 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
15063
4ad70280
JM
150642011-02-08 Joseph Myers <joseph@codesourcery.com>
15065
15066 * config/vax/elf.opt: New.
15067 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
15068
20893707
JM
150692011-02-08 Joseph Myers <joseph@codesourcery.com>
15070
15071 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
15072
b8e7038e
JM
150732011-02-08 Joseph Myers <joseph@codesourcery.com>
15074
15075 * config/gnu-user.opt: New.
15076 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
15077 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
15078 *-*-uclinux*): Use gnu-user.opt.
15079
e1c5225a
TS
150802011-02-08 Thomas Schwinge <thomas@schwinge.name>
15081
15082 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
15083 * config/i386/gnu.h (CPP_SPEC): Likewise.
15084
5e46b0c6
ILT
150852011-02-08 Ian Lance Taylor <iant@google.com>
15086
15087 * common.opt (fcx-limited-range): Add SetByCombined flag.
15088 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
15089 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
15090 (fassociative-math, freciprocal-math): Likewise.
15091 (funsafe-math-optimizations): Likewise.
15092 * opth-gen.awk: Handle SetByCombined.
15093 * optc-gen.awk: Likewise.
ea4c3e65 15094 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
15095 (set_unsafe_math_optimizations_flags): Likewise.
15096 * doc/options.texi (Option properties): Document SetByCombined.
15097
32243d46
JM
150982011-02-08 Joseph Myers <joseph@codesourcery.com>
15099
15100 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
15101 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
15102 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
15103 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
15104 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
15105
479c1fb3
SP
151062011-02-08 Sebastian Pop <sebastian.pop@amd.com>
15107
15108 PR tree-optimization/46834
15109 PR tree-optimization/46994
15110 PR tree-optimization/46995
15111 * graphite-sese-to-poly.c (used_outside_reduction): New.
15112 (detect_commutative_reduction): Call used_outside_reduction.
15113 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
15114 translate_scalar_reduction_to_array only when at least one
15115 loop-phi/close-phi tuple has been detected.
15116
3865a06f
RG
151172011-02-08 Richard Guenther <rguenther@suse.de>
15118
15119 PR middle-end/47639
15120 * tree-vect-generic.c (expand_vector_operations_1): Update
15121 stmts here ...
15122 (expand_vector_operations): ... not here. Cleanup EH info
15123 and the CFG if required.
15124
62902f3f
RG
151252011-02-08 Richard Guenther <rguenther@suse.de>
15126
15127 PR tree-optimization/47641
15128 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
15129 require type compatibility.
15130
0efb9d64
AK
151312011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15132
15133 * gimple-low.c (lower_function_body): Don't remove the location of
15134 the return statement here.
15135 (lower_gimple_return): Do it here instead but only if the return
15136 statement is actually used twice.
15137
034b8ae4
RG
151382011-02-08 Richard Guenther <rguenther@suse.de>
15139
15140 PR tree-optimization/47632
15141 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
15142 unused up_to_stmt parameter, return whether cfg-cleanup is
15143 necessary, remove EH info properly.
15144 (forward_propagate_into_gimple_cond): Adjust caller.
15145 (forward_propagate_into_cond): Likewise.
15146 (forward_propagate_comparison): Likewise.
15147 (tree_ssa_forward_propagate_single_use_vars): Make
15148 forward_propagate_comparison case similar to the two others.
15149
298362c8
NC
151502011-02-08 Nick Clifton <nickc@redhat.com>
15151
15152 * config/mn10300/mn10300.opt (mliw): New command line option.
15153 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
15154 (liw_bundling): New automaton.
15155 (liw): New attribute.
15156 (liw_op): New attribute.
15157 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
15158 (movsi_internal): Add LIW attributes.
15159 (andsi3): Likewise.
15160 (iorsi3): Likewise.
15161 (xorsi3): Likewise.
15162 (addsi3): Separate register and immediate alternatives.
15163 Add LIW attributes.
15164 (subsi3): Likewise.
15165 (cmpsi): Likewise.
15166 (aslsi3): Likewise.
15167 (lshrsi3): Likewise.
15168 (ashrsi3): Likewise.
15169 (liw): New pattern.
15170 * config/mn10300/mn10300.c (liw_op_names): New
15171 (mn10300_print_operand): Handle 'W' operand descriptor.
15172 (extract_bundle): New function.
15173 (check_liw_constraints): New function.
15174 (liw_candidate): New function.
15175 (mn10300_bundle_liw): New function.
15176 (mn10300_reorg): New function.
15177 (TARGET_MACHINE_DEPENDENT_REORG): Define.
15178 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
15179 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
15180 __LIW__ or __NO_LIW__.
15181 * doc/invoke.texi: Describe the -mliw command line option.
15182
90488014
JDA
151832011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15184
15185 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
15186 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15187 pthread_mutex_unlock): Remove.
15188 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
15189 * config/pa/t-pa64: Likewise.
15190 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
15191 shared libc if not linking against libpthread.
15192 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
15193
689ff841
IS
151942011-02-07 Iain Sandoe <iains@gcc.gnu.org>
15195
15196 PR target/47558
15197 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
15198 on 10.6 and later to ensure that we always use the unwinder from
15199 the system. Only add -no_compact_unwind when tarteting darwin
15200 10.6 or later.
15201
821014aa
SE
152022011-02-07 Steve Ellcey <sje@cup.hp.com>
15203
15204 PR target/46997
15205 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
15206 (vec_interleave_lowv2sf): Ditto.
15207 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
15208 (vec_extract_oddv2sf): Ditto.
15209
41cf94fb
MS
152102011-02-07 Mike Stump <mikestump@comcast.net>
15211
62dea57d 15212 PR target/42333
41cf94fb
MS
15213 Add __ieee_divdc3 entry point.
15214 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
15215 entry point.
15216 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
15217 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
15218 * config/darwin.c (darwin_rename_builtins): Add.
15219 * config/darwin-protos.h (darwin_rename_builtins): Add.
15220
ee09a3dd
MM
152212011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
15222
15223 PR target/47636
15224 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
15225 for the condition.
15226
83296cd0
MS
152272011-02-07 Mike Stump <mikestump@comcast.net>
15228
ea4c3e65 15229 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 15230
0f4e946f
DC
152312011-02-07 Denis Chertykov <chertykov@gmail.com>
15232
15233 PR target/47534
15234 * config/avr/libgcc.S (exit): Move .endfunc
15235
1ec87690
RG
152362011-02-07 Richard Guenther <rguenther@suse.de>
15237
15238 PR tree-optimization/47615
15239 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
15240 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
15241 (run_scc_vn): Initialize it.
15242 (visit_reference_op_load): Use it.
15243 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
15244
b46ae6da
UW
152452011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15246
15247 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
15248 DImode trapping arithmetic libfuncs.
15249
c0aae19c
RG
152502011-02-07 Richard Guenther <rguenther@suse.de>
15251
15252 PR tree-optimization/47621
15253 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
15254 two duplicates ...
15255 (execute_update_addresses_taken): ... here. Make it more
15256 conservative in what we accept.
15257
295d926b
JM
152582011-02-06 Joseph Myers <joseph@codesourcery.com>
15259
15260 * config/sparc/freebsd.h (ASM_SPEC): Define.
15261 * config/sparc/vxworks.h (ASM_SPEC): Define.
15262
bdeb2471
JM
152632011-02-06 Joseph Myers <joseph@codesourcery.com>
15264
15265 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15266
d5d3781a
SB
152672011-02-06 Steven Bosscher <steven@gcc.gnu.org>
15268
15269 * doc/invoke.texi: Remove reference to compiler internals from
15270 user documentation.
15271
15272 * reg-notes.def: Remove REG_VALUE_PROFILE.
15273 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
15274
c42c09fc
JJ
152752011-02-05 Jakub Jelinek <jakub@redhat.com>
15276
15277 PR middle-end/47610
15278 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 15279 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 15280
beea2755
JZ
152812011-02-05 Jie Zhang <jie@codesourcery.com>
15282
15283 PR debug/42631
15284 * web.c (entry_register): Don't clobber the number of the
15285 first uninitialized reference in used[].
15286
a130584a
SP
152872011-02-04 Sebastian Pop <sebastian.pop@amd.com>
15288
15289 PR tree-optimization/46194
15290 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
15291 (build_classic_dist_vector_1): Do not represent classic distance
15292 vectors when the access functions are variating in different loops.
15293
962101ac
JM
152942011-02-04 Joseph Myers <joseph@codesourcery.com>
15295
15296 * config/mips/iris6.opt: New.
15297 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
15298
55eaaa5b
RH
152992011-02-04 Richard Henderson <rth@redhat.com>
15300 Steve Ellcey <sje@cup.hp.com>
15301
15302 PR target/46997
15303 * config/ia64/predicates.md (mux1_brcst_element): New.
15304 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
15305 * config/ia64/ia64.c (ia64_unpack_assemble): New.
15306 (ia64_unpack_sign): New.
15307 (ia64_expand_unpack): Rewrite using new routines.
15308 (ia64_expand_widen_sum): Ditto.
15309 (ia64_expand_dot_prod_v8qi): Ditto.
15310 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
15311 routines, add endian check.
15312 (pmpy2_even): Rename from pmpy2_r, add endian check.
15313 (pmpy2_odd): Rename from pmpy2_l, add endian check.
15314 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
15315 (vec_widen_smult_hi_v4hi): Ditto.
15316 (vec_widen_umult_lo_v4hi): Ditto.
15317 (vec_widen_umult_hi_v4hi): Ditto.
15318 (mulv2si3): Change endian checks.
15319 (sdot_prodv4hi): Rewrite with new calls.
15320 (udot_prodv4hi): New.
15321 (vec_pack_ssat_v4hi): Add endian check.
15322 (vec_pack_usat_v4hi): Ditto.
15323 (vec_pack_ssat_v2si): Ditto.
15324 (max1_even): Rename from max1_r, add endian check.
15325 (max1_odd): Rename from max1_l, add endian check.
15326 (*mux1_rev): Format change.
15327 (*mux1_mix): Ditto.
15328 (*mux1_shuf): Ditto.
15329 (*mux1_alt): Ditto.
15330 (*mux1_brcst_v8qi): Use new predicate.
15331 (vec_extract_evenv8qi): Remove endian check.
15332 (vec_extract_oddv8qi): Ditto.
15333 (vec_interleave_lowv4hi): Format change.
15334 (vec_interleave_highv4hi): Ditto.
15335 (mix2_even): Rename from mix2_r, add endian check.
15336 (mix2_odd): Rename from mux2_l, add endian check.
15337 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
15338 (vec_extract_evenodd_helper): Format change.
15339 (vec_extract_evenv4hi): Remove endian check.
15340 (vec_extract_oddv4hi): Remove endian check.
15341 (vec_interleave_lowv2si): Format change.
15342 (vec_interleave_highv2si): Format change.
15343 (vec_initv2si): Remove endian check.
15344 (vecinit_v2si): Add endian check.
15345 (reduc_splus_v2sf): Add endian check.
15346 (reduc_smax_v2sf): Ditto.
15347 (reduc_smin_v2sf): Ditto.
15348 (vec_initv2sf): Remove endian check.
15349 (fpack): Add endian check.
15350 (fswap): Add endian check.
15351 (vec_interleave_highv2sf): Add endian check.
15352 (vec_interleave_lowv2sf): Add endian check.
15353 (fmix_lr): Add endian check.
15354 (vec_setv2sf): Format change.
15355 (*vec_extractv2sf_0_be): Use shift to extract operand.
15356 (*vec_extractv2sf_1_be): New.
15357 (vec_pack_trunc_v4hi): Add endian check.
15358 (vec_pack_trunc_v2si): Format change.
15359
dcde5957
JJ
153602011-02-04 Jakub Jelinek <jakub@redhat.com>
15361
15362 PR inline-asm/23200
15363 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 15364 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
15365 (stmt_is_replaceable_p): New function.
15366 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
15367 callers.
15368 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
15369 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
15370 SSA_NAME_DEF_STMT.
15371 * tree-flow.h (stmt_is_replaceable_p): New prototype.
15372
a64a8e5a
JM
153732011-02-04 Joseph Myers <joseph@codesourcery.com>
15374
15375 * config/rs6000/xilinx.opt: New.
15376 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
15377
4da2ed2f
JM
153782011-02-04 Joseph Myers <joseph@codesourcery.com>
15379
15380 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
15381
a6e508f9
AS
153822011-02-03 Anatoly Sokolov <aesok@post.ru>
15383
15384 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
15385 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
15386 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
15387 secondary_reload_info, xtensa_secondary_reload): Remove.
15388 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
15389 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15390 (xtensa_preferred_reload_class): Make static. Change return and
15391 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
15392 Use CONST_DOUBLE_P predicate.
15393 (xtensa_preferred_output_reload_class): New function.
15394 (xtensa_secondary_reload): Make static.
15395
82dc0de3
JM
153962011-02-03 Joseph Myers <joseph@codesourcery.com>
15397
15398 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
15399 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
15400 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
15401
7fece979
JJ
154022011-02-03 Jakub Jelinek <jakub@redhat.com>
15403
15404 PR middle-end/31490
15405 * output.h (SECTION_RELRO): Define.
15406 (SECTION_MACH_DEP): Adjust.
15407 (get_variable_section): New prototype.
15408 * varpool.c (varpool_finalize_named_section_flags): New function.
15409 (varpool_assemble_pending_decls): Call it.
15410 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
15411 * cgraphunit.c (cgraph_output_in_order): Call
15412 varpool_finalize_named_section_flags.
15413 * varasm.c (get_section): Allow section flags conflicts between
15414 relro and read-only sections if the section hasn't been declared yet.
15415 Set SECTION_OVERRIDE after diagnosing section type conflict.
15416 (get_variable_section): No longer static.
15417 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
15418 readonly sections that need relocations.
15419 (decl_readonly_section_1): New function.
15420 (decl_readonly_section): Use it.
15421
15422 Revert:
509d65dd 15423 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
15424 Steve Ellcey <sje@cup.hp.com>
15425
15426 PR middle-end/31490
15427 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
15428 if section attribute used.
15429
d18d5478
JJ
154302011-02-03 Jakub Jelinek <jakub@redhat.com>
15431
15432 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
15433 * config/darwin.c (SECTION_NO_ANCHOR): Define.
15434 (darwin_init_sections): Remove assertion.
15435
6479ed4b
NC
154362011-02-03 Nick Clifton <nickc@redhat.com>
15437
15438 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
15439 lt and ge.
38be4072 15440 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
15441 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
15442 instead of "n" and "pz".
15443 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
15444 CC_FLAG_S.
15445
89843f5d
JJ
154462011-02-03 Jakub Jelinek <jakub@redhat.com>
15447
65450d64
JJ
15448 PR target/47312
15449 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
15450 fma, expand FMA_EXPR as fma{,f,l} call.
15451
7d58701c
JJ
15452 PR lto/47274
15453 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
15454 copy them into a unsigned char variable and pass address of it to
15455 lto_output_data_stream.
15456
89843f5d
JJ
15457 PR target/47564
15458 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
15459 around backend_init_target and lang_dependent_init_target calls.
15460 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
15461 (verify_cgraph_node): Don't call set_cfun here. Use
15462 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
15463 Set error_found for incorrectly represented calls to thunks.
15464
4deef538
AO
154652011-02-03 Alexandre Oliva <aoliva@redhat.com>
15466
15467 PR debug/43092
15468 PR rtl-optimization/43494
15469 * rtl.h (for_each_inc_dec_fn): New type.
15470 (for_each_inc_dec): Declare.
15471 * rtlanal.c (struct for_each_inc_dec_ops): New type.
15472 (for_each_inc_dec_find_inc_dec): New fn.
15473 (for_each_inc_dec_find_mem): New fn.
15474 (for_each_inc_dec): New fn.
15475 * dse.c (struct insn_size): Remove.
15476 (replace_inc_dec, replace_inc_dec_mem): Remove.
15477 (emit_inc_dec_insn_before): New fn.
15478 (check_for_inc_dec): Use it, along with for_each_inc_dec.
15479 (canon_address): Pass mem modes to cselib_lookup.
15480 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
15481 (cselib_lookup_from_insn): Likewise.
15482 (cselib_subst_to_values): Likewise.
15483 * cselib.c (find_slot_memmode): New var.
15484 (cselib_find_slot): New fn. Use it instead of
15485 htab_find_slot_with_hash everywhere.
15486 (entry_and_rtx_equal_p): Use find_slot_memmode.
15487 (autoinc_split): New fn.
15488 (rtx_equal_for_cselib_p): Rename and implement in terms of...
15489 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
15490 Deal with autoinc. Special-case recursion into MEMs.
15491 (cselib_hash_rtx): Likewise.
15492 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
15493 address and MEM modes.
15494 (cselib_subst_to_values): Add memmode, pass it on.
15495 Deal with autoinc.
15496 (cselib_lookup): Add memmode argument, pass it on.
15497 (cselib_lookup_from_insn): Add memmode.
15498 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
15499 (struct cselib_record_autoinc_data): New.
15500 (cselib_record_autoinc_cb): New fn.
15501 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
15502 mode to cselib_lookup. Reset autoinced REGs here instead of...
15503 (cselib_process_insn): ... here.
15504 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
15505 to cselib_lookup.
15506 (add_uses): Likewise, also to cselib_subst_to_values.
15507 (add_stores): Likewise.
15508 * sched-deps.c (add_insn_mem_dependence): Pass mode to
15509 cselib_subst_to_values.
15510 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
15511 * gcse.c (do_local_cprop): Adjusted.
15512 * postreload.c (reload_cse_simplify_set): Adjusted.
15513 (reload_cse_simplify_operands): Adjusted.
15514 * sel-sched-dump (debug_mem_addr_value): Pass mode.
15515
1551d44a
AO
155162011-02-03 Alexandre Oliva <aoliva@redhat.com>
15517
15518 PR tree-optimization/45122
15519 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
15520 unsafe assumptions when there's more than one loop exit.
15521
c9485473
MM
155222011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
15523
15524 PR target/47272
15525 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
15526 Document using vector double with the load/store builtins, and
15527 that the load/store builtins always use Altivec instructions.
15528
15529 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
15530 to use altivec memory instructions, even on VSX.
15531 (vector_altivec_store_<mode>): Ditto.
15532
15533 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
15534 function.
15535
15536 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15537 V2DF, V2DI support to load/store overloaded builtins.
15538
15539 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
15540 altivec load/store builtins for V2DF/V2DI types.
15541
15542 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
15543 set avoid indexed addresses on power6 if -maltivec.
15544 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
15545 vector_altivec_load/vector_altivec_store builtins.
15546 (altivec_expand_st_builtin): Ditto.
15547 (altivec_expand_builtin): Add VSX memory builtins.
15548 (rs6000_init_builtins): Add V2DI types to internal types.
15549 (altivec_init_builtins): Add support for V2DF/V2DI altivec
15550 load/store builtins.
15551 (rs6000_address_for_altivec): Insure memory address is appropriate
15552 for Altivec.
15553
15554 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
15555 vec_vsx_ld and vec_vsx_st.
15556 (vsx_store_<mode>): Ditto.
15557
15558 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
15559 variables to hold long long types for VSX vector memory builtins.
15560 (RS6000_BTI_unsigned_long_long): Ditto.
15561 (long_long_integer_type_internal_node): Ditti.
15562 (long_long_unsigned_type_internal_node): Ditti.
15563
15564 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
15565 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
15566 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
15567
15568 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
15569 short cuts.
15570 (vec_vsx_st): Ditto.
15571
b24d1acf
JM
155722011-02-02 Joseph Myers <joseph@codesourcery.com>
15573
15574 * config/pa/pa-hpux10.opt: New.
15575 * config/hpux11.opt (pthread): New Driver option.
15576 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
15577 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
15578
aa18dd0f
JM
155792011-02-02 Joseph Myers <joseph@codesourcery.com>
15580
15581 * config/ia64/vms.opt: New.
15582 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
15583
28fc3eee
MM
155842011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
15585
15586 PR target/47580
15587 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
15588 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
15589 generator functions.
15590 (vsx_floatuns<VSi><mode>2): Ditto.
15591 (vsx_fix_trunc<mode><VSi>2): Ditto.
15592 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
15593
b5838b1f
JM
155942011-02-02 Joseph Myers <joseph@codesourcery.com>
15595
15596 * config/i386/djgpp.opt (posix): New Driver option.
15597
0db8fa89
GP
155982011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
15599
15600 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
15601 Move to the unsupported targets list.
15602
9cd4f22a
PB
156032011-02-02 Peter Bergner <bergner@vnet.ibm.com>
15604
15605 PR rtl-optimization/47525
15606 * df-scan.c: Update copyright years.
15607 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
15608 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
15609
9ed8059c
RO
156102011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15611
15612 * config/i386/sysv4.h (TARGET_VERSION): Remove.
15613 (SUBTARGET_RETURN_IN_MEMORY): Remove.
15614 (ASM_OUTPUT_ASCII): Remove.
15615 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
15616
2a737389
JL
156172011-02-02 Jeff Law <law@redhat.com>
15618
15619 PR middle-end/47543
15620 * reload.c (find_reloads_address): Handle reg+d address where both
15621 components are invalid by reloading the entire address.
15622
9dac82c4
SP
156232011-02-02 Sebastian Pop <sebastian.pop@amd.com>
15624 Richard Guenther <rguenther@suse.de>
15625
15626 PR tree-optimization/40979
15627 PR bootstrap/47044
15628 * passes.c (init_optimization_passes): After LIM call copy_prop
15629 and DCE to clean up.
15630 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
15631
14dd9aab
SP
156322011-02-02 Sebastian Pop <sebastian.pop@amd.com>
15633
15634 PR tree-optimization/47576
15635 PR tree-optimization/47555
15636 * doc/invoke.texi (scev-max-expr-complexity): Documented.
15637 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15638 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
15639 * tree-scalar-evolution.c (follow_ssa_edge): Use
15640 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
15641
5cbf5c20
RG
156422011-02-02 Richard Guenther <rguenther@suse.de>
15643
15644 PR tree-optimization/47566
15645 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
15646
83d70792
AO
156472011-02-02 Alexandre Oliva <aoliva@redhat.com>
15648
e829c321
AO
15649 PR debug/47106
15650 PR debug/47402
15651 * tree-inline.c (declare_return_variable): Remove unused caller
15652 variable.
15653
83d70792
AO
15654 PR debug/47106
15655 PR debug/47402
15656 * tree-flow-inline.h (clear_is_used, is_used_p): New.
15657 * cfgexpand.c (account_used_vars_for_block): Use them.
15658 * tree-nrv.c (tree_nrv): Likewise.
15659 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
15660 (dump_scope_block): Likewise.
15661 (remove_unused_locals): Likewise.
15662
aaa2ac93
AO
15663 PR debug/47106
15664 PR debug/47402
15665 * tree-inline.c (declare_return_variable): Add result decl to
15666 local decls only once.
15667 * gimple-low.c (record_vars_into): Mark newly-created variables
15668 as referenced.
15669
a59d15cf
AO
156702011-02-02 Alexandre Oliva <aoliva@redhat.com>
15671
15672 PR debug/47498
15673 PR debug/47501
15674 PR debug/45136
15675 PR debug/45130
15676 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
15677 debug insns.
15678 (no_real_insns_p, schedule_block, set_priorities): Drop special
15679 treatment of boundary debug insns.
38be4072 15680 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
15681 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
15682 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
15683 (BOUNDARY_DEBUG_INSN_P): Likewise.
15684 (SCHEDULE_DEBUG_INSN_P): Likewise.
15685 * sched-rgn.c (init_ready_list): Drop special treatment of
15686 boundary debug insns.
15687 * final.c (rest_of_clean_state): Clear notes' BB.
15688
6fc2f091
JM
156892011-02-01 Joseph Myers <joseph@codesourcery.com>
15690
15691 * config/openbsd.opt (assert=): New Driver option.
15692
fc523387
JM
156932011-02-01 Joseph Myers <joseph@codesourcery.com>
15694
15695 * config/i386/nto.opt: New.
15696 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
15697
6d9821e5
JM
156982011-02-01 Joseph Myers <joseph@codesourcery.com>
15699
15700 * config/i386/netware.opt: New.
15701 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
15702
cef932d4
JM
157032011-02-01 Joseph Myers <joseph@codesourcery.com>
15704
15705 * config/interix.opt (posix): New Driver option.
15706
22843acd
DD
157072011-02-01 DJ Delorie <dj@redhat.com>
15708
56490b74
DD
15709 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
15710
22843acd
DD
15711 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
15712 class for A0/A1.
15713
199c8f2f
SP
157142011-02-01 Sebastian Pop <sebastian.pop@amd.com>
15715
15716 PR tree-optimization/47561
15717 * toplev.c (process_options): Print the Graphite flags. Add
15718 flag_loop_flatten to the list of options requiring Graphite.
15719
926bcf22
JM
157202011-02-01 Joseph Myers <joseph@codesourcery.com>
15721
15722 * config/i386/cygming.opt (posix): New Driver option.
15723
59793c51
JM
157242011-02-01 Joseph Myers <joseph@codesourcery.com>
15725
15726 * config/arm/vxworks.opt: New.
15727 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
15728
183c38a4
JM
157292011-02-01 Joseph Myers <joseph@codesourcery.com>
15730
15731 * config/alpha/elf.opt: New.
15732 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
15733 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
15734
9939e416
RG
157352011-02-01 Richard Guenther <rguenther@suse.de>
15736
15737 PR tree-optimization/47559
15738 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
15739 store-motion on references that can throw.
15740
4a3c9687
BS
157412011-02-01 Bernd Schmidt <bernds@codesourcery.com>
15742
15743 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
15744 * tree-pass.h (TDF_CSELIB): New macro.
15745 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
15746 cselib_lookup): Check for it rather than for TDF_DETAILS.
15747
dd3b31fb
L
157482011-02-01 H.J. Lu <hongjiu.lu@intel.com>
15749
15750 PR driver/47547
15751 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
15752 is HOST_BIT_BUCKET.
15753
15754 * opts.c (finish_options): Don't add x_aux_base_name if it is
15755 HOST_BIT_BUCKET.
15756
34c1de79
RG
157572011-02-01 Richard Guenther <rguenther@suse.de>
15758
15759 PR tree-optimization/47555
15760 Revert
15761 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
15762
15763 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15764
dd2804d2
SB
157652011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
15766
15767 PR gcc/46692
15768 * config/lm32/t-lm32: Add multilib for all CPU options.
15769
3fd3b156
RG
157702011-02-01 Richard Guenther <rguenther@suse.de>
15771
15772 PR tree-optimization/47541
15773 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
15774 sure to have a field at offset zero.
15775
f16072b6
JM
157762011-01-31 Joseph Myers <joseph@codesourcery.com>
15777
15778 * config/arc/arc.opt (EB, EL): New Driver options.
15779
6456cf2e
JM
157802011-01-31 Joseph Myers <joseph@codesourcery.com>
15781
15782 * config/alpha/osf5.opt: New.
15783 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
15784
cdde6ab4
JM
157852011-01-31 Joseph Myers <joseph@codesourcery.com>
15786
15787 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
15788
7633415c
SP
157892011-01-31 Sebastian Pop <sebastian.pop@amd.com>
15790
15791 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
15792 -floop-interchange.
15793 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
15794 is an alias of -floop-interchange and that it requires the
15795 Graphite infrastructure.
15796 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
15797 flag_loop_interchange based on the value of flag_tree_loop_linear.
15798
0425d6f5
JJ
157992011-01-31 Jakub Jelinek <jakub@redhat.com>
15800 Richard Guenther <rguenther@suse.de>
15801
15802 PR tree-optimization/47538
15803 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
15804 type instead of r1type, except for comparisons. For right
15805 shifts and comparisons punt if there are mismatches in
15806 sizetype vs. non-sizetype types.
15807
500b16c3
RO
158082011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15809
15810 * doc/sourcebuild.texi (Effective-Target Keywords): Document
15811 avx_runtime.
15812
e279edb0
RO
158132011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15814
15815 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
15816 version number.
15817 * configure: Regenerate.
15818
c6092243
RO
158192011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15820
15821 * configure.ac (gcc_cv_ld_static_option): Define.
15822 (gcc_cv_ld_dynamic_option): Define.
15823 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
15824 instead.
15825 (HAVE_LD_STATIC_DYNAMIC): Update message.
15826 (LD_STATIC_OPTION): Define.
15827 (LD_DYNAMIC_OPTION): Define.
15828 * configure: Regenerate.
15829 * config.in: Regenerate.
15830 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
15831 HAVE_LD_STATIC_DYNAMIC]: Use them.
15832
d7862be3
NC
158332011-01-31 Nick Clifton <nickc@redhat.com>
15834
15835 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
15836 registers inside interrupt handlers if the handler is not a leaf
15837 function.
15838
ba4ec0e0
NC
158392011-01-31 Nick Clifton <nickc@redhat.com>
15840
15841 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
15842 reg_renumber returning an INVALID_REGNUM.
15843
29a63921
AO
158442011-01-31 Alexandre Oliva <aoliva@redhat.com>
15845
15846 PR libgcj/44341
15847 * doc/install.texi: Document host options discarded when cross
15848 configuring target libraries.
15849
ef591d3f
AO
158502011-01-31 Alexandre Oliva <aoliva@redhat.com>
15851
15852 Reverted:
15853 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
15854 PR debug/45136
15855 PR debug/45130
15856 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
15857 debug insns.
15858 (no_real_insns_p, schedule_block, set_priorities): Drop special
15859 treatment of boundary debug insns.
38be4072 15860 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
15861 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
15862 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
15863 (BOUNDARY_DEBUG_INSN_P): Likewise.
15864 (SCHEDULE_DEBUG_INSN_P): Likewise.
15865 * sched-rgn.c (init_ready_list): Drop special treatment of
15866 boundary debug insns.
15867 * final.c (rest_of_clean-state): Clear notes' BB.
15868
61052244
AM
158692011-01-31 Alan Modra <amodra@gmail.com>
15870
15871 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
15872 toc relative expressions as we do in print_operand_address.
15873
c4c8962b
KH
158742011-01-30 Kazu Hirata <kazu@codesourcery.com>
15875
15876 * doc/extend.texi: Follow spelling conventions.
15877 * doc/invoke.texi: Fix a typo.
15878
e543b94c
JM
158792011-01-30 Joseph Myers <joseph@codesourcery.com>
15880
15881 * config/hpux11.opt: New.
15882 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
15883 ia64*-*-hpux*): Use hpux11.opt.
15884
509d65dd 158852011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
15886
15887 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
15888 to tmake_file.
15889
7be03a0e
GP
158902011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
15891
15892 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
15893 support sites.
15894
419d1d37
GP
158952011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
15896
b596ed64
GP
15897 * doc/install.texi (Binaries): Remove outdated reference for
15898 Motorola 68HC11/68HC12 downloads.
15899
159002011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 15901
419d1d37
GP
15902 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
15903 Drepper's paper.
15904
4406d0e9
JW
159052011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
15906
15907 PR bootstrap/47147
15908 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
15909 used by NetBSD.
15910
38be4072 159112011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
15912
15913 * value-prof.c (check_counter): Corrected error message.
15914
0cd98787
JZ
159152011-01-29 Jie Zhang <jie@codesourcery.com>
15916
15917 * config/arm/arm.c (arm_legitimize_reload_address): New.
15918 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
15919 arm_legitimize_reload_address.
38be4072 15920 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 15921
9b798ac5
ILT
159222011-01-28 Ian Lance Taylor <iant@google.com>
15923
15924 * godump.c (go_define): Ignore macros whose definitions include
15925 two adjacent operands.
15926
591e29d9
JJ
159272011-01-28 Jakub Jelinek <jakub@redhat.com>
15928
15929 PR target/42894
15930 * varasm.c (force_const_mem): Store copy of x in desc->constant
15931 instead of x itself.
15932 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
15933 itself into REG_EQUAL note.
15934
62dcc44a
JM
159352011-01-28 Joseph Myers <joseph@codesourcery.com>
15936
15937 * config/freebsd.opt (posix, rdynamic): New Driver options.
15938
c9f58b9a
RO
159392011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15940
15941 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
15942 -Bstatic/-Bdynamic.
15943 * configure: Regenerate.
15944
5f02b9db
JM
159452011-01-27 Joseph Myers <joseph@codesourcery.com>
15946
15947 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
15948 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
15949
5df97412
AS
159502011-01-27 Anatoly Sokolov <aesok@post.ru>
15951
15952 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
15953 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
15954 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
15955 (s390_preferred_reload_class): Make static. Change return and
15956 'rclass' argument type to reg_class_t.
15957
779d4b91
JH
159582011-01-27 Jan Hubicka <jh@suse.cz>
15959
15960 PR middle-end/46949
15961 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
15962 (process_function_and_variable_attributes): Check defined weakrefs.
15963
e80b21ed
MJ
159642011-01-27 Martin Jambor <mjambor@suse.cz>
15965
15966 PR tree-optimization/47228
15967 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
15968 build_ref_for_offset.
15969
6dcc4f31
UW
159702011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15971
15972 * config/spu/spu-elf.h (ASM_SPEC): Remove.
15973
509d65dd 159742011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
15975
15976 PR rtl-optimization/46856
15977 * postreload.c (reload_combine_recognize_const_pattern): Do not
15978 separate cc0 setter and user on cc0 targets.
15979
04af8788
NP
159802011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
15981
15982 PR c/43082
15983 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
15984 passed a VOID_TYPE expression, immediately emit an error and
15985 return error_mark_node.
15986
f7a60085
JL
159872011-01-26 Jeff Law <law@redhat.com>
15988
15989 PR rtl-optimization/47464
15990 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
15991 rather than may_trap_p as needed.
15992
5c2917ec
DD
159932011-01-26 DJ Delorie <dj@redhat.com>
15994
15995 PR rtl-optimization/46878
15996 * combine.c (insn_a_feeds_b): Check for the implicit cc0
15997 setter/user dependency as well.
15998
bef16e87
EB
159992011-01-26 Eric Botcazou <ebotcazou@adacore.com>
16000
16001 PR rtl-optimization/44469
16002 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
16003 after removing trivially dead basic blocks.
16004
c75d884b
JM
160052011-01-26 Joseph Myers <joseph@codesourcery.com>
16006
16007 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
16008 * config/frv/frv.h (LINK_SPEC): Likewise.
16009 * config/i386/netware.h (LINK_SPEC): Likewise.
16010 * config/m68k/linux.h (ASM_SPEC): Likewise.
16011 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
16012 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
16013 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16014 * config/sparc/linux.h (ASM_SPEC): Likewise.
16015 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16016 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16017
d3153553
JM
160182011-01-26 Joseph Myers <joseph@codesourcery.com>
16019
16020 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
16021 * config/frv/frv.h (ASM_SPEC): Likewise.
16022 * config/m68k/linux.h (ASM_SPEC): Likewise.
16023 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
16024 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
16025 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16026 * config/sparc/linux.h (ASM_SPEC): Likewise.
16027 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16028 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16029
b89b1e9d
JM
160302011-01-26 Joseph Myers <joseph@codesourcery.com>
16031
16032 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
16033 * config/frv/frv.h (LINK_SPEC): Likewise.
16034 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
16035
12eb1a9c
JM
160362011-01-26 Joseph Myers <joseph@codesourcery.com>
16037
16038 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
16039 * config/frv/frv.h (ASM_SPEC): Likewise.
16040 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
16041 * config/m68k/linux.h (ASM_SPEC): Likewise.
16042 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
16043 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
16044 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16045 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
16046 * config/sparc/linux.h (ASM_SPEC): Likewise.
16047 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16048 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16049 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
16050
e435f098
SE
160512011-01-26 Steve Ellcey <sje@cup.hp.com>
16052
16053 PR target/46997
16054 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
16055 (*mux2): Ditto.
16056 (vec_extract_evenodd_help): Ditto.
16057 (vec_extract_evenv4hi): Ditto.
16058 (vec_extract_oddv4hi): Ditto.
16059 (vec_interleave_lowv2si): Ditto.
16060 (vec_interleave_highv2si): Ditto.
16061 (vec_extract_evenv2si): Ditto.
16062 (vec_extract_oddv2si: Ditto.
16063 (vec_pack_trunc_v2si): Ditto.
16064
34f0eee0
JH
160652011-01-22 Jan Hubicka <jh@suse.cz>
16066
16067 PR target/47237
16068 * cgraph.h (cgraph_local_info): New field can_change_signature.
16069 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
16070 signature can change.
16071 (ipcp_estimate_growth): Call sequence simplify only if calle signature
16072 can change.
16073 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
16074 (cgraph_function_versioning): We can not change signature of functions
16075 that don't allow that.
16076 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
16077 (lto_input_node): Likewise.
38be4072
UB
16078 * ipa-inline.c (compute_inline_parameters): Compute
16079 local.can_change_signature.
34f0eee0 16080 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
16081 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
16082 functions that can not change signature.
34f0eee0 16083 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
16084 init_cumulative_args): Do not use local calling conventions
16085 for functions that can not change signature.
34f0eee0 16086
980ca891
JH
160872011-01-22 Jan Hubicka <jh@suse.cz>
16088
16089 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
16090
768e3c60
RG
160912011-01-26 Richard Guenther <rguenther@suse.de>
16092
16093 PR tree-optimization/47190
61052244
AM
16094 * cgraphunit.c (process_common_attributes): New function.
16095 (process_function_and_variable_attributes): Use it.
768e3c60 16096
21d6a1c7
RG
160972011-01-26 Richard Guenther <rguenther@suse.de>
16098
16099 PR lto/47423
16100 * cgraphbuild.c (record_eh_tables): Record reference to personality
16101 function.
16102
48bb58b1
AO
161032011-01-26 Alexandre Oliva <aoliva@redhat.com>
16104
16105 PR debug/45454
16106 * sel-sched.c (moveup_expr): Don't let debug insns prevent
16107 non-debug insns from moving up.
16108
58c741a6
DK
161092011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
16110
16111 PR target/40125
16112 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
16113 t-dlldir{,-x} fragment for build and add it to tmake_file.
16114 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
16115 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
16116 * config/i386/t-dlldir: New file.
16117 (SHLIB_DLLDIR): Define.
16118 * config/i386/t-dlldir-x: New file.
16119 (SHLIB_DLLDIR): Define.
16120 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
16121 (SHLIB_INSTALL): Use it.
16122
bff99262
CLT
161232011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
16124
16125 PR target/47246
16126 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
16127 lower bound of the allowed Thumb-2 coprocessor load/store
16128 index range to -256. Add explaining comment.
16129
82c03907
ILT
161302011-01-25 Ian Lance Taylor <iant@google.com>
16131
16132 * godump.c (go_define): Improve lexing of macro expansion to only
16133 accept expressions which match Go spec.
16134
47ea1edf
DK
161352011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
16136
d4dba752 16137 PR c++/43601
47ea1edf
DK
16138 * tree.c (handle_dll_attribute): Handle it.
16139 * doc/extend.texi (@item dllexport): Mention it.
16140 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
16141
744f0946
ILT
161422011-01-25 Ian Lance Taylor <iant@google.com>
16143
16144 PR tree-optimization/26854
16145 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
16146 (decl_jump_unsafe): Move higher in file, with no other change.
16147 (bind): Set has_jump_unsafe_decl if appropriate.
16148 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
16149 (check_earlier_gotos): Likewise.
16150 (c_check_switch_jump_warnings): Likewise.
16151
5734f2b3
JW
161522011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
16153
16154 * doc/invoke.texi (Warning Options): Add missing hyphen.
16155 (-fprofile-dir): Minor grammatical fixes.
16156 (-fbranch-probabilities): Likewise.
16157
9bdbdcef
AO
161582011-01-25 Alexandre Oliva <aoliva@redhat.com>
16159
16160 PR debug/45136
16161 PR debug/45130
16162 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
16163 debug insns.
16164 (no_real_insns_p, schedule_block, set_priorities): Drop special
16165 treatment of boundary debug insns.
38be4072 16166 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
16167 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
16168 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
16169 (BOUNDARY_DEBUG_INSN_P): Likewise.
16170 (SCHEDULE_DEBUG_INSN_P): Likewise.
16171 * sched-rgn.c (init_ready_list): Drop special treatment of
16172 boundary debug insns.
16173 * final.c (rest_of_clean-state): Clear notes' BB.
16174
b305e3da
SP
161752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16176
16177 * Makefile.in (LAMBDA_H): Removed.
16178 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
16179 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
16180 lambda-trans.o, and tree-loop-linear.o.
16181 (lto-symtab.o): Remove dependence on LAMBDA_H.
16182 (tree-loop-linear.o): Remove rule.
16183 (lambda-mat.o): Same.
16184 (lambda-trans.o): Same.
16185 (lambda-code.o): Same.
16186 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
16187 (tree-vect-slp.o): Same.
16188 * hwint.h (gcd): Moved here.
16189 (least_common_multiple): Same.
16190 * lambda-code.c: Removed.
16191 * lambda-mat.c: Removed.
16192 * lambda-trans.c: Removed.
16193 * lambda.h: Removed.
16194 * tree-loop-linear.c: Removed.
16195 * lto-symtab.c: Do not include lambda.h.
16196 * omega.c (gcd): Removed.
16197 * passes.c (init_optimization_passes): Remove pass_linear_transform.
16198 * tree-data-ref.c (print_lambda_vector): Moved here.
16199 (lambda_vector_copy): Same.
16200 (lambda_matrix_copy): Same.
16201 (lambda_matrix_id): Same.
16202 (lambda_vector_first_nz): Same.
16203 (lambda_matrix_row_add): Same.
16204 (lambda_matrix_row_exchange): Same.
16205 (lambda_vector_mult_const): Same.
16206 (lambda_vector_negate): Same.
16207 (lambda_matrix_row_negate): Same.
16208 (lambda_vector_equal): Same.
16209 (lambda_matrix_right_hermite): Same.
16210 * tree-data-ref.h: Do not include lambda.h.
16211 (lambda_vector): Moved here.
16212 (lambda_matrix): Same.
16213 (dependence_level): Same.
16214 (lambda_transform_legal_p): Removed declaration.
16215 (lambda_collect_parameters): Same.
16216 (lambda_compute_access_matrices): Same.
16217 (lambda_vector_gcd): Same.
16218 (lambda_vector_new): Same.
16219 (lambda_vector_clear): Same.
16220 (lambda_vector_lexico_pos): Same.
16221 (lambda_vector_zerop): Same.
16222 (lambda_matrix_new): Same.
16223 * tree-flow.h (least_common_multiple): Removed declaration.
16224 * tree-parloops.c (lambda_trans_matrix): Moved here.
16225 (LTM_MATRIX): Same.
16226 (LTM_ROWSIZE): Same.
16227 (LTM_COLSIZE): Same.
16228 (LTM_DENOMINATOR): Same.
16229 (lambda_trans_matrix_new): Same.
16230 (lambda_matrix_vector_mult): Same.
16231 (lambda_transform_legal_p): Same.
16232 * tree-pass.h (pass_linear_transform): Removed declaration.
16233 * tree-ssa-loop.c (tree_linear_transform): Removed.
16234 (gate_tree_linear_transform): Removed.
16235 (pass_linear_transform): Removed.
16236 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
16237 flag_loop_interchange.
16238
6bdfdb96
JJ
162392011-01-25 Jakub Jelinek <jakub@redhat.com>
16240
16241 PR tree-optimization/47265
16242 PR tree-optimization/47443
16243 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
16244 if name still has some uses.
16245
e4cba915
MJ
162462011-01-25 Martin Jambor <mjambor@suse.cz>
16247
16248 PR tree-optimization/47382
16249 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
16250 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
16251
509d65dd 162522011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
16253
16254 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
16255 sjlj_except_unwind_info.
16256
194313e2
RG
162572011-01-25 Richard Guenther <rguenther@suse.de>
16258
16259 PR tree-optimization/47426
16260 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
16261 visible functions results escape.
16262
147a0bcf
JJ
162632011-01-25 Jakub Jelinek <jakub@redhat.com>
16264
16265 PR target/45701
16266 * config/arm/arm.c (any_sibcall_uses_r3): New function.
16267 (arm_get_frame_offsets): Use it.
16268
db963b52
SP
162692011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16270 Jakub Jelinek <jakub@redhat.com>
16271
16272 PR tree-optimization/47271
16273 * tree-if-conv.c (bb_postdominates_preds): New.
16274 (if_convertible_bb_p): Call bb_postdominates_preds.
16275 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
16276 (predicate_scalar_phi): Call bb_postdominates_preds.
16277
bcddd3b9
NC
162782011-01-25 Nick Clifton <nickc@redhat.com>
16279
16280 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
16281 * config/rx/rx.c (rx_function_value): Likewise.
16282 (rx_promote_function_mode): Likewise.
16283 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
16284 in order to make it legitimate.
38be4072
UB
16285 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
16286 make sure that the first operand is the same as the result register.
bcddd3b9
NC
16287 (addsi3_unspec): Delete.
16288 (subdi3): Do not accept immediate operands.
16289 (subdi3_internal): Likewise.
16290
7e6cb022
JL
162912011-01-25 Jeff Law <law@redhat.com>
16292
16293 PR rtl-optimization/37273
16294 * ira-costs.c (scan_one_insn): Detect constants living in memory and
16295 handle them like argument loads from stack slots. Do not double
16296 count memory for memory constants and argument loads from stack slots.
16297
9ffa621e
JJ
162982011-01-25 Jakub Jelinek <jakub@redhat.com>
16299
16300 PR tree-optimization/47427
16301 PR tree-optimization/47428
16302 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
16303 coalesce if the new root var would be TREE_READONLY.
16304
5bd6e652
RG
163052011-01-25 Richard Guenther <rguenther@suse.de>
16306
16307 PR middle-end/47414
16308 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
16309 correct type for TBAA.
16310
7c48ea69
SP
163112011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16312
16313 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
16314 (close_phi_written_to_memory): Call for_each_index with
16315 dr_indices_valid_in_loop.
16316
38013f25
SP
163172011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16318
16319 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
16320 when it is initialized.
16321
5c640e29
SP
163222011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16323
16324 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
16325 call to graphite_find_data_references_in_stmt.
16326 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
16327 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
16328 call to graphite_find_data_references_in_stmt.
16329 (analyze_drs_in_stmts): Same.
16330 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
16331 in which the scalar analysis of indices is performed.
16332 (create_data_ref): Same. Update call to dr_analyze_indices.
16333 (find_data_references_in_stmt): Update call to create_data_ref.
16334 (graphite_find_data_references_in_stmt): Same.
16335 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
16336 declaration.
16337 (create_data_ref): Same.
16338 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
16339 call to create_data_ref.
16340
ac53c069
SP
163412011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16342
16343 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 16344 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 16345
3d17df15
SP
163462011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16347
16348 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
16349 VAR_DECL, PARM_DECL, and RESULT_DECL.
16350
c513da01
SP
163512011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16352
16353 * graphite-dependences.c (reduction_dr_1): Allow several reductions
16354 in a reduction PBB.
16355 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
16356 that have already been marked as PBB_IS_REDUCTION.
16357
3a292d59
SP
163582011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16359
16360 * graphite-scop-detection.c (same_close_phi_node): New.
16361 (remove_duplicate_close_phi): New.
16362 (make_close_phi_nodes_unique): New.
16363 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
16364
ba858447
SP
163652011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16366
16367 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
16368 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
16369 of both data references to be the same.
16370
8d865c56
SP
163712011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16372
38be4072
UB
16373 * graphite-dependences.c (build_lexicographical_constraint): Remove
16374 the gdim parameter.
16375 (build_lexicographical_constraint): Adjust call to
16376 ppl_powerset_is_empty.
8d865c56
SP
16377 (dependence_polyhedron): Same.
16378 (graphite_legal_transform_dr): Same.
16379 (graphite_carried_dependence_level_k): Same.
38be4072
UB
16380 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
16381 parameter.
8d865c56
SP
16382 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
16383
50034a36
SP
163842011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16385
16386 * graphite-sese-to-poly.c
16387 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
16388 (close_phi_written_to_memory): New.
16389 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
16390 and unshare_expr.
16391
0deada9e
SP
163922011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16393
16394 * doc/install.texi: Update the expected version number of PPL to 0.11.
16395 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
16396 #if PPL_VERSION_MINOR < 11.
16397
d7d3d6af
SP
163982011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16399
16400 * graphite-dependences.c: Include graphite-cloog-util.h.
16401 (new_poly_ddr): Inlined into dependence_polyhedron.
16402 (free_poly_ddr): Moved close by new_poly_ddr.
16403 (dependence_polyhedron_1): Renamed dependence_polyhedron.
16404 Early return NULL when ppl_powerset_is_empty returns true.
16405 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
16406 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
16407 (graphite_legal_transform_dr): Call new_poly_ddr.
16408 (graphite_carried_dependence_level_k): Same.
16409 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
16410 (dot_transformed_deps_stmt_1): Removed.
16411 (dot_deps_stmt_1): Call dot_deps_stmt_2.
16412 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
16413 (dot_deps_1): Call dot_deps_2.
16414 * Makefile.in (graphite-dependences.o): Add missing dependence on
16415 graphite-cloog-util.h.
16416
28c5db57
SP
164172011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16418
16419 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
16420 (build_lexicographical_constraint): Same.
16421 (dependence_polyhedron_1): Same.
16422 (graphite_legal_transform_dr): Same.
16423 (graphite_carried_dependence_level_k): Same.
16424 * graphite-ppl.c (ppl_powerset_is_empty): New.
16425 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
16426 * tree-data-ref.c (dump_data_reference): Print the basic block index.
16427
5168d98f
SP
164282011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16429
16430 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
16431 the "a followed by b" relation and document it.
16432
4a40293a
SP
164332011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16434
16435 * graphite-dependences.c (build_lexicographical_constraint): Stop the
16436 iteration when the bag of constraints is empty.
16437
271fb6fa
SP
164382011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16439
16440 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
16441
92d23680
SP
164422011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16443
16444 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
16445 nest and two loop depths as parameters.
16446 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
16447 lst_perfect_nestify.
16448
2f51deff
SP
164492011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16450
16451 * graphite-dependences.c (print_pddr): Call
16452 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
16453
07f3593c
SP
164542011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16455
16456 * graphite-ppl.c (debug_gmp_value): New.
16457 * graphite-ppl.h (debug_gmp_value): Declared.
16458
3fae6099
TG
164592011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
16460
16461 * doc/install.texi: Document availability of cloog-0.16.
16462
1c3ba85b
SP
164632011-01-25 Vladimir Kargov <kargov@gmail.com>
16464
16465 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
16466 invalid postdominance info.
16467
e8ba94fc
JH
164682011-01-24 Jan Hubicka <jh@suse.cz>
16469
16470 PR c/21659
16471 * doc/extend.texi (weak pragma): Drop claim that it must
16472 appear before definition.
16473 * varasm.c (merge_weak, declare_weak): Only sanity check
16474 that DECL is not output at a time it is declared weak.
16475
2b6e2d13
KZ
164762011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
16477
16478 * machmode.def: Fixed comments.
1c3ba85b 16479
9841210f
KT
164802011-01-24 Kai Tietz <kai.tietz@onevision.com>
16481
16482 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
16483
164842011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
16485
16486 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 16487 WORDS_BIG_ENDIAN.
e046112d 16488
a6c5070a
L
164892011-01-24 H.J. Lu <hongjiu.lu@intel.com>
16490
16491 PR target/46519
16492 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
16493 (block_info): Add scanned and prev.
16494 (move_or_delete_vzeroupper_2): Return if the basic block
16495 has been scanned and the upper 128bit state is unchanged
16496 from the last scan.
16497 (move_or_delete_vzeroupper_1): Return true if the exit
16498 state is changed.
16499 (move_or_delete_vzeroupper): Visit basic blocks using the
16500 work-list based algorithm based on vt_find_locations in
16501 var-tracking.c.
16502
16503 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
16504
a40d79d7
NC
165052011-01-24 Nick Clifton <nickc@redhat.com>
16506
16507 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
16508 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
16509 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
16510 then define __v850e1__.
16511 * doc/invoke.texi: Document -mv850es.
16512
440eb8de
RH
165132011-01-24 Richard Henderson <rth@redhat.com>
16514
16515 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
16516 compound unordered comparisons.
16517 * config/rx/rx.c (rx_split_fp_compare): Remove.
16518 * config/rx/rx-protos.h: Update.
16519 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
16520 (cbranchsf4): Don't call rx_split_fp_compare.
16521 (*cbranchsf4): Use rx_split_cbranch.
16522 (*cmpsf): Don't accept "i" constraint.
16523 (*conditional_branch): Only valid after reload.
16524 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
16525
3ff79f99
MM
165262011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
16527
16528 PR target/47385
16529 * config/rs6000/altivec.md (vector constant splitters): Add
16530 support for creating vector single precision constants if -mvsx is
16531 used and we would create the constant using Altivec primitives.
16532
ff3d9d08
BS
165332011-01-23 Bernd Schmidt <bernds@codesourcery.com>
16534 Richard Sandiford <rdsandiford@googlemail.com>
16535
16536 PR rtl-optimization/47166
16537 * reload1.c (emit_reload_insns): Disable the spill_reg_store
16538 mechanism for PRE_MODIFY and POST_MODIFY.
16539 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
16540 reloadreg.
16541
7fcaf152
AS
165422011-01-23 Andreas Schwab <schwab@linux-m68k.org>
16543
8788adb6 16544 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 16545
d09b58c4
JH
165462011-01-22 Jan Hubicka <jh@suse.cz>
16547
16548 PR lto/47333
16549 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
16550
e8ff8c5a
JH
165512011-01-22 Jan Hubicka <jh@suse.cz>
16552
16553 PR tree-optimization/43884
16554 PR lto/44334
8788adb6 16555 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
16556 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
16557
ccaed3ba
AS
165582011-01-22 Anatoly Sokolov <aesok@post.ru>
16559
16560 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
16561 * config/s390/s390.c (s390_register_move_cost,
16562 s390_memory_move_cost): New.
16563 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
16564
0cecee06
UW
165652011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16566
16567 PR middle-end/47401
16568 * except.c (sjlj_assign_call_site_values): Move setting the
16569 crtl->uses_eh_lsda flag to ...
16570 (sjlj_mark_call_sites): ... here.
16571 (sjlj_emit_function_enter): Support NULL dispatch label.
16572 (sjlj_build_landing_pads): In a function with no landing pads
16573 that still has must-not-throw regions, generate code to register
16574 a personality function with empty LSDA.
16575
e692f276
RH
165762011-01-21 Richard Henderson <rth@redhat.com>
16577
1b7ae0b7
RH
16578 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
16579
3843787f
RH
16580 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
16581
e692f276
RH
16582 * compare-elim.c: New file.
16583 * Makefile.in (OBJS-common): Add it.
16584 (compare-elim.o): New.
16585 * common.opt (fcompare-elim): New.
16586 * opts.c (default_options_table): Add OPT_fcompare_elim.
16587 * tree-pass.h (pass_compare_elim_after_reload): New.
16588 * passes.c (init_optimization_passes): Add it.
16589 * recog.h: Protect against re-inclusion.
16590 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
16591 * doc/invoke.texi (-fcompare-elim): Document it.
16592 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
16593 * doc/tm.texi: Rebuild.
16594
9a7c2050
NC
165952011-01-22 Nick Clifton <nickc@redhat.com>
16596
16597 * config/rx/rx.md (cstoresf4): Pass comparison operator to
16598 rx_split_fp_compare.
16599
15ba5696
NC
166002011-01-22 Nick Clifton <nickc@redhat.com>
16601
16602 * config/rx/rx.md (UNSPEC_CONST): New.
16603 (deallocate_and_return): Wrap the amount popped off the stack in
16604 an UNSPEC_CONST in order to stop it being rejected by
16605 -mmax-constant-size.
16606 (pop_and_return): Add a "(return)" rtx.
16607 (call): Drop the immediate operand.
16608 (call_internal): Likewise.
16609 (call_value): Likewise.
16610 (call_value_internal): Likewise.
16611 (sibcall_internal): Likewise.
16612 (sibcall_value_internal): Likewise.
16613 (sibcall): Likewise. Generate an explicit call using
16614 sibcall_internal.
16615 (sibcall_value): Likewise.
16616 (mov<>): FAIL if a constant operand is not legitimate.
16617 (addsi3_unpsec): New pattern.
9a7c2050 16618
38be4072 16619 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
16620 (ok_for_max_constant): New function.
16621 (gen_safe_add): New function.
16622 (rx_expand_prologue): Use gen_safe_add.
16623 (rx_expand_epilogue): Likewise.
16624 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
16625 UNSPEC CONSTs.
16626
caaf13d3
JL
166272011-01-21 Jeff Law <law@redhat.com>
16628
16629 PR tree-optimization/47053
16630 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
16631 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
16632 statements are deleted.
16633 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
16634 is nonempty, then purge dead edges and cleanup the CFG.
16635
12c30f2f
AO
166362011-01-21 Alexandre Oliva <aoliva@redhat.com>
16637
16638 PR debug/47402
16639 Temporarily revert:
16640 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
16641 PR debug/47106
16642 * tree-dfa.c (create_var_ann): Mark variable as used.
16643
7360d2ac
JJ
166442011-01-21 Jakub Jelinek <jakub@redhat.com>
16645
aaa52a96
JJ
16646 PR middle-end/45566
16647 * except.c (convert_to_eh_region_ranges): Emit queued no-region
16648 notes from other section in hot/cold partitioning even if
16649 last_action is -3. Increment call_site_base.
16650
7360d2ac
JJ
16651 PR rtl-optimization/47366
16652 * fwprop.c (forward_propagate_into): Return bool. If
16653 any changes are made, -fnon-call-exceptions is used and
16654 REG_EH_REGION note is present, call purge_dead_edges
16655 and return true if it purged anything.
16656 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
16657 any EH edges were purged.
16658
e90b336f
JL
166592011-01-21 Jeff Law <law@redhat.com>
16660
16661 PR rtl-optimization/41619
16662 * caller-save.c (setup_save_areas): Break out code to determine
16663 which hard regs are live across calls by examining the reload chains
16664 so that it is always used.
16665 Eliminate code which checked REG_N_CALLS_CROSSED.
16666
3ffe07e1
JJ
166672011-01-21 Jakub Jelinek <jakub@redhat.com>
16668
16669 PR tree-optimization/47355
16670 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
16671 NOP has non-debug uses beyond PHIs in new_bb.
16672
1c7d0b34
AO
166732011-01-21 Alexandre Oliva <aoliva@redhat.com>
16674
16675 PR debug/47106
16676 * cfgexpand.c (account_used_vars_for_block): Only account vars
16677 that are annotated as used.
16678 (estimated_stack_frame_size): Don't set TREE_USED.
16679 * tree-dfa.c (create_var_ann): Mark variable as used.
16680
f99cc488
RG
166812011-01-21 Richard Guenther <rguenther@suse.de>
16682
16683 PR middle-end/47395
16684 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
16685
3bc27de7
RG
166862011-01-21 Richard Guenther <rguenther@suse.de>
16687
16688 PR tree-optimization/47365
16689 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
16690 (vn_reference_lookup_pieces): Adjust.
16691 (vn_reference_lookup): Likewise.
16692 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
16693 (vn_reference_lookup_3): Only look through kills if in
16694 VN_WALKREWRITE mode.
16695 (vn_reference_lookup_pieces): Adjust.
16696 (vn_reference_lookup): Likewise.
16697 (visit_reference_op_load): Likewise.
16698 (visit_reference_op_store): Likewise.
16699 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
16700 (compute_avail): Likewise.
16701 (eliminate): Likewise.
16702
d8debb1d
JJ
167032011-01-21 Jakub Jelinek <jakub@redhat.com>
16704
16705 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
16706 DECL_IGNORED_P non-reg vars if they are used.
16707
3a2df831
JJ
16708 PR tree-optimization/47391
16709 * varpool.c (const_value_known_p): Return false if
16710 decl is volatile.
16711
1dd584a2
KT
167122011-01-21 Kai Tietz <kai.tietz@onevision.com>
16713
16714 PR bootstrap/47215
16715 * config/i386/i386.c (ix86_local_alignment): Handle
16716 case for va_list_type_node is nil.
16717 (ix86_canonical_va_list_type): Likewise.
16718
7f9f095e
AM
167192011-01-21 Alan Modra <amodra@gmail.com>
16720
16721 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
16722 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
16723
837b01f6
RR
167242011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16725
16726 * config/arm/arm.md (define_attr type): Rename f_load
16727 and f_store to f_fpa_load and f_fpa_store. Update.
16728 (write_conflict): Deal with rename fallout.
16729 (*push_fp_multi): Likewise.
16730 * config/arm/fpa.md (f_load): Use f_fpa_load.
16731 (f_store): Use f_fpa_store.
16732 (*movsf_fpa): Likewise.
16733 (*movdf_fpa): Likewise.
16734 (*movxf_fpa): Likewise.
16735 (*thumb2_movsf_fpa): Likewise.
16736 (*thumb2_movdf_fpa): Likewise.
16737 (*thumb2_movxf_fpa): Likewise.
16738 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
16739 f_loadd and f_stored.
16740 (*thumb2_movdi_vfp): Likewise.
16741 (*thumb2_movsf_vfp): Fix attribute to f_loads.
16742 (*thumb2_movsi_vfp): Likewise.
16743 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
16744 Use f_loads instead of f_load.
16745 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
16746
a1a79768
AS
167472011-01-20 Anatoly Sokolov <aesok@post.ru>
16748
16749 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16750 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
16751 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16752 (xtensa_mode_dependent_address_p): New function.
16753 (constantpool_address_p): Make static. Change return type to bool.
16754 Change argument type to const_rtx. Use CONST_INT_P predicate.
16755
427f6cec
AO
167562011-01-20 Alexandre Oliva <aoliva@redhat.com>
16757
16758 PR debug/46583
16759 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
16760
583ac69c
JJ
167612011-01-20 Jakub Jelinek <jakub@redhat.com>
16762
16763 PR debug/47283
16764 * cfgexpand.c (expand_debug_expr): Instead of generating
16765 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
16766 etc. handling.
16767
93e452ed
RG
167682011-01-20 Richard Guenther <rguenther@suse.de>
16769
16770 PR middle-end/47370
16771 * tree-inline.c (remap_gimple_op_r): Recurse manually for
16772 the pointer operand of MEM_REFs.
16773
28fc44f3
JJ
167742011-01-20 Jakub Jelinek <jakub@redhat.com>
16775
16776 PR tree-optimization/46130
16777 * ipa-split.c (consider_split): If return_bb contains non-virtual
16778 PHIs other than for retval or if split_function would not adjust it,
16779 refuse to split.
16780
ddd268f2
RG
167812011-01-20 Richard Guenther <rguenther@suse.de>
16782
16783 PR tree-optimization/47167
16784 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
16785 Revert previous change, only avoid enumeral type changes.
16786
882020aa
MS
167872011-01-19 Mike Stump <mikestump@comcast.net>
16788
16789 * doc/tm.texi.in (BRANCH_COST): Englishify.
16790 * doc/tm.texi (BRANCH_COST): Likewise.
16791
7edb6247
DS
167922011-01-19 Dodji Seketeli <dodji@redhat.com>
16793
16794 PR c++/47291
16795 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
16796 (gen_scheduled_generic_parms_dies): New functions.
16797 (gen_struct_or_union_type_die): Schedule template parameters DIEs
16798 generation for the end of CU compilation.
16799 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 16800
23d5ed5d
AO
168012011-01-19 Alexandre Oliva <aoliva@redhat.com>
16802
16803 PR debug/46240
16804 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
16805 debug bind stmt on merge edges.
16806
37d6a488
AO
168072011-01-19 Alexandre Oliva <aoliva@redhat.com>
16808
16809 PR debug/47079
16810 PR debug/46724
16811 * function.c (instantiate_expr): Instantiate incoming rtl of
16812 implicit arguments, and recurse on VALUE_EXPRs.
16813 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
16814 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
16815
689f2c82
AO
168162011-01-19 Alexandre Oliva <aoliva@redhat.com>
16817
16818 * c-parser.c (c_parser_for_statement): Initialize
16819 collection_expression.
16820
03029de4
JM
168212011-01-19 Joseph Myers <joseph@codesourcery.com>
16822
16823 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
16824
3e03217e
JM
168252011-01-19 Joseph Myers <joseph@codesourcery.com>
16826
16827 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
16828 (LINK_SHLIB_SPEC): Don't use %(link_path).
16829 (SUBTARGET_EXTRA_SPECS): Remove link_path.
16830
5bbe9b3f
JM
168312011-01-19 Joseph Myers <joseph@codesourcery.com>
16832
16833 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
16834 (NO_SHARED_LIB_SUPPORT): Remove.
16835 (LINK_SHLIB_SPEC): Remove one conditional definition.
16836
368e0b39
JM
168372011-01-19 Joseph Myers <joseph@codesourcery.com>
16838
16839 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
16840 %{call_shared}.
16841 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
16842 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
16843 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
16844 %{call_shared} and conditionals on these options not being passed.
16845 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
16846 %{call_shared}.
16847
ed7656f6
JJ
168482011-01-19 Jakub Jelinek <jakub@redhat.com>
16849
68457901
JJ
16850 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
16851 simplify.
16852
ed7656f6
JJ
16853 * ipa-split.c: Spelling fixes.
16854
e0d1958f
RH
168552011-01-19 Richard Henderson <rth@redhat.com>
16856
16857 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
16858 (*mulsi3): Likewise.
16859
27098b6b
RH
16860 * longlong.h [__mn10300__] (count_leading_zeros): New.
16861 [__mn10300__] (umul_ppmm, smul_ppmm): New.
16862 [__mn10300__] (add_ssaaaa, subddmmss): New.
16863 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
16864 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
16865
d6be7c36
UW
168662011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16867
16868 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
16869
b1efde2a
RH
168702011-01-19 Richard Henderson <rth@redhat.com>
16871
44217823
RH
16872 * config/mn10300/mn10300.md (addsi3_flags): New.
16873 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
16874 (subsi3_flags, subc_internal, subdi3): New.
16875 (subdi3_internal, *subdi3_degenerate): New.
16876 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
16877
37a185d7
RH
16878 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
16879 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
16880 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
16881 * config/mn10300/mn10300-protos.h: Update.
16882 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
16883 (return_ret): Likewise. Rename from return_internal_regs.
16884 (return_internal): Remove.
16885
040c5757
RH
16886 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
16887 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
16888 (mn10300_legitimate_constant_p): Likewise.
16889 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
16890 (mn10300_frame_size): New.
16891 (mn10300_expand_prologue): Use it.
16892 (mn10300_expand_epilogue): Likewise.
16893 (mn10300_initial_offset): Likewise.
16894 * config/mn10300/mn10300-protos.h: Update.
16895 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
16896 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
16897 (prologue, epilogue, return_internal): Tidy output code.
16898 (mn10300_store_multiple_operation, return): Likewise.
16899 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
16900 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
16901 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
16902 (load_pic, am33_load_pic): New.
16903 (mn10300_load_pic0, mn10300_load_pic1): New.
16904
bad41521
RH
16905 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
16906 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
16907 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
16908 (cc_flags_for_mode, cc_flags_for_code): New.
16909 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
16910 overflow flag is not valid. Validate that the flags we need
16911 for the comparison are valid.
16912 (mn10300_output_cmp): Remove.
16913 (mn10300_output_add): New.
16914 (mn10300_select_cc_mode): Use cc_flags_for_code.
16915 (mn10300_split_cbranch): New.
16916 (mn10300_match_ccmode): New.
16917 (mn10300_split_and_operand_count): New.
16918 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
16919 to the function.
16920 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
16921 (addsi3): ... here. Use mn10300_output_add.
16922 (*addsi3_flags): New.
16923 (*am33_subsi3, *mn10300_subsi3): Merge...
16924 (subsi3): ... here. Use attribute isa.
16925 (*subsi3_flags): New.
16926 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
16927 when possible.
16928 (*am33_andsi3, *mn10300_andsi3): Merge...
16929 (andsi3): ... here.
16930 (*andsi3_flags): New.
16931 (andsi3 splitters): New.
16932 (*am33_iorsi3, *mn10300_iorsi3): Merge...
16933 (iorsi3): ... here.
16934 (*iorsi3_flags): New.
16935 (*am33_xorsi3, *mn10300_xorsi3): Merge...
16936 (xorsi3): ... here.
16937 (*xorsi3_flags): New.
16938 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
16939 (one_cmplsi2): ... here.
16940 (*one_cmplsi2_flags): New.
16941 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
16942 instead of "dax" in constraints. Use mn10300_split_cbranch.
16943 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
16944 use matching constraints to eliminate a self-comparison.
16945 (*integer_conditional_branch): Rename from integer_conditional_branch.
16946 Use int_mode_flags to match CC_REG.
16947 (*cbranchsi4_btst, *btstsi): New.
16948 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
16949 mn10300_split_cbranch.
16950 (*am33_cmpsf): Rename from am33_cmpsf.
16951 (*float_conditional_branch): Rename from float_conditional_branch.
16952 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
16953 (zero_extendqisi2): ... here.
16954 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
16955 (zero_extendhisi2): ... here.
16956 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
16957 (extendqisi2): ... here.
16958 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
16959 (extendhisi2): ... here.
16960 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
16961 (ashlsi3): ... here.
16962 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
16963 (lshrsi3): ... here.
16964 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
16965 (ashrsi3): ... here.
16966 (consecutive add peephole): Remove.
16967 * config/mn10300/predicates.md (label_ref_operand): New.
16968 (int_mode_flags): New.
16969 (CCZN_comparison_operator): New.
16970
9efb4993
RH
16971 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
16972 (throughput_42_latency_43): New reservation.
16973 (mulsidi3, umulsidi3): New expanders.
16974 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
16975 the MDR register to allocation; separately allocate the low and
16976 high parts of the DImode result.
16977 (umulsidi3_internal): Similarly.
16978 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
16979 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
16980 (udivsi3, umodsi3): Remove.
16981 (udivmodsi4, divmodsi4): New expanders.
16982 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
16983 (*divmodsi4): Simiarly.
16984 (ext_internal): New.
16985
c25a21f5
RH
16986 * config/mn10300/constraints.md ("z"): New constraint.
16987 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
16988 (FIXED_REGISTERS): Don't fix MDR.
16989 (CALL_USED_REGSITERS): Reformat nicely.
16990 (REG_ALLOC_ORDER): Add MDR.
16991 (enum regclass): Add MDR_REGS.
16992 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
16993 (IRA_COVER_CLASSES): Add MDR_REGS.
16994 (REGNO_REG_CLASS): Handle MDR_REG.
16995 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
16996 (mn10300_register_move_cost): Likewise.
16997 * config/mn10300/mn10300.md (MDR_REG): New.
16998 (*movsi_internal): Handle moves to/from MDR_REGS.
16999
36846b26
RH
17000 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
17001 POST_MODIFY.
17002 (mn10300_secondary_reload): Tidy combination reload classes.
17003 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
17004 addresses for AM33. Allow symbolic offsets for reg+imm.
17005 (mn10300_regno_in_class_p): New.
17006 (mn10300_legitimize_reload_address): New.
17007 * config/mn10300/mn10300.h (enum reg_class): Remove
17008 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
17009 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
17010 SP_OR_GENERAL_REGS.
17011 (REG_CLASS_NAMES): Update to match.
17012 (REG_CLASS_CONTENTS): Likewise.
17013 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
17014 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
17015 (REGNO_IN_RANGE_P): Remove.
17016 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
17017 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
17018 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
17019 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
17020 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
17021 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
17022 (REGNO_GENERAL_P): New.
17023 (HAVE_POST_MODIFY_DISP): New.
17024 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
17025 (LEGITIMIZE_RELOAD_ADDRESS): New.
17026 * config/mn10300/mn10300-protos.h: Update.
17027
8b119bb6
RH
17028 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
17029 DATA_REGS for AM33 stack-pointer destination.
17030 (mn10300_preferred_output_reload_class): Likewise.
17031 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
17032 into a form appropriate for ...
17033 (TARGET_SECONDARY_RELOAD): New.
17034 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
17035 * config/mn10300/mn10300-protos.h: Update.
17036 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
17037 reload_insi; use the "A" constraint for the scratch; handle AM33
17038 moves of sp to non-address registers.
17039
b1efde2a
RH
17040 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
17041 (*movqi_internal): ... here.
17042 (*am33_movhi, *mn10300_movhi): Merge into...
17043 (*movhi_internal): ... here.
17044 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
17045 as the source/destination of moves from/to SP.
17046 (movsf): Only allow for AM33-2.
1c3ba85b 17047 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
17048 any integer constant constraint. Only allow for AM33-2. Tidy
17049 all of the alternative outputs.
17050 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
17051 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
17052 for MN103.
17053 (udivsi3, umodsi3): New patterns for MN103 only.
17054
b899fd78
JR
170552011-01-19 Joern Rennecke <amylaar@spamcop.net>
17056
17057 * doc/tm.texi.in: Spell out that a lack of register class unions
17058 can lead to ICEs.
17059 * doc/tm.texi: Regenerate.
17060
afaaa67d
JJ
170612011-01-19 Jakub Jelinek <jakub@redhat.com>
17062
2e0642cd
JJ
17063 PR rtl-optimization/47337
17064 * dce.c (check_argument_store): New function.
17065 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
17066
afaaa67d
JJ
17067 PR tree-optimization/47290
17068 * tree-eh.c (infinite_empty_loop_p): New function.
17069 (cleanup_empty_eh): Use it.
17070
d2cd871f
SE
170712011-01-18 Steve Ellcey <sje@cup.hp.com>
17072
17073 PR target/46997
17074 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
17075 (a64_expand_widen_sum): Ditto.
17076 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
17077 (vec_extract_evenodd_help): Ditto.
17078 (vec_extract_evenv4hi): Ditto.
17079 (vec_extract_oddv4hi): Ditto.
17080 (vec_extract_evenv2si): Ditto.
17081 (vec_extract_oddv2si): Ditto.
17082 (vec_extract_evenv2sf): Ditto.
17083 (vec_extract_oddv2sf): Ditto.
17084 (vec_pack_trunc_v4hi: Ditto.
17085 (vec_pack_trunc_v2si): Ditto.
17086 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
17087 (vec_interleave_highv8qi): Ditto.
17088 (mix1_r): Ditto.
17089 (vec_extract_oddv8qi): Ditto.
17090 (vec_interleave_lowv4hi): Ditto.
17091 (vec_interleave_highv4hi): Ditto.
17092 (vec_interleave_lowv2si): Ditto.
17093 (vec_interleave_highv2si): Ditto.
17094
41a1208a
JDA
170952011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17096
17097 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
17098 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
17099 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
17100 (pa_c_mode_for_suffix): New.
17101 (TARGET_EXPAND_BUILTIN): Define.
17102 (TARGET_C_MODE_FOR_SUFFIX): Define.
17103 (pa_builtins): Define.
17104 (pa_init_builtins): Register __float128 type and init new support
17105 builtins.
17106 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
17107 * config/pa/quadlib.c (_U_Qfcopysign): New.
17108
1ecad98e
EB
171092011-01-18 Eric Botcazou <ebotcazou@adacore.com>
17110
17111 PR middle-end/46894
17112 * explow.c (allocate_dynamic_stack_space): Do not assume more than
17113 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
17114 are defined.
17115
d4f2460a
UW
171162011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17117
17118 PR tree-optimization/47179
17119 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
17120 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
17121
4994da65
RG
171222011-01-18 Richard Guenther <rguenther@suse.de>
17123
17124 PR rtl-optimization/47216
17125 * emit-rtl.c: Include tree-flow.h.
17126 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
17127 of replicating it with different semantics.
17128 * Makefile.in (emit-rtl.o): Adjust.
17129
1eb458d1
RR
171302011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17131
38be4072 17132 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 17133 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 17134
e7ef91dc
JJ
171352011-01-18 Jakub Jelinek <jakub@redhat.com>
17136
17137 PR rtl-optimization/47299
17138 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 17139 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
17140 * expmed.c (expand_widening_mult): Don't try to optimize constant
17141 multiplication if op0 has VOIDmode. Convert op1 constant to mode
17142 before using it.
17143
535b7874
RW
171442011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17145
17146 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
17147 spacing after 'e.g.', typos, comma, hyphenation.
17148
27bf36f3
RH
171492011-01-17 Richard Henderson <rth@redhat.com>
17150
8a5b5449
RH
17151 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
17152 (rx_restricted_mem_operand): New.
17153 (rx_shift_operand): Use register_operand.
17154 (rx_source_operand, rx_compare_operand): Likewise.
17155 * config/rx/rx.md (addsi3_flags): New expander.
17156 (adddi3): Rewrite as expander.
17157 (adc_internal, *adc_flags, adddi3_internal): New patterns.
17158 (subsi3_flags): New expander.
17159 (subdi3): Rewrite as expander.
17160 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
17161
784f69be
RH
17162 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
17163 (rx_init_builtins): Remove sat builtin.
17164 (rx_expand_builtin): Likewise.
17165 * config/rx/rx.md (ssaddsi3): New.
17166 (*sat): Rename from sat. Represent the CC_REG input.
17167
f033541c
RH
17168 * config/rx/predicates.md (rshift_operator): New.
17169 * config/rx/rx.c (rx_expand_insv): Remove.
17170 * config/rx/rx-protos.h: Update.
17171 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
17172 operand to the canonical position.
17173 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
17174 (*bitclr, *bitclr_in_memory): Similarly.
17175 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
17176 (insv): Retain the zero_extract in the expansion.
17177
34fee389
RH
17178 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
17179 (bswaphi2, bitinvert, revw): Likewise.
17180
265c835f
RH
17181 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
17182 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
17183 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
17184 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
17185 (bitset, bitset_in_memory): Likewise.
17186 (bitinvert, bitinvert_in_memory): Likewise.
17187 (bitclr, bitclr_in_memory): Likewise.
17188 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
17189 (rx_strend, rx_cmpstrn): Likewise.
17190 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
17191 (bitop peep2 patterns): Remove.
17192
b4d83be3
RH
17193 * config/rx/rx.c (rx_match_ccmode): New.
17194 * config/rx/rx-protos.h: Update.
17195 * config/rx/rx.md (abssi2): Clobber, don't set flags.
17196 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
17197 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
17198 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
17199 (fix_truncsfsi2, floatsisf2): Likewise.
17200 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
17201 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
17202 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
17203 (*subsi3_flags, *xorsi3_flags): New.
17204
d0acb939
RH
17205 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
17206
c06fc3d9
RH
17207 * config/rx/rx.c (rx_print_operand): Remove workaround for
17208 unsplit comparison operations.
17209
2882702b
RH
17210 * config/rx/rx.md (movsicc): Split after reload.
17211 (*movsicc): Merge *movsieq and *movsine via match_operator.
17212 (*stcc): New pattern.
17213
6f7310f2
RH
17214 * config/rx/rx.c (rx_float_compare_mode): Remove.
17215 * config/rx/rx.h (rx_float_compare_mode): Remove.
17216 * config/rx/rx.md (cstoresi4): Split after reload.
17217 (*sccc): New pattern.
17218
e963cb1a
RH
17219 * config/rx/predicates.md (label_ref_operand): New.
17220 (rx_z_comparison_operator): New.
17221 (rx_zs_comparison_operator): New.
17222 (rx_fp_comparison_operator): New.
17223 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
17224 Validate that the flags are set properly for the comparison.
17225 (rx_gen_cond_branch_template): Remove.
17226 (rx_cc_modes_compatible): Remove.
17227 (mode_from_flags): New.
17228 (flags_from_code): Rename from flags_needed_for_conditional.
17229 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
17230 (rx_select_cc_mode): Likewise.
17231 (rx_split_fp_compare): New.
17232 (rx_split_cbranch): New.
17233 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
17234 (*cbranchsi4): Use match_operator and rx_split_cbranch.
17235 (*cbranchsf4): Similarly.
17236 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
17237 match_operator and rx_split_cbranch.
17238 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
17239 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
17240 (*cmpsi): Rename from cmpsi.
17241 (*tstsi): Rename from tstsi.
17242 (*cmpsf): Rename from cmpsf; use CC_Fmode.
17243 (*conditional_branch): Rename from conditional_branch.
17244 (*reveresed_conditional_branch): Remove.
17245 (b<code>): Remove expander.
17246 * config/rx/rx-protos.h: Update.
17247
af530bb4
RH
17248 * config/rx/rx.c (rx_compare_redundant): Remove.
17249 * config/rx/rx.md (cmpsi): Don't use it.
17250 * config/rx/rx-protos.h: Update.
17251
27bf36f3
RH
17252 * config/rx/rx-modes.def (CC_F): New mode.
17253 * config/rx/rx.c (rx_select_cc_mode): New.
17254 * config/rx/rx.h (SELECT_CC_MODE): Use it.
17255 * config/rx/rx-protos.h: Update.
17256
d7fde127
RH
172572011-01-17 Richard Henderson <rth@redhat.com>
17258
17259 * except.c (dump_eh_tree): Fix stray ; after for statement.
17260
6ff38230
RG
172612011-01-17 Richard Guenther <rguenther@suse.de>
17262
17263 PR tree-optimization/47313
17264 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
17265 handling before copying the body. Properly deal with
17266 by-reference result in SSA form.
17267
114ce554
ILT
172682011-01-17 Ian Lance Taylor <iant@google.com>
17269
bf5cd92b 17270 PR target/47219
114ce554
ILT
17271 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
17272 (struct_value_alias_set): Don't define.
17273 (sparc_option_override): Don't set sparc_sr_alias_set and
17274 struct_value_alias_set.
17275 (save_or_restore_regs): Use gen_frame_mem rather than calling
17276 set_mem_alias_set.
17277 (sparc_struct_value_rtx): Likewise.
17278
98c6d93c
L
172792011-01-17 H.J. Lu <hongjiu.lu@intel.com>
17280
17281 PR target/47318
7a81008b 17282 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
17283 (_mm_maskstore_pd): Likewise.
17284 (_mm_maskload_ps): Likewise.
17285 (_mm_maskstore_ps): Likewise.
17286 (_mm256_maskload_pd): Change mask to __m256i.
17287 (_mm256_maskstore_pd): Likewise.
17288 (_mm256_maskload_ps): Likewise.
17289 (_mm256_maskstore_ps): Likewise.
17290
17291 * config/i386/i386-builtin-types.def: Updated.
17292 (ix86_expand_special_args_builtin): Likewise.
17293
17294 * config/i386/i386.c (bdesc_special_args): Update
17295 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
17296 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
17297 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
17298 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
17299
17300 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
17301 Use <avxpermvecmode> on mask register.
17302 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
17303
b9361af2 173042011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
17305 Michael Haubenwallner <michael.haubenwallner@salomon.at>
17306 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
17307
17308 PR target/46655
17309 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
17310 if <= USHRT_MAX in 32-bit mode.
17311
b7ae9eb5
RW
173122011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17313
17314 * doc/install.texi (Configuration, Specific): Wrap long
17315 lines in examples. Allow line wrapping in long options
17316 and URLs where beneficial for PDF output.
17317
4377fad9
RS
173182011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
17319
17320 * config/mips/mips.c (mips_classify_symbol): Don't return
17321 SYMBOL_PC_RELATIVE for nonlocal labels.
17322
55959ffa 173232011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 17324
55959ffa
EB
17325 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
17326
173272011-01-15 Jan Hubicka <jh@suse.cz>
17328
17329 PR tree-optimization/47276
be46831f
JH
17330 * ipa.c (function_and_variable_visibility): Do not try to mark alias
17331 declarations as needed.
17332
05842ff5
MJ
173332011-01-15 Martin Jambor <mjambor@suse.cz>
17334
17335 * common.opt (fdevirtualize): New flag.
17336 * doc/invoke.texi (Option Summary): Document it.
17337 * opts.c (default_options_table): Add devirtualize flag.
17338 * ipa-prop.c (detect_type_change): Return immediately if
17339 devirtualize flag is not set.
17340 (detect_type_change_ssa): Likewise.
17341 (compute_known_type_jump_func): Likewise.
17342 (ipa_analyze_virtual_call_uses): Likewise.
17343
f65cf2b7
MJ
173442011-01-14 Martin Jambor <mjambor@suse.cz>
17345
17346 PR tree-optimization/45934
17347 PR tree-optimization/46302
17348 * ipa-prop.c (type_change_info): New type.
17349 (stmt_may_be_vtbl_ptr_store): New function.
17350 (check_stmt_for_type_change): Likewise.
17351 (detect_type_change): Likewise.
17352 (detect_type_change_ssa): Likewise.
17353 (compute_complex_assign_jump_func): Check for dynamic type change.
17354 (compute_complex_ancestor_jump_func): Likewise.
17355 (compute_known_type_jump_func): Likewise.
17356 (compute_scalar_jump_functions): Likewise.
17357 (ipa_analyze_virtual_call_uses): Likewise.
17358 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
17359
eb5bb0fd
JM
173602011-01-14 Joseph Myers <joseph@codesourcery.com>
17361
17362 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
17363 * config/i386/i386.opt (msse5): New Alias.
17364
f2060fbe
JM
173652011-01-14 Joseph Myers <joseph@codesourcery.com>
17366
17367 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
17368 * config/sparc/linux64.h (CC1_SPEC): Likewise.
17369 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
17370 * config/sparc/sparc.h (CC1_SPEC): Likewise.
17371
3a7b4385
JM
173722011-01-14 Joseph Myers <joseph@codesourcery.com>
17373
17374 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
17375 -mcpu options.
17376 * config/sparc/linux64.h (CC1_SPEC): Likewise.
17377 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
17378 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
17379 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
17380 Likewise.
17381 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
17382
a7b778f8
JM
173832011-01-14 Joseph Myers <joseph@codesourcery.com>
17384
38be4072 17385 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 17386
a7edae0a
MS
173872011-01-14 Mike Stump <mikestump@comcast.net>
17388
17389 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
17390 * config/fr30/fr30.md: Likweise
17391 (movsi_push): Likewise.
17392 (movsi_pop): Likewise.
17393 (enter_func): Likewise.
17394 * config/moxie/moxie.md (movsi_push): Likewise.
17395 (movsi_pop): Likewise.
17396
cbabf03f
JM
173972011-01-14 Joseph Myers <joseph@codesourcery.com>
17398
17399 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
17400 %{no_archive} %{exact_version}.
17401 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
17402 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
17403 %{no_archive} %{exact_version}.
17404 * config/mips/openbsd.h (LINK_SPEC): Likewise.
17405 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
17406 * config/mips/vxworks.h: Likewise.
17407
438da41a
JM
174082011-01-14 Joseph Myers <joseph@codesourcery.com>
17409
38be4072 17410 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 17411
da290a42
JM
174122011-01-14 Joseph Myers <joseph@codesourcery.com>
17413
17414 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
17415 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
17416
8989d00e
JM
174172011-01-14 Joseph Myers <joseph@codesourcery.com>
17418
17419 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
17420 -nodefaultlib.
17421
a3010a69
JM
174222011-01-14 Joseph Myers <joseph@codesourcery.com>
17423
17424 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
17425 for mcpu not cpu.
17426 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
17427 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
17428 not cpu.
17429 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
17430 Don't handle -shlib.
17431
e7f2f537
JM
174322011-01-14 Joseph Myers <joseph@codesourcery.com>
17433
17434 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
17435 (CC1_SPEC): Don't handle -profile.
17436
34830bfd
JM
174372011-01-14 Joseph Myers <joseph@codesourcery.com>
17438
17439 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
17440 * config/mips/mips.h (CC1_SPEC): Likewise.
17441
b2d36e74
JM
174422011-01-14 Joseph Myers <joseph@codesourcery.com>
17443
17444 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
17445 * config/mips/mips.h (CC1_SPEC): Likewise.
17446
dabadc52
JM
174472011-01-14 Joseph Myers <joseph@codesourcery.com>
17448
17449 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
17450 * config/m32r/linux.h (LINK_SPEC): Likewise.
17451 * config/mips/linux.h (LINK_SPEC): Likewise.
17452 * config/mips/linux64.h (LINK_SPEC): Likewise.
17453 * config/sparc/linux.h (LINK_SPEC): Likewise.
17454 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
17455 LINK_SPEC): Likewise.
17456 * config/xtensa/linux.h (LINK_SPEC): Likewise.
17457
43ee6785
JM
174582011-01-14 Joseph Myers <joseph@codesourcery.com>
17459
17460 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
17461 %{version:-v}.
17462 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
17463
45e79dfd
JM
174642011-01-14 Joseph Myers <joseph@codesourcery.com>
17465
17466 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
17467 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
17468
37e9e71d
JM
174692011-01-14 Joseph Myers <joseph@codesourcery.com>
17470
17471 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
17472
bb127cd8
RO
174732011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17474
17475 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
17476 supports -Bstatic/-Bdynamic.
17477 * configure: Regenerate.
17478
89a012ea 174792011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 17480 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
17481
17482 PR target/46037
17483 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
17484 when checking debug_info_level. Test write_symbols instead of
17485 debug_hooks->var_location when setting flag_var_tracking_uninit.
17486
7352c013
RG
174872011-01-14 Richard Guenther <rguenther@suse.de>
17488
17489 PR tree-optimization/47179
17490 * target.def (ref_may_alias_errno): New target hook.
17491 * targhooks.h (default_ref_may_alias_errno): Declare.
17492 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
17493 (default_ref_may_alias_errno): New function.
17494 * target.h (struct ao_ref_s): Declare.
17495 * tree-ssa-alias.c: Include target.h.
17496 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
17497 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
17498 (targhooks.o): Likewise.
17499 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
17500 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
17501
9a6c9288
RG
175022011-01-14 Richard Guenther <rguenther@suse.de>
17503
17504 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
17505
0fdb0d27
RG
175062011-01-14 Richard Guenther <rguenther@suse.de>
17507
17508 PR tree-optimization/47280
17509 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
17510 return CFG changes.
17511 (tree_ssa_forward_propagate_single_use_vars): Deal with
17512 CFG changes from associate_plusminus.
17513
8f66db3b
RG
175142011-01-14 Richard Guenther <rguenther@suse.de>
17515
17516 PR middle-end/47281
17517 Revert
17518 2011-01-11 Richard Guenther <rguenther@suse.de>
17519
280d9630
EB
17520 PR tree-optimization/46076
17521 * tree-ssa.c (useless_type_conversion_p): Conversions from
17522 unprototyped to empty argument list function types are useless.
8f66db3b 17523
6c0c92e6
RG
175242011-01-14 Richard Guenther <rguenther@suse.de>
17525
17526 PR tree-optimization/47286
280d9630 17527 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 17528
db09f943
MJ
175292011-01-14 Martin Jambor <mjambor@suse.cz>
17530
17531 PR middle-end/46823
17532 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
17533
dde8a3a4
AS
175342011-01-13 Anatoly Sokolov <aesok@post.ru>
17535
17536 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
17537 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17538 * config/xtensa/xtensa.c (xtensa_libcall_value,
17539 xtensa_function_value_regno_p): New functions.
17540 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
17541
a2b63a20
KT
175422011-01-13 Kai Tietz <kai.tietz@onevision.com>
17543
17544 PR c++/47213
17545 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
17546 PE specific hook.
17547 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
17548 New function prototype.
17549 * config/i386/winnt.c (i386_pe_assemble_visibility):
17550 Warn only if attribute was specified by user.
17551
b41f0b34
MM
175522011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
17553
17554 PR target/47251
17555 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
17556 floating point.
17557 (floatunsdidf2_fcfidu): Ditto.
17558
3f3c098d
AK
175592011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17560
17561 * config/s390/s390.c (print_operand_address): Replace 'error' with
17562 'output_operand_lossage'.
17563 (print_operand): Likewise.
17564
29fa95ed
JL
175652011-01-13 Jeff Law <law@redhat.com>
17566
280d9630 17567 PR rtl-optimization/39077
29fa95ed
JL
17568 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
17569 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
17570 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
17571 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
17572 * gcse.c (prune_insertions_deletions): New function.
17573 (compute_pre_data): Use it.
17574
71d12276
DS
175752011-01-13 Dodji Seketeli <dodji@redhat.com>
17576
17577 PR debug/PR46973
17578 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
17579 static function.
61052244 17580 (prune_unused_types_mark): Use it.
71d12276 17581
9b0f04e7
AB
175822011-01-13 Andrey Belevantsev <abel@ispras.ru>
17583
17584 PR rtl-optimization/45352
1c3ba85b 17585 * sel-sched.c: Update copyright years.
9b0f04e7 17586 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 17587 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 17588
d6a3e264
RH
175892011-01-12 Richard Henderson <rth@redhat.com>
17590
a49b692a
RH
17591 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
17592 (TARGET_MD_ASM_CLOBBERS): New.
17593
126b1483
RH
17594 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
17595 (TARGET_DELEGITIMIZE_ADDRESS): New.
17596
f3d9d2e0
RH
17597 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
17598 (clzsi2, *bsch): New patterns.
17599
d84760c9
RH
17600 * config/mn10300/mn10300.md (INT): New mode iterator.
17601 (*mov<INT>_clr): New pattern, and peep2 to generate it.
17602
ec815d65
RH
17603 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
17604 flag_split_wide_types.
17605
d6a3e264
RH
17606 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
17607 (mn10300_trampoline_init): Rewrite without a template, an immediate
17608 load and a direct branch.
17609 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
17610
0f8ab434
AS
176112011-01-12 Anatoly Sokolov <aesok@post.ru>
17612
17613 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17614 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
17615 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
17616 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17617
d8a24b65
KT
176182011-01-12 Kai Tietz <kai.tietz@onevision.com>
17619
17620 PR debug/47209
17621 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
17622 of type.
17623
56e22cab
JH
176242011-01-12 Jan Hubicka <jh@suse.cz>
17625
17626 PR driver/47244
17627 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
17628 (PLUGIN_COND_CLOSE): New macro.
17629 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
17630
4b18b3c2
RG
176312011-01-12 Richard Guenther <rguenther@suse.de>
17632
17633 PR lto/47259
17634 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
17635 register variables in a MEM_REF.
17636
8e38461c
JM
176372011-01-12 Joseph Myers <joseph@codesourcery.com>
17638
17639 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
17640 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
17641 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
17642 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
17643 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
17644 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
17645 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
17646 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
17647 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
17648 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
17649 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
17650 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
17651 * config/gnu-user.h: New. Copied from linux.h.
17652 (LINUX_TARGET_STARTFILE_SPEC): Rename to
17653 GNU_USER_TARGET_STARTFILE_SPEC.
17654 (LINUX_TARGET_ENDFILE_SPEC): Rename to
17655 GNU_USER_TARGET_ENDFILE_SPEC.
17656 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
17657 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
17658 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
17659 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
17660 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
17661 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
17662 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
17663 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
17664 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
17665 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
17666 * config/arm/linux-eabi.h (CC1_SPEC): Use
17667 GNU_USER_TARGET_CC1_SPEC.
17668 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
17669 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
17670 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
17671 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
17672 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
17673 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
17674 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
17675 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
17676
a570fc16
RG
176772011-01-12 Richard Guenther <rguenther@suse.de>
17678
17679 PR other/46946
17680 * doc/invoke.texi (ffast-math): Document it is turned on
17681 with -Ofast.
17682
b0223c3e
JH
176832011-01-12 Jan Hubicka <jh@suse.cz>
17684
17685 PR tree-optimization/47233
ca1e00b3
EB
17686 * opts.c (common_handle_option): Disable ipa-reference with profile
17687 feedback.
b0223c3e 17688
1c3ba85b 176892011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
17690
17691 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
17692 error message.
17693
d853ee42
NP
176942011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
17695
17696 * c-parser.c (c_lex_one_token): Updated and reindented some
17697 comments. No changes in code.
17698
4053a5a0
ILT
176992011-01-11 Ian Lance Taylor <iant@google.com>
17700
17701 * godump.c (go_output_var): Don't output the variable if there is
17702 already a type with the same name.
17703
fa3e04d2
ILT
177042011-01-11 Ian Lance Taylor <iant@google.com>
17705
17706 * godump.c (go_format_type): Don't generate float80.
17707
885fe07c
RH
177082011-01-11 Richard Henderson <rth@redhat.com>
17709
72d6e3c5
RH
17710 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
17711 declaration. Rewrite for both speed and size.
17712 (mn10300_address_cost_1): Remove.
17713 (mn10300_register_move_cost): New.
17714 (mn10300_memory_move_cost): New.
17715 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
17716 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
17717 extensions, shifts, BSWAP, CLZ.
17718 (mn10300_wide_const_load_uses_clr): Remove.
17719 (TARGET_REGISTER_MOVE_COST): New.
17720 (TARGET_MEMORY_MOVE_COST): New.
17721 * config/mn10300/mn10300-protos.h: Update.
17722 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
17723
df37c023
RH
17724 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
17725 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
17726 * config/mn10300/mn10300-protos.h: Update.
17727 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
17728 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
17729 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
17730 (*test_int_bitfield, *test_byte_bitfield): Remove.
17731 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 17732 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 17733
85a337b5
RH
17734 * config/mn10300/constraints.md ("c"): Rename from "A".
17735 ("A", "D"): New constraint letters.
17736 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
17737 (fmssf4, fnmasf4, fnmssf4): Likewise.
17738
a5c727e3
RH
17739 * config/mn10300/mn10300.md (isa): New attribute.
17740 (enabled): New attribute.
17741
0d9e23f4
RH
17742 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
17743 (abssf2, negsf2): Define only for hardware fp.
17744 (sqrtsf2): Reformat.
17745 (addsf3, subsf3, mulsf3): Merge expander and insn.
17746
c157b3f0
RH
17747 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
17748 (DEBUGGER_AUTO_OFFSET): Remove.
17749 (DEBUGGER_ARG_OFFSET): Remove.
17750
cc909bba
RH
17751 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
17752 Emit register stores with the same offsets as the hardware.
17753 (mn10300_store_multiple_operation): Don't check that the register
17754 save offsets are monotonic.
17755 * config/mn10300/mn10300-protos.h: Update.
17756
e3b5c2f3
RH
17757 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
17758
885fe07c
RH
17759 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
17760 in terms of the value on the stack, not the MDR register.
17761
6e701822
JH
177622011-01-11 Jan Hubicka <jh@suse.cz>
17763
17764 PR lto/45721
17765 PR lto/45375
17766 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
17767 (symbol_alias_set_destroy, symbol_alias_set_contains,
17768 propagate_aliases_backward): Declare.
17769 * lto-streamer-out.c (struct sets): New sturcture.
17770 (trivally_defined_alias): New function.
17771 (output_alias_pair_p): Rewrite.
17772 (output_unreferenced_globals): Fix output of alias pairs.
17773 (produce_symtab): Likewise.
17774 * ipa.c (function_and_variable_visibility): Set weak alias destination
17775 as needed in lto.
17776 * varasm.c (symbol_alias_set_t): Remove.
17777 (symbol_alias_set_destroy): Export.
17778 (propagate_aliases_forward, propagate_aliases_backward): New functions
17779 based on ...
17780 (compute_visible_aliases): ... this one; remove.
17781 (trivially_visible_alias): New
17782 (trivially_defined_alias): New.
17783 (remove_unreachable_alias_pairs): Rewrite.
17784 (finish_aliases_1): Reorganize code checking if alias is defined.
17785 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
17786 in LTO mode.
17787
1b248907
RG
177882011-01-11 Richard Guenther <rguenther@suse.de>
17789
17790 PR tree-optimization/46076
17791 * tree-ssa.c (useless_type_conversion_p): Conversions from
17792 unprototyped to empty argument list function types are useless.
17793
b1923f0a
RG
177942011-01-11 Richard Guenther <rguenther@suse.de>
17795
17796 PR middle-end/45235
17797 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
17798 volatile MEMs as MEM_READONLY_P.
17799
e98965af
RG
178002011-01-11 Richard Guenther <rguenther@suse.de>
17801
17802 PR tree-optimization/47239
17803 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
17804
9f9ca914
JL
178052011-01-11 Jeff Law <law@redhat.com>
17806
1ee3ea05 17807 PR tree-optimization/47086
9f9ca914
JL
17808 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
17809 IVs from statements that might throw.
17810
345fdcb7
JH
178112011-01-10 Jan Hubicka <jh@suse.cz>
17812
17813 PR lto/45375
17814 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
17815
c459c97b
JH
178162011-01-10 Jan Hubicka <jh@suse.cz>
17817
17818 PR lto/45375
17819 * profile.c (read_profile_edge_counts): Ignore profile inconistency
17820 when correcting profile.
17821
06c9eb51
JH
178222011-01-10 Jan Hubicka <jh@suse.cz>
17823
17824 PR lto/46083
17825 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
17826 DECL_FINI_PRIORITY.
17827 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
17828 Restore DECL_FINI_PRIORITY.
17829
ae9fd815
RW
178302011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17831
17832 * doc/gimple.texi: Fix quoting of multi-word return values in
17833 @deftypefn statements. Ensure presence of return value. Wrap
17834 overlong @deftypefn lines.
17835 (is_gimple_operand, is_gimple_min_invariant_address): Remove
17836 descriptions of removed functions.
17837 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
17838 of multi-word return value in @deftypefn statement.
17839
0ecb4a7c
RW
178402011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17841
17842 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
17843 (Conditional Expressions, Logical Operators)
17844 (Statement and operand traversals): Do not indent smallexample
17845 code. Fix duplicate function argument in example.
17846
2e5e346d
JL
178472011-01-10 Jeff Law <law@redhat.com>
17848
1ee3ea05 17849 PR tree-optimization/47141
2e5e346d
JL
17850 * ipa-split.c (split_function): Handle case where we are
17851 returning a value and the return block has a virtual operand phi.
17852
cf9712cc
JH
178532011-01-10 Jan Hubicka <jh@suse.cz>
17854
1c3ba85b 17855 PR tree-optimization/47234
cf9712cc
JH
17856 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
17857 (pass_feedback_split_functions): Declare.
17858 * passes.c (init_optimization_passes): Add ipa-split as subpass of
17859 tree-profile.
17860 * ipa-split.c (gate_split_functions): Update comments; disable
17861 split-functions for profile_arc_flag and branch_probabilities.
17862 (gate_feedback_split_functions): New function.
17863 (execute_feedback_split_functions): New function.
17864 (pass_feedback_split_functions): New global var.
17865
94cd932c
L
178662011-01-10 H.J. Lu <hongjiu.lu@intel.com>
17867
17868 PR lto/46760
17869 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
17870 calling gimple_call_set_cannot_inline.
17871
fbbfcaf1
IS
178722011-01-10 Iain Sandoe <iains@gcc.gnu.org>
17873
17874 * config/darwin-sections.def: Remove unused section.
17875
d06865bf
DK
178762011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
17877
17878 PR c++/47218
17879 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
17880
96bbfbac
NP
178812011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
17882
17883 PR objc/47232
17884 * c-parser.c (c_parser_declaration_or_fndef): Improved
17885 error message.
17886
1ba6516f
KT
178872011-01-09 Kai Tietz <kai.tietz@onevision.com>
17888
17889 * config/i386/winnt.c (i386_pe_start_function): Make sure
17890 to switch back to function's section.
17891
0c5d770e
IS
178922011-01-09 Iain Sandoe <iains@gcc.gnu.org>
17893
17894 PR gcc/46902
17895 PR testsuite/46912
17896 * plugin.c: Move include of dlfcn.h from here...
17897 * system.h: ... to here.
17898
178992011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
17900
17901 * doc/cpp.texi (C++ Named Operators): Fix markup for header
17902 file name.
17903 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
17904 two extra empty pages in PDF output.
17905
046608a3
NP
179062011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
17907
17908 PR objc/47078
17909 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
17910 for error recovery purposes behave as if it was not specified so
17911 that the default type is usd.
17912
8cb114b9
JH
179132011-01-07 Jan Hubicka <jh@suse.cz>
17914
17915 PR tree-optmization/46469
17916 * ipa.c (function_and_variable_visibility): Clear needed flags on
17917 nodes with external decls; handle weakrefs merging correctly.
17918
b294a75e
JM
179192011-01-07 Joseph Myers <joseph@codesourcery.com>
17920
17921 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
17922 not false.
17923
96bdf9b4
JH
179242011-01-07 Jan Hubicka <jh@suse.cz>
17925
f60c2554 17926 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
17927 and no longer claim that gold is required for linker plugin.
17928 * configure: Regenerate.
17929 * gcc.c (PLUGIN_COND): New macro.
17930 (LINK_COMMAND_SPEC): Use it.
17931 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
17932 * config.in (HAVE_LTO_PLUGIN): New.
17933 * configure.ac (--with-lto-plugin): New parameter; autodetect
17934 HAVE_LTO_PLUGIN.
17935
17afc0fe
JH
179362011-01-07 Jan Hubicka <jh@suse.cz>
17937
17938 PR tree-optimization/46367
17939 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
17940 when we can update original.
17941 (cgraph_mark_inline_edge): Sanity check.
17942 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
17943
d4c48c0f
UW
179442011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17945
17946 * config/spu/spu.h (ASM_COMMENT_START): Define.
17947
96f5b137
L
179482011-01-07 H.J. Lu <hongjiu.lu@intel.com>
17949
17950 PR driver/42445
17951 * gcc.c (%>S): New.
17952 (SWITCH_KEEP_FOR_GCC): Likewise.
17953 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
17954 (do_spec_1): Handle "%>".
17955
17956 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
17957
c6a8f6de
JJ
179582011-01-07 Jakub Jelinek <jakub@redhat.com>
17959
c21bbd7a
JJ
17960 PR target/47201
17961 * config/i386/i386.c (ix86_delegitimize_address): If
17962 simplify_gen_subreg fails, return orig_x.
17963
c6a8f6de
JJ
17964 PR bootstrap/47187
17965 * value-prof.c (gimple_stringop_fixed_value): Handle
17966 lhs of the call properly.
17967
fe95fbf9
JH
179682011-01-07 Jan Hubicka <jh@suse.cz>
17969
17970 PR lto/45375
17971 * lto-opt.c (lto_reissue_options): Set flag_shlib.
17972
14d11d40
IS
179732011-01-07 Iain Sandoe <iains@gcc.gnu.org>
17974
72e961c8
EB
17975 * target.def (function_switched_text_sections): New hook.
17976 * doc/tm.texi: Regenerated.
17977 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 17978 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
17979 (final_scan_insn): Call function_switched_text_sections when a
17980 mid-function section change occurs.
14d11d40 17981 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
17982 * config/darwin-protos.h (darwin_function_switched_text_sections):
17983 Likewise.
14d11d40 17984 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 17985 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 17986
0b764288
IS
179872011-01-07 Iain Sandoe <iains@gcc.gnu.org>
17988
17989 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
17990 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
17991 the secondary code fragment when outputting for DWARF == 2.
17992
2ac6bb04
AS
179932011-01-07 Anatoly Sokolov <aesok@post.ru>
17994
17995 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17996 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
17997 Remove.
17998 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
17999 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18000
9f82de11
EB
180012011-01-06 Eric Botcazou <ebotcazou@adacore.com>
18002
18003 PR debug/46704
280d9630
EB
18004 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
18005 when it is not empty.
9f82de11
EB
18006
180072011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 18008
1ed72abf 18009 Bobcat Enablement
14b52538 18010 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 18011 (case ${target}): Add btver1.
14b52538 18012 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 18013 -march=native recognize btver1 processors.
14b52538 18014 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 18015 btver1 def_and_undef
14b52538 18016 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
18017 btver1 cost table.
18018 (m_BTVER1): New definition.
18019 (m_AMD_MULTIPLE): Includes m_BTVER1.
18020 (initial_ix86_tune_features): Add btver1 tune.
18021 (processor_target_table): Add btver1 entry.
18022 (static const char *const cpu_names): Add btver1 entry.
18023 (software_prefetching_beneficial_p): Add btver1.
18024 (ix86_option_override_internal): Add btver1 instruction sets.
18025 (ix86_issue_rate): Add btver1.
18026 (ix86_adjust_cost): Add btver1.
14b52538 18027 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
18028 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
18029 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
18030 * config/i386/i386.md (define_attr "cpu"): Add btver1.
18031
e1a973d8
RO
180322011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18033
18034 PR target/43309
18035 * config/i386/i386.c (legitimize_tls_address)
18036 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
18037 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
18038 (tls_initial_exec_64_sun): New pattern.
18039
c73f67c5
GP
180402011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
18041
18042 * doc/invoke.texi (Overall Options): Improve wording and markup
18043 of the description of -wrapper.
18044
bc4c6f9c
JM
180452011-01-06 Joseph Myers <joseph@codesourcery.com>
18046
18047 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
18048 rdynamic, threads): New Driver options.
18049
adb75db0
RO
180502011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18051
18052 PR target/38118
18053 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
18054 if coming from .tdata.
18055 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
18056
402c1cb4
JH
180572011-01-06 Jan Hubicka <jh@suse.cz>
18058
18059 PR lto/47188
18060 * collect2.c (main): Do not enable LTOmode when plugin is active.
18061
a4da6485
RO
180622011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18063
18064 PR other/45915
18065 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
18066 --version output if supported.
18067 * configure: Regenerate.
18068
028dbdf4
JM
180692011-01-06 Joseph Myers <joseph@codesourcery.com>
18070
18071 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
18072 Driver options.
18073
dfe776dd
JJ
180742011-01-06 Jakub Jelinek <jakub@redhat.com>
18075
18076 PR c/47150
18077 * c-convert.c (convert): When converting a complex expression
18078 other than COMPLEX_EXPR to a different complex type, ensure
18079 c_save_expr is called instead of save_expr, unless in_late_binary_op.
18080 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
18081 when converting COMPLEX_TYPE.
18082
210dedfe
IR
180832011-01-06 Ira Rosen <irar@il.ibm.com>
18084
18085 PR tree-optimization/47139
18086 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
18087 only the last reduction value is used outside the loop. Update
18088 documentation.
18089
cd33a412
JM
180902011-01-05 Joseph Myers <joseph@codesourcery.com>
18091
18092 * config/rtems.opt: New.
18093 * config.gcc (*-*-rtems*): Use rtems.opt.
18094
819edd94
CF
180952011-01-05 Changpeng Fang <changpeng.fang@amd.com>
18096
18097 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
18098 processors do not support 3DNow instructions.
18099
dc242c4a
UW
181002011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18101
18102 * config/spu/spu.c (spu_option_override): Set parameter
18103 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
18104
be286227
JH
181052011-01-05 Jan Hubicka <jh@suse.cz>
18106
18107 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
18108 at the command line.
18109
644e637f
MJ
181102011-01-05 Martin Jambor <mjambor@suse.cz>
18111
18112 PR lto/47162
18113 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
18114 deltas on streamed outgoing edges.
18115 (output_node_opt_summary): Output info for outgoing edges only when
18116 the node is in new parameter set.
18117 (output_cgraph_opt_summary): New parameter set, passed to the two
18118 aforementioned functions. Update its forward declaration and its
18119 callee too.
18120
7bd11157
TT
181212011-01-05 Tom Tromey <tromey@redhat.com>
18122
18123 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
18124 operator to c_finish_omp_atomic.
18125 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
18126 (build_unary_op): Update.
18127 (build_modify_expr): Update.
18128 (build_asm_expr): Update.
18129
f626b979
UW
181302011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18131
18132 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
18133 newly inserted insns.
18134 (pad_bb): Likewise.
18135 (spu_emit_branch_hint): Likewise.
18136 (insert_hbrp_for_ilb_runout): Likewise.
18137 (spu_machine_dependent_reorg): Call df_finish_pass after
18138 schedule_insns returns.
18139
4c825c02
UW
181402011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18141
18142 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
18143
5e9fba51
EB
181442011-01-05 Eric Botcazou <ebotcazou@adacore.com>
18145
18146 PR tree-optimization/47005
18147 * tree-sra.c (struct access): Add 'non_addressable' bit.
18148 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
18149 (decide_one_param_reduction): Return 0 if the parameter is passed by
18150 reference and one of the accesses in the group is non_addressable.
18151
3ebb5ca6
EB
181522011-01-04 Eric Botcazou <ebotcazou@adacore.com>
18153
18154 PR tree-optimization/47056
18155 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
18156 (mark_load): Likewise. Handle FUNCTION_DECL specially.
18157 (mark_store): Likewise. Pass STMT to ipa_record_reference.
18158
d5d4d14e
EB
181592011-01-04 Eric Botcazou <ebotcazou@adacore.com>
18160
18161 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
18162 initializer. Skip view conversions from aggregate types.
18163
d996ef70
KT
181642011-01-04 Kai Tietz <kai.tietz@onevision.com>
18165
18166 PR bootstrap/47055
18167 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
18168
509d65dd 181692011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
18170
18171 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
18172 obvious typo.
18173
55c623b5
UW
181742011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18175
18176 * function.c (thread_prologue_and_epilogue_insns): Do not crash
18177 on empty epilogue sequences.
18178
b98d6b35
JM
181792011-01-04 Joseph Myers <joseph@codesourcery.com>
18180
18181 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
18182 non-static): New Driver options.
18183
a0d43bac
JZ
181842011-01-04 Jie Zhang <jie@codesourcery.com>
18185
18186 PR driver/47137
18187 * gcc.c (default_compilers[]): Set combinable field to 0
18188 for all assembly languages.
18189
2b18eb32
MX
181902011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
18191
18192 * config/mips/loongson3a.md: New file.
18193 * config/mips/mips.md: Include loongson3a.md.
18194 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
18195 TUNE_LOONGSON_3A.
18196
42a48c4f
EB
181972011-01-03 Eric Botcazou <ebotcazou@adacore.com>
18198
18199 PR middle-end/47017
18200 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
18201 instead of convert_memory_address_addr_space on the base expression.
18202
9c1732c4
UW
182032011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18204
18205 * config/spu/spu.c (spu_option_override): Update error text
18206 for bad -march= / -mtune= values.
18207
aa474365
UW
182082011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18209
18210 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
18211 if branch-hint optimization will be performed.
18212
9766135b
JJ
182132011-01-03 Jakub Jelinek <jakub@redhat.com>
18214
371556ee
JJ
18215 PR tree-optimization/47148
18216 * ipa-split.c (split_function): Convert arguments to
18217 DECL_ARG_TYPE if possible.
18218
1ac12fa2
JJ
18219 PR tree-optimization/47155
18220 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
18221 when computing uns.
18222
9766135b
JJ
18223 PR rtl-optimization/47157
18224 * combine.c (try_combine): If undobuf.other_insn becomes
18225 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
18226 and set *new_direct_jump_p too.
18227
f4a2e571
SP
182282011-01-03 Sebastian Pop <sebastian.pop@amd.com>
18229
18230 PR tree-optimization/47021
18231 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
18232
9f8e43c0
JJ
182332011-01-03 Jakub Jelinek <jakub@redhat.com>
18234
18235 * gcc.c (process_command): Update copyright notice dates.
18236 * gcov.c (print_version): Likewise.
18237 * gcov-dump.c (print_version): Likewise.
18238 * mips-tfile.c (main): Likewise.
18239 * mips-tdump.c (main): Likewise.
18240
1a2e38f3
MJ
182412011-01-03 Martin Jambor <mjambor@suse.cz>
18242
18243 PR tree-optimization/46801
18244 * tree-sra.c (type_internals_preclude_sra_p): Check whether
18245 aggregate fields start at byte boundary instead of the bit-field flag.
18246
56b721c5
L
182472011-01-03 H.J. Lu <hongjiu.lu@intel.com>
18248
18249 PR driver/47137
18250 * gcc.c (main): Revert revision 168407.
18251
839d549b
MJ
182522011-01-03 Martin Jambor <mjambor@suse.cz>
18253
18254 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
18255
4ce99a20 182562011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
18257
18258 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
18259 vector optab to expand vector/scalar shift, update gimple to vector.
18260
76df0ae6
MJ
182612011-01-03 Martin Jambor <mjambor@suse.cz>
18262
18263 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
18264 a thunk.
18265
ce47fda3
MJ
182662011-01-03 Martin Jambor <mjambor@suse.cz>
18267
18268 PR tree-optimization/46984
18269 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
18270 HOST_WIDE_INT.
18271 (cgraph_create_indirect_edge): Fixed line length.
18272 (cgraph_indirect_call_info): Declare.
18273 (cgraph_make_edge_direct) Update declaration.
18274 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
18275 (cgraph_create_indirect_edge): Use it.
18276 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
18277 callees.
18278 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
18279 the new thunk_delta representation.
18280 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
18281 HOST_WIDE_INT.
18282 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
18283 (ipa_read_indirect_edge_info): Likewise.
18284 * lto-cgraph.c (output_edge_opt_summary): New function.
18285 (output_node_opt_summary): Call it on all outgoing edges.
18286 (input_edge_opt_summary): New function.
18287 (input_node_opt_summary): Call it on all outgoing edges.
18288
1e67fa1f
L
182892011-01-02 H.J. Lu <hongjiu.lu@intel.com>
18290
18291 PR driver/47137
18292 * gcc.c (main): Don't check have_o when settting combine_inputs.
18293
6656b2ac
EB
182942011-01-02 Eric Botcazou <ebotcazou@adacore.com>
18295
18296 * regrename.c: Add general comment describing the pass.
18297 (struct du_head): Remove 'length' field.
18298 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
18299 (regrename_optimize): Do not sort chains. Rework comments, add others.
18300 Force renaming to the preferred class (if any) in the first pass and do
18301 not consider registers that belong to it in the second pass.
18302 (create_new_chain): Do not set 'length' field.
18303 (scan_rtx_reg): Likewise.
18304
bc470c24
JJ
183052011-01-02 Jakub Jelinek <jakub@redhat.com>
18306
4e996296
JJ
18307 PR tree-optimization/47140
18308 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
18309 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
18310 to bit_value_binop.
18311
bc470c24 18312 PR rtl-optimization/47028
6656b2ac
EB
18313 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
18314 parm_birth_insn instead of at the beginning of first bb.
bc470c24 18315
5af62fcd 183162011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
18317
18318 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
18319 Remove the word "see" before "@pxref".
18320 * doc/rtl.texi: Remove the word "see" before "@pxref".
18321
0e20c89f
JH
183222011-01-01 Jan Hubicka <jh@suse.cz>
18323
6656b2ac
EB
18324 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
18325 memory.
0e20c89f 18326
220e83ca
KT
183272011-01-01 Kai Tietz <kai.tietz@onevision.com>
18328
18329 PR target/38662
6656b2ac 18330 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 18331
ad41bd84 18332\f
797103eb 18333Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
18334
18335Copying and distribution of this file, with or without modification,
18336are permitted in any medium without royalty provided the copyright
18337notice and this notice are preserved.