]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/49419 (gcc -O2 miscompiles gp2c)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
09302442
JJ
12011-06-16 Jakub Jelinek <jakub@redhat.com>
2
3 PR tree-optimization/49419
4 * tree-vrp.c (execute_vrp): Call init_range_assertions
5 before estimate_numbers_of_iterations, call
6 free_number_of_iterations_estimates before calling
7 remove_range_assertions.
8
81c41166
RE
92011-06-16 Revital Eres <revital.eres@linaro.org>
10
11 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
12 (struct partial_schedule): Add rows_length field.
13 (verify_partial_schedule): Check rows_length.
14 (ps_insert_empty_row): Handle rows_length.
15 (create_partial_schedule): Likewise.
16 (free_partial_schedule): Likewise.
17 (reset_partial_schedule): Likewise.
18 (create_ps_insn): Remove rest_count argument.
19 (remove_node_from_ps): Update rows_length.
20 (add_node_to_ps): Update rows_length and call create_ps_insn
21 without passing row_rest_count.
22 (rotate_partial_schedule): Update rows_length.
23
d24dc7b3
RE
242011-06-16 Revital Eres <revital.eres@linaro.org>
25
26 * ddg.c (add_intra_loop_mem_dep): New function.
27 (build_intra_loop_deps): Call it.
28
2098e438
JL
292011-05-06 Jeff Law <law@redhat.com>
30
31 * df-problems.c (df_lr_local_compute): Manually CSE
32 PIC_OFFSET_TABLE_REGNUM.
33 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
34 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
35
85ce9375
JH
362011-06-13 Jan Hubicka <jh@suse.cz>
37
38 * cgraphunit.c (handle_alias_pairs): New function.
39 (cgraph_finalize_compilation_unit): Use it.
40 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
41 as externally visible.
42
a577c405
RG
432011-06-15 Richard Guenther <rguenther@suse.de>
44
45 * expr.c (expand_expr_real_2): Reduce all integral types to
46 bitfield precision.
47 (expand_expr_real_1): Likewise.
48
93536c97
MJ
492011-06-15 Martin Jambor <mjambor@suse.cz>
50
51 PR tree-optimization/48613
52 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
53 ipa_node_params_vector is NULL.
54
ba45cfc4
JJ
552011-06-15 Jakub Jelinek <jakub@redhat.com>
56
57 PR debug/49382
58 * dwarf2out.c (dw_loc_list_node): Add force field.
59 (add_var_loc_to_decl): For PARM_DECL, attempt to keep
60 the incoming location in the list, even if it is modified
61 before first real insn.
62 (output_loc_list): Emit empty ranges with force flag set.
63 (dw_loc_list): If first range of a PARM_DECL is empty,
64 set force flag.
65
6fc5966f
AM
662011-06-15 Alexander Monakov <amonakov@ispras.ru>
67
68 PR target/49349
69 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
70 (fence_to_rewind). Use it to notice when bookkeeping will be placed
71 above a fence. Update comments.
72 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
73 placed just above it. Do not allow NULL place_to_insert.
74
9d5e7640
IR
752011-06-15 Ira Rosen <ira.rosen@linaro.org>
76
77 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
78 (slpeel_tree_peel_loop_to_edge): Don't call
79 remove_dead_stmts_from_loop.
80 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
81 remove irrelevant pattern statements. For irrelevant statements
82 check if it is the last statement of a detected pattern, use
83 corresponding pattern statement instead.
84 (destroy_loop_vec_info): No need to remove pattern statements,
85 only free stmt_vec_info.
86 (vect_transform_loop): For irrelevant statements check if it is
87 the last statement of a detected pattern, use corresponding
88 pattern statement instead.
89 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
90 pattern statements. Set basic block for the new statement.
91 (vect_pattern_recog): Update documentation.
92 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
93 operands of pattern statements.
94 (vectorizable_call): Fix printing. In case of a pattern statement
95 use the lhs of the original statement when creating a dummy
96 statement to replace the original call.
97 (vect_analyze_stmt): For irrelevant statements check if it is
98 the last statement of a detected pattern, use corresponding
99 pattern statement instead.
100 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
101 statements use gsi of the original statement.
102
677f3fa8
JM
1032011-06-14 Joseph Myers <joseph@codesourcery.com>
104
105 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
106 common/common-target-def.h.
107 * target.def (default_target_flags, handle_option,
108 supports_split_stack, optimization_table, init_struct,
109 except_unwind_info, unwind_tables_default, have_named_sections):
110 Move to common/common-target.def.
111 * target.h (enum opt_levels, struct default_options): Move to
112 common/common-target.h.
113 * targhooks.c (default_except_unwind_info,
114 dwarf2_except_unwind_info, sjlj_except_unwind_info,
115 default_target_handle_option, empty_optimization_table): Move to
116 common/common-targhooks.c.
117 * targhooks.h (default_except_unwind_info,
118 dwarf2_except_unwind_info, sjlj_except_unwind_info,
119 default_target_handle_option, empty_optimization_table): Move to
120 common/common-targhooks.h.
121 * common/common-target-def.h: Include common/common-targhooks.h.
122 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
123 defined.
124 * common/common-target.def (handle_option, option_init_struct,
125 option_optimization_table, default_target_flags,
126 except_unwind_info, supports_split_stack, unwind_tables_default,
127 have_named_sections): Move from target.def.
128 (HOOK_PREFIX): Undefine at end of file.
129 * common/common-target.h: Include input.h.
130 (enum opt_levels, struct default_options): Move from target.h.
131 * common/common-targhooks.c, common/common-targhooks.h: New.
132 * config.gcc (target_has_targetm_common): Default to yes.
133 (moxie*): Set target_has_targetm_common=no.
134 (hppa*-*-*): Don't set target_has_targetm_common=yes.
135 * doc/tm.texi: Regenerate.
136 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
137 (C_TARGET_DEF_H): Add common/common-targhooks.h.
138 (GCC_OBJS): Remove vec.o.
139 (OBJS): Remove hooks.o and vec.o.
140 (OBJS-libcommon-target): Add vec.o, hooks.o and
141 common/common-targhooks.o.
142 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
143 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
144 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
145 cfglayout.o, $(out_object_file), $(common_out_object_file)):
146 Update dependencies.
147 (common/common-targhooks.o): New.
148 * common/config/default-common.c: Include tm.h. Add FIXME
149 comment.
150 * common/config/pa/pa-common.c: Include more headers. Take
151 copyright dates from pa.c.
152 (pa_option_optimization_table, pa_handle_option,
153 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
154 TARGET_HANDLE_OPTION): Move from pa.c.
155 * common/config/alpha/alpha-common.c,
156 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
157 common/config/bfin/bfin-common.c,
158 common/config/cris/cris-common.c,
159 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
160 common/config/h8300/h8300-common.c,
161 common/config/i386/i386-common.c,
162 common/config/ia64/ia64-common.c,
163 common/config/iq2000/iq2000-common.c,
164 common/config/lm32/lm32-common.c,
165 common/config/m32c/m32c-common.c,
166 common/config/m32r/m32r-common.c,
167 common/config/m68k/m68k-common.c,
168 common/config/mcore/mcore-common.c,
169 common/config/mep/mep-common.c,
170 common/config/microblaze/microblaze-common.c,
171 common/config/mips/mips-common.c,
172 common/config/mmix/mmix-common.c,
173 common/config/mn10300/mn10300-common.c,
174 common/config/pdp11/pdp11-common.c,
175 common/config/picochip/picochip-common.c,
176 common/config/rs6000/rs6000-common.c,
177 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
178 common/config/score/score-common.c, common/config/sh/sh-common.c,
179 common/config/sparc/sparc-common.c,
180 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
181 common/config/vax/vax-common.c,
182 common/config/xstormy16/xstormy16-common.c,
183 common/config/xtensa/xtensa-common.c: New.
184 * config/alpha/alpha.c: Include common/common-target.h.
185 (alpha_option_optimization_table, alpha_handle_option,
186 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
187 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
188 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
189 * config/arm/arm.c (arm_option_optimization_table,
190 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
191 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
192 arm-common.c.
193 * config/avr/avr.c (avr_option_optimization_table,
194 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
195 to avr-common.c.
196 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
197 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
198 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
199 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
200 * config/cris/cris.c (cris_option_optimization_table,
201 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
202 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
203 cris-common.c.
204 * config/fr30/fr30.c (fr30_option_optimization_table,
205 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
206 to fr30-common.c.
207 * config/frv/frv.c (frv_option_optimization_table,
208 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
209 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
210 * config/h8300/h8300.c (h8300_option_optimization_table,
211 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
212 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
213 * config/i386/i386-protos.h (ix86_handle_option): Declare.
214 * config/i386/i386.c: Include common/common-target.h.
215 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
216 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
217 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
218 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
219 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
220 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
221 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
222 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
223 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
224 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
225 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
226 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
227 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
228 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
229 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
230 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
231 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
232 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
233 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
234 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
235 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
236 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
237 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
238 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
239 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
240 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
241 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
242 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
243 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
244 ix86_option_optimization_table, ix86_option_init_struct,
245 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
246 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
247 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
248 i386-common.c.
249 * config/i386/t-i386 (i386.o): Update dependencies.
250 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
251 * config/ia64/ia64.c (ia64_option_optimization_table,
252 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
253 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
254 ia64_handle_option): Move to ia64-common.c.
255 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
256 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
257 * config/lm32/lm32.c (lm32_option_optimization_table,
258 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
259 to lm32-common.c.
260 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
261 m32c-common.c.
262 * config/m32r/m32r.c (m32r_option_optimization_table,
263 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
264 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
265 m32r_handle_option): Move to m32r-common.c.
266 (m32r_memory_move_cost): Remove comment referring to
267 TARGET_HANDLE_OPTION.
268 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
269 Move to m68k-common.c.
270 * config/mcore/mcore.c (mcore_option_optimization_table,
271 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
272 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
273 * config/mep/mep.c (mep_option_optimization_table,
274 mep_handle_option, TARGET_HANDLE_OPTION,
275 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
276 Move to mep-common.c.
277 * config/microblaze/microblaze.c
278 (microblaze_option_optimization_table,
279 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
280 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
281 * config/mips/mips.c (mips_handle_option,
282 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
283 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
284 mips-common.c.
285 * config/mmix/mmix.c (mmix_option_optimization_table,
286 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
287 Move to mmix-common.c.
288 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
289 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
290 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
291 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
292 * config/pa/pa.c: Include common/common-target.h.
293 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
294 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
295 pa_handle_option): Move to pa-common.c.
296 (pa_option_override): Use targetm_common.except_unwind_info.
297 (pa_asm_output_mi_thunk, pa_function_section): Use
298 targetm_common.have_named_sections.
299 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
300 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
301 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
302 pdp11_handle_option, pdp11_option_init_struct): Move to
303 pdp11-common.c.
304 * config/picochip/picochip.c (picochip_option_optimization_table,
305 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
306 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
307 * config/rs6000/rs6000.c: Include common/common-target.h.
308 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
309 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
310 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
311 rs6000_handle_option): Move to rs6000-common.c.
312 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
313 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
314 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
315 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
316 * config/s390/s390.c (processor_flags_table,
317 s390_option_optimization_table, s390_option_init_struct,
318 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
319 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
320 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
321 * config/s390/s390.h (processor_flags_table): Declare.
322 * config/score/score.c (score_option_optimization_table,
323 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
324 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
325 score_handle_option): Move to score-common.c.
326 * config/sh/sh.c (sh_option_optimization_table,
327 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
328 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
329 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
330 * config/sparc/sparc.c: Include common/common-target.h.
331 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
332 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
333 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
334 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
335 spu_option_init_struct): Move to spu-common.c.
336 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
337 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
338 * config/v850/v850.c (small_memory_physical_max,
339 v850_handle_memory_optionn v850_handle_option,
340 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
341 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
342 v850-common.c.
343 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to
344 vax-common.c.
345 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
346 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
347 Move to xtensa-common.c.
348 * cfglayout.c: Include common/common-target.h.
349 (fixup_reorder_chain): Use targetm_common.have_named_sections.
350 * cfgrtl.c: Include common/common-target.h.
351 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
352 targetm_common.have_named_sections.
353 * dbxout.c: Include common/common-target.h.
354 (dbxout_function_end): Use targetm_common.have_named_sections.
355 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
356 targetm_common.except_unwind_info.
357 * dwarf2out.c: Include common/common-target.h.
358 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
359 dwarf2out_begin_prologue, dwarf2out_frame_init,
360 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
361 targetm_common.except_unwind_info.
362 * except.c: Include common/common-target.h.
363 (init_eh, finish_eh_generation,
364 output_one_function_exception_table): Use
365 targetm_common.except_unwind_info.
366 (switch_to_exception_section): Use
367 targetm_common.have_named_sections.
368 * explow.c: Include common/common-target.h.
369 * expr.c: Include common/common-target.h.
370 (build_personality_function): Use
371 targetm_common.except_unwind_info.
372 * function.c: Include common/common-target.h.
373 (expand_function_end): Use targetm_common.except_unwind_info.
374 * haifa-sched.c: Include common/common-target.h.
375 (sched_create_recovery_edges): Use
376 targetm_common.have_named_sections.
377 * lto-opts.c: Include common/common-target.h instead of target.h.
378 (lto_reissue_options): Use targetm_common.handle_option.
379 * opts.c: Include common/common-target.h.
380 (target_handle_option): Use targetm_common.handle_option.
381 (init_options_struct): Update comment referring to
382 targetm.target_option.optimization. Use
383 targetm_common.default_target_flags,
384 targetm_common.unwind_tables_default and
385 targetm_common.option_init_struct.
386 (default_options_optimization): Use
387 targetm_common.option_optimization_table.
388 (finish_options): Use targetm_common.except_unwind_info,
389 targetm_common.unwind_tables_default,
390 targetm_common.have_named_sections and
391 targetm_common.supports_split_stack.
392 * toplev.c: Include common/common-target.h.
393 (process_options): Use targetm_common.have_named_sections.
394 * tree-tailcall.c: Include common/common-target.h.
395 (suitable_for_tail_call_opt_p): Use
396 targetm_common.except_unwind_info.
397 * tree.c: Include common/common-target.h.
398 (build_common_builtin_nodes): Use
399 targetm_common.except_unwind_info.
400 * varasm.c: Include common/common-target.h.
401 (resolve_unique_section, hot_function_section,
402 default_function_section): Use targetm_common.have_named_sections.
403
d26c7090
ER
4042011-06-14 Easwaran Raman <eraman@google.com>
405
406 PR rtl-optimization/44194
407 * dse.c: Include tree-flow.h
408 (insn_info): Add new field non_frame_wild_read.
409 (group_info): Add new fields escaped_n and escaped_p.
410 (kill_on_calls): New variable.
411 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
412 (dse_step0): Initialize kill_on_calls.
413 (can_escape): New function.
414 (set_usage_bits): Add additional parameter; record information
415 about escaped locations.
416 (record_store): Pass EXPR corresponding to MEM to
417 set_usage_bits.
418 (dse_step2_nospill): Set kill_on_calls based on
419 group->escaped_n and group->escaped_n.
420 (add_wild_read): Refactor into...
421 (reset_active_stores): ... New function, and
422 (free_read_records): ... New function.
423 (add_non_frame_wild_read): New function.
424 (scan_insn): Call add_non_frame_wild_read on non-const calls.
425 (scan_reads_nospill): Handle instructions with
426 non_frame_wild_read.
427 (dse_step5_nospill): Call scan_reads_nospill for instructions
428 marked as non_frame_wild_read.
429 (dse_step7): Free escaped_n, escaped_p and kill_on_calls
430 bitmaps.
431
c49a6962
JM
4322011-06-14 Joseph Myers <joseph@codesourcery.com>
433
434 * common/common-target-def.h, common/common-target.def,
435 common/common-target.h, common/config/default-common.c,
436 common/config/pa/pa-common.c: New files.
437 * Makefile.in (common_out_file, common_out_object_file,
438 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
439 (OBJS-libcommon-target): Include $(common_out_object_file).
440 (prefix.o): Update dependencies.
441 ($(common_out_object_file), common/common-target-hooks-def.h,
442 s-common-target-hooks-def-h): New.
443 (s-tm-texi): Also check timestamp on common-target.def.
444 (build/genhooks.o): Update dependencies.
445 * config.gcc (common_out_file, target_has_targetm_common): Define.
446 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
447 TARGET_ALWAYS_STRIP_DOTDOT.
448 * configure.ac (common_out_object_file): Define.
449 (common_out_file, common_out_object_file): Substitute.
450 (common): Create directory.
451 * configure: Regenerate.
452 * doc/tm.texi.in (targetm_common): Document.
453 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
454 * doc/tm.texi: Regenerate.
455 * genhooks.c (hook_array): Also include common/common-target.def.
456 * prefix.c (tm.h): Don't include.
457 (common/common-target.h): Include.
458 (ALWAYS_STRIP_DOTDOT): Don't define.
459 (update_path): Use targetm_common.always_strip_dotdot instead of
460 ALWAYS_STRIP_DOTDOT.
461 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
462
22c5fa5f
DL
4632011-06-14 David Li <davidxl@google.com>
464
465 * passes.c (execute_function_todo): Remove TODO_dump_func.
466 (execute_one_pass): Remove TODO_dump_func.
467 (execute_function_dump): New function.
468 * tree-vrp.c: Remove TODO_dump_func.
469 * regrename.c: Remove TODO_dump_func.
470 * fwprop.c: Remove TODO_dump_func.
471 * tree-into-ssa.c: Remove TODO_dump_func.
472 * tree-complex.c: Remove TODO_dump_func.
473 * tracer.c: Remove TODO_dump_func.
474 * tree-loop-distribution.c: Remove TODO_dump_func.
475 * postreload-gcse.c: Remove TODO_dump_func.
476 * postreload.c: Remove TODO_dump_func.
477 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
478 * tree-tailcall.c: Remove TODO_dump_func.
479 * ipa-cp.c: Remove TODO_dump_func.
480 * final.c: Remove TODO_dump_func.
481 * tree-emutls.c: Remove TODO_dump_func.
482 * omp-low.c: Remove TODO_dump_func.
483 * tree-ssa-dse.c: Remove TODO_dump_func.
484 * tree-ssa-uncprop.c: Remove TODO_dump_func.
485 * auto-inc-dec.c: Remove TODO_dump_func.
486 * reorg.c: Remove TODO_dump_func.
487 * tree-ssa-copyrename.c: Remove TODO_dump_func.
488 * tree-ssa-ccp.c: Remove TODO_dump_func.
489 * compare-elim.c: Remove TODO_dump_func.
490 * mode-switching.c: Remove TODO_dump_func.
491 * modulo-sched.c: Remove TODO_dump_func.
492 * tree-call-cdce.c: Remove TODO_dump_func.
493 * cse.c: Remove TODO_dump_func.
494 * web.c: Remove TODO_dump_func.
495 * tree-stdarg.c: Remove TODO_dump_func.
496 * lto-streamer-out.c: Remove TODO_dump_func.
497 * tree-ssa-math-opts.c: Remove TODO_dump_func.
498 * tree-ssa-dom.c: Remove TODO_dump_func.
499 * tree-nrv.c: Remove TODO_dump_func.
500 * loop-init.c: Remove TODO_dump_func.
501 * gimple-low.c: Remove TODO_dump_func.
502 * ipa-inline.c: Remove TODO_dump_func.
503 * tree-ssa-sink.c: Remove TODO_dump_func.
504 * jump.c: Remove TODO_dump_func.
505 * ifcvt.c: Remove TODO_dump_func.
506 * tree-ssa-loop.c: Remove TODO_dump_func.
507 * recog.c: Remove TODO_dump_func.
508 * dse.c: Remove TODO_dump_func.
509 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
510 * matrix-reorg.c: Remove TODO_dump_func.
511 * tree-eh.c: Remove TODO_dump_func.
512 * regmove.c: Remove TODO_dump_func.
513 * function.c: Remove TODO_dump_func.
514 * tree-vectorizer.c: Remove TODO_dump_func.
515 * ipa-split.c: Remove TODO_dump_func.
516 * gcse.c: Remove TODO_dump_func.
517 * tree-if-conv.c: Remove TODO_dump_func.
518 * init-regs.c: Remove TODO_dump_func.
519 * tree-ssa-phiopt.c: Remove TODO_dump_func.
520 * implicit-zee.c: Remove TODO_dump_func.
521 * lower-subreg.c: Remove TODO_dump_func.
522 * bt-load.c: Remove TODO_dump_func.
523 * tree-dfa.c: Remove TODO_dump_func.
524 * except.c: Remove TODO_dump_func.
525 * emit-rtl.c: Remove TODO_dump_func.
526 * store-motion.c: Remove TODO_dump_func.
527 * cfgexpand.c: Remove TODO_dump_func.
528 * tree-cfgcleanup.c: Remove TODO_dump_func.
529 * cfgcleanup.c: Remove TODO_dump_func.
530 * tree-ssa-pre.c: Remove TODO_dump_func.
531 * tree-sra.c: Remove TODO_dump_func.
532 * tree-mudflap.c: Remove TODO_dump_func.
533 * tree-ssa-copy.c: Remove TODO_dump_func.
534 * cfglayout.c: Remove TODO_dump_func.
535 * tree-ssa-forwprop.c: Remove TODO_dump_func.
536 * tree-ssa-dce.c: Remove TODO_dump_func.
537 * ira.c: Remove TODO_dump_func.
538 * tree-ssa.c: Remove TODO_dump_func.
539 * integrate.c: Remove TODO_dump_func.
540 * tree-optimize.c: Remove TODO_dump_func.
541 * tree-ssa-phiprop.c: Remove TODO_dump_func.
542 * tree-object-size.c: Remove TODO_dump_func.
543 * combine.c: Remove TODO_dump_func.
544 * bb-reorder.c: Remove TODO_dump_func.
545 * cprop.c: Remove TODO_dump_func.
546 * var-tracking.c: Remove TODO_dump_func.
547 * tree-profile.c: Remove TODO_dump_func.
548 * tree-vect-generic.c: Remove TODO_dump_func.
549 * reg-stack.c: Remove TODO_dump_func.
550 * sched-rgn.c: Remove TODO_dump_func.
551 * tree-ssa-structalias.c: Remove TODO_dump_func.
552 * tree-switch-conversion.c: Remove TODO_dump_func.
553 * tree-cfg.c: Remove TODO_dump_func.
554 * tree-ssa-reassoc.c: Remove TODO_dump_func.
555 * combine-stack-adj.c: Remove TODO_dump_func.
556 * dce.c: Remove TODO_dump_func.
557 * tree-ssanames.c: Remove TODO_dump_func.
558 * regcprop.c: Remove TODO_dump_func.
559
fa465762
L
5602011-06-14 H.J. Lu <hongjiu.lu@intel.com>
561
562 PR middle-end/47364
563 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
564 and properly handle result not in Pmode.
565
7d8d16c3
RM
5662011-06-14 Robert Millan <rmh@gnu.org>
567
568 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
569 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
570 `config/linux.h'.
571
572 * config/i386/kfreebsd-gnu64.h: New file.
573 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
574 with `i386/kfreebsd-gnu64.h'.
575
576 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
577 (GNU_USER_LINK_EMULATION64): New macros.
578 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
579 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
580 of hardcoding `elf_i386' and `elf_x86_64'.
581
0ccef3d2
NC
5822011-06-14 Nick Clifton <nickc@redhat.com>
583
584 PR target/49403
585 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
586
587 PR target/49402
588 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
589
8a76c4a0
JJ
5902011-06-14 Jakub Jelinek <jakub@redhat.com>
591
1ace6185
JJ
592 PR fortran/49103
593 * tree.h (DECL_NONSHAREABLE): Define.
594 (struct tree_decl_common): Change decl_common_unused to
595 decl_nonshareable_flag.
596 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
597 Ignore vars with DECL_NONSHAREABLE bit set.
598 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
599 on stores to automatic aggregate vars.
600
8a76c4a0
JJ
601 PR rtl-optimization/49390
602 Revert:
603 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
604
605 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
606 MEM_ALIAS_SET.
607
b4a9343c
ZD
6082011-06-14 Zdenek Dvorak <ook@ucw.cz>
609 Tom de Vries <tom@codesourcery.com>
610
611 PR target/45098
612 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
613 Document changed semantics.
614 (max_stmt_executions, max_stmt_executions_int): Declare.
615 * tree-data-ref.c (estimated_loop_iterations)
616 (estimated_loop_iterations_int): Move functions...
617 * tree-ssa-loop-niter.c (estimated_loop_iterations)
618 (estimated_loop_iterations_int): here.
619 (record_estimate): Change nb_iterations_upper_bound and
620 nb_iterations_estimate semantics.
621 (max_stmt_executions, max_stmt_executions_int): New function.
622 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
623 (max_stmt_executions_tree): this.
624 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
625 estimated_loop_iterations_tree.
626 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
627 max_stmt_executions_int instead of estimated_loop_iterations_int.
628 * predict.c (predict_loops): Idem.
629 * tree-parloops.c (parallelize_loops): Idem.
630 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
631 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
632 (init_omega_for_ddr_1): Idem.
633 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
634 (loop_prefetch_arrays): Idem
635 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
636 max_stmt_executions instead of estimated_loop_iterations.
637 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
638 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
639 instead of nb_iterations_upper_bound.
640
d2640c43
JH
6412011-06-13 Jan Hubicka <jh@suse.cz>
642
643 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
644
40873cdd
RH
6452011-06-14 Richard Henderson <rth@redhat.com>
646
647 PR debug/48459
648 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
649 (based_loc_descr): Assert it's true.
650 (compute_frame_pointer_to_fb_displacement): Set it, rather than
651 aborting immediately.
652
73e8cb24
SL
6532011-06-14 Sanjin Liu <scliu@faraday-tech.com>
654 Mingfeng Wu <mingfeng@faraday-tech.com>
655
656 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
657
f835f0a7
JH
6582011-06-13 Jan Hubicka <jh@suse.cz>
659
660 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
661
ee6f1177
JH
6622011-06-13 Jan Hubicka <jh@suse.cz>
663
664 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
665 similarly to DECL_COMDAT.
666 * cgraphunit.c (cgraph_analyze_function): Likewise.
667 * ipa.c (function_and_variable_visibility): Likewise.
668
618abf9a
JH
6692011-06-13 Jan Hubicka <jh@suse.cz>
670
671 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
672 BINFO_VIRTUALS when streaming for ltrans unit.
673
a45fe02f
DE
6742011-06-13 David Edelsohn <dje.gcc@gmail.com>
675
676 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
677 (movdi_internal64): Same.
678
6792011-06-13 Edmar Wienskoski <edmar@freescale.com>
680
7d8d16c3
RM
681 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
682 a set of similar patterns, where the MATCH_OPERAND for the function
683 argument is replaced with individual references to hardware registers.
a45fe02f
DE
684 (save_fpregs_<mode>): Ditto
685 (restore_gpregs_<mode>): Ditto
686 (return_and_restore_gpregs_<mode>): Ditto
687 (return_and_restore_fpregs_<mode>): Ditto
688 (return_and_restore_fpregs_aix_<mode>): Ditto
689
8775a18b
JH
6902011-06-13 Jan Hubicka <jh@suse.cz>
691
692 * ipa-utils.c (postorder_stack): New structure.
693 (ipa_reverse_postorder): Handle aliases.
694
6952011-06-13 Jan Hubicka <jh@suse.cz>
696
697 * ipa-inline.c (reset_edge_caches): Walk aliases.
698 (update_caller_keys): Do not test inlinability of aliases.
699 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
700 (do_estimate_growth): Fix typo.
701
6c69a029
JH
7022011-06-13 Jan Hubicka <jh@suse.cz>
703
704 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
705 (can_remove_node_now_p): ... here; handle same comdat groups.
706 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
707 (inline_call): Update use of can_remove_node_now_p.
708
10c63ba4 7092011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 710
10c63ba4 711 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
712 condition to disallow non-identical memory locations.
713 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
714 preference to bit manipulation instructions.
495f8c14 715
9aa3f5c5
JH
7162011-06-13 Jan Hubicka <jh@suse.cz>
717
718 * cgraph.c (cgraph_for_node_thunks_and_aliases,
719 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
720 (nonremovable_p): New function.
721 (cgraph_can_remove_if_no_direct_calls_p): New function.
722 (used_from_object_file_p): New functoin.
10c63ba4
EB
723 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
724 references from aliases.
9aa3f5c5
JH
725 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
726 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
727 (want_inline_function_called_once_p): Use it; accept aliases called
728 once, too.
9aa3f5c5
JH
729 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
730
30cecf17
RR
7312011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
732
733 PR target/48454
734 * config/arm/neon.md (vec_pack_trunc): Set the lengths
735 correctly for the case with Quad vectors.
736
29f85237
JJ
7372011-06-13 Jakub Jelinek <jakub@redhat.com>
738 Ira Rosen <ira.rosen@linaro.org>
739
740 PR tree-optimization/49352
741 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
742 all, make sure loop_use_stmt after the loop is a def stmt of a used
743 SSA_NAME that is the only one defined inside of the loop. Don't
744 check for COND_EXPR and GIMPLE_BINARY_RHS.
745 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
746 check_reduction is true.
747
c3e3f090
JH
7482011-06-11 Jan Hubicka <jh@suse.cz>
749
750 PR middle-end/49373
751 * ipa.c (cgraph_externally_visible_p): Check resolution info.
752
516e0768
JH
7532011-06-11 Jan Hubicka <jh@suse.cz>
754
755 PR middle-end/48836
756 * ipa-inline-transform.c: Include tree-pass.h
757 (inline_transform): Set TODO_update_ssa_only_virtuals.
758 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
759
903b0a8b
JH
7602011-06-11 Jan Hubicka <jh@suse.cz>
761
762 PR middle-end/49378
763 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
764 aliases and thunks.
765
44542f8e
IR
7662011-06-12 Ira Rosen <ira.rosen@linaro.org>
767
768 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
769 Take number of iterations to peel into account for equally frequent
770 misalignment values.
771
ea89702b
JH
7722011-06-11 Jan Hubicka <jh@suse.cz>
773
774 * lto-streamer-out.c (produce_symtab): Stream out the newly represented
775 aliases.
776
380ed5ed
JH
7772011-06-11 Jan Hubicka <jh@suse.cz>
778
10c63ba4
EB
779 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying
780 args.
380ed5ed
JH
781 (ipa_update_after_lto_read): Likewise.
782 (ipa_write_node_info): Do not sream call_with_var_arguments.
783 (ipa_read_node_info): Likewise.
784
00cfc363
JH
7852011-06-11 Jan Hubicka <jh@suse.cz>
786
787 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
788
39e2db00
JH
7892011-06-11 Jan Hubicka <jh@suse.cz>
790
791 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
792 (lto_symtab_resolve_can_prevail_p): Likewise.
793 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
794 * cgraph.c (same_body_aliases_done): New global var.
795 (cgraph_same_body_alias_1): Rename to ...
796 (cgraph_create_function_alias): ... this one; reorg to new
797 representation.
798 (cgraph_same_body_alias): Use cgraph_create_function_alias;
799 record references when asked to.
800 (cgraph_add_thunk): Fix formating.
801 (cgraph_get_node): Kill same body alias code.
802 (cgraph_node_for_asm): Likewise.
803 (cgraph_remove_same_body_alias): Remove.
804 (cgraph_remove_node): Kill same body alias code.
805 (cgraph_mark_address_taken_node): Mark also the aliased function
806 as having address taken.
807 (dump_cgraph_node): Dump same body aliases.
808 (cgraph_for_node_thunks_and_aliases): Update for new alias
809 representation.
810 (cgraph_for_node_and_aliases): Likewise.
811 * cgraph.h (same_body): Kll pointer.
812 (same_body_alias): Update comment.
813 (same_body_aliases_done): Declare.
814 (cgraph_remove_same_body_alias): Remove declaration.
815 (cgraph_create_function_alias): Declare.
816 (cgraph_process_same_body_aliases): Declare.
817 (cgraph_function_with_gimple_body_p): Check for alias.
818 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
819 (cgraph_alias_aliased_node): New function.
820 (cgraph_function_node): Update for new aliases.
821 (cgraph_function_or_thunk_node): Likewise.
822 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
823 (inline_call): Remove dead aliases.
10c63ba4
EB
824 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
825 name hack for same body aliases.
39e2db00
JH
826 (clone_of_p): Look through aliases.
827 (verify_cgraph_node): Verify aliases.
828 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
829 (cgraph_process_same_body_aliases): New function.
830 (process_function_and_variable_attributes): Disable weakref warning on
831 alias.
832 (cgraph_analyze_functions): Handle aliases.
833 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
834 (assemble_thunks): Rename to ...
835 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
836 (cgraph_expand_function): Remove alias output code.
837 (cgraph_output_in_order): Skip aliases.
838 (cgraph_preserve_function_body_p): Aliases don't need preserving.
839 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
840 (ipa_record_reference): Do not assert on alias references.
841 (ipa_ref_has_aliases_p): New function.
842 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
843 (ipa_ref_has_aliases_p): Declare.
844 * lto-cgraph.c (lto_output_node): Handle aliases.
845 (input_node): Likewise.
846 * lto-streamer-out.c (lto_output): Skip aliases.
847 (produce_symtab): Kill same_body_alias code.
848 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
849 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
850 * ipa-inline.c (update_caller_keys): Walk aliases.
851 (inline_small_functions): Fix thinko in previous patch.
852 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
853 (function_and_variable_visibility): Do not walk same body aliases.
854 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
855 (ipa_pta_execute): Use it.
856
9ee65b55
UB
8572011-06-11 Uros Bizjak <ubizjak@gmail.com>
858
859 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
860 (*vec_dupv2df): Rename from vec_dupv2df.
861 (vec_dupv2df): New expander.
862
8632011-06-11 Uros Bizjak <ubizjak@gmail.com>
864
865 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
866
8672011-06-11 Uros Bizjak <ubizjak@gmail.com>
868
869 * config/i386/i386.md: Use default value in "isa" attribute.
870 * config/i386/sse.md: Ditto.
871 * config/i386/mmx.md: Ditto.
872
ba68a139
WG
8732011-06-10 Wei Guozhi <carrot@google.com>
874
875 PR target/45335
876 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
877 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
878 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
879 related peephole2.
880 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
881 related peephole2.
882 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
883 (arm_legitimate_ldrd_p): New prototype.
884 (arm_output_ldrd): New prototype.
885 * config/arm/arm.c (arm_check_ldrd_operands): New function.
886 (arm_legitimate_ldrd_p): New function.
887 (arm_output_ldrd): New function.
888
deced1e2
XDL
8892011-06-10 David Li <davidxl@google.com>
890
891 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
892 * passes.c (passr_eq): New function.
893 (create_pass_tab): New function.
894 (pass_traverse): New function.
895 (dump_one_pass): New function.
896 (dump_pass_list): New function.
897 (dump_passes): New function.
898
71fb4f92
JH
8992011-06-10 Jan Hubicka <jh@suse.cz>
900
901 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
902 setting the nothrow flag.
903 * ipa-reference.c (propagate): Skip aliases.
904 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
905 (propagate_nothrow): Skip aliases; do not update cgraph.
906 (local_pure_const): Do not update cgraph.
907 * tree-profile.c (tree_profiling): Do fixup_cfg.
908
41817394
JH
9092011-06-10 Jan Hubicka <jh@suse.cz>
910
911 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
912 (cgraph_local_node_p): ... here; handle aliases.
913 (has_addr_references_p): Break out from ...;
914 (cgraph_remove_unreachable_nodes) ... here.
915
fb37c1de
JH
9162011-06-10 Jan Hubicka <jh@suse.cz>
917
918 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
919 * common.opt (flag_inline_functions_called_once): Do not
920 initialize to 1.
fb37c1de 921
0818c24c
JH
9222011-06-10 Jan Hubicka <jh@suse.cz>
923
924 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
925 (ipcp_initialize_node_lattices): Do not deal with aliases;
926 Do not try to propagate through thunks.
0818c24c
JH
927 (ipcp_change_tops_to_bottom): Do not deal with aliases.
928
c8246dbe
JH
9292011-06-10 Jan Hubicka <jh@suse.cz>
930
9ee65b55
UB
931 * ipa-prop.c (ipa_write_node_info): Stream jump functions
932 for indirect calls.
c8246dbe
JH
933 (ipa_read_node_info): Likewise.
934
d7e2a1c1
BS
9352011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
936
937 PR lto/49302
938 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
939 (build_and_insert_call): Likewise.
940 (build_and_insert_ref): New.
941 (gimple_expand_builtin_pow): Minor cleanup.
942 (gimple_expand_builtin_cabs): New.
943 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 944
749f25d8
JH
9452011-06-10 Jan Hubicka <jh@suse.cz>
946
947 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
948 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
949 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
950 (ipcp_propagate_stage): Skip aliases when propagating.
951 (ipcp_need_redirect_p): Skip aliases.
952 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
953 collect_callers_of_node.
954 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
955 for aliases.
956 (ipa_compute_jump_functions): Look through aliases.
957
8340fbd7
RO
9582011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
959
960 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
961
9aaa7e47
HPN
9622011-06-10 Hans-Peter Nilsson <hp@axis.com>
963
964 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
965 Adjust comments.
966 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
967
f1724940
JH
9682011-06-10 Jan Hubicka <jh@suse.cz>
969
970 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
971 Update call of gimple_get_virt_method_for_binfo.
972 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
973 refuse_thunks parameter.
974 (gimple_fold_call): Update.
975 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
976
a6f834c5
JH
9772011-06-10 Jan Hubicka <jh@suse.cz>
978
979 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
980 (not_all_callers_have_enough_arguments_p): ... this one; turn into
981 worker for cgraph_for_node_and_aliases.
982 (convert_callers_for_node): Break out from ...
983 (convert_callers): ... here.
984 (modify_function): Use collect_callers_of_node.
985 (ipa_early_sra): Use cgraph_for_node_and_aliases.
986
7871eee3
RG
9872011-06-10 Richard Guenther <rguenther@suse.de>
988
989 PR tree-optimization/49361
990 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
991 when not already in gimple form.
992
dae957ae
RG
9932011-06-10 Richard Guenther <rguenther@suse.de>
994
995 PR bootstrap/49344
996 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
997 FOR_EACH_PHI_OR_STMT_USE.
998
a5b1779f
JH
9992011-06-10 Jan Hubicka <jh@suse.cz>
1000
1001 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
1002 (clone_inlined_nodes): ... here.
1003 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
1004 to real destination prior inlining.
1005 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
1006 can_early_inline_edge_p, want_early_inline_function_p,
1007 want_early_inline_function_p, want_inline_small_function_p,
1008 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
1009 edge_badness, update_all_callee_keys, lookup_recursive_calls,
1010 add_new_edges_to_heap, inline_small_functions, flatten_function,
1011 inline_always_inline_functions, early_inline_small_functions): Use
1012 cgraph_function_or_thunk_node.
1013 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
1014 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
1015 (do_estimate_edge_growth_1): Break out from ...
1016 (do_estimate_growth) ... here; walk aliases.
1017 (inline_generate_summary): Skip aliases.
1018
c1ae3ca5
RG
10192011-06-10 Richard Guenther <rguenther@suse.de>
1020
9ee65b55
UB
1021 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
1022 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 1023
b504a918
PC
10242011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
1025
1026 * tree.h (error_operand_p): Add.
1027 * dbxout.c (dbxout_type_fields): Use the latter.
1028 * c-decl.c (add_stmt): Likewise.
1029 * gimplify.c (omp_add_variable, omp_notice_variable,
1030 gimplify_scan_omp_clauses): Likewise.
1031
3f5ea9dc 10322011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 1033
3f5ea9dc
GJL
1034 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
1035 when a value is actually passed in regs.
1036
b11b0904 10372011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 1038 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
1039
1040 * doc/invoke.texi (SPARC options): Add -mflat.
1041 * config/sparc/sparc.opt: Likewise.
1042 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
1043 (sparc_flat_expand_prologue): Declare.
1044 (sparc_flat_expand_epilogue): Likewise.
1045 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
1046 (CPP_ENDIAN_SPEC): Replace with...
1047 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
1048 (CPP_SPEC): Adjust to above change.
1049 (EXTRA_SPECS): Likewise.
1050 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
1051 (INCOMING_REGNO): Likewise.
1052 (OUTGOING_REGNO): Likewise.
1053 (LOCAL_REGNO): Likewise.
1054 (SETUP_FRAME_ADDRESSES): Likewise.
1055 (FIXED_REGISTERS): Set 0 for %fp.
1056 (CALL_USED_REGISTERS): Likewise.
1057 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
1058 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
1059 (RETURN_ADDR_REGNUM): Define.
1060 (RETURN_ADDR_RTX): Use it.
1061 (INCOMING_RETURN_ADDR_REGNUM): Define.
1062 (INCOMING_RETURN_ADDR_RTX): Use it.
1063 (DWARF_FRAME_RETURN_COLUMN): Likewise.
1064 (EH_RETURN_REGNUM): Define.
1065 (EH_RETURN_STACKADJ_RTX): Use it.
1066 (EH_RETURN_HANDLER_RTX): Delete.
1067 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
1068 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
1069 Delete.
1070 (struct machine_function): Add frame_size, apparent_frame_size,
1071 frame_base_reg, frame_base_offset, n_global_fp_regs and
1072 save_local_in_regs_p fields.
1073 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
1074 sparc_frame_base_offset, sparc_n_global_fp_regs,
1075 sparc_save_local_in_regs_p): New macros.
1076 (sparc_option_override): Error out if -fcall-saved-REG is specified
1077 for Out registers.
1078 (eligible_for_restore_insn): Fix formatting.
1079 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
1080 (eligible_for_sibcall_delay): Likewise.
1081 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
1082 (sparc_legitimate_address_p): Adjust to above change.
1083 (save_global_or_fp_reg_p): New predicate.
1084 (return_addr_reg_needed_p): Likewise.
1085 (save_local_or_in_reg_p): Likewise.
1086 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
1087 (SORR_SAVE, SORR_RESTORE): Delete.
1088 (sorr_pred_t): New typedef.
1089 (sorr_act_t): New enum.
1090 (save_or_restore_regs): Rename to...
1091 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
1092 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
1093 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
1094 mechanism. Add CFI information for double-word saves in 32-bit mode.
1095 (emit_adjust_base_to_offset): New function extracted from...
1096 (emit_save_or_restore_regs): ...this. Rename the rest to...
1097 (emit_save_or_restore_regs_global_fp_regs): ...this.
1098 (emit_save_or_restore_regs_local_in_regs): New function.
1099 (gen_create_flat_frame_[123]): New functions.
1100 (sparc_expand_prologue): Use SIZE local variable. Adjust.
1101 (sparc_flat_expand_prologue): New function.
1102 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
1103 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
1104 (sparc_flat_expand_epilogue): New function.
1105 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
1106 (output_return): Likewise.
1107 (output_sibcall): Likewise.
1108 (sparc_output_mi_thunk): Likewise.
1109 (sparc_frame_pointer_required): Likewise.
1110 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
1111 function optimization.
1112 * config/sparc/sparc.md (flat): New attribute.
1113 (prologue): Add TARGET_FLAT handling.
1114 (save_register_window): Disable if TARGET_FLAT.
1115 (create_flat_frame_[123]): New patterns.
1116 (epilogue): Add TARGET_FLAT handling.
1117 (sibcall_epilogue): Likewise.
1118 (eh_return): New expander.
1119 (eh_return_internal): New insn and splitter.
1120 (return_internal): Add TARGET_FLAT handling.
1121 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
1122 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
1123 (nonlocal_goto): Add TARGET_FLAT handling.
1124 * config/sparc/t-elf: Add -mflat multilib.
1125 * config/sparc/t-leon: Likewise.
1126
fede8efa
JH
11272011-06-10 Jan Hubicka <jh@suse.cz>
1128
1129 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
1130 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
1131 (self_recursive_p): Use cgraph_function_node.
1132 (propagate_pure_const): Likewise.
1133 (propagate_nothrow): Likewise.
1134 * ipa-reference.c (ipa_reference_get_not_read_global): Use
1135 cgraph_function_node.
1136 (propagate_bits): Likewise.
1137 (propagate): Likewise.
1138
0127c76f
RR
11392011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1140 Richard Earnshaw <rearnsha@arm.com>
1141
9ee65b55 1142 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
1143 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
1144 (*thumb2_movdi_vfp): Delete.
1145 (*arm_movdi_vfp_cortexa8): Delete.
1146 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
1147 (*movdi_vfp_cortexa8): Likewise.
1148
f93fe5a0
RG
11492011-06-10 Richard Guenther <rguenther@suse.de>
1150
1151 * stor-layout.c (initialize_sizetypes): Give names to all
1152 sizetype kinds.
1153
f2164f87
IR
11542011-06-10 Ira Rosen <ira.rosen@linaro.org>
1155
1156 PR tree-optimization/49318
1157 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
1158 irrelevant pattern statements.
1159
3f91c962
HPN
11602011-06-10 Hans-Peter Nilsson <hp@axis.com>
1161
3d223145
HPN
1162 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
1163
3f91c962
HPN
1164 PR bootstrap/49354
1165 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
1166 to last assignment.
1167
b125ad45
JH
11682011-06-09 Jan Hubicka <jh@suse.cz>
1169
1170 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
1171 do not recompute reachable flag.
1172 (cgraph_finalize_function, cgraph_analyze_functions): Set
1173 redefined_extern_inline here.
1174
be330ed4
JH
11752011-06-09 Jan Hubicka <jh@suse.cz>
1176
1177 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
1178 (cgraph_only_called_directly_p): ... this one; bring offline.
1179 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1180 varpool_used_from_object_file_p): Drop names from the declaratoin.
1181 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
1182 collect_callers_of_node): New.
1183 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
1184 (cgraph_edge_recursive_p): Use cgraph_function_node.
1185 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
1186 (cgraph_node_cannot_be_local_p_1): Break out from ...
1187 (cgraph_node_can_be_local_p): ... here; walk aliases.
1188 (cgraph_for_node_thunks_and_aliases): New function.
1189 (cgraph_for_node_and_aliases): New function.
1190 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
1191 (cgraph_make_node_local) ... here; use
1192 cgraph_for_node_thunks_and_aliases.
be330ed4 1193 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
1194 (cgraph_set_nothrow_flag) ... here;
1195 use cgraph_for_node_thunks_and_aliases.
be330ed4 1196 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
1197 (cgraph_set_const_flag) ... here;
1198 use cgraph_for_node_thunks_and_aliases.
be330ed4 1199 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
1200 (cgraph_set_pure_flag) ... here;
1201 use cgraph_for_node_thunks_and_aliases.
be330ed4 1202 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
1203 (cgraph_propagate_frequency) ... here; use
1204 cgraph_for_node_thunks_and_aliases.
be330ed4 1205 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
1206 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
1207 New functions.
be330ed4
JH
1208 (collect_callers_of_node_1, collect_callers_of_node): New functions.
1209
2ea91d6b
HPN
12102011-06-10 Hans-Peter Nilsson <hp@axis.com>
1211
1212 PR rtl-optimization/49154
1213 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
1214 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
1215 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
1216 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
1217 * config/cris/cris.h (cris_register_move_cost): Remove
1218 !TARGET_V32 code. Tweak comments.
1219
9cf4fb5a
JH
12202011-06-09 Jan Hubicka <jh@suse.cz>
1221
1222 * cgraphbuild.c (record_eh_tables): Mark personality function as having
1223 address taken.
1224
6049a4c8
HPN
12252011-06-10 Hans-Peter Nilsson <hp@axis.com>
1226
c577822e 1227 PR rtl-optimization/49154
9ee65b55
UB
1228 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
1229 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 1230
54e1e4f7 1231 PR rtl-optimization/49154
6049a4c8
HPN
1232 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
1233 register classes.
1234 * doc/tm.texi: Regenerate.
1235
3be68b64
KK
12362011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
1237
1238 PR target/49307
1239 * config/sh/sh.md (UNSPEC_CHKADD): New.
1240 (chk_guard_add): New define_insn_and_split.
1241 (symGOT_load): Use chk_guard_add instead of blockage.
1242
bf806a90
KT
12432011-06-09 Kai Tietz <ktietz@redhat.com>
1244
1245 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
1246
d5a9738b
EB
12472011-06-09 Eric Botcazou <ebotcazou@adacore.com>
1248
1249 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
1250
527e82c2
WG
12512011-06-09 Wei Guozhi <carrot@google.com>
1252
1253 PR target/46975
1254 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
1255 (peephole2 for conditional move): Generate 16 bit instructions.
1256
b8bc3a43
UB
12572011-06-09 Uros Bizjak <ubizjak@gmail.com>
1258
1259 * config/i386/i386.md (*movdi_internal_rex64): Merge
1260 alternatives 6 and 8.
1261
4745da6e
DL
12622011-06-09 David Li <davidxl@google.com>
1263
1264 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
1265 * passes.c (passr_eq): New function.
1266 (create_pass_tab): New function.
1267 (pass_traverse): New function.
1268 (dump_one_pass): New function.
1269 (dump_pass_list): New function.
1270 (dump_passes): New function.
1271
bdf67bcb
DL
12722011-06-09 David Li <davidxl@google.com>
1273
1274 * tree-complex.c (tree_lower_complex): Gate cleanup.
1275 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
1276 (execute_optimize_stdarg): Ditto.
1277 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
1278 (execute_cleanup_eh_1): Ditto.
1279 (execute_cleanup_eh): Ditto.
1280 * gcse.c (gate_rtl_pre): Ditto.
1281 (execute_rtl_pre): Ditto.
1282 * except.c (finish_eh_generation): Ditto.
1283 (convert_to_eh_region_ranges): Ditto.
1284 * cprop.c (one_cprop_pass): Ditto.
1285
547fdef8
BS
12862011-06-09 Bernd Schmidt <bernds@codesourcery.com>
1287
1288 PR target/48673
1289 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
1290 in all basic blocks.
1291
10e48e39
RO
12922011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1293
1294 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
1295 (HAVE_ENABLE_EXECUTE_STACK): Define.
1296 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
1297 (HAVE_ENABLE_EXECUTE_STACK): Define.
1298 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1299 (HAVE_ENABLE_EXECUTE_STACK): Define.
1300 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
1301 (ENABLE_EXECUTE_STACK): Remove.
1302 (HAVE_ENABLE_EXECUTE_STACK): Define.
1303 [IN_LIBGCC2]: Don't include <windows.h>.
1304 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1305 (HAVE_ENABLE_EXECUTE_STACK): Define.
1306 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
1307 (HAVE_ENABLE_EXECUTE_STACK): Define.
1308 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
1309 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
1310 (HAVE_ENABLE_EXECUTE_STACK): Define.
1311 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
1312 (HAVE_ENABLE_EXECUTE_STACK): Define.
1313 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
1314 (HAVE_ENABLE_EXECUTE_STACK): Define.
1315 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1316 (HAVE_ENABLE_EXECUTE_STACK): Define.
1317 * config/alpha/alpha.c (alpha_trampoline_init): Test
1318 HAVE_ENABLE_EXECUTE_STACK.
1319 * config/i386/i386.c (ix86_trampoline_init): Likewise.
1320 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1321 (sparc64_initialize_trampoline): Likewise.
1322 * libgcc2.c [L_enable_execute_stack]: Remove.
1323 * system.h (ENABLE_EXECUTE_STACK): Poison.
1324 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
1325 * doc/tm.texi: Regenerate.
1326 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
1327
8ced31fe
JJ
13282011-06-09 Jakub Jelinek <jakub@redhat.com>
1329
1330 PR middle-end/49308
1331 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
1332 variable. After resetting and rescanning insn continue with previous
1333 statement.
1334
ee610fcd
RO
13352011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1336
1337 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
1338 (gcc_cv_ld_hidden): Likewise.
1339 * configure: Regenerate.
1340 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
1341 (ix86_stack_protect_fail): Mark unused.
1342 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
1343 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
1344 [TARGET_MACHO]: Don't define.
1345 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
1346 (TARGET_STACK_PROTECT_FAIL): Likewise.
1347 (rs6000_stack_protect_fail): Mark unused.
1348 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 1349 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 1350
8f2e22ff
AK
13512011-06-08 Andi Kleen <ak@linux.intel.com>
1352
1353 * varasm.c (get_section): Print location of other conflict
1354 for section conflicts.
1355
815cecbe
AK
13562011-06-08 Andi Kleen <ak@linux.intel.com>
1357
1358 * config/i386/driver-i386.c (host_detect_local_cpu):
1359 Add model 0x2d Intel CPU.
1360
1460ec5c
AK
13612011-06-08 Andi Kleen <ak@linux.intel.com>
1362
1363 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
1364 (globalize_reg): Add decl parameter. Compute location. Pass location
1365 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
1366 * rtl.h (globalize_reg): Update prototype.
1367 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
1368
df17530a
MX
13692011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
1370
1371 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
1372
409fed48
KK
13732011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1374
1375 PR target/49305
1376 * config/sh/predicates.md (general_movsrc_operand): Check
1377 mode for memory with indexed address for QI and HImode.
1378 (general_movdst_operand): Likewise.
1379
87c16a45
NP
13802011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
1381
b8bc3a43 1382 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 1383
49931fcb
AO
13842011-06-08 Alexandre Oliva <aoliva@redhat.com>
1385
1386 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
1387 (num_ssa_operands): Likewise.
1388 (op_iter_init_phiuse): Forward-declare.
1389 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
1390
29494d1f
NC
13912011-06-08 Nick Clifton <nickc@redhat.com>
1392
1393 * doc/invoke.texi (ARM Options): Update description of
1394 -mthumb-interwork.
1395
4ffae7ff
L
13962011-06-08 H.J. Lu <hongjiu.lu@intel.com>
1397
1398 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1399 unknown Intel family 0x6 CPUs.
1400
d9c77712
MJ
14012011-06-08 Martin Jambor <mjambor@suse.cz>
1402
1403 * tree-sra.c (mark_rw_status): Removed.
1404 (analyze_access_subtree): New parameter parent instead of
1405 mark_read and mark_write, propagate from that.
1406
b1def36c
JB
14072011-06-08 Julian Brown <julian@codesourcery.com>
1408
1409 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
1410 for double-precision helper functions in hard-float mode if only
1411 single-precision arithmetic is supported in hardware.
1412
6c8e9fc9
AM
14132011-06-08 Alexander Monakov <amonakov@ispras.ru>
1414
1415 PR rtl-optimization/49303
1416 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1417 code_motion_path_driver returned 0 or 1.
1418 (sel_region_finish): Clear h_d_i_d.
1419
c2bbcb0d
KK
14202011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1421
1422 * config/sh/sh.c (prepare_move_operands): Set pic register
1423 appropriately for global and local dynamic tls models even
1424 if flag_pic is unset.
1425
6976ae51
JM
14262011-06-07 Jason Merrill <jason@redhat.com>
1427
1428 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
1429
bb5b1f5e
XDL
14302011-06-07 Xinliang David Li <davidxl@google.com>
1431 * passes.c (enable_disable_pass): Handle assembler name.
1432 (is_pass_explicitly_enabled_or_disabled): Ditto.
1433
91ffe356
RO
14342011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1435
1436 PR tree-optimization/48497
1437 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
1438
06bc3ec7
BS
14392011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1440
1441 PR tree-optimization/46728
1442 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
1443 to use gimple_val_nonnegative_real_p.
1444 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
1445 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 1446
c074d740
L
14472011-06-07 H.J. Lu <hongjiu.lu@intel.com>
1448
1449 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
1450
8973b112
SG
14512011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
1452
1453 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
1454 constant vectors.
1455
67b88453
RG
14562011-06-07 Richard Guenther <rguenther@suse.de>
1457
1458 * stor-layout.c (initialize_sizetypes): Initialize all
1459 sizetypes based on target definitions.
1460 (set_sizetype): Remove.
1461 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
1462 * tree.h (set_sizetype): Remove.
1463
1dcad079
NC
14642011-06-07 Nick Clifton <nickc@redhat.com>
1465
1466 * config.gcc: Unify V850 architecture options and add support for
1467 newer V850 architectures.
1468 * config/v850/t-v850e: Delete.
1469
009db074
RG
14702011-06-07 Richard Guenther <rguenther@suse.de>
1471
1472 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
1473 Call set_sizetype from here.
1474
f373314f
AS
14752011-06-07 Andrew Stubbs <ams@codesourcery.com>
1476
1477 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
1478 (*maddhisi4tb, *maddhisi4tt): New define_insns.
1479
c536876e
AS
14802011-06-07 Bernd Schmidt <bernds@codesourcery.com>
1481 Andrew Stubbs <ams@codesourcery.com>
1482
1483 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
1484 multiplies.
1485 * doc/md.texi (Canonicalization of Instructions): Document widening
1486 multiply canonicalization.
1487
308dc890
JJ
14882011-06-07 Jakub Jelinek <jakub@redhat.com>
1489
1490 PR gcov-profile/49299
b8bc3a43 1491 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 1492
383d9c83
IR
14932011-06-07 Ira Rosen <ira.rosen@linaro.org>
1494
1495 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
1496 a pointer.
1497 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
1498 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
1499 vect_recog_pow_pattern): Likewise.
1500 (vect_pattern_recog_1): Remove declaration.
1501 (widened_name_p): Remove declaration. Add new argument to specify
1502 whether to check that both types are either signed or unsigned.
1503 (vect_recog_widen_mult_pattern): Update documentation. Handle
1504 unsigned patterns and multiplication by constants.
1505 (vect_pattern_recog_1): Update vect_recog_func references. Use
1506 statement information from the statement returned from pattern
1507 detection functions.
1508 (vect_pattern_recog): Update vect_recog_func reference.
1509 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
1510 multiplication by a constant use the type of the other operand.
1511
4de4b0f2
RS
15122011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
1513
1514 PR rtl-optimization/49145
1515 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
1516
a9d24544
JJ
15172011-06-06 Jakub Jelinek <jakub@redhat.com>
1518
99a5e049
JJ
1519 PR debug/49262
1520 * dwarf2out.c (native_encode_initializer): Decrement count in each
1521 iteration.
1522
04902d4c
JJ
1523 PR debug/49294
1524 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
1525 non-MODE_INT modes.
1526
a9d24544
JJ
1527 PR c++/49264
1528 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
1529 if stmt folded into nothing.
b8bc3a43
UB
1530 * tree-inline.c (fold_marked_statements): If a builtin at the end of
1531 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
1532 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
1533 to be NULL. Don't compute count and frequency if new_call is NULL.
1534
47c79d56
DN
15352011-06-04 Diego Novillo <dnovillo@google.com>
1536
1537 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
1538 (cgraph.o): Likewise.
1539 (cgraphunit.o): Likewise.
1540 * cgraphunit.c: Include lto-streamer.h
1541 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
1542 if LTO is enabled.
1543 * lto-streamer-in.c (unpack_value_fields): Call
1544 streamer_hooks.unpack_value_fields if set.
1545 (lto_materialize_tree): For unhandled nodes, first try to
1546 call lto_streamer_hooks.alloc_tree, if it exists.
1547 (lto_input_ts_decl_common_tree_pointers): Move reading of
1548 DECL_INITIAL to lto_streamer_read_tree.
1549 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
1550 (lto_streamer_read_tree): New.
1551 (lto_reader_init): Rename from lto_init_reader.
1552 Move initialization code to lto/lto.c.
1553 * lto-streamer-out.c (pack_value_fields): Call
1554 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
1555 (lto_output_tree_ref): For tree nodes that are not normally indexable,
1556 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 1557 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
1558 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
1559 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
1560 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
1561 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
1562 (lto_streamer_write_tree): New.
1563 (lto_output): Call lto_streamer_init directly.
1564 (lto_writer_init): Remove.
1565 * lto-streamer.c (streamer_hooks): New.
1566 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
1567 instead of lto_preload_common_nodes.
1568 (lto_is_streamable): Move from lto-streamer.h
1569 (lto_streamer_hooks_init): New.
1570 (streamer_hooks): New.
1571 (streamer_hooks_init): New.
1572 * lto-streamer.h (struct output_block): Forward declare.
1573 (struct lto_input_block): Likewise.
1574 (struct data_in): Likewise.
1575 (struct bitpack_d): Likewise.
1576 (struct streamer_hooks): Declare.
1577 (streamer_hooks): Declare.
1578 (lto_streamer_hooks_init): Declare.
1579 (lto_streamer_write_tree): Declare.
1580 (lto_streamer_read_tree): Declare.
1581 (streamer_hooks_init): Declare.
1582 (lto_is_streamable): Move to lto-streamer.c
1583
22afe143
AK
15842011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1585
1586 * longlong.h (smul_ppmm): The resulting register pair contains the
1587 higher order word first.
1588
3906ea1b
BS
15892011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1590
1591 PR tree-optimization/46728
1592 * builtins.c (powi_table): Remove.
1593 (powi_lookup_cost): Remove.
1594 (powi_cost): Remove.
1595 (expand_powi_1): Remove.
1596 (expand_powi): Remove.
1597 (expand_builtin_pow_root): Remove.
1598 (expand_builtin_pow): Remove.
1599 (expand_builtin_powi): Eliminate handling of constant exponent.
1600 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 1601
3598cabd
AO
16022011-06-06 Alexandre Oliva <aoliva@redhat.com>
1603
1604 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
1605
a7a110bb
AO
16062011-06-06 Alexandre Oliva <aoliva@redhat.com>
1607
1608 * dce.c (reset_unmarked_insns_debug_uses): New.
1609 (delete_unmarked_insns): Skip debug insns.
1610 (prescan_insns_for_dce): Likewise.
1611 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
1612 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
1613 active reg can be found.
1614 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
1615 (convert_regs_1): Use it.
1616
6d8402ac
AO
16172011-06-06 Alexandre Oliva <aoliva@redhat.com>
1618
1619 * tree-pretty-print.c (dump_function_header): Add flags.
1620 Don't dump decl_uid with nouid.
1621 * tree-pretty-print.h (dump_function_header): Adjust.
1622 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
1623 * passes.c (pass_init_dump_file): Pass dump_flags on.
1624 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
1625
f75e1f1e
AO
16262011-06-06 Alexandre Oliva <aoliva@redhat.com>
1627
1628 PR bootstrap/49270
1629 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
1630
275311c4
MP
16312011-06-06 Mikael Pettersson <mikpe@it.uu.se>
1632
1633 PR tree-optimization/49243
1634 * calls.c (setjmp_call_p): Also check if fndecl has the
1635 returns_twice attribute.
1636
aa4203e7
RO
16372011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1638
1639 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
1640 -ffast-math etc.
1641
48f9d59a
RH
16422011-06-06 Richard Henderson <rth@redhat.com>
1643 Georg-Johann Lay <avr@gjlay.de>
1644
1645 PR target/42210
1646 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
1647 New predicates.
1648 * config/avr/avr.md ("insv"): New insn expander.
1649 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
1650 "*insv.not.io", "*insv.reg"): New insns.
1651
11494830
HPN
16522011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
1653
1654 PR target/49285
b8bc3a43
UB
1655 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
1656 to nonimmediate_operand from memory_operand for the operand that is to
1657 be forced to memory by the expander. Lose the constraints.
11494830 1658
679e70df
EB
16592011-06-05 Eric Botcazou <ebotcazou@adacore.com>
1660
1661 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
1662 EH return when delayed branches are disabled.
1663
4d3d7f15
UB
16642011-06-05 Uros Bizjak <ubizjak@gmail.com>
1665
1666 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
1667 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
1668 calculation.
1669 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
1670 Simplify MODE_V1DF and MODE_V2SF handling.
1671 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
1672 Simplify MODE_SF handling.
1673
a45c0557
JH
16742011-06-04 Jan Hubicka <jh@suse.cz>
1675
1676 PR tree-optimization/48893
1677 PR tree-optimization/49091
1678 PR tree-optimization/49179
1679 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
1680 Bounds check.
1681
26740835
JH
16822011-06-04 Jan Hubicka <jh@suse.cz>
1683
1684 PR lto/48954
b8bc3a43
UB
1685 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
1686 bitmaps.
26740835 1687
014ab419
JW
16882011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
1689
1690 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
1691
407bcba7
JJ
16922011-06-04 Jakub Jelinek <jakub@redhat.com>
1693
1694 PR target/49281
1695 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
1696 to be strictly smaller than 1 << shiftcount.
1697
e3195c52
JH
16982011-06-04 Jan Hubicka <jh@suse.cz>
1699
1700 PR tree-optimize/48929
1701 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
1702 of empty predicate.
1703
047d33a0
AO
17042011-06-04 Alexandre Oliva <aoliva@redhat.com>
1705
1706 PR debug/48333
1707 * calls.c (emit_call_1): Prefer the __builtin declaration of
1708 builtin functions.
1709
dc587809
DN
17102011-06-03 Diego Novillo <dnovillo@google.com>
1711
1712 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
1713 (lto_input_tree_pointers): Likewise.
1714 * lto-streamer-out.c (pack_value_fields): Likewise.
1715 (lto_output_tree_pointers): Likewise.
1716 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
1717 and OPTIMIZATION_NODE.
1718
58cd1d70
RO
17192011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1720
1721 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
1722 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
1723 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
1724 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
1725 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
1726 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
1727 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
1728 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
1729 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
1730 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
1731 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
1732 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
1733 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
1734 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
1735 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
1736 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
1737 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
1738 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
1739 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
1740 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
1741 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
1742 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
1743 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
1744 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
1745 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
1746 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
1747 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
1748 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
1749 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
1750 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
1751 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
1752 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
1753 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
1754 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
1755 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
1756 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
1757 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
1758 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
1759 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
1760 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
1761 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
1762 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
1763 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
1764 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
1765 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
1766 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
1767 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
1768 * system.h (MD_UNWIND_SUPPORT): Poison.
1769 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
1770 * doc/tm.texi: Regenerate.
1771 * unwind-dw2.c: Include md-unwind-support.h instead of
1772 MD_UNWIND_SUPPORT.
1773 * config/ia64/unwind-ia64.c: Likewise.
1774 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
1775
10c63ba4 17762011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
1777
1778 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
1779
1b7a0148
RH
17802011-06-03 Richard Henderson <rth@redhat.com>
1781 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1782
1783 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
1784 (sigill_hdlr): Correct insn, insn size.
1785 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
1786
737346fa
RO
17872011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1788
1789 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
1790 t-slibgcc-dummy.
1791 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
1792 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
1793 * config/mips/t-iris: Remove.
1794 * config/mips/t-irix6: New file.
1795 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
1796
c192cee6
RO
17972011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1798
1799 * Makefile.in (LIB2ADDEHDEP): Remove.
1800 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
1801 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
1802 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
1803 * config/t-darwin (LIB2ADDEHDEP): Remove.
1804 * config/t-freebsd (LIB2ADDEHDEP): Remove.
1805 * config/t-linux (LIB2ADDEHDEP): Remove.
1806
d5828cc7
DN
18072011-06-03 Diego Novillo <dnovillo@google.com>
1808
1809 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
1810 (lto_register_var_decl_in_symtab): Likewise.
1811 (lto_register_function_decl_in_symtab): Likewise.
1812 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 1813 logic to uniquify_nodes.
d5828cc7 1814
ee33b5f0
RO
18152011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1816
1817 * config/alpha/t-osf5: Remove.
1818 * config/alpha/t-osf-pthread: Remove.
1819 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
1820 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
1821
16868d84
JB
18222011-06-03 Julian Brown <julian@codesourcery.com>
1823
1824 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
1825 (strongarm1110): Use strongarm tuning.
4d3d7f15 1826 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
1827 * config/arm/arm.c (arm_strongarm_tune): New.
1828 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
1829 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
1830 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
1831 setting, using previous defaults or 1 for Cortex-A5.
1832 (arm_option_override): Set max_insns_skipped from current tuning.
1833
1cec1285
NS
18342011-06-03 Nathan Sidwell <nathan@codesourcery.com>
1835
1836 * doc/install.texi (Options specification): Document --with-specs.
1837
eed55426
RR
18382011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1839
1840 * config/arm/neon.md (orndi3_neon): Actually split it.
1841
d5b6cc25
AO
18422011-06-02 Alexandre Oliva <aoliva@redhat.com>
1843
1844 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
1845 * var-tracking.c (reverse_op): Limite recurse depth to 5.
1846
2ba42841
AO
18472011-06-02 Alexandre Oliva <aoliva@redhat.com>
1848
1849 PR debug/47590
1850 * target.def (delay_sched2, delay_vartrack): New.
1851 * doc/tm.texi.in: Update.
1852 * doc/tm.texi: Rebuild.
1853 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
1854 * var-tracking.c (gate_handle_var_tracking): Likewise.
1855 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
1856 (bfin_flag_var_tracking): Drop.
1857 (output_file_start): Don't save and override flag_var_tracking.
1858 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
1859 (bfin_reorg): Test original variables.
1860 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
1861 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
1862 (ia64_flag_var_tracking): Drop.
1863 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
1864 (ia64_file_start): Don't save and override flag_var_tracking.
1865 (ia64_override_options_after_change): Ditto
1866 flag_schedule_insns_after_reload.
1867 (ia64_reorg): Test original variables.
1868 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
1869 (picochip_flag_var_tracking): Drop.
1870 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
1871 (picochip_option_override): Don't save and override
1872 flag_schedule_insns_after_reload.
1873 (picochip_asm_file_start): Ditto flag_var_tracking.
1874 (picochip_reorg): Test original variables.
1875 * config/spu/spu.c (spu_flag_var_tracking): Drop.
1876 (TARGET_DELAY_VARTRACK): Define.
1877 (spu_var_tracking): New.
1878 (spu_machine_dependent_reorg): Call it.
1879 (asm_file_start): Don't save and override flag_var_tracking.
1880
a700b5f0
KK
18812011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1882
1883 PR target/49163
1884 * config/sh/predicates.md (general_movsrc_operand): Return 0
1885 for memory and memory subreg of which address is an invalid
1886 indexed address for QI and HImode.
1887 (general_movdst_operand): Likewise.
1888
76015c34
EB
18892011-06-02 Eric Botcazou <ebotcazou@adacore.com>
1890
1891 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
1892 edges only, when there is a non-local label in the function.
1893 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
1894
4e76acd2
UB
18952011-06-02 Uros Bizjak <ubizjak@gmail.com>
1896
1897 * config/i386/constraints.md (Y3): New register constraint.
1898 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
1899 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
1900 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
1901 *sse2_interleave_lowv2df.
1902
288f605f
JB
19032011-06-02 Julian Brown <julian@codesourcery.com>
1904
1905 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
1906 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
1907 (arm_cortex_a5_tune): New.
1908
7ec70105
JB
19092011-06-02 Julian Brown <julian@codesourcery.com>
1910
153668ec
JB
1911 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
1912 * config/arm/arm.c (arm_default_branch_cost): New.
1913 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
1914 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
1915 (arm_fa726_tune): Set branch_cost field using
1916 arm_default_branch_cost.
1917 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
1918 current_tune structure.
1919 * dojump.c (tm_p.h): Include file.
1920
19212011-06-02 Julian Brown <julian@codesourcery.com>
1922
1923 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
1924 tuning.
7ec70105
JB
1925 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
1926 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
1927 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
1928 field.
1929 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
1930 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
1931 (arm_fa726te_tune): Add prefer_constant_pool setting.
1932 (arm_v6t2_tune, arm_cortex_tune): New.
1933 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
1934 prefer_constant_pool setting.
1935
aad61732
UB
19362011-06-02 Uros Bizjak <ubizjak@gmail.com>
1937
4e76acd2
UB
1938 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
1939 switch statement.
aad61732
UB
1940 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
1941 (*movdf_internal) <case 6,7,8>: Ditto.
1942
4e76acd2 1943 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
1944 * config/i386/sse.md (vec_set<mode>_0): Merge with
1945 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
1946 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
1947 *vec_extractv2di_1_sse.
1948 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
1949 and *vec_concatv2di_rex64_sse.
1950
6e588138
SH
19512011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
1952
1953 PR target/48807
1954 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
1955 of cgraph_local_info for null before attempting to use it.
1956
bc6d3f91
EB
19572011-06-02 Eric Botcazou <ebotcazou@adacore.com>
1958
1959 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
1960 (current_function_dynamic_alloc_count): Delete.
1961 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
1962 (expand_builtin_nonlocal_goto): Remove obsolete comment.
1963 (expand_builtin_update_setjmp_buf): Remove dead code.
1964 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
1965 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
1966 support.
1967 * function.c (instantiate_virtual_regs): Likewise.
1968 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
1969 for a block with a single abnormal incoming edge.
1970 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 1971 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
1972 * config/sparc/sparc-protos.h (load_got_register): Declare.
1973 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1974 (load_got_register): Make global.
1975 (sparc_frame_pointer_required): Add 'static'.
1976 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
1977 (sparc_builtin_setjmp_frame_value): New function.
1978 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
1979 (save_stack_nonlocal): New expander.
1980 (restore_stack_nonlocal): Likewise.
1981 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
1982 (nonlocal_goto_internal): New insn.
1983 (goto_handler_and_restore): Delete.
1984 (builtin_setjmp_setup): Likewise.
1985 (do_builtin_setjmp_setup): Likewise.
1986 (setjmp): Likewise.
1987 (builtin_setjmp_receiver): New expander.
1988
69282fee
DL
19892011-06-01 David Li <davidxl@google.com>
1990
1991 PR middle-end/49261
1992 * tree-pretty-print.c (dump_function_header): Format cleanup.
1993
e95873dd
KK
19942011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
1995
1996 PR target/49238
1997 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
1998 needed when original operands are used for msw_skip comparison.
1999
88c15821
JJ
20002011-06-01 Jakub Jelinek <jakub@redhat.com>
2001
2002 PR debug/49250
2003 * var-tracking.c (add_uses, add_stores): Don't call
2004 cselib_subst_to_values on ENTRY_VALUE.
2005
07233947
DN
20062011-06-01 Diego Novillo <dnovillo@google.com>
2007
2008 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
2009 output_record_start with LTO_null instead of output_zero.
2010 (lto_output_ts_binfo_tree_pointers): Likewise.
2011 (lto_output_tree): Likewise.
2012 (output_eh_try_list): Likewise.
2013 (output_eh_region): Likewise.
2014 (output_eh_lp): Likewise.
2015 (output_eh_regions): Likewise.
2016 (output_bb): Likewise.
2017 (output_function): Likewise.
2018 (output_unreferenced_globals): Likewise.
2019 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
2020 instead of NUM_TREE_CODES.
2021 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
2022 (lto_output_int_in_range): Change << to >> when shifting VAL.
2023
4ee3537a
DN
20242011-06-01 Diego Novillo <dnovillo@google.com>
2025
2026 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
2027 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
2028
02972eaf
RS
20292011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2030
2031 PR target/45074
2032 * optabs.h (valid_multiword_target_p): Declare.
2033 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
2034 doing multi-word operations.
2035 * optabs.c (expand_binop): Likewise.
2036 (expand_doubleword_bswap): Likewise.
2037 (expand_absneg_bit): Likewise.
2038 (expand_unop): Likewise.
2039 (expand_copysign_bit): Likewise.
2040 (multiword_target_p): New function.
2041
4d41c2d1
RS
20422011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2043
2044 PR rtl-optimization/48830
2045 PR rtl-optimization/48808
2046 PR rtl-optimization/48792
2047 * reload.c (push_reload): Check contains_reg_of_mode.
2048 * reload1.c (strip_paradoxical_subreg): New function.
2049 (gen_reload_chain_without_interm_reg_p): Use it to handle
2050 paradoxical subregs.
2051 (emit_output_reload_insns, gen_reload): Likewise.
2052
5f57dccb
DL
20532011-06-01 David Li <davidxl@google.com>
2054
2055 * predict.c : Change pass name
2056 * ipa.c: Ditto.
2057 * dce.c: Ditto.
2058 * tree-profile.c: Ditto.
2059 * except.c: Ditto.
2060
ea6cf778
DL
20612011-06-01 David Li <davidxl@google.com>
2062
2063 * tree-pretty-print.c (dump_function_header): New function.
2064 * final.c (rest_of_clean_state): Use header dumper.
2065 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
2066 * passes.c (pass_init_dump_file): Use header dumper.
2067
ebdc0d4b
JJ
20682011-06-01 Jakub Jelinek <jakub@redhat.com>
2069
eeeb9b49
JJ
2070 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
2071 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
2072 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
2073 New functions.
2074 (mem_loc_descriptor): Use them.
2075
ebdc0d4b
JJ
2076 * var-tracking.c (create_entry_value): New function.
2077 (vt_add_function_parameter): Use it.
2078
0699e415
RO
20792011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2080
2081 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
2082 Include <signal.h>, <ucontext.h>.
2083 (sigill_caught): Define.
2084 (sigill_hdlr): New function.
2085 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
2086 insns can be executed.
aad61732 2087 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
2088 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
2089
ca24c5ad
RO
20902011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2091
2092 * config/t-slibgcc-darwin: Move to ...
aad61732 2093 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
2094 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
2095 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
2096 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 2097 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
2098 Remove i386/t-crtstuff from tmake_file.
2099 (i[34567]86-*-solaris2*): Remove t-svr4,
2100 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
2101 t-slibgcc-dummy.
2102 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
2103 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
2104 sparc/t-crtfm from tmake_file.
2105 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
2106 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
2107 Remove extra_parts.
2108 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
2109 * config/i386/t-nwld (SHLIB_LINK): Remove.
2110 * config/i386/t-rtems-i386: Rename to ...
2111 * config/i386/t-rtems: ... this.
2112 ($(T)crti.o, $(T)crtn.o): Remove.
2113 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
2114 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
2115 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
2116 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
2117 EXTRA_MULTILIB_PARTS): Remove.
2118 * config/sparc/t-sol2-64: Likewise.
2119 * config/sparc/t-sol2: Remove.
2120 * config/sparc/t-crtin: Remove.
2121 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
2122 * config/i386/gmon-sol2.c: Remove.
2123 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
2124 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
2125 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
2126 * config/i386/sol2-gc1.asm: Remove.
2127 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
2128 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
2129 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
2130 * config/t-slibgcc-sld: Remove.
2131
a78d13c3
JJ
21322011-06-01 Jakub Jelinek <jakub@redhat.com>
2133
2134 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
2135 base_type_for_mode with op_mode instead of mode.
2136
572070ef
PB
21372011-06-01 Paul Brook <paul@cpodesourcery.com>
2138
2139 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
2140 Cortex-A15.
2141 * config/arm/arm-tune.md: Regenerate.
2142 * config/arm/arm-tables.opt: Regenerate.
2143 * config/arm/arm.c (FL_DIV): Rename...
2144 (FL_THUMB_DIV): ... to this.
2145 (FL_ARM_DIV): Define.
2146 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
2147 (arm_arch_hwdiv): Remove.
2148 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
2149 (arm_issue_rate): Add cortexr5.
2150 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
2151 __ARM_ARCH_EXT_IDIV__.
2152 (TARGET_IDIV): Define.
2153 (arm_arch_hwdiv): Remove.
2154 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
2155 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
2156 (divsi3, udivsi3): New patterns.
2157 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
2158 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
2159
11026b51
MJ
21602011-06-01 Martin Jambor <mjambor@suse.cz>
2161
2162 * ipa-utils.c (ipa_dfs_info): New field scc_no.
2163 * ipa-utils.c (searchc): Set scc_no.
2164
b6156cf2
MJ
21652011-06-01 Martin Jambor <mjambor@suse.cz>
2166
2167 * ipa-utils.c (searchc_env): New field allow_overwritable.
2168 (searchc): do not ignore edges to overwritable nodes if indicated
2169 by env->allow_overwritable.
2170 (ipa_reduced_postorder): Set env.allow_overwritable.
2171
6807da97
RG
21722011-06-01 Richard Guenther <rguenther@suse.de>
2173
2174 * tree.c (free_lang_data): Do not reset boolean_type_node nor
2175 char_type_node.
2176 * lto-streamer.c (lto_record_common_node): Take node pointer,
2177 do not register types.
2178 (lto_preload_common_nodes): Explicitly skip preloading nodes
2179 that differ between frontends.
2180
66bd20e7 21812011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
2182
2183 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
2184 NON_FLOAT_REGS.
2185
66bd20e7 21862011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
2187
2188 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
2189 parameter value for dump. Dump cost on outermost call only.
2190 (rs6000_memory_move_cost): Dump cost on outermost call only.
2191
7351d8da
JJ
21922011-05-31 Jakub Jelinek <jakub@redhat.com>
2193
ead7c399
JJ
2194 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
2195 DW_OP_GNU_convert ops.
2196
509f4495
JJ
2197 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
2198 cselib_preserve_constants.
2199 (cselib_lookup_1): If cselib_preserve_constants,
2200 a new VALUE is being created for REG and there is a VALUE for the
2201 same register in wider mode, add another loc with lowpart SUBREG of
2202 the wider VALUE.
2203 (cselib_subst_to_values): Handle ENTRY_VALUE.
2204 * var-tracking.c (replace_expr_with_values): Return NULL for
2205 ENTRY_VALUE too.
2206 * dwarf2out.c (convert_descriptor_to_signed): New function.
2207 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
2208 instead of two shifts.
2209 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
2210 the right mode if needed.
2211 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
2212 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
2213 convert_descriptor_to_signed.
2214 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
2215 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
2216
7351d8da
JJ
2217 PR target/48688
2218 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
2219
5cc93ee0
UB
22202011-05-31 Uros Bizjak <ubizjak@gmail.com>
2221
2222 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
2223 of X87MODEI12 and SWI48x instead of SSEMODEI24.
2224 (SWI248x): New mode iterator, rename from X87MODEI.
2225 (X87MODEI): Remove mode iterator.
2226 (X87MODEI12): Ditto.
2227 (SSEMODEI24): Ditto.
2228
f0686e78
AO
22292011-05-31 Alexandre Oliva <aoliva@redhat.com>
2230
2231 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
2232 * doc/invoke.texi: Document max-vartrack-expr-depth.
2233 * var-tracking.c (EXPR_DEPTH): New.
2234 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
2235
f3308413
AO
22362011-05-31 Alexandre Oliva <aoliva@redhat.com>
2237
2238 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
2239 * config/i386/sse.md: Add n to negated FMA pattern names.
2240
28c14a04
AO
22412011-05-31 Alexandre Oliva <aoliva@redhat.com>
2242
2243 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
2244
70efc82d
AO
22452011-05-31 Alexandre Oliva <aoliva@redhat.com>
2246
5cc93ee0 2247 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 2248
6ba5d856
UB
22492011-05-31 Uros Bizjak <ubizjak@gmail.com>
2250
2251 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
2252 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
2253
22542011-05-31 Uros Bizjak <ubizjak@gmail.com>
2255
2256 * config/i386/i386.md (*movtf_internal): Avoid allocating general
2257 registers. Penalize F*r->o alternative to prevent partial memory
2258 stalls. Slightly penalize *roF->*r alternative. Generate SSE
2259 CONST_DOUBLE immediates when optimizing function for size. Do not move
2260 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
2261 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
2262 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
2263 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
2264 alternatives.
2265 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
2266
2267 (fp_register_operand splitters): Use fp_register_operand
2268 constraint. Do not use FP_REG_P in insn condition.
2269 (any_fp_register_operand splitters): Use any_fp_register_operand
2270 constraint. Do not use ANY_FP_REG_P in insn condition.
2271
533c07c5
JH
22722011-05-31 Jan Hubicka <jh@suse.cz>
2273
2274 * cgraph.h (cgraph_inline_failed_t): Give enum a name
2275 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
2276 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
2277 (lto_output_edge): Use output_enum and var_len_unsigned.
2278 (lto_output_varpool_node): Likewise.
2279 (input_overwrite_node): Do not take resolution parameter;
2280 extract it from a bitpack.
2281 (input_node): Do not read resolution; use input_enum and
2282 var_len_unsigned.
2283 (input_varpool_node): Likewise.
2284 (input_edge): Likewise.
2285 (input_cgraph_1): Likewise.
2286
2611db71
RG
22872011-05-31 Richard Guenther <rguenther@suse.de>
2288
2289 * gimple.c (gimple_register_canonical_type): Do not register
2290 any types via gimple_register_type.
2291
b9e57365
JH
22922011-05-31 Jan Hubicka <jh@suse.cz>
2293
2294 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
2295 of thunks.
2296
35979cc2
JJ
22972011-05-31 Jakub Jelinek <jakub@redhat.com>
2298
2299 PR rtl-optimization/49235
2300 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
2301 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
2302
8f7de592
IR
23032011-05-31 Ira Rosen <ira.rosen@linaro.org>
2304
2305 PR tree-optimization/49093
2306 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
2307 data references.
2308
8d8a3bda
DS
23092011-05-31 Dodji Seketeli <dodji@redhat.com>
2310
2311 PR debug/49047
2312 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 2313 for concrete functions containing the code of cloned functions.
8d8a3bda 2314
2e87621c
RG
23152011-05-31 Richard Guenther <rguenther@suse.de>
2316
2317 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
2318 to ...
2319 (forward_propagate_into_comparison_1): ... this.
2320 (forward_propagate_comparison): Rename to ...
2321 (forward_propagate_into_comparison): ... this. Split out
2322 real forward propagation code to ...
2323 (forward_propagate_comparison): ... this.
2324 (forward_propagate_into_gimple_cond): Remove looping.
2325 (forward_propagate_into_cond): Likewise.
2326 (simplify_not_neg_expr): Return whether we have done something.
2327 (simplify_gimple_switch): Likewise.
2328 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
2329 (ssa_forward_propagate_and_combine): ... this. Re-structure
2330 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 2331 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
2332 (pass_forwprop): Adjust.
2333
5a880d5d
ILT
23342011-05-30 Ian Lance Taylor <iant@google.com>
2335
2336 * godump.c (go_format_type): Correct length of name added to
2337 obstack for anonymous field.
2338
5f133038
KK
23392011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
2340
2341 PR target/49186
2342 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
2343 part of the second operand is 0.
2344
b17d5426
UB
23452011-05-30 Uros Bizjak <ubizjak@gmail.com>
2346
2347 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
2348 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
2349 to memory for !TARGET_MEMORY_MISMATCH_STALL.
2350 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 2351 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
2352 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
2353 when optimizing function for size. Do not move CONST_DOUBLEs
2354 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
2355 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
2356 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
2357 check for ANY_FP_REGNO_P instead.
2358 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
2359 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
2360 function for speed.
2361 * config/i386/i386.c (ix86_option_override_internal): Do not
2362 set TARGET_INTEGER_DFMODE_MOVES here.
2363
a0cd843f
L
23642011-05-30 H.J. Lu <hongjiu.lu@intel.com>
2365
2366 PR target/49168
aad61732 2367 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 2368
006a5f38
JJ
23692011-05-30 Jakub Jelinek <jakub@redhat.com>
2370
2371 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
2372 DW_TAG_rvalue_reference_type even for
2373 -gdwarf-4 -fno-debug-types-section.
2374
6e96f98a
BS
23752011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2376
2377 PR tree-optimization/46728
2378 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
2379 (build_and_insert_binop): New.
2380 (gimple_expand_builtin_pow): Reorder args for
2381 build_and_insert_call; use build_and_insert_binop; add more
2382 optimizations for fractional exponents.
b17d5426 2383
4f60111f
NF
23842011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
2385
2386 PR bootstrap/49190
2387
2388 Revert:
2389 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2390
2391 * tree.h (struct tree_identifier): Inherit from tree_typed, not
2392 tree_common.
2393 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
2394 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
2395 TS_BASE instead of TS_COMMON.
2396 * varasm.c (assemble_name): Remove assert.
2397
3fd7879d
RS
23982011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
2399
2400 * config.gcc: Keep obselete list sorted.
2401
80060f7a
JJ
24022011-05-30 Jakub Jelinek <jakub@redhat.com>
2403 Eric Botcazou <ebotcazou@adacore.com>
2404
2405 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
2406 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
2407 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
2408 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
2409 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
2410
17e99cdb
RG
24112011-05-30 Richard Guenther <rguenther@suse.de>
2412
2413 * gimple.c (gimple_types_compatible_p_1): Compare record
2414 and union type members properly.
2415
42b05b6e
RG
24162011-05-30 Richard Guenther <rguenther@suse.de>
2417
2418 PR tree-optimization/49210
6ba5d856
UB
2419 * ipa-split.c (split_function): Care for the case where the call
2420 result is not trivially convertible to the result holding variable.
42b05b6e 2421
f3321158
RG
24222011-05-30 Richard Guenther <rguenther@suse.de>
2423
2424 PR tree-optimization/49218
2425 * tree-vrp.c (adjust_range_with_scev): Properly check whether
2426 overflow occured.
2427
d12d8efe
RG
24282011-05-30 Richard Guenther <rguenther@suse.de>
2429
2430 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
2431 New function split out from ...
2432 (forward_propagate_into_gimple_cond): ... here. Adjust.
2433 (forward_propagate_into_cond): Likewise.
2434 (forward_propagate_comparison): Also propagate into
2435 comparisons on assignment RHS. Change return value to
2436 behave similar to forward_propagate_into_cond.
2437 (tree_ssa_forward_propagate_single_use_vars): Handle
2438 strict-overflow warnings properly for forward_propagate_comparison.
2439
df33b41f
RO
24402011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2441
2442 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
2443 from plugin linker.
2444 * configure: Regenerate.
2445
69940d4d
IR
24462011-05-30 Ira Rosen <ira.rosen@linaro.org>
2447
2448 PR tree-optimization/49199
2449 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 2450 non-reduction operands are either defined in the loop or by induction.
69940d4d 2451
226c52aa
XDL
24522011-05-29 Xinliang David Li <davidxl@google.com>
2453
2454 * opts-global.c (handle_common_deferred_options): Handle new options.
2455 * passes.c (register_one_dump_file): Call register_pass_name.
2456 (execute_one_pass): Check explicit enable/disable flag.
2457 (passr_hash): New function.
2458 (passr_eq): Ditto.
2459 (register_pass_name): Ditto.
2460 (get_pass_by_name): Ditto.
2461 (pass_hash): Ditto.
2462 (pass_eq): Ditto.
2463 (enable_pass): Ditto.
2464 (disable_pass): Ditto.
2465 (is_pass_explicitly_enabled_or_disabled): Ditto.
2466
491d8eed
UB
24672011-05-29 Uros Bizjak <ubizjak@gmail.com>
2468
2469 * config/i386/i386.md (*movoi_internal_avx): Use
2470 standard_sse_constant_opcode for alternative 0.
2471 (*movti_internal_sse): Ditto.
2472 (*movti_internal_rex64): Use standard_sse_constant_opcode for
2473 alternative 2.
2474 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
2475 sselog1 type moves.
2476 (*movsi_internal): Ditto.
2477 (*movdi_internal): Ditto. Add ssecvt type moves.
2478
eb93b31f
EB
24792011-05-29 Eric Botcazou <ebotcazou@adacore.com>
2480
2481 PR target/48830
2482 * rtlanal.c (simplify_subreg_regno): Adjust comment.
2483
3f831b7d
JJ
24842011-05-29 Jakub Jelinek <jakub@redhat.com>
2485
2486 PR rtl-optimization/49095
2487 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
2488 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
2489
ee3ee488
RS
24902011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
2491
2492 PR target/43995
2493 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
2494 recurse_p argument. Only follow register copies if it is set,
2495 and prevent mips_find_pic_call_symbol from recursing.
2496 (mips_find_pic_call_symbol): Add a recurse_p argument.
2497 Pass it to mips_pic_call_symbol_from_set.
2498 (mips_annotate_pic_calls): Update accordingly.
2499
65f3dedb
RS
25002011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
2501
2502 * emit-rtl.c (try_split): Use a loop to search for
2503 NOTE_INSN_CALL_ARG_LOCATIONs.
2504
61e374ab
RG
25052011-05-29 Richard Guenther <rguenther@suse.de>
2506
2507 PR tree-optimization/49217
2508 * ipa-pure-const.c (propagate_pure_const): Fix typos.
2509
fac009a8
JH
25102011-05-28 Jan Hubicka <jh@suse.cz>
2511
2512 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
2513 length.
2514 (string_slot_free): Remove
2515 (create_output_block): Initialize obstack.
2516 (destroy_output_block): Free obstack.
2517 (lto_string_index): Add PERSISTENT parameter; do not duplicate
2518 the string unless it needs to be added into the hash.
2519 (lto_output_string_with_length): Add persistent attribute;
2520 handle NULL strings.
2521 (lto_output_string): Add PERSISTENT parameter.
2522 (output_string_cst, output_identifier): Simplify.
2523 (lto_output_location_bitpack): Update.
2524 (lto_output_builtin_tree): Update.
2525 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
2526 (lto_output_string, lto_output_string_with_length): Remove
2527 declarations; functions are static now.
fac009a8 2528
fa766006
JH
25292011-05-28 Jan Hubicka <jh@suse.cz>
2530
2531 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
2532 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
2533 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
2534 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
2535 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
2536 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
2537 unpack_ts_decl_with_vis_value_fields,
2538 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
2539 lto_get_builtin_tree): Use enum and variable length i/o.
2540 * basic-block.h (profile_status_d): Add PROFILE_LAST.
2541 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
2542 New functions.
2543 (bp_pack_enum, bp_unpack_enum): New macros.
2544
e092158b
RS
25452011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2546
2547 * genrecog.c: Remove redundant forward declarations.
2548
7ca2afa0
RS
25492011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2550
2551 * config.gcc: Deprecate mips*-*-openbsd*.
2552
a601a53a
RS
25532011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2554
2555 PR bootstrap/49195
2556 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
2557 for match_op_dup.
2558
fc64b448
AP
25592011-05-27 Andrew Pinski <pinskia@gmail.com>
2560
2561 PR middle-end/48981
2562 * gengtype.c (vec_prefix_type): New function.
2563 (note_def_vec): Use vec_prefix_type and change the length
2564 attribute to be based on the prefix.
2565 * vec.c: Include coretypes.h before vec.h.
2566 (struct vec_prefix): Remove.
2567 (vec_gc_p_reserve): Change the offsetof to sizeof.
2568 (vec_gc_p_reserve_exact): Likewise.
2569 (vec_heap_p_reserve): Likewise.
2570 (vec_heap_p_reserve_exact): Likewise.
2571 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
2572 (vec_stack_p_reserve): Change the offsetof to sizeof.
2573 (vec_stack_p_reserve_exact): Likewise.
2574 * vec.h (struct vec_prefix): New struct definition.
2575 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
2576 (VEC_T_GTY(T,B)): Likewise.
2577 (DEF_VEC_FUNC_P(T)): Use prefix field.
2578 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
2579 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
2580
ba869341
BS
25812011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2582
2583 PR tree-optimization/46728
2584 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
2585 (powi_as_mults): Add gimple_set_location.
2586 (build_and_insert_call): New.
2587 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
2588 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 2589
d296760d
AM
25902011-05-27 Alexander Monakov <amonakov@ispras.ru>
2591
2592 * doc/contrib.texi: Update copyright years.
2593 (Contributors): Add Zdenek Sojka.
2594
38e01f9e
NF
25952011-05-27 Nathan Froyd <froydnj@codesourcery.com>
2596
2597 * c-decl.c (c_push_function_context): Copy the current statement
2598 list stack.
2599 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
2600 (finish_struct): Call building_stmt_list_p instead of checking
2601 cur_stmt_list.
2602 * c-parser.c (c_parser_postfix_expression): Likewise.
2603 * c-typeck.c (c_end_compound_stmt): Likewise.
2604 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
2605 * tree-iterator.c (stmt_list_cache): Change to a VEC.
2606 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
2607 (free_stmt_list): Likewise.
2608 * tree.h (struct tree_statement_list): Include typed_tree instead
2609 of tree_common.
2610 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
2611 as TS_TYPED instead of TS_COMMON.
2612
8950516e 26132011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 2614 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
2615
2616 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
2617 (HAVE_AS_IX86_TLSGDPTL): Define.
2618 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
2619 (HAVE_AS_IX86_TLSLDMPLT): Define.
2620 * configure: Regenerate.
2621 * config.in: Regenerate.
2622 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
2623 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
2624 TARGET_SUN_TLS, use @tlsgdplt or @plt.
2625 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
2626 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
2627 @tlsldmplt or @plt.
2628 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
2629
b0bd15f7
BS
26302011-05-27 Bernd Schmidt <bernds@codesourcery.com>
2631
2632 * sched-int.h (struct _haifa_deps_insn_data): New members cond
2633 and reverse_cond.
2634 (INSN_COND, INSN_REVERSE_COND): New macros.
2635 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
2636 once.
2637 (sched_get_condition_with_rev): Cache the results, and look them up
2638 if possible.
2639 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
2640 are clobbered by the current insn.
2641 * target.def (exposed_pipline): New sched data hook.
2642 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
2643 * doc/tm.texi: Regenerate.
2644
fa65a9cf
BS
26452011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2646
2647 PR tree-optimization/49170
2648 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
2649 sincos or cexp.
b0bd15f7 2650
c2299dfe
RG
26512011-05-27 Richard Guenther <rguenther@suse.de>
2652
2653 PR middle-end/49189
2654 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
2655 of comparisons.
2656
a95b23b4
BS
26572011-05-27 Bernd Schmidt <bernds@codesourcery.com>
2658
2659 * haifa-sched.c (sched_scan_info): Remove.
2660 (schedule_block): Call sched_extend_luids rather than sched_init_luids
2661 with NULL args.
2662 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
2663 Remove functions.
2664 (sched_scan): Remove.
2665 (sched_extend_luids): Renamed from luids_extend_insn and no longer
2666 static. All callers changed.
2667 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
2668 static. All callers changed.
2669 (sched_init_luids): Remove all arguments except the first. All
2670 callers changed. Don't use sched_scan.
2671 (haifa_init_h_i_d): Likewise.
2672 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
2673 manually rather than using sched_init_luids. Likewise with
2674 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
2675 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
2676 rather than sched_init_luids with NULL args.
2677 * sel-sched-ir.c (new_insns): Remove variable.
2678 (sched_scan): New static function, previously in haifa-sched.c. Remove
2679 all arguments but the first two; all callers changed.
2680 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
2681 rather than sched_init_luids.
2682 (sel_init_bbs): Remove second argument. All callers changed.
2683 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
2684 with NULL arguments.
2685 (create_insn_rtx_from_pattern): Likewise.
2686 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
2687 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
2688 (sched_init_insn_luid, sched_extend_luids): Declare.
2689 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
2690 declarations.
2691
f8f972fc
RB
26922011-05-27 Richard Guenther <rguenther@suse.de>
2693
2694 PR middle-end/49177
2695 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
2696 A CMP B ? (T) true : (T) false for non-integral types T again.
2697
51a9ed47
JH
26982011-05-27 Jan Hubicka <jh@suse.cz>
2699
2700 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
2701 so 0 means NULL string.
2702 (lto_output_string_with_length): ... here.
f8f972fc
RB
2703 (lto_output_string, output_string_cst, output_identifier): Update
2704 handling of NULL strings.
51a9ed47
JH
2705 (lto_output_location_bitpack): New function.
2706 (lto_output_location): Use it.
2707 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
2708 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
2709 len values.
2710 * lto-streamer-in.c (string_for_index): Break out from ...; offset
2711 values by 1.
491d8eed 2712 (input_string_internal): ... here;
f8f972fc
RB
2713 (input_string_cst, input_identifier, lto_input_string): Update handling
2714 of NULL strings.
51a9ed47
JH
2715 (lto_input_location_bitpack): New function
2716 (lto_input_location): Use it.
f8f972fc
RB
2717 (unpack_ts_type_common_value_fields): Pack align & alias in var len
2718 values.
51a9ed47
JH
2719 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
2720 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
2721 (bp_pack_value): Sanity check the value range.
2722 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
2723 New functions.
2724 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
2725 New functions.
2726
66bd20e7 27272011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
2728
2729 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
2730 call_arg_location instructions down the floor.
2731
574e418a
VM
27322011-05-26 Vladimir Makarov <vmakarov@redhat.com>
2733
2734 PR rtl-optimization/49154
2735 * ira.c (setup_pressure_classes): Process class without sublcasses
2736 as a candidate for pressure classes.
2737
6a1a787e
RS
27382011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
2739
2740 PR rtl-optimization/48575
2741 * genrecog.c (position_type): New enum.
2742 (position): New structure.
2743 (decision): Use position structure instead of a string.
2744 (root_pos, peep2_insn_pos_list): New variables.
2745 (next_position, compare_positions): New functions.
2746 (new_decision): Use position structures instead of strings.
2747 (maybe_both_true): Likewise.
2748 (change_state): Likewise.
2749 (write_tree): Likewise.
2750 (make_insn_sequence): Likewise.
2751
92e948a8
NF
27522011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2753
2754 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
2755 TS_BASE instead of TS_COMMON.
2756 (find_decls_types_r): Check for TS_TYPED structure before looking at
2757 TREE_TYPE.
2758 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
2759 Add chain field.
2760 (BLOCK_CHAIN): Use new chain field.
2761
66bd20e7 27622011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
2763
2764 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
2765 moves expensive on Power7 also.
2766
1f498652
RG
27672011-05-26 Richard Guenther <rguenther@suse.de>
2768
2769 * fold-const.c (fold_unary_loc): Remove bogus code.
2770
a2fc3e63
NF
27712011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2772
2773 * tree.h (struct tree_identifier): Inherit from tree_typed, not
2774 tree_common.
2775 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
2776 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
2777 TS_BASE instead of TS_COMMON.
2778 * varasm.c (assemble_name): Remove assert.
2779
d11bf18f
BS
27802011-05-26 Bernd Schmidt <bernds@codesourcery.com>
2781
2782 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
2783 substituted first.
2784 * libgcc-std.ver: Delete file.
2785
ac8e1875
RG
27862011-05-26 Richard Guenther <rguenther@suse.de>
2787
2788 PR tree-optimization/48702
2789 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
2790 only when we know the base address is within bounds.
2791 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
2792 assume the base address of TARGET_MEM_REFs is in bounds.
2793
7e32e652
RO
27942011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2795
2796 PR target/49099
2797 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
2798 declaration in TARGET_SOLARIS.
2799
66bd20e7 28002011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
2801
2802 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 2803 The instruction is then expanded explicitly.
43660e0b
HS
2804 (supported_compare): Callable instruction.
2805 (compare): Likewise.
2806
1537737f
JJ
28072011-05-26 Jakub Jelinek <jakub@redhat.com>
2808
2809 PR c++/49165
2810 * gimplify.c (shortcut_cond_r): Don't special case
2811 COND_EXPRs if they have void type on one of their arms.
2812
7b1ac803
BS
28132011-05-26 Bernd Schmidt <bernds@codesourcery.com>
2814
2815 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
2816 to reduce duplication, and to achieve a slightly more logical order
2817 of operations.
2818
1aa9438f
JJ
28192011-05-26 Jakub Jelinek <jakub@redhat.com>
2820
2821 PR tree-optimization/49161
2822 * tree-vrp.c (struct case_info): New type.
2823 (compare_case_labels): Sort case_info structs instead of
2824 trees, and not primarily by CASE_LABEL uids but by
2825 label_for_block indexes.
2826 (find_switch_asserts): Put case labels into struct case_info
2827 array instead of TREE_VEC, adjust sorting, compare label_for_block
2828 values instead of CASE_LABELs.
2829
50fed7bf
RR
28302011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2831
2832 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
2833 ("orndi3_neon"): Likewise.
2834 ("bic<mode>3_neon"): Likewise.
2835
48df3fa6
IR
28362011-05-26 Ira Rosen <ira.rosen@linaro.org>
2837
2838 PR tree-optimization/49038
2839 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
2840 Ensure at least one epilogue iteration if required by data
2841 accesses with gaps.
2842 * tree-vectorizer.h (struct _loop_vec_info): Add new field
2843 to mark loops that require peeling for gaps.
2844 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
2845 (vect_get_known_peeling_cost): Take peeling for gaps into
2846 account.
2847 (vect_transform_loop): Generate epilogue if required by data
2848 access with gaps.
2849 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
2850 loop as requiring an epilogue if there are gaps in the end of
2851 the strided group.
2852
53febcba
ILT
28532011-05-25 Ian Lance Taylor <iant@google.com>
2854
2855 * godump.c (go_format_type): Output the first field with a usable
2856 Go type, if any.
2857
dbbc4d4c
ILT
28582011-05-25 Ian Lance Taylor <iant@google.com>
2859
2860 * godump.c (go_format_type): Check for invalid type names, pointer
2861 target types, and struct field types.
2862
f03a5402
JM
28632011-05-25 Jason Merrill <jason@redhat.com>
2864
2865 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
2866
c497c412
UB
28672011-05-25 Uros Bizjak <ubizjak@gmail.com>
2868
2869 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
2870
e470affe
L
28712011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2872
2873 * config/i386/i386.md (*movqi_extv_1)): Put back
2874 "register_operand" check in "type" calculation.
2875 (*movqi_extzv_2): Likewise.
2876
6c81b2bc
L
28772011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2878
c497c412 2879 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 2880
0c007eb2
BS
28812011-05-25 Bernd Schmidt <bernds@codesourcery.com>
2882
2883 PR bootstrap/49160
2884 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
2885 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
2886 __divxc3, __divtc3): Wrap definitions in #ifndef.
2887
521ca78e
L
28882011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2889
2890 PR target/49142
2891 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
2892 "register_operand" check and replace q_regs_operand with
2893 QIreg_operand in "type" calculation.
2894 (*movqi_extv_1): Likewise.
2895 (*movqi_extzv_2_rex64): Likewise.
2896 (*movqi_extzv_2): Likewise.
2897
2898 * config/i386/predicates.md (QIreg_operand): New.
2899
29f8b844
RG
29002011-05-25 Richard Guenther <rguenther@suse.de>
2901
2902 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
2903 type-based offset disambiguation, streamline MEM_REF and
2904 TARGET_MEM_REF handling.
2905
74838de3
L
29062011-05-25 H.J. Lu <hongjiu.lu@intel.com>
2907
2908 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
2909 (bdesc_special_args): Add pause intrinsic.
2910
2911 * config/i386/i386.md (UNSPEC_PAUSE): New.
2912 (pause): Likewise.
2913 (*pause): Likewise.
2914 * config/i386/ia32intrin.h (__pause): Likewise.
2915
2916 * doc/extend.texi (X86 Built-in Functions): Add documentation for
2917 pause intrinsic.
2918
d24ad7d6
BS
29192011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2920
2921 PR tree-optimization/46728
2922 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
2923 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 2924
d9f8303f
NF
29252011-05-25 Nathan Froyd <froydnj@codesourcery.com>
2926
2927 * tree.h (struct tree_exp): Inherit from struct tree_typed.
2928 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
2929 instead of TS_COMMON.
2930
cdbf4541
BS
29312011-05-25 Bernd Schmidt <bernds@codesourcery.com>
2932
2933 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
2934 LIBGCC2_GNU_PREFIX is defined.
2935 (__N): New macro.
2936 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
2937 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
2938 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
2939 __clz_tab): Define using __N.
2940 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
2941 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
2942 * target.def (libfunc_gnu_prefix): New hook.
2943 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
2944 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
2945 * doc/tm.texi: Regenerate.
2946 * system.h (LIBGCC2_GNU_PREFIX): Poison.
2947 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
2948 account.
2949 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
2950 (init_optabs): Likewise for the bswap libfuncs.
2951 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
2952 and divide.
2953 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
2954 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
2955 * libgcc-std.ver: Remove.
2956 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
2957 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
2958 libgcc-std.ver.
2959 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
2960 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
2961 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
2962 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
2963 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
2964 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
2965 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
2966 * config/fixed-bit.h (FIXED_OP): Define differently depending on
2967 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
2968 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
2969
f242c0a5
JH
29702011-05-25 Jan Hubicka <jh@suse.cz>
2971
2972 * lto-streamer-out.c (output_record_start): Use lto_output_enum
2973 (lto_output_tree): Use output_record_start.
2974 * lto-streamer-in.c (input_record_start): Use lto_input_enum
2975 (lto_get_pickled_tree): Use input_record_start.
2976 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
2977 (lto_value_range_error): New function.
2978 * lto-streamer.h (lto_value_range_error): Declare.
2979 (lto_output_int_in_range, lto_input_int_in_range): New functions.
2980 (lto_output_enum, lto_input_enum): New macros.
2981
a11e0df4
EB
29822011-05-25 Eric Botcazou <ebotcazou@adacore.com>
2983
2984 * common.opt (flag_stack_usage_info): New variable.
2985 (-Wstack-usage): New option.
2986 * doc/invoke.texi (Warning options): Document -Wstack-usage.
2987 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
2988 <OPT_fstack_usage>: Likewise.
2989 * toplev.c (output_stack_usage): Handle -Wstack-usage.
2990 * calls.c (expand_call): Test flag_stack_usage_info variable instead
2991 of flag_stack_usage.
2992 (emit_library_call_value_1): Likewise.
2993 * explow.c (allocate_dynamic_stack_space): Likewise.
2994 * function.c (instantiate_virtual_regs ): Likewise.
2995 (prepare_function_start): Likewise.
2996 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
2997 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
2998 * config/arm/arm.c (arm_expand_prologue): Likewise.
2999 (thumb1_expand_prologue): Likewise.
3000 * config/avr/avr.c (expand_prologue): Likewise.
3001 * config/i386/i386.c (ix86_expand_prologue): Likewise.
3002 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3003 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
3004 * config/mips/mips.c (mips_expand_prologue): Likewise.
3005 * config/pa/pa.c (hppa_expand_prologue): Likewise.
3006 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3007 * config/s390/s390.c (s390_emit_prologue): Likewise.
3008 * config/sh/sh.c (sh_expand_prologue): Likewise.
3009 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3010 * config/spu/spu.c (spu_expand_prologue): Likewise.
3011
e7cfe241
RG
30122011-05-25 Richard Guenther <rguenther@suse.de>
3013
3014 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
3015 (gimple_canonical_types_compatible_p): Likewise.
3016
c5235f4c
JH
30172011-05-25 Jan Hubicka <jh@suse.cz>
3018
3019 PR middle-end/49062
3020 * ipa.c (function_and_variable_visibility): Only add to same
3021 comdat group list if DECL_ONE_ONLY.
3022
8242a0f6
AB
30232011-05-25 Andrey Belevantsev <abel@ispras.ru>
3024
3025 PR rtl-optimization/49014
3026 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
3027
642a011d
JJ
30282011-05-25 Jakub Jelinek <jakub@redhat.com>
3029
3030 PR target/49128
3031 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
3032
30a435d8
VM
30332011-05-24 Vladimir Makarov <vmakarov@redhat.com>
3034
3035 PR rtl-optimization/48757
3036 * ira-build.c (loop_with_eh_edge_p): Rename to
3037 loop_with_complex_edge_p, check edges on complexity, make function
3038 conditional.
3039 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
3040 conditional.
3041
24d1bbc7
EB
30422011-05-24 Eric Botcazou <ebotcazou@adacore.com>
3043
3044 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
3045 force flag_ira_share_save_slots to 0.
3046
65773087
EB
30472011-05-24 Eric Botcazou <ebotcazou@adacore.com>
3048
3049 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
3050 (vt_initialize): Set PROLOGUE_BB unconditionally.
3051 Add block comment about CFA_BASE_RTX machinery.
3052 Reset FP_CFA_OFFSET to -1 on all invalid paths.
3053 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
3054
4e26ba90
NP
30552011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
3056
3057 PR objc/48187
3058 * c-parser.c (c_parser_objc_class_instance_variables): More robust
3059 parsing of syntax error in ObjC instance variable lists. In
3060 particular, avoid an infinite loop if there is a stray ']'.
3061 Updated error message.
3062
936fd13c
ILT
30632011-05-24 Ian Lance Taylor <iant@google.com>
3064
3065 * godump.c (go_define): Don't accept a string immediately after
3066 another operand.
3067
f17333e3
ILT
30682011-05-24 Ian Lance Taylor <iant@google.com>
3069
3070 * godump.c (struct godump_container): Add invalid_hash field.
3071 (go_format_type): Return false if type is found in invalid_hash.
3072 (go_output_typedef): Add invalid type to invalid_hash.
3073 (go_finish): Create and delete invalid_hash.
3074
d24ad7d6 30752011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 3076
78be79d5
BS
3077 PR tree-optimization/46728
3078 * tree-ssa-math-opts.c (powi_table): New.
3079 (powi_lookup_cost): New.
3080 (powi_cost): New.
3081 (powi_as_mults_1): New.
3082 (powi_as_mults): New.
3083 (gimple_expand_builtin_powi): New.
3084 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
3085 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 3086
caee412b
RO
30872011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3088
3089 PR target/3746
3090 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
3091 mips-tdump native.
3092 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
3093 * mips-tdump.c: Likewise.
3094
5eed4f27
L
30952011-05-24 H.J. Lu <hongjiu.lu@intel.com>
3096
3097 PR target/49128
3098 * config/i386/driver-i386.c (host_detect_local_cpu): Always
3099 add -mno-XXX. Handle FMA.
3100
8c5fdaae
VM
31012011-05-24 Vladimir Makarov <vmakarov@redhat.com>
3102
3103 PR rtl-optimization/48633
3104 * ira-build.c (loop_with_eh_edge_p): New function.
3105 (mark_loops_for_removal): Use it.
3106
31072011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
3108
3109 PR rtl-optimization/48971
3110 * ira.c (setup_pressure_classes): Don't check register move cost
3111 for classes with one registers. Don't add pressure class if there
3112 is a pressure class with the same available hard registers.
3113 Check contains_reg_of_mode. Fix a typo in collecting
3114 temp_hard_regset. Ignore hard registers not belonging to a class.
3115
df1f7315
UB
31162011-05-24 Uros Bizjak <ubizjak@gmail.com>
3117
3118 PR target/49133
3119 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
3120
ee0cb37c
EB
31212011-05-24 Eric Botcazou <ebotcazou@adacore.com>
3122 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3123
3124 PR gcov-profile/48845
3125 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
3126
6a20ce76
RG
31272011-05-24 Richard Guenther <rguenther@suse.de>
3128
3129 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
3130 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
3131 (gimple_types_compatible_p_1): Adjust.
3132 (iterative_hash_canonical_type): Do not bother about complete vs.
3133 incomplete types.
3134 (gimple_canonical_types_compatible_p): Likewise.
3135
2fcb858c
RO
31362011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3137
3138 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
3139
96d91dcf
RG
31402011-05-24 Richard Guenther <rguenther@suse.de>
3141
3142 PR bootstrap/49078
3143 * gimple.c (gimple_register_canonical_type): Revert
3144 previous change.
3145 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
3146 does not for a tree for the case where it matters. Cache
3147 pointer-type alias-sets.
3148
1ed1641d
JM
31492011-05-24 Joseph Myers <joseph@codesourcery.com>
3150
3151 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
3152 (OBJS): Remove options.o, opts-common.o and prefix.o.
3153 (OBJS-libcommon-target): New.
3154 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
3155 (BACKEND): Include libcommon-target.a.
3156 (MOSTLYCLEANFILES): Include libcommon-target.a.
3157 (libcommon-target.a): New.
3158 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
3159 prefix.o.
3160
57dfdff0
JM
31612011-05-23 Joseph Myers <joseph@codesourcery.com>
3162
3163 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
3164 parts of output shared with the driver.
3165 * optc-gen.awk: Don't generate parts of output not shared with the
3166 driver.
3167 * opth-gen.awk: Remove GCC_DRIVER conditionals.
3168 * doc/options.texi (SourcerInclude): Mention options-save.c.
3169 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
3170 (OBJS): Add options-save.o.
3171 (options-save.c, options-save.o): New.
3172 (options.o): Update dependencies.
3173 (gcc-options.o): Remove.
3174 (mostlyclean): Remove options-save.c.
3175
0e0d82a7
JJ
31762011-05-23 Jakub Jelinek <jakub@redhat.com>
3177
9166988f
JJ
3178 PR debug/49032
3179 * dbxout.c: Include cgraph.h.
3180 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
3181 and without value expr, return NULL if no varpool node exists for
3182 it or if it is not needed.
3183 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
3184
0e0d82a7
JJ
3185 PR c/49120
3186 * c-decl.c (start_decl): Convert expr to void_type_node.
3187
65712d5c
RS
31882011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
3189
3190 PR rtl-optimization/48826
3191 * emit-rtl.c (try_split): When splitting a call that is followed
3192 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
3193
9025085e
JJ
31942011-05-23 Jakub Jelinek <jakub@redhat.com>
3195
3196 * cfgexpand.c (expand_debug_expr): For unused non-addressable
3197 parameters passed in memory prefer using DECL_INCOMING_RTL over
3198 the pseudos it will be copied into.
3199
34a061be
L
32002011-05-23 H.J. Lu <hongjiu.lu@intel.com>
3201
3202 PR target/47315
3203 * config/i386/i386.c (ix86_option_override_internal): Save the
3204 initial options after checking vzeroupper.
3205
c375a3a4
DL
32062011-05-23 David Li <davidxl@google.com>
3207
3208 PR tree-optimization/48988
3209 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
3210 Initialize has_valid_pred for each pred chain.
3211
e1caba18
RG
32122011-05-23 Richard Guenther <rguenther@suse.de>
3213
3214 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
3215 (iterative_hash_gimple_type): Always hash type names.
3216
dde05067
NF
32172011-05-23 Nathan Froyd <froydnj@codesourcery.com>
3218
3219 * c-typeck.c (build_function_call_vec): Tweak call to
3220 check_function_arguments.
3221
094f6ab3
RG
32222011-05-23 Richard Guenther <rguenther@suse.de>
3223
3224 PR tree-optimization/49115
3225 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
3226 is not necessarily carried out, do not claim it kills the ref.
3227 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
3228
9a9822e1
RG
32292011-05-23 Richard Guenther <rguenther@suse.de>
3230
3231 PR middle-end/15419
3232 * builtins.c (fold_builtin_memory_op): Be less restrictive about
3233 what pointer types we accept for folding.
3234
c8028650
RO
32352011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3236
3237 * gthr-gnat.c: Remove.
3238 * gthr-gnat.h: Remove.
3239 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
3240 * config/t-freebsd (LIB2ADDEH): Likewise.
3241 * config/t-linux (LIB2ADDEH): Likewise.
3242 * config/t-sol2 (LIB2ADDEH): Likewise.
3243 * config/ia64/t-vms (LIB2ADDEH): Likewise.
3244 * configure.ac (target_thread_file): Remove gnat handling.
3245 * configure: Regenerate.
3246 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
3247
15882fe9
TG
32482011-05-23 Tristan Gingold <gingold@adacore.com>
3249 Eric Botcazou <ebotcazou@adacore.com>
3250
3251 * gcov.c (create_file_names): If no object directory is specified,
3252 keep the directory of the file.
3253
da90c957
RO
32542011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3255
3256 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
3257 * configure: Regenerate.
3258
7bba408b
JJ
32592011-05-23 Jakub Jelinek <jakub@redhat.com>
3260
3261 PR middle-end/48973
3262 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
3263 failed and the comparison has a single bit signed type, use
3264 constm1_rtx instead of const1_rtx for true value.
3265 (do_store_flag): If ops->type is single bit signed type, disable
3266 signel bit test optimization and pass -1 instead of 1 as last
3267 parameter to emit_store_flag_force.
3268
bc69f7ff
TV
32692011-05-23 Tom de Vries <tom@codesourcery.com>
3270
3271 PR target/45098
3272 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
3273 function.
3274 (infer_loop_bounds_from_undefined): Use new function.
3275
29cedf8e
RS
32762011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
3277
3278 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
3279 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
3280 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
3281 and -O0 otherwise.
3282 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
3283
afe8b6ec
EB
32842011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3285
3286 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
3287 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
3288 returns true.
3289
872dab53
RS
32902011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
3291
3292 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
3293
145f6c5b
EB
32942011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3295
3296 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
3297 UNSPEC_MOVE_PIC pattern.
3298
8ac79835
EB
32992011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3300
3301 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
3302 (sparc-*-rtems*): Likewise.
3303 (sparc64-*-elf*): Likewise.
3304 (sparc64-*-rtems*): Likewise.
3305 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
3306 * config/sparc/t-crtin: New file.
3307 * config/sparc/t-sol2 (crti.o): Delete rule.
3308 (crtn.o): Likewise.
3309 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
3310 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
3311 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
3312 (ENDFILE_SPEC): Add crtn.o.
3313
5fb43dd8
TV
33142011-05-22 Tom de Vries <tom@codesourcery.com>
3315
3316 PR middle-end/48689
3317 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
3318 CODE_CONTAINS_STRUCT (TS_COMMON).
3319
ccb1b17b
JJ
33202011-05-22 Jakub Jelinek <jakub@redhat.com>
3321
3322 PR middle-end/49029
3323 * expmed.c (extract_fixed_bit_field): Test whether target can be used
3324 only after deciding which mode to use.
3325
50ad7db2
TV
33262011-05-22 Tom de Vries <tom@codesourcery.com>
3327
3328 PR target/45098
dc0a3366 3329 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
3330 for call to get_shiftadd_cost.
3331
ef230b38
UB
33322011-05-22 Uros Bizjak <ubizjak@gmail.com>
3333
3334 PR target/49104
3335 * config/i386/cpuid.h (bit_MMXEXT): New define.
3336
15f072f9
NC
33372011-05-22 Nick Clifton <nickc@redhat.com>
3338
3339 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
3340 initialisation of non-existant args[2] element. Use args[] array
3341 not arg[] array to pass arguments to build_function_type_list.
3342
e38fdc94
IR
33432011-05-22 Ira Rosen <ira.rosen@linaro.org>
3344
3345 PR tree-optimization/49087
ef230b38 3346 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 3347
5b018c65
JM
33482011-05-21 Jason Merrill <jason@redhat.com>
3349
3350 PR c++/49092
3351 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
3352 static storage duration.
3353
abd9a770
EB
33542011-05-21 Eric Botcazou <ebotcazou@adacore.com>
3355
3356 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
3357 frame pointer.
3358
bd9a3248
EB
33592011-05-21 Eric Botcazou <ebotcazou@adacore.com>
3360
3361 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
3362 false if there are call-saved registers here...
3363 (sparc_can_use_return_insn_p): ...but here instead.
3364 (save_or_restore_regs): Fix thinko.
3365 (sparc_expand_prologue): Use current_function_is_leaf.
3366 (sparc_frame_pointer_required): Likewise.
3367
a5dfec9a
NC
33682011-05-21 Nick Clifton <nickc@redhat.com>
3369
3370 PR target/49098
3371 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
3372
555c3771
NP
33732011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
3374
3375 * gengtype.c (walk_type): Implemented "atomic" GTY option.
3376 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
3377
86fa5de4
JM
33782011-05-21 Joseph Myers <joseph@codesourcery.com>
3379
3380 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
3381 * optc-gen.awk: Move common code to opt-read.awk.
3382 * opth-gen.awk: Likewise.
ef230b38 3383 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 3384
bce33ab2
NF
33852011-05-20 Nathan Froyd <froydnj@codesourcery.com>
3386
3387 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
3388
e6450c11
TV
33892011-05-20 Tom de Vries <tom@codesourcery.com>
3390
3391 PR target/45098
3392 * tree-ssa-loop-ivopts.c: Include expmed.h.
3393 (get_shiftadd_cost): New function.
3394 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
3395
0e8b84ec
JJ
33962011-05-20 Jakub Jelinek <jakub@redhat.com>
3397
3398 PR bootstrap/49086
3399 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
3400 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
3401
946bdf67
JM
34022011-05-20 Joseph Myers <joseph@codesourcery.com>
3403
3404 * Makefile.in: Update comment referring to $(OBJS-common).
3405
c53aafdf
ILT
34062011-05-20 Ian Lance Taylor <iant@google.com>
3407
3408 * godump.c (go_output_typedef): Put enum constants in the macro
3409 hash table to avoid duplicate Go const definitions.
3410
2691e6d7
JM
34112011-05-20 Joseph Myers <joseph@codesourcery.com>
3412
3413 * Makefile.in (LIBDEPS): Add libcommon.a.
3414 (LIBS): Likewise.
3415 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
3416 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
3417 pretty-print.o and version.o.
3418 (OBJS-libcommon): New.
3419 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
3420 (BACKEND): Add libcommon.a.
3421 (MOSTLYCLEANFILES): Likewise.
3422 (libcommon.a): New.
3423 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
3424 (cpp$(exeext)): Likewise.
3425 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
3426 pretty-print.o and input.o.
3427 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
3428 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
3429 (errors.o): Remove.
3430 (mips-tfile): Don't explicitly use version.o.
3431 (mips-tdump): Likewise.
3432 (gcov.o): Depend on $(DIAGNOSTIC_H).
3433 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
3434 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
3435 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
3436 * gcov-dump.c: Include intl.h and diagnostic.h.
3437 (main): Initialize diagnostics.
3438 * gcov.c: Include diagnostic.h.
3439 (fnotice): Remove.
3440 (main): Initialize diagnostics.
3441 * lto-wrapper.c: Include diagnostic.h.
3442 (main): Initialize diagnostics.
3443
252b3e8c
MM
34442011-05-20 Michael Matz <matz@suse.de>
3445
3446 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
3447
2ee36ba6
MM
34482011-05-20 Michael Matz <matz@suse.de>
3449 Richard Guenther <rguenther@suse.de>
3450
3451 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
3452 use lto_streamer_cache_append directly instead of returning a VEC.
3453 (preload_common_node): Remove.
3454 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
3455 track seen nodes.
3456 (lto_streamer_cache_create): Call lto_preload_common_nodes.
3457
90ff582f
RG
34582011-05-20 Richard Guenther <rguenther@suse.de>
3459
3460 PR tree-optimization/49079
3461 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
3462 MEM_REFs correctly for the trailing array access detection.
3463 Special case constants the same way as decls for overall size
3464 constraining.
3465
3cda91d8
UB
34662011-05-20 Uros Bizjak <ubizjak@gmail.com>
3467
3468 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
3469 argument expansion.
3470
6c66f733
JJ
34712011-05-20 Jakub Jelinek <jakub@redhat.com>
3472
3473 PR tree-optimization/49073
3cda91d8
UB
3474 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
3475 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
3476 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
3477
0ea80a16
RG
34782011-05-20 Richard Guenther <rguenther@suse.de>
3479
3480 PR middle-end/48849
3481 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
3482 of pointer types the same way the middle-end does.
3483
fb291a1e
RG
34842011-05-20 Richard Guenther <rguenther@suse.de>
3485
3cda91d8
UB
3486 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
3487 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 3488
37cb25ed
QN
34892011-05-19 Quentin Neill <quentin.neill@amd.com>
3490
3491 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
3492 (fma4_fmaddsub): Likewise
3493
a30726a4
JH
34942011-05-19 Jan Hubicka <jh@suse.cz>
3495
3496 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
3497 (GIMPLE_TYPE_PAIR_SIZE): New macro.
3498 (type_pair_cache): New static var.
3499 (lookup_type_pair): Use fixed sized custom hash; make inline.
3500 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
3501 calls of lookup_type_pair.
3502 (print_gimple_types_stats): Remove cache stats.
3503 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
3504 and gtc_ob.
3505
0955cf61
UB
35062011-05-19 Uros Bizjak <ubizjak@gmail.com>
3507
3508 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
3509 when TARGET_RDRND is active.
3510 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
3511 Generate dummy SImode target register when target is NULL.
3512
12d844c8
JM
35132011-05-19 Joseph Myers <joseph@codesourcery.com>
3514
3515 * config/arm/arm-fpus.def: New.
3516 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
3517 arm-fpus.def.
3518 * config/arm/arm-tables.opt: Regenerate.
3519 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
3520 (arm_option_override): Don't decode FPU name to string here.
3521 * config/arm/arm.opt (mfpu=): Use Enum.
3522 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
3523 Update dependencies.
3524
9e350e99
JM
35252011-05-19 Joseph Myers <joseph@codesourcery.com>
3526
3527 * collect2.c: Include diagnostic.h.
3528 (fatal_perror, fatal, error, fancy_abort): Remove.
3529 (main): Set progname. Call xmalloc_set_program_name and
3530 diagnostic_initialize.
3531 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
3532 scan_libraries, resolve_lib_name): Call fatal_error instead of
3533 fatal and fatal_perror.
3534 * collect2.h (error, fatal, fatal_perror): Don't declare.
3535 * tlink.c: Include diagnostic-core.h.
3536 (recompile_files): Call fatal_error instead of fatal_perror.
3537 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
3538 pretty-print.o and input.o.
3539 (collect2.o, tlink.o): Update dependencies.
3540
86ff4081
RO
35412011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3542
3543 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
3544
2ca48caa
RO
35452011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3546
3547 PR target/40483
3548 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
3549 COMDAT group syntax, both SPARC and x86 variants.
3550 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
3551 * configure: Regenerate.
3552 * config/sol2.h (TARGET_SOLARIS): Define.
3553 (PUSHSECTION_FORMAT): Remove.
3554 (SECTION_NAME_FORMAT): Define.
3555 * config/sol2.c: Include hashtab.h.
3556 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
3557 expansion, using SECTION_NAME_FORMAT.
3558 (solaris_comdat_htab): New variable.
3559 (struct comdat_entry): Define.
3560 (comdat_hash): New function.
3561 (comdat_eq): New function.
3562 (solaris_elf_asm_comdat_section): New function.
3563 (solaris_define_comdat_signature): New function.
3564 (solaris_code_end): New function.
3565 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
3566 (solaris_code_end): Declare.
3567 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
3568 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
3569 solaris_code_end.
3570 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
3571 Remove ATTRIBUTE_UNUSED.
3572 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
3573 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 3574 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
3575 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
3576 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
3577 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
3578 (PUSHSECTION_FORMAT): Remove.
3579 (SECTION_NAME_FORMAT): Redefine.
3580
da5fb469
KT
35812011-05-19 Kai Tietz <ktietz@redhat.com>
3582
3583 * tree-cfg.c (verify_gimple_assign_binary): Barf on
3584 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
3585 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
3586
1651e703 35872011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
3588 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3589
3590 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
3591
e497b9bd
RG
35922011-05-19 Richard Guenther <rguenther@suse.de>
3593
3594 PR middle-end/48985
3595 * tree-object-size.c (addr_object_size): If the pointed-to
3596 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
3597
31b3ca64
RG
35982011-05-19 Richard Guenther <rguenther@suse.de>
3599
3600 * gimple.c (gimple_types_compatible_p_1): Compare names of
3601 the types themselves.
3602 (iterative_hash_gimple_type): And hash them that way.
3603 (gimple_register_type_1): If we register a main variant properly
3604 initialize the leader to ourselves.
3605
bb8d292d
TV
36062011-05-19 Tom de Vries <tom@codesourcery.com>
3607
3608 PR target/45098
3609 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
3610 get_loop_invariant_expr_id.
3611 (get_loop_invariant_expr_id): Use get_expr_id.
3612 (parm_decl_cost): New function.
3613 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
3614 Improve bound cost estimation. Use different inv_expr_id for elim and
3615 express cases.
3616
a53c5024
TV
36172011-05-19 Tom de Vries <tom@codesourcery.com>
3618
3619 PR target/45098
3620 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
3621 cost_base.cost == 0.
3622
31f9eb59
L
36232011-05-18 H.J. Lu <hongjiu.lu@intel.com>
3624
3625 PR target/49002
66bd20e7
EB
3626 * config/i386/sse.md
3627 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
3628 load cast.
31f9eb59 3629
681056ae
JJ
36302011-05-18 Jakub Jelinek <jakub@redhat.com>
3631
3632 PR tree-optimization/49039
3633 * tree-vrp.c (extract_range_from_binary_expr): For
3634 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
3635 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
3636
b5ee6752
TV
36372011-05-18 Tom de Vries <tom@codesourcery.com>
3638
3639 PR target/45098
3640 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
3641
0bda47a3
UB
36422011-05-18 Uros Bizjak <ubizjak@gmail.com>
3643
3644 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
3645 (*tls_global_dynamic_64): Ditto.
3646 (*tls_local_dynamic_base_32_gnu): Ditto.
3647 (*tls_local_dynamic_base_64): Ditto.
3648 (tls_initial_exec_64_sun): Ditto.
3649
033b0805
SH
36502011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
3651
3652 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
3653 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
3654 bf592-none.
3655 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
3656 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
3657 * config/bfin/bfin.c (bfin_cpus): Add bf592.
3658 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 3659 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
3660 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
3661 * config/bfin/elf.h (LIB_SPEC): Add bf592.
3662
ba163417
JM
36632011-05-18 Joseph Myers <joseph@codesourcery.com>
3664
3665 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 3666 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
3667 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
3668 target_thread_pointer, arm_structure_size_boundary, struct
3669 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
3670 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
3671 (arm_option_override) Don't process most enumerated option values here.
3672 Don't process target_fpe_name here. Work with integer not string for
3673 structure size boundary; use separate diagnostics for each case.
ba163417
JM
3674 * config/arm/arm.h (enum float_abi_type, enum
3675 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
3676 to arm-opts.h.
3677 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
3678 arm_structure_size_boundary): Remove.
3679 * config/arm/arm.opt (mabi=): Use Enum and Init.
3680 (arm_abi_type): New Enum and EnumValue entries.
3681 (mfloat-abi=): Use Enum and Init.
3682 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 3683 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
3684 (mfp16-format=): Use Enum and Init.
3685 (arm_fp16_format_type): New Enum and EnumValue entries.
3686 (mstructure-size-boundary=): Use UInteger and Init.
3687 (mtp=): Use Enum and Init.
3688 (arm_tp_type): New Enum and EnumValue entries.
3689
179184e3
RG
36902011-05-18 Richard Guenther <rguenther@suse.de>
3691
3692 PR tree-optimization/49018
3693 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
3694 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
3695 gimple_has_side_effects.
3696
93b2a207
RG
36972011-05-18 Richard Guenther <rguenther@suse.de>
3698
3699 * gimple.c (gimple_register_type_1): New function, split out from ...
3700 (gimple_register_type): ... here. Avoid infinite recursion.
3701
b010117a
IR
37022011-05-18 Ira Rosen <ira.rosen@linaro.org>
3703
3704 PR tree-optimization/41881
3705 * tree-vectorizer.h (struct _loop_vec_info): Add new field
3706 reduction_chains along with a macro for its access.
3707 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
3708 (destroy_loop_vec_info): Free reduction chains.
3709 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
3710 (vect_is_slp_reduction): New function.
3711 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
3712 (vect_create_epilog_for_reduction): Support SLP reduction chains.
3713 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
3714 definition types for reduction chains.
3715 (vect_supported_load_permutation_p): Don't allow permutations for
3716 reduction chains.
3717 (vect_analyze_slp_instance): Support reduction chains.
3718 (vect_analyze_slp): Try to build SLP instance from reduction chains.
3719 (vect_get_constant_vectors): Handle reduction chains.
3720 (vect_schedule_slp_instance): Mark the first statement of the
3721 reduction chain as reduction.
3722
e14c1050
IR
37232011-05-18 Ira Rosen <ira.rosen@linaro.org>
3724
3725 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
3726 names for group elements access.
3727 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
3728 reduction chains as well. Remove data reference and interleaving
3729 related words from the fields names.
3730 * tree-vect-loop.c (vect_transform_loop): Use new names for group
3731 elements access.
3732 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
3733 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
3734 vect_update_interleaving_chain, vect_same_range_drs,
3735 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
3736 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
3737 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
3738 vect_analyze_group_access, vect_analyze_data_ref_access,
3739 vect_create_data_ref_ptr, vect_transform_strided_load,
3740 vect_record_strided_load_vectors): Likewise.
3741 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
3742 vect_model_load_cost, vectorizable_store, vectorizable_load,
3743 vect_remove_stores, new_stmt_vec_info): Likewise.
3744 * tree-vect-slp.c (vect_build_slp_tree,
3745 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
3746
51c213f7
RG
37472011-05-18 Richard Guenther <rguenther@suse.de>
3748
3749 PR middle-end/48989
3750 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
3751 operand verification.
3752 (verify_gimple_assign_binary): Likewise.
3753 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
3754 to non-1-precision BOOLEAN_TYPEs.
3755
8f5e5434
TV
37562011-05-18 Tom de Vries <tom@codesourcery.com>
3757
3758 PR target/45098
3759 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
3760
116bc3a4
JJ
37612011-05-18 Jakub Jelinek <jakub@redhat.com>
3762
3763 PR tree-optimization/49000
3764 * tree-ssa.c (execute_update_addresses_taken): Call
3765 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
3766 be rewritten and decl has been marked for renaming, reset
3767 the debug stmt.
3768
26a8964c
JM
37692011-05-17 Joseph Myers <joseph@codesourcery.com>
3770
3771 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
3772 enum_opts_set when testing if attributes have set -mfpmath=.
3773
82bd45d7
RS
37742011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
3775
3776 * config/mips/mips.c (mips_handle_option): Remove unused variable.
3777
267ffce3
UB
37782011-05-17 Uros Bizjak <ubizjak@gmail.com>
3779
3780 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
3781 info->entry with 0
3782 * tree-inline.c (maybe_inline_call_in_expr): Initialize
3783 id.transform_lang_insert_block with NULL.
3784
37852011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
3786
3787 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
3788 (output_fp_compare): Change args 3 and 4 to bool.
3789 (ix86_expand_call): Change arg 6 to bool.
3790 (ix86_attr_length_immediate_default): Change arg 2 to bool.
3791 (ix86_attr_length_vex_default): Change arg 3 to bool.
3792 * config/i386/i386.md: Update all uses.
3793 * config/i386/i386.c: Ditto.
3794 (ix86_flags_dependent): Change return type to bool.
3795
5beaf664
RG
37962011-05-17 Richard Guenther <rguenther@suse.de>
3797
3798 * gimple.c (type_hash_pair_compare): Fix comparison.
3799
008bad7a
RG
38002011-05-17 Richard Guenther <rguenther@suse.de>
3801
3802 * gimple.c (iterative_hash_gimple_type): Simplify singleton
3803 case some more, fix final hash value of the non-singleton case.
3804
36461340
RG
38052011-05-17 Richard Guenther <rguenther@suse.de>
3806
3807 PR bootstrap/49013
3808 Revert
3809 2011-05-16 Richard Guenther <rguenther@suse.de>
3810
3811 * gimple.c (gimple_types_compatible_p_1): Use names of the
3812 type itself, not its main variant.
3813 (iterative_hash_gimple_type): Likewise.
3814
6b6a59f3
RG
38152011-05-17 Richard Guenther <rguenther@suse.de>
3816
3817 * gimple.c (gimple_register_canonical_type): Use the main-variant
3818 leader for computing the canonical type.
3819
4ffc4134
NC
38202011-05-17 Nick Clifton <nickc@redhat.com>
3821
a1d8754e
NC
3822 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
3823 moves.
3824
4ffc4134
NC
3825 * config/rx/rx.md: Add peephole to remove redundant extensions
3826 after loads.
39960f7a
NC
3827 (bitset_in_memory): Use rx_restricted_mem_operand.
3828 (bitinvert_in_memory): Likewise.
3829 (bitclr_in_memory): Likewise.
4ffc4134 3830
b3db92ac
KI
38312011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
3832 Nick Clifton <nickc@redhat.com>
3833
3834 * config/rx/rx.md: Add peepholes to match a register move followed
3835 by a comparison of the moved register. Replace these with an
3836 addition of zero that does both actions in one instruction.
3837
8637e32a
JJ
38382011-05-17 Jakub Jelinek <jakub@redhat.com>
3839
3840 PR target/48986
3841 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
3842 predicate to allow CONST_INT.
3843 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
3844
8023568e
JM
38452011-05-16 Joseph Myers <joseph@codesourcery.com>
3846
3847 * opts-common.c (opt_enum_arg_to_value): New.
3848 * opts.h (opt_enum_arg_to_value): Declare.
3849 * config/i386/i386.opt (fpmath): Remove.
3850 (mfpmath=): Use Enum, Init and Save.
3851 (fpmath_unit): New Enum and EnumValue entries.
3852 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
3853 name for function fpmath state.
3854 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
3855 * config/i386/i386.c: Include diagnostic.h.
3856 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 3857 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 3858 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 3859 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
3860 (x86_function_specific_save, ix86_function_specific_restore):
3861 Don't handle fpmath state specially.
3862 (ix86_function_specific_print): Pass fpmath state to
3863 ix86_target_string instead of printing in this function.
3864 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
3865 Handle enum attributes.
3866 (IX86_ATTR_ENUM, ix86_opt_enum): New.
3867 (ix86_valid_target_attribute_tree): Update option_strings
3868 handling. Handle fpmath as enum option.
3869 (ix86_can_inline_p): Update field names for function fpmath state.
3870 (ix86_expand_builtin): Update call to ix86_target_string.
3871 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
3872 (ix86_fpmath): Remove.
3873 * config/i386/t-i386 (i386.o): Update dependencies.
3874
9e8d926e
JM
38752011-05-16 Joseph Myers <joseph@codesourcery.com>
3876
3877 PR preprocessor/48677
3878 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
3879 from decoded_options[0], not from itself.
3880
f6449011
UB
38812011-05-16 Uros Bizjak <ubizjak@gmail.com>
3882
3883 * config/i386/constraints.md (z): New constraint.
3884 * config/i386/i386.c (c): New mode attribute.
3885 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
3886 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
3887 constraint for operand 0.
3888 (*call_vzeroupper): Ditto.
3889 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
3890 (*call_rex64_ms_sysv_vzeroupper): Ditto.
3891 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
3892 Use "lzm" constraint for operand 0.
3893 (*call_pop_vzeroupper): Ditto.
3894 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
3895 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
3896 constraint for operand 0.
3897 (*sibcall_vzeroupper): Ditto.
3898 (*sibcall_rex64_ms_sysv): Ditto.
3899 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
3900 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
3901 *sibcall_pop_1. Use "Uz" constraint for operand 0.
3902 (*sibcall_pop_vzeroupper): Ditto.
3903 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
3904 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
3905 mode iterator. Use "<c>zm" constraint for operand 1.
3906 (*call_value_vzeroupper): Ditto.
3907 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 3908 for operand 1.
f6449011
UB
3909 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
3910 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
3911 *call_value_pop_1. Use "lzm" constraint for operand 1.
3912 (*call_value_pop_vzeroupper): Ditto.
3913 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
3914 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
3915 mode iterator. Use "Uz" constraint for operand 1.
3916 (*sibcall_value_vzeroupper): Ditto.
3917 (*sibcall_value_rex64_ms_sysv): Ditto.
3918 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
3919 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
3920 constraint for operand 1.
3921 (*sibcall_value_pop_vzeroupper): Ditto.
3922 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
3923 and "z" constraint for operand 2.
3924 (*tls_global_dynamic_32_gnu): Ditto.
3925 (*tls_local_dynamic_base_32_gnu): Ditto.
3926 (*tls_local_dynamic_base_64): Ditto.
3927 (*tls_local_dynamic_32_once): Ditto.
3928 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
3929 Update all callers.
3930 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
3931
c11b6902
RG
39322011-05-16 Richard Guenther <rguenther@suse.de>
3933
3934 * gimple.c (gimple_types_compatible_p_1): Use names of the
3935 type itself, not its main variant.
3936 (iterative_hash_gimple_type): Likewise.
3937
1e83b5f1
RG
39382011-05-16 Richard Guenther <rguenther@suse.de>
3939
f6449011
UB
3940 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
3941 always visit pointer target and function result and argument types.
1e83b5f1 3942
62e36382
JM
39432011-05-16 Jason Merrill <jason@redhat.com>
3944
3945 PR c++/48999
3946 * tree-inline.c (copy_statement_list): Put back recursion.
3947
687027a4
GJL
39482011-05-16 Georg-Johann Lay <avr@gjlay.de>
3949
3950 PR target/27663
3951 PR target/41076
3952 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
3953 * config/avr/avr.md ("*ior<mode>qi.byte0",
3954 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
3955
f24a5190
GJL
39562011-05-16 Georg-Johann Lay <avr@gjlay.de>
3957
3958 PR target/45099
3959 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
3960 register is needed for a function argument.
3961
3066f593
RG
39622011-05-16 Richard Guenther <rguenther@suse.de>
3963
3964 * gimple.c (struct type_hash_pair): New type.
3965 (type_hash_pair_compare): New function.
f6449011 3966 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 3967
b2ab2cf4
RE
39682011-05-16 Revital Eres <revital.eres@linaro.org>
3969
f6449011 3970 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 3971
dfb737fc
UB
39722011-05-15 Uros Bizjak <ubizjak@gmail.com>
3973
3974 * config/i386/i386.md (floating point move splitters): Fix
3975 usage of standard_80387_constant_p.
f6449011 3976 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 3977
8caa1de0
UB
39782011-05-15 Uros Bizjak <ubizjak@gmail.com>
3979
3980 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
3981
8a519095
EB
39822011-05-14 Eric Botcazou <ebotcazou@adacore.com>
3983
3984 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
3985 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
3986 (tree_ssa_lim_finalize): Likewise.
3987
479fecd3
UB
39882011-05-14 Uros Bizjak <ubizjak@gmail.com>
3989
3990 * config/i386/constraint.md (Yd, Yx): New register constraints.
3991 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
3992 Yd conditional register constraint.
3993 (*movtf_internal): Use standard_sse_constant_opcode.
3994 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
3995 Yx conditional register constraint.
3996 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
3997 Yd conditional register constraint. Use standard_sse_constant_p to
3998 check for valid SSE constants and call standard_sse_constant_opcode to
3999 output SSE insn.
4000 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
4001 constants and call standard_sse_constant_opcode to output SSE insn.
4002 * config/i386/i386.c (ix86_option_ovverride_internal): Set
4003 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
4004 optimize_size is set.
4005 (standard_sse_constant_opcode): Output conditional AVX insn templates.
4006
2d8c9ad5
TB
40072011-05-14 Tobias Burnus <burnus@net-b.de>
4008
4009 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
4010
411a20d6
MJ
40112011-05-13 Martin Jambor <mjambor@suse.cz>
4012
4013 * ipa-prop.c (ipa_cst_from_jfunc): New function.
4014 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
4015 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
4016 (evaluate_conditions_for_ipcp_clone): Removed.
4017 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
4018 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
4019 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
4020
dc764d10
EB
40212011-05-13 Eric Botcazou <ebotcazou@adacore.com>
4022
4023 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
4024 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
4025 lieu of MAY_HAVE_DEBUG_STMTS.
4026 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
4027 debug statements if !MAY_HAVE_DEBUG_STMTS.
4028
9f47a24e
MT
40292011-05-13 Martin Thuresson <martint@google.com>
4030
4031 PR gcov-profile/47793
4032 * libgcov.c (gcov_exit): Support relative profile paths.
4033 * doc/invoke.texi (-fprofile-dir): Update for above change.
4034
b8a71aed
RG
40352011-05-13 Richard Guenther <rguenther@suse.de>
4036
4037 * gimple.c (gimple_canonical_types_compatible_p): Do not use
4038 type-pair caching, do not compare hashes.
4039
eb9f9259
NF
40402011-05-13 Nathan Froyd <froydnj@codesourcery.com>
4041
4042 PR middle-end/48965
4043 * tree-cfg.c (edge_to_cases_cleanup): Return true.
4044 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
4045
3c6cbf7a
KT
40462011-05-13 Kai Tietz <ktietz@redhat.com>
4047
4048 * gimplify.c (gimplify_expr): Make sure operand is boolified.
4049 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
4050 compatible type for TRUTH_NOT_EXPR.
4051
2e7f5dc0
L
40522011-05-13 H.J. Lu <hongjiu.lu@intel.com>
4053
dc764d10 4054 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
4055 (ix86_hard_regno_mode_ok): Change return value to bool. Use
4056 can_create_pseudo_p ().
4057
e834e95c
RG
40582011-05-13 Richard Guenther <rguenther@suse.de>
4059
4060 PR lto/48978
4061 * gimple.c (iterative_hash_gimple_type): Revert change in
4062 pointer target and function result and argument hashing.
4063
34203483
UB
40642011-05-13 Uros Bizjak <ubizjak@gmail.com>
4065
4066 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
4067 (*movxf_internal_nointeger): Ditto.
4068 (*movdf_internal_rex64): Ditto.
4069 (*movdf_internal): Ditto.
4070 (*movdf_internal_nointeger): Ditto.
4071 (*movsf_internal): Ditto.
4072 (sincos splitters): Use can_create_pseudo ().
4073
7eb68c06
JM
40742011-05-13 Joseph Myers <joseph@codesourcery.com>
4075
4076 * config/i386/i386-opts.h: New.
4077 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
4078 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
4079 ix86_section_threshold): Remove.
4080 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
4081 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
4082 OPT_mbranch_cost_.
4083 (ix86_option_override_internal): Don't decode strings for options
4084 other than -march=, -mtune= and -mfpmath=. Don't allow for
4085 __attribute__ uses in remaining diagnostics for options with
34203483 4086 string arguments. Don't check for integer arguments being negative.
7eb68c06 4087 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 4088 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
4089 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
4090 ix86_branch_cost, ix86_section_threshold): Remove.
4091 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
4092 HeaderInclude.
4093 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
4094 but not Var.
4095 (masm=): Use Enum and Init.
4096 (asm_dialect): New Enum and EnumValue entries.
4097 (mbranch-cost=): Use UInteger.
4098 (mlarge-data-threshold=): Use UInteger and Init.
4099 (mcmodel=): Use Enum and Init.
4100 (cmodel): New Enum and EnumValue entries.
4101 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
4102 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
4103 mregparm=): Use UInteger.
4104 (mstringop-strategy=): Use Enum and Init.
4105 (stringop_alg): New Enum and EnumValue entries.
4106 (mtls-dialect=): Use Enum and Init.
4107 (tls_dialect): New Enum and EnumValue entries.
4108 (mabi=): Use Enum and Init.
4109 (calling_abi): New Enum and EnumValue entries.
4110 (mveclibabi=): Use Enum and Init.
4111 (ix86_veclibabi): New Enum and EnumValue entries.
4112
f67e203c
NC
41132011-05-13 Nick Clifton <nickc@redhat.com>
4114
34203483
UB
4115 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
4116 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 4117
221df0b6
KT
41182011-05-13 Kai Tietz <ktietz@redhat.com>
4119
4120 PR middle-end/48984
4121 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
4122 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
4123 (gimple_boolify): Check for cast for boolean_type_node instead for
4124 BOOLEAN_TYPE.
4125
208cb8cb
RG
41262011-05-13 Richard Guenther <rguenther@suse.de>
4127
4128 PR tree-optimization/48172
4129 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
4130 multiplying by number of iterations for equal step.
4131 (vect_create_cond_for_alias_checks): Likewise.
4132
b88ecf55
AS
41332011-05-13 Andreas Schwab <schwab@redhat.com>
4134
4135 * configure.ac: Use AS_HELP_STRING throughout.
4136 * configure: Regenerate.
4137
569b527e
L
41382011-05-12 H.J. Lu <hongjiu.lu@intel.com>
4139
34203483 4140 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
4141 (ix86_emit_restore_regs_using_mov): Likewise.
4142 (ix86_emit_restore_sse_regs_using_mov): Likewise.
4143
8b9a1428
AS
41442011-05-12 Anatoly Sokolov <aesok@post.ru>
4145
4146 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
4147 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
4148 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
4149 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
4150 RTX_OK_FOR_OLO10_P): ...here.
4151 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
4152 SYMBOLIC_CONST.
4153
1d15f620
KT
41542011-05-12 Kai Tietz <ktietz@redhat.com>
4155
4156 * gimplify.c (gimple_boolify): Re-boolify expression
4157 arguments even if expression type is of kind BOOLEAN_TYPE.
4158 (gimplify_boolean_expr): Removed.
4159 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
4160 and XOR. Additional take care that we keep expression's type.
4161 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
4162 of TRUTH_AND|OR|XOR_EXPR.
4163
c2b5fc8d
JJ
41642011-05-12 Jakub Jelinek <jakub@redhat.com>
4165
4166 PR tree-optimization/48975
4167 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
4168 on all bbs here and free and clear ifc_bbs at the end.
4169
61332f77
RG
41702011-05-12 Richard Guenther <rguenther@suse.de>
4171
4172 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
4173 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
4174 until after simple checks.
4175 (gimple_types_compatible_p): Likewise.
4176 (iterative_hash_gimple_type): Always hash pointer targets
4177 and function return and argument types.
4178 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
4179 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
4180 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
4181 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
4182 completely in the simple compare section.
4183 (gimple_register_canonical_type): Query the cache again after
4184 registering.
4185
e2a3a5f1
RG
41862011-05-12 Richard Guenther <rguenther@suse.de>
4187
4188 PR tree-optimization/48172
4189 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
4190 the number of iterations from the segment size calculation.
4191 (vect_create_cond_for_alias_checks): Adjust.
4192
2c703f3a
JJ
41932011-05-12 Jakub Jelinek <jakub@redhat.com>
4194
4195 PR debug/48967
4196 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
4197 if validate_subreg fails.
4198
41992011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
4200
4201 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
4202 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
4203 early.
4204
87e91fca
DD
42052011-05-12 DJ Delorie <dj@redhat.com>
4206
d53903d6 4207 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
4208 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
4209 created builtin into rx_builtins array.
4210 (rx_builtin_decl): New function.
34203483 4211 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 4212
5f2f13fd
DD
42132011-05-12 DJ Delorie <dj@redhat.com>
4214 Nick Clifton <nickc@redhat.com>
4215
4216 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
4217 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
4218 (rx_is_legitimate_address): Add pre-decrement and post-increment
4219 addressing in HImode and QImode. Fix test for out of range
4220 REG+INT addressing.
87e91fca 4221 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 4222 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 4223 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 4224 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 4225
57421f45
JM
42262011-05-11 Jason Merrill <jason@redhat.com>
4227
4228 * tree.c (type_hash_canon): Use struct tree_type_non_common.
4229
898c90c0
EB
42302011-05-11 Eric Botcazou <ebotcazou@adacore.com>
4231
4232 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
4233 reindent the subsequent block.
4234
79bec923
ST
42352011-05-11 Satoru Takabayashi <satorux@google.com>
4236 Paul Pluzhnikov <ppluzhnikov@google.com>
4237
34203483 4238 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
4239 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
4240 * config.in: Add LINKER_HASH_STYLE.
4241 * configure.ac: Add --with-linker-hash-style.
4242 * configure: Regenerate.
79bec923 4243
d0340959
RG
42442011-05-11 Richard Guenther <rguenther@suse.de>
4245
4246 PR middle-end/48964
4247 * gimple.c (iterative_hash_canonical_type): Fix typo.
4248
cb032fee
UB
42492011-05-11 Uros Bizjak <ubizjak@gmail.com>
4250
4251 * config/i386/i386.c (legitimize_tls_address)
479fecd3 4252 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
4253 expanders directly for TARGET_GNU2_TLS. Determine pic and
4254 __tls_get_addr symbol reference here. Update call to
4255 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 4256 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
4257 expanders directly for TARGET_GNU2_TLS. Determine
4258 __tls_get_addr symbol reference here. Update call to
4259 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
4260 unique UNSPEC REG_EQUIV to libcall block.
4261 (ix86_tls_get_addr): Declare static.
4262 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
4263 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
4264 Do not determine pic and __tls_get_addr symbol reference here. Do not
4265 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
4266 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
4267 (tls_global_dynamic_64): Add operand 2. Do not determine
4268 __tls_get_addr symbol reference here. Do not call
4269 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
4270 (tls_local_dynamic_base64): Ditto for operand 1.
4271
6d3cc8f0
EB
42722011-05-11 Eric Botcazou <ebotcazou@adacore.com>
4273
4274 * function.c (expand_function_start): Initialize stack_check_probe_note
4275 only if the generic stack checking mechanism is used.
4276
51e020fc
RG
42772011-05-11 Richard Guenther <rguenther@suse.de>
4278
4279 PR tree-optimization/15256
4280 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
4281 (A & B) | C, combine (A op CST1) op CST2.
4282 (tree_ssa_forward_propagate_single_use_vars): Only bother to
4283 visit assigns that have uses.
4284
51545682
NF
42852011-05-11 Nathan Froyd <froydnj@codesourcery.com>
4286
cb032fee 4287 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
4288 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
4289 (unpack_ts_type_common_value_fields): ...this. Update comment.
4290 (unpack_value_fields): Adjust for renaming.
4291 (lto_input_ts_type_tree_pointers): Split into...
4292 (lto_input_ts_type_common_tree_pointer): ...this and...
4293 (lto_input_ts_type_non_common_tree_pointers): ...this.
4294 (lto_input_tree_pointers): Adjust for above split.
4295 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
4296 (pack_ts_type_common_value_fields): ...this. Update comment.
4297 (lto_output_ts_type_tree_pointers): Split into...
4298 (lto_output_ts_type_common_tree_pointers): ...this and...
4299 (lto_output_ts_type_non_common_tree_pointers): ...this.
4300 (lto_output_tree_pointers): Adjust for above split.
4301 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
4302 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
4303 * stor-layout.c (vector_type_mode): Adjust location of mode field.
4304 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
4305 Define.
4306 (struct tree_type): Split into...
4307 (struct tree_type_common: ...this and...
4308 (struct tree_type_with_lang_specific): ...this and...
4309 (struct tree_type_non_common): ...this. Adjust accessor macros
4310 accordingly.
4311 (TYPE_VALUES_RAW): Define.
4312 (union tree_node): Update for above changes.
4313 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
4314 TS_TYPE_NON_COMMON.
4315 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
4316 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
4317 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
4318 * treestructu.def (TS_TYPE): Remove.
4319 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
4320 Define.
4321
b03c3082
JJ
43222011-05-11 Jakub Jelinek <jakub@redhat.com>
4323
4324 PR debug/48159
4325 * tree-ssa.c (reset_debug_uses): New function.
4326 * tree-flow.h (reset_debug_uses): New prototype.
4327 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
4328 * tree-loop-distribution.c (generate_loops_for_partition): Call
4329 reset_debug_uses on the stmts that will be removed. Keep around
4330 all debug stmts, don't count them as bits in partition bitmap.
4331 (generate_builtin): Don't count debug stmts or labels as bits in
4332 partition bitmap.
4333
b5e04de5
RG
43342011-05-11 Richard Guenther <rguenther@suse.de>
4335
4336 * gimple.c (gimple_type_hash_1): Merge with ...
4337 (gimple_type_hash): ... this.
4338 (gtc_visit): Remove mode parameter and simplify accordingly.
4339 (gimple_types_compatible_p_1): Likewise.
4340 (gimple_types_compatible_p): Likewise.
4341 (iterative_hash_gimple_type): Likewise.
4342 (visit): Likewise.
4343 (gimple_type_eq): Adjust.
4344
fc6970e4
RE
43452011-05-11 Revital Eres <revital.eres@linaro.org>
4346
4347 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
4348 enters the branch create an anti edge in the opposite direction
4349 to prevent the creation of reg-moves.
4350 * modulo-sched.c: Adjust comment to reflect the fact we are
4351 scheduling closing branch.
4352 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
4353 (stage_count): New field in struct partial_schedule.
4354 (calculate_stage_count): New function.
4355 (normalize_sched_times): Rename to reset_sched_times and handle
4356 incrementing the sched time of the nodes by a constant value
4357 passed as parameter.
4358 (duplicate_insns_of_cycles): Skip closing branch.
4359 (sms_schedule_by_order): Schedule closing branch.
4360 (ps_insn_find_column): Handle closing branch.
4361 (sms_schedule): Call reset_sched_times and adjust the code to
4362 support scheduling of the closing branch.
4363 (ps_insert_empty_row): Update calls to normalize_sched_times
4364 and rotate_partial_schedule functions.
4365
41a58a92
RG
43662011-05-11 Richard Guenther <rguenther@suse.de>
4367
4368 PR middle-end/48953
4369 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
4370
e9f8dcf9
JM
43712011-05-11 Joseph Myers <joseph@codesourcery.com>
4372
cb032fee
UB
4373 * opts.c (finish_options): Move warning settings from process_options.
4374 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 4375
10c224a9
RG
43762011-05-11 Richard Guenther <rguenther@suse.de>
4377
4378 PR tree-optimization/18041
4379 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
4380 (simplify_bitwise_binary): ... this. Handle operand conversions
4381 by applying them to the result instead.
4382 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
4383
825b27de
RG
43842011-05-11 Richard Guenther <rguenther@suse.de>
4385
4386 * gimple.c (gimple_canonical_types_compatible_p): Split out
4387 from gimple_types_compatible_p and friends. Do not recurse
4388 to pointed-to types.
4389 (gimple_canonical_type_eq): Use it.
4390 (iterative_hash_canonical_type): Split out from
4391 iterative_hash_gimple_type and friends. Do not recurse
4392 to pointed-to types.
4393 (gimple_canonical_type_hash): Use it, allocate the hash here.
4394
ca756625
RE
43952011-05-11 Revital Eres <revital.eres@linaro.org>
4396
4397 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
4398 recognizing doloop.
4399
b8abece3
RE
44002011-05-11 Revital Eres <revital.eres@linaro.org>
4401
4402 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
4403 instead of PREV_INSN.
4404
ce7b3761
RE
44052011-05-11 Revital Eres <revital.eres@linaro.org>
4406
4407 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
4408 * loop-doloop.c (doloop_condition_get): Likewise.
4409 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
4410 (doloop_end): New.
4411 * config/arm/arm.md (*addsi3_compare0): Remove "*".
4412
a9dc9d37
NF
44132011-05-10 Nathan Froyd <froydnj@codesourcery.com>
4414
4415 * tree.def (CASE_LABEL_EXPR): Add an operand.
4416 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
4417
96703596
JM
44182011-05-10 Joseph Myers <joseph@codesourcery.com>
4419
4420 * c-decl.c (c_override_global_bindings_to_false): Remove.
4421 (global_bindings_p): Don't check
4422 c_override_global_bindings_to_false.
4423 * c-tree.h (c_override_global_bindings_to_false): Remove.
4424 * c-typeck.c (composite_type): Don't set
4425 c_override_global_bindings_to_false.
4426
dbcc9f08
MM
44272011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4428
4429 PR target/48857, 48495
4430 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
4431 (VSX_MODE): Ditto.
4432 (VSX_MOVE_MODE): Ditto.
4433 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
4434 VSX vector types. Add V2DImode.
4435 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
4436 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
4437 (MODES_TIEABLE_P): Ditto.
4438
4439 * config/rs6000/rs6000.c (rs6000_emit_move): Use
4440 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
4441 VSX_VECTOR_MODE.
4442 (init_cumulative_args): Ditto.
4443 (rs6000_function_arg_boundary): Ditto.
4444 (rs6000_function_arg_advance_1): Ditto.
4445 (rs6000_function_arg): Ditto.
4446 (rs6000_function_ok_for_sibcall): Ditto.
4447 (emit_frame_save): Ditto.
4448 (rs6000_function_value): Ditto.
4449 (rs6000_libcall_value): Ditto.
4450
4a68b4ca
JM
44512011-05-10 Joseph Myers <joseph@codesourcery.com>
4452
4453 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
4454 i386/darwin-lib.h to $libgcc_tm_file.
4455 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
4456
bcb521e9
JM
44572011-05-10 Joseph Myers <joseph@codesourcery.com>
4458
4459 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
4460
f10d3ac9
JM
44612011-05-10 Joseph Myers <joseph@codesourcery.com>
4462
cb032fee 4463 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
4464 * config/rs6000/rs6000-tables.opt: New file (generated).
4465 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
4466 rs6000/rs6000-tables.opt to extra_options.
4467 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
4468 * config/rs6000/rs6000.c (rs6000_select): Remove.
4469 (processor_target_table): Move contents to rs6000-cpus.def.
4470 (darwin_rs6000_override_options): Check
4471 global_options_set.x_rs6000_cpu_index instead of
4472 rs6000_select[1].string.
4473 (rs6000_option_override_internal): Likewise.
4474 (rs6000_handle_option): Don't assert that global structures are in
4475 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
4476 (rs6000_default_cpu): New variable.
4477 (rs6000_file_start): Set it instead of local default_cpu. Check
4478 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
4479 global_options_set.x_rs6000_tune_index instead of rs6000_select.
4480 (rs6000_darwin_file_start): Check rs6000_default_cpu and
4481 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
4482 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
4483 rs6000_select): Remove.
4484 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
4485 Remove.
4486 (mcpu=, mtune=): Use Var, Init, Enum and Save.
4487 * config/rs6000/t-rs6000
4488 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
4489 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
4490 global_options_set.x_rs6000_cpu_index instead of
4491 rs6000_select[1].string.
4492 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
4493 global_options_set.x_rs6000_cpu_index instead of
4494 rs6000_select[1].string.
4495
80cf2e08
JM
44962011-05-10 Joseph Myers <joseph@codesourcery.com>
4497
4498 * config.gcc (libgcc_tm_file): Define instead of including files
4499 from ../../libgcc/config/ in tm_file.
cb032fee 4500 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
4501 * configure: Regenerate.
4502 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
4503 libgcc_tm.h, cs-libgcc_tm.h): New.
4504 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
4505 (clean): Remove libgcc_tm.h.
4506 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
4507 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
4508 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
4509
fd01a351
GJL
45102011-05-10 Georg-Johann Lay <avr@gjlay.de>
4511
4512 PR target/48896
4513 * config/avr/avr.c (avr_ret_register): Return unsigned int
4514 instead of int.
4515 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
4516 it to avr_libcall_value.
4517 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
4518 expand_expr.
4519 (avr_expand_binop_builtin): Ditto.
4520 (avr_expand_unop_builtin): Ditto.
4521
34cc3c86
DD
45222011-05-10 DJ Delorie <dj@redhat.com>
4523
4524 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
4525 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
4526 * config/rx/rx.c (rx_align_for_label): Add label and
4527 uses_threshold parameters. Do not align when the label is not
4528 used enough.
4529 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
4530
be173289
RG
45312011-05-10 Richard Guenther <rguenther@suse.de>
4532
4533 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
4534 a series of conversions and apply foldings similar to what
4535 fold-const does.
4536 (tree_ssa_forward_propagate_single_use_vars): Call it.
4537
e7f78021
JJ
45382011-05-10 Jakub Jelinek <jakub@redhat.com>
4539
6ae70ea2
JJ
4540 PR tree-optimization/48611
4541 PR tree-optimization/48794
4542 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
4543 referenced from RESX or EH_DISPATCH arguments.
4544
e7f78021
JJ
4545 PR debug/48928
4546 * dfp.c (decimal_to_decnumber): Handle conversion from
4547 dconst{1,2,m1,half}.
4548
fca132b9
UB
45492011-05-09 Uros Bizjak <ubizjak@gmail.com>
4550
4551 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
4552 for !flag_prefer_avx128.
4553 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
4554
e4c03378
EB
45552011-05-09 Eric Botcazou <ebotcazou@adacore.com>
4556
4557 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
4558 (fold_ternary_loc): Use expr_location_or.
4559
805d6a75
L
45602011-05-09 H.J. Lu <hongjiu.lu@intel.com>
4561
4562 PR debug/48853
4563 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
4564 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
4565 Pmode and mem_mode is not VOIDmode.
4566
e4c03378 45672011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 4568
e4c03378
EB
4569 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
4570 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 4571
51e7f377
UB
45722011-05-09 Uros Bizjak <ubizjak@gmail.com>
4573
4574 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
4575 (const_pow2_1_to_8_operand): Ditto.
4576 (const_pow2_1_to_128_operand): Ditto.
4577 (const_pow2_1_to_32768_operand): Ditto.
4578 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
4579 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
4580 in insn constraint to check integer value of operand 3.
4581 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
4582
4583 (PINSR_MODE): New mode iterator.
4584 (sse2p4_1): New mode attribute.
4585 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
4586 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
4587 iterator. Use const_int_operand instead of
4588 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
4589 exact_log2 in insn constraint to check integer value of operand 3.
4590
45912011-05-09 Uros Bizjak <ubizjak@gmail.com>
4592
4593 * config/i386/sse.md (blendbits): Remove mode attribute.
4594 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
4595 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
4596 Check integer value of operand 3 in insn constraint.
4597
0ca8de87
RG
45982011-05-09 Richard Guenther <rguenther@suse.de>
4599
4600 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
4601 for diagnostics.
4602 (lto_symtab_merge): Likewise. Do not register types here.
4603 (lto_symtab_merge_decls_2): Likewise.
4604 (lto_symtab_merge_decls_1): Likewise.
4605 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
4606 * gimple.c (enum gtc_mode): Declare.
4607 (gimple_types_compatible_p): Make static.
4608
a9e6994a
AK
46092011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4610
4611 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
4612 temporary register to match Pmode.
4613
fb55d62e
UB
46142011-05-09 Uros Bizjak <ubizjak@gmail.com>
4615
4616 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
4617 and *vec_concatv4si_1_avx.
4618
eb1485a6
UB
46192011-05-09 Uros Bizjak <ubizjak@gmail.com>
4620
4621 PR rtl-optimization/48927
4622 * ira-conflicts.c (commutative_constraint_p): Use
4623 recog_data.alternative_enabled_p to disable alternatives where
4624 "enabled" attribute is false.
4625 (get_dup_num): Ditto.
4626 * ira-lives.c (single_reg_class): Ditto.
4627 (ira_implicitly_set_insn_hard_regs): Ditto.
4628
c46d001a
EB
46292011-05-09 Eric Botcazou <ebotcazou@adacore.com>
4630
4631 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
4632 (dataflow_set_preserve_mem_locs): Likewise.
4633
46342011-05-09 Philipp Thomas <pth@suse.de>
4635
6d9e7c41
PT
4636 * config/mep/mep.c (mep_validate_vliw): Syntax description
4637 should not be translated.
4638
d371df6f
JM
46392011-05-09 Joseph Myers <joseph@codesourcery.com>
4640
4641 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
4642 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 4643 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
4644 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
4645 MIPS_ARCH_OPTION_NATIVE): Define.
4646 * config/mips/mips.c (mips_cpu_info_table): Move contents to
4647 mips-cpus.def.
4648 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
4649 mips_parse_cpu): Remove.
4650 (mips_cpu_info_from_opt, mips_default_arch): New.
4651 (mips_handle_option): Don't assert that global structures are in
4652 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
4653 (mips_option_override): Use new variables and functions to set
eb1485a6 4654 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
4655 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
4656 definition.
4657 * config/mips/mips.opt (march=): Use ToLower and Enum.
4658 (mips): Use ToLower, Enum and Var.
4659 (mtune=): Use ToLower and Enum.
4660 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
4661
4fc07af9
JH
46622011-05-08 Jan Hubicka <jh@suse.cz>
4663
4664 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
4665 Arrange type pairs to be UID ordered.
4666 (gimple_lookup_type_leader): Make inline.
4667
2cf320a8
NC
46682011-05-09 Nick Clifton <nickc@redhat.com>
4669
61d6def5
NC
4670 PR target/48899
4671 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
4672 PROCESSOR_DEFAULT.
4673
2cf320a8
NC
4674 PR target/48897
4675 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
4676 variable 's'.
4677
4f82319d
CLT
46782011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
4679
4680 * combine.c (simplify_comparison): Abstract out parts into...
4681 (simplify_compare_const): ... new function.
4682 (try_combine): Generalize parallel arithmetic/compare combining
4683 to call simplify_compare_const() and CANONICALIZE_COMPARE().
4684
74605a11
JH
46852011-05-08 Jan Hubicka <jh@suse.cz>
4686
4687 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
4688 (cgraph_create_virtual_clone): Call hooks once virtual clone
4689 is finished.
74605a11 4690 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
4691 * ipa-cp.c (ipcp_estimate_growth): Use
4692 estimate_ipcp_clone_size_and_time.
74605a11
JH
4693 * ipa-inline-transform.c (clone_inlined_nodes): Update.
4694 * lto-cgraph.c (input_node): Update.
4695 * ipa-inline.c (recursive_inlining): Update.
4696 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
4697 (evaluate_conditions_for_known_args): Break out from ...
4698 (evaluate_conditions_for_edge): ... here.
4699 (evaluate_conditions_for_ipcp_clone): New function.
4700 (inline_node_duplication_hook): Update clone summary based
4701 on parameter map.
4702 (estimate_callee_size_and_time): Rename to ...
4703 (estimate_node_size_and_time): take NODE instead of EDGE;
4704 take POSSIBLE_TRUTHS as argument.
4705 (estimate_callee_size_and_time): Update.
4706 (estimate_ipcp_clone_size_and_time): New function.
4707 (do_estimate_edge_time): Update.
4708
5c049507
RG
47092011-05-08 Richard Guenther <rguenther@suse.de>
4710
4711 PR middle-end/48908
4712 PR middle-end/48905
4713 * expmed.c (expand_shift_1): Compute adjusted constant shift
4714 amount manually.
4715
f64c36ba
EB
47162011-05-08 Eric Botcazou <ebotcazou@adacore.com>
4717
4718 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
4719
c461a957
EB
47202011-05-08 Eric Botcazou <ebotcazou@adacore.com>
4721
4722 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
4723
7c74e556
JW
47242011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
4725
4726 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
4727
b4c0a884
JH
47282011-05-07 Jan Hubicka <jh@suse.cz>
4729
a9bcb3f0
EB
4730 * ipa-inline-transform.c (inline_call): Account when program size
4731 decreases.
b4c0a884 4732 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
4733 (edge_badness): Reorganize to be power 2 based; fix thinko when
4734 computing badness for negative growth; update comments to match
4735 reality; better dumps.
b4c0a884 4736
c99c0026
EB
47372011-05-07 Eric Botcazou <ebotcazou@adacore.com>
4738
4739 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
4740 type to bool and adjust comment.
4741 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
4742 (fold_mathfn_compare): Remove calls to global_bindings_p.
4743 (fold_inf_compare): Likewise.
4744 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
4745 * c-tree.h (global_bindings_p): Adjust prototype.
4746 * c-decl.c (global_bindings_p): Return bool and simplify.
4747
1400c8e5
ZD
47482011-05-07 Zdenek Dvorak <ook@ucw.cz>
4749
4750 PR tree-optimization/48837
4751 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
4752 when accumulator transformation is performed.
4753
5d0878e7
JH
47542011-05-06 Jan Hubicka <jh@suse.cz>
4755
a9bcb3f0
EB
4756 * i386.h (ix86_tune_indices): Add
4757 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 4758 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
4759 * i386.c (initial_ix86_tune_features): Add
4760 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
4761 (software_prefetching_beneficial_p): Remove predicate.
4762 (ix86_option_override_internal): Use new macro.
4763
58696ce5
JH
47642011-05-06 Jan Hubicka <jh@suse.cz>
4765
4766 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
4767
c47d0034
JH
47682011-05-06 Jan Hubicka <jh@suse.cz>
4769
4770 * cgraph.c (cgraph_add_thunk): Create real function node instead
4771 of alias node; finalize it and mark needed/reachale; arrange visibility
4772 to be right and add it into the corresponding same comdat group list.
4773 (dump_cgraph_node): Dump thunks.
4774 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
4775 cgraph_function_with_gimple_body_p,
4776 cgraph_first_function_with_gimple_body,
c47d0034
JH
4777 cgraph_next_function_with_gimple_body): New functions.
4778 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
4779 New macros.
4780 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
4781 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
4782 * cgraphunit.c (cgraph_finalize_function): Only look into possible
4783 devirtualization when optimizing.
4784 (verify_cgraph_node): Verify thunks.
4785 (cgraph_analyze_function): Analyze thunks.
4786 (cgraph_mark_functions_to_output): Output thunks only in combination
4787 with function they are assigned to.
4788 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
4789 alias into normal node.
4790 (assemble_thunks): New functoin.
4791 (cgraph_expand_function): Use it.
4792 * lto-cgraph.c (lto_output_node): Stream thunks.
4793 (input_overwrite_node): Stream in thunks.
4794 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
4795 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
4796 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
4797 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
4798 (inline_analyze_function): Do not care about thunk jump functions.
4799 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
4800 * ipa-prop.c (ipa_prop_write_jump_functions): Use
4801 cgraph_function_with_gimple_body_p.
4802 * passes.c (do_per_function_toporder): Use
4803 cgraph_function_with_gimple_body_p.
c47d0034
JH
4804 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
4805 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
4806 (function_called_by_processed_nodes_p): Likewise.
4807
d8f426ec
JM
48082011-05-06 Joseph Myers <joseph@codesourcery.com>
4809
4810 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
4811 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
4812 entries.
4813 (mabi=): Replace with separate entries for mabi=altivec,
4814 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
4815 mabi=ieeelongdouble and mabi=ibmlongdouble.
4816 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
4817 check for -mabi=spe without SPE ABI support here.
4818 (rs6000_handle_option): Replace OPT_mabi_ handling with
4819 OPT_mabi_altivec and OPT_mabi_spe handling.
4820
80bde45b
CC
48212011-05-06 Cary Coutant <ccoutant@google.com>
4822
4823 * dwarf2out.c (contains_subprogram_definition): New function.
4824 (should_move_die_to_comdat): Call it.
4825
a91926b9
JL
48262011-05-06 Jeff Law <law@redhat.com>
4827
4828 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
4829 remove_ctrl_stmt_and_useless_edges.
4830 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
4831 (fixup_template_block, thread_single_edge): Likewise.
4832 (mark_threaded_blocks): Use THREAD_TARGET.
4833
1fc1b66d
AM
48342011-05-06 Alan Modra <amodra@gmail.com>
4835
4836 PR target/48900
4837 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
4838 const0_rtx as the arg to the dummy __tls_get_addr libcall.
4839
e194de64
UB
48402011-05-06 Uros Bizjak <ubizjak@gmail.com>
4841
4842 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
4843 constraint modifier to "r".
4844
d740dc9e
JM
48452011-05-06 Joseph Myers <joseph@codesourcery.com>
4846
4847 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
4848 fall through for OPT_mcmodel_.
4849
cab78b15
AK
48502011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4851
4852 * config/s390/s390.c (s390_asm_trampoline_template): Comment
4853 instruction sizes.
e194de64 4854 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 4855
ee6824ae
RR
48562011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4857
eb1485a6
UB
4858 PR target/47930
4859 * config/arm/arm.opt (marm): Document it.
4860 (mthumb): Reject negative variant.
ee6824ae 4861
9ef58464
UB
48622011-05-06 Uros Bizjak <ubizjak@gmail.com>
4863
4864 PR target/48898
4865 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
4866 Fix typo in "ccvt" variable name.
4867
155b6176
TG
48682011-05-06 Tristan Gingold <gingold@adacore.com>
4869
4870 PR target/48895
4871 * config/vms/vms-ar.c (main): Remove cwd variable.
4872
3becc47b
JJ
48732011-05-06 Jakub Jelinek <jakub@redhat.com>
4874
4875 PR debug/48902
4876 * var-tracking.c (prepare_call_arguments): Move else before #endif.
4877
3d528853
NF
48782011-05-05 Nathan Froyd <froydnj@codesourcery.com>
4879
4880 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
4881 * gimplify.c (gimplify_switch_expr): Likewise.
4882 * omp-low.c (expand_omp_sections): Likewise.
4883 * tree-eh.c (lower_try_finally_switch): Likewise.
4884 (lower_eh_dispatch): Likewise.
4885 * tree.h (build_case_label): Declare.
4886 * tree.c (build_case_label): Define.
4887
deb5046b
JM
48882011-05-05 Jason Merrill <jason@redhat.com>
4889
4890 PR c++/40975
4891 * tree-inline.c (copy_tree_r): Use copy_statement_list.
4892 (copy_statement_list): Don't recurse.
4893 * stor-layout.c (copy_self_referential_tree_r): Don't allow
4894 STATEMENT_LIST.
4895
013c0411
JM
48962011-05-05 Joseph Myers <joseph@codesourcery.com>
4897
4898 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
4899 through from -mfpu= handling.
4900 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
4901
a0905f8b
BS
49022011-05-05 Bernd Schmidt <bernds@codesourcery.com>
4903
4904 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
4905 POST_MODIFY.
4906
fc4538e4
SE
49072011-05-05 Steve Ellcey <sje@cup.hp.com>
4908
4909 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
4910 for 11.31.
4911 (hppa[12]*-*-hpux11*): Ditto.
4912 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
4913 * config/ia64/hpux-unix2003.h: New.
4914 * config/pa/pa-hpux1131.opt: New.
4915 * config/pa/pa-hpux1131.h: New.
4916 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
4917 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 4918 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 4919
1e30c578
JJ
49202011-05-05 Jakub Jelinek <jakub@redhat.com>
4921
4922 PR debug/48853
4923 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
4924 instead of mode as 3rd argument to recursive call.
4925 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
4926 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
4927 VOIDmode.
4928 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
4929 don't give up if mode is Pmode and mem_mode is not VOIDmode.
4930 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
4931 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
4932
d19eb620
JB
49332011-05-05 Julian Brown <julian@codesourcery.com>
4934
4935 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
4936 parenthesis in D-register case.
4937
c860fe8c
JM
49382011-05-05 Joseph Myers <joseph@codesourcery.com>
4939
4940 * opt-functions.awk (var_type_struct): Handle Enum options.
4941 * optc-gen.awk: Don't check range of variables of character type.
4942 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
4943 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
4944 rs6000_sdata_name, rs6000_explicit_options): Remove.
4945 (rs6000_option_override_internal): Check for -malign-power here.
4946 Use global_options_set instead of rs6000_explicit_options.
4947 (rs6000_parse_fpu_option): Remove.
4948 (rs6000_handle_option): Access variables via opts and opts_set
4949 pointers. Use error_at and warning_at. Add fall-through
4950 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
4951 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
4952 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
4953 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
4954 here. Don't use rs6000_parse_fpu_option.
4955 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
4956 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
4957 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
4958 (mrecip=): Use Var.
4959 (mspe): Use Var and Save.
4960 (mtraceback=): Use Enum and Var.
4961 (rs6000_traceback_type): New Enum and EnumValue entries.
4962 (mfloat-gprs=): Use Enum, Var and Save.
4963 (rs6000_float_gprs): New Enum and EnumValue entries.
4964 (mlong-double-): use Var and Save.
4965 (msched-costly-dep=, minsert-sched-nops=): Use Var.
4966 (malign-): Use Enum and Var.
4967 (rs6000_alignment_flags): New Enum and EnumValue entries.
4968 (mfpu=): Use Enum.
4969 (fpu_type_t): New Enum and EnumValue entries.
4970 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4971 global_options_set instead of rs6000_explicit_options.
4972 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4973 global_options_set instead of rs6000_explicit_options.
4974 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4975 global_options_set instead of rs6000_explicit_options.
4976 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
4977 global_options_set instead of rs6000_explicit_options.
4978 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
4979 global_options_set instead of rs6000_explicit_options.
4980 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4981 global_options_set instead of rs6000_explicit_options.
4982 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
4983 definition.
4984 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4985 global_options_set instead of rs6000_explicit_options.
4986 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
4987 (rs6000_cmodel): New Enum and EnumValue entries.
4988 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4989 global_options_set instead of rs6000_explicit_options.
4990 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
4991 (mtls-size=): Use Enum and Var.
4992 (rs6000_tls_size): New Enum and EnumValue entries.
4993
0691dde9
MM
49942011-05-05 Michael Matz <matz@suse.de>
4995
4996 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
4997 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
4998 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
4999 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
5000 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
5001 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
5002 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
5003 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
5004 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
5005 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
5006 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
5007 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
5008 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
5009 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
5010 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
5011 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
5012
86529a49
RG
50132011-05-05 Richard Guenther <rguenther@suse.de>
5014
5015 * expmed.c (expand_variable_shift): Rename to ...
5016 (expand_shift_1): ... this. Take an expanded shift amount.
5017 For rotates recurse directly not building trees for the shift amount.
5018 (expand_variable_shift): Wrap around expand_shift_1.
5019 (expand_shift): Adjust.
5020
d0228c2e
JJ
50212011-05-05 Jakub Jelinek <jakub@redhat.com>
5022
5023 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
5024
907a08d9
EB
50252011-05-05 Eric Botcazou <ebotcazou@adacore.com>
5026
5027 * tree.h (get_pending_sizes): Remove prototype.
5028 (put_pending_size): Likewise.
5029 (put_pending_sizes): Likewise.
5030 * stor-layout.c (pending_sizes): Delete.
5031 (get_pending_sizes): Likewise.
5032 (put_pending_size): Likewise.
5033 (put_pending_sizes): Likewise.
5034 (variable_size): Do not call put_pending_size and tidy up.
5035 * function.h (struct function): Remove dont_save_pending_sizes_p.
5036 * lto-streamer-in.c (input_function): Do not stream it.
5037 * lto-streamer-out.c (output_function): Likewise.
5038 * tree-inline.c (initialize_cfun): Do not copy it.
5039 * c-decl.c (store_parm_decls): Do not set it.
5040 * omp-low.c (create_task_copyfn): Likewise.
5041 * tree-optimize.c (tree_rest_of_compilation): Likewise.
5042
386d9c57
UB
50432011-05-05 Uros Bizjak <ubizjak@gmail.com>
5044
5045 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
5046 conditions.
5047 (*movdf_internal): Ditto.
5048 (*movdf_internal_nointeger): Ditto.
5049 (*movsf_internal): Ditto.
5050
a04a722b
JM
50512011-05-05 Joseph Myers <joseph@codesourcery.com>
5052
5053 * c-decl.c (finish_decl): Don't call get_pending_sizes.
5054 (grokparm): Add parameter expr. Pass it to grokdeclarator.
5055 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
5056 (c_variable_size): Remove.
5057 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
5058 call put_pending_sizes.
5059 (get_parm_info): Add parameter expr. Use it to set
5060 arg_info->pending_sizes.
5061 (store_parm_decls): Use arg_info->pending_sizes instead or calling
5062 get_pending_sizes.
5063 * c-parser.c (c_parser_parms_declarator): Update call to
5064 c_parser_parms_list_declarator.
5065 (c_parser_parms_list_declarator): Take parameter expr. Update
5066 call to push_parm_decl. Update recursive call. Don't call
5067 get_pending_sizes. Update calls to get_parm_info.
5068 (c_parser_objc_method_definition): Update calls to
5069 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 5070 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
5071 (c_parser_objc_method_decl): Add parameter expr. Update call to
5072 grokparm.
386d9c57 5073 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
5074 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
5075 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
5076
c92a6f97
MH
50772011-05-05 Michael Hope <michael.hope@linaro.org>
5078
386d9c57
UB
5079 PR pch/45979
5080 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
5081 __ARM_EABI__ hosts.
c92a6f97 5082
07ea0048
UW
50832011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5084
5085 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
5086 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
5087 (spu_output_mi_thunk): New function.
5088
d634bfa1
RO
50892011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5090
5091 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
5092 targetm.asm_out.print_operand.
5093 * config/sol2.c: Include target.h.
5094
40fda55b
JH
50952011-05-04 Jan Hubicka <jh@suse.cz>
5096
5097 * ipa-inline.c (reset_edge_caches): New function.
5098 (update_caller_keys): Add check_inlinablity_for; do not
5099 reset edge caches; remove now unnecesary loop.
386d9c57 5100 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
5101 (update_all_callee_keys): Likewise.
5102 (inline_small_functions): Sanity check cache; update code
5103 recomputing it.
5104
0360f70d
BS
51052011-05-04 Bernd Schmidt <bernds@codesourcery.com>
5106
5107 PR rtl-optimization/47612
5108 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
5109 as the last insn of the sequence to be moved.
5110
7a994646
TB
51112011-05-04 Tobias Burnus <burnus@net-b.de>
5112
5113 PR fortran/48864
5114 * doc/invoke.texi (Ofast): Document that it
5115 enables Fortran's -fno-protect-parens.
5116
7a2f7208
UB
51172011-05-04 Uros Bizjak <ubizjak@gmail.com>
5118
5119 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
5120
a2d42931
EB
51212011-05-04 Eric Botcazou <ebotcazou@adacore.com>
5122
5123 * stor-layout.c (variable_size): Do not issue errors.
5124
f81b1a3d
RG
51252011-05-04 Richard Guenther <rguenther@suse.de>
5126
5127 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
5128 for array-ref indices.
5129 (tree_coverage_counter_addr): Likewise.
5130 (build_fn_info_type): Use size_int for index types.
5131 (build_gcov_info): Likewise.
5132
c62c040f
RG
51332011-05-04 Richard Guenther <rguenther@suse.de>
5134
5135 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
5136 to build_int_cst.
5137 * c-typeck.c (really_start_incremental_init): Use bitsize_int
5138 for constructor indices.
5139 (push_init_level): Likewise.
5140
1e3287d0
RG
51412011-05-04 Richard Guenther <rguenther@suse.de>
5142
5143 * explow.c (promote_mode): Move variable declarations before code.
5144
6c32445b
NF
51452011-05-04 Nathan Froyd <froydnj@codesourcery.com>
5146
5147 * tree.h (build_function_type_array): Declare.
5148 (build_varargs_function_type_array): Declare.
5149 (build_function_type_vec, build_varargs_function_type_vec): Define.
5150 * tree.c (build_function_type_array_1): New function.
5151 (build_function_type_array): New function.
5152 (build_varargs_function_type_array): New function.
5153
fdabf269
RS
51542011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
5155
5156 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
5157 before setting STMT_VINFO_TYPE.
5158
a207915a
UW
51592011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5160
5161 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
5162 instead of spu_pass_by_reference.
5163
5e617be8
AK
51642011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5165
5166 * calls.c (emit_library_call_value_1): Invoke
5167 promote_function_mode hook on libcall arguments.
5168 * explow.c (promote_function_mode, promote_mode): Handle TYPE
5169 argument being NULL.
5170 * targhooks.c (default_promote_function_mode): Lisewise.
5171 * config/s390/s390.c (s390_promote_function_mode): Likewise.
5172 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
5173
5174 * doc/tm.texi: Document that TYPE argument might be NULL.
5175
486d04be
SH
51762011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5177
5178 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
5179
9b19b026
SH
51802011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5181
5182 From Bernd Schmidt
5183 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
5184
502bc3df
RO
51852011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5186
5187 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
5188 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
5189 Move ...
5190 * mips-tfile.c: ... here.
5191 Don't include coretypes.h, tm.h, filenames.h.
5192 (saber_stop): Remove definition and all calls.
5193 [__SABER__]: Remove.
5194 (__LINE__): Remove default.
5195 (Size_t, Ptrdiff_t): Remove definitions.
5196 Replace by size_t, ptrdiff_t.
5197 [!MIPS_DEBUGGING_INFO]: Remove.
5198 (SHASH_SIZE, THASH_SIZE): Remove defaults.
5199 (progname): Add const.
5200 (STATIC): Remove.
5201 Replace all uses by static.
5202 (ALIGN_SYMTABLE_OFFSET): Remove default.
5203 * mips-tdump.c: Don't include coretypes.h, tm.h.
5204 Remove !MIPS_IS_STAB guard.
5205 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
5206 $(TM_H), filenames.h dependencies.
5207 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
5208
991eb6ef
SH
52092011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5210
5211 From Jie Zhang
5212 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
5213 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
5214
420ccc84
SH
52152011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5216
5217 From Bernd Schmidt
5218 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
5219 account and save/restore RETS.
5220 (PROFILE_BEFORE_PROLOGUE): Define.
5221 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
5222 the push insn to use predecrement.
5223
9f8d69ee
SH
52242011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5225
5226 From Jie Zhang
5227 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
5228
662c03f4
NC
52292011-05-04 Nick Clifton <nickc@redhat.com>
5230
5231 * config/mn10300/mn10300.c: Include cfgloop.h.
5232 (DUMP): New macro.
5233 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
5234 Lcc or a FLcc insn into the instruction stream.
5235 (mn10300_block_contains_call): New function. Returns true if the
5236 given basic block contains a CALL insn.
5237 (mn10300_loop_contains_call_insn): New function. Returns true if
5238 the given loop contains a CALL insn.
5239 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
5240 to use the SETLB and Lcc or FLcc insns.
5241 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
5242 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
5243 * config/mn10300/mn10300.opt (msetlb): New option. Used to
5244 disable the SETLB optimization.
5245 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
5246 __SETLB__ or __NO_SETLB__.
5247 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
5248 (movsf_internal): Handle MDR register.
5249 (cmpsi): Make visible.
5250 (setlb): New pattern.
5251 (Lcc): New pattern.
5252 (FLcc): New pattern.
5253
843b6915
UB
52542011-05-04 Uros Bizjak <ubizjak@gmail.com>
5255
5256 PR target/48860
5257 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
5258 for reg<->xmm moves.
5259 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
5260 (vec_concatv2di_rex64_sse): Ditto.
5261 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
5262 (*vec_extractv2di_1_rex64): Ditto.
5263
5264 Revert:
5265 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
5266
5267 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
5268 reg<->xmm moves.
5269 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
5270
d35936ab
RG
52712011-05-04 Richard Guenther <rguenther@suse.de>
5272
5273 * tree.h (int_const_binop): Remove notrunc argument.
5274 * fold-const.c (int_const_binop): Remove notrunc argument. Always
5275 create integer constants that are properly truncated.
5276 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
5277 (const_binop): Remove zero notrunc argument to int_const_binop.
5278 (size_binop_loc): Likewise.
5279 (fold_div_compare): Likewise.
5280 (maybe_canonicalize_comparison_1): Likewise.
5281 (fold_comparison): Likewise.
5282 (fold_binary_loc): Likewise.
5283 (multiple_of_p): Likewise.
5284 * expr.c (store_constructor): Likewise.
5285 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5286 (maybe_fold_stmt_addition): Likewise.
5287 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
5288 * stor-layout.c (layout_type): Likewise.
5289 * tree-data-ref.c (tree_fold_divides_p): Likewise.
5290 * tree-sra.c (build_ref_for_offset): Likewise.
5291 (build_user_friendly_ref_for_offset): Likewise.
5292 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
5293 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5294 * tree-ssa-loop-niter.c (inverse): Likewise.
5295 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
5296 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
5297 * tree-switch-conversion.c (check_range): Likewise.
5298 (build_constructors): Likewise.
5299 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
5300 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
5301 (extract_range_from_assert): Likewise.
5302 (vrp_int_const_binop): Likewise.
5303 (extract_range_from_binary_expr): Likewise.
5304 (extract_range_from_unary_expr): Likewise.
5305 (check_array_ref): Likewise.
5306 (find_case_label_range): Likewise.
5307 (simplify_div_or_mod_using_ranges): Likewise.
5308 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
5309 comparing case labels for merging.
5310
8992c063
MW
53112011-05-03 Mark Wielaard <mjw@redhat.com>
5312
5313 * dwarf2out.c (debug_str_hash_forced): Removed.
5314 (gen_label_for_indirect_string): Removed.
5315 (get_debug_string_label): Removed.
5316 (AT_string_form): Generate label directly.
5317 (output_indirect_string): Test indirect_string_node for
5318 DW_FORM_strp instead of checking label and refcount.
5319 (prune_indirect_string): Removed.
5320 (prune_unused_types): Don't check debug_str_hash_forced or
5321 call prune_indirect_string.
5322
4868e6ea
AO
53232011-05-04 Alexandre Oliva <aoliva@redhat.com>
5324
5325 PR other/48093
5326 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
5327
01a5c0ab
AO
53282011-05-04 Alexandre Oliva <aoliva@redhat.com>
5329
5330 PR debug/47994
5331 PR debug/47919
5332 * combine.c (try_combine): Skip debug insns at m_split tests.
5333
6ac00218
MW
53342011-04-26 Mark Wielaard <mjw@redhat.com>
5335
5336 PR42288
5337 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
5338 when info_section_emitted.
5339
3af42a7b
JM
53402011-05-03 Joseph Myers <joseph@codesourcery.com>
5341
5342 * config/mips/mips-opts.h: New.
5343 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
5344 to mips-opts.h.
5345 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
5346 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
5347 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
5348 via opts pointer.
5349 * config/mips/mips.h (enum mips_code_readable_setting): Move to
5350 mips-opts.h.
5351 (mips_abi, mips_code_readable): Don't declare.
843b6915 5352 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
5353 (mabi=): Use Enum and Var.
5354 (mips_abi): New Enum and EnumValue entries.
5355 (mcode-readable=): Use Enum and Var.
5356 (mips_code_readable_setting): New Enum and EnumValue entries.
5357 (mr10k-cache-barrier=): Use Enum and Var.
5358 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
5359
1cb1a99f
JH
53602011-05-03 Jan Hubicka <jh@suse.cz>
5361
5362 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
5363 replace hash by pointer map.
5364 (cgraph_node_set_element_def, cgraph_node_set_element,
5365 const_cgraph_node_set_element, varpool_node_set_element_def,
5366 varpool_node_set_element, const_varpool_node_set_element): Remove.
5367 (free_cgraph_node_set, free_varpool_node_set): New function.
5368 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
5369 * tree-emutls.c: Free varpool node set.
5370 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
5371 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
5372 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
5373 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
5374 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
5375 Move here from ipa.c; implement using pointer_map
5376 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
5377 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
5378 debug_cgraph_node_set, varpool_node_set_new,
5379 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
5380 dump_varpool_node_set, debug_varpool_node_set):
5381 Move to ipa-uitls.c.
5382 * passes.c (ipa_write_summaries): Update.
5383
7f31f4db
SH
53842011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5385
7a2f7208
UB
5386 From Mike Frysinger:
5387 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
5388 bf542/bf544/bf547/bf548/bf549.
7f31f4db 5389
b70fce6d
UB
53902011-05-03 Uros Bizjak <ubizjak@gmail.com>
5391
5392 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
5393
265b1d82
SH
53942011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5395
5396 From Bernd Schmidt:
5397 * config/bfin/bfin.md (MOVCC): New mode_macro.
5398 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
5399 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
5400 comments from generated assembly.
5401
f0b568f3
SH
54022011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5403
5404 From Bernd Schmidt
5405 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
5406 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
5407 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
5408 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
5409 * config/bfin/lib1funcs.asm (___muldi3): New function.
5410
2c67cf6e
NF
54112011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5412
5413 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
5414 build_function_type_list instead of build_function_type.
5415 Rearrange initialization of `args' to do so.
5416
f9ac28ad
NF
54172011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5418
5419 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
5420 instead of build_function_type.
5421
22b8798c
NF
54222011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5423
5424 * config/rs6000/rs6000.c (spe_init_builtins): Call
5425 build_function_type_list instead of build_function_type.
5426 (paired_init_builtins, altivec_init_builtins): Likewise.
5427 (builtin_function_type): Likewise.
5428
4cb44528
NF
54292011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5430
5431 * config/sh/sh.c (sh_media_init_builtins): Call
5432 build_function_type_list instead of build_function_type.
5433
4c203a6a
NF
54342011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5435
5436 * config/sparc/sparc.c (sparc_file_end): Call
5437 build_function_type_list instead of build_function_type.
5438
d6a3d62b
NF
54392011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5440
5441 * config/alpha/alpha.c (alpha_init_builtins): Call
5442 build_function_type_list instead of build_function_type.
5443
de530b86
NF
54442011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5445
5446 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
5447 build_function_type_list instead of build_function_type.
5448
baeec5f2
NF
54492011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5450
5451 * config/iq2000/i2000.c (iq2000_init_builtins): Call
5452 build_function_type_list instead of build_function_type.
5453 Delete `endlink' variable.
5454
c19afe52
NF
54552011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5456
5457 * config/avr/avr.c (avr_init_builtins): Call
5458 build_function_type_list instead of build_function_type.
5459
a341df0a
NF
54602011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5461
5462 * config/picochip/picochip.c (picochip_init_builtins): Call
5463 build_function_type_list instead of build_function_type.
5464 Delete `endlink' variable.
5465
2102b1e1
NF
54662011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5467
5468 * config/bfin/bfin.c (bfin_init_builtins): Call
5469 build_function_type_list instead of build_function_type.
5470
9f111209
SH
54712011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5472
5473 From Bernd Schmidt
5474 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
5475 that's not CONST_INT. Seemingly redundant check is due to PR39768.
5476
7071d064
SH
54772011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5478
5479 From Jie Zhang:
5480 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
5481 libbffastfp overrides libgcc when -mfast-fp.
5482
748f7574 54832011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
5484
5485 Originally from Bernd Schmidt
5486 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
5487 * config/bfin/bfin.c (override_options): Test it and error if
5488 TARGET_FDPIC.
5489
1a3a9152
SH
54902011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5491
5492 Originally From Bernd Schmidt
5493 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
5494 FD-PIC.
5495
7134c090
JL
54962011-05-03 Jeff Law <law@redhat.com>
5497
5498 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
5499 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
5500 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
5501 than accessing AUX field directly. Free the AUX field before
5502 clearing it.
7134c090
JL
5503 (thread_block, thread_through_loop_header): Likewise.
5504 (thread_single_edge, mark_threaded_blocks): Likewise.
5505 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
5506 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 5507
2c7eebae
BS
55082011-05-03 Bernd Schmidt <bernds@codesourcery.com>
5509
5510 * function.c (init_function_start): Call decide_function_section.
5511 * varasm.c (decide_function_section): New function.
5512 (assemble_start_function): When not using
5513 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
5514 or first_function_block_is_cold.
5515 * rtl.h (decide_function_section): Declare.
5516
17038fcf
JJ
55172011-05-03 Uros Bizjak <ubizjak@gmail.com>
5518 Jakub Jelinek <jakub@redhat.com>
5519
5520 PR target/48774
5521 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
5522 only succeed if req_mode is the same as set_mode.
5523
3810076b
BS
55242011-05-03 Bernd Schmidt <bernds@codesourcery.com>
5525
5526 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
5527 * genemit.c (gen_exp): Handle RETURN.
5528 * emit-rtl.c (verify_rtx_sharing): Likewise.
5529 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
5530 * rtl.c (copy_rtx): RETURN is shared.
5531 * rtl.h (enum global_rtl_index): Add GR_RETURN.
5532 (ret_rtx): New.
5533 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
5534 * config/s390/s390.c (s390_emit_epilogue): Likewise.
5535 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
5536 * config/cris/cris.c (cris_expand_return): Likewise.
5537 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
5538 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
5539 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
5540 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
5541 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
5542 Likewise.
5543 * config/v850/v850.c (expand_epilogue): Likewise.
5544 * config/bfin/bfin.c (bfin_expand_call): Likewise.
5545 * config/arm/arm.md (epilogue): Likewise.
5546 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
5547 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
5548 variable to ret_reg.
5549
9efdb4ad
RG
55502011-05-03 Richard Guenther <rguenther@suse.de>
5551
5552 PR lto/48846
5553 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
5554 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
5555 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
5556
60a45536
RG
55572011-05-03 Richard Guenther <rguenther@suse.de>
5558
5559 * c-decl.c (grokdeclarator): Instead of looking at
5560 TREE_OVERFLOW check if the constant fits in the index type.
5561
3188ed59
RS
55622011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
5563
5564 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
5565 (vec_store_lanes<mode><mode>): Likewise.
5566
272c6793
RS
55672011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
5568
5569 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
5570 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
5571 convert_optab_index values.
5572 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
5573 * genopinit.c (optabs): Initialize the new optabs.
5574 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
5575 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
5576 (expand_STORE_LANES): New functions.
5577 * tree.h (build_array_type_nelts): Declare.
5578 * tree.c (build_array_type_nelts): New function.
5579 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
5580 (vect_model_load_cost): Likewise.
5581 (vect_store_lanes_supported, vect_load_lanes_supported)
5582 (vect_record_strided_load_vectors): Declare.
5583 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
5584 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
5585 (vect_transform_strided_load): Split out statement recording into...
5586 (vect_record_strided_load_vectors): ...this new function.
5587 * tree-vect-stmts.c (create_vector_array, read_vector_array)
5588 (write_vector_array, create_array_ref): New functions.
5589 (vect_model_store_cost): Add store_lanes_p argument.
5590 (vect_model_load_cost): Add load_lanes_p argument.
5591 (vectorizable_store): Try to use store-lanes functions for
5592 interleaved stores.
5593 (vectorizable_load): Likewise load-lanes and loads.
5594 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
5595 to vect_model_store_cost.
5596 (vect_build_slp_tree): Likewise vect_model_load_cost.
5597
0f6d54f7
RS
55982011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
5599
5600 * hooks.h (hook_bool_mode_uhwi_false): Declare.
5601 * hooks.c (hook_bool_mode_uhwi_false): New function.
5602 * target.def (array_mode_supported_p): New hook.
5603 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
5604 * doc/tm.texi: Regenerate.
5605 * stor-layout.c (mode_for_array): New function.
5606 (layout_type): Use it.
5607 * config/arm/arm.c (arm_array_mode_supported_p): New function.
5608 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
5609
b15eacc7
EB
56102011-05-03 Eric Botcazou <ebotcazou@adacore.com>
5611
5612 PR target/48723
5613 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
5614 for -fstack-check if the size to allocate is negative.
5615
575bfb00
LC
56162011-05-02 Lawrence Crowl <crowl@google.com>
5617
5618 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
5619 (timevar_cond_start): New for starting a timer only when it is not
5620 already running.
5621 (timevar_cond_stop): New for stopping a timer when it was not already
5622 running.
5623
5624 * timevar.c (timevar_stop): Enable start/stop timers to start again.
5625 (timevar_cond_start): New as above.
5626 (timevar_cond_stop): New as above.
5627
5628 * timevar.def: Add start/stop timers for compiler phases,
5629 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
5630 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
5631 and TV_PHASE_FINALIZE.
5632 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
5633 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
5634 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
5635 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
5636 Make unused TV_OVERLOAD into a start/stop timer.
5637
5638 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
5639 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
5640 to indicate that they are start/stop timers.
5641
5642 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
5643 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
5644 Move initialization to do_compile.
5645 (do_compile): Add initialization from above.
5646 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
5647
5648 * c-decl.c (c_write_global_declarations): Add start/stop of
5649 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
5650
5651 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
5652 or TV_PARSE_INLINE, as appropriate.
5653 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
5654 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
5655
3533b943
JM
56562011-05-02 Jason Merrill <jason@redhat.com>
5657
5658 PR c++/40975
5659 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
5660
2609a0ce
SM
56612011-05-02 Simon Martin <simartin@users.sourceforge.net>
5662
5663 PR c/35445
5664 * c-decl.c (finish_decl): Only create a composite if the types are
5665 compatible.
5666
6b0e4cbb
JM
56672011-05-02 Joseph Myers <joseph@codesourcery.com>
5668
5669 * config/fr30/fr30-protos.h (Mmode): Don't define.
5670 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
5671 definition where used.
5672 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
5673 define. Expand definitions where used.
5674 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
5675 Expand definitions where used.
5676 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
5677 rx_function_arg, rx_function_arg_advance,
5678 rx_function_arg_boundary): Expand definitions of those macros.
5679 * config/v850/v850-protos.h (Mmode): Don't define. Expand
5680 definition where used.
5681
4e938ce6
UB
56822011-05-02 Uros Bizjak <ubizjak@gmail.com>
5683
5684 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
5685 reg<->xmm moves.
5686 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
5687 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
5688 with *movv2sf_internal_rex64_avx.
5689 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
5690 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
5691 Use %v prefix in insn mnemonic to handle TARGET_AVX.
5692 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
5693 "vex" in "prefix" attribute calculation.
5694 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
5695
36019c19
SH
56962011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
5697
7a2f7208
UB
5698 PR target/47951
5699 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
5700 inputs match the output.
36019c19 5701
f69ea688
AS
57022011-05-02 Andreas Schwab <schwab@linux-m68k.org>
5703
5704 PR target/47955
5705 * config/m68k/m68k.c (m68k_expand_prologue): Set
5706 current_function_static_stack_size.
5707
c33406f5
JH
57082011-05-02 Jan Hubicka <jh@suse.cz>
5709
5710 * lto-streamer.c (lto_streamer_cache_insert_1,
5711 lto_streamer_cache_lookup, lto_streamer_cache_create,
5712 lto_streamer_cache_delete): Use pointer map instead of hashtable.
5713 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
5714
47c94d21
JM
57152011-05-02 Joseph Myers <joseph@codesourcery.com>
5716
5717 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
5718 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
5719 config/m68k/t-opts: New files.
5720 * config/m68k/m68k-tables.opt: New file (generated).
5721 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
5722 extra_options and m68k/t-opts to tmake_file.
5723 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
5724 (all_isas): Initialize using m68k-isas.def.
5725 (all_microarchs): Initialize using m68k-microarchs.def.
5726 (m68k_find_selection): Remove.
5727 (m68k_handle_option): Don't assert that global structures are in
5728 use. Use error_at. Access variables via opts pointer. Don't
5729 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
5730 directly for -m68020-40 and -m68020-60.
5731 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
5732 m68k_tune_entry here.
5733 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
5734 to m68k-opts.h.
5735 (m68k_library_id_string): Remove declaration.
4e938ce6 5736 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
5737 (m68k_library_id_string): New Variable.
5738 (march=, mcpu=, mtune=): Use Enum and Var.
5739
e562bf36
RG
57402011-05-02 Richard Guenther <rguenther@suse.de>
5741
5742 * varasm.c (output_constructor_regular_field): Compute zero-based
5743 index with double-ints. Make sure to ICE instead of producing
5744 wrong code.
5745 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
5746 in asserts. Properly use a signed type.
5747
6bec6c98
UB
57482011-05-02 Uros Bizjak <ubizjak@gmail.com>
5749
5750 * config/i386/sse.md (V): New mode iterator.
5751 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
5752 TARGET_SSE2.
5753 (V_256): Rename from AVX256MODE.
5754 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
5755 condition to all users.
5756 (VF1): Ditto.
5757 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
5758 condition to all users.
5759 (VF_128): Make V4SF mode unconditional.
5760 (VF_256): Rename from AVX256MODEF2P.
5761 (VI4F_128): Rename from SSEMODE4S.
5762 (VI8F_128): Rename from SSEMODE2D.
5763 (VI4F_256): Rename from AVX256MODE8P.
5764 (VI8F_256): Rename from AVX256MODE4P.
5765 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
5766 (ssescalarmodesuffix): Remove SF and DF modes.
5767 (SSEMODE124): Remove.
5768 (SSEMODE1248): Ditto.
5769 (SSEMODEF2P): Ditto.
5770 (AVXMODEF2P): Ditto.
5771 (AVXMODEFDP): Ditto.
5772 (AVXMODEFSP): Ditto.
5773 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
5774 unconditional.
5775 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
5776 unconditional.
5777 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
5778 xop_pcmov_<mode>256. Use V mode iterator.
5779
5780 Adjust RTX patterns globally for renamed mode attributes.
5781
2dfdcb4b
UW
57822011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5783
5784 * haifa-sched.c (sched_emit_insn): Emit insn before first
5785 non-scheduled insn. Inform back-end about new insn. Add
5786 new insn to scheduled_insns list.
5787
90bc4623
RG
57882011-05-02 Richard Guenther <rguenther@suse.de>
5789
5790 PR tree-optimization/48822
5791 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
5792 (process_scc): Indicate which iteration we start.
5793
bc0fe8cb
JH
57942011-05-02 Jan Hubicka <jh@suse.cz>
5795
5796 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
5797 (lto_section_overrun): New.
5798 * lto-section-out.c (append_block): Rename to ...
5799 (lto_append_block): ... this one; export.
5800 (lto_output_1_stream): Move lto lto-streamer.h
5801 (lto_output_data_stream): Update.
5802 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
5803 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
5804 functions.
5805
f070a9d1
RG
58062011-05-02 Richard Guenther <rguenther@suse.de>
5807
5808 * tree.c (tree_code_counts): New global array.
5809 (record_node_allocation_statistics): Count individual tree codes.
5810 (dump_tree_statistics): Dump individual code stats.
5811
09dfe187
JH
58122011-05-01 Jan Hubicka <jh@suse.cz>
5813
5814 * ipa-inline.c (caller_growth_limits): Fix thinko when
5815 looking for largest stack frame.
5816 * ipa-inline.h (dump_inline_summary): Declare.
5817 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
5818 on stack usage.
5819 (dump_inline_summary): Export.
5820 (debug_inline_summary): Declare as DEBUG_FUNCTION.
5821
6f76a878
AS
58222011-05-01 Anatoly Sokolov <aesok@post.ru>
5823
5824 * reginfo.c (memory_move_cost): Change rclass argument type form
5825 'enum reg_class' to reg_class_t.
5826 * reload.h (memory_move_cost): Update prototype.
5827 * postreload.c reload_cse_simplify_set): Change type dclass var to
5828 reg_class_t.
5829 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
5830 Update prototype.
5831 (ira_allocate_and_set_costs): Change aclass argument type form
5832 'enum reg_class' to reg_class_t.
6bec6c98 5833 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
5834 Change aclass argument type to reg_class_t.
5835 (update_conflict_hard_reg_costs): Change type aclass and pref vars
5836 to reg_class_t.
5837 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
5838 memory_move_cost call.
5839
5840 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
5841 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
5842 Change type tmp var to reg_class_t.
5843
9a4ac625
JH
58442011-04-30 Jan Hubicka <jh@suse.cz>
5845
5846 * ipa-inline.c (can_inline_edge_p): Disregard limits when
5847 inlining into function with flatten attribute.
5848 (want_inline_small_function_p): Be more realistic about inlining
5849 cold calls where callee size grows.
5850
dd8352ee
JH
58512011-04-30 Jan Hubicka <jh@suse.cz>
5852
5853 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
5854 flags.
5855
46e43d2b
AS
58562011-04-30 Anatoly Sokolov <aesok@post.ru>
5857
5858 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
5859 PRINT_OPERAND_PUNCT_VALID_P): Remove.
5860 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
5861 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
5862 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5863 (print_operand): Rename to...
5864 (sparc_print_operand): ...this. Make static. Adjust
5865 sparc_print_operand function call.
5866 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
5867 functions.
5868
ecb62563
JH
58692011-04-30 Jan Hubicka <jh@suse.cz>
5870
6bec6c98 5871 PR middle-end/48752
ecb62563
JH
5872 * ipa-inline.c (early_inliner): Disable when doing late
5873 addition of function.
5874
edb9b69e
JJ
58752011-04-30 Jakub Jelinek <jakub@redhat.com>
5876
be80a87e
JJ
5877 * dwarf2out.c (get_address_mode): New inline.
5878 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
5879 if not dwarf_strict emit
5880 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
5881 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
5882 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
5883 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
5884 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
5885 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
5886 mem_loc_descriptor callers.
5887 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
5888 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
5889 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
5890 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
5891 (base_types): New variable.
5892 (get_base_type_offset, calc_base_type_die_sizes,
5893 base_type_for_mode, mark_base_types, base_type_cmp,
5894 move_marked_base_types): New functions.
5895 (calc_die_sizes): Assert that die_offset is 0 or equal to
5896 next_die_offset.
5897 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
5898 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
5899 callers. If not dwarf_strict, call mem_loc_descriptor even for
5900 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
5901 (gen_subprogram_die): Don't give up on call site parameters
5902 with non-integral or large integral modes. Adjust
5903 mem_loc_descriptor callers.
5904 (prune_unused_types): Call prune_unused_types_mark on base_types
5905 vector entries.
5906 (resolve_addr): Call mark_base_types.
5907 (dwarf2out_finish): Call move_marked_base_types.
5908
edb9b69e
JJ
5909 PR tree-optimization/48809
5910 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
5911 type.
5912 (gen_inbound_check): Don't compute index_expr - range_min in utype
5913 again, instead reuse SSA_NAME initialized in build_arrays.
5914 Remove two useless gsi_for_stmt calls.
5915
a6545a3d
JL
59162011-04-29 Jeff Law <law@redhat.com>
5917
5918 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
5919
af8bca3c
MJ
59202011-04-29 Martin Jambor <mjambor@suse.cz>
5921
5922 * cgraph.h (cgraph_postorder): Remove declaration.
5923 * ipa-utils.h (ipa_free_postorder_info): Declare.
5924 (ipa_reverse_postorder): Likewise.
5925 * cgraphunit.c: Include ipa-utils.h.
5926 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
5927 * ipa-inline.c: Include ipa-utils.h.
5928 (ipa_inline): Update call to ipa_reverse_postorder.
5929 * ipa-pure-const.c (propagate_pure_const): Update call to
5930 ipa_reduced_postorder and ipa_print_order. Call
5931 ipa_free_postorder_info to clean up.
5932 (propagate_nothrow): Likewise.
5933 * ipa-reference.c (propagate): Removed a useless call to
5934 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
5935 and ipa_print_order. Call ipa_free_postorder_info to clean up.
5936 * ipa.c: Include ipa-utils.h.
5937 (ipa_profile): Update call to ipa_reverse_postorder.
5938 (cgraph_postorder): Moved to...
5939 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
5940 (ipa_utils_print_order): Renamed to ipa_print_order.
5941 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
5942 comments.
5943 (ipa_free_postorder_info): New function.
5944 * passes.c: Include ipa-utils.h.
5945 (do_per_function_toporder): Update call to ipa_reverse_postorder.
5946 (ipa_write_summaries): Likewise.
5947 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
5948 (cgraphunit.o): Likewise.
5949 (ipa.o): Likewise.
5950 (ipa-inline.o): Likewise.
5951
b15c64ee
JH
59522011-04-29 Jan Hubicka <jh@suse.cz>
5953
5954 * gcc.dg/tree-ssa/inline-10.c: New testcase.
5955 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
5956 * ipa-inline.h (clause_t): Turn into unsigned int.
5957 * ipa-inline-analysis.c (add_clause): Do more simplification.
5958 (and_predicates): Shortcut more cases.
5959 (predicates_equal_p): Move forward; check that clauses are properly
5960 ordered.
5961 (or_predicates): Shortcut more cases.
5962 (edge_execution_predicate): Rewrite as...
5963 (set_cond_stmt_execution_predicate): ... this function; handle
5964 __builtin_constant_p.
5965 (set_switch_stmt_execution_predicate): New .
5966 (compute_bb_predicates): New.
5967 (will_be_nonconstant_predicate): Update TODO.
5968 (estimate_function_body_sizes): Use compute_bb_predicates
5969 and free them later, always try to estimate if stmt is constant.
5970 (estimate_time_after_inlining, estimate_size_after_inlining):
5971 Gracefully handle optimized out edges.
5972 (read_predicate): Fix off by one error.
5973
a88fdc2a
NP
59742011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
5975
5976 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
5977
d984c8ef
XDL
59782011-04-27 Xinliang David Li <davidxl@google.com>
5979
5980 * tree-profile.c (init_ic_make_global_vars): Set
5981 tls attribute on ic vars.
5982 * coverage.c (coverage_end_function): Initialize
5983 function_list with zero.
5984
45a2c477
RG
59852011-04-29 Richard Guenther <rguenther@suse.de>
5986
5987 * builtins.c (fold_builtin_classify_type): Use integer_type_node
5988 for the type of the result.
5989 (fold_builtin_isascii): Likewise.
5990 (fold_builtin_toascii): Use integer_type_node where appropriate.
5991 (fold_builtin_logb): Likewise.
5992 (fold_builtin_frexp): Likewise.
5993 (fold_builtin_strstr): Likewise.
5994 (fold_builtin_strpbrk): Likewise.
5995 (fold_builtin_fputs): Likewise.
5996 (fold_builtin_sprintf): Likewise.
5997 (fold_builtin_snprintf): Likewise.
5998 (fold_builtin_printf): Likewise.
5999 (do_mpfr_remquo): Use a proper type for the assigned constant.
6000 (do_mpfr_lgamma_r): Likewise.
6001 * dwarf2out.c (resolve_one_addr): Use size_int.
6002 * except.c (init_eh): Likewise.
6003 (assign_filter_values): Use integer_type_node for filter values.
6004 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
6005 indices.
6006 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
6007 for EH region numbers.
6008 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
6009 for the shift amount.
6010
eb6c3df1
RG
60112011-04-29 Richard Guenther <rguenther@suse.de>
6012
6013 * expr.h (expand_shift): Rename to ...
6014 (expand_variable_shift): ... this.
6015 (expand_shift): Take a constant shift amount.
6016 * expmed.c (expand_shift): Rename to ...
6017 (expand_variable_shift): ... this.
6018 (expand_shift): New wrapper around expand_variable_shift.
6019 * expr.c (convert_move, emit_group_load_1, emit_group_store,
6020 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
6021 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
6022 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
6023 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
6024 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
6025 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
6026 emit_store_flag_1, emit_store_flag): Likewise.
6027 * builtins.c (expand_builtin_signbit): Likewise.
6028 * calls.c (load_register_parameters): Likewise.
6029 * function.c (assign_parm_setup_block): Likewise.
6030 * lower-subreg.c (resolve_shift_zext): Likewise.
6031 * optabs.c (widen_bswap, expand_abs_nojump,
6032 expand_one_cmpl_abs_nojump, expand_float): Likewise.
6033 * spu/spu.c (spu_expand_extv): Likewise.
6034 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6035
9f616812
RG
60362011-04-29 Richard Guenther <rguenther@suse.de>
6037
6038 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
6039 for the remapped region number.
6040 * predict.c (build_predict_expr): Use integer_type_node for the
6041 predict kind.
6042 * fold-const.c (fold_binary_loc): Use integer_type_node for
6043 the shift amount. Use a proper type for the PLUS_EXPR operand.
6044
b823cdfe
MM
60452011-04-29 Michael Matz <matz@suse.de>
6046
6047 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
6048 other trees that just builtins.
6049 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
6050
413581ba
RG
60512011-04-29 Richard Guenther <rguenther@suse.de>
6052
6053 * tree-nested.c (get_trampoline_type): Use size_int.
6054 (get_nl_goto_field): Likewise.
6055 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
6056 for all indexes.
6057 (lower_eh_constructs_2): Likewise.
6058 (lower_resx): Likewise.
6059 (lower_eh_dispatch): Likewise.
6060 * tree-mudflap.c (mf_build_string): Use size_int.
6061 (mudflap_register_call): Use integer_type_node for the flag.
6062 (mudflap_enqueue_constant): Use size_int.
6063 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
6064 instead of rebuilding it.
6065
5c04e9f4
RG
60662011-04-29 Richard Guenther <rguenther@suse.de>
6067
6068 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
6069 Handle OBJ_TYPE_REF.
6070 (find_func_aliases_for_call): Use it more consistently.
6071
5c24671b
AO
60722011-04-29 Alexandre Oliva <aoliva@redhat.com>
6073
6074 * haifa-sched.c (last_nondebug_scheduled_insn): New.
6075 (rank_for_schedule): Use it.
6076 (schedule_block): Set it.
6077
10adac51
XDL
60782011-04-28 David Li <davidxl@google.com>
6079
6080 * tree.c (crc32_string): Use crc32_byte.
6081 (crc32_byte): New function.
6082 * tree.h (crc32_byte): New function.
6083 * gcov.c (read_graph_file): Handle new cfg_cksum.
6084 (read_count_file): Ditto.
6085 * profile.c (instrument_values): Ditto.
6086 (get_exec_counts): Ditto.
6087 (read_profile_edge_counts): Ditto.
6088 (compute_branch_probabilities): Ditto.
6089 (compute_value_histograms): Ditto.
6090 (branch_prob): Ditto.
6091 (end_branch_prob): Ditto.
6092 * coverage.c (read_counts_file): Ditto.
6093 (get_coverage_counts): Ditto.
6094 (tree_coverage_counter_addr): Ditto.
6095 (coverage_checksum_string): Ditto.
6096 (coverage_begin_output): Ditto.
6097 (coverage_end_function): Ditto.
6098 (build_fn_info_type): Ditto.
6099 (build_fn_info_value): Ditto.
6100 * libgcov.c (gcov_exit): Ditto.
6101 * gcov-dump.c (tag_function): Ditto.
6102 (compute_checksum): Remove.
6103
5d6358a5
AM
61042011-04-29 Alan Modra <amodra@gmail.com>
6105
6106 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6107 unspec plus offset. Tidy macho code.
6108
85ad2ef5
MJ
61092011-04-29 Martin Jambor <mjambor@suse.cz>
6110
6111 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
6112 node instead of a decl. Update all callers.
6113 * cgraph.h: Update declaration.
6114
437f4a00
IR
61152011-04-28 Ira Rosen <ira.rosen@linaro.org>
6116
6117 PR tree-optimization/48765
6118 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
6119 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
6120 to indicate if loop aware SLP is being used. Scan the statements
6121 and update the vectorization factor according to the type of
6122 vectorization before statement analysis.
6123 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
6124 pass it to vect_analyze_loop_operations.
6125 (vectorizable_reduction): Set number of copies to 1 in case of pure
6126 SLP statement.
6127 * tree-vect-stmts.c (vectorizable_conversion,
6128 vectorizable_assignment, vectorizable_shift,
6129 vectorizable_operation, vectorizable_type_demotion,
6130 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
6131 Likewise.
6132 (vectorizable_condition): Move the check that it is not SLP
6133 vectorization before the number of copies check.
6134 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
6135 to vectorize the loop using SLP.
6136
c6fc44f3
JJ
61372011-04-28 Jakub Jelinek <jakub@redhat.com>
6138
6139 PR middle-end/48597
6140 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
6141 inline asm.
6142
6c0170ea
JM
61432011-04-28 Joseph Myers <joseph@codesourcery.com>
6144
6145 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
6146 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
6147 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
6148 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
6149 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
6150 linux*.h headers.
6bec6c98 6151 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
6152 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6153 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6154 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 6155 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
6156 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
6157 REG_NAME.
6158 * config/i386/linux.h (REG_NAME): Don't define.
6159 * config/i386/linux64.h (REG_NAME): Don't define.
6160 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
6161 Undefine before defining.
6162
970dabbd
JH
61632011-04-28 Jan Hubicka <jh@suse.cz>
6164
6bec6c98
UB
6165 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
6166 nonconstant_names array.
970dabbd
JH
6167 (estimate_function_body_sizes): Build nonconstant_names array; handle
6168 BUILT_IN_CONSTANT_P.
6169
8d3e3924
RG
61702011-04-28 Richard Guenther <rguenther@suse.de>
6171
6172 PR bootstrap/48804
6173 Revert
6174 2011-04-28 Richard Guenther <rguenther@suse.de>
6175
6176 * tree-ssa-structalias.c (solve_constraints): Build succ graph
6177 as late as possible.
6bec6c98 6178
8576f20a
RG
61792011-04-28 Richard Guenther <rguenther@suse.de>
6180
6181 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
6182 (debug_constraint): Do it here.
6183 (dump_constraints): And here.
6184 (rewrite_constraints): And here.
6185 (dump_constraint_edge): Remove.
6186 (dump_constraint_graph): Rewrite to produce DOT output.
6187 (solve_constraints): Build succ graph as late as possible.
6188 Dump constraint graphs before and after solving.
6189
e38811ce
RG
61902011-04-28 Richard Guenther <rguenther@suse.de>
6191
6192 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6193 New function split out from ...
6194 (find_func_aliases): ... here. Call it.
6195 (find_func_aliases_for_call): Likewise.
6196
fbaf0d0c
GDR
61972011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
6198
6199 * internal-fn.h (internal_fn_name_array): Declare.
6200 (internal_fn_flags_array): Likewise.
6201
cbb734aa
UB
62022011-04-27 Uros Bizjak <ubizjak@gmail.com>
6203
6204 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
6205 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
6206 Move from sse.md.
6207 (ssemodefsuffix): Remove.
6208 (ssevecmodesuffix): New mode attribute.
6209 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
6210 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
6211 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
6212 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
6213 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
6214 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
6215 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
6216 ssemodesuffix mode attribute.
6217 (float splitters): Use ssevecmodesuffix mode attribute.
6218 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
6219 (sseinsmode): Rename from avxvecmode.
6220 (avxsizesuffix): Rename from avxmodesuffix.
6221 (sseintvecmode): Rename from avxpermvecmode.
6222 (ssedoublevecmode): Rename from ssedoublesizemode.
6223 (ssehalfvecmode): Rename from avxhalfvecmode.
6224 (ssescalarmode): Rename from avxscalarmode.
6225 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
6226 templates for ssemodesuffix mode attribute.
6227 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
6228 mode attribute.
6229
6230 Adjust RTX patterns globally for renamed mode attributes.
6231
991278ab
JH
62322011-04-27 Jan Hubcika <jh@suse.cz>
6233
6234 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
6235 * ipa-inline-analysis.c: Include alloc-pool.h.
6236 (edge_predicate_pool): New.
6237 (trye_predicate_p): New function
6238 (false_predicate_p): New function.
6239 (add_clause): Sanity check that false clauses are "optimized";
6240 never add clauses to predicate that is already known to be false.
6241 (and_predicate): Use flase_predicate_p.
6242 (evaulate_predicate): Rename to ...
6243 (evaluate_predicate): ... this one; update all callers; assert
6244 that false is not listed among possible truths.
6245 (dump_predicate): Use true_predicate_p.
6246 (account_size_time): Use false_predicate_p.
6247 (evaulate_conditions_for_edge): Rename to ...
6248 (evaluate_conditions_for_edge) ... this one.
6249 (edge_set_predicate): New function.
6250 (inline_edge_duplication_hook): Duplicate edge predicates.
6251 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 6252 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
6253 (dump_inline_summary): Update.
6254 (estimate_function_body_sizes): Set edge predicates.
6255 (estimate_calls_size_and_time): Handle predicates.
6256 (estimate_callee_size_and_time): Update.
6257 (remap_predicate): Add toplev_predicate; update comment.
6258 (remap_edge_predicates): New function.
6259 (inline_merge_summary): Compute toplev predicate; update.
6260 (read_predicate): New function.
6261 (read_inline_edge_summary): Use it.
6262 (inline_read_section): Likewise.
6263 (write_predicate): New function.
6264 (write_inline_edge_summary): Use it.
6265 (inline_write_summary): Likewise.
6266 (inline_free_summary): Free alloc pool and edge summary vec.
6267
648b5f85
RG
62682011-04-27 Richard Guenther <rguenther@suse.de>
6269
6270 * tree-ssa-structalias.c (changed_count): Remove.
6271 (changed): Use a bitmap.
6272 (unify_nodes): Adjust.
6273 (do_sd_constraint): Likewise.
6274 (do_ds_constraint): Likewise.
6275 (do_complex_constraint): Likewise.
6276 (solve_graph): Likewise.
6277
4d5dcfb2
JH
62782011-04-27 Jan Hubicka <jh@suse.cz>
6279
6280 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
6281
200eb7d2
UB
62822011-04-27 Uros Bizjak <ubizjak@gmail.com>
6283
6284 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
6285 (avx_vperm2f128_*_operand): Ditto.
6286 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
6287 Use avx_vpermilp_parallel in insn condition.
6288 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
6289 Use avx_vperm2f128_parallel in insn condition.
6290
7d6e2521
RG
62912011-04-27 Richard Guenther <rguenther@suse.de>
6292
6293 * Makefile.in (tree-ssa-structalias.o): Remove
6294 gt-tree-ssa-structalias.h dependency.
6295 (GTFILES): Remove tree-ssa-structalias.c.
6296 * tree.c (allocate_decl_uid): New function.
6297 (make_node_stat): Use it.
6298 (copy_node_stat): Likewise.
6299 * tree.h (allocate_decl_uid): Declare.
6300 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
6301 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
6302 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 6303 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
6304 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
6305 (struct heapvar_map): Likewise.
6306 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
6307 heapvar_insert): Likewise.
6308 (make_heapvar_for): Rename to ...
6309 (make_heapvar): ... this. Simplify.
6310 (fake_var_decl_obstack): New global var.
6311 (build_fake_var_decl): New function.
6312 (make_constraint_from_heapvar): Adjust.
6313 (handle_lhs_call): Likewise.
6314 (create_function_info_for): Likewise.
6315 (intra_create_variable_infos): Likewise.
6316 (init_alias_vars): Allocate fake_var_decl_obstack.
6317 (init_alias_heapvars, delete_alias_heapvars): Remove.
6318 (compute_points_to_sets): Do not call init_alias_heapvars.
6319 (ipa_pta_execute): Likewise.
6320 (delete_points_to_sets): Free fake_var_decl_obstack.
6321
526ed6c2
UW
63222011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6323
6324 * config/spu/divmovti4.c (union qword_UTItype): New data type.
6325 (si_from_UTItype, si_to_UTItype): New functions.
6326 (__udivmodti4): Use them to implement type-punning.
6327 * config/spu/multi3.c (union qword_TItype): New data type.
6328 (si_from_TItype, si_to_TItype): New functions.
6329 (__multi3): Use them to implement type-punning.
6330
c187d33c
UW
63312011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6332
6333 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
6334
40982661
JH
63352011-04-27 Jan Hubicka <jh@suse.cz>
6336
6337 * ipa-prop.c (function_insertion_hook_holder): New holder.
6338 (ipa_add_new_function): New function.
200eb7d2
UB
6339 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
6340 Register/deregister holder.
40982661 6341
9aef53ee
RG
63422011-04-27 Richard Guenther <rguenther@suse.de>
6343
6344 PR tree-optimization/48772
200eb7d2 6345 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 6346
f63d806d
RG
63472011-04-27 Richard Guenther <rguenther@suse.de>
6348
6349 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
6350 TARGET_MEM_REF handling.
6351
e1ea7451
NC
63522011-04-27 Nick Clifton <nickc@redhat.com>
6353
9b5db25d
NC
6354 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
6355 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
6356 (REG_CLASS_NAMES): Likewise.
6357 (REG_CLASS_CONTENTS): Likewise.
6358 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
6359 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
6360 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
6361 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
6362 (EVEN_REGS): New macro. Alias for QUAD_REGS.
6363 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
6364 duplicate register classes.
97d20907 6365 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
6366 (frv_register_move_cost): Likewise.
6367
e1ea7451
NC
6368 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
6369 end of the regno_reg_class array.
6370
5c2f94b4
JJ
63712011-04-27 Jakub Jelinek <jakub@redhat.com>
6372
6373 PR c/48742
6374 * c-typeck.c (build_binary_op): Don't wrap arguments if
6375 int_operands is true.
6376
57a944d7
KK
63772011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
6378
6379 PR target/48767
6380 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
6381 targetm.calls.must_pass_in_stack for void type.
6382
898b8927
JH
63832011-04-26 Jan Hubicka <jh@suse.cz>
6384
6385 * cgraphbuild.c (build_cgraph_edges): Update call
6386 of cgraph_create_edge and cgraph_create_indirect_edge.
6387 * cgraph.c (cgraph_create_edge_including_clones,
6388 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
6389 cgraph_update_edges_for_call_stmt_node): Do not take nest
6390 argument; do not initialize call_stmt_size/time.
6391 (dump_cgraph_node): Do not dump nest.
6392 (cgraph_clone_edge): Do not take loop_nest argument;
6393 do not propagate it; do not clone call_stmt_size/time.
6394 (cgraph_clone_node): Likewise.
6395 (cgraph_create_virtual_clone): Update.
6396 * cgraph.h (struct cgraph_edge): Remove
6397 call_stmt_size/call_stmt_time/loop_nest.
6398 (cgraph_create_edge, cgraph_create_indirect_edge,
6399 cgraph_create_edge_including_clones, cgraph_clone_node): Update
6400 prototype.
6401 * tree-emutls.c (gen_emutls_addr): Update.
6402 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
6403 loop_nest; handle indirect calls, too.
6404 (clone_inlined_nodes): Do not care about updating inline summaries.
6405 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
6406 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
6407 stream call_stmt_size/call_stmt_time/loop_nest.
6408 * ipa-inline.c (edge_badness): Update.
6409 (ipa_inline): dump summaries after inlining.
6410 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 6411 New.
898b8927
JH
6412 (inline_edge_summary): New function.
6413 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
6414 (inline_edge_removal_hook): Handle edge summaries.
6415 (inline_edge_duplication_hook): New hook.
6416 (inline_summary_alloc): Alloc hooks.
6417 (initialize_growth_caches): Do not register removal hooks.
6418 (free_growth_caches); Do not free removal hook.
6419 (dump_inline_edge_summary): New function.
6420 (dump_inline_summary): Use it.
6421 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
6422 (inline_update_callee_summaries): New function.
6423 (inline_merge_summary): Use it.
6424 (do_estimate_edge_time, do_estimate_edge_growth): Update.
6425 (read_inline_edge_summary): New function.
6426 (inline_read_section): Use it.
6427 (write_inline_edge_summary): New function.
6428 (inline_write_summary): Use it.
6429 (inline_free_summary): Free edge new holders.
6430 * tree-inline.c (copy_bb): Update.
6431
ffa03772
JM
64322011-04-26 Jason Merrill <jason@redhat.com>
6433
6434 * tree-eh.c (lower_try_finally_switch): Create the label along with
6435 the CASE_LABEL_EXPR.
6436
6d7b45ad
DM
64372011-04-26 David S. Miller <davem@davemloft.net>
6438 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6439
6440 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
6441 * configure: Regenerate.
6442
df10b6d4
MM
64432011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6444
6445 PR target/48258
6446 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
6447 reduction.
6448 (VEC_reduc): New code iterator and splitters for vector reduction.
6449 (VEC_reduc_name): Ditto.
6450 (VEC_reduc_rtx): Ditto.
6451 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
6452 (reduc_<VEC_reduc_name>_v4sf): Ditto.
6453
6454 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6455 support for extracting SF on VSX.
6456
6457 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
6458 generating xscvspdp.
6459 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
6460 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
6461 double add, minimum, maximum vector reduction.
6462 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
6463 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
6464 optimize double vector reduction.
6465 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
6466
35a5db04
JM
64672011-04-26 Joseph Myers <joseph@codesourcery.com>
6468
6469 * config/fr30/fr30.h (inhibit_libc): Don't define.
6470 * config/m32r/m32r-protos.h: Correct comment.
6471 * config/v850/v850.h (GHS_default_section_names,
6472 GHS_current_section_names): Use tree, not union tree_node *.
6473
2f964ad6
XDL
64742011-04-26 Xinliang David Li <davidxl@google.com>
6475
200eb7d2 6476 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
6477 * c-family/c-opts.c (c_common_handle_option): Set
6478 warn_maybe_uninitialized.
6479 * opts.c (common_handle_option): Ditto.
6480 * common.opt: New option.
6481 * tree-ssa.c (warn_uninit): Add one more parameter.
6482 (warn_uninitialized_var): Pass warning code.
6483 * tree-flow.h: Interface change.
6484
9c7bd91a
RO
64852011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6486
200eb7d2 6487 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
6488 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
6489 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
6490
c2f36e21
RO
64912011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6492
6493 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
6494 * config/mips/mips.opt (mmips-tfile): Remove.
6495
6496 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
6497 mips-tdump reference to ...
200eb7d2 6498 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
6499 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
6500 reference by Tru64 UNIX.
6501
2c9da85b
JJ
65022011-04-26 Jakub Jelinek <jakub@redhat.com>
6503
0c5f6539
JJ
6504 PR debug/48768
6505 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
6506 is error_mark_node, set value to NULL.
6507
2c9da85b
JJ
6508 PR tree-optimization/48734
6509 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
6510 if return value from maybe_fold_*_comparsions isn't something
6511 the code is prepared to handle.
6512
77fa1d54
UB
65132011-04-26 Uros Bizjak <ubizjak@gmail.com>
6514
6515 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
6516 mode check.
6517 (ext_QIreg_nomode_operands): Remove.
6518 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
6519 (*andsi_1): Ditto.
6520 (*andhi_1): Ditto.
6521
0e2a6c2b
AS
65222011-04-26 Andrew Stubbs <ams@codesourcery.com>
6523
6524 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
6525
961562d8
RB
65262011-04-26 Richard Guenther <rguenther@suse.de>
6527
6528 * c-typeck.c (build_unary_op): Do not expand array-refs via
6529 pointer arithmetic. Only adjust qualifiers for function types.
6530
65312011-04-26 Richard Guenther <rguenther@suse.de>
6532
6533 PR middle-end/48694
6534 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
6535 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
6536 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
6537 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 6538
a0d260fc
PC
65392011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
6540
6bec6c98 6541 * doc/extend.texi: Document __underlying_type.
a0d260fc 6542
4d583bb9
SB
65432011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
6544
6545 * config/rs6000/titan.md (automata_option "progress"): Remove.
6546
1f3fcdc3
JL
65472011-04-25 Jeff Law <law@redhat.com>
6548
6549 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
6550
e5b0dad8
JK
65512011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
6552
6553 * system.h (ENUM_BITFIELD): Remove.
6554
5157a881 65552011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 6556 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
6557
6558 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
6559 for STORE_FLAG_VALUE==-1 case.
6560
ed4c109e
RS
65612011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
6562
6563 PR target/43804
6564 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
6565 LEGITIMATE_PIC_OPERAND_P.
6566
f3181aa2
JH
65672011-04-24 Jan Hubicka <jh@suse.cz>
6568
6569 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
6570 WPA hack.
77fa1d54
UB
6571 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
6572 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
6573 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
6574 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
6575 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
6576 Sanity check predicate length.
6577 (remap_predicate): Likewise; sanity check jump functions.
6578 (inline_read_section, inline_write_summary): Sanity check
6579 predicate length.
6580
5307cbaa
PC
65812011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
6582
6583 PR other/48748
6584 * doc/extend.texi (Type Traits): Document __is_standard_layout,
6585 __is_literal_type, and __is_trivial; update throughout about
6586 possibly cv-qualified void types.
6587
bebd5f99
GP
65882011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
6589
6590 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
6591 testsuite and make it version agnostic.
6592
7ee28a74
JH
65932011-04-22 Jan Hubicka <jh@suse.cz>
6594
6595 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
6596
16997bc0
JJ
65972011-04-23 Jakub Jelinek <jakub@redhat.com>
6598
6599 PR c/48685
6600 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
6601 to VOID_TYPE even around MODIFY_EXPR.
6602
f94d4ab1
MS
66032011-04-22 Mike Stump <mikestump@comcast.net>
6604
1a84c183 6605 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
6606 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
6607 comment.
6608
632b4f8e
JH
66092011-04-22 Jan Hubicka <jh@suse.cz>
6610
6611 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
6612 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
6613 ipa-prop.c; update all uses.
632b4f8e 6614 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
6615 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
6616 merge summary of inlined function into former caller.
632b4f8e
JH
6617 * ipa-inline.c (max_benefit): Remove.
6618 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
6619 (update_caller_keys): Use
6620 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
6621 (update_callee_keys): Likewise.
6622 (update_all_callee_keys): Likewise.
77fa1d54
UB
6623 (inline_small_functions): Do not collect max_benefit; do not reset
6624 estimated_growth; call free_growth_caches and initialize_growth_caches.
6625 * ipa-inline.h (struct condition, type clause_t, struct predicate,
6626 struct size_time_entry): New structures.
632b4f8e 6627 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
6628 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
6629 and estimated_growth.
632b4f8e
JH
6630 (edge_growth_cache_entry): New structure.
6631 (node_growth_cache, edge_growth_cache): New global vars.
6632 (estimate_growth): Turn into inline.
6633 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
6634 initialize_growth_caches, free_growth_caches): Declare.
6635 (estimate_edge_growth): Rewrite.
6636 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
6637 (reset_node_growth_cache, reset_edge_growth_cache): New inline
6638 functions.
632b4f8e
JH
6639 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
6640 (NUM_CONDITIONS): New constant.
6641 (predicate_conditions): New enum.
6642 (IS_NOT_CONSTANT): New constant.
6643 (edge_removal_hook_holder): New var.
6644 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
6645 (true_predicate, single_cond_predicate, false_predicate,
6646 not_inlined_predicate, add_condition, add_clause, and_predicates,
6647 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
6648 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
6649 evaulate_conditions_for_edge): New functions.
6650 (inline_summary_alloc): Move to heap.
6651 (inline_node_removal_hook): Clear condition and entry vectors.
6652 (inline_edge_removal_hook): New function.
6653 (initialize_growth_caches, free_growth_caches): New function.
6654 (dump_inline_summary): Update.
6655 (edge_execution_predicate): New function.
6656 (will_be_nonconstant_predicate): New function.
6657 (estimate_function_body_sizes): Compute BB and constantness predicates.
6658 (compute_inline_parameters): Do not clear estimated_growth.
6659 (estimate_edge_size_and_time): New function.
6660 (estimate_calls_size_and_time): New function.
6661 (estimate_callee_size_and_time): New function.
6662 (remap_predicate): New function.
6663 (inline_merge_summary): New function.
6664 (do_estimate_edge_time): New function based on...
6665 (estimate_edge_time): ... this one.
6666 (do_estimate_edge_growth): New function.
6667 (do_estimate_growth): New function based on....
6668 (estimate_growth): ... this one.
6669 (inline_analyze_function): Analyze after deciding on jump functions.
6670 (inline_read_section): New function.
6671 (inline_read_summary): Use it.
6672 (inline_write_summary): Write all the new data.
6673 * ipa-prop.c (ipa_get_param_decl_index): Export.
6674 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
6675 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
6676 Declare.
6677 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
6678 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
6679 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
6680 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
6681 cgraph_edge_inlinable_p): Remove.
6682 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
6683 (cgraph_process_new_functions): Update call of
6684 compute_inline_parameters.
632b4f8e 6685
1df5b0db
RG
66862011-04-22 Richard Guenther <rguenther@suse.de>
6687
6688 * tree.c (build_int_cst): Properly create canonicalized integer
6689 constants.
6690 (build_int_cst_type): Remove scary comments.
6691
ae01169c
XDL
66922011-04-22 Xinliang David Li <davidxl@google.com>
6693
6694 * toplev.c (process_options): Enable -Werror=coverage-mismatch
6695 by default when -Wno-error is not specified.
6696 * opts-global.c (decode_options): Remove call to
6697 control_warning_options.
6698
93dfac24
JJ
66992011-04-22 Jakub Jelinek <jakub@redhat.com>
6700
6701 PR tree-optimization/48717
6702 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
6703 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
6704
1b5f5069
JM
67052011-04-22 Joseph Myers <joseph@codesourcery.com>
6706
6707 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
6708 definition where used.
6709
144f4153
JJ
67102011-04-22 Jakub Jelinek <jakub@redhat.com>
6711
6712 PR c/48716
6713 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
6714 TREE_STATIC variables declared inside of some OpenMP construct.
6715
f9fd305b
MJ
67162011-04-22 Martin Jambor <mjambor@suse.cz>
6717
6718 PR middle-end/48585
1d284ec5 6719 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 6720
49819fef
AM
67212011-04-22 Alexander Monakov <amonakov@ispras.ru>
6722
6723 PR c/36750
6724 * c-typeck.c (pop_init_level): Do not warn about initializing
6725 with ` = {0}'.
6726
401f6699
AM
67272011-04-22 Alan Modra <amodra@gmail.com>
6728
6729 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
6730 when returning call_cookie.
6731 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
6732 pointers, to functions with no more vector args than the current
6733 function, and some non-local calls for ABI_V4.
6734 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
6735 sibcall_nonlocal_aix64): Combine to ..
6736 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
6737 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
6738 (sibcall_value_nonlocal_aix<mode>): ..likewise.
6739 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
6740 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
6741 operand.
6742 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
6743 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
6744 sibcall_value_symbolic_64): Delete.
6745
903d1e67
XDL
67462011-04-21 Xinliang David Li <davidxl@google.com>
6747
6748 * cgraph.h: Remove pid.
6749 * cgraph.c: Remove pid.
6750 * value-prof.c (init_node_map): New function.
6751 (del_node_map): New function.
6752 (find_func_by_funcdef_no): New function.
6753 (gimple_ic_transform): Call new function.
6754 * cgraphunit.c (cgraph_finalize_function): Remove pid.
6755 * function.c (get_last_funcdef_no): New function.
6756 * function.h (get_last_funcdef_no): New function.
6757 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
6758 to libgcov function.
6759 (tree-profiling): Call node map init and delete function.
6760
7378e95f
ILT
67612011-04-21 Ian Lance Taylor <iant@google.com>
6762
6763 * godump.c (go_format_type): Use exported Go name for anonymous
6764 field name.
6765
e84a6fcf
NF
67662011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6767
6768 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
6769 Call builtin_function_type_list instead of builtin_function_type.
6770 (UNARY, BINARY, TRINARY, QUAD): Likewise.
6771
4fe058e2
NF
67722011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6773
6774 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
6775 build_function_type_list instead of build_function_type.
6776 Delete variable `endlink'.
6777
1ba0a2d2
NF
67782011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6779
6780 * config/s390/s390.c (s390_init_builtins): Call
6781 build_function_type_list instead of build_function_type.
6782
c0676219
NF
67832011-04-21 Nathan Froyd <froydnj@codesourcery.com>
6784
6785 * config/ia64/ia64.c (ia64_init_builtins): Call
6786 build_function_type_list instead of builtin_function_type.
6787
6ddfda8a
ER
67882011-04-21 Easwaran Raman <eraman@google.com>
6789
3a6448ea 6790 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
6791 (add_stack_var): ...and its reference here...
6792 (expand_stack_vars): ...and here.
6793 (stack_var_cmp): Sort by descending order of size.
6794 (partition_stack_vars): Change heuristic.
1d284ec5 6795 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
6796 (dump_stack_var_partition): Add newline after each partition.
6797
23756963
DA
67982011-04-21 Dimitrios Apostolou <jimis@gmx.net>
6799 Jeff Law <law@redhat.com>
6800
77fa1d54 6801 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
6802 * gengtype.c (matching_file_name_substitute): Likewise.
6803
aa2a43d2
RG
68042011-04-21 Richard Guenther <rguenther@suse.de>
6805
6806 PR lto/48703
1d284ec5 6807 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 6808
4d931f41
EB
68092011-04-21 Eric Botcazou <ebotcazou@adacore.com>
6810
6811 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
6812
f103fa7a
RG
68132011-04-21 Richard Guenther <rguenther@suse.de>
6814
6815 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
6816 file name.
6817
e19f6650
RG
68182011-04-21 Richard Guenther <rguenther@suse.de>
6819
6820 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
6821 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
6822 Use DECL_P, not SSA_VAR_P.
6823 (ptr_derefs_may_alias_p): Likewise.
6824 (ptr_deref_may_alias_ref_p_1): Likewise.
6825 (decl_refs_may_alias_p): Likewise.
6826 (refs_may_alias_p_1): Likewise.
6827 (ref_maybe_used_by_call_p_1): Likewise.
6828 (call_may_clobber_ref_p_1): Likewise.
6829 (indirect_ref_may_alias_decl_p): Assume indirect refrences
6830 are either MEM_REF or TARGET_MEM_REF.
6831 (indirect_refs_may_alias_p): Likewise.
6832 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
6833 for MEM_EXPR of indirect calls.
6834
9d1831bb
TG
68352011-04-21 Tristan Gingold <gingold@adacore.com>
6836
6837 * vmsdbgout.c (write_srccorr): Compute file length from the string.
6838 (dst_file_info_struct): Remove flen field.
6839 (lookup_filename): Remove code that set flen field.
6840
f199c029
TG
68412011-04-21 Tristan Gingold <gingold@adacore.com>
6842
6843 * config/ia64/ia64.c (ia64_start_function): Add a guard.
6844
2894086e
UB
68452011-04-21 Uros Bizjak <ubizjak@gmail.com>
6846
6847 PR target/48708
6848 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
6849 vec_extract and vec_concat for non-SSE4_1 targets.
6850
53f94a5c
RG
68512011-04-21 Richard Guenther <rguenther@suse.de>
6852
6853 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
6854 return statements.
6855
f0dca5ba
JM
68562011-04-21 Joseph Myers <joseph@codesourcery.com>
6857
6858 * config/i386/cygming.h (union tree_node, TREE): Don't define or
6859 undefine.
6860 (FILE): Don't undefine.
6861
984514ac
JM
68622011-04-21 Joseph Myers <joseph@codesourcery.com>
6863
6864 * config/alpha/alpha.c (struct machine_function): Use rtx, not
6865 struct rtx_def *.
6866 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
6867 struct rtx_def *.
6868 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 6869 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
6870 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
6871 rtx_def *.
6872 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
6873 definitions where used.
6874 * config/microblaze/microblaze.h (struct microblaze_args): Use
6875 rtx, not struct rtx_def *.
6876 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
6877 rtx_def *.
2894086e
UB
6878 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
6879 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
6880 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
6881 not struct rtx_def *.
6882 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
6883 struct rtx_def *.
6884 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
6885 rtx_def *.
2894086e 6886 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 6887
0b5a2724
RS
68882011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
6889
6890 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
6891 operand_equal_p to compare DR_BASE_ADDRESSes.
6892 (vect_check_interleaving): Likewise.
6893
4b18d683
RS
68942011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
6895
6896 PR target/46329
6897 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
6898 for all Neon struct constants.
6899
1a627b35
RS
69002011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
6901
6902 * target.def (legitimate_constant_p): New hook.
6903 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
6904 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
6905 * doc/tm.texi: Regenerate.
6906 * hooks.h (hook_bool_mode_rtx_true): Declare.
6907 * hooks.c (hook_bool_mode_rtx_true): Define.
6908 * system.h (LEGITIMATE_CONSTANT_P): Poison.
6909 * calls.c (precompute_register_parameters): Replace uses of
6910 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
6911 (emit_library_call_value_1): Likewise.
6912 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
6913 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
6914 * ira-costs.c (scan_one_insn): Likewise.
6915 * recog.c (general_operand, immediate_operand): Likewise.
6916 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
6917 * reload1.c (init_eliminable_invariants): Likewise.
6918
6919 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
6920 mode argument.
6921 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
6922 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
6923 argument.
6924 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6925 * config/alpha/predicates.md (input_operand): Update call to
6926 alpha_legitimate_constant_p.
6927
6928 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
6929 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
6930 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
6931 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6932 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
6933 (arm_legitimate_constant_p): New functions.
6934 (arm_cannot_force_const_mem): Make static.
6935
6936 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
6937
6938 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
6939 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
6940 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
6941 instead of bfin_legitimate_constant_p.
6942 (bfin_legitimate_constant_p): Make static. Add a mode argument.
6943 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6944
6945 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
6946
6947 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
6948
6949 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
6950 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
6951 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6952 (frv_legitimate_constant_p): Make static. Add a mode argument.
6953
6954 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
6955 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
6956 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
6957
6958 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
6959 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
6960 * config/i386/i386.c (legitimate_constant_p): Rename to...
6961 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
6962 argument.
6963 (ix86_cannot_force_const_mem): Update accordingly.
6964 (ix86_legitimate_address_p): Likewise.
6965 (TARGET_LEGITIMATE_CONSTANT_P): Define.
6966 * config/i386/i386.md: Update commentary.
6967
6968 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
6969 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
6970 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6971 (ia64_legitimate_constant_p): Make static. Add a mode argument.
6972
6973 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
6974
6975 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
6976 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
6977 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6978 (lm32_legitimate_constant_p): Make static. Add a mode argument.
6979
6980 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
6981 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
6982 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
6983
6984 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
6985 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6986 (m32r_legitimate_constant_p): New function.
6987
6988 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
6989 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
6990 LEGITIMATE_CONSTANT_P.
6991 (LEGITIMATE_CONSTANT_P): Delete.
6992 * config/m68k/m68k.c (m68k_expand_prologue): Call
6993 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
6994 (m68k_legitimate_constant_p): New function.
6995 * config/m68k/m68k.md: Update comments.
6996
6997 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
6998 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
6999 (mcore_legitimate_constant_p): New function.
7000
7001 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
7002 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
7003 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
7004 Add a mode argument.
7005 (mep_legitimate_address): Update accordingly.
7006 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7007
7008 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
7009 Delete.
7010 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
7011 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
7012 static. Check OP's mode for VOIDmode.
7013 (microblaze_legitimate_constant_p): New function.
7014 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7015
7016 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
7017 * config/mips/mips.c (mips_legitimate_constant_p): New function.
7018 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
7019 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7020 * config/mips/predicates.md: Update comments.
7021
7022 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
7023 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
7024 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7025 (mmix_legitimate_constant_p): Make static, return a bool, and take
7026 a mode argument.
7027 (mmix_print_operand_address): Update accordingly.
7028
7029 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
7030 Delete.
7031 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
7032 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
7033 static. Add a mode argument.
1a627b35
RS
7034 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7035
7036 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
7037
7038 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
7039 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7040 (pa_legitimate_constant_p): New function.
7041
7042 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
7043
7044 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
7045 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7046 (pdp11_legitimate_constant_p): New function.
7047
7048 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
7049 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7050 (rs6000_legitimate_constant_p): New function.
7051
7052 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
7053 (rx_legitimate_constant_p): ...this.
7054 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
7055 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
7056 (rx_legitimate_constant_p): ...this.
7057 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7058 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
7059
7060 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
7061 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
7062 * config/s390/s390.c (legitimate_constant_p): Rename to...
7063 (s390_legitimate_constant_p): ...this. Make static, return a bool,
7064 and add a mode argument.
7065 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7066
7067 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
7068
7069 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
7070 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7071 (sh_legitimate_constant_p): New function.
7072
7073 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
7074 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
7075 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7076 (legitimate_constant_p): Rename to...
7077 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
7078 argument.
7079 (constant_address_p): Update accordingly.
7080
7081 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
7082 argument and return a bool.
7083 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
7084 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7085 (spu_legitimate_constant_p): Add a mode argument and return a bool.
7086 (spu_rtx_costs): Update accordingly.
7087 * config/spu/predicates.md (vec_imm_operand): Likewise.
7088
7089 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
7090
7091 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
7092 * config/v850/v850.c (v850_legitimate_constant_p): New function.
7093 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7094
7095 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
7096 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
7097 * config/vax/vax.c (legitimate_constant_p): Likewise.
7098
7099 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
7100 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7101 (xtensa_legitimate_constant_p): New function.
7102
fbbf66e7
RS
71032011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7104
7105 * target.def (cannot_force_const_mem): Add a mode argument.
7106 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
7107 * doc/tm.texi: Regenerate.
7108 * hooks.h (hook_bool_mode_rtx_false): Declare.
7109 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
7110 (hook_bool_mode_const_rtx_true): Likewise.
7111 (hook_bool_mode_rtx_false): New function.
7112 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
7113 to be non-VOID. Update call to cannot_force_const_mem.
7114 (find_reloads): Update accordingly.
7115 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
7116 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
7117 argument.
7118 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
7119 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
7120 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
7121 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
7122 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
7123 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
7124 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
7125 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
7126 (m68k_cannot_force_const_mem): ...this new function.
7127 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
7128 argument.
7129 (mips_const_insns, mips_legitimize_const_move): Update calls.
7130 (mips_secondary_reload_class): Likewise.
7131 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
7132 (pa_cannot_force_const_mem): ...this new function.
2894086e 7133 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
7134 (rs6000_cannot_force_const_mem): ...this new function.
7135 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
7136 argument.
7137 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
7138 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
7139 to...
7140 (xtensa_cannot_force_const_mem): ...this new function.
7141
b861891b
NF
71422011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7143
7144 * config/mips/mips.c (mips16_build_function_stub): Call
7145 build_function_type_list instead of build_function_type.
7146 (mips16_build_call_stub): Likewise.
7147
34149ed5
NF
71482011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7149
7150 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
7151 instead of build_function_type.
7152
12526412
NF
71532011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7154
7155 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
7156 instead of build_function_type.
7157
3b84d61f
UB
71582011-04-20 Uros Bizjak <ubizjak@gmail.com>
7159
7160 PR target/48678
7161 * config/i386/i386.md (insv): Change operand 0 constraint to
7162 "register_operand". Change operand 1 and 2 constraint to
7163 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
7164 * config/i386/sse.md (sse4_1_pinsrb): Export.
7165 (sse2_pinsrw): Ditto.
7166 (sse4_1_pinsrd): Ditto.
7167 (sse4_1_pinsrq): Ditto.
7168 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
7169 * config/i386/i386.c (ix86_expand_pinsr): New.
7170
4a25752b
ER
71712011-04-20 Easwaran Raman <eraman@google.com>
7172
7173 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
7174 containing union type only with -fstrict-aliasing.
7175
04695783
JM
71762011-04-20 Jim Meyering <meyering@redhat.com>
7177
7178 Remove useless if-before-free tests.
7179 * calls.c (expand_call, save_area): Likewise.
7180 * cfgcleanup.c (try_forward_edges): Likewise.
7181 * collect2.c (collect_execute): Likewise.
7182 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
7183 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
7184 * coverage.c (coverage_checksum_string): Likewise.
7185 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
7186 * cselib.c (cselib_init): Likewise.
7187 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
7188 (df_set_clean_cfg): Likewise.
7189 * function.c (free_after_compilation): Likewise.
7190 * gcc.c (do_spec_1, main): Likewise.
7191 * gcov.c (create_file_names): Likewise.
7192 * gensupport.c (identify_predicable_attribute): Likewise.
7193 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
7194 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
7195 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
7196 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
7197 * ipa-pure-const.c (local_pure_const): Likewise.
7198 * ipa-reference.c (propagate): Likewise.
7199 * ira-costs.c (free_ira_costs): Likewise.
7200 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
7201 * matrix-reorg.c (mat_free): Likewise.
7202 * prefix.c (get_key_value): Likewise.
7203 * profile.c (compute_value_histograms): Likewise.
7204 * reload1.c (free_reg_equiv): Likewise.
7205 * sched-deps.c (free_deps): Likewise.
7206 * sel-sched-ir.c (fence_clear): Likewise.
7207 * sese.c (set_rename, if_region_set_false_region): Likewise.
7208 * tree-data-ref.c (free_rdg): Likewise.
7209 * tree-eh.c (lower_try_finally): Likewise.
7210 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
7211 * tree-ssa-live.c (delete_var_map): Likewise.
7212 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
7213 * tree-ssa-pre.c (phi_trans_add): Likewise.
7214
6788475a
JJ
72152011-04-20 Jakub Jelinek <jakub@redhat.com>
7216
7217 PR tree-optimization/48611
7218 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
7219 beyond ERT_MUST_NOT_THROW region.
7220
0eda4033
CM
72212011-04-20 Catherine Moore <clm@codesourcery.com>
7222
7223 * config/mips/mips.opt (mfix-24k): New.
7224 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
7225 * config/mips/mips.md (length): Increase by 4 for stores if
7226 fixing 24K errata.
7227 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
7228 all noreorder if fixing 24K errata.
7229 * doc/invoke.texi: Document mfix-24k.
7230
01475747
CLT
72312011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
7232
7233 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 7234 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 7235
bc2c1a60
AS
72362011-04-20 Andrew Stubbs <ams@codesourcery.com>
7237
7238 * config/arm/arm.c (arm_gen_constant): Move movw support ....
7239 (const_ok_for_op): ... to here.
7240
583722ee
KT
72412011-04-20 Kai Tietz <ktietz@redhat.com>
7242
2894086e
UB
7243 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
7244 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 7245
422c0989
AS
72462011-04-20 Andrew Stubbs <ams@codesourcery.com>
7247
7248 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
7249
d7978bff
RG
72502011-04-20 Richard Guenther <rguenther@suse.de>
7251
7252 PR tree-optimization/47892
7253 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
7254 are if-convertible.
7255
818412ba
EB
72562011-04-20 Eric Botcazou <ebotcazou@adacore.com>
7257
7258 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
7259
b501ce4e
TG
72602011-04-20 Tristan Gingold <gingold@adacore.com>
7261
7262 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
7263
516edfdd
GJL
72642011-04-20 Georg-Johann Lay <avr@gjlay.de>
7265
7266 PR target/18145
7267
7268 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
7269 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
7270 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
7271 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
7272 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
7273
7274 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
7275 New prototype.
7276
7277 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
7278 (avr_asm_named_section, avr_asm_output_aligned_common,
7279 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
7280 New functions to update...
7281 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
7282 (avr_asm_init_sections): Overwrite section callbacks for
7283 data_section, bss_section.
7284 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
7285 from here to...
7286 (avr_file_end): ...here.
7287
dafc9511
RG
72882011-04-20 Richard Guenther <rguenther@suse.de>
7289
7290 PR middle-end/48695
7291 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 7292 objects and types here. Adjust for their offset before comparing.
dafc9511 7293
1da0876c
RS
72942011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
7295
7296 * tree-vect-stmts.c (vectorizable_store): Only chain one related
7297 statement per copy.
7298
25583c4f
RS
72992011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
7300
7301 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
7302 (GIMPLE_H): Include $(INTERNAL_FN_H).
7303 (OBJS-common): Add internal-fn.o.
7304 (internal-fn.o): New rule.
7305 * internal-fn.def: New file.
7306 * internal-fn.h: Likewise.
7307 * internal-fn.c: Likewise.
7308 * gimple.h: Include internal-fn.h.
7309 (GF_CALL_INTERNAL): New gf_mask.
7310 (gimple_statement_call): Put fntype into a union with a new
7311 internal_fn field.
7312 (gimple_build_call_internal): Declare.
7313 (gimple_build_call_internal_vec): Likewise.
7314 (gimple_call_same_target_p): Likewise.
7315 (gimple_call_internal_p): New function.
7316 (gimple_call_internal_fn): Likewise.
7317 (gimple_call_fntype): Return null for internal calls.
7318 (gimple_call_set_fntype): Assert that the function is not internal.
7319 (gimple_call_set_fn): Likewise.
7320 (gimple_call_set_fndecl): Likewise.
7321 (gimple_call_set_internal_fn): New function.
7322 (gimple_call_addr_fndecl): Handle null functions.
7323 (gimple_call_return_type): Likewise null types.
7324 * gimple.c (gimple_build_call_internal_1): New function.
7325 (gimple_build_call_internal): Likewise.
7326 (gimple_build_call_internal_vec): Likewise.
7327 (gimple_call_same_target_p): Likewise.
7328 (gimple_call_flags): Handle calls to internal functions.
7329 (gimple_call_fnspec): New function.
7330 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
7331 (gimple_has_side_effects): Handle null functions.
7332 (gimple_rhs_has_side_effects): Likewise.
7333 (gimple_call_copy_skip_args): Handle calls to internal functions.
7334 * cfgexpand.c (expand_call_stmt): Likewise.
7335 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
7336 * gimple-fold.c (gimple_fold_call): Handle null functions.
7337 (gimple_fold_stmt_to_constant_1): Don't fold
7338 calls to internal functions.
7339 * gimple-low.c (gimple_check_call_args): Handle calls to internal
7340 functions.
7341 * gimple-pretty-print.c (dump_gimple_call): Likewise.
7342 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
7343 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
7344 (do_warn_unused_result): Likewise.
7345 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
7346 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
7347 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
7348 the target of a call.
7349 (initialize_hash_element): Update accordingly.
7350 (hashable_expr_equal_p): Use gimple_call_same_target_p.
7351 (iterative_hash_hashable_expr): Handle calls to internal functions.
7352 (print_expr_hash_elt): Likewise.
7353 * tree-ssa-pre.c (can_value_number_call): Likewise.
7354 (eliminate): Handle null functions.
7355 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
7356 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
7357 (find_func_aliases): Likewise.
7358 * value-prof.c (gimple_ic_transform): Likewise.
7359 (gimple_indirect_call_to_profile): Likewise.
7360 * lto-streamer-in.c (input_gimple_stmt): Likewise.
7361 * lto-streamer-out.c (output_gimple_stmt): Likewise.
7362
1a3118e9
JH
73632011-04-19 Jan Hubicka <jh@suse.cz>
7364
7365 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
7366 * ipa-inline.c (inline_small_functions): Compute summaries first,
7367 populate heap later.
1a3118e9 7368
fee8b6da
JH
73692011-04-19 Jan Hubicka <jh@suse.cz>
7370
7371 * cgraph.h (save_inline_function_body): Remove.
7372 * ipa-inline-transform.c: New file, broke out of...
7373 * ipa-inline.c: ... this one; Update toplevel comment.
7374 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
7375 make global.
7376 (update_noncloned_frequencies): Move to ipa-inline-transform.c
7377 (cgraph_mark_inline_edge): Rename to inline_call; move to
7378 ipa-inline-transform.c.
7379 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
7380 move to ipa-inline-transform.c
7381 (recursive_inlining, inline_small_functions, flatten_function,
7382 ipa_inline, inline_always_inline_functions,
7383 early_inline_small_functions): Update.
7384 (inline_transform): Move to ipa-inline-transform.c.
7385 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
7386 Declare.
7387 * Makefile.in (ipa-inline-transform.o): New file.
7388 * cgraphunit.c (save_inline_function_body): Move to
7389 ipa-inline-transform.c
7390
f0679612
DD
73912011-04-19 DJ Delorie <dj@redhat.com>
7392
7393 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
7394 registers if we already know there aren't any.
7395 (m32c_emit_epilogue): Don't emit a barrier here.
7396 (m32c_emit_eh_epilogue): Likewise.
7397 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
7398 operands at expand time.
7399 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
7400 int" wchar type.
7401 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
7402 duplicates. Provide aliases instead.
7403 * config/m32c/prologue.md (eh_return): Emit a barrier here.
7404 (eh_epilogue): Add a "(return)" here as a hint to other parts of
7405 the compiler.
7406
32257ddc
AS
74072011-04-19 Anatoly Sokolov <aesok@post.ru>
7408
7409 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
7410 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
7411 (general_or_i64_p, sparc_register_move_cost): New function.
7412
60bea929
RO
74132011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7414
7415 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 7416 Add lynx, mipssde. Sort table.
60bea929 7417
444b3995 74182011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 7419
9d12f71a
EB
7420 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
7421 not negative.
444b3995 7422
d708ce50
JJ
74232011-04-19 Jakub Jelinek <jakub@redhat.com>
7424
7425 PR target/48678
7426 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
7427 is a SUBREG with non-MODE_INT mode inside of it.
7428
49c471e3
MJ
74292011-04-19 Martin Jambor <mjambor@suse.cz>
7430
7431 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
7432 also according to actual contants.
7433 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
7434 (gimple_fold_call): Use it.
7435 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
7436
0004f992
MJ
74372011-04-19 Martin Jambor <mjambor@suse.cz>
7438
7439 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
7440 non-pointer assignments.
7441
40591473
MJ
74422011-04-19 Martin Jambor <mjambor@suse.cz>
7443
7444 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
7445 account anc_offset and otr_type from the indirect edge info.
7446 * ipa-prop.c (get_ancestor_addr_info): New function.
7447 (compute_complex_ancestor_jump_func): Assignment analysis moved to
7448 get_ancestor_addr_info, call it.
7449 (ipa_note_param_call): Do not initialize information about polymorphic
7450 calls, return the indirect call graph edge. Remove the last
7451 parameter, adjust all callers.
7452 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
7453 parameters. Initialize polymorphic information in the indirect edge.
7454
abe36b81
EB
74552011-04-19 Eric Botcazou <ebotcazou@adacore.com>
7456
7457 PR lto/48148
7458 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
7459 the types if they have different enumeration identifiers.
7460
e6416b30
JH
74612011-04-19 Jan Hubicka <jh@suse.cz>
7462
7463 * cgraph.h (cgraph_optimize_for_size_p): Declare.
7464 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
7465 * predict.c (cgraph_optimize_for_size_p): Break out from ...
7466 (optimize_function_for_size_p) ... here.
7467
d39132ea
RG
74682011-04-19 Richard Guenther <rguenther@suse.de>
7469
7470 PR lto/48207
7471 * tree.c (free_lang_data): Do not reset the decl-assembler-name
7472 langhook.
7473
ff7037dc
EB
74742011-04-19 Eric Botcazou <ebotcazou@adacore.com>
7475
7476 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
7477 if DECL_NO_INLINE_WARNING_P is set on the function.
7478
c1ee2892
BS
74792011-04-19 Bernd Schmidt <bernds@codesourcery.com>
7480
7481 PR fortran/47976
7482 * reload1.c (inc_for_reload): Return void. All callers changed.
7483 (emit_input_reload_insns): Don't try to delete previous output
7484 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
7485
74862011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
7487
7488 * gengtype.h: Updated copyright year.
7489 (struct input_file_st): Add inpisplugin field.
7490 (type_fileloc): New function.
7491 * gengtype.c
7492 (write_typed_struct_alloc_def): Add gcc_assert.
7493 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
7494 (write_typed_alloc_defns): Don't output for plugin files.
7495 (input_file_by_name): Clear inpisplugin field.
7496 (main): Set inpisplugin field for plugin files.
7497
897e0a89
NP
74982011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
7499
7500 * gengtype-state.c (string_eq): New.
7501 (read_state): Use string_eq instead of strcmp when creating the
7502 state_ident_tab.
7503
363ee90e
WG
75042011-04-19 Wei Guozhi <carrot@google.com>
7505
7506 PR target/47855
7507 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
7508 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
7509 linkage.
7510 * config/arm/constraints.md (Uu): New constraint.
7511 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
7512
18a24fed
TG
75132011-04-19 Tristan Gingold <gingold@adacore.com>
7514
7515 * config.gcc (-*-*-*vms): Added.
7516 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
7517 definitions moved.
7518 * config/vms/vms-ld.c: New file.
7519 * config/vms/vms-ar.c: New file.
7520 * config/vms/t-vmsnative: New file.
7521
1c13f168
XDL
75222011-04-18 Xinliang David Li <davidxl@google.com>
7523
7524 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
7525
84825707
JJ
75262011-04-18 Jakub Jelinek <jakub@redhat.com>
7527
7528 PR middle-end/48661
7529 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
7530 if TREE_TYPE (v) is non-NULL.
7531
7532 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
7533 gimple_get_virt_mehtod_for_binfo.
7534 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
7535 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
7536 callers.
7537 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7538
7d4f8d02 75392011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
7540 Steve Ellcey <sje@cup.hp.com>
7541
7d4f8d02
EB
7542 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
7543 use its mode as source mode if it isn't VOIDmode.
7254cb57 7544
474e8e70
DCR
75452011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
7546
7547 * doc/passes.texi: Fill crossref nodes.
7548
cff41484
JM
75492011-04-18 Jim Meyering <meyering@redhat.com>
7550
7d4f8d02 7551 Fix doubled-word typos in comments and strings
cff41484
JM
7552 * config/alpha/vms-unwind.h: s/for for/for/
7553 * config/arm/unwind-arm.h: Likewise.
7554 * config/microblaze/microblaze.c: Likewise.
7555 * config/sh/constraints.md: s/in in/in/
7556 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
7557
f60c2554
UB
75582011-04-18 Uros Bizjak <ubizjak@gmail.com>
7559
7560 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
7561 (AVX_FLOAT_MODE_P): Ditto.
7562 (AVX128_VEC_FLOAT_MODE_P): Ditto.
7563 (AVX256_VEC_FLOAT_MODE_P): Ditto.
7564 (AVX_VEC_FLOAT_MODE_P): Ditto.
7565 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
7566 (UNSPEC_MASKSTORE): Ditto.
7567 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
7568 Merge from <sse>_movmsk<ssemodesuffix> and
7569 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
7570 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
7571 iterator.
7572 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
7573 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
7574 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
7575
09a2806f
JH
75762011-04-18 Jan Hubicka <jh@suse.cz>
7577
8a8dccb2
JH
7578 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
7579
09a2806f
JH
7580 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
7581 (want_inline_function_called_once_p): Break out the logic from
7582 ipa_inline.
7583 (edge_badness): Ensure that profile is not misupdated.
7584 (lookup_recursive_calls): Prioritize by call frequencies.
7585 (inline_small_functions): Move program size estimates here;
7586 actually process whole queue even when unit growth has been
7587 met. (to properly compute inline_failed reasons and for the
f60c2554 7588 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
7589 (ipa_inline): Remove unit summary code; first inline hot calls
7590 of functions called once, cold calls next.
7591 (order, nnodes): Remove unused variables.
7592 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
7593 (GTFILES): Remove ipa-inline.c
7594 * sel-sched.c (fill_insns): Silence uninitialized var warning.
7595
3eea52ef
EB
75962011-04-18 Eric Botcazou <ebotcazou@adacore.com>
7597
7598 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
7599
229a1c59 76002011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 7601 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
7602
7603 * arm.c (neon_builtin_type_bits): Remove.
7604 (typedef enum neon_builtin_mode): New.
7605 (T_MAX): Don't define.
7606 (typedef enum neon_builtin_datum): Remove bits, codes[],
7607 num_vars and base_fcode. Add mode, code and fcode.
7608 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
7609 VAR10): Change accordingly.
7610 (neon_builtin_data[]): Change accordingly
7611 (arm_init_neon_builtins): Change accordingly.
7612 (neon_builtin_compare): Remove.
7613 (locate_neon_builtin_icode): Remove.
7614 (arm_expand_neon_builtin): Change accordingly.
7615
7616 * arm.h (enum arm_builtins): Move to ...
7617 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
7618
7619 * arm.c (arm_builtin_decl): Declare.
7620 (TARGET_BUILTIN_DECL): Define.
7621 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
7622 (arm_builtin_decls[]): New.
7623 (arm_init_neon_builtins): Store builtin declarations in
7624 arm_builtin_decls[].
7625 (arm_init_tls_builtins): Likewise.
7626 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
7627 (arm_builtin_decl): New.
7628
75e802cc
RG
76292011-04-18 Richard Guenther <rguenther@suse.de>
7630
7631 * tree.c (upper_bound_in_type): Build properly canonicalized
7632 INTEGER_CSTs.
7633 (lower_bound_in_type): Likewise.
7634
3b45a007
RG
76352011-04-18 Richard Guenther <rguenther@suse.de>
7636
7637 * gimple.h (gimple_call_addr_fndecl): New function.
7638 (gimple_call_fndecl): Use it.
7639 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
7640 for direct calls.
7641 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
7642 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
7643
d25a79ea
RG
76442011-04-18 Richard Guenther <rguenther@suse.de>
7645
7646 PR middle-end/48650
7647 * tree.c (build_string): STRING_CST is now derived from tree_typed.
7648
7d5fc814
EB
76492011-04-18 Eric Botcazou <ebotcazou@adacore.com>
7650
7651 PR lto/48492
7652 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
7653 DECL_IN_CONSTANT_POOL without RTL.
7654
7e7cfcf6
UW
76552011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
7656 Ira Rosen <ira.rosen@linaro.org>
7657
7658 PR target/48252
7659 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
7660 to match neon_vzip/vuzp/vtrn_internal.
7661 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
7662 outputs explicitly dependent on both inputs.
7663 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
7664
49eab32e
JJ
76652011-04-18 Jakub Jelinek <jakub@redhat.com>
7666
7667 PR tree-optimization/48616
7668 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
7669 whether the shift is by scalar or vector based on whether all SLP
7670 scalar stmts have the same rhs.
7671
e54170f4
CLT
76722011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
7673
7674 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
7675 memory operands.
7676
b14ee6c9
RS
76772011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
7678
269e0e18 7679 PR target/43700
b14ee6c9
RS
7680 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
7681 registers.
7682
10158cd3
JH
76832011-04-17 Jan Hubicka <jh@suse.cz>
7684
7685 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
7686 * cgrpahunit.c (cgraph_finalize_function): Do not set
7687 finalized_by_frontend.
10158cd3
JH
7688 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
7689 finalized_by_frontend.
7690
2e9bb6ba
JH
76912011-04-17 Jan Hubicka <jh@suse.cz>
7692
7693 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
7694 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
7695 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
7696 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
7697 method.
2e9bb6ba
JH
7698 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
7699 gimple-fold.c
7700 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
7701
beb628e1
EB
77022011-04-17 Eric Botcazou <ebotcazou@adacore.com>
7703
7704 PR lto/48538
7705 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
7706 is non-null before accessing it.
7707 (input_cgraph): Remove trailing spaces.
7708
3e2fdd24
RE
77092011-04-17 Revital Eres <revital.eres@linaro.org>
7710
7711 * params.def (sms-min-sc): New param flag.
7712 * modulo-sched.c (sms_schedule): Use it.
7713 * doc/invoke.texi (sms-min-sc): Document it.
7714
4c0f7679
JH
77152011-04-17 Jan Hubicka <jh@suse.cz>
7716
7717 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
7718 present, also set gimple_call_set_cannot_inline.
7719 * ipa-inline.c: Update toplevel comment.
7720 (MAX_TIME): Remove.
7721 (cgraph_clone_inlined_nodes): Fix linebreaks.
7722 (cgraph_check_inline_limits): Restructure to ...
7723 (caller_growth_limits): ... this one; be more tolerant
7724 on growth in nested inline chains; add explanatory comment;
7725 fix stack accounting thinko introduced by previous patch.
7726 (cgraph_default_inline_p): Remove.
7727 (report_inline_failed_reason): New function.
7728 (can_inline_edge_p): New function.
7729 (can_early_inline_edge_p): New function.
7730 (leaf_node_p): Move upwards in file.
7731 (want_early_inline_function_p): New function.
7732 (want_inline_small_function_p): New function.
7733 (want_inline_self_recursive_call_p): New function.
7734 (cgraph_edge_badness): Rename to ...
7735 (edge_badness) ... this one; fix linebreaks.
7736 (update_edge_key): Update call of edge_baddness; add
7737 detailed dump about queue updates.
7738 (update_caller_keys): Use can_inline_edge_p and
7739 want_inline_small_function_p.
7740 (cgraph_decide_recursive_inlining): Rename to...
7741 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
7742 want_inline_self_recursive_call_p; simplify and remove no longer
7743 valid FIXME.
4c0f7679
JH
7744 (cgraph_set_inline_failed): Remove.
7745 (add_new_edges_to_heap): Use can_inline_edge_p and
7746 want_inline_small_function_p.
7747 (cgraph_decide_inlining_of_small_functions): Rename to ...
7748 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
7749 can/want predicates; cleanup debug ouput; work edges till fibheap
7750 is exhausted and do not stop once unit growth is reached; remove
7751 later loop processing remaining edges.
4c0f7679
JH
7752 (cgraph_flatten): Rename to ...
7753 (flatten_function): ... this one; use can_inline_edge_p
7754 and can_early_inline_edge_p predicates.
7755 (cgraph_decide_inlining): Rename to ...
7756 (ipa_inline): ... this one; remove unreachable nodes before
7757 inlining functions called once; simplify the pass.
7758 (cgraph_perform_always_inlining): Rename to ...
7759 (inline_always_inline_functions): ... this one; use
f60c2554 7760 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
7761 (cgraph_decide_inlining_incrementally): Rename to ...
7762 (early_inline_small_functions): ... this one; simplify
7763 using new predicates; cleanup; make dumps prettier.
7764 (cgraph_early_inlining): Rename to ...
7765 (early_inliner): newer inline regular functions into always-inlines;
7766 fix updating of call stmt summaries.
7767 (pass_early_inline): Update for new names.
7768 (inline_transform): Fix formating.
7769 (gate_cgraph_decide_inlining): Rename to ...
7770 (pass_ipa_inline): ... this one.
7771 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
7772 * ipa-inline-analysis.c (dump_inline_summary): Update.
7773 (compute_inline_parameters): Do not compute disregard_inline_limits;
7774 look for mismatching arguments.
7775 (estimate_growth): Fix handlig of non-trivial self recursion.
7776 (inline_read_summary): Do not read info->disregard_inline_limits.
7777 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
7778 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
7779 and move all checks into can_inline_edge_p predicate; re-enable code
7780 comparing optimization levels.
4c0f7679
JH
7781 (expand_call_inline): Do not test inline_forbidden_into_p.
7782 * Makefile.in (ipa-inline.o): Update arguments.
7783
54333b7c
RE
77842011-04-17 Revital Eres <revital.eres@linaro.org>
7785
7786 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
7787
42c2bf92
RE
77882011-04-17 Revital Eres <revital.eres@linaro.org>
7789
7790 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
7791
b183e9e0
MM
77922011-04-17 Michael Matz <matz@suse.de>
7793
7794 PR tree-optimization/48622
7795 PR lto/48645
7796 * ipa-inline-analysis.c (inline_read_summary): Read size/time
7797 in same order as they're written.
7798
b8a17fa2
JDA
77992011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7800
7801 * config/pa/predicates.md: Reorganize and simplify predicates.
7802 Eliminate duplicate code checks.
7803 (arith_operand): Rename to arith14_operand
7804 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
7805 * config/pa/pa.md: Use renamed operands.
7806 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
7807 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
7808 arith11_operand, adddi3_operand, indexed_memory_operand,
7809 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
7810 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
7811 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
7812 move_dest_operand, move_src_operand, prefetch_cc_operand,
7813 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
7814 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
7815 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
7816 div_operand, int5_operand, movb_comparison_operator,
7817 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
7818 arith_double_operand, ireg_operand, lhs_lshift_operand,
7819 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
7820 integer_store_memory_operand): Likewise.
7821 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
7822 (integer_store_memory_operand, read_only_operand,
7823 function_label_operand, borx_reg_operand,
7824 non_hard_reg_operand): Likewise.
7825 (eq_neq_comparison_operator): Delete unused operator.
7826 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
7827 function_label_operand.
7828 (emit_move_sequence): Likewise.
7829
8dfb9f16
UB
78302011-04-16 Uros Bizjak <ubizjak@gmail.com>
7831
7832 * config/i386/sse.md (sseunpackmode): New mode attribute.
7833 (ssepackmode): Ditto.
7834 (vec_pack_trunc_<mode>): Macroize expander from
7835 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
7836 (vec_unpacks_lo_<mode>): Macroize expander from
7837 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7838 (vec_unpacks_hi_<mode>): Macroize expander from
7839 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7840 (vec_unpacku_lo_<mode>): Macroize expander from
7841 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7842 (vec_unpacku_hi_<mode>): Macroize expander from
7843 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
7844 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
7845 ix86_expand_sse4_unpack.
7846 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
7847
e7f23018
JH
78482011-04-16 Jan Hubicka <jh@suse.cz>
7849
7850 * cgraphbuild.c: Include ipa-inline.h.
7851 (reset_inline_failed): Use initialize_inline_failed.
7852 * cgraph.c: Include ipa-inline.h.
7853 (cgraph_create_node_1): Do not initialize estimated_growth.
7854 (initialize_inline_failed): More to ipa-inline-analysis.c
7855 (dump_cgraph_node): Do not dump inline flags.
7856 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
7857 and disregard_inline_limits flags.
7858 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
7859 time, size, estimated_growth.
8dfb9f16
UB
7860 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
7861 Update.
e7f23018
JH
7862 * cgraphunit.c (cgraph_decide_is_function_needed): Use
7863 DECL_DISREGARD_INLINE_LIMITS.
7864 (cgraph_analyze_function): Do not initialize
7865 node->local.disregard_inline_limits.
7866 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
7867 inlinable, versionable and disregard_inline_limits.
7868 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
7869 cgraph_check_inline_limits, cgraph_default_inline_p,
7870 cgraph_edge_badness, update_caller_keys, update_callee_keys,
7871 add_new_edges_to_heap): Update.
7872 (cgraph_decide_inlining_of_small_function): Update; set
7873 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
7874 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
7875 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
7876 * ipa-inline.h (inline_summary): Add inlinable, versionable,
7877 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
7878 time, size and estimated_growth parameters.
e7f23018
JH
7879 (estimate_edge_growth): Update.
7880 (initialize_inline_failed): Declare.
7881 * ipa-split.c: Include ipa-inline.h
7882 (execute_split_functions): Update.
7883 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
7884 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
7885 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
7886 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
7887 estimated_growth to INT_MIN.
7888 (inline_node_duplication_hook): Likewise.
7889 (dump_inline_summary): Dump new fields.
7890 (compute_inline_parameters): Update.
7891 (estimate_edge_time, estimate_time_after_inlining,
7892 estimate_size_after_inlining, estimate_growth, inline_read_summary,
7893 inline_write_summary):
7894 (initialize_inline_failed): Move here from cgraph.c.
7895 * tree-sra.c: Include ipa-inline.h.
7896 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
7897 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
7898 ipa-inline.h.
e7f23018 7899
e81b8564
UB
79002011-04-16 Uros Bizjak <ubizjak@gmail.com>
7901
7902 * config/i386/sse.md (V16): New mode iterator.
7903 (VI1, VI8): Ditto.
7904 (AVXMODEQI, AVXMODEDI): Remove.
7905 (sse2, sse3): New mode attribute.
7906 (mov<mode>): Use V16 mode iterator.
7907 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
7908 (push<mode>1): Use V16 mode iterator.
7909 (movmisalign<mode>): Ditto.
7910 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
7911 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
7912 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
7913 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
7914 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
7915 avx_movdqu<avxmodesuffix>.
7916 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
7917 *avx_movdqu<avxmodesuffix>.
7918 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
7919 avx_lddqu<avxmodesuffix>.
7920 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
7921 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
7922 avx_movnt<AVXMODEDI:mode>.
7923 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
7924 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
7925
4743d438
BS
79262011-04-16 Bernd Schmidt <bernds@codesourcery.com>
7927
7928 PR target/48629
7929 * haifa-sched.c (prune_ready_list, schedule_block): Use
7930 sched_pressure_p rather than flag_sched_pressure.
7931
748f7574 79322011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
7933
7934 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
7935 cgraph_get_node instead of cgraph_get_create_node.
7936
2ba172e0
JJ
79372011-04-15 Jakub Jelinek <jakub@redhat.com>
7938
7939 * cfgexpand.c (expand_debug_expr): Use
7940 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
7941
63d2a353
MM
79422011-04-15 Michael Matz <matz@suse.de>
7943
7944 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
7945 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
7946 * function.c (gimplify_parameters): Ditto.
7947 * gimplify.c (gimplify_vla_decl): Ditto.
7948
7949 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
7950 (gimple_call_set_alloca_for_var): New inline function.
7951 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
7952 * gimple.c (gimple_build_call_from_tree): Remember
7953 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
7954 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
7955
7956 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
7957 calls if they were for VLA objects.
7958
dee74c34
MJ
79592011-04-15 Martin Jambor <mjambor@suse.cz>
7960
7961 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
7962 of ADR_EXPRs.
7963
8e5837bc
MJ
79642011-04-15 Martin Jambor <mjambor@suse.cz>
7965
7966 PR middle-end/48601
7967 * tree-emutls.c (lower_emutls_function_body): Call
7968 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
7969 result is non-NULL.
7970
0dc33c3c
NP
79712011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
7972
7973 * c-decl.c (detect_field_duplicates): Call
7974 objc_detect_field_duplicates instead of objc_get_interface_ivars.
7975
edcdea5b
NF
79762011-04-15 Nathan Froyd <froydnj@codesourcery.com>
7977
7978 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
7979 * gimple.c (gimple_asm_clobbers_memory_p): Define.
7980 * ipa-pure-const.c (check_stmt): Call it.
7981 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
7982
8456558d
RG
79832011-04-15 Richard Guenther <rguenther@suse.de>
7984
7985 PR tree-optimization/48290
7986 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
7987 Properly decide inhibiting propagation based on the valueized
7988 operand. Do loop-closed SSA form preserving here ...
7989 (init_copy_prop): ... not here.
7990
266446be
L
79912011-04-15 H.J. Lu <hongjiu.lu@intel.com>
7992
7993 PR target/48612
7994 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
7995 (*ieee_smax<mode>3): Likewise.
7996
17465c6e
AK
79972011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7998
7999 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
8000 Replace match_operand with match_dup for the third operand in
8001 these expanders.
8002
bce204e5
MK
80032011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
8004
8005 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
8006 to track processing of conditionals. Update all callers.
8007 (try_combine, simplify_if_then_else): Update.
8008
3162fdf4
MK
80092011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
8010
8011 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
8012 -fsched-pressure.
8013
79002a57 80142011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 8015
79002a57
GJL
8016 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
8017 instead of match_operand for operand 3.
8018
4fd3a105
RS
80192011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
8020
8021 * recog.h (insn_operand_data): Add an "allows_mem" field.
8022 * genoutput.c (output_operand_data): Initialize it.
8023 * optabs.c (maybe_legitimize_operand_same_code): New function.
8024 (maybe_legitimize_operand): Use it when matching the original
8025 op->value.
8026
ad19c4be
EB
80272011-04-15 Eric Botcazou <ebotcazou@adacore.com>
8028
8029 * gimplify.c: Fix issues in comments throughout.
8030 (voidify_wrapper_expr): Fix long line.
8031 (build_stack_save_restore): Likewise.
8032 (gimplify_loop_expr): Likewise.
8033 (gimplify_compound_lval): Likewise.
8034 (gimplify_init_ctor_eval): Likewise.
8035 (gimplify_modify_expr_rhs): Likewise.
8036 (omp_notice_threadprivate_variable): Likewise.
8037
b25aa0e8 80382011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 8039
b25aa0e8
EB
8040 * cfgexpand.c (expand_call_stmt): Convert the function type to the
8041 original one if this is not a builtin function.
e7925582 8042
09db7afe
JJ
80432011-04-14 Jakub Jelinek <jakub@redhat.com>
8044
8045 PR target/48605
8046 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
8047 offset it as needed based on top 2 bits in operands[3], change
8048 MEM mode to SFmode and mask those 2 bits away from operands[3].
8049
c59633d9
NP
80502011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
8051
8052 * c-parser.c (c_parser_objc_protocol_definition): Updated for
8053 change from objc_declare_protocols() to objc_declare_protocol().
8054
5e60198b
UB
80552011-04-14 Uros Bizjak <ubizjak@gmail.com>
8056
8057 * config/i386/sse.md (sse4_1): New mode attribute.
8058 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
8059 avx_blend<ssemodesuffix><avxmodesuffix> and
8060 sse4_1_blend<ssemodesuffix> using VF mode iterator.
8061 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
8062 avx_blendv<ssemodesuffix><avxmodesuffix> and
8063 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
8064 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
8065 avx_dp<ssemodesuffix><avxmodesuffix> and
8066 sse4_1_dp<ssemodesuffix> using VF mode iterator.
8067 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
8068 (sse4_1_packusdw): Merge with *avx_packusdw.
8069 (sse4_1_pblendvb): Merge with *avx_pblendvb.
8070 (sse4_1_pblendw): Merge with *avx_pblendw.
8071 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
8072 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
8073 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
8074 VF mode iterator.
8075 (sse4_1_round<ssescalarmodesuffix>): Merge with
8076 *avx_round<ssescalarmodesuffix>.
8077 (aesenc): Merge with *avx_aesenc.
8078 (aesenclast): Merge with *avx_aesenclast.
8079 (aesdec): Merge with *avx_aesdec.
8080 (aesdeclast): Merge with *avx_aesdeclast.
8081 (pclmulqdq): Merge with *pclmulqdq.
8082 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
8083 New predicate.
8084 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
8085
6f197850
L
80862011-04-14 H.J. Lu <hongjiu.lu@intel.com>
8087
8088 PR middle-end/48608
8089 * cfgexpand.c (get_decl_align_unit): Renamed to ...
8090 (align_local_variable): This. Update DECL_ALIGN.
8091 (add_stack_var): Updated.
8092 (expand_one_stack_var): Likewise.
8093
4a5ba3ed
RG
80942011-04-14 Richard Guenther <rguenther@suse.de>
8095
8096 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
8097 Remove.
8098 (dse_initialize_block_local_data, dse_leave_block,
8099 record_voperand_set, get_stmt_uid): Likewise.
8100 (dse_possible_dead_store_p): Allow any kind of killing stmt.
8101 (dse_optimize_stmt): Remove voperand set handling code.
8102 Simplify and improve to handle any kind of killing stmt.
8103 (dse_record_phi): Remove.
8104 (dse_enter_block): Simplify.
8105 (tree_ssa_dse): Likewise.
8106 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
8107
10a5dd5d
JH
81082011-04-14 Jan Hubicka <jh@suse.cz>
8109
8110 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
8111 * cgraph.h (struct inline_summary): Move to ipa-inline.h
8112 (cgraph_local_info): Remove inline_summary.
8113 * ipa-cp.c: Include ipa-inline.h.
8114 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
8115 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
8116 accesor.
8117 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
8118 (input_overwrite_node): Do not set inline summary.
8119 (input_node): Do not stream inline summary.
8120 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
8121 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
8122 growth; we do not have inline parameters computed for that anyway.
8123 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
8124 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
8125 (inline_summary_t): New type and VECtor.
8126 (debug_inline_summary, dump_inline_summaries): Declare.
8127 (inline_summary): Use VOCtor.
8128 (estimate_edge_growth): Kill hack computing call stmt size directly.
8129 * lto-section-in.c (lto_section_name): Add inline section.
8130 * ipa-inline-analysis.c: Include lto-streamer.h
8131 (node_removal_hook_holder, node_duplication_hook_holder): New holders
8132 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
8133 (inline_summary_vec): Define.
8134 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
8135 dump_inline_summaries): New functions.
5e60198b
UB
8136 (estimate_function_body_sizes): Properly compute size/time of outgoing
8137 calls.
8138 (compute_inline_parameters): Alloc inline_summary; do not compute
8139 size/time of incomming calls.
10a5dd5d
JH
8140 (estimate_edge_time): Avoid missing time summary hack.
8141 (inline_read_summary): Read inline summary info.
8142 (inline_write_summary): Write inline summary info.
8143 (inline_free_summary): Free all hooks and inline summary vector.
8144 * lto-streamer.h: Add LTO_section_inline_summary section.
8145 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
8146 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
8147
b602d918
RS
81482011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8149
8150 * tree-vectorizer.h (vect_strided_store_supported): Add a
8151 HOST_WIDE_INT argument.
8152 (vect_strided_load_supported): Likewise.
8153 (vect_permute_store_chain): Return void.
8154 (vect_transform_strided_load): Likewise.
8155 (vect_permute_load_chain): Delete.
8156 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
8157 count argument. Check that the count is a power of two.
8158 (vect_strided_load_supported): Likewise.
8159 (vect_permute_store_chain): Return void. Update after above changes.
8160 Assert that the access is supported.
8161 (vect_permute_load_chain): Likewise.
8162 (vect_transform_strided_load): Return void.
8163 * tree-vect-stmts.c (vectorizable_store): Update calls after
8164 above interface changes.
8165 (vectorizable_load): Likewise.
8166 (vect_analyze_stmt): Don't check for strided powers of two here.
8167
ab4472fa
RG
81682011-04-14 Richard Guenther <rguenther@suse.de>
8169
8170 PR tree-optimization/48590
8171 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
8172 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
8173 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
8174 BUILT_IN_STACK_SAVE.
8175 * tree-ssa-dce.c (propagate_necessity): Handle
8176 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
8177
32dabdaf
NP
81782011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
8179
8180 * c-parser.c (c_parser_objc_class_declaration): Updated call to
8181 objc_declare_class.
8182
daade206
RG
81832011-04-14 Richard Guenther <rguenther@suse.de>
8184
8185 * tree.h (get_object_alignment_1): Declare.
8186 * builtins.c (get_object_alignment_1): Split out worker from ...
8187 (get_object_alignment): ... here.
8188 * fold-const.c (get_pointer_modulus_and_residue): Use
8189 get_object_alignment_1.
8190
920e8172
RS
81912011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8192
8193 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
8194 type parameter.
8195 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
8196 parameter. Generalise code to handle arrays as well as vectors.
8197 (vect_setup_realignment): Update accordingly.
8198 * tree-vect-stmts.c (vectorizable_store): Likewise.
8199 (vectorizable_load): Likewise.
8200
5ce1ee7f
RS
82012011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8202
8203 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
8204 within the per-copy loop.
8205
6438fe33 82062011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
8207
8208 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
8209 in the dump file.
8210
6438fe33 82112011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
8212
8213 * doc/options.texi (Negative): Explicitly mention that the
8214 Negative chain must be circular.
8215
61e46a7d
NF
82162011-04-14 Nathan Froyd <froydnj@codesourcery.com>
8217
8218 * function.h (block_chainon): Declare.
8219 * function.c (block_chainon): Define.
8220
43ea6502 82212011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 8222 Eric Weddington <eric.weddington@atmel.com>
748f7574 8223 Georg-Johann Lay <avr@gjlay.de>
5e60198b 8224
f60c2554 8225 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
8226 New Includes
8227 (avr_init_builtins, avr_expand_builtin,
8228 avr_expand_delay_cycles, avr_expand_unop_builtin,
8229 avr_expand_binop_builtin ): New functions.
8230 (avr_builtin_id): New enum
8231 (struct avr_builtin_description): New struct
8232 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
8233 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 8234
43ea6502 8235 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 8236 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
8237 UNSPECV_DELAY_CYCLES): new enumeration values
8238 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
8239 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
8240 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
8241 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
8242 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
8243 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
8244 "fmulsu"): New insns
5e60198b 8245
43ea6502
AS
8246 * config/avr/avr-c.c: fix line endings
8247 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
8248 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
8249 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
8250 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
8251 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 8252
43ea6502
AS
8253 * doc/extend.texi (AVR Built-in Functions): New node
8254 (Target Builtins): Add documentation of AVR
8255 built-in functions.
8256
8a9b55f3
GJL
82572011-04-14 Georg-Johann Lay <avr@gjlay.de>
8258
8259 PR target/44643
8260 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
8261 alone. Error if non-const data has attribute progmem.
8262
94bd1825
NF
82632011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8264
8265 * tree.h (struct tree_constructor): Include tree_typed instead of
8266 tree_common.
8267 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
8268 TS_TYPED instead of TS_COMMON.
8269
5e60198b 82702011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
8271
8272 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
8273 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
8274 (sse2_psadbw): Merge with *avx_psadbw.
8275 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
8276 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
8277 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
8278 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
8279 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
8280 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
8281 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
8282 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
8283 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
8284 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
8285 (ssse3_palignrti): Merge with *avx_palignrti.
8286
4b1a4694
NF
82872011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8288
8289 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
8290 * tree-ssanames.c (fini_ssanames): VEC_free it.
8291 (make_ssa_name_fn): Update for VECness of free_ssanames.
8292 (release_ssa_name, release_dead_ssa_names): Likewise.
8293 * tree.h (struct tree_ssa_name): Include tree_typed instead of
8294 tree_common.
8295 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
8296 TS_TYPED instead of TS_COMMON.
8297
4da3b811
NF
82982011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8299
8300 * postreload-gcse.c (gcse_after_reload_main): Add calls to
8301 statistics_counter_event.
8302 * tree-ssa-copyrename.c (stats): Define.
8303 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
8304 statistics_counter_event.
8305 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
8306 (bswap_stats, widen_mul_stats): Define.
8307 (insert_reciprocals): Increment rdivs_inserted.
8308 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
8309 rfuncs_inserted. Add calls to statistics_counter_event.
8310 (execute_cse_sincos_1): Increment inserted.
8311 (execute_cse_sincos): Zeroize sincos_stats. Add call to
8312 statistics_counter_event.
8313 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
8314 of bswap_stats. Add calls to statistics_counter_event.
8315 (convert_mult_to_widen): Increment widen_mults_inserted.
8316 (convert_plusminus_to_widen): Increment maccs_inserted.
8317 (convert_mult_to_fma): Increment fmas_inserted.
8318 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
8319 calls to statistics_counter_event.
8320
89fa552a
VM
83212011-04-13 Vladimir Makarov <vmakarov@redhat.com>
8322
8323 PR rtl-optimization/48455
8324 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
8325 `temp_costs->mem_cost'.
8326
03dfc36d
JH
83272011-04-13 Jan Hubicka <jh@suse.cz>
8328
8329 * ipa-inline.h: New file.
8330 * ipa-inline-analysis.c: New file. Broken out of ...
8331 * ipa-inline.c: ... this file; update toplevel comment;
8332 include ipa-inline.h
8333 (inline_summary): Move to ipa-inline.h
8334 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
8335 ipa-inline-analysis.c.
7d4f8d02
EB
8336 (cgraph_estimate_time_after_inlining): Rename to
8337 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
8338 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
8339 to estimate_edge_growth.
8340 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
8341 rename to estimate_size_after_inlining.
8342 (cgraph_mark_inline_edge): Update for new naming convention.
8343 (cgraph_check_inline_limits): Likewise.
8344 (cgraph_edge_badness): Likewise.
8345 (cgraph_decide_recursive_inlining): Likewise.
8346 (cgraph_decide_inlining_of_small_functions): Likewise.
8347 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
8348 (cgraph_estimate_growth): Rename to estimate_growth; move to
8349 ipa-inline-analysis.c.
03dfc36d
JH
8350 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
8351 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
8352 (compute_inline_parameters): Likewise.
8353 (compute_inline_parameters_for_current): Likewise.
8354 (pass_inline_parameters): Likewise.
8355 (inline_indirect_intraprocedural_analysis): Likewise.
8356 (analyze_function): Rename to inline_analyze_function; likewise.
8357 (add_new_function): Move to ipa-inline-analysis.c.
8358 (inline_generate_summary): Likewise.
8359 (inline_read_summary): Likewise.
8360 (inline_write_summary): Likewise.
8361 * Makefile.in (ipa-inline-analysis.c): New file.
8362
7673c962
RO
83632011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8364
8365 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
8366 * configure: Regenerate.
8367
9698252f
NF
83682011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8369
8370 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
8371 instead of tree_common.
8372 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
8373 Likewise.
8374 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
8375 TS_TYPED rather than TS_COMMON.
8376 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
8377
3a7bfdd5
GJL
83782011-04-01 Georg-Johann Lay <avr@gjlay.de>
8379
8380 PR target/45263
86d83530
GJL
8381 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
8382 r20 around calls of __tablejump_elpm__
3a7bfdd5 8383
20790697
JJ
83842011-04-13 Jakub Jelinek <jakub@redhat.com>
8385
8386 PR middle-end/48591
8387 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
8388 NULL.
8389 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
8390
094d7661
BS
83912011-04-13 Bernd Schmidt <bernds@codesourcery.com>
8392
8393 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
8394 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
8395 (cfi_vec): New typedef.
8396 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
8397 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
8398 (cie_cfi_vec): New static variable.
8399 (cie_cfi_head): Delete.
8400 (add_cfi): Accept a cfi_vec * as first argument. All callers and
8401 declaration changed. Use vector rather than list operations.
8402 (new_cfi): Don't initialize the dw_cfi_next field.
8403 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
8404 rather than list operations.
8405 (lookup_cfa): Use vector rather than list operations.
8406 (output_cfis): New argument upto. Accept a cfi_vec rather than
8407 a dw_cfi_ref list head as argument. All callers changed.
8408 Iterate over the vector using upto as a maximum index.
8409 (output_all_cfis): New static function.
8410 (output_fde): Use vector rather than list operations. Use the
8411 new upto argument for output_cfis rather than manipulating a
8412 list.
8413 (dwarf2out_begin_prologue): Change initializations to match
8414 new struct members.
8415 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
8416 from the vector length rather than searching for the end of a list.
8417 Use output_all_cfis.
8418 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
8419
673a5740
NC
84202011-04-13 Nick Clifton <nickc@redhat.com>
8421
8422 * config/rx/rx.md (movmemsi): Do not use this pattern when
8423 volatile pointers are involved.
8424
1ee8b298
UB
84252011-04-13 Uros Bizjak <ubizjak@gmail.com>
8426
8427 * config/i386/sse.md (pinsrbits): Remove.
8428 (sse2_packsswb): Merge with *avx_packsswb.
8429 (sse2_packssdw): Merge with *avx_packssdw.
8430 (sse2_packuswb): Merge with *avx_packuswb.
8431 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
8432 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
8433 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
8434 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
8435 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
8436 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
8437 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
8438 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
8439 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
8440 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
8441 (sse2_loadld): Merge with *avx_loadld.
8442 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
8443 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
8444 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
8445 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
8446 (vec_concatv2di): Merge with *vec_concatv2di_avx.
8447
81f653d6
NF
84482011-04-12 Nathan Froyd <froydnj@codesourcery.com>
8449
8450 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
8451 calling TREE_CHAIN.
8452 * print-tree.c (print_node): Likewise.
8453 * tree-inline.c (copy_tree_r): Likewise.
8454 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
8455 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
8456 instead of TS_COMMON.
8457 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
8458 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
8459 (copy_node_stat): Zero TREE_CHAIN only if necessary.
8460 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
8461 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
8462 ...and these...
8463 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
8464 * tree.h: ...here.
8465 (TREE_CHAIN): Check for a TS_COMMON structure.
8466 (TREE_TYPE): Check for a TS_TYPED structure.
8467
748f7574 84682011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
8469
8470 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
8471 cgraph_get_create_node instead of cgraph_node.
8472
eb345401
NP
84732011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
8474
8475 * c-parser.c (c_parser_initelt): Updated call to
8476 objc_build_message_expr.
8477 (c_parser_postfix_expression): Likewise.
8478
a6c46762
KT
84792011-04-12 Kai Tietz <ktietz@redhat.com>
8480
8481 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
8482 MASK_MS_BITFIELD_LAYOUT bit.
8483
b4ccfed9
JJ
84842011-04-12 Jakub Jelinek <jakub@redhat.com>
8485
8486 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
8487 assert it is always true.
8488 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
8489 moves.
8490
0d8a2528
NP
84912011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
8492
8493 * c-parser.c (c_lex_one_token): Rewritten conditional used when
8494 compiling Objective-C to be more efficient.
8495
06bd234a
AF
84962011-04-12 Axel Freyn <axel-freyn@gmx.de>
8497
8498 * opts-common.c (decode_cmdline_options_to_array): Remove variable
8499 argv_copied.
8500
28569ac3
RS
85012011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8502
8503 * recog.h, genoutput.c, optabs.c: Revert last patch.
8504
ae59e00d
RR
85052011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8506
81b1e7eb
UB
8507 PR target/48090
8508 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 8509
cff1b7e0
RS
85102011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8511
8512 * recog.h (insn_operand_data): Add an "allows_mem" field.
8513 * genoutput.c (output_operand_data): Initialize it.
8514 * optabs.c (maybe_legitimize_operand_same_code): New function.
8515 (maybe_legitimize_operand): Use it when matching the original
8516 op->value.
8517
77059241
RS
85182011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8519
8520 * genpreds.c (process_define_predicate): Move most processing
8521 to gensupport.c. Continue to validate the expression.
8522 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
8523 (process_define_predicate): Move processing to gensupport.c.
8524 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
8525 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
8526 (compute_predicate_codes): Moved from genrecog.c. Add lineno
8527 argument.
8528 (valid_predicate_name_p): New function, split out from old
8529 genpreds.c:process_define_predicate.
8530 (process_define_predicate): New function, combining code from
8531 old genpreds.c and genrecog.c functions.
8532 (process_rtx): Call it for DEFINE_PREDICATE and
8533 DEFINE_SPECIAL_PREDICATE.
8534
6308e208
RS
85352011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8536
8537 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
8538 size of a '%A' memory reference.
8539 (T_DREG, T_QREG): New neon_builtin_type_bits.
8540 (arm_init_neon_builtins): Assert that the load and store operands
8541 are neon_struct_operands.
8542 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
8543 (NEON_ARG_MEMORY): New builtin_arg.
8544 (neon_dereference_pointer): New function.
8545 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
8546 Handle NEON_ARG_MEMORY.
8547 (arm_expand_neon_builtin): Update after above interface changes.
8548 Use NEON_ARG_MEMORY for loads and stores.
8549 * config/arm/predicates.md (neon_struct_operand): New predicate.
8550 * config/arm/iterators.md (V_two_elem): Tweak formatting.
8551 (V_three_elem): Use BLKmode for accesses that have no associated mode.
8552 (V_four_elem): Tweak formatting.
8553 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
8554 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
8555 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
8556 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
8557 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
8558 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
8559 (neon_vst4<mode>): Replace pointer operand with a memory operand.
8560 Use %A in the output template.
8561 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
8562 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
8563 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
8564 the width of the memory access. Remove post-increment.
8565 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
8566
e5db8f2f
NC
85672011-04-12 Nick Clifton <nickc@redhat.com>
8568
8569 * config/v850/v850.c (expand_prologue): Do not use the CALLT
8570 instruction for interrupt handlers if the target is the basic V850
8571 architecture.
8572 (expand_epilogue): Likewise.
8573
74f091d6
JJ
85742011-04-12 Jakub Jelinek <jakub@redhat.com>
8575
8576 PR rtl-optimization/48549
8577 * combine.c (propagate_for_debug): Also stop after BB_END of
8578 this_basic_block. Process LAST and just stop processing after it.
8579 (combine_instructions): If last_combined_insn has been deleted,
8580 set last_combined_insn to its PREV_INSN.
8581
f20ca725
RG
85822011-04-12 Richard Guenther <rguenther@suse.de>
8583
8584 PR tree-optimization/46076
8585 * gimple.h (struct gimple_statement_call): Add fntype field.
8586 (gimple_call_fntype): Adjust.
8587 (gimple_call_set_fntype): New function.
8588 * gimple.c (gimple_build_call_1): Set the call function type.
8589 * gimplify.c (gimplify_call_expr): Preserve the function
8590 type the frontend used for the call.
8591 (gimplify_modify_expr): Likewise.
8592 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
8593 function type.
8594 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
8595 function type.
8596 * tree-ssa.c (useless_type_conversion_p): Function pointer
8597 conversions are useless.
8598
a358e188
MJ
85992011-04-12 Martin Jambor <mjambor@suse.cz>
8600
8601 * cgraph.h (cgraph_node): Remove function declaration.
8602 (cgraph_create_node): Declare.
8603 (cgraph_get_create_node): Likewise.
8604 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
8605 Updated all callers.
8606 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
8607 the decl does not already exist. Call cgraph_get_create_node instead
8608 of cgraph_node.
8609 (cgraph_get_create_node): New function.
8610 (cgraph_same_body_alias): Update comment.
8611 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
8612 assert it does not return NULL.
8613 (cgraph_update_edges_for_call_stmt): Likewise.
8614 (cgraph_clone_edge): Likewise.
8615 (cgraph_create_virtual_clone): Likewise.
8616 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
8617 instead of cgraph_node.
8618 (cgraph_add_new_function): Call cgraph_create_node or
8619 cgraph_get_create_node instead of cgraph_node.
8620 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
8621 instead of cgraph_node.
8622 (record_eh_tables): Likewise.
8623 (mark_address): Likewise.
8624 (mark_load): Likewise.
8625 (build_cgraph_edges): Call cgraph_get_create_node instead
8626 of cgraph_node.
8627 (rebuild_cgraph_edges): Likewise.
8628 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
8629 instead of cgraph_node.
8630 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
8631 cgraph_node.
8632 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
8633 cgraph_create_node instead of cgraph_node.
8634 * c-decl.c (finish_function): Call cgraph_get_create_node instead
8635 of cgraph_node.
8636 * lto-cgraph.c (input_node): Likewise.
8637 * lto-streamer-in.c (input_function): Likewise.
8638 * varasm.c (mark_decl_referenced): Likewise.
8639 (assemble_alias): Likewise.
8640
fe660d7b
MJ
86412011-04-12 Martin Jambor <mjambor@suse.cz>
8642
8643 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
8644 instead of cgraph_node and assert it does not return NULL.
8645 * lto-streamer-in.c (lto_read_body): Likewise.
8646 * omp-low.c (new_omp_context): Likewise.
8647 (create_task_copyfn): Likewise.
8648 * tree-emutls.c (lower_emutls_function_body): Likewise.
8649 * matrix-reorg.c (transform_allocation_sites): Likewise.
8650
bae5cddf
JJ
86512011-04-12 Jakub Jelinek <jakub@redhat.com>
8652
8653 PR c/48552
8654 * c-typeck.c (build_asm_expr): Error out on attempts to use
8655 void type outputs or inputs for constraints that allow reg or
8656 don't allow memory.
8657
06eb52ca
CLT
86582011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
8659 Richard Earnshaw <rearnsha@arm.com>
8660
8661 PR target/48250
8662 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
8663 to use sign-magnitude offsets. Reject unsupported unaligned
8664 cases. Add detailed description in comments.
8665 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
8666 condition from TARGET_32BIT to TARGET_ARM.
8667
648a616b
NF
86682011-04-11 Nathan Froyd <froydnj@codesourcery.com>
8669
8670 * tree.h (struct typed_tree): New.
8671 (struct tree_common): Include it instead of tree_base.
8672 (TREE_TYPE): Update for new location of type field.
8673 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
8674 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
8675 (union tree_node): Add typed field.
8676 * treestruct.def (TS_TYPED): New.
8677 * lto-streamer.c (check_handled_ts_structures): Handle it.
8678 * tree.c (MARK_TS_TYPED): New macro.
8679 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
8680
1e6d1da0
EB
86812011-04-11 Eric Botcazou <ebotcazou@adacore.com>
8682
8683 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
8684 (force_nonfallthru): Do not alter the loop nest if no basic block
8685 was created.
8686
86872011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
8688
8689 * config/i386/sse.md (VI): New mode iterator.
8690 (SSEMODEI): Remove.
8691 (AVX256MODEI): Ditto.
8692 (AVXMODEF4P): Ditto.
8693 (avxvecpsmode): Ditto.
8694 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
8695 (sse2_andnot<mode>3): New expander.
8696 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
8697 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
8698 (<any_logic:code><mode>3): Use VI mode iterator.
8699 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
8700 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
8701 (*andnottf3): Handle AVX three-operand constraints.
8702 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
8703
b1372d5d 87042011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 8705 Robert Millan <rmh@gnu.org>
b1372d5d
JM
8706
8707 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
8708 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
8709 GNU_USER_DYNAMIC_LINKER64): Define.
8710 (REG_NAME): Don't undefine.
8711 (MD_UNWIND_SUPPORT): Undefine.
8712 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
8713 (REG_NAME): Don't undefine.
8714 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 8715 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 8716
761c0c6e
JM
87172011-04-11 Joseph Myers <joseph@codesourcery.com>
8718
8719 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
8720 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
8721
26e0228f
XDL
87222011-04-11 Xinliang David Li <davidxl@google.com>
8723
8724 * value-profile.c (check_ic_target): New function.
8725 (gimple_ic_transform): Sanity check indirect call target.
8726 * gimple-low.c (gimple_check_call_args): Interface change.
8727 (gimple_check_call_matching_types): New function.
8728 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
8729
87302011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
8731
8732 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
8733 tree-pretty-print.h & realmpfr.h.
8734
a58dfa49
VM
87352011-04-11 Vladimir Makarov <vmakarov@redhat.com>
8736
8737 PR middle-end/48464
8738 * ira.c (setup_pressure_classes): Fix typo in loop condition.
8739 (setup_allocno_and_important_classes): Ditto.
8740
107fd1c1
JM
87412011-04-11 Joseph Myers <joseph@codesourcery.com>
8742
8743 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
8744 GNU_USER_DYNAMIC_LINKER.
8745 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
8746 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8747 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
8748 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
8749 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
8750 GNU_USER_TARGET_OS_CPP_BUILTINS.
8751 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
8752 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8753 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
8754 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8755 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
8756 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
8757 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
8758 GNU_USER_TARGET_OS_CPP_BUILTINS.
8759 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8760 GNU_USER_DYNAMIC_LINKER.
8761 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8762 GNU_USER_TARGET_OS_CPP_BUILTINS.
8763 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
8764 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8765 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
8766 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8767 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
8768 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
8769 GNU_USER_DYNAMIC_LINKER64): Remove.
8770 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
8771 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8772 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8773 GNU_USER_DYNAMIC_LINKER.
8774 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8775 GNU_USER_TARGET_OS_CPP_BUILTINS.
8776 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8777 GNU_USER_TARGET_OS_CPP_BUILTINS.
8778 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
8779 to GNU_USER_TARGET_OS_CPP_BUILTINS.
8780 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
8781 GNU_USER_TARGET_OS_CPP_BUILTINS.
8782 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
8783 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
8784 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
8785 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
8786 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8787 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8788 GNU_USER_DYNAMIC_LINKER.
8789 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
8790 GNU_USER_TARGET_OS_CPP_BUILTINS.
8791 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
8792 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8793 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8794 GNU_USER_DYNAMIC_LINKER.
8795 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
8796 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8797 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
8798 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8799 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8800 GNU_USER_DYNAMIC_LINKER.
8801 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
8802 GNU_USER_DYNAMIC_LINKERN32.
8803 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
8804 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
8805 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
8806 GNU_USER_DYNAMIC_LINKER32.
8807 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
8808 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8809 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8810 GNU_USER_DYNAMIC_LINKER.
8811 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
8812 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8813 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
8814 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 8815 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
8816 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
8817 GNU_USER_DYNAMIC_LINKER32.
8818 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
8819 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
8820 GNU_USER_DYNAMIC_LINKER.
8821 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
8822 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8823 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
8824 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
8825 GNU_USER_DYNAMIC_LINKER64.
8826 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
8827 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8828 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8829 GNU_USER_DYNAMIC_LINKER.
8830 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
8831 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8832 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
8833 GNU_USER_DYNAMIC_LINKER.
8834 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
8835 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8836 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
8837 GNU_USER_DYNAMIC_LINKER32.
8838 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
8839 GNU_USER_DYNAMIC_LINKER64.
8840 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
8841 GNU_USER_DYNAMIC_LINKER64.
8842 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
8843 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
8844 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
8845 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 8846 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 8847
e24609cf
JM
88482011-04-11 Joseph Myers <joseph@codesourcery.com>
8849
8850 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
8851 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
8852 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
8853 GNU_USER_DYNAMIC_LINKER.
8854 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
8855 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
8856 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
8857 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
8858 GNU_USER_DYNAMIC_LINKER64.
8859 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
8860 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
8861 GNU_USER_LINK_EMULATION.
8862 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
8863 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
8864 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
8865 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
8866 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
8867 CPP_SPEC, CC1_SPEC): Remove.
8868 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
8869 (GNU_USER_DYNAMIC_LINKER): Define.
8870 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
8871 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
8872 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
8873 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
8874 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
8875 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
8876 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
8877 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
8878 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
8879 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
8880 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
8881 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
8882 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
8883 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
8884 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
8885 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
8886 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8887 GNU_USER_DYNAMIC_LINKER.
8888 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8889 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
8890 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8891 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
8892 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
8893 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
8894 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
8895 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
8896 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 8897 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 8898
b8ce4e94
KT
88992011-04-11 Kai Tietz <ktietz@redhat.com>
8900
8901 PR target/9601
8902 PR target/11772
8903 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
8904 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
8905 comment.
8906 (ix86_is_msabi_thiscall): Removed.
8907 (ix86_is_type_thiscall): Likewise.
8908 (ix86_get_callcvt): New function.
8909 (ix86_comp_type_attributes): Simplify check.
8910 (ix86_function_regparm): Use ix86_get_callcvt for calling
8911 convention attribute checks.
8912 (ix86_return_pops_args): Likewise.
8913 (ix86_static_chain): Likewise.
8914 (x86_this_parameter): Likewise.
8915 (x86_output_mi_thunk): Likewise.
8916 (ix86_function_type_abi): Optimize check for types without attributes.
8917 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
8918 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
8919 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
8920 by flag-values.
8921 (IX86_BASE_CALLCVT): Helper macro.
8922 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
8923 Use ix86_get_callcvt for calling convention attribute checks and avoid
8924 symbol-decoration for stdcall in TARGET_RTD case.
8925 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
8926 Likewise.
8927 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
8928 for declaration.
8929
798dd0ba
UB
89302011-04-11 Uros Bizjak <ubizjak@gmail.com>
8931
8932 * config/i386/sse.md (VI_128): New mode iterator.
8933 (VI12_128): Rename from SSEMODE12.
8934 (VI14_128): Rename from SSEMODE14.
8935 (VI124_128): New mode iterator.
8936 (VI24_128): Rename from SSEMODE248.
8937 (VI248_128): Rename from SSEMODE248.
8938 (SSEMODE124C8): Remove.
8939 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
8940 (*sse2_<plusminus_insn><mode>3): Merge with
8941 *avx_<plusminus_insn><mode>3.
8942 (*mulv8hi3): Merge with *avx_mulv8hi3.
8943 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
8944 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
8945 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
8946 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
8947 (ashr<mode>3): Merge with *avx_ashr<mode>3.
8948 (lshr<mode>3): Merge with *avx_lshr<mode>3.
8949 (ashl<mode>3): Merge with *avx_ashl<mode>3.
8950 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
8951 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
8952 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8953 (*<smaxmin:code>v8hi3): Ditto.
8954 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
8955 (*<smaxmin:code>v16qi3): Ditto.
8956 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
8957 (*sse2_eq<mode>3): Ditto.
8958 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
8959 (*sse2_gt<mode>3): Ditto.
8960 (vcondv2di): Split out of vcond<mode>.
8961 (vconduv2di): Split out of vcondu<mode>.
8962
956011be
RG
89632011-04-11 Richard Guenther <rguenther@suse.de>
8964
8965 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
8966 before calling tree_low_cst.
8967
e6313a78
RG
89682011-04-11 Richard Guenther <rguenther@suse.de>
8969
8970 * stor-layout.c (layout_type): Compute all array index size operations
8971 in the original type.
8972 (initialize_sizetypes): Add comment.
8973 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
8974
e69d7376
JM
89752011-04-11 Joseph Myers <joseph@codesourcery.com>
8976
8977 * common.opt (Tbss=, Tdata=, Ttext=): New options.
8978
9f9ebcdf
MJ
89792011-04-11 Martin Jambor <mjambor@suse.cz>
8980
8981 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
8982 of cgraph_node, handle NULL return value.
8983 (cgraph_global_info): Likewise.
8984 (cgraph_rtl_info): Likewise.
8985 * tree-inline.c (estimate_num_insns): Likewise.
8986 * gimplify.c (unshare_body): Likewise.
8987 (unvisit_body): Likewise.
8988 (gimplify_body): Likewise.
8989 * predict.c (optimize_function_for_size_p): Likewise.
8990 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8991 (call_may_clobber_ref_p_1): Likewise.
8992 * varasm.c (function_section_1): Likewise.
8993 (assemble_start_function): Likewise.
8994
581985d7
MJ
89952011-04-11 Martin Jambor <mjambor@suse.cz>
8996
8997 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
8998 of cgraph_node.
8999 * final.c (rest_of_clean_state): Likewise.
9000 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
9001 * passes.c (pass_init_dump_file): Likewise.
9002 (execute_all_ipa_transforms): Likewise.
9003 (function_called_by_processed_nodes_p): Likewise.
9004 * predict.c (maybe_hot_frequency_p): Likewise.
9005 (probably_never_executed_bb_p): Likewise.
9006 (compute_function_frequency): Likewise.
9007 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
9008 (unnest_nesting_tree_1): Likewise.
9009 (lower_nested_functions): Likewise.
9010 * tree-optimize.c (execute_fixup_cfg): Likewise.
9011 (tree_rest_of_compilation): Likewise.
9012 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
9013 * tree-sra.c (ipa_early_sra): Likewise.
9014 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
9015 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
9016 * ipa.c (record_cdtor_fn): Likewise.
9017 * ipa-inline.c (cgraph_early_inlining): Likewise.
9018 (compute_inline_parameters_for_current): Likewise.
9019 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
9020 * ipa-pure-const.c (local_pure_const): Likewise.
9021 * ipa-split.c (split_function): Likewise.
9022 (execute_split_functions): Likewise.
9023 * cgraphbuild.c (build_cgraph_edges): Likewise.
9024 (rebuild_cgraph_edges): Likewise.
9025 (cgraph_rebuild_references): Likewise.
9026 (remove_cgraph_callee_edges): Likewise.
9027 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
9028 (verify_cgraph_node): Likewise.
9029 (cgraph_analyze_functions): Likewise.
9030 (cgraph_preserve_function_body_p): Likewise.
9031 (save_inline_function_body): Likewise.
9032 (save_inline_function_body): Likewise.
9033 * tree-inline.c (copy_bb): Likewise.
9034 (optimize_inline_calls): Likewise.
9035
57dbdc5a
MJ
90362011-04-11 Martin Jambor <mjambor@suse.cz>
9037
9038 PR tree-optimization/48195
9039 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
9040 ipa_check_create_edge_args.
9041 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
9042 ipa_check_create_edge_args.
9043 * ipa-inline.c (inline_generate_summary): Do not call
9044 ipa_check_create_node_params and ipa_check_create_edge_args.
9045 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
9046 ipa_check_create_edge_args.
9047
d108e679
AS
90482011-04-09 Anatoly Sokolov <aesok@post.ru>
9049
9050 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
9051 instead of loop.
9052 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9053 * function.c (record_hard_reg_sets): Likewise.
9054 * ira.c (compute_regs_asm_clobbered): Likewise.
9055 * sched-deps.c (sched_analyze_1): Likewise.
9056 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
9057
3411bc59
XDL
90582011-04-09 Xinliang David Li <davidxl@google.com>
9059
9060 PR tree-optimization/PR48484
9061 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
9062 has_valid_pred lazily
9063
b365495a
DS
90642011-04-09 Duncan Sands <baldrick@free.fr>
9065
9066 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
9067
68bc509a
EB
90682011-04-08 Eric Botcazou <ebotcazou@adacore.com>
9069
9070 * combine.c (combine_validate_cost): Adjust comments. Set registered
9071 cost of I0 to zero at the end, if any.
9072
041e059f
XDL
90732011-04-08 Xinliang David Li <davidxl@google.com>
9074
68bc509a
EB
9075 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
9076 to insane profile data.
041e059f 9077
444b3995
XDL
90782011-04-08 Xinliang David Li <davidxl@google.com>
9079
9080 * ipa-cp.c (ipcp_update_profiling): Correct
9081 negative scale factor due to insane profile data.
9082
6a801cf2
XDL
90832011-04-08 Xinliang David Li <davidxl@google.com>
9084
9085 * final.c (dump_basic_block_info): New function.
9086 (final): Dump basic block.
9087 (final_scan_insn): Remove old dump.
9088
d5f3624e
SK
90892011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
9090
68bc509a
EB
9091 PR target/47829
9092 * config.gcc (i386-*-freebsd): Disable unwind table generation for
9093 crtbegin/crtend.
d5f3624e 9094
42821aff
MM
90952011-04-08 Michael Matz <matz@suse.de>
9096
9097 PR middle-end/48389
9098 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
9099 functions.
9100 (rebuild_jump_labels): Call rebuild_jump_labels_1.
9101 * rtl.h (rebuild_jump_labels_chain): Declare.
9102 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
9103 insns inserted on edges.
9104
ad7be009
JM
91052011-04-08 Joseph Myers <joseph@codesourcery.com>
9106
9107 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
9108 * config/arm/arm-arches.def: New.
9109 * config/arm/arm-opts.h: New.
9110 * config/arm/genopt.sh: New.
9111 * config/arm/arm-tables.opt: New (generated).
9112 * config/arm/arm.c (arm_handle_option, arm_target_help,
9113 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
9114 (all_architectures): Get most table contents from arm-arches.def.
9115 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
9116 arm_selected_tune here.
9117 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
9118 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
9119 (march=, mcpu=, mtune=): Use Enum and Var.
9120 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
9121 (arm.o): Update dependencies.
ecbb6fb7 9122
42821aff 91232011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
9124
9125 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
9126 of header_file.
9127 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
9128 (write_typed_alloc_defns): Likewise.
9129 (main): Calls write_typed_alloc_defns with output_header.
9130
8d189b3f
VM
91312011-04-08 Vladimir Makarov <vmakarov@redhat.com>
9132
68bc509a 9133 PR inline-asm/48435
8d189b3f
VM
9134 * ira-color.c (setup_profitable_hard_regs): Add comments.
9135 Don't take prohibited hard regs into account.
9136 (setup_conflict_profitable_regs): Rename to
9137 get_conflict_profitable_regs.
9138 (check_hard_reg_p): Check prohibited hard regs.
9139
44f370bf
NF
91402011-04-08 Nathan Froyd <froydnj@codesourcery.com>
9141
9142 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
9143 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
9144 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
9145
483d7ad3
JDA
91462011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9147
9148 PR target/48366
9149 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 9150 move from floating point to shift amount register.
483d7ad3
JDA
9151 (emit_move_sequence): Remove secondary reload support for floating
9152 point to shift amount amount register copies.
9153 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
9154 amount register copies.
9155 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
9156 register, return false if mode isn't a scalar integer mode.
9157 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
9158
97e03fa1
RG
91592011-04-08 Richard Guenther <rguenther@suse.de>
9160
9161 * gimple.c (gimple_call_flags): Remove kludge.
9162
9d40778b
AM
91632011-04-08 Alexander Monakov <amonakov@ispras.ru>
9164
9165 * sel-sched.c (sel_region_init): Move call to
9166 sel_setup_region_sched_flags after setup_current_loop_nest.
9167
19ac7892
AB
91682011-04-08 Andrey Belevantsev <abel@ispras.ru>
9169
9170 PR rtl-optimization/48272
19ac7892
AB
9171 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
9172 init_insn_reg_pressure_info. Adjust a caller.
9173 * sched-int.h (init_insn_reg_pressure_info): Declare.
9174 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
9175 when sched-pressure is enabled.
9176
0f8c63cc
RG
91772011-04-08 Richard Guenther <rguenther@suse.de>
9178
9179 * gimple.c (gimple_set_modified): Do not queue calls to
9180 MODIFIED_NORETURN_CALLS here ...
9181 * tree-ssa-operands.c (update_stmt_operands): ... but here.
9182
5e5a425e
RG
91832011-04-08 Richard Guenther <rguenther@suse.de>
9184
9185 PR lto/48467
9186 * toplev.c (lang_dependent_init): Do not open asm_out_file
9187 in WPA mode, nor perform debug machinery initialization.
9188 (finalize): Do not unlink asm_out_file in WPA mode.
9189
9bfc434b
RG
91902011-04-08 Richard Guenther <rguenther@suse.de>
9191
9192 * gimple.h (gimple_call_fntype): New function.
9193 (gimple_call_return_type): Use it.
9194 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
9195 * gimple-low.c (gimple_check_call_args): Likewise.
9196 * gimple.c (gimple_call_flags): Likewise.
9197 (gimple_call_arg_flags): Likewise.
9198 (gimple_call_return_flags): Likewise.
9199 * tree-cfg.c (verify_gimple_call): Likewise.
9200 (do_warn_unused_result): Likewise.
9201 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
9202 * value-prof.c (gimple_ic_transform): Fix fndecl check.
9203
7c1f0b40
DM
92042011-04-08 Dmitry Melnik <dm@ispras.ru>
9205
9206 PR rtl-optimization/48235
9207 * sel-sched.c (code_motion_process_successors): Recompute the last
9208 insn in basic block if control flow changed.
9209 (code_motion_path_driver): Ditto. Recompute the first insn as well.
9210 Update condition for ilist_remove.
9211
ea4d630f
AM
92122011-04-08 Alexander Monakov <amonakov@ispras.ru>
9213
9214 PR rtl-optimization/48302
9215 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
9216 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
9217 it to record added preheader blocks.
9218 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
9219 on to sel_add_loop_preheaders.
9220 (sel_region_init): Move call to setup_current_loop_nest after
9221 sel_init_bbs.
9222
07643d76
AM
92232011-04-08 Alexander Monakov <amonakov@ispras.ru>
9224
9225 PR target/48273
9226 * cfgloop.h (loop_has_exit_edges): New helper.
9227 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
9228 non-clonable.
9229 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
9230 that have no exit edges.
9231
1f3b2b4e
AM
92322011-04-08 Alexander Monakov <amonakov@ispras.ru>
9233
9234 PR rtl-optimization/48442
9235 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
9236 all callers. Adjust assert.
9237
554f1948
JJ
92382011-04-08 Jakub Jelinek <jakub@redhat.com>
9239
9240 PR tree-optimization/48377
9241 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
9242 is_packed to true even for types with smaller TYPE_ALIGN than
9243 TYPE_SIZE.
9244
ddf72388
RG
92452011-04-08 Richard Guenther <rguenther@suse.de>
9246
9247 PR bootstrap/48513
9248 * doc/tm.texi: Re-generate.
9249
0c27e2d8
WG
92502011-04-08 Wei Guozhi <carrot@google.com>
9251
9252 PR target/47855
9253 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
9254 * config/arm/arm.c (arm_attr_length_push_multi): New function.
9255 * config/arm/arm.md (*push_multi): Change the length computation to
9256 call a C function.
9257
07c5f94e
AS
92582011-04-08 Anatoly Sokolov <aesok@post.ru>
9259
9260 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
9261 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
9262 * doc/tm.texi: Regenerate.
9263 * system.h (ASM_OUTPUT_BSS): Poison.
9264 * varasm.c (asm_output_bss): Remove function.
9265 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 9266
07c5f94e
AS
9267 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
9268 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
9269 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
9270 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9271 Likewise.
9272 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9273 Likewise.
9274 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9275 Likewise.
9276 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
9277
5f2c36e1
JM
92782011-04-07 Joseph Myers <joseph@codesourcery.com>
9279
9280 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
9281 EnumValue lines.
9282
39e7722b
JM
92832011-04-07 Joseph Myers <joseph@codesourcery.com>
9284
9285 * config/m68k/m68k.c (m68k_handle_option): Don't handle
9286 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
9287 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
9288 OPT_mcpu32.
9289 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
9290 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
9291 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
9292 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
9293 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
9294 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
9295 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
9296 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
9297 options. Don't map other m68k options manually. Don't handle
9298 old-style options as canonical.
9299 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 9300 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 9301
cf103ca4
EB
93022011-04-07 Eric Botcazou <ebotcazou@adacore.com>
9303
9304 * basic-block.h (force_nonfallthru): Move to...
9305 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
9306 (force_nonfallthru): ...here.
9307 * cfghooks.c (force_nonfallthru): New function.
9308 * cfgrtl.c (force_nonfallthru): Rename into...
9309 (rtl_force_nonfallthru): ...this.
9310 (commit_one_edge_insertion): Do not set AUX field.
9311 (commit_edge_insertions): Do not discover new basic blocks.
9312 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
9313 (cfg_layout_rtl_cfg_hooks): Likewise.
9314 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
9315 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
9316 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
9317
14431f58
AS
93182011-04-07 Anatoly Sokolov <aesok@post.ru>
9319
9320 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
9321 Remove macros.
9322
3729983c
UB
93232011-04-07 Uros Bizjak <ubizjak@gmail.com>
9324
9325 * config/i386/sse.md: Update copyright year.
9326 (avxcvtvecmode): Remove.
9327 (sse_movhlps): Merge with *avx_movhlps.
9328 (sse_movlhps): Merge with *avx_movlhps.
9329 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
9330 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
9331 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
9332 (sse_loadhps): Merge with *avx_loadhps.
9333 (sse_storelps): Merge with *avx_storelps.
9334 (sse_loadlps): Merge with *avx_loadlps.
9335 (sse_movss): Merge with *avx_movss.
9336 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
9337 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
9338 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
9339 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
9340 (vec_set<mode>_0): Ditto.
9341 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
9342 (sse4_1_insertps): Merge with *avx_insertps.
9343 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
9344 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
9345 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
9346 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
9347 (sse2_storehpd): Merge with *avx_storehpd.
9348 (sse2_loadhpd): Merge with *avx_loadhpd.
9349 (sse2_loadlpd): Merge with *avx_loadlpd.
9350 (sse2_movsd): Merge with *avx_movsd.
9351 (*vec_concatv2df): Merge with *vec_concatv2df.
9352
4e626909
JJ
93532011-04-07 Jakub Jelinek <jakub@redhat.com>
9354
9355 PR debug/48343
9356 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 9357 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
9358 (try_combine): Add last_combined_insn parameter, pass it instead of
9359 i3 to propagate_for_debug.
9360
3729983c 93612011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
9362
9363 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
9364 to handle MDR <-> data register transfers.
9365 (movhi_internal): Likewise.
9366
20c03367
AM
93672011-04-07 Alan Modra <amodra@gmail.com>
9368
9369 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
9370 previous stack info.
9371
bf22920b
TV
93722011-04-07 Tom de Vries <tom@codesourcery.com>
9373
9374 PR target/43920
9375 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
9376 flow_find_cross_jump. Swap variables to implement backward replacement.
9377 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
9378
823918ae
TV
93792011-04-07 Tom de Vries <tom@codesourcery.com>
9380
9381 PR target/43920
9382 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
9383 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
9384 and bb2.
9385 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
9386 src1 or src2. Redirect edges to the last basic block. Update
9387 frequency and count on multiple basic blocks in case of fallthru.
823918ae 9388
472c95f5
TV
93892011-04-07 Tom de Vries <tom@codesourcery.com>
9390
9391 PR target/43920
9392 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
9393 function.
3729983c
UB
9394 (old_insns_match_p): Change return type. Replace return false/true
9395 with return dir_none/dir_both. Use can_replace_by.
9396 (flow_find_cross_jump): Add dir_p parameter. Init replacement
9397 direction from dir_p. Register replacement direction in dir, last_dir
9398 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
9399 merge_dir. Return replacement direction in dir_p.
9400 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
9401 return type of old_insns_match_p.
9402 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
9403 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
9404 flow_find_cross_jump.
9405 * basic-block.h (enum replace_direction): New type.
9406 (flow_find_cross_jump): Add parameter to declaration.
9407
a95d4000
UB
94082011-04-06 Uros Bizjak <ubizjak@gmail.com>
9409
9410 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
9411 (AVXMODEDCVTPS2DQ): Ditto.
9412 (VEC_FLOAT_MODE): Ditto.
9413 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
9414 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
9415 (<any_logic:code><mode>3): Use VF mode iterator.
9416 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
9417 Use VF mode iterator.
9418 (copysign<mode>3): Use VF mode iterator.
9419 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
9420 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
9421 (*<any_logic:code><MODEF:mode>3): Merge with
9422 *avx_<any_logic:code><MODEF:mode>3.
9423 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
9424 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
9425 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
9426 (avx_cvtdq2ps<avxmodesuffix>): Remove.
9427 (sse2_cvtdq2ps): Use %v modifier.
9428 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
9429 (avx_cvtps2dq<avxmodesuffix>): Remove.
9430 (sse2_cvtps2dq): Use %v modifier.
9431 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
9432 (avx_cvttps2dq<avxmodesuffix>): Remove.
9433 (sse2_cvttps2dq): Use %v modifier.
9434 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
9435 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
9436 (sse2_cvtsd2siq): Fix insn template.
9437 (sse2_cvtsd2siq_2): Ditto.
9438 (sse2_cvttsd2siq): Ditto.
9439 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
9440 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
9441
ad01c437
JM
94422011-04-06 Joseph Myers <joseph@codesourcery.com>
9443
9444 * gcov-io.c: Use GCC Runtime Library Exception.
9445
fe846284
JJ
94462011-04-06 Jakub Jelinek <jakub@redhat.com>
9447
9448 PR debug/48466
9449 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
9450 as base_reg whatever register reg has been eliminated to, instead
9451 of hardcoding STACK_POINTER_REGNUM.
9452
acce4e77
JM
94532011-04-06 Joseph Myers <joseph@codesourcery.com>
9454
9455 * doc/tm.texi.in: Document C target hooks as separate from general
9456 target hooks.
9457 * doc/tm.texi: Regenerate.
9458 * genhooks.c (struct hook_desc): Add docname field.
9459 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
9460 docname field.
9461 (hook_array): Include c-target.def.
9462 (emit_documentation): Use docname field in output.
9463 (emit_init_macros): Take docname argument. Only emit definitions
9464 for hooks matching docname.
9465 (main): Expect additional arguments in all cases. Pass argument
9466 to emit_init_macros.
9467 * target.def: Move initial macro definitions and comments to
9468 target-hooks-macros.h.
9469 (gcc_targetcm): Move to c-family/c-target.def.
9470 * target.h (targetcm): Move declaration to c-family/c-target.h.
9471 * targhooks.c (default_handle_c_option): Move to
9472 c-family/c-opts.c.
9473 * targhooks.h (default_handle_c_option): Move declaration to
9474 c-family/c-common.h.
9475 * target-hooks-macros.h: New file.
9476 * config.gcc (target_has_targetcm): Define and use to add to
9477 c_target_objs and cxx_target_objs.
9478 * config/default-c.c: New file.
9479 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
9480 of target.h and target-def.h.
9481 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
9482 (darwin_objc_construct_string, darwin_cfstring_ref_p,
9483 darwin_check_cfstring_format_arg): Make static.
9484 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
9485 TARGET_STRING_OBJECT_REF_TYPE_P,
9486 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
9487 * config/darwin-protos.h (darwin_objc_construct_string,
9488 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
9489 declare.
9490 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
9491 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 9492 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
9493 * config/t-darwin (darwin-c.o): Update dependencies.
9494 * system.h (TARGET_HAS_TARGETCM): Poison.
9495 * Makefile.in (TARGET_H): Update.
9496 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
9497 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
9498 (default-c.o): New target.
9499 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 9500 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
9501 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
9502 c-target.def.
9503 (build/genhooks.o): Update dependencies.
9504
275b4baa 95052011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 9506
275b4baa
RG
9507 * ipa-inline.c (enum inlining_mode): Remove.
9508 (cgraph_flatten): Use some other token.
9509 (cgraph_edge_early_inlinable_p): New function, split out from ...
9510 (cgraph_perform_always_inlining): New function, split out from ...
9511 (cgraph_decide_inlining_incrementally): ... here.
9512 (cgraph_mark_inline_edge): Adjust.
9513 (cgraph_early_inlining): Re-structure.
9514 (pass_early_inline): Require SSA form.
9515
f15b8bdf 95162011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
9517 Julian Brown <julian@codesourcery.com>
9518 Mark Shinwell <shinwell@codesourcery.com>
9519
9520 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
9521 LO_REGS only for Thumb-1.
9522 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
9523 be used in short instructions when optimising for size on Thumb-2.
9524
516426da
EB
95252011-04-06 Eric Botcazou <ebotcazou@adacore.com>
9526
9527 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
9528 associated with user returns to be preserved.
9529
96621ebf
TG
95302011-04-06 Tristan Gingold <gingold@adacore.com>
9531
f15b8bdf
EB
9532 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
9533 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
9534 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
9535 if XCOFF_DEBUGGING_INFO.
9536
07c0852e
UB
95372011-04-06 Uros Bizjak <ubizjak@gmail.com>
9538
9539 * config/i386/i386.md (attribute isa): New.
9540 (attribute enabled): New.
9541 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
9542 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
9543 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
9544 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
9545 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
9546 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
9547 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
9548 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
9549
9550 * config/i386/sse.md (VF): New mode iterator.
9551 (VF1): Ditto.
9552 (VF2): Ditto.
9553 (VF_128): Ditto.
9554 (SSEMODEF4): Remove.
9555 (attribute sse): Handle V8SF and V4DF modes.
9556 (<absneg:code><mode>2): Use VF mode iterator.
9557 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
9558 mode iterator.
9559 (<plusminus_insn><mode>3): Use VF mode iterator.
9560 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
9561 Use VF mode iterator.
9562 (<sse>_vm<plusminus_insn><mode>3): Merge with
9563 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
9564 (mul<mode>3): Use VF mode iterator.
9565 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
9566 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
9567 mode iterator.
9568 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
9569 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
9570 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
9571 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
9572 mode iterator.
9573 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
9574 Use VF1 mode iterator.
9575 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
9576 (sqrt<VF2:mode>2): New expander.
9577 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
9578 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
9579 and sqrtv2df2. Use VF mode iterator.
9580 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
9581 mode iterator.
9582 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
9583 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
9584 Use VF1 mode iterator.
9585 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
9586 (<smaxmin:code><mode>3): Use VF mode iterator.
9587 (*<smaxmin:code><mode>3_finite): Merge with
9588 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
9589 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
9590 (<sse>_vm<smaxmin:code><mode>2): Merge with
9591 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
9592 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
9593 mode iterator.
9594 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
9595 mode iterator.
9596 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
9597 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
9598 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
9599 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
9600 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
9601 VF mode iterator.
9602 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
9603 Use VF_128 mode iterator.
9604 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
9605 mode iterator.
9606 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
9607 VF_128 mode iterator.
9608 (vcond<mode>): Use VF mode iterator.
9609 * config/i386/predicates.md (sse_comparison_operator): Merge with
9610 avx_comparison_float_operator. Do not declare as special_predicate.
9611 * config/i386/i386.c (struct builtin_description): Update for renamed
9612 compare patterns.
9613 (ix86_expand_args_builtin): Ditto.
9614 (ix86_expand_sse_compare_mask): Ditto.
9615
ff5d142c
RG
96162011-04-06 Richard Guenther <rguenther@suse.de>
9617
9618 * tree-inline.c (estimate_num_insns): For calls simply account
9619 for all passed arguments and a used return value.
9620
d7d1d041 96212011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 9622
d7d1d041
RG
9623 PR tree-optimization/47663
9624 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
9625 call_stmt_time fields.
9626 (cgraph_edge_inlinable_p): Declare.
9627 (cgraph_edge_recursive_p): New inline function.
9628 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
9629 (cgraph_clone_edge): Copy it.
9630 * ipa-inline.c (cgraph_estimate_edge_time): New function.
9631 Account for call stmt time.
9632 (cgraph_estimate_time_after_inlining): Take edge argument.
9633 (cgraph_estimate_edge_growth): Account call stmt size.
9634 (cgraph_estimate_size_after_inlining): Take edge argument.
9635 (cgraph_mark_inline_edge): Adjust.
9636 (cgraph_check_inline_limits): Likewise.
9637 (cgraph_recursive_inlining_p): Remove.
9638 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
9639 (cgraph_decide_recursive_inlining): Take edge argument and
9640 adjust.
9641 (cgraph_decide_inlining_of_small_functions): Do not avoid
9642 diags for recursive inlining here.
9643 (cgraph_flatten): Adjust.
9644 (cgraph_decide_inlining_incrementally): Likewise.
9645 (estimate_function_body_sizes): Remove call cost handling.
9646 (compute_inline_parameters): Initialize caller edge call costs.
9647 (cgraph_estimate_edge_growth): New function.
9648 (cgraph_estimate_growth): Use it.
9649 (cgraph_edge_badness): Likewise.
9650 (cgraph_check_inline_limits): Take an edge argument.
9651 (cgraph_decide_inlining_of_small_functions): Adjust.
9652 (cgraph_decide_inlining): Likewise.
9653 * tree-inline.c (estimate_num_insns): Only account for call
9654 return value if it is used.
9655 (expand_call_inline): Avoid diagnostics on recursive inline
9656 functions here.
9657 * lto-cgraph.c (lto_output_edge): Output edge call costs.
9658 (input_edge): Input edge call costs.
9659
2feb95f7
RO
96602011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9661
9662 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
9663
26fbd9c2
JW
96642011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
9665
9666 * doc/invoke.texi (Spec Files): Fix typo.
9667
694dc0ca
EB
96682011-04-06 Eric Botcazou <ebotcazou@adacore.com>
9669
9670 * profile.c (branch_prob): Move declaration of local variable. Remove
9671 obsolete ??? comment. Expand the location explicitly instead of using
9672 the LOCATION_FILE and LOCATION_LINE macros.
9673
4925d0d5
WG
96742011-04-06 Wei Guozhi <carrot@google.com>
9675
9676 PR target/47855
9677 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
9678 (arm_cond_branch): Likewise.
9679 (arm_cond_branch_reversed): Likewise.
9680 (arm_jump): Likewise.
9681 (push_multi): Likewise.
9682 * config/arm/constraints.md (Py): New constraint.
9683
f55dfa2f
NF
96842011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9685
9686 PR bootstrap/48471
9687 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
9688 Move these...
9689 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
9690 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
9691 #ifdef DBX_DEBUGGING_INFO.
9692
fca96842
BS
96932011-04-05 Bernd Schmidt <bernds@codesourcery.com>
9694
9695 PR bootstrap/48403
9696 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
9697 if old and new states differ.
9698
30b83e38
JM
96992011-04-05 Joseph Myers <joseph@codesourcery.com>
9700
9701 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
9702 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
9703 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
9704 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
9705 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
9706 mcfv4e): Use Alias.
9707 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
9708 ColdFire options to -mcpu= options.
9709
277a9aa5
JL
97102011-04-05 Jeff Law <law@redhat.com>
9711
9712 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
9713 check if BB is a successor of LOOP->header and return
9714 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
9715
c1e2610e
SB
97162011-04-05 Steven Bosscher <steven@gcc.gnu.org>
9717
9718 * cprop.c (struct reg_use): Remove.
9719 (reg_use_table): Make an array of RTX.
9720 (find_used_regs, constprop_register, local_cprop_pass,
9721 bypass_block): Simplify users of reg_use_table.
9722 (cprop_insn): Likewise. Iterate if copy propagation succeeded
9723 on one of the uses found by find_used_regs.
9724
e532f586
NF
97252011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9726
9727 PR bootstrap/48469
9728 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
9729 declaration.
9730
3fb7c055
NF
97312011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9732
9733 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
9734 as an rtx.
9735 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
9736
b71b43d9
SB
97372011-04-05 Steven Bosscher <steven@gcc.gnu.org>
9738
9739 PR middle-end/48441
9740 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
9741
b405b274
NF
97422011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9743
9744 * combine.c: Include obstack.h.
9745 (struct insn_link): Define.
9746 (uid_log_links): Adjust type.
9747 (FOR_EACH_LOG_LINK): New macro.
9748 (insn_link_obstack): Declare.
9749 (alloc_insn_link): Define.
9750 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
9751 type of link variables.
9752 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
9753 (try_combine, record_promoted_values, distribute_notes): Likewise.
9754 (distribute_links): Likewise. Tweak prototype.
9755 (clear_log_links): Delete.
9756 (adjust_for_new_dest): Call alloc_insn_link.
9757 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
9758
6409abe3
NF
97592011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9760
9761 * gcse.c (modify_mem_list): Convert to an array of VECs.
9762 (canon_modify_mem_list, compute_transp): Tweak formatting.
9763 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
9764 (load_killed_in_block_p): Likewise.
9765 (record_last_mem_set_info): Likewise.
9766 (clear_modify_mem_tables): Likewise.
9767
170d8157
TV
97682011-04-05 Tom de Vries <tom@codesourcery.com>
9769
9770 PR middle-end/48461
9771 * function.c (emit_use_return_register_into_block): Only define if
9772 HAVE_return.
9773
c5911a55
EB
97742011-04-05 Eric Botcazou <ebotcazou@adacore.com>
9775
9776 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
9777
abd016e6
JM
97782011-04-05 Joseph Myers <joseph@codesourcery.com>
9779
9780 * config/rx/rx-opts.h: New.
9781 * config/rx/rx.c (rx_cpu_type): Remove.
9782 (rx_handle_option): Don't assert that global structures are in
9783 use. Access variables via opts pointer. Defer most handling of
9784 OPT_mint_register_. Use error_at.
9785 (rx_option_override): Handle deferred OPT_mint_register_ here.
9786 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
9787 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
9788 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
9789 (rx_cpu_types): New Enum and EnumValue entries.
9790 (mint-register=): Use Defer and use Var accordingly.
9791
1ed13f83
NF
97922011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9793
9794 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
9795 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
9796 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
9797 Move these...
9798 (debug_free_queue, debug_nesting, symbol_queue_index):
9799 ...and these...
9800 * dbxout.c: ...to here. Make static.
9801
6ce1edcf
NF
98022011-04-05 Nathan Froyd <froydnj@codesourcery.com>
9803
9804 * gcse.c (modify_pair): Define. Define a VEC of it.
9805 (canon_modify_mem_list): Convert to an array of VECs.
9806 (free_insn_expr_list_list): Delete.
9807 (clear_modify_mem_tables): Call VEC_free instead.
9808 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
9809 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
9810 (canon_list_insert, compute_transp): Likewise.
9811
c201ac94
TV
98122011-04-05 Tom de Vries <tom@codesourcery.com>
9813
9814 PR target/43920
9815 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
9816 for size.
9817
4c029f40
TV
98182011-04-05 Tom de Vries <tom@codesourcery.com>
9819
9820 PR target/43920
9821 * function.c (emit_use_return_register_into_block): New function.
9822 (thread_prologue_and_epilogue_insns): Use
9823 emit_use_return_register_into_block.
9824
2a562b0a
TV
98252011-04-05 Tom de Vries <tom@codesourcery.com>
9826
9827 PR target/43920
9828 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
9829 insn.
9830
0248bceb
TV
98312011-04-05 Tom de Vries <tom@codesourcery.com>
9832
9833 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
9834
ffa94123
YZ
98352011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
9836
798dd0ba
UB
9837 * config/arm/arm.md (define_constants for unspec): Replace with
9838 define_c_enum.
9839 (define_constants for unspecv): Replace with define_c_enum.
9840 * config/arm/neon.md (define_constants for unspec): Replace with
9841 define_c_enum.
ffa94123 9842
3b8f9b46
RH
98432011-04-04 Richard Henderson <rth@redhat.com>
9844
720cf80f 9845 PR bootstrap/48400
3b8f9b46
RH
9846 * dwarf2out.c (output_line_info): Always emit line info from
9847 at least one section.
9848 (dwarf2out_init): Create text_section_line_info here ...
9849 (set_cur_line_info_table): ... not here.
9850
720cf80f 98512011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
9852
9853 PR target/48380
9854 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 9855 not called.
e5b0e1ca 9856
720cf80f 9857 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 9858
196565d4
SB
98592011-04-04 Steven Bosscher <steven@gcc.gnu.org>
9860
b77f9eab
SB
9861 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
9862 (expr_equiv_p): Remove.
9863 (insert_set_in_table): Look at <dest, src> pair instead of expr.
9864 (hash_scan_set): Update call to insert_set_in_table.
9865 (dump_hash_table): Dump <dest, src> pair.
9866 (lookup_set): Simplify. Lookup <dest, src> pair.
9867 (compute_transp): Remove, fold heavily simplified code into...
9868 (compute_local_properties): ...here. Expect COMP and TRANSP
9869 unconditionally.
9870 (find_avail_set): Take set directly from struct expr.
9871 (find_bypass-set): Likewise.
9872 (bypass_block): Likewise.
9873 (cprop_insn): Likewise. Remove redundant INSN_P test.
9874
384d7a55
SB
9875 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
9876 checks on form of COND from find_implicit_sets to here.
9877 (find_implicit_sets): Cleanup control flow. Split critical edges
9878 if it exposes implicit sets. Allocate/resize implicit_sets as
9879 necessary.
9880 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
9881 changed something. Run df_analyze after find_implicit_sets if any
9882 edges were split. Do not allocate implicit_sets here.
9883
3084ce69
SB
9884 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
9885 (gcse_obstack): Renamed to cprop_obstack.
9886 (GNEW, GNEWVEC, GNEWVAR): Remove.
9887 (gmalloc): Remove.
9888 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
9889 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
9890 (gcse_alloc): Likewise, and rename to cprop_alloc.
9891 (alloc_gcse_men, free_gcse_mem): Remove.
9892 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
9893 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
9894 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
9895
196565d4
SB
9896 * cprop.c (oprs_not_set_p): Remove.
9897 (mark_set, mark_clobber): Remove.
9898 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
9899 (reg_not_set_p): New function.
9900 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
9901 (cprop_insn): Likewise.
9902 (cprop_jump): Use FOR_EACH_EDGE.
9903
9b69cf83
BS
99042011-04-04 Bernd Schmidt <bernds@codesourcery.com>
9905
9906 PR bootstrap/48403
9907 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
9908 (rank_for_schedule): Use scheduled_insns vector instead of
9909 last_scheduled_insn.
9910 (ok_for_early_queue_removal): Likewise.
9911 (queue_to_ready): Search forward in nonscheduled_insns_begin if
9912 we have a dbg_cnt.
9913 (choose_ready): Likewise.
9914 (commit_schedule): Use VEC_iterate.
9915 (schedule_block): Initialize nonscheduled_insns_begin. If we have
9916 a dbg_cnt, use it and ensure the first insn is in the ready list.
9917 (haifa_sched_init): Allocate scheduled_insns.
9918 (sched_extend_ready_list): Don't allocate it; reserve space.
9919 (haifa_sched_finish): Free it.
9920
24f48c2f
JM
99212011-04-04 Joseph Myers <joseph@codesourcery.com>
9922
9923 * optc-gen.awk: Always remove type from Variable entry before
9924 recording in var_seen.
9925
8effe856
EB
99262011-04-04 Eric Botcazou <ebotcazou@adacore.com>
9927
9928 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
9929 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
9930 call to tidy_fallthru_edges.
9931
413519ae
JM
99322011-04-04 Joseph Myers <joseph@codesourcery.com>
9933
9934 * doc/options.texi (ToLower): Document.
3729983c 9935 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
9936 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
9937 * opts.h (cl_option): Add cl_tolower field.
9938 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
9939 arguments with lowercase strings.
9940 * config/rx/rx.opt (mcpu=): Add ToLower.
9941 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
9942 argument.
9943
7d34a1b0
RS
99442011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
9945
9946 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
9947
c30e7434
RS
99482011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
9949
9950 * config/vax/vax.c: Include reload.h.
9951
112a861d
AS
99522011-04-04 Anatoly Sokolov <aesok@post.ru>
9953
9954 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
9955 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
9956 (sparc_preferred_reload_class): New function.
9957
e8c6bb74
JJ
99582011-04-04 Jakub Jelinek <jakub@redhat.com>
9959
2aeaa366 9960 PR debug/48401
e8c6bb74
JJ
9961 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
9962 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
9963
2c081caf
NF
99642011-04-03 Nathan Froyd <froydnj@codesourcery.com>
9965
9966 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
9967 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
9968
53802f27
AS
99692011-04-03 Anatoly Sokolov <aesok@post.ru>
9970
9971 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
9972 (ASM_OUTPUT_ALIGNED_BSS): Define.
9973
e89964e3
MM
99742011-04-03 Michael Matz <matz@suse.de>
9975
9976 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
9977 and next_slot members.
9978 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
9979 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
9980 (lto_streamer_cache_append): Declare.
9981 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
9982 unsigned index, remove offset parameter, ensure that we append
9983 or update existing entries.
9984 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
9985 parameter, update next_slot for append.
9986 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
9987 parameter.
9988 (lto_streamer_cache_insert_at): Likewise.
9989 (lto_streamer_cache_append): New function.
9990 (lto_streamer_cache_lookup): Use unsigned index.
9991 (lto_streamer_cache_get): Likewise.
9992 (lto_record_common_node): Don't test tree_node_can_be_shared.
9993 (preload_common_node): Adjust call to lto_streamer_cache_insert.
9994 (lto_streamer_cache_delete): Don't free offsets member.
9995 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
9996 (lto_output_string_with_length): Use lto_output_data_stream.
9997 (lto_output_tree_header): Remove ix parameter, don't write it.
9998 (lto_output_builtin_tree): Likewise.
9999 (lto_write_tree): Adjust callers to above, don't track and write
10000 offset, write unsigned index.
10001 (output_unreferenced_globals): Don't emit all global vars.
10002 (write_global_references): Use unsigned indices.
10003 (lto_output_decl_state_refs): Likewise.
10004 (write_symbol): Likewise.
10005 * lto-streamer-in.c (lto_input_chain): Move earlier.
10006 (input_function): Use unsigned index.
10007 (input_alias_pairs): Don't read and then ignore all global vars.
10008 (lto_materialize_tree): Remove ix_p parameter, don't read index,
10009 don't pass it back, use lto_streamer_cache_append.
10010 (lto_register_var_decl_in_symtab): Use unsigned index.
10011 (lto_register_function_decl_in_symtab): Likewise.
10012 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
10013 index.
10014 (lto_get_builtin_tree): Don't read index, use
10015 lto_streamer_cache_append.
10016 (lto_read_tree): Adjust call to lto_materialize_tree.
10017
10018 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
10019 don't use function calls in arguments to MIN.
10020
10021 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
10022 twice.
10023
10024 * gimple.c (gimple_type_leader_entry): Mark deletable.
10025
b9a5b5b2
AM
100262011-04-03 Alan Modra <amodra@gmail.com>
10027
10028 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
10029
ac6a641b
MM
100302011-04-03 Michael Matz <matz@suse.de>
10031
10032 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
10033 an integer.
10034 * tree.h (tree_decl_non_common.vindex): Adjust comment.
10035
0038d4e0
MM
100362011-04-03 Michael Matz <matz@suse.de>
10037
e9c18386 10038 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
10039 * gimple-fold.c (canonicalize_constructor_val): Accept being called
10040 without function context.
10041 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
10042 current_function_decl and cfun.
10043
91f2fae8
MM
100442011-04-03 Michael Matz <matz@suse.de>
10045
10046 * tree.c (decl_init_priority_insert): Don't create entry for
10047 default priority.
10048 (decl_fini_priority_insert): Ditto.
10049 (fields_compatible_p, find_compatible_field): Remove.
10050 * tree.h (fields_compatible_p, find_compatible_field): Remove.
10051 * gimple.c (gimple_compare_field_offset): Adjust block comment.
10052
da29e070
EB
100532011-04-03 Eric Botcazou <ebotcazou@adacore.com>
10054
10055 * combine.c (try_combine): Remove useless local variable.
10056
4979c28b 100572011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 10058 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
10059
10060 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
10061 non-variable offsets and compare the remaining bases of the two
10062 accesses instead of looking for exact same data-ref.
10063
b4ddcaee
KT
100642011-04-02 Kai Tietz <ktietz@redhat.com>
10065
f90298e1
KT
10066 PR target/48416
10067 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
10068
b4ddcaee
KT
10069 * i386.c (ix86_is_msabi_thiscall): New helper function.
10070 (ix86_is_type_thiscall): New helper function.
10071 (ix86_comp_type_attributes): Handle thiscall for method-functions
10072 special.
10073 (init_cumulative_args): Likewise.
10074 (find_drap_reg): Likewise.
10075 (ix86_static_chain): Likewise.
10076 (x86_this_parameter): Likewise.
10077 (x86_output_mi_thunk): Likewise.
10078
2a9d769a 100792011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
10080 Nicolas Setton <setton@adacore.com>
10081 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
10082
10083 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
10084 (add_gnat_descriptive_type_attribute): New function.
10085 (gen_array_type_die): Call it.
10086 (gen_enumeration_type_die): Likewise.
10087 (gen_struct_or_union_type_die): Likewise.
10088 (modified_type_die): Likewise.
10089 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
10090 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
10091 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
10092
15a03a11
JJ
100932011-04-01 Jakub Jelinek <jakub@redhat.com>
10094
10095 PR bootstrap/48148
10096 * dwarf2out.c (resolve_addr): Don't call force_decl_die
10097 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
10098
10099 Revert:
10100 2011-03-17 Richard Guenther <rguenther@suse.de>
10101
10102 PR bootstrap/48148
10103 * lto-cgraph.c (input_overwrite_node): Clear the abstract
10104 origin for decls in other ltrans units.
10105 (input_varpool_node): Likewise.
10106
19228b93
JJ
101072011-04-01 Jakub Jelinek <jakub@redhat.com>
10108
10109 PR middle-end/48335
10110 * expr.c (expand_assignment): Handle all possibilities
10111 if TO_RTX is CONCAT.
e9c18386 10112 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
10113 (store_split_bit_field): If SUBREG_REG (op0) or
10114 op0 itself has smaller mode than word, return it
10115 for offset 0 and const0_rtx for out-of-bounds stores.
10116 If word is const0_rtx, skip it.
10117
88cb339e
N
101182011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
10119
10120 * config/h8300/h8300.c (print_operand_address): Rename to...
10121 (h8300_print_operand_address): ...this. Make static. Adjust comments.
10122 Call h8300_print_operand and h8300_print_operand_address instead of
10123 print_operand and print_operand_address. Declare.
10124 (print_operand): Renake to...
10125 (h8300_print_operand): ...this. Make static. Adjust comments.
10126 Call h8300_print_operand instead of print_operand. Declare.
10127 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
10128 (h8300_register_move_cost): Likewise.
10129 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
10130 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
10131 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
10132 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
10133 * config/h8300/h8300-protos.h (print_operand): Delete.
10134 (print_operand_address): Delete.
10135
756d6ee9
RH
101362011-04-01 Richard Henderson <rth@redhat.com>
10137
10138 PR 48400
10139 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
10140 in strict mode before dwarf4. Re-order tests to early out
10141 before switching sections.
10142
ceaaaeab
NF
101432011-04-01 Nathan Froyd <froydnj@codesourcery.com>
10144
10145 * config/h8300/constraints.md: New file.
10146 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
10147 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
10148 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
10149 * config/h8300/predicates.md (bit_operand): Likewise.
10150 (incdec_operand): Use satisfies_constraint_M and
10151 satisfies_constraint_O. Don't use C code block.
10152 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
10153 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
10154 (compute_mov_length): Use satisfies_constraint_G.
10155 (fix_bit_operand): Use satisfies_constraint_U.
10156 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
10157 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
10158 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
10159 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
10160 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
10161 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
10162 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10163 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
10164 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
10165 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
10166 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
10167 (EXTRA_MEMORY_CONSTRAINT): Delete.
10168
08ae38e0
AP
101692011-04-01 Andrew Pinski <pinskia@gmail.com>
10170 Michael Meissner <meissner@linux.vnet.ibm.com>
10171
10172 PR target/48262
10173 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
10174 operands, as per the specifications.
10175
10176 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
10177 (vec_extract_evenv4sf): Ditto.
10178 (vec_extract_evenv8hi): Ditto.
10179 (vec_extract_evenv16qi): Ditto.
10180 (vec_extract_oddv4si): Ditto.
10181
bdb0b0f6
MW
101822011-03-31 Mark Wielaard <mjw@redhat.com>
10183
10184 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
10185 high_pc attribute if the CU has no associated code. Only output
10186 DW_AT_entry_pc for CU if not generating strict dwarf and
10187 dwarf_version < 4.
10188
722279e4
BS
101892011-04-01 Bernd Schmidt <bernds@codesourcery.com>
10190
10191 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
10192 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
10193 out of ...
10194 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
10195 * final.c (final_start_function): Call the new function rather
10196 than using a NULL argument for dwarf2out_frame_debug.
10197
c5dd277d
BS
10198 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
10199 that contains the prologue.
10200
ec4efea9
BS
10201 * haifa-sched.c (queue_insn): New arg REASON. All callers
10202 changed. Print it in debugging output.
10203
2a6a0d80
BS
10204 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
10205
86014d07
BS
10206 * sched-ebb.c (begin_schedule_ready): Remove second argument.
10207 Split most of the code into...
10208 (begin_move_insn): ... here. New function.
10209 (ebb_sched_info): Add a pointer to it.
10210 * haifa-sched.c (scheduled_insns): New static variable.
10211 (sched_extend_ready_list): Allocate it.
10212 (schedule_block): Use it to record the order of scheduled insns.
10213 Perform RTL changes to move insns only after all scheduling
10214 decisions have been made.
10215 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
10216 begin_move_insn field.
10217 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
10218 * sched-int.h (struct haifa_sched_info): Remove second argument
10219 from begin_schedule_ready hook. Add new member begin_move_insn.
10220 * sched-rgn.c (begin_schedule_ready): Remove second argument.
10221 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
10222
9d701248
BS
10223 * haifa-sched.c (prune_ready_list): New function, broken out of
10224 schedule_block.
10225 (schedule_block): Use it.
10226
1ca1dad5
UW
102272011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10228
10229 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
10230
49568e45
KT
102312011-04-01 Kai Tietz <ktietz@redhat.com>
10232
10233 * config.gcc (*-*-mingw*): Allow as option the
10234 posix threading model.
07c0852e 10235 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
10236 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
10237 definition.
10238 (CPP_SPEC): Add pthread/no-pthread handling.
10239 (LIB_SPEC): Likewise.
10240 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
10241 (LIB_SPEC): Likewise.
10242 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
10243 flag to pass -pthread option for shared libgcc build.
10244 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
10245 for shared libgcc build.
10246 * config/i386/t-mingw-pthread: New file.
10247 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
10248 New define to enable use of library pthread by default.
10249 * config/i386/mingw.opt (pthread): New driver option.
10250 (no-pthread): New driver option.
e9c18386 10251 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
10252 * config/i386/mingw-w64.opt: Likewise.
10253
748f7574 102542011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
10255
10256 * c-decl.c (grokdeclarator): Fix formatting.
10257
f04713ee
RS
102582011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10259
10260 * expr.c (emit_block_move_via_movmem): Use n_generator_args
10261 instead of n_operands.
10262 (set_storage_via_setmem): Likewise.
10263 * optabs.c (maybe_gen_insn): Likewise.
10264 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
10265 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
10266 (mips_expand_builtin_direct): Likewise.
10267 * config/spu/spu.c (expand_builtin_args): Likewise.
10268
b29387ee
RS
102692011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10270
10271 * recog.h (insn_data_d): Add n_generator_args.
10272 * genoutput.c (data): Likewise.
10273 (output_insn_data): Print it.
10274 (max_opno, num_dups): Delete.
10275 (scan_operands): Just fill in "d->operand[...]".
10276 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
10277
e792559a
RS
102782011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10279
10280 * gensupport.h (pattern_stats): New structure.
10281 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
10282 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
10283 (max_operand_1, max_operand_vec): Delete.
10284 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
10285
e8110d6f
NF
102862011-03-31 Nathan Froyd <froydnj@codesourcery.com>
10287
10288 * emit-rtl.c (emit_pattern_after_setloc): New function.
10289 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
10290 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
10291 (emit_pattern_after): New function.
10292 (emit_insn_after, emit_jump_insn_after): Call it.
10293 (emit_call_insn_after, emit_debug_insn_after): Likewise.
10294 (emit_pattern_before_setloc): New function.
10295 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
10296 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
10297 Likewise.
10298 (emit_pattern_before): New function.
10299 (emit_insn_before, emit_jump_insn_before): Call it.
10300 (emit_call_insn_before, emit_debug_insn_before): Likewise.
10301
576f85f1
RH
103022011-03-31 Richard Henderson <rth@redhat.com>
10303
10304 * dwarf2out.c (dw_separate_line_info_ref): Remove.
10305 (dw_separate_line_info_entry): Remove.
10306 (enum dw_line_info_opcode): New.
10307 (dw_line_info_entry): Use it.
10308 (dw_line_info_table, dw_line_info_table_p): New.
10309 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
10310 (line_info_table, line_info_label_num): Remove.
10311 (line_info_table_in_use): Remove.
10312 (separate_line_info_table): Remove.
10313 (separate_line_info_table_allocated): Remove.
10314 (separate_line_info_table_in_use): Remove.
10315 (LINE_INFO_TABLE_INCREMENT): Remove.
10316 (line_info_label_num): New.
10317 (cur_line_info_table): New.
10318 (text_section_line_info, cold_text_section_line_info): New.
10319 (separate_line_info): New.
10320 (SEPARATE_LINE_CODE_LABEL): Remove.
10321 (print_dwarf_line_table): Remove.
10322 (debug_dwarf): Don't dump it.
10323 (output_one_line_info_table): New.
10324 (output_line_info): Use it.
10325 (new_line_info_table): New.
10326 (set_cur_line_info_table): New.
10327 (dwarf2out_switch_text_section): Use it.
10328 (dwarf2out_begin_function): Likewise.
10329 (push_dw_line_info_entry): New.
10330 (dwarf2out_source_line): Rewrite for new line info tables.
10331 (dwarf2out_init): Remove dead initailizations.
10332
300d83d9
JM
103332011-03-31 Joseph Myers <joseph@codesourcery.com>
10334
10335 * opts.h (cl_option): Add comments to fields. Add bit-fields for
10336 various flags.
10337 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
10338 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
10339 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
10340 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
10341 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
10342 * opt-functions.awk (flag_init, switch_bit_fields): New.
10343 (switch_flags): Don't handle flags moved to bit-fields. Don't
10344 generate CL_MISSING_OK or CL_SAVE.
10345 * optc-gen.awk: Update to generate bit-field output as well as
10346 flags field.
10347 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
10348 bit-field instead of CL_REJECT_DRIVER flag.
10349 * opts-common.c (generate_canonical_option,
10350 decode_cmdline_option): Use bit-fields instead of CL_* flags.
10351 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
10352 instead of CL_REJECT_NEGATIVE flag.
10353 * toplev.c (print_switch_values): Use cl_report bit-field instead
10354 of CL_REPORT flag.
10355
d4d73ce2
EB
103562011-03-31 Eric Botcazou <ebotcazou@adacore.com>
10357
10358 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
10359 a zero minimum index only if it is redundant.
10360
b8faca75
VM
103612011-03-31 Vladimir Makarov <vmakarov@redhat.com>
10362
10363 PR rtl-optimization/48381
10364 * ira-color.c (assign_hard_reg): Use hard reg set intersection
10365 instead of ira_class_hard_reg_index for calculating conflicting
10366 hard registers.
10367
7d11cebe
SB
103682011-03-31 Steven Bosscher <steven@gcc.gnu.org>
10369
10370 * cprop.c: Clean up hash table building.
10371 (reg_avail_info): Remove.
10372 (oprs_available_p): Remove.
10373 (record_last_reg_set_info): Remove.
10374 (record_last_set_info): Remove.
10375 (reg_available_p): New function.
10376 (gcse_constant_p): Do not treat unfolded conditions as constants.
10377 (make_set_regs_unavailable): New function.
10378 (hash_scan_set): Simplify with new reg_available_p.
10379 (compute_hash_table_work): Traverse insns stream only once.
10380 Do not compute reg_avail_info. Traverse insns in reverse order.
10381 Record implicit sets after recording explicit sets from the block.
10382
98faf84f
MM
103832011-03-31 Michael Matz <matz@suse.de>
10384
e9c18386 10385 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 10386
f52d97da
AS
103872011-03-31 Anatoly Sokolov <aesok@post.ru>
10388
10389 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
10390 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
10391 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10392 (h8300_mode_dependent_address_p): New function.
10393 (h8300_get_index): Make static.
10394
e16b6fd0
JL
103952011-03-31 Jeff Law <law@redhat.com>
10396
10c51983
JL
10397 * reload1.c (elimination_effects): Fix typo in recent change.
10398
e9c18386 10399 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
10400 typo potentially leading to null pointer dereference.
10401
10402 * caller-save.c (new_saved_hard_reg): Eliminate return value.
10403 (setup_save_areas): Corresponding changes to avoid useless
10404 assignments.
10405
10406 * jump.c (reversed_comparison_code_parts): Avoid successive return
10407 statements when REVERSE_CONDITION is defined.
10408
10409 * expr.c (expand_assignment): Avoid useless assignments.
10410 (expand_expr_real_1): Likewise.
10411 (expand_expr_real_2): Avoid useless statements.
10412
10413 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
10414
10415 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
10416
10417 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
10418 statements.
10419
10420 * stmt.c (expand_expr_stmt): Avoid useless assignment.
10421
eb1eb914
JM
104222011-03-31 Joseph Myers <joseph@codesourcery.com>
10423
10424 PR target/47109
10425 * doc/tm.texi.in (TARGET_VERSION): Remove.
10426 * doc/tm.texi: Regenerate.
10427 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
10428 * collect2.c (main): Don't use TARGET_VERSION.
10429 * mips-tdump.c (main): Don't use TARGET_VERSION.
10430 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 10431 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
10432 * config/rs6000/vxworksae.h: Remove.
10433 * config/alpha/alpha.h (TARGET_VERSION): Remove.
10434 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
10435 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
10436 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
10437 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
10438 * config/arm/arm.h (TARGET_VERSION): Remove.
10439 * config/arm/coff.h (TARGET_VERSION): Remove.
10440 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
10441 * config/arm/elf.h (TARGET_VERSION): Remove.
10442 * config/arm/freebsd.h (TARGET_VERSION): Remove.
10443 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
10444 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
10445 * config/arm/pe.h (TARGET_VERSION): Remove.
10446 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
10447 * config/arm/semi.h (TARGET_VERSION): Remove.
10448 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
10449 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
10450 * config/arm/vxworks.h (TARGET_VERSION): Remove.
10451 * config/avr/avr.h (TARGET_VERSION): Remove.
10452 * config/bfin/bfin.h (TARGET_VERSION): Remove.
10453 * config/fr30/fr30.h (TARGET_VERSION): Remove.
10454 * config/frv/frv.h (TARGET_VERSION): Remove.
10455 * config/h8300/h8300.h (TARGET_VERSION): Remove.
10456 * config/i386/cygwin.h (TARGET_VERSION): Remove.
10457 * config/i386/darwin.h (TARGET_VERSION): Remove.
10458 * config/i386/darwin64.h (TARGET_VERSION): Remove.
10459 * config/i386/djgpp.h (TARGET_VERSION): Remove.
10460 * config/i386/freebsd.h (TARGET_VERSION): Remove.
10461 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
10462 * config/i386/gnu.h (TARGET_VERSION): Remove.
10463 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
10464 * config/i386/i386elf.h (TARGET_VERSION): Remove.
10465 * config/i386/linux.h (TARGET_VERSION): Remove.
10466 * config/i386/linux64.h (TARGET_VERSION): Remove.
10467 * config/i386/lynx.h (TARGET_VERSION): Remove.
10468 * config/i386/mingw32.h (TARGET_VERSION): Remove.
10469 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
10470 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
10471 * config/i386/netware.h (TARGET_VERSION): Remove.
10472 * config/i386/nto.h (TARGET_VERSION): Remove.
10473 * config/i386/openbsd.h (TARGET_VERSION): Remove.
10474 * config/i386/vxworks.h (TARGET_VERSION): Remove.
10475 * config/ia64/elf.h (TARGET_VERSION): Remove.
10476 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
10477 * config/ia64/hpux.h (TARGET_VERSION): Remove.
10478 * config/ia64/linux.h (TARGET_VERSION): Remove.
10479 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
10480 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
10481 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
10482 * config/lm32/lm32.h (TARGET_VERSION): Remove.
10483 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
10484 * config/m32c/m32c.h (TARGET_VERSION): Remove.
10485 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
10486 * config/m32r/m32r.h (TARGET_VERSION): Remove.
10487 * config/m68k/linux.h (TARGET_VERSION): Remove.
10488 * config/m68k/m68k.h (TARGET_VERSION): Remove.
10489 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
10490 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
10491 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
10492 * config/mep/mep.h (TARGET_VERSION): Remove.
10493 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
10494 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
10495 * config/mips/iris6.h (MACHINE_TYPE): Remove.
10496 * config/mips/linux.h (TARGET_VERSION): Remove.
10497 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
10498 * config/mips/vxworks.h (TARGET_VERSION): Remove.
10499 * config/mmix/mmix.h (TARGET_VERSION): Remove.
10500 * config/mn10300/linux.h (TARGET_VERSION): Remove.
10501 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
10502 * config/pa/pa.h (TARGET_VERSION): Remove.
10503 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
10504 * config/picochip/picochip.h (TARGET_VERSION): Remove.
10505 * config/rs6000/aix.h (TARGET_VERSION): Remove.
10506 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
10507 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
10508 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
10509 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
10510 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
10511 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
10512 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
10513 * config/rs6000/linux.h (TARGET_VERSION): Remove.
10514 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
10515 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
10516 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
10517 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
10518 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
10519 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
10520 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
10521 * config/s390/linux.h (TARGET_VERSION): Remove.
10522 * config/s390/s390.h (TARGET_VERSION): Remove.
10523 * config/s390/tpf.h (TARGET_VERSION): Remove.
10524 * config/score/score.h (TARGET_VERSION): Remove.
10525 * config/sh/linux.h (TARGET_VERSION): Remove.
10526 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
10527 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
10528 * config/sh/sh.h (TARGET_VERSION): Remove.
10529 * config/sh/sh64.h (TARGET_VERSION): Remove.
10530 * config/sh/superh.h (TARGET_VERSION): Remove.
10531 * config/sh/vxworks.h (TARGET_VERSION): Remove.
10532 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
10533 * config/sparc/linux.h (TARGET_VERSION): Remove.
10534 * config/sparc/linux64.h (TARGET_VERSION): Remove.
10535 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
10536 TARGET_NAME32, TARGET_NAME): Remove.
10537 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
10538 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
10539 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
10540 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
10541 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
10542 * config/spu/spu.h (TARGET_VERSION): Remove.
10543 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
10544 * config/v850/v850.h (TARGET_VERSION): Remove.
10545 * config/vax/linux.h (TARGET_VERSION): Remove.
10546 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
10547 * config/xtensa/elf.h (TARGET_VERSION): Remove.
10548 * config/xtensa/linux.h (TARGET_VERSION): Remove.
10549
ace31bca
EB
105502011-03-31 Eric Botcazou <ebotcazou@adacore.com>
10551
10552 PR target/48142
10553 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
10554 frame-related from frame-unrelated adjustments to the stack pointer.
10555
76f9db36
JJ
105562011-03-31 Jakub Jelinek <jakub@redhat.com>
10557
10558 * common.opt (fdebug-types-section): Move earlier.
10559 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
10560
b7826465
AT
105612011-03-31 Andreas Tobler <andreast@fgznet.ch>
10562
10563 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
10564 var.
10565
1290e54c
NF
105662011-03-30 Nathan Froyd <froydnj@codesourcery.com>
10567
10568 * tree.h (CASE_CHAIN): Define.
10569 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
10570 (gimple_redirect_edge_and_branch): Likewise.
10571
bddc98e1
VM
105722011-03-30 Vladimir Makarov <vmakarov@redhat.com>
10573
10574 PR middle-end/48367
10575 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
10576 calculation.
10577
c865e437
JL
105782011-03-30 Jeff Law <law@redhat.com>
10579
b3750213 10580 * PR bootstrap/48371
c865e437
JL
10581 * reload1.c (reload): Fix botch in last change.
10582
10583 * reload.h (struct reload): Fix typo introduced in last change.
10584
2cdf9574
JM
105852011-03-30 Joseph Myers <joseph@codesourcery.com>
10586
10587 * config/arm/arm.opt (mhard-float, msoft-float): Mark
10588 Undocumented. Remove help text.
10589 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
10590 -mhard-float.
10591
666a21a2
JM
105922011-03-30 Joseph Myers <joseph@codesourcery.com>
10593
10594 * doc/options.texi (NegativeAlias): Document.
10595 (Alias): Mention NegativeAlias.
10596 * opt-functions.awk: Handle NegativeAlias.
e9c18386 10597 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
10598 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
10599 * opts.h (CL_NEGATIVE_ALIAS): Define.
10600 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
10601 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
10602 OPT_mspe_.
10603 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
10604 Alias entries.
10605 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10606 mno-spe and mno-isel instead of mspe=no and -misel=no.
10607
0fa4e351
MW
106082011-03-29 Mark Wielaard <mjw@redhat.com>
10609
10610 * common.opt (fdebug-types-section): New flag.
10611 * doc/invoke.texi: Document new -fno-debug-types-section flag.
10612 * dwarf2out.c (use_debug_types): New define.
10613 (struct die_struct): Mark die_id with GTY desc use_debug_types.
10614 (print_die): Guard output of type unit signatures using
10615 use_debug_types.
10616 (build_abbrev_table): Replace assert of dwarf_version >= 4
10617 with assert on use_debug_types.
10618 (size_of_die): Likewise.
10619 (unmark_dies): Likewise.
10620 (value_format): Decide AT_ref_external form on use_debug_types.
10621 (output_die): Replace dwarf_version version check guard with
10622 use_debug_types where appropriate.
10623 (modified_type_die): Likewise.
10624 (gen_reference_type_die): Likewise.
10625 (dwarf2out_start_source_file): Likewise.
10626 (dwarf2out_end_source_file): Likewise.
10627 (prune_unused_types_walk_attribs): Likewise.
10628 (dwarf2out_finish): Likewise.
10629
4648deb4
VM
106302011-03-30 Vladimir Makarov <vmakarov@redhat.com>
10631
10632 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
10633
4f431835
RS
106342011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
10635
10636 PR rtl-optimization/48332
10637 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
10638 mode of input operand N and modeN to its actual mode.
10639
f2034d06
JL
106402011-03-30 Jeff Law <law@redhat.com>
10641
10642 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
10643 define accessor macro.
10644 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
10645 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
10646 (reg_equiv_init): Likewise.
10647 (reg_equivs_size): New variable.
10648 (reg_equiv_init_size): Remove.
10649 (allocate_initial_values): Move prototype to here from....
10650 * integrate.h (allocate_initial_values): Remove prototype.
10651 * integrate.c: Include reload.h.
10652 (allocate_initial_values): Corresponding changes.
10653 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
10654 (fix_reg_equiv_init, no_equiv): Corresponding changes.
10655 (update_equiv_regs): Corresponding changes.
10656 (ira): Corresponding changes.
10657 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
10658 (push_secondary_reload): Corresponding changes.
10659 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
10660 (make_memloc, find_reloads_address): Corresponding changes.
10661 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
10662 (find_reloads_address_1): Corresponding changes.
10663 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
10664 (refers_to_regno_for_reload_p): Corresponding changes.
10665 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
10666 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
10667 * reload1.c: Include ggc.h.
10668 (grow_reg_equivs): New function.
10669 (replace_pseudos_in, reload): Corresponding changes.
10670 (calculate_needs_all_insns, alter_regs): Corresponding changes.
10671 (eliminate_regs_1, elimination_effects): Corresponding changes.
10672 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
10673 (delete_output_reload): Likewise.
10674 * caller-save.c (mark_referenced_regs): Corresponding changes.
10675 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
10676 * frv/predicates.md (frv_load_operand): Corresponding changes.
10677 * microblaze/microblaze.c (double_memory_operand): Corresponding
10678 changes.
10679 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
10680 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 10681 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
10682 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
10683 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
10684 changes.
10685 * pa/pa.c (emit_move_sequence): Corresponding changes.
10686 * vax/vax.c (nonindexed_address_p): Corresponding changes.
10687
159b81b0
RS
106882011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
10689
10690 PR target/47551
10691 * config/arm/arm.c (coproc_secondary_reload_class): Handle
10692 structure modes. Don't check neon_vector_mem_operand for
10693 vector or structure modes.
10694
a6217191
RS
106952011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
10696 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10697
10698 PR target/43590
10699 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
10700 operand 1 and reshuffle the operands to match.
10701 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
10702
bd837408
CS
107032011-03-30 Christian Schüler <cschueler@gmx.de>
10704
6955d771 10705 PR driver/48208
bd837408 10706 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 10707
6955d771 10708 PR driver/48260
bd837408
CS
10709 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
10710 handler function.
10711 * config/darwin.opt: Added '-arch' option.
10712
e9c0470a
NC
107132011-03-30 Nick Clifton <nickc@redhat.com>
10714
10715 * config/rx/rx.md: Add peepholes and patterns to combine
10716 extending loads and simple arithmetic instructions.
10717 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
10718 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
10719 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 10720 modes to use pre-decrement and post-increment addressing.
e9c18386 10721 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 10722 addresses.
e9c18386
UB
10723 (rx_print_operand): Add support for %Q. Fix handling of %Q.
10724 (rx_memory_move_cost): Adjust cost of stores.
10725 (rx_adjust_insn_length): New function.
e9c0470a 10726
8a87e7ab
JJ
107272011-03-30 Jakub Jelinek <jakub@redhat.com>
10728
10729 PR c/48305
10730 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10731 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
10732 matching arg00/arg01 types.
10733
12486e03
EB
107342011-03-30 Eric Botcazou <ebotcazou@adacore.com>
10735
10736 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
10737 last_location to UNKNOWN_LOCATION.
10738
0b99eef6
L
107392011-03-30 H.J. Lu <hongjiu.lu@intel.com>
10740
10741 PR target/48349
10742 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
10743 FLOAT_SSE_REGS.
10744
023592aa
JM
107452011-03-30 Joseph Myers <joseph@codesourcery.com>
10746 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10747
10748 PR bootstrap/48337
10749 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
10750 Init(PROCESSOR_V7).
10751 (sparc_cpu): Likewise.
10752 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
10753 PROCESSOR_V7.
10754
ad3b266b
VM
107552011-03-29 Vladimir Makarov <vmakarov@redhat.com>
10756
10757 PR target/48336
10758 PR middle-end/48342
10759 PR rtl-optimization/48345
10760 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
10761 hard regs for given mode from profitable regs when doing secondary
10762 allocation.
10763
633c9126
JL
107642011-03-29 Jeff Law <law@redhat.com>
10765
10766 PR bootstrap/48327
10767 * tree-ssa-threadupdate.c (struct redirection_data): Remove
10768 do_not_duplicate field.
10769 (lookup_redirection_data): Corresponding changes.
10770 (create_duplicates): Always create a template block.
10771 (redirect_edges): Remove code which reused the original block
10772 when it was going to become unreachable code.
10773 (thread_block): Don't set do_not_duplicate field.
10774
eb50f63a
JM
107752011-03-29 Joseph Myers <joseph@codesourcery.com>
10776
10777 * lto-opts.c (register_user_option_p, lto_register_user_option):
10778 Make type argument unsigned.
10779 * lto-streamer.h (lto_register_user_option): Make type argument
10780 unsigned.
10781 * opth-gen.awk: Make CL_* macros unsigned.
10782 * opts-common.c (find_opt): Make lang_mask argument unsigned.
10783 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
10784 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
10785 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
10786 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
10787 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
10788 (find_opt): Make lang_mask argument unsigned.
10789
76763a6d
VM
107902011-03-29 Vladimir Makarov <vmakarov@redhat.com>
10791
10792 PR rtl-optimization/48331
10793 PR rtl-optimization/48334
10794 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
10795 for any used algorithm.
10796
5c82436e
VM
107972011-03-29 Vladimir Makarov <vmakarov@redhat.com>
10798
10799 * ira-conflicts.c (build_object_conflicts): Add unused attribute
10800 to parent_max.
10801
7a81008b
UB
108022011-03-29 Uros Bizjak <ubizjak@gmail.com>
10803
10804 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
10805 (alpha_option_override): Don't set alpha_sr_alias_set.
10806 (emit_frame_store_1): Use gen_frame_mem rather than calling
10807 set_mem_alias_set.
10808 (alpha_expand_epilogue): Ditto.
10809
86c8d1f6
IR
108102011-03-29 Ira Rosen <ira.rosen@linaro.org>
10811
10812 PR tree-optimization/48290
10813 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
10814 vectorization, check that relevant phis in the basic block after
10815 the inner loop are really inner loop's exit phis.
10816
0d12220f
RS
108172011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
10818
e8cf17e7 10819 PR debug/48190
0d12220f
RS
10820 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
10821 (cached_dw_loc_list_def): New structure.
10822 (cached_dw_loc_list): New typedef.
10823 (cached_dw_loc_list_table): New variable.
10824 (cached_dw_loc_list_table_hash): New function.
10825 (cached_dw_loc_list_table_eq): Likewise.
10826 (add_location_or_const_value_attribute): Take a bool cache_p.
10827 Cache the list when the parameter is true.
10828 (gen_formal_parameter_die): Update caller.
10829 (gen_variable_die): Likewise.
10830 (dwarf2out_finish): Likewise.
10831 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
10832 while generating debug info for the decl.
10833 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
10834 (dwarf2out_init): Initialize cached_dw_loc_list_table.
10835 (resolve_addr): Cache the result of resolving a chain of
10836 location lists.
10837
1756cb66
VM
108382011-03-28 Vladimir Makarov <vmakarov@redhat.com>
10839
10840 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
10841 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 10842
1756cb66
VM
10843 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
10844 after regstat_init_n_sets_and_refs.
10845
10846 * ira.c: Add more comments at the top.
10847 (setup_stack_reg_pressure_class, setup_pressure_classes):
10848 Add comments how we compute the register pressure classes.
10849 (setup_allocno_and_important_classes): Add more comments.
10850 (setup_class_translate_array, reorder_important_classes)
10851 (setup_reg_class_relations): Add comments.
10852
10853 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
10854 start of the file.
10855
10856 * ira-color.c: Add 2011 to the Copyright line.
10857 (assign_hard_reg): Add more comments.
10858 (improve_allocation): Ditto.
10859
10860 * ira-costs.c: Add 2011 to the Copyright line.
10861 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
10862 comments.
10863 (setup_regno_cost_classes_by_mode): Ditto.
10864
10865 Initial patches from ira-improv branch:
10866
10867 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
10868
f60c2554 10869 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
10870 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
10871 (ira_create_allocno): Remove initialization of
10872 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
10873 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
10874 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
10875 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
10876 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
10877 Initialize ALLOCNO_ADD_DATA.
10878 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
10879 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
10880 ALLOCNO_REG.
10881 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
10882 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
10883
10884 * ira.c (ira_reallocate): Remove.
10885 (setup_pressure_classes): Call
10886 ira_init_register_move_cost_if_necessary. Use
10887 ira_register_move_cost instead of ira_get_register_move_cost.
10888 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
10889 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
10890
10891 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
10892 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
10893 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
10894 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
10895 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
10896 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
10897 Fix formatting.
7a81008b 10898 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
10899 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
10900 (struct allocno_color_data): New.
10901 (allocno_color_data_t): New typedef.
10902 (allocno_color_data): New definition.
10903 (ALLOCNO_COLOR_DATA): New macro.
10904 (struct object_color_data): New.
10905 (object_color_data_t): New typedef.
10906 (object_color_data): New definition.
10907 (OBJECT_COLOR_DATA): New macro.
10908 (update_copy_costs, calculate_allocno_spill_cost): Call
10909 ira_init_register_move_cost_if_necessary. Use
10910 ira_register_move_cost instead of ira_get_register_move_cost.
10911 (move_spill_restore, update_curr_costs): Ditto.
10912 (allocno_spill_priority): Make it inline.
7a81008b 10913 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
10914 (struct coalesce_data, coalesce_data_t): New.
10915 (allocno_coalesce_data): New definition.
10916 (ALLOCNO_COALESCE_DATA): New macro.
10917 (merge_allocnos, coalesced_allocno_conflict_p): Use
10918 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
10919 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
10920 (coalesce_allocnos): Ditto.
10921 (setup_coalesced_allocno_costs_and_nums): Ditto.
10922 (collect_spilled_coalesced_allocnos): Ditto.
10923 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
10924 (setup_slot_coalesced_allocno_live_ranges): Ditto.
10925 (coalesce_spill_slots): Ditto.
10926 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
10927 free allocno_coalesce_data.
10928
10929 * ira-conflicts.c: Fix formatting.
10930 (process_regs_for_copy): Call
10931 ira_init_register_move_cost_if_necessary. Use
10932 ira_register_move_cost instead of ira_get_register_move_cost.
10933 (build_object_conflicts): Optimize.
10934
10935 * ira-costs.c (record_reg_classes): Optimize. Call
10936 ira_init_register_move_cost_if_necessary. Use
10937 ira_register_move_cost, ira_may_move_in_cost, and
10938 ira_may_move_out_cost instead of ira_get_register_move_cost and
10939 ira_get_may_move_cost.
10940 (record_address_regs): Ditto.
10941 (scan_one_insn): Optimize.
10942 (find_costs_and_classes): Optimize.
10943 (process_bb_node_for_hard_reg_moves): Call
10944 ira_init_register_move_cost_if_necessary. Use
10945 ira_register_move_cost instead of ira_get_register_move_cost.
10946
10947 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
10948 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
10949 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
10950 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
10951 definitions.
10952 (ira_initiate_emit_data, ira_finish_emit_data)
10953 (create_new_allocno): New functions.
7a81008b 10954 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
10955 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
10956 Use ira_register_move_cost instead of ira_get_register_move_cost.
10957
10958 * ira-int.h: Fix some comments.
7a81008b
UB
10959 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
10960 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
10961 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
10962 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
10963 add_data.
10964 (struct ira_allocno): Make mode and aclass a bitfield. Move other
10965 bitfield after mode. Make hard_regno a short int. Make
10966 hard_regno short. Remove first_coalesced_allocno and
10967 next_coalesced_allocno. Move mem_optimized_dest_p,
10968 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
10969 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
10970 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
10971 temp, colorable_p. Add new member add_data.
10972 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
10973 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
10974 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
10975 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
10976 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
10977 (ALLOCNO_ADD_DATA): New macro.
10978 (ira_emit_data_t): New typedef.
10979 (struct ira_emit_data): New. Move mem_optimized_dest_p,
10980 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
10981 from struct ira_allocno.
10982 (ALLOCNO_EMIT_DATA): New macro.
10983 (ira_allocno_emit_data, allocno_emit_reg): New.
10984 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 10985 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
10986 (OBJECT_ADD_DATA): New macro.
10987 (ira_reallocate): Remove.
10988 (ira_initiate_emit_data, ira_finish_emit_data): New.
10989 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
10990 (ira_init_register_move_cost_if_necessary): New.
10991 (ira_object_conflict_iter_next): Merge into
10992 ira_object_conflict_iter_cond.
7a81008b 10993 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 10994
f60c2554 10995 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
10996 ira_init_register_move_cost_if_necessary. Use
10997 ira_register_move_cost instead of ira_get_register_move_cost.
10998
10999 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
11000
11001 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
11002
11003 * ira-costs.c: Fix formatting.
11004 (cost_classes, cost_classes_num): Remove.
11005 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
11006 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
11007 (cost_classes_del, cost_classes_htab): New.
11008 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
11009 (initiate_regno_cost_classes, setup_cost_classes): New.
11010 (setup_regno_cost_classes_by_aclass): New.
7a81008b 11011 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
11012 (record_reg_classes): Use regno_cost_classes instead of
11013 cost_classes. Move checking opposite operand up.
11014 (record_address_regs): Use regno_cost_classes
11015 instead of cost_classes.
11016 (scan_one_insn): Ditto. Use always general register.
11017 (print_allocno_costs): Use regno_cost_classes instead of
11018 cost_classes.
11019 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
11020 (find_costs_and_classes): Set up cost classes for each registers.
11021 Use also their mode for this. Use regno_cost_classes instead of
11022 cost_classes.
11023 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
11024 cost_classes.
11025 (free_ira_costs, ira_init_costs): Don't use cost_classes.
11026 (ira_costs, ira_set_pseudo_classes): Call
11027 initiate_regno_cost_classes and finish_regno_cost_classes.
11028
11029 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
11030
11031 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
11032
11033 * target.def (ira_cover_classes): Remove.
11034
7a81008b 11035 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
11036
11037 * doc/tm.texi.in: Ditto.
11038
11039 * ira-conflicts.c: Remove mentioning cover classes from the file.
11040 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 11041 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
11042
11043 * targhooks.c (default_ira_cover_classes): Remove.
11044
11045 * targhooks.h (default_ira_cover_classes): Ditto.
11046
11047 * haifa-sched.c: Remove mentioning cover classes from the file.
11048 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
11049 ira_pressure_classes and ira_pressure_classes_num instead of
11050 ira_reg_class_cover_size and ira_reg_class_cover. Use
11051 sched_regno_pressure_class instead of sched_regno_cover_class.
11052 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
11053 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11054
11055 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
11056 classes from the file.
11057 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
11058 (struct object_hard_regs, struct object_hard_regs_node): New.
11059 (struct ira_object): New members profitable_hard_regs,
11060 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
11061 (struct ira_allocno): Rename cover_class to aclass. Rename
11062 cover_class_cost and updated_cover_class_cost to class_cost and
11063 updated_class_cost. Remove splay_removed_p and
11064 left_conflict_size. Add new members colorable_p.
11065 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
11066 (ALLOCNO_COLORABLE_P): New macro.
11067 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
11068 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
11069 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
11070 (OBJECT_...): Rename parameter C to O.
11071 (OBJECT_PROFITABLE_HARD_REGS): New macro.
11072 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
11073 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
11074 (struct target_ira_int): New members x_ira_max_memory_move_cost,
11075 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
11076 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
11077 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
11078 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
11079 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
11080 x_ira_reg_class_subunion.
11081 (ira_max_memory_move_cost, ira_max_register_move_cost)
11082 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
11083 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
11084 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 11085 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
11086 (ira_reg_class_union): Rename to ira_reg_class_subunion.
11087 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
11088 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
11089 (ira_tune_allocno_costs_and_cover_classes): Rename to
11090 ira_tune_allocno_costs.
11091 (ira_debug_hard_regs_forest): New.
11092 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
11093 (ira_object_conflict_iter_next): Fix comments.
7a81008b 11094 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
11095 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
11096 cover_class to aclass.
11097 (ira_allocate_and_accumulate_costs): Ditto.
11098 (ira_allocate_and_set_or_copy_costs): Ditto.
11099
11100 * opts.c (decode_options): Remove ira_cover_class check.
11101
11102 * ira-color.c: Remove mentioning cover classes from the file. Use
11103 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
11104 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
11105 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
11106 (splay-tree.h): Remove include.
11107 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
11108 before copy_freq_compare_func.
11109 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
11110 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
11111 New definitions.
11112 (hard_regs_roots, hard_regs_node_vec): Ditto.
11113 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
11114 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
11115 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
11116 (create_new_object_hard_regs_node): Ditto.
11117 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 11118 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
11119 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
11120 Ditto.
11121 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
11122 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
11123 (remove_unused_object_hard_regs_nodes): Ditto.
11124 (enumerate_object_hard_regs_nodes): Ditto.
11125 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
11126 (object_hard_regs_subnode_t): Ditto.
11127 (struct object_hard_regs_subnode): Ditto.
11128 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
11129 (setup_object_hard_regs_subnode_index): Ditto.
11130 (get_object_hard_regs_subnodes_num): Ditto.
11131 (form_object_hard_regs_nodes_forest): Ditto.
11132 (finish_object_hard_regs_nodes_tree): Ditto.
11133 (finish_object_hard_regs_nodes_forest): Ditto.
11134 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 11135 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
11136 (pseudos_have_intersected_live_ranges_p): Rename to
11137 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
11138 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
11139 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
11140 (update_copy_costs): Remove assert. Skip cost update if the hard
11141 reg does not belong the class.
11142 (assign_hard_reg): Process only profitable hard regs.
11143 (uncolorable_allocnos_num): Make it scalar.
11144 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
11145 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
11146 and ira_reg_class_max_nregs.
11147 (bucket_allocno_compare_func): Check frequency first.
11148 (sort_bucket): Add compare function as a parameter.
11149 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
11150 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
11151 (push_allocno_to_stack): Rewrite for checking new allocno
11152 colorability.
7a81008b 11153 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
11154 (push_only_colorable): Pass new parameter to sort_bucket.
11155 (push_allocno_to_spill): Remove.
11156 (allocno_spill_priority_compare): Make it inline and rewrite.
11157 (splay_tree_allocate, splay_tree_free): Remove.
11158 (allocno_spill_sort_compare): New function.
11159 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
11160 build and use splay tree. Choose first allocno in uncolorable
11161 allocno bucket to spill. Remove setting spill cost.
11162 (all_conflicting_hard_regs): Remove.
11163 (setup_allocno_available_regs_num): Check only profitable hard
11164 regs. Print info about hard regs nodes.
11165 (setup_allocno_left_conflicts_size): Remove.
11166 (put_allocno_into_bucket): Don't call
7a81008b 11167 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
11168 (improve_allocation): New.
11169 (color_allocnos): Call setup_profitable_hard_regs,
11170 form_object_hard_regs_nodes_forest, improve_allocation,
11171 finish_object_hard_regs_nodes_forest. Setup spill cost.
11172 (print_loop_title): Use pressure classes.
11173 (color_allocnso): Ditto.
11174 (do_coloring): Remove allocation and freeing splay_tree_node_pool
11175 and allocnos_for_spilling.
11176 (ira_sort_regnos_for_alter_reg): Don't setup members
11177 {first,next}_coalesced_allocno.
11178 (color): Remove allocating and freeing removed_splay_allocno_vec.
11179 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
11180 prohibited_class_mode_regs.
11181
11182 * ira-lives.c: Remove mentioning cover classes from the file. Fix
11183 formatting.
11184 (update_allocno_pressure_excess_length): Use pressure classes.
11185 (inc_register_pressure, dec_register_pressure): Check for pressure
11186 class.
11187 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
11188 pressure class. Use ira_reg_class_nregs instead of
11189 ira_reg_class_max_nregs.
11190 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
11191 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
11192 (single_reg_class): Use ira_reg_class_nregs instead of
11193 ira_reg_class_max_nregs.
11194 (process_bb_node_lives): Use pressure classes.
11195
11196 * ira-emit.c: Remove mentioning cover classes from the file. Use
11197 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
11198 (change_loop): Use pressure classes.
11199 (modify_move_list): Call ira_set_allocno_class instead of
11200 ira_set_allocno_cover_class.
11201
11202 * ira-build.c: Remove mentioning cover classes from the file. Use
11203 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
11204 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
11205 ALLOCNO_UPDATED_CLASS_COST instead of
11206 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
11207 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
11208 (ira_create_allocno): Remove initialization of
11209 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
11210 ALLOCNO_COLORABLE_P.
11211 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
11212 Update conflict regs for the objects.
11213 (create_cap_allocno): Remove assert. Don't propagate
11214 ALLOCNO_AVAILABLE_REGS_NUM.
11215 (ira_free_allocno_costs): New function.
11216 (finish_allocno): Change a part of code into call of
11217 ira_free_allocno_costs.
11218 (low_pressure_loop_node_p): Use pressure classes.
11219 (object_range_compare_func): Don't compare classes.
11220 (setup_min_max_conflict_allocno_ids): Ditto.
11221
11222 * loop-invariant.c: Remove mentioning cover classes from the file.
11223 Use ira_pressure_classes and ira_pressure_classes_num instead of
11224 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
11225 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
11226 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11227 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
11228 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
11229 STACK_REG_COVER_CLASS.
11230 (get_regno_cover_class): Rename to get_regno_pressure_class.
11231 (move_loop_invariants): Initialize and finalize regstat.
11232
11233 * ira.c: Remove mentioning cover classes from the file. Add
11234 comments about coloring without cover classes. Use ALLOCNO_CLASS
11235 instead of ALLOCNO_COVER_CLASS. Fix formatting.
11236 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
11237 setup_class_subset_and_memory_move_costs.
11238 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
11239 (setup_cover_and_important_classes): Rename to
11240 setup_allocno_and_important_classes.
11241 (setup_class_translate_array): New.
11242 (setup_class_translate): Call it for allocno and pressure classes.
11243 (cover_class_order): Rename to allocno_class_order.
11244 (comp_reg_classes_func): Use ira_allocno_class_translate instead
11245 of ira_class_translate.
11246 (reorder_important_classes): Set up ira_important_class_nums.
11247 (setup_reg_class_relations): Set up ira_reg_class_superunion.
11248 (print_class_cover): Rename to print_classes. Add parameter.
11249 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
11250 Print pressure classes too.
11251 (find_reg_class_closure): Rename to find_reg_classes. Don't call
11252 setup_reg_subclasses.
7a81008b 11253 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
11254 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
11255 (setup_prohibited_class_mode_regs): Use
7a81008b 11256 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
11257 (clarify_prohibited_class_mode_regs): New function.
11258 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
11259 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
11260 (ira_init_once): Initialize them.
11261 (free_register_move_costs): Process them.
11262 (ira_init): Move calls of find_reg_classes and
11263 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
11264 Call clarify_prohibited_class_mode_regs.
11265 (ira_no_alloc_reg): Remove.
11266 (too_high_register_pressure_p): Use pressure classes.
11267
11268 * sched-deps.c: Remove mentioning cover classes from the file.
11269 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
11270 ira_pressure_classes and ira_pressure_classes_num instead of
11271 ira_reg_class_cover_size and ira_reg_class_cover.
11272 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
11273 sched_regno_pressure_class instead of sched_regno_cover_class.
11274 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
11275 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11276
11277 * ira.h: Add 2010 to Copyright.
11278 (ira_no_alloc_reg): Remove external.
11279 (struct target_ira): Rename x_ira_hard_regno_cover_class,
11280 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
11281 x_ira_class_translate to x_ira_hard_regno_allocno_class,
11282 x_ira_allocno_classes_num, x_ira_allocno_classes, and
11283 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
11284 x_ira_pressure_classes, x_ira_pressure_class_translate, and
11285 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
11286 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
11287 x_ira_no_alloc_regs.
7a81008b 11288 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
11289 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
11290 ira_allocno_classes_num and ira_allocno_classes.
11291 (ira_class_translate): Rename to ira_allocno_class_translate.
11292 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
11293 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
11294 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
11295 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
11296 (ira_no_alloc_regs): New.
11297
11298 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
11299 classes from the file. Use ALLOCNO_CLASS instead of
11300 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
11301 ALLOCNO_COVER_CLASS_COST.
11302 (regno_cover_class): Rename to regno_aclass.
11303 (record_reg_classes): Use ira_reg_class_subunion instead of
11304 ira_reg_class_union.
11305 (record_address_regs): Check overflow.
11306 (scan_one_insn): Ditto.
7a81008b 11307 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
11308 (print_pseudo_costs): Use REG_N_REFS.
11309 (find_costs_and_classes): Use classes intersected with them on the
11310 1st pass. Check overflow. Use ira_reg_class_subunion instead of
11311 ira_reg_class_union. Use ira_allocno_class_translate and
11312 regno_aclass instead of ira_class_translate and regno_cover_class.
11313 Modify code for finding regno_aclass. Setup preferred classes for
11314 the next pass.
11315 (setup_allocno_cover_class_and_costs): Rename to
11316 setup_allocno_class_and_costs. Use regno_aclass instead of
11317 regno_cover_class. Use ira_set_allocno_class instead of
11318 ira_set_allocno_cover_class.
11319 (init_costs, finish_costs): Use regno_aclass instead of
11320 regno_cover_class.
11321 (ira_costs): Use setup_allocno_class_and_costs instead of
11322 setup_allocno_cover_class_and_costs.
11323 (ira_tune_allocno_costs_and_cover_classes): Rename to
11324 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
11325 by processing objects. Use ira_reg_class_max_nregs instead of
11326 ira_reg_class_nregs.
11327
11328 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
11329
11330 * sched-int.h: Remove mentioning cover classes from the file.
11331 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
11332
11333 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
11334 classes from the file.
11335 (struct reg_pref): Rename coverclass into allocnoclass.
11336 (reg_cover_class): Rename to reg_allocno_class.
11337
7a81008b 11338 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
11339
11340 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
11341
11342 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
11343
11344 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
11345
11346 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
11347
11348 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
11349
11350 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
11351
11352 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
11353
11354 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
11355
11356 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
11357
11358 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
11359 (i386_ira_cover_classes): Ditto.
11360
11361 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
11362
11363 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
11364
11365 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
11366
11367 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
11368
11369 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
11370
11371 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
11372
11373 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
11374 (mips_ira_cover_classes): Ditto.
11375
11376 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
11377
11378 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
11379
11380 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
11381
11382 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
11383
11384 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
11385
11386 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
11387 (IRA_COVER_CLASSES_VSX): Ditto.
11388
11389 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
11390 (rs6000_ira_cover_classes): Ditto.
11391
11392 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
11393
11394 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
11395
11396 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
11397
11398 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
11399
11400 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
11401
11402 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
11403
11404 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
11405
11406 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
11407
11408 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
11409
11410 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
11411
2b80199f
JJ
114122011-03-29 Jakub Jelinek <jakub@redhat.com>
11413
71dae1fe
JJ
11414 PR debug/48253
11415 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
11416 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
11417 dw_fde_unlikely_section_end_label, cold_in_std_section,
11418 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
11419 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
11420 fields.
11421 (output_fde): Use dw_fde_second_{begin,end} if second is
11422 true, otherwise dw_fde_{begin,end}.
11423 (output_call_frame_info): Test dw_fde_second_begin != NULL
11424 instead of dw_fde_switched_sections.
11425 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
11426 fields, initialize new fields. Initialize in_std_section
11427 unconditionally from the first partition.
11428 (dwarf2out_end_epilogue): Don't override dw_fde_end when
11429 dw_fde_second_begin is non-NULL.
11430 (dwarf2out_switch_text_section): Stop initializing removed
11431 dw_fde_struct fields, initialize new fields, initialize
11432 also dw_fde_end here. Set dw_fde_switch_cfi even when
11433 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
11434 (struct var_loc_list_def): Add last_before_switch field.
11435 (arange_table, arange_table_allocated, arange_table_in_use,
11436 ARANGE_TABLE_INCREMENT, add_arange): Removed.
11437 (size_of_aranges): Count !in_std_section and !second_in_std_section
11438 hunks in fdes, instead of looking at arange_table_in_use.
11439 (output_aranges): Add aranges_length argument, don't call
11440 size_of_aranges here. Instead of using aranges_table*
11441 emit ranges for fdes when !in_std_section resp.
11442 !second_in_std_section.
11443 (dw_loc_list): Break ranges crossing section switch.
11444 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 11445 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
11446 (gen_subprogram_die): Don't call add_arange. Use
11447 dw_fde_{begin,end} for first partition and if switched
11448 section dw_fde_second_{begin,end} for the second.
11449 (var_location_switch_text_section_1,
11450 var_location_switch_text_section): New functions.
11451 (dwarf2out_begin_function): Initialize cold_text_section even
11452 when function_section () isn't text_section.
11453 (prune_unused_types): Don't walk arange_table.
11454 (dwarf2out_finish): Don't needlessly test
11455 flag_reorder_blocks_and_partition when testing cold_text_section_used.
11456 If info_section_emitted, call size_of_aranges and if it indicates
11457 non-empty .debug_aranges, call output_aranges with the computed
11458 size. Stop using removed dw_fde_struct fields, use
11459 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
11460 for second.
11461
2b80199f
JJ
11462 PR debug/48203
11463 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
11464 create ENTRY_VALUE if incoming or address of incoming's MEM
11465 is a hard REG.
11466 * dwarf2out.c (mem_loc_descriptor): Don't emit
11467 DW_OP_GNU_entry_value of DW_OP_fbreg.
11468 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
11469 on ENTRY_VALUE is able to find the canonical parameter VALUE.
11470 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
11471 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
11472 ENTRY_VALUE_EXPs.
11473 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
11474 is a REG_P or MEM_P with REG_P address, compute hash directly
11475 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
11476 (preserve_only_constants): Don't clear VALUES forwaring
11477 ENTRY_VALUE to some other VALUE.
11478
8a445129
RS
114792011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
11480
11481 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
11482 instead of GEN_INT.
11483
c82fee88
EB
114842011-03-28 Eric Botcazou <ebotcazou@adacore.com>
11485
11486 * cfgexpand.c (expand_gimple_cond): Always set the source location and
11487 block before expanding the statement.
11488 (expand_gimple_stmt_1): Likewise. Set them here...
11489 (expand_gimple_stmt): ...and not here. Tidy.
11490 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
11491 unknown.
11492
e45425ec
SB
114932011-03-28 Steven Bosscher <steven@gcc.gnu.org>
11494
11495 * Makefile.in: New rule for cprop.o.
11496 * gcse.c: Move constant/copy propagation to cprop.c.
11497 (compute_local_properties): Only handle expression tables.
11498 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
11499 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
11500 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
11501 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 11502 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
11503 compute_cprop_data, find_used_regs, try_replace_reg,
11504 find_avail_set, cprop_jump, constprop_register, cprop_insn,
11505 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
11506 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
11507 find_bypass_set, reg_killed_on_edge, bypass_block,
11508 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
11509 execute_rtl_cprop, pass_rtl_cprop): Move to...
11510 * cprop.c: ...here. New file, constant/copy propagation for RTL
11511 moved from gcse.c to here with minor cleanups in duplicated code.
11512
c09d5426
L
115132011-03-28 H.J. Lu <hongjiu.lu@intel.com>
11514
11515 * config/i386/i386.c (flag_opts): Fix a typo in
11516 -mavx256-split-unaligned-store.
11517
9eaa7740
AS
115182011-03-28 Anatoly Sokolov <aesok@post.ru>
11519
11520 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
11521 LIBCALL_VALUE): Remove macros.
11522 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11523 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11524 (h8300_function_value, h8300_libcall_value,
11525 h8300_function_value_regno_p): New functions.
11526
dcec2be2
AS
115272011-03-28 Anatoly Sokolov <aesok@post.ru>
11528
11529 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
11530
520af9ec
JL
115312011-03-28 Jeff Law <law@redhat.com>
11532
11533 * tree-ssa-threadupdate.c (redirect_edges): Call
11534 create_edge_and_update_destination_phis as needed.
11535 (create_edge_and_update_destination_phis): Accept new BB argument.
11536 All callers updated.
11537 (thread_block): Do not update the profile when threading around
11538 intermediate blocks.
11539 (thread_single_edge): Likewise.
11540 (determine_bb_domination_status): If BB is not a successor of the
11541 loop header, return NONDOMINATING.
11542 (register_jump_thread): Note when we register a jump thread around
11543 an intermediate block.
11544 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
11545 (thread_across_edge): Use it.
11546
7450b54f
TG
115472011-03-28 Tristan Gingold <gingold@adacore.com>
11548
11549 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
11550 when for_return is 2.
11551
649beb33
JL
115522011-03-28 Jeff Law <law@redhat.com>
11553
11554 * var-tracking.c (canonicalize_values_mark): Delete unused
11555 lhs assignment.
11556 (canonicalize_values_star, set_variable_part): Likewise.
11557 (clobber_variable_part, delete_variable_part): Likewise.
11558
d5b8da97
SB
115592011-03-28 Steven Bosscher <steven@gcc.gnu.org>
11560
11561 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
11562
322dd859
MJ
115632011-03-28 Martin Jambor <mjambor@suse.cz>
11564
11565 * tree-inline.c (expand_call_inline): Do not check that destination
11566 node is analyzed.
11567 (optimize_inline_calls): Assert that destination node is analyzed.
11568 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
11569 not call tree_lowering_passes.
11570 * cgraph.h (cgraph_analyze_function): Declare.
11571 * cgraphunit.c (cgraph_analyze_function): Make public.
11572
aa53e58b
JM
115732011-03-28 Joseph Myers <joseph@codesourcery.com>
11574
11575 * config/sparc/sparc-opts.h: New.
11576 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
11577 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
11578 (sparc_option_override): Store processor_type enumeration rather
11579 than string in cpu_default. Remove name and enumeration from
11580 cpu_table. Directly default -mcpu then default -mtune from -mcpu
11581 without using sparc_select. Use target_flags_explicit instead of
11582 fpu_option_set.
11583 * config/sparc/sparc.h (enum processor_type): Move to
11584 sparc-opts.h.
11585 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
11586 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
11587 HeaderInclude entry.
11588 (mcpu=, mtune=): Use Var and Enum.
11589 (sparc_processor_type): New Enum and EnumValue entries.
11590
dd350eba
RO
115912011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11592 Iain Sandoe <iains@gcc.gnu.org>
11593
11594 PR target/48245
11595 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
11596
1b29f05e
EB
115972011-03-28 Eric Botcazou <ebotcazou@adacore.com>
11598
11599 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
11600 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
11601 Insert new statements at it in lieu of STMT.
11602 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
11603 * tree-vect-stmts.c (vectorizable_store): Likewise.
11604 (vectorizable_load): Likewise.
11605
506e6808
UB
116062011-03-28 Uros Bizjak <ubizjak@gmail.com>
11607
11608 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
11609 (divtf3): Ditto.
11610 (multf3): Ditto.
11611 (subtf3): Ditto.
11612
2e939ee9
L
116132011-03-27 H.J. Lu <hongjiu.lu@intel.com>
11614
11615 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
11616 unaligned 256bit load/store.
11617 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
11618 (*avx_movdqu<avxmodesuffix>): Likewise.
11619
5e85ab88
JDA
116202011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11621
11622 PR target/48288
11623 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
11624 * config/pa/pa.md (iordi3): Use new predicate in expander.
11625 (iorsi3): Likewise.
11626
47be3d6d
AS
116272011-03-27 Anatoly Sokolov <aesok@post.ru>
11628
506e6808 11629 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 11630 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
11631 * config/mips/mips-protos.h (mips_function_value): Remove.
11632 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
11633 (mips_function_value_1): ... this. Make static. Handle receiving
11634 the function type in 'fn_decl_or_type' argument.
11635 (mips_function_value, mips_libcall_value,
11636 mips_function_value_regno_p): New function.
11637 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11638 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11639
d253656a
L
116402011-03-27 H.J. Lu <hongjiu.lu@intel.com>
11641
11642 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
11643 and -mavx256-split-unaligned-store.
11644 (ix86_option_override_internal): Split 32-byte AVX unaligned
11645 load/store by default.
11646 (ix86_avx256_split_vector_move_misalign): New.
11647 (ix86_expand_vector_move_misalign): Use it.
11648
11649 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
11650 -mavx256-split-unaligned-store.
11651
11652 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
11653 256bit load/store. Generate unaligned store on misaligned memory
11654 operand.
11655 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
11656 256bit load/store.
11657 (*avx_movdqu<avxmodesuffix>): Likewise.
11658
11659 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
11660 -mavx256-split-unaligned-store.
11661
1ea9206a
RS
116622011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
11663
11664 PR target/38598
11665 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
11666 Update commentary.
11667
b99ce2a8
RS
116682011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
11669
11670 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
11671 opno arguments with an expand_operand. Use create_input_operand.
11672 (mips_prepare_builtin_target): Delete.
11673 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
11674 functions.
11675 (mips_expand_builtin_direct): Use create_output_operand and
11676 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
11677 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
11678 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
11679
69d52339
IR
116802011-03-27 Ira Rosen <ira.rosen@linaro.org>
11681
11682 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
11683 function.
11684 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
11685
ba5e9aca
EB
116862011-03-26 Eric Botcazou <ebotcazou@adacore.com>
11687
11688 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
11689 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
11690 basic blocks and call commit_edge_insertions directly.
11691 (fixup_abnormal_edges): Move from here to...
11692 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
11693 on the edges and return whether some have actually been inserted.
11694 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
11695 compensation code.
11696
5d369d58
AB
116972011-03-26 Andrey Belevantsev <abel@ispras.ru>
11698
11699 PR rtl-optimization/48144
11700 * sel-sched-ir.c (merge_history_vect): Factor out from ...
11701 (merge_expr_data): ... here.
11702 (av_set_intersect): Rename to av_set_code_motion_filter.
11703 Update all callers. Call merge_history_vect when an expression
11704 is found in both sets.
11705 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
11706
f082c000
AM
117072011-03-26 Alan Modra <amodra@gmail.com>
11708
11709 * config/rs6000/predicates.md (word_offset_memref_op): Handle
11710 cmodel medium addresses.
11711 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
11712 64-bit gpr loads and stores.
11713 (rs6000_secondary_reload_ppc64): New function.
11714 * config/rs6000/rs6000-protos.h: Declare it.
11715 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
11716
8ac5e12e
AM
117172011-03-26 Alan Modra <amodra@gmail.com>
11718
11719 PR target/47487
11720 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
11721 GNU Go in traceback table.
11722
c2654ded
RH
117232011-03-25 Richard Henderson <rth@redhat.com>
11724
11725 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
11726 if there are exactly 6 operands.
11727 (set_storage_via_setmem): Similarly.
11728
ba78087b
KT
117292011-03-25 Kai Tietz <ktietz@redhat.com>
11730
11731 * collect2.c (write_c_file_stat): Handle backslash
11732 as right-hand directory separator.
11733 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
11734 checking just for slash.
11735 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
11736 instead of checking for trailing slash.
11737 * gcc.c (record_temp_file): Use filename_cmp instead
11738 of strcmp.
11739 (do_spec_1): Likewise.
11740 (replace_outfile_spec_function): Likewise.
11741 (is_directory): Use filename_ncmp instead of strncmp.
11742 (print_multilib_info): Likewise.
11743 * gcov.c (find_source): Use filename_cmp instead
11744 instead of strcmp.
11745 (make_gcov_file_name): Fix order of slash/backslash
11746 checks.
11747 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
11748 (add_standard_paths): Likewise.
11749 * mips-tfile.c (saber_stop): Handle backslash.
11750 * prefix.c (update_path): Use filename_ncmp instead of
11751 strncmp.
11752 * profile.c (output_location): Use filename_cmp instead
11753 of strcmp.
11754 * read-md.c (handle_toplevel_file): Handle backslash.
11755 * tlink.c (frob_extension): Likewise.
11756 * tree-cfg.c (same_line_p): Use filename_cmp instead of
11757 strcmp.
11758 * tree-dump.c (dequeue_and_dump): Handle backslash.
11759 * tree.c (get_file_function_name): Likewise.
11760 * gengtype.c (read_input_list): Likewise.
11761 (get_file_realbasename): Likewise.
11762 (get_output_file_with_visibility): Use filename_cmp
11763 instead of strcmp.
11764
75f6ec9a
RS
117652011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
11766
11767 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
11768 case to VFPv1.
11769
6c4e2997
NF
117702011-03-25 Nathan Froyd <froydnj@codesourcery.com>
11771
11772 * fold-const.c (expr_location_or): New function.
11773 (fold_truth_not_expr): Call it.
11774
0edf1bb2
JL
117752011-03-25 Jeff Law <law@redhat.com>
11776
11777 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
11778 va_end.
11779 * c-family/c-common.c (def_fn_type): Likewise.
11780 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
11781 * emit-rtl.c (gen_rtvec): Likewise.
11782 * lto/lto-lang.c (def_fn_type): Likewise.
11783
fdc2de95
RG
117842011-03-25 Richard Guenther <rguenther@suse.de>
11785
11786 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
11787 also generate copies.
11788 (fini_copy_prop): Handle constant values properly.
11789
21385db0
JJ
117902011-03-25 Jakub Jelinek <jakub@redhat.com>
11791
11792 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
11793 mode size instead of bitsize with DWARF2_ADDR_SIZE.
11794 (hash_loc_operands, compare_loc_operands): Handle
11795 DW_OP_GNU_entry_value.
11796
6510e8bb
KT
117972011-03-25 Kai Tietz <ktietz@redhat.com>
11798
11799 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
11800 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
11801 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
11802 comment and use macro TARGET_64BIT_MS_ABI instead.
11803 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
11804 and change default behavior for 32-bit MS_ABI.
11805 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
11806 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
11807 32-bit, too.
11808 (ix86_cfun_abi): Likewise.
11809 (ix86_maybe_switch_abi): Adjust comment.
11810 (init_cumulative_args): Check for bit-ness in MS_ABI case.
11811 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
11812 instead of checking for SYSV_ABI.
11813 (ix86_nsaved_sseregs): Likewise.
11814 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
11815 to 16 bytes.
11816 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
11817 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
11818 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
11819 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
11820 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
11821
34019e28
RG
118222011-03-25 Richard Guenther <rguenther@suse.de>
11823
11824 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
11825 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
11826 (verify_gimple): Remove.
11827 * tree-cfg.c (verify_gimple_call): Merge verification
11828 from verify_stmts.
11829 (verify_gimple_phi): Merge verification from verify_stmts.
11830 (verify_gimple_label): New function.
11831 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
11832 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
11833 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
11834 (verify_stmts): Rename to verify_gimple_in_cfg.
11835 (verify_gimple_in_cfg): New function.
11836 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
11837 * tree-ssa.c (verify_ssa): Likewise.
11838 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
11839
605896f5
RG
118402011-03-25 Richard Guenther <rguenther@suse.de>
11841
11842 * passes.c (init_optimization_passes): Add FRE pass after
11843 early SRA.
11844
7baa7c13
BS
118452011-03-25 Bernd Schmidt <bernds@codesourcery.com>
11846 Andrew Stubbs <ams@codesourcery.com>
11847
11848 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
11849 for Cortex-A8.
11850 (arm_movdi_vfp_cortexa8): New pattern.
11851 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
11852 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
11853 instructions when tuning for Cortex-A8. Set attribute "arch".
11854 * config/arm/arm.md: Move include arm-tune.md up a bit.
11855 (define_attr "arch"): Add "onlya8" and "nota8" values.
11856 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
11857
45dbce1b
NF
118582011-03-25 Nathan Froyd <froydnj@codesourcery.com>
11859
4ff08abf 11860 PR bootstrap/48282
45dbce1b
NF
11861 Revert:
11862 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
11863
11864 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
11865 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
11866 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
11867 * passes.c (init_optimization_passes): Move
11868 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
11869
ac9a30ae
KT
118702011-03-25 Kai Tietz <ktietz@redhat.com>
11871
11872 * c-typeck.c (comptypes_internal): Replace target
11873 hook call of comp_type_attributes by version in tree.c file.
11874 * gimple.c (gimple_types_compatible_p_1): Likewise.
11875 * tree-ssa.c (useless_type_conversion_p): Likewise.
11876 * tree.c (build_type_attribute_qual_variant): Likewise.
11877 (attribute_value_equal): New static helper function.
11878 (comp_type_attributes): New function.
11879 (merge_attributes): Use attribute_value_equal for comparison.
11880 (attribute_list_contained): Likewise.
11881 * tree.h (comp_type_attributes): New prototype.
11882
afdac116
RG
118832011-03-25 Richard Guenther <rguenther@suse.de>
11884
11885 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
11886 of complex types at -O0.
11887 (verify_gimple_assign_binary): Likewise.
11888 (verify_gimple_assign_ternary): Likewise.
11889
ec6165f8
MW
118902011-03-24 Mark Wielaard <mjw@redhat.com>
11891
11892 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
11893 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
11894
2a5ac39a
MW
118952011-03-24 Mark Wielaard <mjw@redhat.com>
11896
11897 PR debug/48041
11898 * dwarf2out.c (output_abbrev_section): Only write table when
11899 abbrev_die_table_in_use > 1.
11900
e533b2a4
RH
119012011-02-24 Richard Henderson <rth@redhat.com>
11902
11903 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
11904 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
11905 (alpha_expand_unaligned_load_words): Use extql.
11906 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
11907 (emit_insxl): Handle all modes for consistency.
11908
0b2a7367
RH
119092011-02-24 Richard Henderson <rth@redhat.com>
11910
11911 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
11912 (alpha_expand_unaligned_load): Likewise.
11913 (alpha_expand_unaligned_store): Likewise.
11914 (alpha_expand_unaligned_load_words): Likewise.
11915 (alpha_expand_unaligned_store_words): Likewise.
11916 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
11917 (alpha_split_lock_test_and_set_12): Likewise.
11918 (print_operand, alpha_fold_builtin_extxx): Likewise.
11919 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
11920 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
11921 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
11922 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
11923 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
11924 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
11925 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
11926 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
11927 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
11928 (extwl, extll, extql): Similarly.
11929 (inswh, inslh, insqh): Similarly.
11930 (mskbl, mskwl, mskll, mskql): Similarly.
11931 (mskwh, msklh, mskqh): Similarly.
11932
315b2bef
RH
119332011-02-24 Richard Henderson <rth@redhat.com>
11934
11935 * config/alpha/alpha.md (attribute isa): Add er, ner.
11936 (attribute enabled): Handle them.
11937 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
11938
67102517
RH
119392011-02-24 Richard Henderson <rth@redhat.com>
11940
11941 * config/alpha/alpha.md (attribute isa): Add vms.
11942 (attribute enabled): Handle it.
11943 (*movsf): Merge *movsf_{nofix,fix,nofp}.
11944 (*movdf): Merge *movdf_{nofix,fix,nofp}.
11945 (*movtf): Rename from *movtf_internal for consistency.
11946 (*movsi): Merge with *movsi_nt_vms.
11947 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
11948 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
11949 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
11950 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
11951
6aba5cb4
RH
119522011-02-24 Richard Henderson <rth@redhat.com>
11953
11954 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
11955 (extendqisi2, extendhisi2): Likewise.
11956 (extendqidi2): Simplify BWX/non-BWX expansions.
11957 (extendhidi2): Similarly.
11958
bdfb351b
RH
119592011-02-24 Richard Henderson <rth@redhat.com>
11960
11961 * config/alpha/alpha.md (attribute isa): New.
11962 (attribute enabled): New.
11963 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
11964 (zero_extendqisi2, zero_extendqidi2): Similarly.
11965 (zero_extendhisi2, zero_extendhidi2): Similarly.
11966 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
11967
6abe71eb
RH
119682011-02-24 Richard Henderson <rth@redhat.com>
11969
11970 * config/alpha/predicates.md (input_operand): Revert last change;
11971 update comment to mention 32-bit VMS rather than Windows.
11972
7114321e
NF
119732011-03-24 Nathan Froyd <froydnj@codesourcery.com>
11974
11975 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
11976 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
11977 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
11978 * passes.c (init_optimization_passes): Move
11979 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
11980
c8679567
EB
119812011-03-24 Eric Botcazou <ebotcazou@adacore.com>
11982
11983 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
11984
27173058
UB
119852011-03-24 Uros Bizjak <ubizjak@gmail.com>
11986
11987 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
11988 correctly.
11989
6f0c9f06
JJ
119902011-03-24 Jakub Jelinek <jakub@redhat.com>
11991
11992 PR debug/48204
11993 * simplify-rtx.c (simplify_const_unary_operation): Call
11994 real_convert when changing mode class with FLOAT_EXTEND.
11995
662666e5
NC
119962011-03-24 Nick Clifton <nickc@redhat.com>
11997
11998 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
11999 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
12000 * config/rx/rx.c (rx_option_override): Set align_jumps,
12001 align_loops and align_labels if not set by the user.
12002 (rx_align_for_label): New function.
12003 (rx_max_skip_for_label): New function.
12004 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
12005 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
12006 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
12007 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
12008 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
12009
2b99b2b8
RS
120102011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
12011
12012 PR rtl-optimization/48263
12013 * optabs.c (expand_binop_directly): Reinstate convert_modes code
12014 and original commutative_p handling. Use maybe_gen_insn.
12015
ccecd6ea
AK
120162011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12017
12018 * reload.c (find_reloads_subreg_address): Add address_reloaded
12019 parameter and return true there if the full address has been
12020 reloaded.
12021 (find_reloads_toplev): Pass address_reloaded flag.
12022 (find_reloads_address_1): Don't use address_reloaded parameter.
12023
67295642
JL
120242011-03-24 Jeff Law <law@redhat.com>
12025
12026 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
12027 unused variable "ann".
12028 (remove_unused_locals): Likewise.
12029
12030 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
12031 statement.
12032
12033 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
12034 after it is freed.
12035
212aa74f
AK
120362011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12037
12038 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
12039 for invalid symbolic addresses.
12040 (s390_secondary_reload): Don't use s390_check_symref_alignment for
12041 larl operands.
12042
fe784e0d
EB
120432011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12044
12045 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
12046 the argument in calls to fold_truth_not_expr.
12047
63ee8641
NF
120482011-03-24 Nathan Froyd <froydnj@codesourcery.com>
12049
12050 * tree.c (record_node_allocation_statistics): New function.
12051 (make_node_stat, copy_node_stat, build_string): Call it.
12052 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
12053 (build1_stat, build_omp_clause): Likewise.
12054
61be2a1c
RS
120552011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
12056
12057 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
12058 last commit.
12059
a881aaa7
RG
120602011-03-24 Richard Guenther <rguenther@suse.de>
12061
12062 PR tree-optimization/48271
12063 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
12064 blocks that still exist.
12065
dbaa912c
RG
120662011-03-24 Richard Guenther <rguenther@suse.de>
12067
12068 PR tree-optimization/48270
12069 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
12070 not free datarefs before ddrs.
12071
1d60cc55
EB
120722011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12073
12074 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
12075 from the address built for a reference with variable offset.
12076
c78dd519
UB
120772011-03-24 Uros Bizjak <ubizjak@gmail.com>
12078
12079 PR target/48237
12080 * config/i386/i386.md (*movdf_internal_rex64): Do not split
12081 alternatives that can be handled with movq or movabsq insn.
12082 (*movdf_internal): Disable for !TARGET_64BIT.
12083 (*movdf_internal_nointeger): Ditto.
12084 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
12085
b25b9e8f
NF
120862011-03-24 Nathan Froyd <froydnj@codesourcery.com>
12087
12088 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
12089 (FUNCTION_ARG_ADVANCE): Likewise.
12090 * tm.texi.in: Change references to them to hook references.
12091 * tm.texi: Regenerate.
c78dd519 12092 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
12093 (default_function_incoming_arg): Likewise.
12094 (default_function_arg_advance): Likewise.
c78dd519 12095 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
12096 (function_arg_advance): Likewise.
12097 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
12098
190b2187
RG
120992011-03-24 Richard Guenther <rguenther@suse.de>
12100
12101 PR middle-end/48269
12102 * tree-object-size.c (addr_object_size): Do not double-account
12103 for MEM_REF offsets.
12104
a183b5c7
DN
121052011-03-24 Diego Novillo <dnovillo@google.com>
12106
12107 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 12108 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
12109 (lto_input_data_block): Move from lto-opts.c. Make extern.
12110 Update all users.
12111 (lto_input_string): Rename from input_string. Make extern.
12112 Update all users.
12113 * lto-streamer-out.c (lto_output_string_with_length): Rename from
12114 output_string_with_length.
12115 Output 0 to indicate a non-NULL string. Update all callers to
12116 not emit 0.
12117 (lto_output_string): Rename from output_string. Make extern.
12118 Update all users.
12119 (lto_output_decl_state_streams): Make extern.
12120 (lto_output_decl_state_refs): Make extern.
12121 * lto-streamer.h (lto_input_string): Declare.
12122 (lto_input_data_block): Declare.
12123 (lto_output_string): Declare.
12124 (lto_output_string_with_length): Declare.
12125 (lto_output_decl_state_streams): Declare.
12126 (lto_output_decl_state_refs): Declare.
12127
cfef45c8
RG
121282011-03-24 Richard Guenther <rguenther@suse.de>
12129
12130 PR tree-optimization/46562
12131 * tree.c (build_invariant_address): New function.
12132 * tree.h (build_invariant_address): Declare.
12133 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
12134 a renamed function moved ...
12135 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
12136 Take valueization callback parameter.
12137 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
12138 * gimple-fold.h: New file.
12139 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
12140 (ccp_fold, fold_const_aggregate_ref,
12141 fold_ctor_reference, fold_nonarray_ctor_reference,
12142 fold_array_ctor_reference, fold_string_cst_ctor_reference,
12143 get_base_constructor): Move ...
12144 * gimple-fold.c: ... here.
12145 (gimple_fold_stmt_to_constant_1): New function
12146 split out from ccp_fold. Take a valueization callback parameter.
12147 Valueize all operands.
12148 (gimple_fold_stmt_to_constant): New wrapper function.
12149 (fold_const_aggregate_ref_1): New function split out from
12150 fold_const_aggregate_ref. Take a valueization callback parameter.
12151 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
12152 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
12153 invariant POINTER_PLUS_EXPRs to invariant form.
12154 (vn_valueize): New function.
12155 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
12156 * tree-vrp.c (vrp_valueize): New function.
12157 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
12158 to fold statements to constants.
12159 * tree-ssa-pre.c (eliminate): Properly guard propagation of
12160 function declarations.
12161 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
12162 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
12163
5e0a7e40
RS
121642011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
12165
12166 * config/h8300/predicates.md (jump_address_operand): Fix register
12167 mode check.
12168
bfe068c3
IR
121692011-03-24 Ira Rosen <ira.rosen@linaro.org>
12170
12171 * doc/invoke.texi (max-stores-to-sink): Document.
12172 * params.h (MAX_STORES_TO_SINK): Define.
12173 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
12174 if either vectorization or if-conversion is disabled.
12175 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
12176 tree-vect-data-refs.c vect_equal_offsets.
12177 (dr_equal_offsets_p): New function.
12178 (find_data_references_in_bb): Remove static.
12179 * tree-data-ref.h (find_data_references_in_bb): Declare.
12180 (dr_equal_offsets_p): Likewise.
12181 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
12182 (vect_drs_dependent_in_basic_block): Update calls to
12183 vect_equal_offsets.
12184 (vect_check_interleaving): Likewise.
12185 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
12186 (cond_if_else_store_replacement): Rename to...
12187 (cond_if_else_store_replacement_1): ... this. Change arguments and
12188 documentation.
12189 (cond_if_else_store_replacement): New function.
12190 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
12191 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
12192
4908b0bf
CLT
121932011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
12194
12195 PR target/46934
12196 * config/arm/arm.md (casesi): Use the gen_int_mode() function
12197 to subtract lower bound instead of GEN_INT().
12198
2be478a2
JW
121992011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
12200
12201 PR other/48179
12202 PR other/48221
12203 PR other/48234
12204 * doc/extend.texi (Alignment): Move section to match order in TOC.
12205 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
12206 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
12207
0c617be4
JL
122082011-03-23 Jeff Law <law@redhat.com>
12209
12210 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
12211 before removing the edge.
12212
12213 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
12214 it may have been freed by redirect_branch_edge or
12215 redirect_edge_succ_nodup.
12216
58da96fe
RG
122172011-03-23 Richard Guenther <rguenther@suse.de>
12218
c78dd519 12219 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
12220 (check_va_list_escapes): Likewise.
12221 (check_all_va_list_escapes): Likewise.
12222
b8beb4d1
RG
122232011-03-23 Richard Guenther <rguenther@suse.de>
12224
12225 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
12226 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
12227 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
12228 (alias.o): Likewise.
12229 (ipa-type-escape.o): Remove.
12230 (ipa-struct-reorg.o): Likewise.
12231 (GTFILES): Remove ipa-struct-reorg.c.
12232 * alias.c: Do not include ipa-type-escape.h.
12233 * tree-ssa-alias.c: Likewise.
12234 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
12235 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
12236 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
12237 and ipa-type-escape passes.
12238 * tree-pass.h (pass_ipa_type_escape): Remove.
12239 (pass_ipa_struct_reorg): Likewise.
12240 * ipa-struct-reorg.h: Remove.
12241 * ipa-struct-reorg.c: Likewise.
12242 * ipa-type-escape.h: Likewise.
12243 * ipa-type-escape.c: Likewise.
12244 * doc/invoke.texi (-fipa-struct-reorg): Remove.
12245 (--param struct-reorg-cold-struct-ratio): Likewise.
12246 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
12247 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
12248 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
12249
f137aa63
AK
122502011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12251
12252 * config/s390/2084.md: Enable all insn reservations also for z9_ec
12253 cpu attribute value.
12254 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
12255 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
12256 * config/s390/s390.c (processor_flags_table): New constant array.
12257 (s390_handle_arch_option): Remove.
12258 (s390_handle_option): Remove s390_handle_arch_option invocations
12259 and OPT_mwarn_framesize_ handling.
12260 (s390_option_override): Remove s390_handle_arch_option invocation.
12261 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
12262 warnings.
12263 * config/s390/s390.md (cpu attribute): Add z9_ec value.
12264 * config/s390/s390.opt (s390_tune, s390_arch)
12265 (march=): Replace s390_arch_option enum and values with
12266 processor_type. Set variable name to s390_arch. Set
12267 initialization value.
12268 (mtune=): Replace s390_arch_option with processor_type. Set
12269 variable name to s390_tune. Set initialization value.
12270
bf90208f
JB
122712011-03-23 Julian Brown <julian@codesourcery.com>
12272
12273 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
12274 accesses which are not naturally aligned.
12275
3460fdf3
RS
122762011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
12277
12278 PR target/47553
12279 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
12280
a5c7d693
RS
122812011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
12282
12283 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
12284 parameter from "int" to "enum insn_code".
12285 (expand_operand_type): New enum.
12286 (expand_operand): New structure.
12287 (create_expand_operand): New function.
12288 (create_fixed_operand, create_output_operand): Likewise
12289 (create_input_operand, create_convert_operand_to): Likewise.
12290 (create_convert_operand_from, create_address_operand): Likewise.
12291 (create_integer_operand): Likewise.
12292 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
12293 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
12294 (expand_insn, expand_jump_insn): Likewise.
12295 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
12296 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
12297 (expand_movstr, expand_builtin___clear_cache): Likewise.
12298 (expand_builtin_lock_release): Likewise.
12299 * explow.c (allocate_dynamic_stack_space): Likewise.
12300 (probe_stack_range): Likewise. Allow check_stack to FAIL,
12301 and use the default handling in that case.
12302 * expmed.c (check_predicate_volatile_ok): Delete.
12303 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
12304 (emit_cstore): Likewise.
12305 * expr.c (emit_block_move_via_movmem): Likewise.
12306 (set_storage_via_setmem, expand_assignment): Likewise.
12307 (emit_storent_insn, try_casesi): Likewise.
12308 (emit_single_push_insn): Likewise. Allow the expansion to fail.
12309 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
12310 (expand_vec_shift_expr, expand_binop_directly): Likewise.
12311 (expand_twoval_unop, expand_twoval_binop): Likewise.
12312 (expand_unop_direct, emit_indirect_jump): Likewise.
12313 (emit_conditional_move, vector_compare_rtx): Likewise.
12314 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
12315 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
12316 (expand_sync_lock_test_and_set): Likewise.
12317 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
12318 (emit_unop_insn): Likewise.
12319 (expand_copysign_absneg): Change icode to an insn_code.
12320 (create_convert_operand_from_type): New function.
12321 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
12322 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
12323 (expand_insn, expand_jump_insn): Likewise.
12324 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
12325 than const_int_operand for operand 2.
12326
78fadbab
AK
123272011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12328
12329 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
12330 if possible.
12331
5f02387d
NF
123322011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12333
12334 * emit-rtl.c (emit_pattern_before_noloc): New function.
12335 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
12336 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
12337 (emit_pattern_after_noloc): New function.
12338 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
12339 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
12340
fdf3e18a
NF
123412011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12342
12343 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
12344 (__ffsDI2): Likewise.
12345
42d085c1
RH
123462011-03-22 Richard Henderson <rth@redhat.com>
12347
12348 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
12349 of !TARGET_ABI_OPEN_VMS.
12350 (alpha_trampoline_init, alpha_start_function): Likewise.
12351 (alpha_expand_epilogue, alpha_file_start): Likewise.
12352 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
12353 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
12354 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
12355 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
12356 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
12357
cabbe12a
JM
123582011-03-22 Joseph Myers <joseph@codesourcery.com>
12359
12360 * config/s390/s390-opts.h: New.
12361 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
12362 s390_arch_flags, s390_warn_framesize, s390_stack_size,
12363 s390_stack_guard): Remove.
12364 (s390_handle_arch_option): Return void. Take enum
12365 s390_arch_option value instead of string and searching array.
12366 (s390_handle_option): Don't assert that global structures are in
12367 use. Access variables via opts pointer. Use error_at. Don't use
12368 sscanf for -mstack-guard= or -mstack-size=. Update call to
12369 s390_handle_arch_option.
12370 (s390_option_override): Update call to s390_handle_arch_option.
12371 (s390_emit_prologue): Use %d format for s390_stack_size in
12372 diagnostic. Use %wd for HOST_WIDE_INT.
12373 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
12374 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
12375 * config/s390/s390.opt (config/s390/s390-opts.h): New
12376 HeaderInclude entry.
12377 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
12378 s390_arch_flags, s390_warn_framesize): New Variable entries.
12379 (s390_arch_option): New Enum and EnumValue entries.
12380 (march=): Use Enum instead of Var.
12381 (mstack-guard=, mstack-size=): Use UInteger and Var.
12382 (mtune=): Use Enum.
12383
05b12036
JM
123842011-03-22 Joseph Myers <joseph@codesourcery.com>
12385
12386 * config/score/score.c (score_handle_option): Don't assert that
12387 global structures are in use. Access target_flags via opts
12388 pointer. Use value of -march= option to determine target_flags
12389 settings.
12390 * config/score/score.opt (march=): Use Enum.
12391 (score_arch): New Enum and EnumValue entries.
12392
dd51e35a
JM
123932011-03-22 Joseph Myers <joseph@codesourcery.com>
12394
12395 * config/mep/mep.c (option_mtiny_specified): Remove.
12396 (mep_option_override): Move register handling for -mivc2 from
12397 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
12398 instead of option_mtiny_specified.
12399 (mep_handle_option): Access target_flags via opts pointer. Don't
12400 assert that global structures are in use. Defer part of -mivc2
12401 handling and move it to mep_option_override.
12402 * config/mep/mep.opt (IVC2): New Mask entry.
12403 (mivc2): Use Var and Defer instead of Mask.
12404
4a8d3d91
JM
124052011-03-22 Joseph Myers <joseph@codesourcery.com>
12406
12407 * config/v850/v850-opts.h: New.
12408 * config/v850/v850.c (small_memory): Replace with
12409 small_memory_physical_max array. Make that array static const.
12410 (v850_handle_memory_option): Take integer value of argument. Take
12411 gcc_options pointer, option text and location. Return void.
12412 Update for changes to small memory structures.
12413 (v850_handle_option): Access target_flags via opts pointer. Don't
12414 assert that global structures are in use. Update calls to
12415 v850_handle_memory_option.
c78dd519
UB
12416 (v850_encode_data_area): Update references to small memory settings.
12417 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
12418 (enum small_memory_type): Move to v850-opts.h.
12419 * config/v850/v850.opt (config/v850/v850-opts.h): New
12420 HeaderInclude entry.
12421 (small_memory_max): New Variable entry.
12422 (msda): Replace by pair of options msda= and msda-. Use UInteger.
12423 (mtda, mzda): Likewise.
12424
117fdbfa
JM
124252011-03-22 Joseph Myers <joseph@codesourcery.com>
12426
12427 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
12428 pointer. Don't assert that global structures are in use.
12429
d715091c
JM
124302011-03-22 Joseph Myers <joseph@codesourcery.com>
12431
12432 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
12433 via opts pointer. Don't assert that global structures are in use.
12434
1bb721dc
JM
124352011-03-22 Joseph Myers <joseph@codesourcery.com>
12436
12437 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
12438 (munix=93): Use Var.
12439 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
12440 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
12441 * config/pa/pa-opts.h: New.
12442 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
12443 (pa_handle_option): Don't assert that global structures are in
12444 use. Access target_flags via opts pointer. Don't handle
12445 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
12446 OPT_munix_98 here.
12447 (pa_option_override): Handle deferred OPT_mfixed_range_.
12448
cd8d8754
JM
124492011-03-22 Joseph Myers <joseph@codesourcery.com>
12450
12451 * config/mn10300/mn10300-opts.h: New.
12452 * config/mn10300/mn10300.c (mn10300_processor,
12453 mn10300_tune_string): Remove.
12454 (mn10300_handle_option): Don't assert that global structures are
12455 in use. Access mn10300_processor via opts pointer. Don't handle
12456 OPT_mtune_ here.
12457 * config/mn10300/mn10300.h (enum processor_type): Move to
12458 mn10300-opts.h.
12459 (mn10300_processor): Remove.
12460 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
12461 HeaderInclude entry.
12462 (mn10300_processor): New Variable entry.
12463 (mtune=): Use Var.
12464
24e6e6b1
JM
124652011-03-22 Joseph Myers <joseph@codesourcery.com>
12466
12467 * config/microblaze/microblaze.c: Don't include opts.h.
12468 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
12469 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
12470 (mno-clearbss): Use Var and Warn.
12471
8a784afb
JM
124722011-03-22 Joseph Myers <joseph@codesourcery.com>
12473
12474 * config/m32r/m32r-opts.h: New.
12475 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
12476 (m32r_handle_option): Don't assert that global structures are in
12477 use. Access target_flags and m32r_cache_flush_func via opts
12478 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
12479 OPT_mno_flush_trap here.
12480 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
12481 include of m32r-opts.h.
12482 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
12483 HeaderInclude entry.
12484 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
12485 (mmodel=): Use Enum and Var.
12486 (m32r_model): New Enum and EnumValue entries.
12487 (mno-flush-trap): Use Var.
12488 (msdata=): Use Enum and Var.
12489 (m32r_sdata): New Enum and EnumValue entries.
12490
bbfc9a8c
JM
124912011-03-22 Joseph Myers <joseph@codesourcery.com>
12492
12493 * config/m32c/m32c.c: Don't include opts.h.
12494 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
12495 m32c_handle_option): Remove.
12496 (m32c_option_override): Check global_options_set.x_target_memregs
12497 instead of target_memregs_set.
12498 * config/m32c/m32c.h (target_memregs): Remove.
12499 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
12500 variable.
12501
e24b8335
JM
125022011-03-22 Joseph Myers <joseph@codesourcery.com>
12503
12504 * config/iq2000/iq2000-opts.h: New.
12505 * config/iq2000/iq2000.c: Don't include opts.h.
12506 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 12507 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
12508 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
12509 HeaderInclude entry.
12510 (iq2000_tune): New Variable entry.
12511 (march=): Add comment. Use Enum.
12512 (iq2000_arch): New Enum and EnumValue entries.
12513 (mcpu=): Use Enum and Var.
12514 (iq2000_tune): New Enum and EnumValue entries.
12515
e6cc0c98
JM
125162011-03-22 Joseph Myers <joseph@codesourcery.com>
12517
12518 * config/ia64/ia64-opts.h: New.
12519 * config/ia64/ia64.c (ia64_tune): Remove.
12520 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
12521 here. Use error_at.
12522 (ia64_option_override): Handle deferred OPT_mfixed_range_.
12523 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
12524 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
12525 HeaderInclude entry.
12526 (ia64_tune): New Variable entry.
12527 (mfixed-range=): Use Defer and Var.
12528 (mtune=): Use Enum and Var.
12529 (ia64_tune): New Enum and EnumValue entries.
12530
db25893c
JM
125312011-03-22 Joseph Myers <joseph@codesourcery.com>
12532
12533 * config/frv/frv-opts.h: New.
12534 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
12535 frv-opts.h.
12536 (frv_cpu_type): Remove.
12537 * config/frv/frv.c: Don't include opts.h.
12538 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 12539 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
12540 (frv_cpu_type): New Variable entry.
12541 (frv_cpu): New Enum and EnumValue entries.
12542
6c223f5d
JM
125432011-03-22 Joseph Myers <joseph@codesourcery.com>
12544
12545 * config/cris/cris.c (cris_handle_option): Access target_flags via
12546 opts pointer. Don't assert that global structures are in use.
12547 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
12548 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
12549
bbd399cf
JM
125502011-03-22 Joseph Myers <joseph@codesourcery.com>
12551
12552 * config/bfin/bfin-opts.h: New.
12553 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
12554 bfin_si_revision, bfin_workarounds): Remove.
12555 (bfin_cpus): Make static const.
12556 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
12557 not bfin_lib_id_given.
12558 (bfin_handle_option): Don't set bfin_lib_id_given. Access
12559 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 12560 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
12561 * config/bfin/bfin.h: Include bfin-opts.h.
12562 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
12563 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
12564 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
12565 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
12566 entries.
12567
5e1b4d5a
JM
125682011-03-22 Joseph Myers <joseph@codesourcery.com>
12569
12570 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
12571 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
12572 or -msoft-float here.
12573 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
12574 -msoft-float and -mhard-float.
c78dd519 12575 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
12576 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
12577 msoft-float.
12578 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
12579 -msoft-float.
12580 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
12581 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
12582 not mhard-float.
12583 (LIBGCC_SPEC): Don't handle -msoft-float.
12584 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
12585 -mhard-float.
12586 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
12587 msoft-float.
12588 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
12589 -mfloat-abi=*, not -msoft-float and -mhard-float.
12590 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
12591 -msoft-float.
12592 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
12593 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
12594 mhard-float and msoft-float.
12595 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
12596 mfloat-abi=soft in comments, not mhard-float and msoft-float.
12597 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
12598 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
12599 mhard-float.
12600 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
12601 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
12602 msoft-float.
12603 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
12604 not mhard-float.
12605 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
12606 not msoft-float.
12607
800d1de1
RH
126082011-03-22 Richard Henderson <rth@redhat.com>
12609
12610 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
12611 TARGET_ABI_WINDOWS_NT.
12612 (alpha_output_function_end_prologue): Likewise.
12613 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
12614 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12615 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
12616 (trap, *movsi_nt_vms): Likewise.
12617 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
12618 (*tablejump_osf_nt_internal): Remove.
12619 * config/alpha/predicates.md (input_operand): Only test Pmode.
12620
c59ddd2b
JM
126212011-03-22 Joseph Myers <joseph@codesourcery.com>
12622
12623 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
12624 via opts pointer. Use error_at. Don't assert that global
12625 structures are in use.
12626
1333f97f
JM
126272011-03-22 Joseph Myers <joseph@codesourcery.com>
12628
12629 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
12630 (ix86_handle_option): Access ix86_isa_flags and
12631 ix86_isa_flags_explicit via opts pointer. Don't assert that
12632 global structures are in use.
12633 (ix86_function_specific_save, ix86_function_specific_restore):
12634 Update ix86_isa_flags_explicit field name.
c78dd519 12635 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
12636 (ix86_isa_flags_explicit): Rename TargetSave entry to
12637 x_ix86_isa_flags_explicit.
12638
75db85d8
RH
126392011-03-22 Richard Henderson <rth@redhat.com>
12640
12641 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
12642 (alpha_option_override, direct_return): Likewise.
12643 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
12644 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
12645 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
12646 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
12647 (alpha_expand_epilogue, alpha_end_function): Likewise.
12648 (alpha_init_libfuncs): Likewise.
12649 (struct machine_function): Remove unicosmk members.
12650 (print_operand) ['t']: Remove.
12651 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
12652 unicosmk_output_module_name, unicosmk_output_common,
12653 current_section_align, unicosmk_output_text_section_asm_op,
12654 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
12655 unicosmk_section_type_flags, unicosmk_unique_section,
12656 unicosmk_asm_named_section, unicosmk_insert_attributes,
12657 unicosmk_output_align, unicosmk_defer_case_vector,
12658 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
12659 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
12660 unicosmk_output_ssib, unicosmk_add_call_info_word,
12661 unicosmk_extern_head, unicosmk_output_default_externs,
12662 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
12663 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
12664 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
12665 * config/alpha/alpha-protos.h: Update.
12666 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
12667 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
12668 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
12669 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
12670 (*mulsi_se, mulvsi3): Likewise.
12671 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
12672 (*divmodsi_internal, call, call_value, realign): Likewise.
12673 (moddi3, umoddi3): Likewise; remove duplicate expander.
12674 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
12675 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
12676 (*movdi_nofix): Remove r/U alternative.
12677 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
12678 * config/alpha/constraints.md ("U"): Remove.
12679 * config/alpha/predicates.md (call_operand"): Don't test
12680 TARGET_ABI_UNICOSMK.
12681
96e45421
JM
126822011-03-22 Joseph Myers <joseph@codesourcery.com>
12683
12684 * target.def (handle_option): Take gcc_options and
12685 cl_decoded_option pointers and location_t.
12686 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
12687 * doc/tm.texi: Regenerate.
12688 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
12689 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
12690 * lto-opts.c (lto_reissue_options): Generate option structure for
12691 targetm.handle_option call.
12692 * opts.c (target_handle_option): Update call to
12693 targetm.handle_option. Remove assertions about values now passed
12694 down to hook.
12695 * targhooks.c (default_target_handle_option): New.
12696 * targhooks.h (default_target_handle_option): Declare.
12697 * config/alpha/alpha.c: Include opts.h.
12698 (alpha_handle_option): Update to new hook interface.
12699 * config/arm/arm.c: Include opts.h.
12700 (arm_handle_option): Update to new hook interface.
12701 * config/arm/t-arm (arm.o): Update dependencies.
12702 * config/bfin/bfin.c: Include opts.h.
12703 (bfin_handle_option): Update to new hook interface.
12704 * config/cris/cris.c: Include opts.h.
12705 (cris_handle_option): Update to new hook interface.
12706 * config/frv/frv.c: Include opts.h.
12707 (frv_handle_option): Update to new hook interface.
12708 * config/i386/i386.c: Include opts.h.
12709 (ix86_handle_option): Update to new hook interface.
12710 (ix86_valid_target_attribute_inner_p): Generate option structure
12711 for call to ix86_handle_option.
12712 * config/i386/t-i386 (i386.o): Update dependencies.
12713 * config/ia64/ia64.c: Include opts.h.
12714 (ia64_handle_option): Update to new hook interface.
12715 * config/ia64/t-ia64 (ia64.o): Update dependencies.
12716 * config/iq2000/iq2000.c: Include opts.h.
12717 (iq2000_handle_option): Update to new hook interface.
12718 * config/m32c/m32c.c: Include opts.h.
12719 (m32c_handle_option): Update to new hook interface.
12720 * config/m32r/m32r.c: Include opts.h.
12721 (m32r_handle_option): Update to new hook interface.
12722 * config/m68k/m68k.c: Include opts.h.
12723 (m68k_handle_option): Update to new hook interface.
12724 * config/mep/mep.c: Include opts.h.
12725 (mep_handle_option): Update to new hook interface.
12726 * config/microblaze/microblaze.c: Include opts.h.
12727 (microblaze_handle_option): Update to new hook interface.
12728 * config/mips/mips.c: Include opts.h.
12729 (mips_handle_option): Update to new hook interface.
12730 * config/mn10300/mn10300.c: Include opts.h.
12731 (mn10300_handle_option): Update to new hook interface.
12732 * config/pa/pa.c: Include opts.h.
12733 (pa_handle_option): Update to new hook interface.
12734 * config/pdp11/pdp11.c: Include opts.h.
12735 (pdp11_handle_option): Update to new hook interface.
12736 * config/rs6000/rs6000.c: Include opts.h.
12737 (rs6000_handle_option): Update to new hook interface.
12738 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
12739 * config/rx/rx.c: Include opts.h.
12740 (rx_handle_option): Update to new hook interface.
12741 * config/s390/s390.c: Include opts.h.
12742 (s390_handle_option): Update to new hook interface.
12743 * config/score/score.c: Include opts.h.
12744 (score_handle_option): Update to new hook interface.
12745 * config/sh/sh.c: Include opts.h.
12746 (sh_handle_option): Update to new hook interface.
12747 * config/sparc/sparc.c: Include opts.h.
12748 (sparc_handle_option): Update to new hook interface.
12749 * config/v850/v850.c: Include opts.h.
12750 (v850_handle_option): Update to new hook interface.
12751
66017846
JM
127522011-03-22 Joseph Myers <joseph@codesourcery.com>
12753
12754 * gcc.c (driver_unknown_option_callback): Only permit and save
12755 unknown -Wno- options.
12756 (driver_wrong_lang_callback): Save options directly instead of via
12757 driver_unknown_option_callback.
12758
e8b97ccd
EB
127592011-03-22 Eric Botcazou <ebotcazou@adacore.com>
12760
12761 * combine.c (simplify_set): Try harder to find the best CC mode when
12762 simplifying a nested COMPARE on the RHS.
12763
ebb9f8b0
JM
127642011-03-22 Joseph Myers <joseph@codesourcery.com>
12765
12766 * config/alpha/gnu.h: Remove.
12767 * config/arc: Remove directory.
12768 * config/arm/netbsd.h: Remove.
12769 * config/arm/t-pe: Remove.
12770 * config/crx: Remove directory.
12771 * config/i386/netbsd.h: Remove.
12772 * config/m68hc11: Remove directory.
12773 * config/m68k/uclinux-oldabi.h: Remove.
12774 * config/mcore/mcore-pe.h: Remove.
12775 * config/mcore/t-mcore-pe: Remove.
12776 * config/netbsd-aout.h: Remove.
12777 * config/rs6000/gnu.h: Remove.
12778 * config/sh/sh-symbian.h: Remove.
12779 * config/sh/symbian-base.c: Remove.
12780 * config/sh/symbian-c.c: Remove.
12781 * config/sh/symbian-cxx.c: Remove.
12782 * config/sh/symbian-post.h: Remove.
12783 * config/sh/symbian-pre.h: Remove.
12784 * config/sh/t-symbian: Remove.
12785 * config/svr3.h: Remove.
12786 * config/vax/netbsd.h: Remove.
12787 * config.build: Don't handle i[34567]86-*-pe.
12788 * config.gcc: Remove handling of deprecations for most deprecated
12789 targets.
12790 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
12791 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
12792 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
12793 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
12794 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
12795 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
12796 Remove cases.
12797 * config.host: Don't handle i[34567]86-*-pe.
12798 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
12799 (ASM_SPEC32): Don't handle -mcall-gnu.
12800 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
12801 -mcall-gnu.
12802 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
12803 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
12804 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
12805 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
12806 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
12807 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
12808 conditional on SYMBIAN.
12809 * configure.ac: Don't handle powerpc*-*-gnu*.
12810 * configure: Regenerate.
12811 * doc/extend.texi (interrupt attribute): Don't mention CRX.
12812 * doc/install-old.texi (m6811, m6812): Don't mention.
12813 * doc/install.texi (arc-*-elf*): Don't document multilib option.
12814 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
12815 (m68k-uclinuxoldabi): Don't mention.
12816 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
12817 Remove.
12818 (-mcall-gnu): Remove.
12819 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
12820 families): Remove constraint documentation.
12821
999a7d80
MS
128222011-03-22 Marius Strobl <marius@FreeBSD.org>
12823
12824 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
12825 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
12826 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
12827
45540bcf
MM
128282011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
12829
12830 PR target/48226
12831 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
12832 vector when peeking at the next token for vector, don't expand the
12833 keywords.
12834
980a0ff4
GJL
128352011-03-21 Georg-Johann Lay <avr@gjlay.de>
12836
12837 * config/avr/avr-protos.h (expand_epilogue): Change prototype
12838 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
12839 * config/avr/avr.c (init_cumulative_args)
12840 (avr_function_arg_advance): Use it.
12841 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
12842 sibcall epilogues.
12843 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
12844 (avr_function_ok_for_sibcall): ...this new function.
12845 (avr_lookup_function_attribute1): New static Function.
12846 (avr_naked_function_p, interrupt_function_p)
12847 (signal_function_p, avr_OS_task_function_p)
12848 (avr_OS_main_function_p): Use it.
12849 * config/avr/avr.md ("sibcall", "sibcall_value")
12850 ("sibcall_epilogue"): New expander.
12851 ("*call_insn", "*call_value_insn"): New insn.
12852 ("call_insn", "call_value_insn"): Remove
12853 ("call", "call_value", "epilogue"): Change expander to handle
12854 sibling calls.
12855
49168734
NC
128562011-03-21 Nick Clifton <nickc@redhat.com>
12857
12858 * doc/invoke.texi (Overall Options): Move closing brace to end of
12859 options list.
12860 (Optimization Options): Add missing @gol.
12861 (Directory Options): Likewise.
12862 (i386 and x86-64 Options): Likewise.
12863 (RS6000 and PowerPC Options): Likewise.
12864 (i386 and x86-64 Windows Options): Likewise.
12865 (V850 Options): Add text missing from descriptions.
12866
bdfe906f
RH
128672011-03-22 Richard Henderson <rth@redhat.com>
12868
12869 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
12870 (avr_incoming_return_addr_rtx): New.
12871 (emit_push_byte): New.
12872 (expand_prologue): Use it. Remove incorrect dwarf annotation for
12873 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
12874 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
12875 (emit_pop_byte): New.
12876 (expand_epilogue): Use it. Pop frame pointer by bytes.
12877 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
12878 (INCOMING_RETURN_ADDR_RTX): New.
12879 (INCOMING_FRAME_SP_OFFSET): New.
12880 (ARG_POINTER_CFA_OFFSET): New.
12881 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
12882 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
12883 (pophi): Remove.
12884
d090a5aa
RH
12885 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
12886
fdf3e18a
NF
128872011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12888
12889 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
12890 (FUNCTION_ARG_ADVANCE): Likewise.
12891 * tm.texi.in: Change references to them to hook references.
12892 * tm.texi: Regenerate.
12893 * targhooks.c (default_function_arg): Eliminate check for target
12894 macro.
12895 (default_function_incoming_arg): Likewise.
12896 (default_function_arg_advance): Likewise.
c78dd519 12897 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
12898 (function_arg_advance): Likewise.
12899 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
12900
009d3fcf
NF
129012011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12902
12903 * tree.c (build_call_1): New function.
12904 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
12905
7bec30e1
RG
129062011-03-22 Richard Guenther <rguenther@suse.de>
12907
12908 PR tree-optimization/48228
12909 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
12910 for single-arg PHIs.
12911
0b7e851b
AB
129122011-03-22 Andrey Belevantsev <abel@ispras.ru>
12913
12914 PR rtl-optimization/48143
12915 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
12916 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
12917 sse2_cvtps2pd): Likewise.
12918
d89afca5
AK
129192011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12920
12921 * recog.c (canonicalize_change_group): Use validate_unshare_change.
12922
f471fe72
RG
129232011-03-22 Richard Guenther <rguenther@suse.de>
12924
12925 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
12926 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
12927 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
12928 and REALIGN_LOAD_EXPR.
12929 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
12930 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
12931 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
12932 DOT_PROD_EXPR case ...
12933 (expand_expr_real_2): ... here.
12934 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
12935 and REALIGN_LOAD_EXPR.
12936 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
12937 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
12938 (vect_create_epilog_for_reduction): Likewise.
12939 (vectorizable_reduction): Likewise.
12940 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
12941 * tree-vect-stmts.c (vectorizable_load): Likewise.
12942
f2f81d57
EB
129432011-03-22 Eric Botcazou <ebotcazou@adacore.com>
12944
12945 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
12946
ab081dd6
AK
129472011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12948
12949 * config/s390/s390.c (s390_delegitimize_address): Fix offset
12950 handling for PLTOFF/GOTOFF.
12951
6fd5332b
NC
129522011-03-22 Nick Clifton <nickc@redhat.com>
12953
12954 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
12955 trailing backslash from the end of the macro definition.
12956
01841ac0
AK
129572011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12958
12959 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
12960 and PLT unspecs.
12961
2ef6ce06
RS
129622011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
12963
12964 * expr.h (prepare_operand): Move to...
12965 * optabs.h (prepare_operand): ...here and change the insn code
12966 parameter from "int" to "enum insn_code".
12967 (insn_operand_matches): Declare.
12968 * expr.c (init_expr_target): Use insn_operand_matches.
12969 (compress_float_constant): Likewise.
12970 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
12971 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
12972 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
12973 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
12974 Likewise.
2ef6ce06
RS
12975 (gen_cond_trap): Likewise.
12976 (prepare_operand): Likewise. Change icode to an insn_code.
12977 (insn_operand_matches): New function.
12978 * reload.c (find_reloads_address_1): Use insn_operand_matches.
12979 * reload1.c (gen_reload): Likewise.
12980 * targhooks.c (default_secondary_reload): Likewise.
12981
9e43ad68
UB
129822011-03-21 Uros Bizjak <ubizjak@gmail.com>
12983
9a96da32
UB
12984 * config/alpha/alpha.md (unspec): New define_c_enum.
12985 (unspecv): Ditto.
12986
129872011-03-21 Uros Bizjak <ubizjak@gmail.com>
12988
12989 PR debug/48214
9e43ad68
UB
12990 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
12991 between a call and its CALL_ARG_LOCATION note.
12992
31408f60
EB
129932011-03-21 Eric Botcazou <ebotcazou@adacore.com>
12994
12995 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
12996
129972011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
12998
12999 PR c/42544
13000 PR c/48197
13001 * c-common.c (shorten_compare): If primopN is first sign-extended
13002 to opN and then zero-extended to result type, set primopN to opN.
13003
9dfd55f5
DJ
130042011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
13005
13006 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
13007 for barrier handlers.
13008
f3c33d9d
MM
130092011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
13010
13011 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
13012 UNSPEC constants to be in the unspec enumeration, and redefine
13013 all UNSPECV constants to be in the unspecv enumeration, so that
13014 dumps print which unspec/unspec_volatile this is.
13015 * config/rs6000/vector.md (UNSPEC_*): Ditto.
13016 * config/rs6000/paired.md (UNSPEC_*): Ditto.
13017 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
13018 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
13019 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
13020
13021 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
13022 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
13023 UNSPECV_LWSYNC, since these are used as unspec_volatile.
13024 * config/rs6000/sync.md (isync, lwsync): Ditto.
13025
ac43f774
RG
130262011-03-21 Richard Guenther <rguenther@suse.de>
13027
13028 * params.def (lto-min-partition): Fix typo.
13029
411cdbd8
RG
130302011-03-21 Richard Guenther <rguenther@suse.de>
13031
13032 PR c/47939
13033 * c-decl.c (grokdeclarator): Drop to the main variant only
13034 for array types. Drop flag_gen_aux_info check.
13035
1cd9e416
RG
130362011-03-21 Richard Guenther <rguenther@suse.de>
13037
13038 PR translation/47911
13039 * params.def (lto-partitions): Fix typo.
13040 (lto-min-partition): Fix wording.
13041
ada5ad67
AT
130422011-03-21 Andreas Tobler <andreast@fgznet.ch>
13043
13044 * config/rs6000/t-freebsd: Remove duplication from file.
13045
f9613c9a
RG
130462011-03-21 Richard Guenther <rguenther@suse.de>
13047
13048 PR middle-end/47661
13049 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
13050
9bfbc1eb
RG
130512011-03-21 Richard Guenther <rguenther@suse.de>
13052
13053 PR lto/48210
13054 * params.def (lto-partitions): Require at least 1 partition.
13055
a2268084
RO
130562011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13057
13058 * gthr-solaris.h: Remove.
13059 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
13060 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
13061 (LIB_SPEC): Likewise.
13062 * config/sol2.opt (threads): Remove.
9e43ad68 13063 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
13064 (sparc*-*-solaris2*): Likewise.
13065 * configure.ac (enable_threads): Enable solaris support.
13066 * configure: Regenerate.
9e43ad68 13067 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
13068 * doc/install.texi (Configuration, --enable-threads=lib): Remove
13069 solaris.
13070
c43d9a1b
RO
130712011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13072
13073 * config.gcc: Obsolete *-*-solaris2.8*.
13074 * doc/install.texi (Specific, *-*-solaris2*): Document it.
13075
084239f4
RO
130762011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13077
13078 PR bootstrap/48135
13079 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
13080 reference. Solaris 8 perl works.
13081
64cadbe7
RO
130822011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13083
13084 PR bootstrap/48135
13085 * doc/install.texi (Prerequisites): Move jar etc. up.
13086 Explain support library version requirements.
13087
eb975109
RO
130882011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13089
13090 PR bootstrap/48135
13091 * doc/install.texi (Prerequisites): Move Perl to build
13092 requirements. Always necessary on Solaris 2 with Sun ld.
13093
8a509ffd
RO
130942011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13095
13096 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
13097 binutils 2.21.
13098 (Specific, i?86-*-solaris2.[89]): Likewise.
13099 (Specific, i?86-*-solaris2.10): Likewise.
13100 (Specific, mips-sgi-irix6): Likewise.
13101 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
13102 Update for binutils 2.21.
13103
8fbc58a1
RO
131042011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13105
13106 * configure.ac (gcc_cv_lto_plugin): Fix typo.
13107 Allow -fuse-linker-plugin for non-default plugin linker.
13108 * configure: Regenerate.
13109
7e84ad0b
NP
131102011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
13111
13112 PR bootstrap/48167
13113 * gengtype.c (files_rules): Added rule for cp/parser.h.
13114
2f36e14b
JJ
131152011-03-21 Jakub Jelinek <jakub@redhat.com>
13116
13117 PR target/48213
13118 * config/s390/s390.c (s390_delegitimize_address): Don't call
13119 lowpart_subreg if orig_x has BLKmode.
13120
62d784f7
KT
131212011-03-21 Kai Tietz <ktietz@redhat.com>
13122
13123 PR target/12171
9e43ad68
UB
13124 * doc/plugins.texi: Adjust documentation for plugin register_callback.
13125 * tree.h (attribute_spec): Add new member affects_type_identity.
13126 * attribs.c (empty_attribute_table): Adjust attribute_spec
13127 initializers.
62d784f7
KT
13128 * config/alpha/alpha.c: Likewise.
13129 * config/arc/arc.c: Likewise.
13130 * config/arm/arm.c: Likewise.
13131 * config/avr/avr.c: Likewise.
13132 * config/bfin/bfin.c: Likewise.
13133 * config/crx/crx.c: Likewise.
13134 * config/darwin.h: Likewise.
13135 * config/h8300/h8300.c: Likewise.
13136 * config/i386/cygming.h: Likewise.
13137 * config/i386/i386.c: Likewise.
13138 * config/ia64/ia64.c: Likewise.
13139 * config/m32c/m32c.c: Likewise.
13140 * config/m32r/m32r.c: Likewise.
13141 * config/m68hc11/m68hc11.c: Likewise.
13142 * config/m68k/m68k.c: Likewise.
13143 * config/mcore/mcore.c: Likewise.
13144 * config/mep/mep.c: Likewise.
13145 * config/microblaze/microblaze.c: Likewise.
13146 * config/mips/mips.c: Likewise.
13147 * config/rs6000/rs6000.c: Likewise.
13148 * config/rx/rx.c: Likewise.
13149 * config/sh/sh.c: Likewise.
13150 * config/sol2.h: Likewise.
13151 * config/sparc/sparc.c: Likewise.
13152 * config/spu/spu.c: Likewise.
13153 * config/stormy16/stormy16.c: Likewise.
13154 * config/v850/v850.c: Likewise.
13155
54833ec0
CLT
131562011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
13157
13158 * simplify-rtx.c (simplify_binary_operation_1): Handle
13159 (xor (and A B) C) case when B and C are both constants.
13160
14a41392
MX
131612011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
13162
13163 * tree-dfa.c (add_referenced_var): Fix typo in comment.
13164
806c3492
EB
131652011-03-20 Eric Botcazou <ebotcazou@adacore.com>
13166
13167 PR bootstrap/48168
13168 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
13169
65e0a0f3
JJ
131702011-03-20 Jakub Jelinek <jakub@redhat.com>
13171
13172 PR rtl-optimization/48156
13173 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
13174 assume df and df_lr are not NULL.
13175
b6a75dda
RR
131762011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13177
13178 PR debug/48023
13179 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
13180 between a call and its CALL_ARG_LOCATION note.
13181
5969b52d
KK
131822011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
13183
13184 PR debug/48178
13185 * config/sh/sh.c (find_barrier): Don't emit a constant pool
13186 between a call and its corresponding CALL_ARG_LOCATION note.
13187
f773c2bd
AS
131882011-03-19 Anatoly Sokolov <aesok@post.ru>
13189
13190 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
13191 instead of loop. Use HARD_REGISTER_NUM_P predicate.
13192 * haifa-sched.c (setup_ref_regs): Ditto.
13193 * caller-save.c (add_used_regs_1): Ditto.
13194 * dse.c (look_for_hardregs): Ditto.
13195 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
13196 * sched-rgn.c (check_live_1): Ditto.
13197
8bf872f9
JM
131982011-03-18 Joseph Myers <joseph@codesourcery.com>
13199
13200 * c-decl.c (diagnose_mismatched_decls): Give an error for
13201 redefining a typedef with variably modified type.
13202
ff8e2159
JM
132032011-03-18 Joseph Myers <joseph@codesourcery.com>
13204
13205 * c-decl.c (grokfield): Don't allow typedefs for structures or
13206 unions with no tag by default.
13207 * doc/extend.texi (Unnamed Fields): Update.
13208
16cc4440
UB
132092011-03-18 Uros Bizjak <ubizjak@gmail.com>
13210
13211 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
13212 Rewrite using indirect functions.
13213 (lwp_slwpcb): Ditto.
13214 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
13215 (avx_vinsertf128<mode>): Ditto.
13216
e101e12e
AK
132172011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13218
13219 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
13220 unspecs.
13221
4627c7fb
AK
132222011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13223
13224 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 13225 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 13226
2d36b47f
MK
132272011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
13228
13229 PR rtl-optimization/48170
13230 * gcse.c (hoist_code): Remove bogus asserts.
13231
2a3d7659
JL
132322011-03-18 Georg-Johann Lay <avr@gjlay.de>
13233
13234 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
13235 computation for prologue/epilogue.
13236
34c3ef05
RO
132372011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13238
13239 * Makefile.in (check-consistency): Remove.
13240
81f2b976
JJ
132412011-03-18 Jakub Jelinek <jakub@redhat.com>
13242
13243 PR debug/48176
13244 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
13245 arange_table_in_use is 0, but either text_section_used or
13246 cold_text_section_used is true. Don't call it if
13247 !info_section_emitted.
13248
68fd7765
AS
132492011-03-18 Anatoly Sokolov <aesok@post.ru>
13250
13251 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
13252 FUNCTION_VALUE_REGNO_P): Remove.
13253 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
13254 Remove.
13255 * config/avr/avr.c (avr_ret_register): Make static inline.
13256 (avr_function_value_regno_p): New function.
13257 (avr_libcall_value): Make static. Add 'func' argument.
13258 (avr_function_value): Make static. Rename 'func' argument to
13259 'fn_decl_or_type', forward it to avr_libcall_value. Call
13260 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 13261 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 13262
b4ef8aac
JM
132632011-03-18 Jason Merrill <jason@redhat.com>
13264
13265 PR c++/23372
13266 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
13267
09a52fc3
RG
132682011-03-18 Richard Guenther <rguenther@suse.de>
13269
13270 * doc/install.texi (--enable-gold): Remove.
13271 (--with-plugin-ld): Document.
13272 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
13273
2a3d7659 132742011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
13275
13276 PR middle-end/47790
13277 * expr.c (optimize_bitfield_assignment_op): Revamp to work
13278 again after expansion changes.
13279
2abbb0fe
CLT
132802011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
13281
13282 * combine.c (try_combine): Do simplification only call of
13283 subst() on i2 even when i1 is present. Update comments.
13284
2efd0aa6
KK
132852011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
13286
13287 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
13288 and UNSPEC_PCREL_SYMOFF.
13289
30a49b23
AK
132902011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13291
13292 * config/s390/s390.md: Use define_c_enum for the unspec constant
13293 definitions.
13294
419e1853
JJ
132952011-03-18 Richard Henderson <rth@redhat.com>
13296 Jakub Jelinek <jakub@redhat.com>
13297
13298 PR bootstrap/48161
13299 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
13300 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
13301
37875856
L
133022011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13303
13304 PR middle-end/47725
13305 * combine.c (cant_combine_insn_p): Don't check zero/sign
13306 extended hard registers.
13307
76069764
L
133082011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13309
13310 PR middle-end/47725
13311 * combine.c (cant_combine_insn_p): Check zero/sign extended
13312 hard registers.
13313
24da2019
AS
133142011-03-17 Anatoly Sokolov <aesok@post.ru>
13315
13316 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13317 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
13318 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
13319 Change return type to bool.
13320 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13321
a82ff31f
JJ
133222011-03-17 Jakub Jelinek <jakub@redhat.com>
13323
8b29c87a
JJ
13324 PR debug/48163
13325 * var-tracking.c (prepare_call_arguments): If CALL target
13326 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
13327 pc instead of looking it up using cselib_lookup and use
13328 Pmode for it if x has VOIDmode.
13329 * dwarf2out.c (gen_subprogram_die): If also both first and
13330 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
13331
a82ff31f
JJ
13332 PR debug/48163
13333 * function.c (assign_parms): For data.passed_pointer parms
13334 use MEM of data.entry_parm instead of data.entry_parm itself
13335 as DECL_INCOMING_RTL.
13336 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
13337 also when passed and declared mode is the same, DECL_RTL
13338 is a MEM with pseudo as address and DECL_INCOMING_RTL is
13339 a MEM too.
13340
82ce305c
JL
133412011-03-16 Jeff Law <law@redhat.com>
13342
13343 PR rtl-optimization/37273
13344 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13345 handle them like argument loads from stack slots. Do not double
13346 count memory for memory constants and argument loads from stack slots.
13347
fe58e02b
L
133482011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13349
13350 PR debug/48160
13351 * var-tracking.c (prepare_call_arguments): Check SUBREG.
13352
6fc4dbc7
L
133532011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13354
13355 PR target/48171
13356 * config/i386/i386.opt: Add Save to -mavx and -mfma.
13357
db3ed0b3
JJ
133582011-03-17 Jakub Jelinek <jakub@redhat.com>
13359
8054a389
JJ
13360 PR bootstrap/48153
13361 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
13362 if dwarf_strict.
13363 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
13364 Clear call_arg_locations and call_arg_loc_last always.
13365
db3ed0b3
JJ
13366 PR middle-end/48152
13367 * var-tracking.c (prepare_call_arguments): If argument needs to be
13368 passed by reference, adjust argtype and mode.
13369
1bce4ff3
RG
133702011-03-17 Richard Guenther <rguenther@suse.de>
13371
13372 PR middle-end/48134
13373 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
13374 a value make sure to fold the statement.
13375
7c71147d
CLT
133762011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
13377
13378 PR target/43872
13379 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
13380 return condition with !cfun->calls_alloca.
13381
0e1ee172
RG
133822011-03-17 Richard Guenther <rguenther@suse.de>
13383
13384 PR bootstrap/48148
13385 * lto-cgraph.c (input_overwrite_node): Clear the abstract
13386 origin for decls in other ltrans units.
13387 (input_varpool_node): Likewise.
13388
f8bce518
RG
133892011-03-17 Richard Guenther <rguenther@suse.de>
13390
13391 PR middle-end/48165
13392 * tree-object-size.c (compute_object_offset): Properly return
13393 the offset operand of MEM_REFs as sizetype.
13394
1b6fa860
JJ
133952011-03-17 Jakub Jelinek <jakub@redhat.com>
13396
dabd47e7
JJ
13397 PR rtl-optimization/48141
13398 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
13399 * dse.c: Include params.h.
13400 (active_local_stores_len): New variable.
13401 (add_wild_read, dse_step1): Clear it when setting active_local_stores
13402 to NULL.
13403 (record_store, check_mem_read_rtx): Decrease it when removing
13404 from the chain.
13405 (scan_insn): Likewise. Increase it when adding to chain, if it
13406 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
13407 set active_local_stores to NULL before the addition.
13408 * Makefile.in (dse.o): Depend on $(PARAMS_H).
13409
1b6fa860
JJ
13410 PR rtl-optimization/48141
13411 * dse.c (record_store): If no positions are needed in an insn
13412 that cannot be deleted, at least unchain it from active_local_stores.
13413
7b5cb7d6
DS
134142011-03-16 Dodji Seketeli <dodji@redhat.com>
13415
13416 PR debug/47510
13417 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
13418 (lookup_type_die_strip_naming_typedef): ... here.
13419 (get_context_die): Use it.
13420 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
13421 the anonymous struct named by the naming typedef.
13422
585e9d9d
L
134232011-03-16 H.J. Lu <hongjiu.lu@intel.com>
13424
13425 PR target/48154
13426 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
13427 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
13428
6261ab0e
JL
134292011-03-16 Jeff Law <law@redhat.com>
13430
13431 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 13432 check for operands of conditional. Allow type to be a pointer.
6261ab0e 13433
0b0081ec
RG
134342011-03-16 Richard Guenther <rguenther@suse.de>
13435
13436 PR tree-optimization/48149
13437 * fold-const.c (fold_binary_loc): Fold
13438 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
13439
64a3d647
RG
134402011-03-16 Richard Guenther <rguenther@suse.de>
13441
13442 PR tree-optimization/26134
13443 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
13444 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
13445 (non_rewritable_mem_ref_base): Handle complex type component
13446 accesses, constrain offsets for vector and complex extracts
13447 more properly.
13448
ef13324e
RG
134492011-03-16 Richard Guenther <rguenther@suse.de>
13450
13451 PR tree-optimization/48146
13452 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
13453 operands avoiding the need for renaming.
13454
f0eddb90
RG
134552011-03-16 Richard Guenther <rguenther@suse.de>
13456
13457 * gimple-fold.c (maybe_fold_reference): Open-code relevant
13458 constant folding. Move MEM_REF canonicalization first.
13459 Rely on fold_const_aggregate_ref for initializer folding.
13460 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
13461
e42348b8
JJ
134622011-03-16 Jakub Jelinek <jakub@redhat.com>
13463
29f10e71
JJ
13464 PR middle-end/48136
13465 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
13466 arg0/arg1 or their arguments are always fold converted to matching
13467 types.
13468
e42348b8
JJ
13469 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
13470 to nargs.
13471
55b46574
RO
134722011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13473
13474 PR lto/46944
13475 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
13476 Handle in-tree gold.
13477 (ld_vers): Extract binutils version for gold.
13478 (gcc_cv_ld_hidden): Handle gold here.
13479 (gcc_cv_lto_plugin): Determine level of linker plugin support.
13480 * configure: Regenerate.
13481 * config.in: Regenerate.
13482 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
13483 -fuse-linker-plugin otherwise.
13484 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
13485 (LINK_COMMAND_SPEC): Use it.
13486 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
13487
2b1c5433
JJ
134882011-03-16 Jakub Jelinek <jakub@redhat.com>
13489
c2969d8e
JJ
13490 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
13491 * calls.c: Remove debug.h include.
13492 (emit_call_1): Don't call virtual_call_token debug hook.
13493 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
13494 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
13495 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
13496 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
13497 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
13498 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
13499 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
13500 dwarf2out_virtual_call): Remove.
13501 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
13502 copy_call_info and virtual_call hooks.
13503 (dwarf2out_init): Don't initialize vcall_insn_table,
13504 debug_dcall_section and debug_vcall_section.
13505 (prune_unused_types): Don't mark nodes from dcall_table.
13506 (dwarf2out_finish): Don't output dcall or vcall tables.
13507 * final.c (final_scan_insn): Don't call direct_call or
13508 virtual_call debug hooks.
13509 * debug.h (struct gcc_debug_hooks): Remove direct_call,
13510 virtual_call_token, copy_call_info and virtual_call hooks.
13511 (debug_nothing_uid): Remove prototype.
13512 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
13513 copy_call_info and virtual_call hooks.
13514 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13515 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
13516 * debug.c (do_nothing_debug_hooks): Likewise.
13517 (debug_nothing_uid): Remove.
13518 * doc/invoke.texi (-fenable-icf-debug): Remove.
13519 * common.opt (-fenable-icf-debug): Likewise.
13520
325f5379
JJ
13521 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
13522 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
13523 call's MEM. Handle functions returning aggregate through a hidden
13524 first pointer. For virtual calls add clobbered pc to call arguments
13525 chain.
13526 * dwarf2out.c (gen_subprogram_die): Emit
13527 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
13528 can't be emitted.
13529
a58a8e4b
JJ
13530 PR debug/45882
13531 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
13532 * rtl.h (ENTRY_VALUE_EXP): Define.
13533 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
13534 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
13535 * print-rtl.c (print_rtx): Likewise.
13536 * gengtype.c (adjust_field_rtx_def): Likewise.
13537 * var-tracking.c (vt_add_function_parameter): Adjust
13538 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
13539 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
13540 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
13541 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
13542 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
13543
2b1c5433
JJ
13544 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
13545 Call var_location debug hook even on CALL_INSNs.
13546 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
13547 * rtl.def (ENTRY_VALUE): New.
13548 * dwarf2out.c: Include cfglayout.h.
13549 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
13550 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
13551 (struct call_arg_loc_node): New type.
13552 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
13553 tail_call_site_count): New variables.
13554 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
13555 DW_TAG_GNU_call_site_parameter.
13556 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
13557 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
13558 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
13559 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
13560 and DW_AT_GNU_all_source_call_sites.
13561 (mem_loc_descriptor): Handle ENTRY_VALUE.
13562 (add_src_coords_attributes): Don't add enything if
13563 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
13564 (dwarf2out_abstract_function): Save and clear call_arg_location,
13565 call_site_count and tail_call_site_count around dwarf2out_decl call.
13566 (gen_call_site_die): New function.
13567 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
13568 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
13569 (dwarf2out_function_decl): Clear call_arg_locations,
13570 call_arg_loc_last, set call_site_count and tail_call_site_count
13571 to -1 and free block_map.
13572 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
13573 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
13574 followed by any real instructions.
13575 (dwarf2out_begin_function): Set call_site_count and
13576 tail_call_site_count to 0.
13577 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
13578 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
13579 attempt to force a DIE for it and worst case remove the attribute.
13580 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
13581 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
13582 the decl itself.
13583 * var-tracking.c: Include tm_p.h.
13584 (vt_stack_adjustments): For calls call note_register_arguments.
13585 (argument_reg_set): New variable.
13586 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
13587 ensure the VALUE is resolved.
13588 (call_arguments): New variable.
13589 (prepare_call_arguments): New function.
13590 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
13591 (struct expand_loc_callback_data): Add ignore_cur_loc field.
13592 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
13593 always use the best expression.
13594 (vt_expand_loc): Add ignore_cur_loc argument.
13595 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
13596 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
13597 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
13598 note for all calls.
13599 (vt_add_function_parameter): Use cselib_lookup_from_insn.
13600 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
13601 argument. Don't call cselib_preserve_only_values and
13602 cselib_reset_table.
13603 (note_register_arguments): New function.
13604 (vt_initialize): Compute argument_reg_set. Call
13605 vt_add_function_parameters before processing basic blocks instead of
13606 afterwards. For calls call prepare_call_arguments before calling
13607 cselib_process_insn.
13608 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
13609 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
13610 (var-tracking.o): Depend on $(TM_P_H).
13611 * cfglayout.h (insn_scope): New prototype.
13612 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
13613 * cfglayout.c (insn_scope): No longer static.
13614 * insn-notes.def (CALL_ARG_LOCATION): New.
13615 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
13616 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
13617 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
13618 nothing for DECL_EXTERNAL BLOCK_VARS.
13619
9ef13bd0
AM
136202011-03-16 Alan Modra <amodra@gmail.com>
13621
13622 PR target/45844
13623 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
13624 create invalid offset address for vsx splat insn.
13625 * config/rs6000/predicates.md (splat_input_operand): New.
13626 * config/rs6000/vsx.md (vsx_splat_*): Use it.
13627
56b67510
XDL
136282011-03-15 Xinliang David Li <davidxl@google.com>
13629
13630 PR c/47837
13631 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
13632 (normalize_preds): New function.
13633 (is_use_properly_guarded): Normalize def predicates.
13634
80fffdef
RR
136352011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13636
732f37c6 13637 PR target/46788
80fffdef
RR
13638 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
13639 in the output template.
13640
930672ad
RG
136412011-03-15 Richard Guenther <rguenther@suse.de>
13642
13643 PR middle-end/47650
13644 * tree-pretty-print.c (dump_function_declaration): Properly
13645 dump unprototyped and varargs function types.
13646
c7ee7b45
RG
136472011-03-15 Richard Guenther <rguenther@suse.de>
13648
13649 PR tree-optimization/13954
13650 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
13651 and friends.
13652
b2ad5e37
RG
136532011-03-15 Richard Guenther <rguenther@suse.de>
13654
13655 PR tree-optimization/48037
13656 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
13657 selects into BIT_FIELD_REFs.
13658 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
13659 vector select.
13660
7ee93d4e
JJ
136612011-03-15 Jakub Jelinek <jakub@redhat.com>
13662
13663 PR tree-optimization/48129
13664 * builtins.c (fold_builtin_snprintf): Convert to type of
13665 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
13666 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
13667
e106efc7
RG
136682011-03-15 Richard Guenther <rguenther@suse.de>
13669
13670 PR tree-optimization/41490
13671 * tree-ssa-dce.c (propagate_necessity): Handle returns without
13672 value but with VUSE.
13673 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
13674 return statements.
13675 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
13676 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
13677 * tree-tailcall.c (find_tail_calls): Ignore returns.
13678
17dea42f
RG
136792011-03-15 Richard Guenther <rguenther@suse.de>
13680
13681 PR middle-end/48031
13682 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
13683 or variable-indexed array accesses when in gimple form.
13684
01c77a60
RG
136852011-03-15 Richard Guenther <rguenther@suse.de>
13686
16cc4440 13687 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 13688
77b0791e
AM
136892011-03-15 Alan Modra <amodra@gmail.com>
13690
13691 PR target/48032
13692 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
13693 presume symbol_refs without a symbol_ref_decl are suitably
13694 aligned, nor other trees we may see here. Handle anchor symbols.
13695 (legitimate_constant_pool_address_p): Comment. Add mode param.
13696 Check cmodel=medium addresses. Adjust all calls.
13697 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
13698 creating cmodel=medium optimized access to locals.
13699 * config/rs6000/constraints.md (R): Pass QImode to
13700 legitimate_constant_pool_address_p.
13701 * config/rs6000/predicates.md (input_operand): Pass mode to
13702 legitimate_constant_pool_address_p.
13703 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
13704 Update prototype.
13705
35f61ba4
MM
137062011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
13707
13708 PR target/48053
13709 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
13710 64-bit constants being loaded into registers other than GPRs such
13711 as loading 0 into a VSX register.
13712
07332e6d
RO
137132011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13714
16cc4440 13715 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 13716
de888d90
JJ
137172011-03-14 Jakub Jelinek <jakub@redhat.com>
13718
ba3ceb2d
JJ
13719 PR middle-end/47917
13720 * builtins.c (fold_builtin_snprintf): New function.
13721 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
13722 (fold_builtin_4): Likewise.
13723
2e64f8b8
JJ
13724 PR middle-end/38878
13725 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
13726 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
13727 and C - X == X also strip nops from +/-/p+ operand.
13728 When optimizing -X == C, fold C to arg0's type.
13729
de888d90
JJ
13730 PR debug/47946
13731 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
13732 emit it as add_AT_int instead of add_AT_unsigned.
13733
137342011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
13735
13736 * unwind-dw2.c: Include sys/sdt.h if it exists.
13737 (_Unwind_DebugHook): Use STAP_PROBE2.
13738 * config.in, configure: Rebuild.
13739 * configure.ac: Check for sys/sdt.h.
13740
d34abfd2
UB
137412011-03-14 Uros Bizjak <ubizjak@gmail.com>
13742
13743 * config/i386/i386.md (ROUND_FLOOR): New constant.
13744 (ROUND_CEIL): Ditto.
13745 (ROUND_TRUNC): Ditto.
13746 (ROUND_MXCSR): Ditto.
13747 (ROUND_NO_EXC): Ditto.
13748 (rint<mode>2): Use new defines instead of numerical constants.
13749 (floor<mode>2): Ditto.
13750 (ceil<mode>2): Ditto.
13751 (btrunc<mode>2): Ditto.
13752 * config/i386/i386-builtin-types.def: Define ROUND function type
13753 aliases.
13754 * config/i386/i386.c (enum ix86_builtins): Add
13755 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
13756 (struct builtin_description): Add
13757 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
13758 (ix86_expand_sse_round): New static function.
13759 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
13760 function types.
13761 (ix86_builtin_vectorized_function): Handle
13762 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
13763
87f9e23d
TT
137642011-03-14 Tom Tromey <tromey@redhat.com>
13765
13766 * c-parser.c (c_parser_asm_string_literal): Clear
13767 warn_overlength_strings.
13768
b3ab9ea2
TT
137692011-03-14 Tom Tromey <tromey@redhat.com>
13770
13771 * c-parser.c (disable_extension_diagnostics): Save
13772 warn_overlength_strings.
13773 (restore_extension_diagnostics): Restore warn_overlength_strings.
13774
6bd73dd8
JJ
137752011-03-14 Jakub Jelinek <jakub@redhat.com>
13776
13777 * BASE-VER: Change to 4.7.0.
13778
7f4d6e1b
RG
137792011-03-14 Richard Guenther <rguenther@suse.de>
13780
13781 PR middle-end/48098
13782 * tree.c (build_vector_from_val): Adjust assert to requirements
13783 and reality.
13784
c6104ef1
JJ
137852011-03-14 Jakub Jelinek <jakub@redhat.com>
13786
13787 PR bootstrap/48102
d34abfd2 13788 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 13789
dfa95e19
AT
137902011-03-14 Andreas Tobler <andreast@fgznet.ch>
13791
f60c2554 13792 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
13793 terms of target_flags_explicit. Adjust copyright year.
13794
13795 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
13796 * config/rs6000/t-freebsd: New file. Add override for
13797 LIB2FUNCS_EXTRA.
13798
bb322018
CD
137992011-03-13 Chris Demetriou <cgd@google.com>
13800
13801 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
13802 (-fno-diagnostics-show-option): this, to reflect current default.
13803 (-Werror=): Update text about -fno-diagnostics-show-option.
13804
12b1c80b
PB
138052011-03-12 Peter Bergner <bergner@vnet.ibm.com>
13806
13807 PR target/48053
13808 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13809 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
13810 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
13811 mode is not V2DImode or V2DFmode.
13812 (vspltis_constant): Do not handle V2DImode and V2DFmode.
13813 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
13814 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
13815 registers to 0.
13816 (movdi_internal64): Likewise.
13817
57d598f7
SP
138182011-03-12 Sebastian Pop <sebastian.pop@amd.com>
13819
13820 PR tree-optimization/47127
13821 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
13822 parameter.
13823 (set_cloog_options): Same.
13824 (scop_to_clast): Same.
13825 (print_clast_stmt): Do not call cloog_state_malloc and
13826 cloog_state_free.
13827 (print_generated_program): Same.
13828 (gloog): Same.
13829 * graphite-clast-to-gimple.h (cloog_state): Declared.
13830 (scop_to_clast): Adjust declaration.
13831 * graphite.c (cloog_state): Defined here.
13832 (graphite_initialize): Call cloog_state_malloc.
13833 (graphite_finalize): Call cloog_state_free.
13834
f231b5ff
JM
138352011-03-11 Jason Merrill <jason@redhat.com>
13836
13837 * attribs.c (lookup_attribute_spec): Take const_tree.
13838 * tree.h: Adjust.
13839
6a4e2bd5
JM
138402011-03-11 Joseph Myers <joseph@codesourcery.com>
13841
13842 * config/sparc/sparc.c (sparc_option_override): Use
13843 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
13844
a758fd67
RG
138452011-03-11 Richard Guenther <rguenther@suse.de>
13846
13847 PR tree-optimization/48067
13848 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
13849 multiplication result will be only used once on the target
13850 stmt.
13851
03dfda54
RG
138522011-03-11 Richard Guenther <rguenther@suse.de>
13853
13854 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
13855
5f11a50a
RG
138562011-03-11 Richard Guenther <rguenther@suse.de>
13857
13858 PR lto/48073
13859 * tree.c (find_decls_types_r): Do not walk types only reachable
13860 from IDENTIFIER_NODEs.
13861
4074f163
JJ
138622011-03-11 Jakub Jelinek <jakub@redhat.com>
13863
13864 PR middle-end/48044
13865 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
13866 all vnode->force_output nodes as needed.
13867
30f7cdcd
JM
138682011-03-11 Jason Merrill <jason@redhat.com>
13869
13870 PR c++/48069
13871 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
13872 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
13873
62ecfeb8
MJ
138742011-03-11 Martin Jambor <mjambor@suse.cz>
13875
13876 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
13877 cgraph_node.
13878
e89e03ab
JJ
138792011-03-11 Jakub Jelinek <jakub@redhat.com>
13880
13881 PR tree-optimization/48063
13882 * ipa-inline.c (cgraph_decide_inlining): Don't try to
13883 inline functions called once if !tree_can_inline_p (node->callers).
13884
efbe978b 138852011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 13886
efbe978b
EB
13887 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
13888 extra_objs.
9d6193a7
CL
13889 * config/score/score3.c: Delete.
13890 * config/score/score3.h: Delete.
13891 * config/score/mul-div.S: Delete.
13892 * config/score/sfp-machine.h: Add new file.
13893 * config/score/constraints.md: Add new file.
13894 * config/score/t-score-softfp: Add new file.
efbe978b 13895 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
13896 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
13897 (score7_extra_constraint): Delete.
efbe978b 13898 (score7_option_override): Remove unused code.
9d6193a7
CL
13899 * config/score/score.c: Remove score3 and score5 define and code.
13900 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 13901 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
13902 * config/score/score.opt: Remove score3 and score5 options.
13903
5de27cca
JDA
139042011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13905
13906 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
13907 when _HPUX_SOURCE is defined.
13908 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
13909
18d92053
JM
139102011-03-10 Jason Merrill <jason@redhat.com>
13911
13912 PR c++/48029
13913 * stor-layout.c (layout_type): Don't set structural equality
13914 on arrays of incomplete type.
13915 * tree.c (type_hash_eq): Handle comparing them properly.
13916
67a2f76d
JJ
139172011-03-10 Jakub Jelinek <jakub@redhat.com>
13918
13919 PR debug/48043
18d92053 13920 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
13921 result mode matches original rtl mode.
13922
d845b2f9
NC
139232011-03-10 Nick Clifton <nickc@redhat.com>
13924
13925 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 13926 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 13927
db7ec035
JJ
139282011-03-09 Jakub Jelinek <jakub@redhat.com>
13929
13930 PR rtl-optimization/47866
13931 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
13932 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
13933 if target wasn't scalar.
13934 * function.c (assign_stack_temp_for_type): Assert that neither
13935 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
13936 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
13937 macro.
13938 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
13939
5d304e47
AK
139402011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13941
13942 * config/s390/s390-protos.h (s390_label_align): New prototype.
13943 * config/s390/s390.c (s390_label_align): New function.
13944 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
13945
93b826f0
MM
139462011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
13947
13948 PR target/47755
13949 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
13950 V2DI/V2DF constants. Only all 0's or all 1's are easy.
13951 (output_vec_const_move): Ditto.
13952
ef78aed6
AS
139532011-03-08 Anatoly Sokolov <aesok@post.ru>
13954
13955 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
13956 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
13957 * config/mips/mips.c (mips_preferred_reload_class): Make static.
13958 Change 'rclass' argument and result type to reg_class_t.
13959 (TARGET_PREFERRED_RELOAD_CLASS): Define.
13960
5f892aa0
GJL
139612011-03-08 Georg-Johann Lay <avr@gjlay.de>
13962
9e43ad68
UB
13963 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13964 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
13965 (TARGET_MEMORY_MOVE_COST): Define.
13966 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 13967
32bd2409
JJ
139682011-03-08 Jakub Jelinek <jakub@redhat.com>
13969
530a4800
JJ
13970 PR debug/47881
13971 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
13972 removed anything.
13973
32bd2409
JJ
13974 PR tree-optimization/48022
13975 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
13976 for EQ/NE_EXPR.
13977
c7148991
JJ
139782011-03-07 Jakub Jelinek <jakub@redhat.com>
13979
13980 PR debug/47991
13981 * var-tracking.c (find_use_val): Return NULL for
13982 cui->sets && cui->store_p BLKmode MEMs.
13983
43070a6e
AS
139842011-03-07 Anatoly Sokolov <aesok@post.ru>
13985
13986 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
13987 Remove.
13988 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
13989 xstormy16_print_operand_address): Remove.
13990 * config/stormy16/stormy16.c (xstormy16_print_operand,
13991 xstormy16_print_operand_address): Make static.
13992 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13993
efbe978b 139942011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
13995
13996 PR target/47862
13997 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
13998 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
13999 before definition.
14000
cec8ac0b
ZD
140012011-03-07 Zdenek Dvorak <ook@ucw.cz>
14002
14003 PR bootstrap/48000
14004 * cfgloopmanip.c (fix_bb_placements): Return immediately
14005 if FROM is BASE_LOOP's header.
14006
59527282
PW
140072011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
14008
14009 * gimplify.c (gimplify_function_tree): Fix building calls
14010 to __builtin_return_address.
14011
617718f7
AM
140122011-03-07 Alan Modra <amodra@gmail.com>
14013
14014 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
14015 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
14016 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
14017 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
14018 return_mode args.
14019 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
14020 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
14021 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
14022 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
14023 * config/rs6000/rs6000.c
14024 (rs6000_elf_end_indicate_exec_stack): Rename to..
14025 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
14026 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
14027 (rs6000_file_start): ..here.
14028 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
14029 file scope variables.
14030 (call_ABI_of_interest): New function.
14031 (init_cumulative_args): Set above vars when function return value
14032 is a float, vector, or small struct.
14033 (rs6000_function_arg_advance_1): Likewise for function args.
14034 (rs6000_va_start): Set rs6000_passes_float if variable arg function
14035 references float args.
14036
38528d50
MX
140372011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
14038
14039 * doc/cfg.texi: Remove "See" before @ref.
14040 * doc/invoke.texi: Likewise.
14041
f42cf4f4
JM
140422011-03-05 Jason Merrill <jason@redhat.com>
14043
14044 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
14045
804a304d
AG
140462011-03-05 Anthony Green <green@moxielogic.com>
14047
14048 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
14049
634ee309
ZD
140502011-03-05 Zdenek Dvorak <ook@ucw.cz>
14051
14052 PR rtl-optimization/47899
14053 * cfgloopmanip.c (fix_bb_placements): Fix first argument
14054 to flow_loop_nested_p when moving the loop upward.
14055
6fe471c8
RE
140562011-03-05 Richard Earnshaw <rearnsha@arm.com>
14057
14058 PR target/47719
14059 * arm.md (movhi_insn_arch4): Accept any immediate constant.
14060
cc58ceee
JJ
140612011-03-05 Jakub Jelinek <jakub@redhat.com>
14062
14063 PR tree-optimization/47967
14064 * ipa-cp.c (build_const_val): Return NULL instead of creating
14065 VIEW_CONVERT_EXPR for mismatching sizes.
14066 (ipcp_create_replace_map): Return NULL if build_const_val failed.
14067 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
14068 give up on versioning.
14069
ea868305
AM
140702011-03-05 Alan Modra <amodra@gmail.com>
14071
14072 PR target/47986
14073 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
14074 full cmodel medium/large lo_sum + high addresses.
14075
bc6ce334
AK
140762011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14077
14078 * config/s390/s390.c (s390_decompose_address): Reject non-literal
14079 pool references in UNSPEC_LTREL_OFFSET.
14080
87e7b310
JH
140812011-03-04 Jan Hubicka <jh@suse.cz>
14082
14083 PR lto/47497
14084 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
14085 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
14086 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
14087 Add node pointers.
87e7b310
JH
14088 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
14089 cgraph_add_thunk): Add node pointers.
14090 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
14091 associated to right node.
14092 (input_node): Update use of cgraph_same_body_alias
14093 and cgraph_add_thunk.
14094
d9c64246
CF
140952011-03-04 Changpeng Fang <changpeng.fang@amd.com>
14096
14097 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
14098 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
14099 modes when the flag -mprefer-avx128 is on.
d9c64246 14100
08707076
RS
141012011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
14102
14103 * dwarf2out.c (compare_loc_operands): Fix address handling.
14104
52517c81
AM
141052011-03-04 Alan Modra <amodra@gmail.com>
14106
14107 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
14108
b147c5b9
RG
141092011-03-04 Richard Guenther <rguenther@suse.de>
14110
14111 PR middle-end/47968
14112 * expmed.c (extract_bit_field_1): Prefer vector modes that
14113 vec_extract patterns can handle.
14114
8750672f
RG
141152011-03-04 Richard Guenther <rguenther@suse.de>
14116
14117 PR middle-end/47975
14118 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
14119
9eac0f2a
RH
141202011-03-04 Richard Henderson <rth@redhat.com>
14121
14122 * explow.c (emit_stack_save): Remove 'after' parameter.
14123 (emit_stack_restore): Likewise.
14124 * expr.h: Update to match.
14125 * builtins.c, calls.c, stmt.c: Likewise.
14126 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
14127 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
14128 * function.c (expand_function_end): Insert the emit_stack_save
14129 sequence before parm_birth_insn instead of after.
14130
dfee1406
UB
141312011-03-03 Uros Bizjak <ubizjak@gmail.com>
14132
14133 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
14134 (ssse3_pmaddubsw128): Ditto.
14135 (ssse3_pmaddubsw): Ditto.
14136
f1d4c3de
SE
141372011-03-03 Steve Ellcey <sje@cup.hp.com>
14138
14139 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
14140
71f3a3f5
JJ
141412011-03-03 Jakub Jelinek <jakub@redhat.com>
14142
423ed416
JJ
14143 PR c/47963
14144 * gimplify.c (omp_add_variable): Only call omp_notice_variable
14145 on TYPE_SIZE_UNIT if it is a DECL.
14146
71f3a3f5
JJ
14147 PR debug/47283
14148 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
14149 first operand is not is_gimple_mem_ref_addr, try to fold it.
14150 If the operand still isn't is_gimple_mem_ref_addr, clear
14151 MEM_EXPR on op0.
14152
4b1a5c0d
RG
141532011-03-03 Richard Guenther <rguenther@suse.de>
14154
14155 PR middle-end/47283
14156 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
14157 match comment.
14158 (refs_may_alias_p_1): For release branches return true if
14159 we are confused by our input.
14160
b46616fd
AK
141612011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14162
14163 * config/s390/s390.c (s390_function_value): Rename to ...
14164 (s390_function_and_libcall_value): ... this.
14165 (s390_function_value): New function.
14166 (s390_libcall_value): New function.
dfee1406 14167 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
14168 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
14169 target macro definitions.
14170 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
14171
46d8fabb
JM
141722011-03-02 Joseph Myers <joseph@codesourcery.com>
14173
14174 * config/i386/freebsd64.h (CC1_SPEC): Define.
14175 * config/i386/linux64.h (CC1_SPEC): Define.
14176 * config/i386/x86-64.h (CC1_SPEC): Don't define.
14177
6b1ce545
AS
141782011-03-02 Anatoly Sokolov <aesok@post.ru>
14179
14180 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14181 Remove.
14182 * config/stormy16/stormy16.c: Include reload.h.
14183 (xstormy16_memory_move_cost): New function.
14184 (TARGET_MEMORY_MOVE_COST): Define.
14185
34161e98
RS
141862011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
14187
14188 PR rtl-optimization/47925
14189 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
14190 with side effects. Remove the more-specific check for volatile asms.
14191
f60a97cf
AM
141922011-03-02 Alan Modra <amodra@gmail.com>
14193
14194 PR target/47935
14195 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
14196 toc relative addresses for valid offsets.
14197
f2ca11ca
RG
141982011-03-01 Richard Guenther <rguenther@suse.de>
14199
14200 PR tree-optimization/47890
14201 * tree-vect-loop.c (get_initial_def_for_induction): Set
14202 related stmt properly.
14203
7a00d9ea
RG
142042011-03-01 Richard Guenther <rguenther@suse.de>
14205
14206 PR lto/47924
14207 * lto-streamer.c (lto_record_common_node): Also register
14208 the canonical type.
14209
06c7edcc
RG
142102011-03-01 Richard Guenther <rguenther@suse.de>
14211
14212 PR lto/46911
14213 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14214 Do not stream DECL_ABSTRACT_ORIGIN.
14215 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
14216 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
14217 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14218 Do not stream DECL_ABSTRACT_ORIGIN.
14219 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
14220 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
14221
998871e9
AS
142222011-02-28 Anatoly Sokolov <aesok@post.ru>
14223
14224 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
14225 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 14226 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
14227 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
14228 Add 'outgoing' argument.
14229 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
14230 function.
14231 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14232 TARGET_FUNCTION_VALUE_REGNO_P): Define.
14233
94369251
KT
142342011-02-28 Kai Tietz <kai.tietz@onevision.com>
14235
14236 PR debug/28047
14237 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
14238 (lookup_filename): Likewise.
b2e2ea67 14239 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 14240
80a832cd
JJ
142412011-02-28 Bernd Schmidt <bernds@codesourcery.com>
14242 Jakub Jelinek <jakub@redhat.com>
14243
14244 PR middle-end/47893
14245 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
14246 (assign_stack_local_1): Change last argument type to int.
14247 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
14248 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 14249 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
14250 (assign_stack_local): Adjust caller.
14251 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
14252 of assign_stack_local, pass 0 as last argument.
14253 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
14254 callers.
14255
1b500976
JJ
142562011-02-28 Jakub Jelinek <jakub@redhat.com>
14257
f61c6f34
JJ
14258 PR debug/47283
14259 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
14260 Use target address_mode and pointer_mode hooks instead of hardcoded
14261 Pmode and ptr_mode. Handle some simple cases of extending if
14262 POINTERS_EXTEND_UNSIGNED < 0.
14263 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
14264 Call convert_debug_memory_address.
14265 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
14266 convert_debug_memory_address.
14267
1b500976
JJ
14268 PR middle-end/46790
14269 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
14270 * configure: Regenerated.
14271 * config.in: Regenerated.
14272 * varasm.c (default_function_section): Return NULL
b2e2ea67 14273 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 14274
2f2935b6
MJ
142752011-02-28 Martin Jambor <mjambor@suse.cz>
14276
14277 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
14278 the description to match the printed values.
14279
474086eb
RG
142802011-02-28 Richard Guenther <rguenther@suse.de>
14281
14282 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
14283 of the copied scope tree.
14284
15bf6f3a
RW
142852011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14286
14287 * doc/extend.texi (Function Attributes): Avoid deeply (and
14288 wrongly) nested tables.
14289
f6b439c9
JJ
142902011-02-27 Jakub Jelinek <jakub@redhat.com>
14291
14292 PR middle-end/47903
14293 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
14294 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
14295 r isn't op0 nor op1.
14296
1d8ca2c7
GJL
142972011-02-23 Georg-Johann Lay <avr@gjlay.de>
14298
14299 * config/avr/avr.md: Remove magic comment for emacs.
14300
593fca4b
GJL
143012011-02-23 Georg-Johann Lay <avr@gjlay.de>
14302
14303 PR target/45261
14304 * config/avr/avr.c (avr_option_override): Use error on bad options.
14305 (avr_help): New function.
14306 (TARGET_HELP): Define.
14307
6609216e
GJL
143082011-02-22 Georg-Johann Lay <avr@gjlay.de>
14309
14310 PR target/42240
14311 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
14312 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
14313
03d458af
GP
143142011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
14315
14316 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
14317 (ARM Options): Ditto.
14318 (i386 and x86-64 Options): Ditto.
14319 (RX Options): Ditto.
14320 (SPARC Options): Ditto.
14321
1c379b78
TC
143222011-02-26 Tijl Coosemans <tijl@coosemans.org>
14323
14324 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
14325 FreeBSD 6 and later. Generally use cpu generic.
14326
d5ed058c 143272011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 14328
d5ed058c
GP
14329 * doc/cpp.texi: Update copyright years.
14330
509d65dd 143312011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 14332
509d65dd 14333 PR target/46898
308d39cd
SB
14334 * config/lm32/lm32.md (ashrsi3): Added needed variable.
14335
509d65dd 143362011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 14337
509d65dd 14338 PR target/46898
308d39cd
SB
14339 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
14340 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
14341 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
14342 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 14343 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
14344 (gen_int_relational): Move declarations to start of function.
14345
822ba6d7
EB
143462011-02-25 Eric Botcazou <ebotcazou@adacore.com>
14347
14348 PR tree-optimization/45470
14349 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
14350 can throw internally only.
14351 * tree-vect-stmts.c (vectorizable_call): Likewise.
14352
ef795fc2
AS
143532011-02-24 Anatoly Sokolov <aesok@post.ru>
14354
14355 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
14356 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
14357 * config/stormy16/stormy16-protos.h
14358 (xstormy16_preferred_reload_class): Remove.
14359 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
14360 static. Change 'rclass' argument and return type to reg_class_t.
14361 (TARGET_PREFERRED_RELOAD_CLASS,
14362 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
14363
1c3277ee
RG
143642011-02-24 Richard Guenther <rguenther@suse.de>
14365
14366 * lto-streamer-in.c (input_bb): Do not find referenced vars
14367 in debug statements.
14368
67e18edb
JM
143692011-02-23 Jason Merrill <jason@redhat.com>
14370
14371 * common.opt (fabi-version): Document v5 and v6.
14372
b14fad9d
RG
143732011-02-23 Richard Guenther <rguenther@suse.de>
14374
14375 PR tree-optimization/47849
14376 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
14377
7fcf46f5
JZ
143782011-02-23 Jie Zhang <jie@codesourcery.com>
14379
14380 * opts-common.c (decode_cmdline_option): Print empty string
14381 argument as "" in decoded->orig_option_with_args_text.
14382 * gcc.c (execute): Print empty string argument as ""
14383 in the verbose output.
14384 (do_spec_1): Keep empty string argument.
14385
f85b70fd
NF
143862011-02-23 Nathan Froyd <froydnj@codesourcery.com>
14387
14388 * config.gcc: Declare score-* and crx-* obsolete.
14389
b152a615
JZ
143902011-02-23 Jie Zhang <jie@codesourcery.com>
14391
14392 PR rtl-optimization/47763
14393 * web.c (web_main): Ignore naked clobber when replacing register.
14394
bb6e77bc
AS
143952011-02-22 Anatoly Sokolov <aesok@post.ru>
14396
14397 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14398 Remove.
14399
68bf6491
SP
144002011-02-22 Sebastian Pop <sebastian.pop@amd.com>
14401
14402 PR doc/47848
14403 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
14404
88ee1fc7
MS
144052011-02-22 Mike Stump <mikestump@comcast.net>
14406
14407 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
14408 assembler.
14409 * configure: Regenerate.
14410
6042d1dd
CLT
144112011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
14412
14413 PR rtl-optimization/46002
14414 * ira-color.c (update_copy_costs): Change class intersection
14415 test to reg_class_contents[] test of 'hard_regno'.
14416
7de97f9e
JM
144172011-02-21 Joseph Myers <joseph@codesourcery.com>
14418
14419 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
14420 than Driver option.
14421 * config/hpux11.opt (mt): Likewise.
14422 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
14423 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
14424 * config/vax/elf.opt (mno-asm-pic): Likewise.
14425 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
14426
d1d46f9f
MS
144272011-02-21 Mike Stump <mikestump@comcast.net>
14428
14429 PR target/47822
14430 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
14431 tree so we can get save the type.
14432 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
14433 for CFString instead of trying to use past the end of the builtins.
14434 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
14435 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
14436 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
14437 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
14438 Rename to darwin_builtin_cfstring.
14439 (darwin_init_cfstring_builtins): Return the built type.
14440
23e0d930
UB
144412011-02-21 Uros Bizjak <ubizjak@gmail.com>
14442
14443 PR target/47840
14444 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
14445 (_mm256_insert_epi64): Use _mm_insert_epi64.
14446
192997cf
AS
144472011-02-21 Anatoly Sokolov <aesok@post.ru>
14448
14449 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14450 * config/stormy16/stormy16-protos.h
14451 (xstormy16_mode_dependent_address_p): Remove.
14452 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
14453 Make static. Change return type to bool. Change argument type to
14454 const_rtx. Remove dead code.
14455 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14456
e292d003
RG
144572011-02-21 Richard Guenther <rguenther@suse.de>
14458
14459 PR lto/47820
14460 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14461 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
14462 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
14463 TUs context.
23e0d930 14464 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
14465 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
14466
77f846e9
RG
144672011-02-20 Richard Guenther <rguenther@suse.de>
14468
14469 PR lto/47822
14470 * tree.c (free_lang_data_in_decl): Clean builtins from
14471 the TU decl BLOCK_VARS.
23e0d930 14472
b2cddfc8
AO
144732011-02-19 Alexandre Oliva <aoliva@redhat.com>
14474
14475 PR debug/47620
14476 PR debug/47630
14477 * haifa-sched.c (fix_tick_ready): Skip tick computation
14478 for debug insns.
14479
becf4c11
RG
144802011-02-19 Richard Guenther <rguenther@suse.de>
14481
14482 PR lto/47647
14483 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
14484 Remove lazy BLOCK_VARS streaming.
14485 (lto_input_ts_block_tree_pointers): Likewise.
14486 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
14487
27f98305
JM
144882011-02-19 Joseph Myers <joseph@codesourcery.com>
14489
14490 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
14491
064bf3f4
JM
144922011-02-19 Joseph Myers <joseph@codesourcery.com>
14493
14494 * config/i386/biarch32.h, config/i386/mach.h,
14495 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
14496
9215ddc3
JJ
144972011-02-19 Jakub Jelinek <jakub@redhat.com>
14498
14499 PR target/47800
14500 * config/i386/i386.md (peephole2 for shift and plus): Use
14501 operands[1] original mode in the first insn.
14502
8b021004
MS
145032011-02-18 Mike Stump <mikestump@comcast.net>
14504
65ded153 14505 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 14506
f84ae14c
JH
145072011-02-18 Jan Hubicka <jh@suse.cz>
14508
14509 PR middle-end/47788
65ded153
EB
14510 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
14511 to zero when the function is not inlinable at all.
f84ae14c 14512
eddabc80
JDA
145132011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14514
14515 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
14516 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14517 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
14518 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
14519 * config/pa/t-pa64: Likewise.
14520 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
14521
ca3da783
JJ
145222011-02-18 Jakub Jelinek <jakub@redhat.com>
14523
14524 PR driver/47787
14525 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
14526
430aa868
JDA
145272011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14528
14529 PR target/47792
14530 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
14531
4bf7ff7e
AS
145322011-02-18 Anatoly Sokolov <aesok@post.ru>
14533
14534 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
14535 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
14536 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
14537 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
14538 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
14539 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
14540 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
14541 m32r_load_postinc_p, m32r_store_preinc_predec_p,
14542 m32r_legitimate_address_p): New functions.
14543 * config/m32r/constraints.md (constraint "S"): Don't use
14544 STORE_PREINC_PREDEC_P.
14545 (constraint "U"): Don't use LOAD_POSTINC_P.
14546
7efcf910
CLT
145472011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
14548
14549 PR rtl-optimization/46178
14550 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
14551 compute ira_hard_regno_cover_class[].
14552
237d6259
RG
145532011-02-18 Richard Guenther <rguenther@suse.de>
14554
14555 PR lto/47798
14556 * lto-streamer.h (lto_global_var_decls): Declare.
14557 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
14558 statics for global var processing.
14559
12d80acc
RG
145602011-02-18 Richard Guenther <rguenther@suse.de>
14561
14562 PR tree-optimization/47737
14563 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
14564 edge dominance check.
14565
abfea58d
JJ
145662011-02-18 Jakub Jelinek <jakub@redhat.com>
14567
14568 PR debug/47780
14569 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
14570 avoid invalid rtx sharing.
14571
f73c8882
GP
145722011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
14573
14574 * doc/cpp.texi (Obsolete Features): Add background on the
14575 origin of assertions.
14576
d764a8e6
IS
145772011-02-17 Iain Sandoe <iains@gcc.gnu.org>
14578
14579 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 14580 objc_abi == 2.
d764a8e6
IS
14581 * config/darwin.c (output_objc_section_asm_op): Added support for
14582 ABI v1 and v2.
14583 (is_objc_metadata): New.
14584 (darwin_objc2_section): New.
14585 (darwin_objc1_section): New.
14586 (machopic_select_section): Added support for ABI v1 and v2.
14587 (darwin_emit_objc_zeroed): New.
14588 (darwin_output_aligned_bss): Detect objc metadata and treat it
14589 appropriately.
14590 (darwin_asm_output_aligned_decl_common): Same.
14591 (darwin_asm_output_aligned_decl_local): Same.
14592 * config/darwin-sections.def: Updated for ABI v1 and v2.
14593 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
14594 compiling Objective-C code for the NeXT runtime, default to using
14595 ABI version 0 for 32-bit, and version 2 for 64-bit.
14596
0a8134ca
JM
145972011-02-17 Joseph Myers <joseph@codesourcery.com>
14598
14599 * common.opt (optimize_fast): New Variable.
14600 * opts.c (default_options_optimization): Use opts->x_optimize_fast
14601 instead of local variable ofast.
14602
0a256240
NP
146032011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
14604
14605 * doc/invoke.texi (fobjc-abi-version): Documented.
14606 (fobjc-nilcheck): Documented.
14607 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
14608 version.
14609
fa381cb2
JM
146102011-02-17 Joseph Myers <joseph@codesourcery.com>
14611
14612 PR driver/47390
14613 * common.opt (export-dynamic): New Driver option.
14614 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
14615
5437eaa6
JM
146162011-02-17 Joseph Myers <joseph@codesourcery.com>
14617
14618 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
14619
bb7e6d55
AO
146202011-02-17 Alexandre Oliva <aoliva@redhat.com>
14621 Jan Hubicka <jh@suse.cz>
14622
14623 PR debug/47106
14624 PR debug/47402
14625 * cfgexpand.c (account_used_vars_for_block): Remove.
14626 (estimated_stack_frame_size): Use referenced vars.
14627 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
14628 that were referenced in the original function. Test src_fn
14629 rather than cfun. Drop redundant get_var_ann.
14630 (setup_one_parameter): Drop redundant get_var_ann.
14631 (declare_return_variable): Likewise.
14632 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
14633 (copy_arguments_for_versioning): Drop redundant get_var_ann.
14634 * ipa-inline.c (compute_inline_parameters): Do not compute
14635 disregard_inline_limits here.
bb7e6d55
AO
14636 (compute_inlinable_for_current, pass_inlinable): New.
14637 (pass_inline_parameters): Require PROP_referenced_vars.
14638 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 14639 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
14640 (cgraph_analyze_function): Set .disregard_inline_limits.
14641 * tree-sra.c (convert_callers): Compute inliner parameters
14642 only for functions already in SSA form.
14643
f181a8a7
JM
146442011-02-17 Joseph Myers <joseph@codesourcery.com>
14645
14646 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
14647 -mlittle-endian-data.
14648
c6869789
JM
146492011-02-17 Joseph Myers <joseph@codesourcery.com>
14650
14651 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
14652 -mno-fpu, not -fpu and -no-fpu.
14653 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
14654 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
14655
fbf4bfd3
UB
146562011-02-17 Uros Bizjak <ubizjak@gmail.com>
14657
14658 PR target/43653
14659 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
14660 input reload with PLUS RTX.
14661
70be5dc7
JM
146622011-02-16 Joseph Myers <joseph@codesourcery.com>
14663
14664 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
14665 of InverseVar(MDMX).
14666
30b1646e
JM
146672011-02-16 Joseph Myers <joseph@codesourcery.com>
14668
14669 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
14670 --m4-340.
14671
ab7b71e9
JM
146722011-02-16 Joseph Myers <joseph@codesourcery.com>
14673
14674 * config/mn10300/mn10300.opt (mno-crt0): New.
14675
466f3f08
JM
146762011-02-16 Joseph Myers <joseph@codesourcery.com>
14677
14678 * config/m68k/uclinux.opt (static-libc): New Driver option.
14679
8226cd7b
JM
146802011-02-16 Joseph Myers <joseph@codesourcery.com>
14681
14682 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
14683
45cab1d7
JM
146842011-02-16 Joseph Myers <joseph@codesourcery.com>
14685
14686 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
14687 %{muser-extend-enabled}.
14688
65aab64f
RG
146892011-02-16 Richard Guenther <rguenther@suse.de>
14690
14691 PR tree-optimization/47738
14692 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
14693 the TODO from tree_predictive_commoning.
14694
fc2fa4fb
JL
146952011-02-15 Jeff Law <law@redhat.com>
14696
14697 Revert
14698 2011-01-25 Jeff Law <law@redhat.com>
14699
14700 PR rtl-optimization/37273
14701 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14702 handle them like argument loads from stack slots. Do not double
14703 count memory for memory constants and argument loads from stack slots.
14704
4e380b8e
L
147052011-02-15 H.J. Lu <hongjiu.lu@intel.com>
14706
14707 PR middle-end/47725
14708 * combine.c (cant_combine_insn_p): Revert the last change.
14709
e3a69bb4
MM
147102011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
14711
14712 PR target/47755
14713 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
14714 mode for vector constants. Remove code that checks for TImode.
14715
de650422
AO
147162011-02-15 Alexandre Oliva <aoliva@redhat.com>
14717
14718 PR debug/47106
14719 PR debug/47402
14720 * cgraph.h (compute_inline_parameters): Return void.
14721 * ipa-inline.c (compute_inline_parameters): Adjust.
14722
30925d94
AO
147232011-02-15 Alexandre Oliva <aoliva@redhat.com>
14724
14725 PR debug/47106
14726 PR debug/47402
14727 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
14728 rather than decl.
14729 * cfgexpand.c (estimated_stack_frame_size): Likewise.
14730 * ipa-inline.c (compute_inline_parameters): Adjust.
14731
1b9a784a
AO
147322011-02-15 Alexandre Oliva <aoliva@redhat.com>
14733
14734 PR debug/47106
14735 PR debug/47402
14736 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
14737 Adjust all users. Pass FN to...
14738 * tree-flow-inline.h (first_referenced_var): ... this. Add
14739 fn argument.
14740 * ipa-struct-reorg.c: Adjust.
14741 * tree-dfa.c: Adjust.
14742 * tree-into-ssa.c: Adjust.
14743 * tree-sra.c: Adjust.
14744 * tree-ssa-alias.c: Adjust.
14745 * tree-ssa-live.c: Adjust.
14746 * tree-ssa.c: Adjust.
14747 * tree-ssanames.c: Adjust.
14748 * tree-tailcall.c: Adjust.
14749
27c6b086
AO
147502011-02-15 Alexandre Oliva <aoliva@redhat.com>
14751
14752 PR debug/47106
14753 PR debug/47402
14754 * tree-flow.h (referenced_var_lookup): Add fn parameter.
14755 Adjust all callers.
14756 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
14757 * tree-flow-inline.h: Adjust.
14758 * gimple-pretty-print.c: Adjust.
14759 * tree-into-ssa.c: Adjust.
14760 * tree-ssa.c: Adjust.
14761 * cfgexpand.c: Adjust.
14762
679e8183
NF
147632011-02-15 Nathan Froyd <froydnj@codesourcery.com>
14764
fbf4bfd3
UB
14765 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
14766 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14767 (EXTRA_CONSTRAINT): Delete.
14768 * config/iq2000/constraints.md: New file.
14769 * config/iq2000/iq2000.md: Include it.
679e8183
NF
14770 (define_insn ""): Delete.
14771 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
14772 unsupported constraint letters from patterns.
14773 (call_value, call_value_internal1): Likewise.
14774 (call_value_multiple_internal1): Likewise.
14775
a45d420a
NC
147762011-02-15 Nick Clifton <nickc@redhat.com>
14777
14778 * config/mn10300/mn10300.c: Include tm-constrs.h.
14779 (struct liw_data): New data structure describing an LIW candidate
14780 instruction.
14781 (extract_bundle): Use struct liw_data. Allow small integer
14782 operands for some instructions.
14783 (check_liw_constraints): Use struct liw_data. Remove swapped
14784 parameter. Add comments describing the checks. Fix bug when
14785 assigning the source of liw1 to the source of liw2.
14786 (liw_candidate): Delete. Code moved into extract_bundle.
14787 (mn10300_bundle_liw): Use struct liw_data. Check constraints
14788 before swapping.
14789 * config/mn10300/predicates.md (liw_operand): New predicate.
14790 Allows registers and small integer constants.
14791 * config/mn10300/constraints.md (O): New constraint. Accetps
14792 integers in the range -8 to +7 inclusive.
14793 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
14794 for moving a small integer into a register. Give this alternative
14795 LIW attributes.
14796 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
14797 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
14798 using the J,K,L and M constraints,
14799 (liw): Remove SI mode on second operands to allow for HI and QI
14800 mode values.
14801 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
14802 instruction.
14803
8a73faf1
L
148042011-02-15 H.J. Lu <hongjiu.lu@intel.com>
14805
14806 PR middle-end/47725
14807 * combine.c (cant_combine_insn_p): Check zero/sign extended
14808 hard registers.
14809
48feba28
RG
148102011-02-15 Richard Guenther <rguenther@suse.de>
14811
14812 PR tree-optimization/47743
14813 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
14814 for a non-type-compatible VN lookup bail out.
14815
ad1c1eeb
NF
148162011-02-15 Nathan Froyd <froydnj@codesourcery.com>
14817
14818 * config/fr30/constraints.md: New file.
14819 * config/fr30/fr30.md: Include it.
14820 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
14821 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14822 (EXTRA_CONSTRAINT): Delete.
14823
49ac143d
NF
148242011-02-15 Nathan Froyd <froydnj@codesourcery.com>
14825
14826 * config/frv/constraints.md: New file.
14827 * config/frv/predicates.md: Include it.
14828 * config/frv/frv.c (reg_class_from_letter): Delete.
14829 (frv_option_override): Don't initialize it.
14830 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
14831 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
14832 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
14833 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
14834 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
14835 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14836 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
14837 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
14838 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
14839 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
14840 (REG_CLASS_FROM_CONSTRAINT): Delete.
14841
c95f9494
JJ
148422011-02-15 Jakub Jelinek <jakub@redhat.com>
14843
14844 PR middle-end/47581
14845 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
14846 if frame size is 0 in a leaf function.
14847
13aed611
RO
148482011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14849
14850 PR pch/14940
14851 * config/alpha/host-osf.c: New file.
14852 * config/alpha/x-osf: New file.
14853 * config.host (alpha*-dec-osf*): Use it.
14854
b09c3081
AS
148552011-02-14 Anatoly Sokolov <aesok@post.ru>
14856
14857 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14858 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
14859 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
14860 (rx_mode_dependent_address_p): ...this. Make static. Change argument
14861 type to const_rtx.
14862 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14863
d634083b
NF
148642011-02-14 Nathan Froyd <froydnj@codesourcery.com>
14865
14866 * config/stormy16/constraints.md: New file.
14867 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
14868 Use satisfies_constraint_Q and satisfies_constraint_R.
14869 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
14870 Delete.
14871 (xstormy16_legitiamte_address_p): Declare.
14872 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
14873 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14874 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 14875 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
14876 Un-staticize.
14877 (xstormy16_extra_constraint_p): Delete.
14878
c7dd803e
EB
148792011-02-14 Eric Botcazou <ebotcazou@adacore.com>
14880
14881 PR tree-optimization/46494
14882 * loop-unroll.c (split_edge_and_insert): Adjust comment.
14883 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
14884 (pass_rtl_loop_done): Add TODO_verify_flow.
14885 * fwprop.c (pass_rtl_fwprop): Likewise.
14886 * modulo-sched.c (pass_sms): Likewise.
14887 * tree-ssa-dom.c (pass_dominator): Likewise.
14888 * tree-ssa-loop-ch.c (pass_ch): Likewise.
14889 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
14890 (pass_tree_loop_done): Likewise.
14891 * tree-ssa-pre.c (execute_pre): Likewise.
14892 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
14893 * tree-ssa-sink.c (pass_sink_code): Likewise.
14894 * tree-vrp.c (pass_vrp): Likewise.
14895
c6150df6
NF
148962011-02-14 Nathan Froyd <froydnj@codesourcery.com>
14897
c7dd803e
EB
14898 * config/v850/constraints.md: New file.
14899 * config/v850/v850.md: Include it.
14900 * config/v850/predicates.md (reg_or_0_operand): Use
14901 satisfies_constraint_G.
14902 (special_symbolref_operand): Use satisfies_constraint_K.
14903 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
14904 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
14905 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
14906 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
14907 (EXTRA_CONSTRAINT): Delete.
14908 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
14909 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
14910 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 14911
30dd1ea3
AS
149122011-02-14 Anatoly Sokolov <aesok@post.ru>
14913
14914 PR target/47696
14915 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
14916 description.
14917
944f4bb3
NF
149182011-02-14 Nathan Froyd <froydnj@codesourcery.com>
14919
14920 * config/mcore/constraints.md: New file.
14921 * config/mcore/mcore.md: Include it.
14922 * config/mcore/mcore.c (reg_class_from_letter): Delete.
14923 * config/mcore/mcore.h (reg_class_from_letter): Delete.
14924 (REG_CLASS_FROM_LETTER): Delete.
14925 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
14926 insn_const_int_ok_for_constraint.
14927 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
14928 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
14929 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14930 (EXTRA_CONSTRAINT): Delete.
14931
ad56a54c
RO
149322011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14933
14934 PR ada/41929
14935 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
14936 (IS_SIGHANDLER): Define.
14937 (sparc64_is_sighandler): New function, split off from
14938 sparc64_fallback_frame_state.
14939 (sparc_is_sighandler): New function, split off from
14940 sparc_fallback_frame_state.
14941 (sparc64_fallback_frame_state): Merge with ...
14942 (sparc_fallback_frame_state): ... this into ...
14943 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
14944 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
14945 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
14946 stack instead of hardcoded offsets.
ad56a54c 14947
fbf4bfd3 149482011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
14949
14950 PR target/45808
14951 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
14952
029c8f3e
RW
149532011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14954
14955 * configure: Regenerate.
14956
a016dc83
JM
149572011-02-12 Joseph Myers <joseph@codesourcery.com>
14958
14959 PR driver/45731
14960 * gcc.c (asm_options): Correct spec matching --target-help.
14961
8957a0ec
MJ
149622011-02-12 Martin Jambor <mjambor@suse.cz>
14963
14964 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
14965 to gimple call error.
14966
6ef828bc
MS
149672011-02-12 Mike Stump <mikestump@comcast.net>
14968
14969 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
14970 comments in backslash regions.
14971
a4015be5
MS
149722011-02-12 Mike Stump <mikestump@comcast.net>
14973 Jakub Jelinek <jakub@redhat.com>
14974 Iain Sandoe <iains@gcc.gnu.org>
14975
14976 PR target/47324
14977 * dwarf2out.c (output_cfa_loc): When required, apply the
14978 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
14979 (output_loc_sequence): Likewise.
14980 (output_loc_operands_raw): Likewise.
14981 (output_loc_sequence_raw): Likewise.
14982 (output_cfa_loc): Likewise.
14983 (output_loc_list): Suppress register number adjustment when
14984 calling output_loc_sequence()
14985 (output_die): Likewise.
14986
5378dda2
AS
149872011-02-12 Anatoly Sokolov <aesok@post.ru>
14988
14989 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14990 Remove macros.
14991 * config/xtensa/xtensa.c (xtensa_register_move_cost,
14992 xtensa_memory_move_cost): New functions.
14993 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
14994
f3d533d3
AO
149952011-02-12 Alexandre Oliva <aoliva@redhat.com>
14996
14997 PR lto/47225
14998 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
14999 in the current directory.
15000 * configure: Rebuilt.
15001
9d53403c
IS
150022011-02-12 Iain Sandoe <iains@gcc.gnu.org>
15003
15004 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 15005 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
15006 correct indents of the preceding block.
15007
a350a6c8
IS
150082011-02-12 Iain Sandoe <iains@gcc.gnu.org>
15009
15010 * gcc.c (driver_handle_option): Concatenate the argument to -F with
15011 the switch.
15012
bab79a40
JM
150132011-02-11 Joseph Myers <joseph@codesourcery.com>
15014
15015 * common.opt (nostartfiles): New Driver option.
15016
1bbc6693
XDL
150172011-02-11 Xinliang David Li <davidxl@google.com>
15018
15019 PR tree-optimization/47707
15020 * tree-chrec.c (convert_affine_scev): Keep type precision.
15021
1da7d8c0
EB
150222011-02-11 Eric Botcazou <ebotcazou@adacore.com>
15023
15024 PR tree-optimization/47420
15025 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
15026
150272011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
15028
15029 PR rtl-optimization/47614
15030 * rtl.h (check_for_inc_dec): Declare.
15031 * dse.c (check_for_inc_dec): Externalize...
15032 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
15033 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
15034
4df47bca
JM
150352011-02-11 Joseph Myers <joseph@codesourcery.com>
15036
15037 PR driver/47678
15038 * gcc.c (main): Do not compile inputs if there were errors in
15039 option handling.
15040 * opts-common.c (read_cmdline_option): Check for wrong language
15041 after other error checks.
15042
61502ca8
NF
150432011-02-11 Nathan Froyd <froydnj@codesourcery.com>
15044
15045 * cgraph.c: Fix comment typos.
15046 * cgraph.h: Likewise.
15047 * cgraphunit.c: Likewise.
15048 * ipa-cp.c: Likewise.
15049 * ipa-inline.c: Likewise.
15050 * ipa-prop.c: Likewise.
15051 * ipa-pure-const.c: Likewise.
15052 * ipa-ref.c: Likewise.
15053 * ipa-reference.c: Likewise.
15054
b63f974e
JJ
150552011-02-11 Jakub Jelinek <jakub@redhat.com>
15056
d50c5e0c
JJ
15057 PR debug/47684
15058 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 15059
6dd2a13c
RO
150602011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15061
15062 PR testsuite/47400
15063 * doc/sourcebuild.texi (Require Support): Document
15064 dg-require-ascii-locale.
15065
4a087ccf
MX
150662011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
15067
15068 * doc/lto.texi (Write summary): Fix missing parentheses.
15069
a4403164
DD
150702011-02-10 DJ Delorie <dj@redhat.com>
15071
15072 * config/m32c/m32c.c (m32c_option_override): Disable
15073 -fcombine-stack-adjustments until flag value tracking and compare
15074 optimization can be rewritten.
15075
4fac45bd
PB
150762011-02-10 Peter Bergner <bergner@vnet.ibm.com>
15077
15078 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
15079 PROCESSOR_POWER7.
15080 (PROCESSOR_DEFAULT64): Likewise.
15081
72602cd1
RH
150822011-02-10 Richard Henderson <rth@redhat.com>
15083
15084 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
15085 change from 2011-02-03.
15086 * config/rx/rx.c (flags_from_code): Likewise.
15087 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
15088 is valid, n/pz otherwise.
15089 (rx_select_cc_mode): Return CCmode if Y is not zero.
15090
ea57f573
RG
150912011-02-10 Richard Guenther <rguenther@suse.de>
15092
ea4c3e65 15093 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 15094
92b1d23b
RG
150952011-02-10 Richard Guenther <rguenther@suse.de>
15096
15097 PR tree-optimization/47677
15098 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
15099
525a2d06
JJ
151002011-02-10 Jakub Jelinek <jakub@redhat.com>
15101
15102 PR target/47665
15103 * combine.c (make_compound_operation): Only change shifts into
15104 multiplication for SCALAR_INT_MODE_P.
15105
06c969bd
JZ
151062011-02-10 Jie Zhang <jie@codesourcery.com>
15107
15108 PR testsuite/47622
15109 Revert
15110 2011-02-05 Jie Zhang <jie@codesourcery.com>
15111 PR debug/42631
15112 * web.c (entry_register): Don't clobber the number of the
15113 first uninitialized reference in used[].
15114
282ec48e
RG
151152011-02-09 Richard Guenther <rguenther@suse.de>
15116
15117 PR tree-optimization/47664
15118 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
15119 all edges again.
15120
df98c3e8
DE
151212011-02-09 David Edelsohn <dje.gcc@gmail.com>
15122
d0f21cd6
DE
15123 PR target/46481
15124 PR target/47032
df98c3e8
DE
15125 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
15126 PROCESSOR_POWER7.
15127 (PROCESSOR_DEFAULT64): Same.
15128 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
15129
67b6839f
RO
151302011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15131
15132 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
15133
4fd73214
MJ
151342011-02-09 Martin Jambor <mjambor@suse.cz>
15135
15136 PR middle-end/45505
15137 * tree-sra.c (struct access): New flags grp_scalar_read and
15138 grp_scalar_write. Changed description of assignment read and write
15139 flags.
15140 (dump_access): Dump new flags, reorder all of them.
15141 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
15142 to detect multiple scalar reads.
15143 (analyze_access_subtree): Use the new scalar read write flags instead
15144 of the old flags. Adjusted comments.
15145
91140cd3
DD
151462011-02-08 DJ Delorie <dj@redhat.com>
15147
15148 PR target/47548
15149 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
15150 patterns.
15151
4254bbfe
JM
151522011-02-08 Joseph Myers <joseph@codesourcery.com>
15153
15154 * config/m68k/uclinux.opt: New.
15155 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
15156
f1fda84e
JM
151572011-02-08 Joseph Myers <joseph@codesourcery.com>
15158
15159 * config/cris/elf.opt (sim): New Driver option.
15160
4933ae74
JM
151612011-02-08 Joseph Myers <joseph@codesourcery.com>
15162
15163 * config/xtensa/elf.opt: New.
15164 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
15165
4ad70280
JM
151662011-02-08 Joseph Myers <joseph@codesourcery.com>
15167
15168 * config/vax/elf.opt: New.
15169 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
15170
20893707
JM
151712011-02-08 Joseph Myers <joseph@codesourcery.com>
15172
15173 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
15174
b8e7038e
JM
151752011-02-08 Joseph Myers <joseph@codesourcery.com>
15176
15177 * config/gnu-user.opt: New.
15178 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
15179 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
15180 *-*-uclinux*): Use gnu-user.opt.
15181
e1c5225a
TS
151822011-02-08 Thomas Schwinge <thomas@schwinge.name>
15183
15184 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
15185 * config/i386/gnu.h (CPP_SPEC): Likewise.
15186
5e46b0c6
ILT
151872011-02-08 Ian Lance Taylor <iant@google.com>
15188
15189 * common.opt (fcx-limited-range): Add SetByCombined flag.
15190 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
15191 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
15192 (fassociative-math, freciprocal-math): Likewise.
15193 (funsafe-math-optimizations): Likewise.
15194 * opth-gen.awk: Handle SetByCombined.
15195 * optc-gen.awk: Likewise.
ea4c3e65 15196 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
15197 (set_unsafe_math_optimizations_flags): Likewise.
15198 * doc/options.texi (Option properties): Document SetByCombined.
15199
32243d46
JM
152002011-02-08 Joseph Myers <joseph@codesourcery.com>
15201
15202 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
15203 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
15204 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
15205 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
15206 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
15207
479c1fb3
SP
152082011-02-08 Sebastian Pop <sebastian.pop@amd.com>
15209
15210 PR tree-optimization/46834
15211 PR tree-optimization/46994
15212 PR tree-optimization/46995
15213 * graphite-sese-to-poly.c (used_outside_reduction): New.
15214 (detect_commutative_reduction): Call used_outside_reduction.
15215 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
15216 translate_scalar_reduction_to_array only when at least one
15217 loop-phi/close-phi tuple has been detected.
15218
3865a06f
RG
152192011-02-08 Richard Guenther <rguenther@suse.de>
15220
15221 PR middle-end/47639
15222 * tree-vect-generic.c (expand_vector_operations_1): Update
15223 stmts here ...
15224 (expand_vector_operations): ... not here. Cleanup EH info
15225 and the CFG if required.
15226
62902f3f
RG
152272011-02-08 Richard Guenther <rguenther@suse.de>
15228
15229 PR tree-optimization/47641
15230 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
15231 require type compatibility.
15232
0efb9d64
AK
152332011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15234
15235 * gimple-low.c (lower_function_body): Don't remove the location of
15236 the return statement here.
15237 (lower_gimple_return): Do it here instead but only if the return
15238 statement is actually used twice.
15239
034b8ae4
RG
152402011-02-08 Richard Guenther <rguenther@suse.de>
15241
15242 PR tree-optimization/47632
15243 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
15244 unused up_to_stmt parameter, return whether cfg-cleanup is
15245 necessary, remove EH info properly.
15246 (forward_propagate_into_gimple_cond): Adjust caller.
15247 (forward_propagate_into_cond): Likewise.
15248 (forward_propagate_comparison): Likewise.
15249 (tree_ssa_forward_propagate_single_use_vars): Make
15250 forward_propagate_comparison case similar to the two others.
15251
298362c8
NC
152522011-02-08 Nick Clifton <nickc@redhat.com>
15253
15254 * config/mn10300/mn10300.opt (mliw): New command line option.
15255 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
15256 (liw_bundling): New automaton.
15257 (liw): New attribute.
15258 (liw_op): New attribute.
15259 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
15260 (movsi_internal): Add LIW attributes.
15261 (andsi3): Likewise.
15262 (iorsi3): Likewise.
15263 (xorsi3): Likewise.
15264 (addsi3): Separate register and immediate alternatives.
15265 Add LIW attributes.
15266 (subsi3): Likewise.
15267 (cmpsi): Likewise.
15268 (aslsi3): Likewise.
15269 (lshrsi3): Likewise.
15270 (ashrsi3): Likewise.
15271 (liw): New pattern.
15272 * config/mn10300/mn10300.c (liw_op_names): New
15273 (mn10300_print_operand): Handle 'W' operand descriptor.
15274 (extract_bundle): New function.
15275 (check_liw_constraints): New function.
15276 (liw_candidate): New function.
15277 (mn10300_bundle_liw): New function.
15278 (mn10300_reorg): New function.
15279 (TARGET_MACHINE_DEPENDENT_REORG): Define.
15280 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
15281 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
15282 __LIW__ or __NO_LIW__.
15283 * doc/invoke.texi: Describe the -mliw command line option.
15284
90488014
JDA
152852011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15286
15287 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
15288 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15289 pthread_mutex_unlock): Remove.
15290 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
15291 * config/pa/t-pa64: Likewise.
15292 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
15293 shared libc if not linking against libpthread.
15294 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
15295
689ff841
IS
152962011-02-07 Iain Sandoe <iains@gcc.gnu.org>
15297
15298 PR target/47558
15299 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
15300 on 10.6 and later to ensure that we always use the unwinder from
15301 the system. Only add -no_compact_unwind when tarteting darwin
15302 10.6 or later.
15303
821014aa
SE
153042011-02-07 Steve Ellcey <sje@cup.hp.com>
15305
15306 PR target/46997
15307 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
15308 (vec_interleave_lowv2sf): Ditto.
15309 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
15310 (vec_extract_oddv2sf): Ditto.
15311
41cf94fb
MS
153122011-02-07 Mike Stump <mikestump@comcast.net>
15313
62dea57d 15314 PR target/42333
41cf94fb
MS
15315 Add __ieee_divdc3 entry point.
15316 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
15317 entry point.
15318 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
15319 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
15320 * config/darwin.c (darwin_rename_builtins): Add.
15321 * config/darwin-protos.h (darwin_rename_builtins): Add.
15322
ee09a3dd
MM
153232011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
15324
15325 PR target/47636
15326 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
15327 for the condition.
15328
83296cd0
MS
153292011-02-07 Mike Stump <mikestump@comcast.net>
15330
ea4c3e65 15331 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 15332
0f4e946f
DC
153332011-02-07 Denis Chertykov <chertykov@gmail.com>
15334
15335 PR target/47534
15336 * config/avr/libgcc.S (exit): Move .endfunc
15337
1ec87690
RG
153382011-02-07 Richard Guenther <rguenther@suse.de>
15339
15340 PR tree-optimization/47615
15341 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
15342 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
15343 (run_scc_vn): Initialize it.
15344 (visit_reference_op_load): Use it.
15345 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
15346
b46ae6da
UW
153472011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15348
15349 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
15350 DImode trapping arithmetic libfuncs.
15351
c0aae19c
RG
153522011-02-07 Richard Guenther <rguenther@suse.de>
15353
15354 PR tree-optimization/47621
15355 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
15356 two duplicates ...
15357 (execute_update_addresses_taken): ... here. Make it more
15358 conservative in what we accept.
15359
295d926b
JM
153602011-02-06 Joseph Myers <joseph@codesourcery.com>
15361
15362 * config/sparc/freebsd.h (ASM_SPEC): Define.
15363 * config/sparc/vxworks.h (ASM_SPEC): Define.
15364
bdeb2471
JM
153652011-02-06 Joseph Myers <joseph@codesourcery.com>
15366
15367 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15368
d5d3781a
SB
153692011-02-06 Steven Bosscher <steven@gcc.gnu.org>
15370
15371 * doc/invoke.texi: Remove reference to compiler internals from
15372 user documentation.
15373
15374 * reg-notes.def: Remove REG_VALUE_PROFILE.
15375 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
15376
c42c09fc
JJ
153772011-02-05 Jakub Jelinek <jakub@redhat.com>
15378
15379 PR middle-end/47610
15380 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 15381 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 15382
beea2755
JZ
153832011-02-05 Jie Zhang <jie@codesourcery.com>
15384
15385 PR debug/42631
15386 * web.c (entry_register): Don't clobber the number of the
15387 first uninitialized reference in used[].
15388
a130584a
SP
153892011-02-04 Sebastian Pop <sebastian.pop@amd.com>
15390
15391 PR tree-optimization/46194
15392 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
15393 (build_classic_dist_vector_1): Do not represent classic distance
15394 vectors when the access functions are variating in different loops.
15395
962101ac
JM
153962011-02-04 Joseph Myers <joseph@codesourcery.com>
15397
15398 * config/mips/iris6.opt: New.
15399 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
15400
55eaaa5b
RH
154012011-02-04 Richard Henderson <rth@redhat.com>
15402 Steve Ellcey <sje@cup.hp.com>
15403
15404 PR target/46997
15405 * config/ia64/predicates.md (mux1_brcst_element): New.
15406 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
15407 * config/ia64/ia64.c (ia64_unpack_assemble): New.
15408 (ia64_unpack_sign): New.
15409 (ia64_expand_unpack): Rewrite using new routines.
15410 (ia64_expand_widen_sum): Ditto.
15411 (ia64_expand_dot_prod_v8qi): Ditto.
15412 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
15413 routines, add endian check.
15414 (pmpy2_even): Rename from pmpy2_r, add endian check.
15415 (pmpy2_odd): Rename from pmpy2_l, add endian check.
15416 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
15417 (vec_widen_smult_hi_v4hi): Ditto.
15418 (vec_widen_umult_lo_v4hi): Ditto.
15419 (vec_widen_umult_hi_v4hi): Ditto.
15420 (mulv2si3): Change endian checks.
15421 (sdot_prodv4hi): Rewrite with new calls.
15422 (udot_prodv4hi): New.
15423 (vec_pack_ssat_v4hi): Add endian check.
15424 (vec_pack_usat_v4hi): Ditto.
15425 (vec_pack_ssat_v2si): Ditto.
15426 (max1_even): Rename from max1_r, add endian check.
15427 (max1_odd): Rename from max1_l, add endian check.
15428 (*mux1_rev): Format change.
15429 (*mux1_mix): Ditto.
15430 (*mux1_shuf): Ditto.
15431 (*mux1_alt): Ditto.
15432 (*mux1_brcst_v8qi): Use new predicate.
15433 (vec_extract_evenv8qi): Remove endian check.
15434 (vec_extract_oddv8qi): Ditto.
15435 (vec_interleave_lowv4hi): Format change.
15436 (vec_interleave_highv4hi): Ditto.
15437 (mix2_even): Rename from mix2_r, add endian check.
15438 (mix2_odd): Rename from mux2_l, add endian check.
15439 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
15440 (vec_extract_evenodd_helper): Format change.
15441 (vec_extract_evenv4hi): Remove endian check.
15442 (vec_extract_oddv4hi): Remove endian check.
15443 (vec_interleave_lowv2si): Format change.
15444 (vec_interleave_highv2si): Format change.
15445 (vec_initv2si): Remove endian check.
15446 (vecinit_v2si): Add endian check.
15447 (reduc_splus_v2sf): Add endian check.
15448 (reduc_smax_v2sf): Ditto.
15449 (reduc_smin_v2sf): Ditto.
15450 (vec_initv2sf): Remove endian check.
15451 (fpack): Add endian check.
15452 (fswap): Add endian check.
15453 (vec_interleave_highv2sf): Add endian check.
15454 (vec_interleave_lowv2sf): Add endian check.
15455 (fmix_lr): Add endian check.
15456 (vec_setv2sf): Format change.
15457 (*vec_extractv2sf_0_be): Use shift to extract operand.
15458 (*vec_extractv2sf_1_be): New.
15459 (vec_pack_trunc_v4hi): Add endian check.
15460 (vec_pack_trunc_v2si): Format change.
15461
dcde5957
JJ
154622011-02-04 Jakub Jelinek <jakub@redhat.com>
15463
15464 PR inline-asm/23200
15465 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 15466 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
15467 (stmt_is_replaceable_p): New function.
15468 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
15469 callers.
15470 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
15471 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
15472 SSA_NAME_DEF_STMT.
15473 * tree-flow.h (stmt_is_replaceable_p): New prototype.
15474
a64a8e5a
JM
154752011-02-04 Joseph Myers <joseph@codesourcery.com>
15476
15477 * config/rs6000/xilinx.opt: New.
15478 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
15479
4da2ed2f
JM
154802011-02-04 Joseph Myers <joseph@codesourcery.com>
15481
15482 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
15483
a6e508f9
AS
154842011-02-03 Anatoly Sokolov <aesok@post.ru>
15485
15486 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
15487 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
15488 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
15489 secondary_reload_info, xtensa_secondary_reload): Remove.
15490 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
15491 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15492 (xtensa_preferred_reload_class): Make static. Change return and
15493 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
15494 Use CONST_DOUBLE_P predicate.
15495 (xtensa_preferred_output_reload_class): New function.
15496 (xtensa_secondary_reload): Make static.
15497
82dc0de3
JM
154982011-02-03 Joseph Myers <joseph@codesourcery.com>
15499
15500 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
15501 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
15502 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
15503
7fece979
JJ
155042011-02-03 Jakub Jelinek <jakub@redhat.com>
15505
15506 PR middle-end/31490
15507 * output.h (SECTION_RELRO): Define.
15508 (SECTION_MACH_DEP): Adjust.
15509 (get_variable_section): New prototype.
15510 * varpool.c (varpool_finalize_named_section_flags): New function.
15511 (varpool_assemble_pending_decls): Call it.
15512 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
15513 * cgraphunit.c (cgraph_output_in_order): Call
15514 varpool_finalize_named_section_flags.
15515 * varasm.c (get_section): Allow section flags conflicts between
15516 relro and read-only sections if the section hasn't been declared yet.
15517 Set SECTION_OVERRIDE after diagnosing section type conflict.
15518 (get_variable_section): No longer static.
15519 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
15520 readonly sections that need relocations.
15521 (decl_readonly_section_1): New function.
15522 (decl_readonly_section): Use it.
15523
15524 Revert:
509d65dd 15525 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
15526 Steve Ellcey <sje@cup.hp.com>
15527
15528 PR middle-end/31490
15529 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
15530 if section attribute used.
15531
d18d5478
JJ
155322011-02-03 Jakub Jelinek <jakub@redhat.com>
15533
15534 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
15535 * config/darwin.c (SECTION_NO_ANCHOR): Define.
15536 (darwin_init_sections): Remove assertion.
15537
6479ed4b
NC
155382011-02-03 Nick Clifton <nickc@redhat.com>
15539
15540 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
15541 lt and ge.
38be4072 15542 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
15543 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
15544 instead of "n" and "pz".
15545 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
15546 CC_FLAG_S.
15547
89843f5d
JJ
155482011-02-03 Jakub Jelinek <jakub@redhat.com>
15549
65450d64
JJ
15550 PR target/47312
15551 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
15552 fma, expand FMA_EXPR as fma{,f,l} call.
15553
7d58701c
JJ
15554 PR lto/47274
15555 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
15556 copy them into a unsigned char variable and pass address of it to
15557 lto_output_data_stream.
15558
89843f5d
JJ
15559 PR target/47564
15560 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
15561 around backend_init_target and lang_dependent_init_target calls.
15562 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
15563 (verify_cgraph_node): Don't call set_cfun here. Use
15564 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
15565 Set error_found for incorrectly represented calls to thunks.
15566
4deef538
AO
155672011-02-03 Alexandre Oliva <aoliva@redhat.com>
15568
15569 PR debug/43092
15570 PR rtl-optimization/43494
15571 * rtl.h (for_each_inc_dec_fn): New type.
15572 (for_each_inc_dec): Declare.
15573 * rtlanal.c (struct for_each_inc_dec_ops): New type.
15574 (for_each_inc_dec_find_inc_dec): New fn.
15575 (for_each_inc_dec_find_mem): New fn.
15576 (for_each_inc_dec): New fn.
15577 * dse.c (struct insn_size): Remove.
15578 (replace_inc_dec, replace_inc_dec_mem): Remove.
15579 (emit_inc_dec_insn_before): New fn.
15580 (check_for_inc_dec): Use it, along with for_each_inc_dec.
15581 (canon_address): Pass mem modes to cselib_lookup.
15582 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
15583 (cselib_lookup_from_insn): Likewise.
15584 (cselib_subst_to_values): Likewise.
15585 * cselib.c (find_slot_memmode): New var.
15586 (cselib_find_slot): New fn. Use it instead of
15587 htab_find_slot_with_hash everywhere.
15588 (entry_and_rtx_equal_p): Use find_slot_memmode.
15589 (autoinc_split): New fn.
15590 (rtx_equal_for_cselib_p): Rename and implement in terms of...
15591 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
15592 Deal with autoinc. Special-case recursion into MEMs.
15593 (cselib_hash_rtx): Likewise.
15594 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
15595 address and MEM modes.
15596 (cselib_subst_to_values): Add memmode, pass it on.
15597 Deal with autoinc.
15598 (cselib_lookup): Add memmode argument, pass it on.
15599 (cselib_lookup_from_insn): Add memmode.
15600 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
15601 (struct cselib_record_autoinc_data): New.
15602 (cselib_record_autoinc_cb): New fn.
15603 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
15604 mode to cselib_lookup. Reset autoinced REGs here instead of...
15605 (cselib_process_insn): ... here.
15606 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
15607 to cselib_lookup.
15608 (add_uses): Likewise, also to cselib_subst_to_values.
15609 (add_stores): Likewise.
15610 * sched-deps.c (add_insn_mem_dependence): Pass mode to
15611 cselib_subst_to_values.
15612 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
15613 * gcse.c (do_local_cprop): Adjusted.
15614 * postreload.c (reload_cse_simplify_set): Adjusted.
15615 (reload_cse_simplify_operands): Adjusted.
15616 * sel-sched-dump (debug_mem_addr_value): Pass mode.
15617
1551d44a
AO
156182011-02-03 Alexandre Oliva <aoliva@redhat.com>
15619
15620 PR tree-optimization/45122
15621 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
15622 unsafe assumptions when there's more than one loop exit.
15623
c9485473
MM
156242011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
15625
15626 PR target/47272
15627 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
15628 Document using vector double with the load/store builtins, and
15629 that the load/store builtins always use Altivec instructions.
15630
15631 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
15632 to use altivec memory instructions, even on VSX.
15633 (vector_altivec_store_<mode>): Ditto.
15634
15635 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
15636 function.
15637
15638 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15639 V2DF, V2DI support to load/store overloaded builtins.
15640
15641 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
15642 altivec load/store builtins for V2DF/V2DI types.
15643
15644 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
15645 set avoid indexed addresses on power6 if -maltivec.
15646 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
15647 vector_altivec_load/vector_altivec_store builtins.
15648 (altivec_expand_st_builtin): Ditto.
15649 (altivec_expand_builtin): Add VSX memory builtins.
15650 (rs6000_init_builtins): Add V2DI types to internal types.
15651 (altivec_init_builtins): Add support for V2DF/V2DI altivec
15652 load/store builtins.
15653 (rs6000_address_for_altivec): Insure memory address is appropriate
15654 for Altivec.
15655
15656 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
15657 vec_vsx_ld and vec_vsx_st.
15658 (vsx_store_<mode>): Ditto.
15659
15660 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
15661 variables to hold long long types for VSX vector memory builtins.
15662 (RS6000_BTI_unsigned_long_long): Ditto.
15663 (long_long_integer_type_internal_node): Ditti.
15664 (long_long_unsigned_type_internal_node): Ditti.
15665
15666 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
15667 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
15668 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
15669
15670 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
15671 short cuts.
15672 (vec_vsx_st): Ditto.
15673
b24d1acf
JM
156742011-02-02 Joseph Myers <joseph@codesourcery.com>
15675
15676 * config/pa/pa-hpux10.opt: New.
15677 * config/hpux11.opt (pthread): New Driver option.
15678 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
15679 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
15680
aa18dd0f
JM
156812011-02-02 Joseph Myers <joseph@codesourcery.com>
15682
15683 * config/ia64/vms.opt: New.
15684 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
15685
28fc3eee
MM
156862011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
15687
15688 PR target/47580
15689 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
15690 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
15691 generator functions.
15692 (vsx_floatuns<VSi><mode>2): Ditto.
15693 (vsx_fix_trunc<mode><VSi>2): Ditto.
15694 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
15695
b5838b1f
JM
156962011-02-02 Joseph Myers <joseph@codesourcery.com>
15697
15698 * config/i386/djgpp.opt (posix): New Driver option.
15699
0db8fa89
GP
157002011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
15701
15702 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
15703 Move to the unsupported targets list.
15704
9cd4f22a
PB
157052011-02-02 Peter Bergner <bergner@vnet.ibm.com>
15706
15707 PR rtl-optimization/47525
15708 * df-scan.c: Update copyright years.
15709 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
15710 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
15711
9ed8059c
RO
157122011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15713
15714 * config/i386/sysv4.h (TARGET_VERSION): Remove.
15715 (SUBTARGET_RETURN_IN_MEMORY): Remove.
15716 (ASM_OUTPUT_ASCII): Remove.
15717 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
15718
2a737389
JL
157192011-02-02 Jeff Law <law@redhat.com>
15720
15721 PR middle-end/47543
15722 * reload.c (find_reloads_address): Handle reg+d address where both
15723 components are invalid by reloading the entire address.
15724
9dac82c4
SP
157252011-02-02 Sebastian Pop <sebastian.pop@amd.com>
15726 Richard Guenther <rguenther@suse.de>
15727
15728 PR tree-optimization/40979
15729 PR bootstrap/47044
15730 * passes.c (init_optimization_passes): After LIM call copy_prop
15731 and DCE to clean up.
15732 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
15733
14dd9aab
SP
157342011-02-02 Sebastian Pop <sebastian.pop@amd.com>
15735
15736 PR tree-optimization/47576
15737 PR tree-optimization/47555
15738 * doc/invoke.texi (scev-max-expr-complexity): Documented.
15739 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15740 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
15741 * tree-scalar-evolution.c (follow_ssa_edge): Use
15742 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
15743
5cbf5c20
RG
157442011-02-02 Richard Guenther <rguenther@suse.de>
15745
15746 PR tree-optimization/47566
15747 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
15748
83d70792
AO
157492011-02-02 Alexandre Oliva <aoliva@redhat.com>
15750
e829c321
AO
15751 PR debug/47106
15752 PR debug/47402
15753 * tree-inline.c (declare_return_variable): Remove unused caller
15754 variable.
15755
83d70792
AO
15756 PR debug/47106
15757 PR debug/47402
15758 * tree-flow-inline.h (clear_is_used, is_used_p): New.
15759 * cfgexpand.c (account_used_vars_for_block): Use them.
15760 * tree-nrv.c (tree_nrv): Likewise.
15761 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
15762 (dump_scope_block): Likewise.
15763 (remove_unused_locals): Likewise.
15764
aaa2ac93
AO
15765 PR debug/47106
15766 PR debug/47402
15767 * tree-inline.c (declare_return_variable): Add result decl to
15768 local decls only once.
15769 * gimple-low.c (record_vars_into): Mark newly-created variables
15770 as referenced.
15771
a59d15cf
AO
157722011-02-02 Alexandre Oliva <aoliva@redhat.com>
15773
15774 PR debug/47498
15775 PR debug/47501
15776 PR debug/45136
15777 PR debug/45130
15778 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
15779 debug insns.
15780 (no_real_insns_p, schedule_block, set_priorities): Drop special
15781 treatment of boundary debug insns.
38be4072 15782 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
15783 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
15784 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
15785 (BOUNDARY_DEBUG_INSN_P): Likewise.
15786 (SCHEDULE_DEBUG_INSN_P): Likewise.
15787 * sched-rgn.c (init_ready_list): Drop special treatment of
15788 boundary debug insns.
15789 * final.c (rest_of_clean_state): Clear notes' BB.
15790
6fc2f091
JM
157912011-02-01 Joseph Myers <joseph@codesourcery.com>
15792
15793 * config/openbsd.opt (assert=): New Driver option.
15794
fc523387
JM
157952011-02-01 Joseph Myers <joseph@codesourcery.com>
15796
15797 * config/i386/nto.opt: New.
15798 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
15799
6d9821e5
JM
158002011-02-01 Joseph Myers <joseph@codesourcery.com>
15801
15802 * config/i386/netware.opt: New.
15803 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
15804
cef932d4
JM
158052011-02-01 Joseph Myers <joseph@codesourcery.com>
15806
15807 * config/interix.opt (posix): New Driver option.
15808
22843acd
DD
158092011-02-01 DJ Delorie <dj@redhat.com>
15810
56490b74
DD
15811 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
15812
22843acd
DD
15813 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
15814 class for A0/A1.
15815
199c8f2f
SP
158162011-02-01 Sebastian Pop <sebastian.pop@amd.com>
15817
15818 PR tree-optimization/47561
15819 * toplev.c (process_options): Print the Graphite flags. Add
15820 flag_loop_flatten to the list of options requiring Graphite.
15821
926bcf22
JM
158222011-02-01 Joseph Myers <joseph@codesourcery.com>
15823
15824 * config/i386/cygming.opt (posix): New Driver option.
15825
59793c51
JM
158262011-02-01 Joseph Myers <joseph@codesourcery.com>
15827
15828 * config/arm/vxworks.opt: New.
15829 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
15830
183c38a4
JM
158312011-02-01 Joseph Myers <joseph@codesourcery.com>
15832
15833 * config/alpha/elf.opt: New.
15834 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
15835 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
15836
9939e416
RG
158372011-02-01 Richard Guenther <rguenther@suse.de>
15838
15839 PR tree-optimization/47559
15840 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
15841 store-motion on references that can throw.
15842
4a3c9687
BS
158432011-02-01 Bernd Schmidt <bernds@codesourcery.com>
15844
15845 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
15846 * tree-pass.h (TDF_CSELIB): New macro.
15847 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
15848 cselib_lookup): Check for it rather than for TDF_DETAILS.
15849
dd3b31fb
L
158502011-02-01 H.J. Lu <hongjiu.lu@intel.com>
15851
15852 PR driver/47547
15853 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
15854 is HOST_BIT_BUCKET.
15855
15856 * opts.c (finish_options): Don't add x_aux_base_name if it is
15857 HOST_BIT_BUCKET.
15858
34c1de79
RG
158592011-02-01 Richard Guenther <rguenther@suse.de>
15860
15861 PR tree-optimization/47555
15862 Revert
15863 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
15864
15865 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15866
dd2804d2
SB
158672011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
15868
15869 PR gcc/46692
15870 * config/lm32/t-lm32: Add multilib for all CPU options.
15871
3fd3b156
RG
158722011-02-01 Richard Guenther <rguenther@suse.de>
15873
15874 PR tree-optimization/47541
15875 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
15876 sure to have a field at offset zero.
15877
f16072b6
JM
158782011-01-31 Joseph Myers <joseph@codesourcery.com>
15879
15880 * config/arc/arc.opt (EB, EL): New Driver options.
15881
6456cf2e
JM
158822011-01-31 Joseph Myers <joseph@codesourcery.com>
15883
15884 * config/alpha/osf5.opt: New.
15885 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
15886
cdde6ab4
JM
158872011-01-31 Joseph Myers <joseph@codesourcery.com>
15888
15889 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
15890
7633415c
SP
158912011-01-31 Sebastian Pop <sebastian.pop@amd.com>
15892
15893 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
15894 -floop-interchange.
15895 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
15896 is an alias of -floop-interchange and that it requires the
15897 Graphite infrastructure.
15898 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
15899 flag_loop_interchange based on the value of flag_tree_loop_linear.
15900
0425d6f5
JJ
159012011-01-31 Jakub Jelinek <jakub@redhat.com>
15902 Richard Guenther <rguenther@suse.de>
15903
15904 PR tree-optimization/47538
15905 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
15906 type instead of r1type, except for comparisons. For right
15907 shifts and comparisons punt if there are mismatches in
15908 sizetype vs. non-sizetype types.
15909
500b16c3
RO
159102011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15911
15912 * doc/sourcebuild.texi (Effective-Target Keywords): Document
15913 avx_runtime.
15914
e279edb0
RO
159152011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15916
15917 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
15918 version number.
15919 * configure: Regenerate.
15920
c6092243
RO
159212011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15922
15923 * configure.ac (gcc_cv_ld_static_option): Define.
15924 (gcc_cv_ld_dynamic_option): Define.
15925 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
15926 instead.
15927 (HAVE_LD_STATIC_DYNAMIC): Update message.
15928 (LD_STATIC_OPTION): Define.
15929 (LD_DYNAMIC_OPTION): Define.
15930 * configure: Regenerate.
15931 * config.in: Regenerate.
15932 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
15933 HAVE_LD_STATIC_DYNAMIC]: Use them.
15934
d7862be3
NC
159352011-01-31 Nick Clifton <nickc@redhat.com>
15936
15937 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
15938 registers inside interrupt handlers if the handler is not a leaf
15939 function.
15940
ba4ec0e0
NC
159412011-01-31 Nick Clifton <nickc@redhat.com>
15942
15943 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
15944 reg_renumber returning an INVALID_REGNUM.
15945
29a63921
AO
159462011-01-31 Alexandre Oliva <aoliva@redhat.com>
15947
15948 PR libgcj/44341
15949 * doc/install.texi: Document host options discarded when cross
15950 configuring target libraries.
15951
ef591d3f
AO
159522011-01-31 Alexandre Oliva <aoliva@redhat.com>
15953
15954 Reverted:
15955 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
15956 PR debug/45136
15957 PR debug/45130
15958 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
15959 debug insns.
15960 (no_real_insns_p, schedule_block, set_priorities): Drop special
15961 treatment of boundary debug insns.
38be4072 15962 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
15963 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
15964 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
15965 (BOUNDARY_DEBUG_INSN_P): Likewise.
15966 (SCHEDULE_DEBUG_INSN_P): Likewise.
15967 * sched-rgn.c (init_ready_list): Drop special treatment of
15968 boundary debug insns.
15969 * final.c (rest_of_clean-state): Clear notes' BB.
15970
61052244
AM
159712011-01-31 Alan Modra <amodra@gmail.com>
15972
15973 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
15974 toc relative expressions as we do in print_operand_address.
15975
c4c8962b
KH
159762011-01-30 Kazu Hirata <kazu@codesourcery.com>
15977
15978 * doc/extend.texi: Follow spelling conventions.
15979 * doc/invoke.texi: Fix a typo.
15980
e543b94c
JM
159812011-01-30 Joseph Myers <joseph@codesourcery.com>
15982
15983 * config/hpux11.opt: New.
15984 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
15985 ia64*-*-hpux*): Use hpux11.opt.
15986
509d65dd 159872011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
15988
15989 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
15990 to tmake_file.
15991
7be03a0e
GP
159922011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
15993
15994 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
15995 support sites.
15996
419d1d37
GP
159972011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
15998
b596ed64
GP
15999 * doc/install.texi (Binaries): Remove outdated reference for
16000 Motorola 68HC11/68HC12 downloads.
16001
160022011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 16003
419d1d37
GP
16004 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
16005 Drepper's paper.
16006
4406d0e9
JW
160072011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
16008
16009 PR bootstrap/47147
16010 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
16011 used by NetBSD.
16012
38be4072 160132011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
16014
16015 * value-prof.c (check_counter): Corrected error message.
16016
0cd98787
JZ
160172011-01-29 Jie Zhang <jie@codesourcery.com>
16018
16019 * config/arm/arm.c (arm_legitimize_reload_address): New.
16020 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
16021 arm_legitimize_reload_address.
38be4072 16022 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 16023
9b798ac5
ILT
160242011-01-28 Ian Lance Taylor <iant@google.com>
16025
16026 * godump.c (go_define): Ignore macros whose definitions include
16027 two adjacent operands.
16028
591e29d9
JJ
160292011-01-28 Jakub Jelinek <jakub@redhat.com>
16030
16031 PR target/42894
16032 * varasm.c (force_const_mem): Store copy of x in desc->constant
16033 instead of x itself.
16034 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
16035 itself into REG_EQUAL note.
16036
62dcc44a
JM
160372011-01-28 Joseph Myers <joseph@codesourcery.com>
16038
16039 * config/freebsd.opt (posix, rdynamic): New Driver options.
16040
c9f58b9a
RO
160412011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16042
16043 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
16044 -Bstatic/-Bdynamic.
16045 * configure: Regenerate.
16046
5f02b9db
JM
160472011-01-27 Joseph Myers <joseph@codesourcery.com>
16048
16049 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
16050 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
16051
5df97412
AS
160522011-01-27 Anatoly Sokolov <aesok@post.ru>
16053
16054 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
16055 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
16056 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
16057 (s390_preferred_reload_class): Make static. Change return and
16058 'rclass' argument type to reg_class_t.
16059
779d4b91
JH
160602011-01-27 Jan Hubicka <jh@suse.cz>
16061
16062 PR middle-end/46949
16063 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
16064 (process_function_and_variable_attributes): Check defined weakrefs.
16065
e80b21ed
MJ
160662011-01-27 Martin Jambor <mjambor@suse.cz>
16067
16068 PR tree-optimization/47228
16069 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
16070 build_ref_for_offset.
16071
6dcc4f31
UW
160722011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16073
16074 * config/spu/spu-elf.h (ASM_SPEC): Remove.
16075
509d65dd 160762011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
16077
16078 PR rtl-optimization/46856
16079 * postreload.c (reload_combine_recognize_const_pattern): Do not
16080 separate cc0 setter and user on cc0 targets.
16081
04af8788
NP
160822011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
16083
16084 PR c/43082
16085 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
16086 passed a VOID_TYPE expression, immediately emit an error and
16087 return error_mark_node.
16088
f7a60085
JL
160892011-01-26 Jeff Law <law@redhat.com>
16090
16091 PR rtl-optimization/47464
16092 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
16093 rather than may_trap_p as needed.
16094
5c2917ec
DD
160952011-01-26 DJ Delorie <dj@redhat.com>
16096
16097 PR rtl-optimization/46878
16098 * combine.c (insn_a_feeds_b): Check for the implicit cc0
16099 setter/user dependency as well.
16100
bef16e87
EB
161012011-01-26 Eric Botcazou <ebotcazou@adacore.com>
16102
16103 PR rtl-optimization/44469
16104 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
16105 after removing trivially dead basic blocks.
16106
c75d884b
JM
161072011-01-26 Joseph Myers <joseph@codesourcery.com>
16108
16109 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
16110 * config/frv/frv.h (LINK_SPEC): Likewise.
16111 * config/i386/netware.h (LINK_SPEC): Likewise.
16112 * config/m68k/linux.h (ASM_SPEC): Likewise.
16113 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
16114 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
16115 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16116 * config/sparc/linux.h (ASM_SPEC): Likewise.
16117 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16118 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16119
d3153553
JM
161202011-01-26 Joseph Myers <joseph@codesourcery.com>
16121
16122 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
16123 * config/frv/frv.h (ASM_SPEC): Likewise.
16124 * config/m68k/linux.h (ASM_SPEC): Likewise.
16125 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
16126 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
16127 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16128 * config/sparc/linux.h (ASM_SPEC): Likewise.
16129 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16130 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16131
b89b1e9d
JM
161322011-01-26 Joseph Myers <joseph@codesourcery.com>
16133
16134 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
16135 * config/frv/frv.h (LINK_SPEC): Likewise.
16136 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
16137
12eb1a9c
JM
161382011-01-26 Joseph Myers <joseph@codesourcery.com>
16139
16140 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
16141 * config/frv/frv.h (ASM_SPEC): Likewise.
16142 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
16143 * config/m68k/linux.h (ASM_SPEC): Likewise.
16144 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
16145 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
16146 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16147 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
16148 * config/sparc/linux.h (ASM_SPEC): Likewise.
16149 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16150 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16151 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
16152
e435f098
SE
161532011-01-26 Steve Ellcey <sje@cup.hp.com>
16154
16155 PR target/46997
16156 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
16157 (*mux2): Ditto.
16158 (vec_extract_evenodd_help): Ditto.
16159 (vec_extract_evenv4hi): Ditto.
16160 (vec_extract_oddv4hi): Ditto.
16161 (vec_interleave_lowv2si): Ditto.
16162 (vec_interleave_highv2si): Ditto.
16163 (vec_extract_evenv2si): Ditto.
16164 (vec_extract_oddv2si: Ditto.
16165 (vec_pack_trunc_v2si): Ditto.
16166
34f0eee0
JH
161672011-01-22 Jan Hubicka <jh@suse.cz>
16168
16169 PR target/47237
16170 * cgraph.h (cgraph_local_info): New field can_change_signature.
16171 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
16172 signature can change.
16173 (ipcp_estimate_growth): Call sequence simplify only if calle signature
16174 can change.
16175 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
16176 (cgraph_function_versioning): We can not change signature of functions
16177 that don't allow that.
16178 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
16179 (lto_input_node): Likewise.
38be4072
UB
16180 * ipa-inline.c (compute_inline_parameters): Compute
16181 local.can_change_signature.
34f0eee0 16182 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
16183 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
16184 functions that can not change signature.
34f0eee0 16185 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
16186 init_cumulative_args): Do not use local calling conventions
16187 for functions that can not change signature.
34f0eee0 16188
980ca891
JH
161892011-01-22 Jan Hubicka <jh@suse.cz>
16190
16191 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
16192
768e3c60
RG
161932011-01-26 Richard Guenther <rguenther@suse.de>
16194
16195 PR tree-optimization/47190
61052244
AM
16196 * cgraphunit.c (process_common_attributes): New function.
16197 (process_function_and_variable_attributes): Use it.
768e3c60 16198
21d6a1c7
RG
161992011-01-26 Richard Guenther <rguenther@suse.de>
16200
16201 PR lto/47423
16202 * cgraphbuild.c (record_eh_tables): Record reference to personality
16203 function.
16204
48bb58b1
AO
162052011-01-26 Alexandre Oliva <aoliva@redhat.com>
16206
16207 PR debug/45454
16208 * sel-sched.c (moveup_expr): Don't let debug insns prevent
16209 non-debug insns from moving up.
16210
58c741a6
DK
162112011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
16212
16213 PR target/40125
16214 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
16215 t-dlldir{,-x} fragment for build and add it to tmake_file.
16216 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
16217 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
16218 * config/i386/t-dlldir: New file.
16219 (SHLIB_DLLDIR): Define.
16220 * config/i386/t-dlldir-x: New file.
16221 (SHLIB_DLLDIR): Define.
16222 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
16223 (SHLIB_INSTALL): Use it.
16224
bff99262
CLT
162252011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
16226
16227 PR target/47246
16228 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
16229 lower bound of the allowed Thumb-2 coprocessor load/store
16230 index range to -256. Add explaining comment.
16231
82c03907
ILT
162322011-01-25 Ian Lance Taylor <iant@google.com>
16233
16234 * godump.c (go_define): Improve lexing of macro expansion to only
16235 accept expressions which match Go spec.
16236
47ea1edf
DK
162372011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
16238
d4dba752 16239 PR c++/43601
47ea1edf
DK
16240 * tree.c (handle_dll_attribute): Handle it.
16241 * doc/extend.texi (@item dllexport): Mention it.
16242 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
16243
744f0946
ILT
162442011-01-25 Ian Lance Taylor <iant@google.com>
16245
16246 PR tree-optimization/26854
16247 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
16248 (decl_jump_unsafe): Move higher in file, with no other change.
16249 (bind): Set has_jump_unsafe_decl if appropriate.
16250 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
16251 (check_earlier_gotos): Likewise.
16252 (c_check_switch_jump_warnings): Likewise.
16253
5734f2b3
JW
162542011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
16255
16256 * doc/invoke.texi (Warning Options): Add missing hyphen.
16257 (-fprofile-dir): Minor grammatical fixes.
16258 (-fbranch-probabilities): Likewise.
16259
9bdbdcef
AO
162602011-01-25 Alexandre Oliva <aoliva@redhat.com>
16261
16262 PR debug/45136
16263 PR debug/45130
16264 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
16265 debug insns.
16266 (no_real_insns_p, schedule_block, set_priorities): Drop special
16267 treatment of boundary debug insns.
38be4072 16268 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
16269 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
16270 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
16271 (BOUNDARY_DEBUG_INSN_P): Likewise.
16272 (SCHEDULE_DEBUG_INSN_P): Likewise.
16273 * sched-rgn.c (init_ready_list): Drop special treatment of
16274 boundary debug insns.
16275 * final.c (rest_of_clean-state): Clear notes' BB.
16276
b305e3da
SP
162772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16278
16279 * Makefile.in (LAMBDA_H): Removed.
16280 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
16281 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
16282 lambda-trans.o, and tree-loop-linear.o.
16283 (lto-symtab.o): Remove dependence on LAMBDA_H.
16284 (tree-loop-linear.o): Remove rule.
16285 (lambda-mat.o): Same.
16286 (lambda-trans.o): Same.
16287 (lambda-code.o): Same.
16288 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
16289 (tree-vect-slp.o): Same.
16290 * hwint.h (gcd): Moved here.
16291 (least_common_multiple): Same.
16292 * lambda-code.c: Removed.
16293 * lambda-mat.c: Removed.
16294 * lambda-trans.c: Removed.
16295 * lambda.h: Removed.
16296 * tree-loop-linear.c: Removed.
16297 * lto-symtab.c: Do not include lambda.h.
16298 * omega.c (gcd): Removed.
16299 * passes.c (init_optimization_passes): Remove pass_linear_transform.
16300 * tree-data-ref.c (print_lambda_vector): Moved here.
16301 (lambda_vector_copy): Same.
16302 (lambda_matrix_copy): Same.
16303 (lambda_matrix_id): Same.
16304 (lambda_vector_first_nz): Same.
16305 (lambda_matrix_row_add): Same.
16306 (lambda_matrix_row_exchange): Same.
16307 (lambda_vector_mult_const): Same.
16308 (lambda_vector_negate): Same.
16309 (lambda_matrix_row_negate): Same.
16310 (lambda_vector_equal): Same.
16311 (lambda_matrix_right_hermite): Same.
16312 * tree-data-ref.h: Do not include lambda.h.
16313 (lambda_vector): Moved here.
16314 (lambda_matrix): Same.
16315 (dependence_level): Same.
16316 (lambda_transform_legal_p): Removed declaration.
16317 (lambda_collect_parameters): Same.
16318 (lambda_compute_access_matrices): Same.
16319 (lambda_vector_gcd): Same.
16320 (lambda_vector_new): Same.
16321 (lambda_vector_clear): Same.
16322 (lambda_vector_lexico_pos): Same.
16323 (lambda_vector_zerop): Same.
16324 (lambda_matrix_new): Same.
16325 * tree-flow.h (least_common_multiple): Removed declaration.
16326 * tree-parloops.c (lambda_trans_matrix): Moved here.
16327 (LTM_MATRIX): Same.
16328 (LTM_ROWSIZE): Same.
16329 (LTM_COLSIZE): Same.
16330 (LTM_DENOMINATOR): Same.
16331 (lambda_trans_matrix_new): Same.
16332 (lambda_matrix_vector_mult): Same.
16333 (lambda_transform_legal_p): Same.
16334 * tree-pass.h (pass_linear_transform): Removed declaration.
16335 * tree-ssa-loop.c (tree_linear_transform): Removed.
16336 (gate_tree_linear_transform): Removed.
16337 (pass_linear_transform): Removed.
16338 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
16339 flag_loop_interchange.
16340
6bdfdb96
JJ
163412011-01-25 Jakub Jelinek <jakub@redhat.com>
16342
16343 PR tree-optimization/47265
16344 PR tree-optimization/47443
16345 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
16346 if name still has some uses.
16347
e4cba915
MJ
163482011-01-25 Martin Jambor <mjambor@suse.cz>
16349
16350 PR tree-optimization/47382
16351 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
16352 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
16353
509d65dd 163542011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
16355
16356 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
16357 sjlj_except_unwind_info.
16358
194313e2
RG
163592011-01-25 Richard Guenther <rguenther@suse.de>
16360
16361 PR tree-optimization/47426
16362 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
16363 visible functions results escape.
16364
147a0bcf
JJ
163652011-01-25 Jakub Jelinek <jakub@redhat.com>
16366
16367 PR target/45701
16368 * config/arm/arm.c (any_sibcall_uses_r3): New function.
16369 (arm_get_frame_offsets): Use it.
16370
db963b52
SP
163712011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16372 Jakub Jelinek <jakub@redhat.com>
16373
16374 PR tree-optimization/47271
16375 * tree-if-conv.c (bb_postdominates_preds): New.
16376 (if_convertible_bb_p): Call bb_postdominates_preds.
16377 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
16378 (predicate_scalar_phi): Call bb_postdominates_preds.
16379
bcddd3b9
NC
163802011-01-25 Nick Clifton <nickc@redhat.com>
16381
16382 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
16383 * config/rx/rx.c (rx_function_value): Likewise.
16384 (rx_promote_function_mode): Likewise.
16385 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
16386 in order to make it legitimate.
38be4072
UB
16387 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
16388 make sure that the first operand is the same as the result register.
bcddd3b9
NC
16389 (addsi3_unspec): Delete.
16390 (subdi3): Do not accept immediate operands.
16391 (subdi3_internal): Likewise.
16392
7e6cb022
JL
163932011-01-25 Jeff Law <law@redhat.com>
16394
16395 PR rtl-optimization/37273
16396 * ira-costs.c (scan_one_insn): Detect constants living in memory and
16397 handle them like argument loads from stack slots. Do not double
16398 count memory for memory constants and argument loads from stack slots.
16399
9ffa621e
JJ
164002011-01-25 Jakub Jelinek <jakub@redhat.com>
16401
16402 PR tree-optimization/47427
16403 PR tree-optimization/47428
16404 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
16405 coalesce if the new root var would be TREE_READONLY.
16406
5bd6e652
RG
164072011-01-25 Richard Guenther <rguenther@suse.de>
16408
16409 PR middle-end/47414
16410 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
16411 correct type for TBAA.
16412
7c48ea69
SP
164132011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16414
16415 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
16416 (close_phi_written_to_memory): Call for_each_index with
16417 dr_indices_valid_in_loop.
16418
38013f25
SP
164192011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16420
16421 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
16422 when it is initialized.
16423
5c640e29
SP
164242011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16425
16426 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
16427 call to graphite_find_data_references_in_stmt.
16428 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
16429 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
16430 call to graphite_find_data_references_in_stmt.
16431 (analyze_drs_in_stmts): Same.
16432 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
16433 in which the scalar analysis of indices is performed.
16434 (create_data_ref): Same. Update call to dr_analyze_indices.
16435 (find_data_references_in_stmt): Update call to create_data_ref.
16436 (graphite_find_data_references_in_stmt): Same.
16437 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
16438 declaration.
16439 (create_data_ref): Same.
16440 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
16441 call to create_data_ref.
16442
ac53c069
SP
164432011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16444
16445 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 16446 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 16447
3d17df15
SP
164482011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16449
16450 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
16451 VAR_DECL, PARM_DECL, and RESULT_DECL.
16452
c513da01
SP
164532011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16454
16455 * graphite-dependences.c (reduction_dr_1): Allow several reductions
16456 in a reduction PBB.
16457 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
16458 that have already been marked as PBB_IS_REDUCTION.
16459
3a292d59
SP
164602011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16461
16462 * graphite-scop-detection.c (same_close_phi_node): New.
16463 (remove_duplicate_close_phi): New.
16464 (make_close_phi_nodes_unique): New.
16465 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
16466
ba858447
SP
164672011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16468
16469 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
16470 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
16471 of both data references to be the same.
16472
8d865c56
SP
164732011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16474
38be4072
UB
16475 * graphite-dependences.c (build_lexicographical_constraint): Remove
16476 the gdim parameter.
16477 (build_lexicographical_constraint): Adjust call to
16478 ppl_powerset_is_empty.
8d865c56
SP
16479 (dependence_polyhedron): Same.
16480 (graphite_legal_transform_dr): Same.
16481 (graphite_carried_dependence_level_k): Same.
38be4072
UB
16482 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
16483 parameter.
8d865c56
SP
16484 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
16485
50034a36
SP
164862011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16487
16488 * graphite-sese-to-poly.c
16489 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
16490 (close_phi_written_to_memory): New.
16491 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
16492 and unshare_expr.
16493
0deada9e
SP
164942011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16495
16496 * doc/install.texi: Update the expected version number of PPL to 0.11.
16497 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
16498 #if PPL_VERSION_MINOR < 11.
16499
d7d3d6af
SP
165002011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16501
16502 * graphite-dependences.c: Include graphite-cloog-util.h.
16503 (new_poly_ddr): Inlined into dependence_polyhedron.
16504 (free_poly_ddr): Moved close by new_poly_ddr.
16505 (dependence_polyhedron_1): Renamed dependence_polyhedron.
16506 Early return NULL when ppl_powerset_is_empty returns true.
16507 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
16508 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
16509 (graphite_legal_transform_dr): Call new_poly_ddr.
16510 (graphite_carried_dependence_level_k): Same.
16511 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
16512 (dot_transformed_deps_stmt_1): Removed.
16513 (dot_deps_stmt_1): Call dot_deps_stmt_2.
16514 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
16515 (dot_deps_1): Call dot_deps_2.
16516 * Makefile.in (graphite-dependences.o): Add missing dependence on
16517 graphite-cloog-util.h.
16518
28c5db57
SP
165192011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16520
16521 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
16522 (build_lexicographical_constraint): Same.
16523 (dependence_polyhedron_1): Same.
16524 (graphite_legal_transform_dr): Same.
16525 (graphite_carried_dependence_level_k): Same.
16526 * graphite-ppl.c (ppl_powerset_is_empty): New.
16527 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
16528 * tree-data-ref.c (dump_data_reference): Print the basic block index.
16529
5168d98f
SP
165302011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16531
16532 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
16533 the "a followed by b" relation and document it.
16534
4a40293a
SP
165352011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16536
16537 * graphite-dependences.c (build_lexicographical_constraint): Stop the
16538 iteration when the bag of constraints is empty.
16539
271fb6fa
SP
165402011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16541
16542 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
16543
92d23680
SP
165442011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16545
16546 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
16547 nest and two loop depths as parameters.
16548 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
16549 lst_perfect_nestify.
16550
2f51deff
SP
165512011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16552
16553 * graphite-dependences.c (print_pddr): Call
16554 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
16555
07f3593c
SP
165562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16557
16558 * graphite-ppl.c (debug_gmp_value): New.
16559 * graphite-ppl.h (debug_gmp_value): Declared.
16560
3fae6099
TG
165612011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
16562
16563 * doc/install.texi: Document availability of cloog-0.16.
16564
1c3ba85b
SP
165652011-01-25 Vladimir Kargov <kargov@gmail.com>
16566
16567 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
16568 invalid postdominance info.
16569
e8ba94fc
JH
165702011-01-24 Jan Hubicka <jh@suse.cz>
16571
16572 PR c/21659
16573 * doc/extend.texi (weak pragma): Drop claim that it must
16574 appear before definition.
16575 * varasm.c (merge_weak, declare_weak): Only sanity check
16576 that DECL is not output at a time it is declared weak.
16577
2b6e2d13
KZ
165782011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
16579
16580 * machmode.def: Fixed comments.
1c3ba85b 16581
9841210f
KT
165822011-01-24 Kai Tietz <kai.tietz@onevision.com>
16583
16584 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
16585
165862011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
16587
16588 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 16589 WORDS_BIG_ENDIAN.
e046112d 16590
a6c5070a
L
165912011-01-24 H.J. Lu <hongjiu.lu@intel.com>
16592
16593 PR target/46519
16594 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
16595 (block_info): Add scanned and prev.
16596 (move_or_delete_vzeroupper_2): Return if the basic block
16597 has been scanned and the upper 128bit state is unchanged
16598 from the last scan.
16599 (move_or_delete_vzeroupper_1): Return true if the exit
16600 state is changed.
16601 (move_or_delete_vzeroupper): Visit basic blocks using the
16602 work-list based algorithm based on vt_find_locations in
16603 var-tracking.c.
16604
16605 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
16606
a40d79d7
NC
166072011-01-24 Nick Clifton <nickc@redhat.com>
16608
16609 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
16610 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
16611 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
16612 then define __v850e1__.
16613 * doc/invoke.texi: Document -mv850es.
16614
440eb8de
RH
166152011-01-24 Richard Henderson <rth@redhat.com>
16616
16617 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
16618 compound unordered comparisons.
16619 * config/rx/rx.c (rx_split_fp_compare): Remove.
16620 * config/rx/rx-protos.h: Update.
16621 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
16622 (cbranchsf4): Don't call rx_split_fp_compare.
16623 (*cbranchsf4): Use rx_split_cbranch.
16624 (*cmpsf): Don't accept "i" constraint.
16625 (*conditional_branch): Only valid after reload.
16626 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
16627
3ff79f99
MM
166282011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
16629
16630 PR target/47385
16631 * config/rs6000/altivec.md (vector constant splitters): Add
16632 support for creating vector single precision constants if -mvsx is
16633 used and we would create the constant using Altivec primitives.
16634
ff3d9d08
BS
166352011-01-23 Bernd Schmidt <bernds@codesourcery.com>
16636 Richard Sandiford <rdsandiford@googlemail.com>
16637
16638 PR rtl-optimization/47166
16639 * reload1.c (emit_reload_insns): Disable the spill_reg_store
16640 mechanism for PRE_MODIFY and POST_MODIFY.
16641 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
16642 reloadreg.
16643
7fcaf152
AS
166442011-01-23 Andreas Schwab <schwab@linux-m68k.org>
16645
8788adb6 16646 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 16647
d09b58c4
JH
166482011-01-22 Jan Hubicka <jh@suse.cz>
16649
16650 PR lto/47333
16651 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
16652
e8ff8c5a
JH
166532011-01-22 Jan Hubicka <jh@suse.cz>
16654
16655 PR tree-optimization/43884
16656 PR lto/44334
8788adb6 16657 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
16658 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
16659
ccaed3ba
AS
166602011-01-22 Anatoly Sokolov <aesok@post.ru>
16661
16662 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
16663 * config/s390/s390.c (s390_register_move_cost,
16664 s390_memory_move_cost): New.
16665 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
16666
0cecee06
UW
166672011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16668
16669 PR middle-end/47401
16670 * except.c (sjlj_assign_call_site_values): Move setting the
16671 crtl->uses_eh_lsda flag to ...
16672 (sjlj_mark_call_sites): ... here.
16673 (sjlj_emit_function_enter): Support NULL dispatch label.
16674 (sjlj_build_landing_pads): In a function with no landing pads
16675 that still has must-not-throw regions, generate code to register
16676 a personality function with empty LSDA.
16677
e692f276
RH
166782011-01-21 Richard Henderson <rth@redhat.com>
16679
1b7ae0b7
RH
16680 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
16681
3843787f
RH
16682 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
16683
e692f276
RH
16684 * compare-elim.c: New file.
16685 * Makefile.in (OBJS-common): Add it.
16686 (compare-elim.o): New.
16687 * common.opt (fcompare-elim): New.
16688 * opts.c (default_options_table): Add OPT_fcompare_elim.
16689 * tree-pass.h (pass_compare_elim_after_reload): New.
16690 * passes.c (init_optimization_passes): Add it.
16691 * recog.h: Protect against re-inclusion.
16692 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
16693 * doc/invoke.texi (-fcompare-elim): Document it.
16694 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
16695 * doc/tm.texi: Rebuild.
16696
9a7c2050
NC
166972011-01-22 Nick Clifton <nickc@redhat.com>
16698
16699 * config/rx/rx.md (cstoresf4): Pass comparison operator to
16700 rx_split_fp_compare.
16701
15ba5696
NC
167022011-01-22 Nick Clifton <nickc@redhat.com>
16703
16704 * config/rx/rx.md (UNSPEC_CONST): New.
16705 (deallocate_and_return): Wrap the amount popped off the stack in
16706 an UNSPEC_CONST in order to stop it being rejected by
16707 -mmax-constant-size.
16708 (pop_and_return): Add a "(return)" rtx.
16709 (call): Drop the immediate operand.
16710 (call_internal): Likewise.
16711 (call_value): Likewise.
16712 (call_value_internal): Likewise.
16713 (sibcall_internal): Likewise.
16714 (sibcall_value_internal): Likewise.
16715 (sibcall): Likewise. Generate an explicit call using
16716 sibcall_internal.
16717 (sibcall_value): Likewise.
16718 (mov<>): FAIL if a constant operand is not legitimate.
16719 (addsi3_unpsec): New pattern.
9a7c2050 16720
38be4072 16721 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
16722 (ok_for_max_constant): New function.
16723 (gen_safe_add): New function.
16724 (rx_expand_prologue): Use gen_safe_add.
16725 (rx_expand_epilogue): Likewise.
16726 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
16727 UNSPEC CONSTs.
16728
caaf13d3
JL
167292011-01-21 Jeff Law <law@redhat.com>
16730
16731 PR tree-optimization/47053
16732 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
16733 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
16734 statements are deleted.
16735 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
16736 is nonempty, then purge dead edges and cleanup the CFG.
16737
12c30f2f
AO
167382011-01-21 Alexandre Oliva <aoliva@redhat.com>
16739
16740 PR debug/47402
16741 Temporarily revert:
16742 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
16743 PR debug/47106
16744 * tree-dfa.c (create_var_ann): Mark variable as used.
16745
7360d2ac
JJ
167462011-01-21 Jakub Jelinek <jakub@redhat.com>
16747
aaa52a96
JJ
16748 PR middle-end/45566
16749 * except.c (convert_to_eh_region_ranges): Emit queued no-region
16750 notes from other section in hot/cold partitioning even if
16751 last_action is -3. Increment call_site_base.
16752
7360d2ac
JJ
16753 PR rtl-optimization/47366
16754 * fwprop.c (forward_propagate_into): Return bool. If
16755 any changes are made, -fnon-call-exceptions is used and
16756 REG_EH_REGION note is present, call purge_dead_edges
16757 and return true if it purged anything.
16758 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
16759 any EH edges were purged.
16760
e90b336f
JL
167612011-01-21 Jeff Law <law@redhat.com>
16762
16763 PR rtl-optimization/41619
16764 * caller-save.c (setup_save_areas): Break out code to determine
16765 which hard regs are live across calls by examining the reload chains
16766 so that it is always used.
16767 Eliminate code which checked REG_N_CALLS_CROSSED.
16768
3ffe07e1
JJ
167692011-01-21 Jakub Jelinek <jakub@redhat.com>
16770
16771 PR tree-optimization/47355
16772 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
16773 NOP has non-debug uses beyond PHIs in new_bb.
16774
1c7d0b34
AO
167752011-01-21 Alexandre Oliva <aoliva@redhat.com>
16776
16777 PR debug/47106
16778 * cfgexpand.c (account_used_vars_for_block): Only account vars
16779 that are annotated as used.
16780 (estimated_stack_frame_size): Don't set TREE_USED.
16781 * tree-dfa.c (create_var_ann): Mark variable as used.
16782
f99cc488
RG
167832011-01-21 Richard Guenther <rguenther@suse.de>
16784
16785 PR middle-end/47395
16786 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
16787
3bc27de7
RG
167882011-01-21 Richard Guenther <rguenther@suse.de>
16789
16790 PR tree-optimization/47365
16791 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
16792 (vn_reference_lookup_pieces): Adjust.
16793 (vn_reference_lookup): Likewise.
16794 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
16795 (vn_reference_lookup_3): Only look through kills if in
16796 VN_WALKREWRITE mode.
16797 (vn_reference_lookup_pieces): Adjust.
16798 (vn_reference_lookup): Likewise.
16799 (visit_reference_op_load): Likewise.
16800 (visit_reference_op_store): Likewise.
16801 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
16802 (compute_avail): Likewise.
16803 (eliminate): Likewise.
16804
d8debb1d
JJ
168052011-01-21 Jakub Jelinek <jakub@redhat.com>
16806
16807 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
16808 DECL_IGNORED_P non-reg vars if they are used.
16809
3a2df831
JJ
16810 PR tree-optimization/47391
16811 * varpool.c (const_value_known_p): Return false if
16812 decl is volatile.
16813
1dd584a2
KT
168142011-01-21 Kai Tietz <kai.tietz@onevision.com>
16815
16816 PR bootstrap/47215
16817 * config/i386/i386.c (ix86_local_alignment): Handle
16818 case for va_list_type_node is nil.
16819 (ix86_canonical_va_list_type): Likewise.
16820
7f9f095e
AM
168212011-01-21 Alan Modra <amodra@gmail.com>
16822
16823 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
16824 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
16825
837b01f6
RR
168262011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16827
16828 * config/arm/arm.md (define_attr type): Rename f_load
16829 and f_store to f_fpa_load and f_fpa_store. Update.
16830 (write_conflict): Deal with rename fallout.
16831 (*push_fp_multi): Likewise.
16832 * config/arm/fpa.md (f_load): Use f_fpa_load.
16833 (f_store): Use f_fpa_store.
16834 (*movsf_fpa): Likewise.
16835 (*movdf_fpa): Likewise.
16836 (*movxf_fpa): Likewise.
16837 (*thumb2_movsf_fpa): Likewise.
16838 (*thumb2_movdf_fpa): Likewise.
16839 (*thumb2_movxf_fpa): Likewise.
16840 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
16841 f_loadd and f_stored.
16842 (*thumb2_movdi_vfp): Likewise.
16843 (*thumb2_movsf_vfp): Fix attribute to f_loads.
16844 (*thumb2_movsi_vfp): Likewise.
16845 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
16846 Use f_loads instead of f_load.
16847 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
16848
a1a79768
AS
168492011-01-20 Anatoly Sokolov <aesok@post.ru>
16850
16851 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16852 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
16853 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16854 (xtensa_mode_dependent_address_p): New function.
16855 (constantpool_address_p): Make static. Change return type to bool.
16856 Change argument type to const_rtx. Use CONST_INT_P predicate.
16857
427f6cec
AO
168582011-01-20 Alexandre Oliva <aoliva@redhat.com>
16859
16860 PR debug/46583
16861 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
16862
583ac69c
JJ
168632011-01-20 Jakub Jelinek <jakub@redhat.com>
16864
16865 PR debug/47283
16866 * cfgexpand.c (expand_debug_expr): Instead of generating
16867 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
16868 etc. handling.
16869
93e452ed
RG
168702011-01-20 Richard Guenther <rguenther@suse.de>
16871
16872 PR middle-end/47370
16873 * tree-inline.c (remap_gimple_op_r): Recurse manually for
16874 the pointer operand of MEM_REFs.
16875
28fc44f3
JJ
168762011-01-20 Jakub Jelinek <jakub@redhat.com>
16877
16878 PR tree-optimization/46130
16879 * ipa-split.c (consider_split): If return_bb contains non-virtual
16880 PHIs other than for retval or if split_function would not adjust it,
16881 refuse to split.
16882
ddd268f2
RG
168832011-01-20 Richard Guenther <rguenther@suse.de>
16884
16885 PR tree-optimization/47167
16886 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
16887 Revert previous change, only avoid enumeral type changes.
16888
882020aa
MS
168892011-01-19 Mike Stump <mikestump@comcast.net>
16890
16891 * doc/tm.texi.in (BRANCH_COST): Englishify.
16892 * doc/tm.texi (BRANCH_COST): Likewise.
16893
7edb6247
DS
168942011-01-19 Dodji Seketeli <dodji@redhat.com>
16895
16896 PR c++/47291
16897 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
16898 (gen_scheduled_generic_parms_dies): New functions.
16899 (gen_struct_or_union_type_die): Schedule template parameters DIEs
16900 generation for the end of CU compilation.
16901 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 16902
23d5ed5d
AO
169032011-01-19 Alexandre Oliva <aoliva@redhat.com>
16904
16905 PR debug/46240
16906 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
16907 debug bind stmt on merge edges.
16908
37d6a488
AO
169092011-01-19 Alexandre Oliva <aoliva@redhat.com>
16910
16911 PR debug/47079
16912 PR debug/46724
16913 * function.c (instantiate_expr): Instantiate incoming rtl of
16914 implicit arguments, and recurse on VALUE_EXPRs.
16915 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
16916 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
16917
689f2c82
AO
169182011-01-19 Alexandre Oliva <aoliva@redhat.com>
16919
16920 * c-parser.c (c_parser_for_statement): Initialize
16921 collection_expression.
16922
03029de4
JM
169232011-01-19 Joseph Myers <joseph@codesourcery.com>
16924
16925 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
16926
3e03217e
JM
169272011-01-19 Joseph Myers <joseph@codesourcery.com>
16928
16929 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
16930 (LINK_SHLIB_SPEC): Don't use %(link_path).
16931 (SUBTARGET_EXTRA_SPECS): Remove link_path.
16932
5bbe9b3f
JM
169332011-01-19 Joseph Myers <joseph@codesourcery.com>
16934
16935 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
16936 (NO_SHARED_LIB_SUPPORT): Remove.
16937 (LINK_SHLIB_SPEC): Remove one conditional definition.
16938
368e0b39
JM
169392011-01-19 Joseph Myers <joseph@codesourcery.com>
16940
16941 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
16942 %{call_shared}.
16943 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
16944 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
16945 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
16946 %{call_shared} and conditionals on these options not being passed.
16947 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
16948 %{call_shared}.
16949
ed7656f6
JJ
169502011-01-19 Jakub Jelinek <jakub@redhat.com>
16951
68457901
JJ
16952 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
16953 simplify.
16954
ed7656f6
JJ
16955 * ipa-split.c: Spelling fixes.
16956
e0d1958f
RH
169572011-01-19 Richard Henderson <rth@redhat.com>
16958
16959 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
16960 (*mulsi3): Likewise.
16961
27098b6b
RH
16962 * longlong.h [__mn10300__] (count_leading_zeros): New.
16963 [__mn10300__] (umul_ppmm, smul_ppmm): New.
16964 [__mn10300__] (add_ssaaaa, subddmmss): New.
16965 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
16966 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
16967
d6be7c36
UW
169682011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16969
16970 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
16971
b1efde2a
RH
169722011-01-19 Richard Henderson <rth@redhat.com>
16973
44217823
RH
16974 * config/mn10300/mn10300.md (addsi3_flags): New.
16975 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
16976 (subsi3_flags, subc_internal, subdi3): New.
16977 (subdi3_internal, *subdi3_degenerate): New.
16978 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
16979
37a185d7
RH
16980 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
16981 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
16982 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
16983 * config/mn10300/mn10300-protos.h: Update.
16984 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
16985 (return_ret): Likewise. Rename from return_internal_regs.
16986 (return_internal): Remove.
16987
040c5757
RH
16988 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
16989 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
16990 (mn10300_legitimate_constant_p): Likewise.
16991 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
16992 (mn10300_frame_size): New.
16993 (mn10300_expand_prologue): Use it.
16994 (mn10300_expand_epilogue): Likewise.
16995 (mn10300_initial_offset): Likewise.
16996 * config/mn10300/mn10300-protos.h: Update.
16997 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
16998 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
16999 (prologue, epilogue, return_internal): Tidy output code.
17000 (mn10300_store_multiple_operation, return): Likewise.
17001 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
17002 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
17003 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
17004 (load_pic, am33_load_pic): New.
17005 (mn10300_load_pic0, mn10300_load_pic1): New.
17006
bad41521
RH
17007 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
17008 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
17009 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
17010 (cc_flags_for_mode, cc_flags_for_code): New.
17011 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
17012 overflow flag is not valid. Validate that the flags we need
17013 for the comparison are valid.
17014 (mn10300_output_cmp): Remove.
17015 (mn10300_output_add): New.
17016 (mn10300_select_cc_mode): Use cc_flags_for_code.
17017 (mn10300_split_cbranch): New.
17018 (mn10300_match_ccmode): New.
17019 (mn10300_split_and_operand_count): New.
17020 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
17021 to the function.
17022 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
17023 (addsi3): ... here. Use mn10300_output_add.
17024 (*addsi3_flags): New.
17025 (*am33_subsi3, *mn10300_subsi3): Merge...
17026 (subsi3): ... here. Use attribute isa.
17027 (*subsi3_flags): New.
17028 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
17029 when possible.
17030 (*am33_andsi3, *mn10300_andsi3): Merge...
17031 (andsi3): ... here.
17032 (*andsi3_flags): New.
17033 (andsi3 splitters): New.
17034 (*am33_iorsi3, *mn10300_iorsi3): Merge...
17035 (iorsi3): ... here.
17036 (*iorsi3_flags): New.
17037 (*am33_xorsi3, *mn10300_xorsi3): Merge...
17038 (xorsi3): ... here.
17039 (*xorsi3_flags): New.
17040 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
17041 (one_cmplsi2): ... here.
17042 (*one_cmplsi2_flags): New.
17043 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
17044 instead of "dax" in constraints. Use mn10300_split_cbranch.
17045 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
17046 use matching constraints to eliminate a self-comparison.
17047 (*integer_conditional_branch): Rename from integer_conditional_branch.
17048 Use int_mode_flags to match CC_REG.
17049 (*cbranchsi4_btst, *btstsi): New.
17050 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
17051 mn10300_split_cbranch.
17052 (*am33_cmpsf): Rename from am33_cmpsf.
17053 (*float_conditional_branch): Rename from float_conditional_branch.
17054 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
17055 (zero_extendqisi2): ... here.
17056 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
17057 (zero_extendhisi2): ... here.
17058 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
17059 (extendqisi2): ... here.
17060 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
17061 (extendhisi2): ... here.
17062 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
17063 (ashlsi3): ... here.
17064 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
17065 (lshrsi3): ... here.
17066 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
17067 (ashrsi3): ... here.
17068 (consecutive add peephole): Remove.
17069 * config/mn10300/predicates.md (label_ref_operand): New.
17070 (int_mode_flags): New.
17071 (CCZN_comparison_operator): New.
17072
9efb4993
RH
17073 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
17074 (throughput_42_latency_43): New reservation.
17075 (mulsidi3, umulsidi3): New expanders.
17076 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
17077 the MDR register to allocation; separately allocate the low and
17078 high parts of the DImode result.
17079 (umulsidi3_internal): Similarly.
17080 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
17081 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
17082 (udivsi3, umodsi3): Remove.
17083 (udivmodsi4, divmodsi4): New expanders.
17084 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
17085 (*divmodsi4): Simiarly.
17086 (ext_internal): New.
17087
c25a21f5
RH
17088 * config/mn10300/constraints.md ("z"): New constraint.
17089 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
17090 (FIXED_REGISTERS): Don't fix MDR.
17091 (CALL_USED_REGSITERS): Reformat nicely.
17092 (REG_ALLOC_ORDER): Add MDR.
17093 (enum regclass): Add MDR_REGS.
17094 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
17095 (IRA_COVER_CLASSES): Add MDR_REGS.
17096 (REGNO_REG_CLASS): Handle MDR_REG.
17097 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
17098 (mn10300_register_move_cost): Likewise.
17099 * config/mn10300/mn10300.md (MDR_REG): New.
17100 (*movsi_internal): Handle moves to/from MDR_REGS.
17101
36846b26
RH
17102 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
17103 POST_MODIFY.
17104 (mn10300_secondary_reload): Tidy combination reload classes.
17105 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
17106 addresses for AM33. Allow symbolic offsets for reg+imm.
17107 (mn10300_regno_in_class_p): New.
17108 (mn10300_legitimize_reload_address): New.
17109 * config/mn10300/mn10300.h (enum reg_class): Remove
17110 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
17111 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
17112 SP_OR_GENERAL_REGS.
17113 (REG_CLASS_NAMES): Update to match.
17114 (REG_CLASS_CONTENTS): Likewise.
17115 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
17116 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
17117 (REGNO_IN_RANGE_P): Remove.
17118 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
17119 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
17120 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
17121 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
17122 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
17123 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
17124 (REGNO_GENERAL_P): New.
17125 (HAVE_POST_MODIFY_DISP): New.
17126 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
17127 (LEGITIMIZE_RELOAD_ADDRESS): New.
17128 * config/mn10300/mn10300-protos.h: Update.
17129
8b119bb6
RH
17130 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
17131 DATA_REGS for AM33 stack-pointer destination.
17132 (mn10300_preferred_output_reload_class): Likewise.
17133 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
17134 into a form appropriate for ...
17135 (TARGET_SECONDARY_RELOAD): New.
17136 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
17137 * config/mn10300/mn10300-protos.h: Update.
17138 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
17139 reload_insi; use the "A" constraint for the scratch; handle AM33
17140 moves of sp to non-address registers.
17141
b1efde2a
RH
17142 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
17143 (*movqi_internal): ... here.
17144 (*am33_movhi, *mn10300_movhi): Merge into...
17145 (*movhi_internal): ... here.
17146 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
17147 as the source/destination of moves from/to SP.
17148 (movsf): Only allow for AM33-2.
1c3ba85b 17149 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
17150 any integer constant constraint. Only allow for AM33-2. Tidy
17151 all of the alternative outputs.
17152 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
17153 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
17154 for MN103.
17155 (udivsi3, umodsi3): New patterns for MN103 only.
17156
b899fd78
JR
171572011-01-19 Joern Rennecke <amylaar@spamcop.net>
17158
17159 * doc/tm.texi.in: Spell out that a lack of register class unions
17160 can lead to ICEs.
17161 * doc/tm.texi: Regenerate.
17162
afaaa67d
JJ
171632011-01-19 Jakub Jelinek <jakub@redhat.com>
17164
2e0642cd
JJ
17165 PR rtl-optimization/47337
17166 * dce.c (check_argument_store): New function.
17167 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
17168
afaaa67d
JJ
17169 PR tree-optimization/47290
17170 * tree-eh.c (infinite_empty_loop_p): New function.
17171 (cleanup_empty_eh): Use it.
17172
d2cd871f
SE
171732011-01-18 Steve Ellcey <sje@cup.hp.com>
17174
17175 PR target/46997
17176 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
17177 (a64_expand_widen_sum): Ditto.
17178 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
17179 (vec_extract_evenodd_help): Ditto.
17180 (vec_extract_evenv4hi): Ditto.
17181 (vec_extract_oddv4hi): Ditto.
17182 (vec_extract_evenv2si): Ditto.
17183 (vec_extract_oddv2si): Ditto.
17184 (vec_extract_evenv2sf): Ditto.
17185 (vec_extract_oddv2sf): Ditto.
17186 (vec_pack_trunc_v4hi: Ditto.
17187 (vec_pack_trunc_v2si): Ditto.
17188 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
17189 (vec_interleave_highv8qi): Ditto.
17190 (mix1_r): Ditto.
17191 (vec_extract_oddv8qi): Ditto.
17192 (vec_interleave_lowv4hi): Ditto.
17193 (vec_interleave_highv4hi): Ditto.
17194 (vec_interleave_lowv2si): Ditto.
17195 (vec_interleave_highv2si): Ditto.
17196
41a1208a
JDA
171972011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17198
17199 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
17200 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
17201 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
17202 (pa_c_mode_for_suffix): New.
17203 (TARGET_EXPAND_BUILTIN): Define.
17204 (TARGET_C_MODE_FOR_SUFFIX): Define.
17205 (pa_builtins): Define.
17206 (pa_init_builtins): Register __float128 type and init new support
17207 builtins.
17208 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
17209 * config/pa/quadlib.c (_U_Qfcopysign): New.
17210
1ecad98e
EB
172112011-01-18 Eric Botcazou <ebotcazou@adacore.com>
17212
17213 PR middle-end/46894
17214 * explow.c (allocate_dynamic_stack_space): Do not assume more than
17215 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
17216 are defined.
17217
d4f2460a
UW
172182011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17219
17220 PR tree-optimization/47179
17221 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
17222 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
17223
4994da65
RG
172242011-01-18 Richard Guenther <rguenther@suse.de>
17225
17226 PR rtl-optimization/47216
17227 * emit-rtl.c: Include tree-flow.h.
17228 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
17229 of replicating it with different semantics.
17230 * Makefile.in (emit-rtl.o): Adjust.
17231
1eb458d1
RR
172322011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17233
38be4072 17234 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 17235 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 17236
e7ef91dc
JJ
172372011-01-18 Jakub Jelinek <jakub@redhat.com>
17238
17239 PR rtl-optimization/47299
17240 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 17241 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
17242 * expmed.c (expand_widening_mult): Don't try to optimize constant
17243 multiplication if op0 has VOIDmode. Convert op1 constant to mode
17244 before using it.
17245
535b7874
RW
172462011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17247
17248 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
17249 spacing after 'e.g.', typos, comma, hyphenation.
17250
27bf36f3
RH
172512011-01-17 Richard Henderson <rth@redhat.com>
17252
8a5b5449
RH
17253 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
17254 (rx_restricted_mem_operand): New.
17255 (rx_shift_operand): Use register_operand.
17256 (rx_source_operand, rx_compare_operand): Likewise.
17257 * config/rx/rx.md (addsi3_flags): New expander.
17258 (adddi3): Rewrite as expander.
17259 (adc_internal, *adc_flags, adddi3_internal): New patterns.
17260 (subsi3_flags): New expander.
17261 (subdi3): Rewrite as expander.
17262 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
17263
784f69be
RH
17264 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
17265 (rx_init_builtins): Remove sat builtin.
17266 (rx_expand_builtin): Likewise.
17267 * config/rx/rx.md (ssaddsi3): New.
17268 (*sat): Rename from sat. Represent the CC_REG input.
17269
f033541c
RH
17270 * config/rx/predicates.md (rshift_operator): New.
17271 * config/rx/rx.c (rx_expand_insv): Remove.
17272 * config/rx/rx-protos.h: Update.
17273 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
17274 operand to the canonical position.
17275 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
17276 (*bitclr, *bitclr_in_memory): Similarly.
17277 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
17278 (insv): Retain the zero_extract in the expansion.
17279
34fee389
RH
17280 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
17281 (bswaphi2, bitinvert, revw): Likewise.
17282
265c835f
RH
17283 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
17284 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
17285 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
17286 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
17287 (bitset, bitset_in_memory): Likewise.
17288 (bitinvert, bitinvert_in_memory): Likewise.
17289 (bitclr, bitclr_in_memory): Likewise.
17290 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
17291 (rx_strend, rx_cmpstrn): Likewise.
17292 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
17293 (bitop peep2 patterns): Remove.
17294
b4d83be3
RH
17295 * config/rx/rx.c (rx_match_ccmode): New.
17296 * config/rx/rx-protos.h: Update.
17297 * config/rx/rx.md (abssi2): Clobber, don't set flags.
17298 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
17299 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
17300 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
17301 (fix_truncsfsi2, floatsisf2): Likewise.
17302 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
17303 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
17304 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
17305 (*subsi3_flags, *xorsi3_flags): New.
17306
d0acb939
RH
17307 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
17308
c06fc3d9
RH
17309 * config/rx/rx.c (rx_print_operand): Remove workaround for
17310 unsplit comparison operations.
17311
2882702b
RH
17312 * config/rx/rx.md (movsicc): Split after reload.
17313 (*movsicc): Merge *movsieq and *movsine via match_operator.
17314 (*stcc): New pattern.
17315
6f7310f2
RH
17316 * config/rx/rx.c (rx_float_compare_mode): Remove.
17317 * config/rx/rx.h (rx_float_compare_mode): Remove.
17318 * config/rx/rx.md (cstoresi4): Split after reload.
17319 (*sccc): New pattern.
17320
e963cb1a
RH
17321 * config/rx/predicates.md (label_ref_operand): New.
17322 (rx_z_comparison_operator): New.
17323 (rx_zs_comparison_operator): New.
17324 (rx_fp_comparison_operator): New.
17325 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
17326 Validate that the flags are set properly for the comparison.
17327 (rx_gen_cond_branch_template): Remove.
17328 (rx_cc_modes_compatible): Remove.
17329 (mode_from_flags): New.
17330 (flags_from_code): Rename from flags_needed_for_conditional.
17331 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
17332 (rx_select_cc_mode): Likewise.
17333 (rx_split_fp_compare): New.
17334 (rx_split_cbranch): New.
17335 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
17336 (*cbranchsi4): Use match_operator and rx_split_cbranch.
17337 (*cbranchsf4): Similarly.
17338 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
17339 match_operator and rx_split_cbranch.
17340 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
17341 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
17342 (*cmpsi): Rename from cmpsi.
17343 (*tstsi): Rename from tstsi.
17344 (*cmpsf): Rename from cmpsf; use CC_Fmode.
17345 (*conditional_branch): Rename from conditional_branch.
17346 (*reveresed_conditional_branch): Remove.
17347 (b<code>): Remove expander.
17348 * config/rx/rx-protos.h: Update.
17349
af530bb4
RH
17350 * config/rx/rx.c (rx_compare_redundant): Remove.
17351 * config/rx/rx.md (cmpsi): Don't use it.
17352 * config/rx/rx-protos.h: Update.
17353
27bf36f3
RH
17354 * config/rx/rx-modes.def (CC_F): New mode.
17355 * config/rx/rx.c (rx_select_cc_mode): New.
17356 * config/rx/rx.h (SELECT_CC_MODE): Use it.
17357 * config/rx/rx-protos.h: Update.
17358
d7fde127
RH
173592011-01-17 Richard Henderson <rth@redhat.com>
17360
17361 * except.c (dump_eh_tree): Fix stray ; after for statement.
17362
6ff38230
RG
173632011-01-17 Richard Guenther <rguenther@suse.de>
17364
17365 PR tree-optimization/47313
17366 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
17367 handling before copying the body. Properly deal with
17368 by-reference result in SSA form.
17369
114ce554
ILT
173702011-01-17 Ian Lance Taylor <iant@google.com>
17371
bf5cd92b 17372 PR target/47219
114ce554
ILT
17373 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
17374 (struct_value_alias_set): Don't define.
17375 (sparc_option_override): Don't set sparc_sr_alias_set and
17376 struct_value_alias_set.
17377 (save_or_restore_regs): Use gen_frame_mem rather than calling
17378 set_mem_alias_set.
17379 (sparc_struct_value_rtx): Likewise.
17380
98c6d93c
L
173812011-01-17 H.J. Lu <hongjiu.lu@intel.com>
17382
17383 PR target/47318
7a81008b 17384 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
17385 (_mm_maskstore_pd): Likewise.
17386 (_mm_maskload_ps): Likewise.
17387 (_mm_maskstore_ps): Likewise.
17388 (_mm256_maskload_pd): Change mask to __m256i.
17389 (_mm256_maskstore_pd): Likewise.
17390 (_mm256_maskload_ps): Likewise.
17391 (_mm256_maskstore_ps): Likewise.
17392
17393 * config/i386/i386-builtin-types.def: Updated.
17394 (ix86_expand_special_args_builtin): Likewise.
17395
17396 * config/i386/i386.c (bdesc_special_args): Update
17397 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
17398 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
17399 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
17400 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
17401
17402 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
17403 Use <avxpermvecmode> on mask register.
17404 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
17405
b9361af2 174062011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
17407 Michael Haubenwallner <michael.haubenwallner@salomon.at>
17408 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
17409
17410 PR target/46655
17411 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
17412 if <= USHRT_MAX in 32-bit mode.
17413
b7ae9eb5
RW
174142011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17415
17416 * doc/install.texi (Configuration, Specific): Wrap long
17417 lines in examples. Allow line wrapping in long options
17418 and URLs where beneficial for PDF output.
17419
4377fad9
RS
174202011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
17421
17422 * config/mips/mips.c (mips_classify_symbol): Don't return
17423 SYMBOL_PC_RELATIVE for nonlocal labels.
17424
55959ffa 174252011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 17426
55959ffa
EB
17427 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
17428
174292011-01-15 Jan Hubicka <jh@suse.cz>
17430
17431 PR tree-optimization/47276
be46831f
JH
17432 * ipa.c (function_and_variable_visibility): Do not try to mark alias
17433 declarations as needed.
17434
05842ff5
MJ
174352011-01-15 Martin Jambor <mjambor@suse.cz>
17436
17437 * common.opt (fdevirtualize): New flag.
17438 * doc/invoke.texi (Option Summary): Document it.
17439 * opts.c (default_options_table): Add devirtualize flag.
17440 * ipa-prop.c (detect_type_change): Return immediately if
17441 devirtualize flag is not set.
17442 (detect_type_change_ssa): Likewise.
17443 (compute_known_type_jump_func): Likewise.
17444 (ipa_analyze_virtual_call_uses): Likewise.
17445
f65cf2b7
MJ
174462011-01-14 Martin Jambor <mjambor@suse.cz>
17447
17448 PR tree-optimization/45934
17449 PR tree-optimization/46302
17450 * ipa-prop.c (type_change_info): New type.
17451 (stmt_may_be_vtbl_ptr_store): New function.
17452 (check_stmt_for_type_change): Likewise.
17453 (detect_type_change): Likewise.
17454 (detect_type_change_ssa): Likewise.
17455 (compute_complex_assign_jump_func): Check for dynamic type change.
17456 (compute_complex_ancestor_jump_func): Likewise.
17457 (compute_known_type_jump_func): Likewise.
17458 (compute_scalar_jump_functions): Likewise.
17459 (ipa_analyze_virtual_call_uses): Likewise.
17460 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
17461
eb5bb0fd
JM
174622011-01-14 Joseph Myers <joseph@codesourcery.com>
17463
17464 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
17465 * config/i386/i386.opt (msse5): New Alias.
17466
f2060fbe
JM
174672011-01-14 Joseph Myers <joseph@codesourcery.com>
17468
17469 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
17470 * config/sparc/linux64.h (CC1_SPEC): Likewise.
17471 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
17472 * config/sparc/sparc.h (CC1_SPEC): Likewise.
17473
3a7b4385
JM
174742011-01-14 Joseph Myers <joseph@codesourcery.com>
17475
17476 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
17477 -mcpu options.
17478 * config/sparc/linux64.h (CC1_SPEC): Likewise.
17479 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
17480 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
17481 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
17482 Likewise.
17483 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
17484
a7b778f8
JM
174852011-01-14 Joseph Myers <joseph@codesourcery.com>
17486
38be4072 17487 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 17488
a7edae0a
MS
174892011-01-14 Mike Stump <mikestump@comcast.net>
17490
17491 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
17492 * config/fr30/fr30.md: Likweise
17493 (movsi_push): Likewise.
17494 (movsi_pop): Likewise.
17495 (enter_func): Likewise.
17496 * config/moxie/moxie.md (movsi_push): Likewise.
17497 (movsi_pop): Likewise.
17498
cbabf03f
JM
174992011-01-14 Joseph Myers <joseph@codesourcery.com>
17500
17501 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
17502 %{no_archive} %{exact_version}.
17503 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
17504 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
17505 %{no_archive} %{exact_version}.
17506 * config/mips/openbsd.h (LINK_SPEC): Likewise.
17507 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
17508 * config/mips/vxworks.h: Likewise.
17509
438da41a
JM
175102011-01-14 Joseph Myers <joseph@codesourcery.com>
17511
38be4072 17512 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 17513
da290a42
JM
175142011-01-14 Joseph Myers <joseph@codesourcery.com>
17515
17516 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
17517 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
17518
8989d00e
JM
175192011-01-14 Joseph Myers <joseph@codesourcery.com>
17520
17521 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
17522 -nodefaultlib.
17523
a3010a69
JM
175242011-01-14 Joseph Myers <joseph@codesourcery.com>
17525
17526 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
17527 for mcpu not cpu.
17528 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
17529 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
17530 not cpu.
17531 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
17532 Don't handle -shlib.
17533
e7f2f537
JM
175342011-01-14 Joseph Myers <joseph@codesourcery.com>
17535
17536 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
17537 (CC1_SPEC): Don't handle -profile.
17538
34830bfd
JM
175392011-01-14 Joseph Myers <joseph@codesourcery.com>
17540
17541 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
17542 * config/mips/mips.h (CC1_SPEC): Likewise.
17543
b2d36e74
JM
175442011-01-14 Joseph Myers <joseph@codesourcery.com>
17545
17546 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
17547 * config/mips/mips.h (CC1_SPEC): Likewise.
17548
dabadc52
JM
175492011-01-14 Joseph Myers <joseph@codesourcery.com>
17550
17551 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
17552 * config/m32r/linux.h (LINK_SPEC): Likewise.
17553 * config/mips/linux.h (LINK_SPEC): Likewise.
17554 * config/mips/linux64.h (LINK_SPEC): Likewise.
17555 * config/sparc/linux.h (LINK_SPEC): Likewise.
17556 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
17557 LINK_SPEC): Likewise.
17558 * config/xtensa/linux.h (LINK_SPEC): Likewise.
17559
43ee6785
JM
175602011-01-14 Joseph Myers <joseph@codesourcery.com>
17561
17562 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
17563 %{version:-v}.
17564 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
17565
45e79dfd
JM
175662011-01-14 Joseph Myers <joseph@codesourcery.com>
17567
17568 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
17569 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
17570
37e9e71d
JM
175712011-01-14 Joseph Myers <joseph@codesourcery.com>
17572
17573 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
17574
bb127cd8
RO
175752011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17576
17577 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
17578 supports -Bstatic/-Bdynamic.
17579 * configure: Regenerate.
17580
89a012ea 175812011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 17582 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
17583
17584 PR target/46037
17585 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
17586 when checking debug_info_level. Test write_symbols instead of
17587 debug_hooks->var_location when setting flag_var_tracking_uninit.
17588
7352c013
RG
175892011-01-14 Richard Guenther <rguenther@suse.de>
17590
17591 PR tree-optimization/47179
17592 * target.def (ref_may_alias_errno): New target hook.
17593 * targhooks.h (default_ref_may_alias_errno): Declare.
17594 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
17595 (default_ref_may_alias_errno): New function.
17596 * target.h (struct ao_ref_s): Declare.
17597 * tree-ssa-alias.c: Include target.h.
17598 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
17599 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
17600 (targhooks.o): Likewise.
17601 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
17602 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
17603
9a6c9288
RG
176042011-01-14 Richard Guenther <rguenther@suse.de>
17605
17606 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
17607
0fdb0d27
RG
176082011-01-14 Richard Guenther <rguenther@suse.de>
17609
17610 PR tree-optimization/47280
17611 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
17612 return CFG changes.
17613 (tree_ssa_forward_propagate_single_use_vars): Deal with
17614 CFG changes from associate_plusminus.
17615
8f66db3b
RG
176162011-01-14 Richard Guenther <rguenther@suse.de>
17617
17618 PR middle-end/47281
17619 Revert
17620 2011-01-11 Richard Guenther <rguenther@suse.de>
17621
280d9630
EB
17622 PR tree-optimization/46076
17623 * tree-ssa.c (useless_type_conversion_p): Conversions from
17624 unprototyped to empty argument list function types are useless.
8f66db3b 17625
6c0c92e6
RG
176262011-01-14 Richard Guenther <rguenther@suse.de>
17627
17628 PR tree-optimization/47286
280d9630 17629 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 17630
db09f943
MJ
176312011-01-14 Martin Jambor <mjambor@suse.cz>
17632
17633 PR middle-end/46823
17634 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
17635
dde8a3a4
AS
176362011-01-13 Anatoly Sokolov <aesok@post.ru>
17637
17638 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
17639 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17640 * config/xtensa/xtensa.c (xtensa_libcall_value,
17641 xtensa_function_value_regno_p): New functions.
17642 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
17643
a2b63a20
KT
176442011-01-13 Kai Tietz <kai.tietz@onevision.com>
17645
17646 PR c++/47213
17647 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
17648 PE specific hook.
17649 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
17650 New function prototype.
17651 * config/i386/winnt.c (i386_pe_assemble_visibility):
17652 Warn only if attribute was specified by user.
17653
b41f0b34
MM
176542011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
17655
17656 PR target/47251
17657 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
17658 floating point.
17659 (floatunsdidf2_fcfidu): Ditto.
17660
3f3c098d
AK
176612011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17662
17663 * config/s390/s390.c (print_operand_address): Replace 'error' with
17664 'output_operand_lossage'.
17665 (print_operand): Likewise.
17666
29fa95ed
JL
176672011-01-13 Jeff Law <law@redhat.com>
17668
280d9630 17669 PR rtl-optimization/39077
29fa95ed
JL
17670 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
17671 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
17672 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
17673 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
17674 * gcse.c (prune_insertions_deletions): New function.
17675 (compute_pre_data): Use it.
17676
71d12276
DS
176772011-01-13 Dodji Seketeli <dodji@redhat.com>
17678
17679 PR debug/PR46973
17680 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
17681 static function.
61052244 17682 (prune_unused_types_mark): Use it.
71d12276 17683
9b0f04e7
AB
176842011-01-13 Andrey Belevantsev <abel@ispras.ru>
17685
17686 PR rtl-optimization/45352
1c3ba85b 17687 * sel-sched.c: Update copyright years.
9b0f04e7 17688 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 17689 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 17690
d6a3e264
RH
176912011-01-12 Richard Henderson <rth@redhat.com>
17692
a49b692a
RH
17693 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
17694 (TARGET_MD_ASM_CLOBBERS): New.
17695
126b1483
RH
17696 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
17697 (TARGET_DELEGITIMIZE_ADDRESS): New.
17698
f3d9d2e0
RH
17699 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
17700 (clzsi2, *bsch): New patterns.
17701
d84760c9
RH
17702 * config/mn10300/mn10300.md (INT): New mode iterator.
17703 (*mov<INT>_clr): New pattern, and peep2 to generate it.
17704
ec815d65
RH
17705 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
17706 flag_split_wide_types.
17707
d6a3e264
RH
17708 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
17709 (mn10300_trampoline_init): Rewrite without a template, an immediate
17710 load and a direct branch.
17711 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
17712
0f8ab434
AS
177132011-01-12 Anatoly Sokolov <aesok@post.ru>
17714
17715 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17716 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
17717 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
17718 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17719
d8a24b65
KT
177202011-01-12 Kai Tietz <kai.tietz@onevision.com>
17721
17722 PR debug/47209
17723 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
17724 of type.
17725
56e22cab
JH
177262011-01-12 Jan Hubicka <jh@suse.cz>
17727
17728 PR driver/47244
17729 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
17730 (PLUGIN_COND_CLOSE): New macro.
17731 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
17732
4b18b3c2
RG
177332011-01-12 Richard Guenther <rguenther@suse.de>
17734
17735 PR lto/47259
17736 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
17737 register variables in a MEM_REF.
17738
8e38461c
JM
177392011-01-12 Joseph Myers <joseph@codesourcery.com>
17740
17741 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
17742 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
17743 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
17744 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
17745 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
17746 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
17747 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
17748 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
17749 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
17750 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
17751 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
17752 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
17753 * config/gnu-user.h: New. Copied from linux.h.
17754 (LINUX_TARGET_STARTFILE_SPEC): Rename to
17755 GNU_USER_TARGET_STARTFILE_SPEC.
17756 (LINUX_TARGET_ENDFILE_SPEC): Rename to
17757 GNU_USER_TARGET_ENDFILE_SPEC.
17758 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
17759 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
17760 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
17761 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
17762 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
17763 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
17764 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
17765 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
17766 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
17767 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
17768 * config/arm/linux-eabi.h (CC1_SPEC): Use
17769 GNU_USER_TARGET_CC1_SPEC.
17770 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
17771 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
17772 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
17773 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
17774 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
17775 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
17776 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
17777 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
17778
a570fc16
RG
177792011-01-12 Richard Guenther <rguenther@suse.de>
17780
17781 PR other/46946
17782 * doc/invoke.texi (ffast-math): Document it is turned on
17783 with -Ofast.
17784
b0223c3e
JH
177852011-01-12 Jan Hubicka <jh@suse.cz>
17786
17787 PR tree-optimization/47233
ca1e00b3
EB
17788 * opts.c (common_handle_option): Disable ipa-reference with profile
17789 feedback.
b0223c3e 17790
1c3ba85b 177912011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
17792
17793 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
17794 error message.
17795
d853ee42
NP
177962011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
17797
17798 * c-parser.c (c_lex_one_token): Updated and reindented some
17799 comments. No changes in code.
17800
4053a5a0
ILT
178012011-01-11 Ian Lance Taylor <iant@google.com>
17802
17803 * godump.c (go_output_var): Don't output the variable if there is
17804 already a type with the same name.
17805
fa3e04d2
ILT
178062011-01-11 Ian Lance Taylor <iant@google.com>
17807
17808 * godump.c (go_format_type): Don't generate float80.
17809
885fe07c
RH
178102011-01-11 Richard Henderson <rth@redhat.com>
17811
72d6e3c5
RH
17812 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
17813 declaration. Rewrite for both speed and size.
17814 (mn10300_address_cost_1): Remove.
17815 (mn10300_register_move_cost): New.
17816 (mn10300_memory_move_cost): New.
17817 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
17818 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
17819 extensions, shifts, BSWAP, CLZ.
17820 (mn10300_wide_const_load_uses_clr): Remove.
17821 (TARGET_REGISTER_MOVE_COST): New.
17822 (TARGET_MEMORY_MOVE_COST): New.
17823 * config/mn10300/mn10300-protos.h: Update.
17824 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
17825
df37c023
RH
17826 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
17827 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
17828 * config/mn10300/mn10300-protos.h: Update.
17829 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
17830 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
17831 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
17832 (*test_int_bitfield, *test_byte_bitfield): Remove.
17833 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 17834 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 17835
85a337b5
RH
17836 * config/mn10300/constraints.md ("c"): Rename from "A".
17837 ("A", "D"): New constraint letters.
17838 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
17839 (fmssf4, fnmasf4, fnmssf4): Likewise.
17840
a5c727e3
RH
17841 * config/mn10300/mn10300.md (isa): New attribute.
17842 (enabled): New attribute.
17843
0d9e23f4
RH
17844 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
17845 (abssf2, negsf2): Define only for hardware fp.
17846 (sqrtsf2): Reformat.
17847 (addsf3, subsf3, mulsf3): Merge expander and insn.
17848
c157b3f0
RH
17849 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
17850 (DEBUGGER_AUTO_OFFSET): Remove.
17851 (DEBUGGER_ARG_OFFSET): Remove.
17852
cc909bba
RH
17853 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
17854 Emit register stores with the same offsets as the hardware.
17855 (mn10300_store_multiple_operation): Don't check that the register
17856 save offsets are monotonic.
17857 * config/mn10300/mn10300-protos.h: Update.
17858
e3b5c2f3
RH
17859 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
17860
885fe07c
RH
17861 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
17862 in terms of the value on the stack, not the MDR register.
17863
6e701822
JH
178642011-01-11 Jan Hubicka <jh@suse.cz>
17865
17866 PR lto/45721
17867 PR lto/45375
17868 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
17869 (symbol_alias_set_destroy, symbol_alias_set_contains,
17870 propagate_aliases_backward): Declare.
17871 * lto-streamer-out.c (struct sets): New sturcture.
17872 (trivally_defined_alias): New function.
17873 (output_alias_pair_p): Rewrite.
17874 (output_unreferenced_globals): Fix output of alias pairs.
17875 (produce_symtab): Likewise.
17876 * ipa.c (function_and_variable_visibility): Set weak alias destination
17877 as needed in lto.
17878 * varasm.c (symbol_alias_set_t): Remove.
17879 (symbol_alias_set_destroy): Export.
17880 (propagate_aliases_forward, propagate_aliases_backward): New functions
17881 based on ...
17882 (compute_visible_aliases): ... this one; remove.
17883 (trivially_visible_alias): New
17884 (trivially_defined_alias): New.
17885 (remove_unreachable_alias_pairs): Rewrite.
17886 (finish_aliases_1): Reorganize code checking if alias is defined.
17887 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
17888 in LTO mode.
17889
1b248907
RG
178902011-01-11 Richard Guenther <rguenther@suse.de>
17891
17892 PR tree-optimization/46076
17893 * tree-ssa.c (useless_type_conversion_p): Conversions from
17894 unprototyped to empty argument list function types are useless.
17895
b1923f0a
RG
178962011-01-11 Richard Guenther <rguenther@suse.de>
17897
17898 PR middle-end/45235
17899 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
17900 volatile MEMs as MEM_READONLY_P.
17901
e98965af
RG
179022011-01-11 Richard Guenther <rguenther@suse.de>
17903
17904 PR tree-optimization/47239
17905 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
17906
9f9ca914
JL
179072011-01-11 Jeff Law <law@redhat.com>
17908
1ee3ea05 17909 PR tree-optimization/47086
9f9ca914
JL
17910 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
17911 IVs from statements that might throw.
17912
345fdcb7
JH
179132011-01-10 Jan Hubicka <jh@suse.cz>
17914
17915 PR lto/45375
17916 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
17917
c459c97b
JH
179182011-01-10 Jan Hubicka <jh@suse.cz>
17919
17920 PR lto/45375
17921 * profile.c (read_profile_edge_counts): Ignore profile inconistency
17922 when correcting profile.
17923
06c9eb51
JH
179242011-01-10 Jan Hubicka <jh@suse.cz>
17925
17926 PR lto/46083
17927 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
17928 DECL_FINI_PRIORITY.
17929 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
17930 Restore DECL_FINI_PRIORITY.
17931
ae9fd815
RW
179322011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17933
17934 * doc/gimple.texi: Fix quoting of multi-word return values in
17935 @deftypefn statements. Ensure presence of return value. Wrap
17936 overlong @deftypefn lines.
17937 (is_gimple_operand, is_gimple_min_invariant_address): Remove
17938 descriptions of removed functions.
17939 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
17940 of multi-word return value in @deftypefn statement.
17941
0ecb4a7c
RW
179422011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17943
17944 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
17945 (Conditional Expressions, Logical Operators)
17946 (Statement and operand traversals): Do not indent smallexample
17947 code. Fix duplicate function argument in example.
17948
2e5e346d
JL
179492011-01-10 Jeff Law <law@redhat.com>
17950
1ee3ea05 17951 PR tree-optimization/47141
2e5e346d
JL
17952 * ipa-split.c (split_function): Handle case where we are
17953 returning a value and the return block has a virtual operand phi.
17954
cf9712cc
JH
179552011-01-10 Jan Hubicka <jh@suse.cz>
17956
1c3ba85b 17957 PR tree-optimization/47234
cf9712cc
JH
17958 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
17959 (pass_feedback_split_functions): Declare.
17960 * passes.c (init_optimization_passes): Add ipa-split as subpass of
17961 tree-profile.
17962 * ipa-split.c (gate_split_functions): Update comments; disable
17963 split-functions for profile_arc_flag and branch_probabilities.
17964 (gate_feedback_split_functions): New function.
17965 (execute_feedback_split_functions): New function.
17966 (pass_feedback_split_functions): New global var.
17967
94cd932c
L
179682011-01-10 H.J. Lu <hongjiu.lu@intel.com>
17969
17970 PR lto/46760
17971 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
17972 calling gimple_call_set_cannot_inline.
17973
fbbfcaf1
IS
179742011-01-10 Iain Sandoe <iains@gcc.gnu.org>
17975
17976 * config/darwin-sections.def: Remove unused section.
17977
d06865bf
DK
179782011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
17979
17980 PR c++/47218
17981 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
17982
96bbfbac
NP
179832011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
17984
17985 PR objc/47232
17986 * c-parser.c (c_parser_declaration_or_fndef): Improved
17987 error message.
17988
1ba6516f
KT
179892011-01-09 Kai Tietz <kai.tietz@onevision.com>
17990
17991 * config/i386/winnt.c (i386_pe_start_function): Make sure
17992 to switch back to function's section.
17993
0c5d770e
IS
179942011-01-09 Iain Sandoe <iains@gcc.gnu.org>
17995
17996 PR gcc/46902
17997 PR testsuite/46912
17998 * plugin.c: Move include of dlfcn.h from here...
17999 * system.h: ... to here.
18000
180012011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
18002
18003 * doc/cpp.texi (C++ Named Operators): Fix markup for header
18004 file name.
18005 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
18006 two extra empty pages in PDF output.
18007
046608a3
NP
180082011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
18009
18010 PR objc/47078
18011 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
18012 for error recovery purposes behave as if it was not specified so
18013 that the default type is usd.
18014
8cb114b9
JH
180152011-01-07 Jan Hubicka <jh@suse.cz>
18016
18017 PR tree-optmization/46469
18018 * ipa.c (function_and_variable_visibility): Clear needed flags on
18019 nodes with external decls; handle weakrefs merging correctly.
18020
b294a75e
JM
180212011-01-07 Joseph Myers <joseph@codesourcery.com>
18022
18023 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
18024 not false.
18025
96bdf9b4
JH
180262011-01-07 Jan Hubicka <jh@suse.cz>
18027
f60c2554 18028 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
18029 and no longer claim that gold is required for linker plugin.
18030 * configure: Regenerate.
18031 * gcc.c (PLUGIN_COND): New macro.
18032 (LINK_COMMAND_SPEC): Use it.
18033 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
18034 * config.in (HAVE_LTO_PLUGIN): New.
18035 * configure.ac (--with-lto-plugin): New parameter; autodetect
18036 HAVE_LTO_PLUGIN.
18037
17afc0fe
JH
180382011-01-07 Jan Hubicka <jh@suse.cz>
18039
18040 PR tree-optimization/46367
18041 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
18042 when we can update original.
18043 (cgraph_mark_inline_edge): Sanity check.
18044 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
18045
d4c48c0f
UW
180462011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18047
18048 * config/spu/spu.h (ASM_COMMENT_START): Define.
18049
96f5b137
L
180502011-01-07 H.J. Lu <hongjiu.lu@intel.com>
18051
18052 PR driver/42445
18053 * gcc.c (%>S): New.
18054 (SWITCH_KEEP_FOR_GCC): Likewise.
18055 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
18056 (do_spec_1): Handle "%>".
18057
18058 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
18059
c6a8f6de
JJ
180602011-01-07 Jakub Jelinek <jakub@redhat.com>
18061
c21bbd7a
JJ
18062 PR target/47201
18063 * config/i386/i386.c (ix86_delegitimize_address): If
18064 simplify_gen_subreg fails, return orig_x.
18065
c6a8f6de
JJ
18066 PR bootstrap/47187
18067 * value-prof.c (gimple_stringop_fixed_value): Handle
18068 lhs of the call properly.
18069
fe95fbf9
JH
180702011-01-07 Jan Hubicka <jh@suse.cz>
18071
18072 PR lto/45375
18073 * lto-opt.c (lto_reissue_options): Set flag_shlib.
18074
14d11d40
IS
180752011-01-07 Iain Sandoe <iains@gcc.gnu.org>
18076
72e961c8
EB
18077 * target.def (function_switched_text_sections): New hook.
18078 * doc/tm.texi: Regenerated.
18079 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 18080 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
18081 (final_scan_insn): Call function_switched_text_sections when a
18082 mid-function section change occurs.
14d11d40 18083 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
18084 * config/darwin-protos.h (darwin_function_switched_text_sections):
18085 Likewise.
14d11d40 18086 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 18087 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 18088
0b764288
IS
180892011-01-07 Iain Sandoe <iains@gcc.gnu.org>
18090
18091 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
18092 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
18093 the secondary code fragment when outputting for DWARF == 2.
18094
2ac6bb04
AS
180952011-01-07 Anatoly Sokolov <aesok@post.ru>
18096
18097 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18098 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
18099 Remove.
18100 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
18101 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18102
9f82de11
EB
181032011-01-06 Eric Botcazou <ebotcazou@adacore.com>
18104
18105 PR debug/46704
280d9630
EB
18106 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
18107 when it is not empty.
9f82de11
EB
18108
181092011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 18110
1ed72abf 18111 Bobcat Enablement
14b52538 18112 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 18113 (case ${target}): Add btver1.
14b52538 18114 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 18115 -march=native recognize btver1 processors.
14b52538 18116 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 18117 btver1 def_and_undef
14b52538 18118 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
18119 btver1 cost table.
18120 (m_BTVER1): New definition.
18121 (m_AMD_MULTIPLE): Includes m_BTVER1.
18122 (initial_ix86_tune_features): Add btver1 tune.
18123 (processor_target_table): Add btver1 entry.
18124 (static const char *const cpu_names): Add btver1 entry.
18125 (software_prefetching_beneficial_p): Add btver1.
18126 (ix86_option_override_internal): Add btver1 instruction sets.
18127 (ix86_issue_rate): Add btver1.
18128 (ix86_adjust_cost): Add btver1.
14b52538 18129 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
18130 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
18131 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
18132 * config/i386/i386.md (define_attr "cpu"): Add btver1.
18133
e1a973d8
RO
181342011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18135
18136 PR target/43309
18137 * config/i386/i386.c (legitimize_tls_address)
18138 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
18139 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
18140 (tls_initial_exec_64_sun): New pattern.
18141
c73f67c5
GP
181422011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
18143
18144 * doc/invoke.texi (Overall Options): Improve wording and markup
18145 of the description of -wrapper.
18146
bc4c6f9c
JM
181472011-01-06 Joseph Myers <joseph@codesourcery.com>
18148
18149 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
18150 rdynamic, threads): New Driver options.
18151
adb75db0
RO
181522011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18153
18154 PR target/38118
18155 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
18156 if coming from .tdata.
18157 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
18158
402c1cb4
JH
181592011-01-06 Jan Hubicka <jh@suse.cz>
18160
18161 PR lto/47188
18162 * collect2.c (main): Do not enable LTOmode when plugin is active.
18163
a4da6485
RO
181642011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18165
18166 PR other/45915
18167 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
18168 --version output if supported.
18169 * configure: Regenerate.
18170
028dbdf4
JM
181712011-01-06 Joseph Myers <joseph@codesourcery.com>
18172
18173 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
18174 Driver options.
18175
dfe776dd
JJ
181762011-01-06 Jakub Jelinek <jakub@redhat.com>
18177
18178 PR c/47150
18179 * c-convert.c (convert): When converting a complex expression
18180 other than COMPLEX_EXPR to a different complex type, ensure
18181 c_save_expr is called instead of save_expr, unless in_late_binary_op.
18182 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
18183 when converting COMPLEX_TYPE.
18184
210dedfe
IR
181852011-01-06 Ira Rosen <irar@il.ibm.com>
18186
18187 PR tree-optimization/47139
18188 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
18189 only the last reduction value is used outside the loop. Update
18190 documentation.
18191
cd33a412
JM
181922011-01-05 Joseph Myers <joseph@codesourcery.com>
18193
18194 * config/rtems.opt: New.
18195 * config.gcc (*-*-rtems*): Use rtems.opt.
18196
819edd94
CF
181972011-01-05 Changpeng Fang <changpeng.fang@amd.com>
18198
18199 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
18200 processors do not support 3DNow instructions.
18201
dc242c4a
UW
182022011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18203
18204 * config/spu/spu.c (spu_option_override): Set parameter
18205 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
18206
be286227
JH
182072011-01-05 Jan Hubicka <jh@suse.cz>
18208
18209 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
18210 at the command line.
18211
644e637f
MJ
182122011-01-05 Martin Jambor <mjambor@suse.cz>
18213
18214 PR lto/47162
18215 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
18216 deltas on streamed outgoing edges.
18217 (output_node_opt_summary): Output info for outgoing edges only when
18218 the node is in new parameter set.
18219 (output_cgraph_opt_summary): New parameter set, passed to the two
18220 aforementioned functions. Update its forward declaration and its
18221 callee too.
18222
7bd11157
TT
182232011-01-05 Tom Tromey <tromey@redhat.com>
18224
18225 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
18226 operator to c_finish_omp_atomic.
18227 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
18228 (build_unary_op): Update.
18229 (build_modify_expr): Update.
18230 (build_asm_expr): Update.
18231
f626b979
UW
182322011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18233
18234 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
18235 newly inserted insns.
18236 (pad_bb): Likewise.
18237 (spu_emit_branch_hint): Likewise.
18238 (insert_hbrp_for_ilb_runout): Likewise.
18239 (spu_machine_dependent_reorg): Call df_finish_pass after
18240 schedule_insns returns.
18241
4c825c02
UW
182422011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18243
18244 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
18245
5e9fba51
EB
182462011-01-05 Eric Botcazou <ebotcazou@adacore.com>
18247
18248 PR tree-optimization/47005
18249 * tree-sra.c (struct access): Add 'non_addressable' bit.
18250 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
18251 (decide_one_param_reduction): Return 0 if the parameter is passed by
18252 reference and one of the accesses in the group is non_addressable.
18253
3ebb5ca6
EB
182542011-01-04 Eric Botcazou <ebotcazou@adacore.com>
18255
18256 PR tree-optimization/47056
18257 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
18258 (mark_load): Likewise. Handle FUNCTION_DECL specially.
18259 (mark_store): Likewise. Pass STMT to ipa_record_reference.
18260
d5d4d14e
EB
182612011-01-04 Eric Botcazou <ebotcazou@adacore.com>
18262
18263 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
18264 initializer. Skip view conversions from aggregate types.
18265
d996ef70
KT
182662011-01-04 Kai Tietz <kai.tietz@onevision.com>
18267
18268 PR bootstrap/47055
18269 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
18270
509d65dd 182712011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
18272
18273 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
18274 obvious typo.
18275
55c623b5
UW
182762011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18277
18278 * function.c (thread_prologue_and_epilogue_insns): Do not crash
18279 on empty epilogue sequences.
18280
b98d6b35
JM
182812011-01-04 Joseph Myers <joseph@codesourcery.com>
18282
18283 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
18284 non-static): New Driver options.
18285
a0d43bac
JZ
182862011-01-04 Jie Zhang <jie@codesourcery.com>
18287
18288 PR driver/47137
18289 * gcc.c (default_compilers[]): Set combinable field to 0
18290 for all assembly languages.
18291
2b18eb32
MX
182922011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
18293
18294 * config/mips/loongson3a.md: New file.
18295 * config/mips/mips.md: Include loongson3a.md.
18296 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
18297 TUNE_LOONGSON_3A.
18298
42a48c4f
EB
182992011-01-03 Eric Botcazou <ebotcazou@adacore.com>
18300
18301 PR middle-end/47017
18302 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
18303 instead of convert_memory_address_addr_space on the base expression.
18304
9c1732c4
UW
183052011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18306
18307 * config/spu/spu.c (spu_option_override): Update error text
18308 for bad -march= / -mtune= values.
18309
aa474365
UW
183102011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18311
18312 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
18313 if branch-hint optimization will be performed.
18314
9766135b
JJ
183152011-01-03 Jakub Jelinek <jakub@redhat.com>
18316
371556ee
JJ
18317 PR tree-optimization/47148
18318 * ipa-split.c (split_function): Convert arguments to
18319 DECL_ARG_TYPE if possible.
18320
1ac12fa2
JJ
18321 PR tree-optimization/47155
18322 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
18323 when computing uns.
18324
9766135b
JJ
18325 PR rtl-optimization/47157
18326 * combine.c (try_combine): If undobuf.other_insn becomes
18327 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
18328 and set *new_direct_jump_p too.
18329
f4a2e571
SP
183302011-01-03 Sebastian Pop <sebastian.pop@amd.com>
18331
18332 PR tree-optimization/47021
18333 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
18334
9f8e43c0
JJ
183352011-01-03 Jakub Jelinek <jakub@redhat.com>
18336
18337 * gcc.c (process_command): Update copyright notice dates.
18338 * gcov.c (print_version): Likewise.
18339 * gcov-dump.c (print_version): Likewise.
18340 * mips-tfile.c (main): Likewise.
18341 * mips-tdump.c (main): Likewise.
18342
1a2e38f3
MJ
183432011-01-03 Martin Jambor <mjambor@suse.cz>
18344
18345 PR tree-optimization/46801
18346 * tree-sra.c (type_internals_preclude_sra_p): Check whether
18347 aggregate fields start at byte boundary instead of the bit-field flag.
18348
56b721c5
L
183492011-01-03 H.J. Lu <hongjiu.lu@intel.com>
18350
18351 PR driver/47137
18352 * gcc.c (main): Revert revision 168407.
18353
839d549b
MJ
183542011-01-03 Martin Jambor <mjambor@suse.cz>
18355
18356 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
18357
4ce99a20 183582011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
18359
18360 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
18361 vector optab to expand vector/scalar shift, update gimple to vector.
18362
76df0ae6
MJ
183632011-01-03 Martin Jambor <mjambor@suse.cz>
18364
18365 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
18366 a thunk.
18367
ce47fda3
MJ
183682011-01-03 Martin Jambor <mjambor@suse.cz>
18369
18370 PR tree-optimization/46984
18371 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
18372 HOST_WIDE_INT.
18373 (cgraph_create_indirect_edge): Fixed line length.
18374 (cgraph_indirect_call_info): Declare.
18375 (cgraph_make_edge_direct) Update declaration.
18376 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
18377 (cgraph_create_indirect_edge): Use it.
18378 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
18379 callees.
18380 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
18381 the new thunk_delta representation.
18382 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
18383 HOST_WIDE_INT.
18384 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
18385 (ipa_read_indirect_edge_info): Likewise.
18386 * lto-cgraph.c (output_edge_opt_summary): New function.
18387 (output_node_opt_summary): Call it on all outgoing edges.
18388 (input_edge_opt_summary): New function.
18389 (input_node_opt_summary): Call it on all outgoing edges.
18390
1e67fa1f
L
183912011-01-02 H.J. Lu <hongjiu.lu@intel.com>
18392
18393 PR driver/47137
18394 * gcc.c (main): Don't check have_o when settting combine_inputs.
18395
6656b2ac
EB
183962011-01-02 Eric Botcazou <ebotcazou@adacore.com>
18397
18398 * regrename.c: Add general comment describing the pass.
18399 (struct du_head): Remove 'length' field.
18400 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
18401 (regrename_optimize): Do not sort chains. Rework comments, add others.
18402 Force renaming to the preferred class (if any) in the first pass and do
18403 not consider registers that belong to it in the second pass.
18404 (create_new_chain): Do not set 'length' field.
18405 (scan_rtx_reg): Likewise.
18406
bc470c24
JJ
184072011-01-02 Jakub Jelinek <jakub@redhat.com>
18408
4e996296
JJ
18409 PR tree-optimization/47140
18410 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
18411 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
18412 to bit_value_binop.
18413
bc470c24 18414 PR rtl-optimization/47028
6656b2ac
EB
18415 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
18416 parm_birth_insn instead of at the beginning of first bb.
bc470c24 18417
5af62fcd 184182011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
18419
18420 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
18421 Remove the word "see" before "@pxref".
18422 * doc/rtl.texi: Remove the word "see" before "@pxref".
18423
0e20c89f
JH
184242011-01-01 Jan Hubicka <jh@suse.cz>
18425
6656b2ac
EB
18426 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
18427 memory.
0e20c89f 18428
220e83ca
KT
184292011-01-01 Kai Tietz <kai.tietz@onevision.com>
18430
18431 PR target/38662
6656b2ac 18432 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 18433
ad41bd84 18434\f
797103eb 18435Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
18436
18437Copying and distribution of this file, with or without modification,
18438are permitted in any medium without royalty provided the copyright
18439notice and this notice are preserved.