]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
912df756 12009-08-28 Olivier Hainque <hainque@adacore.com>
2
3 * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
4 always defined. Reflect definition or absence of such for
5 COLLECT_EXPORT_LIST. Readability helper.
6 (scanfilter): New enum, to help control what symbols
7 are to be considered or ignored by scan_prog_file.
8 (enum pass): Rename as "scanpass", moved together with scanfilter
9 prior to scan_prog_file's prototype.
10 (scan_prog_file): Accept and honor scanpass and scanfilter arguments.
11 Group prototype with the scanpass/scanfilter definitions, factorize
12 head comments for the several implementations at the prototype.
13 (main): Reorganize the first pass link control to let AIX
14 drag only the needed frame tables in executables. Prevent
15 frame tables collection during the scan aimed at static ctors.
16 Pre-link and scan for frame tables later to compensate.
17 * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro.
18 A C statement to issue assembly directives that create a reference
19 to the given DWARF table identifier label from the current function
20 section.
21 * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument
22 to differentiate first time section entry. Only emit a .data
23 tables start identifier label the first time around.
24 (switch_to_frame_table_section): New function. Helper for
25 output_call_frame_info to switch possibly BACK into the eh_frame
26 or the debug_frame section depending on FOR_EH.
27 (output_call_frame_info): Use helper to first enter the proper
28 frame section.
29 (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to
30 emit a link to the frame table start label from each function
31 section.
32 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
33 New function. Implementation of ASM_OUTPUT_DWARF_TABLE_REF.
34 * config/rs6000/rs6000-protos.h: Declare it.
35 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define.
36
03dac8f9 372009-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
38
39 * config/sh/sh.c (split_branches): Check the result of
40 next_active_insn.
41
202cd5ca 422009-08-27 Steve Ellcey <sje@cup.hp.com>
43
44 * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when
45 using -pthread -fopenmp
46
647256b1 472009-08-27 Gerald Pfeifer <gerald@pfeifer.com>
48
49 * doc/service.texi (service directory): Update URL.
50
59d15e1f 512009-08-27 Uros Bizjak <ubizjak@gmail.com>
52
53 PR rtl-optimization/40861
54 * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
55 extract word from a multi-word subreg for negative byte positions.
56
fd42340b 572009-08-27 Tristan Gingold <gingold@adacore.com>
58 Douglas B Rupp <rupp@gnat.com>
59
59d15e1f 60 * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry.
fd42340b 61 (SECTION_VMS_OVERLAY): Define.
62 (ia64_vms_common_object_attribute): Added. Handle the "common_object"
63 attribute.
64 (ia64_vms_elf_asm_named_section): Added. Generate .section pseudo-op
65 for common_object.
66 (ia64_vms_output_aligned_decl_common): Added. Generate pseudo-op for
67 common_object declarations.
68 (ia64_section_type_flags): Set section flag for common_object.
69 * config/ia64/ia64-protos.h
70 (ia64_vms_output_aligned_decl_common): Declare.
71 (ia64_vms_elf_asm_named_section): Declare.
72
dff12ad7 732009-08-27 Michael Matz <matz@suse.de>
74
75 * expr.c (expand_expr_real_2): New function taking exploded
76 unary or binary expression, split out from ...
77 (expand_expr_real_1): ... here. Move over all unary/binary
78 switch parts to above function, in particular these codes:
79 PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR,
80 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR,
81 ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
82 FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR,
83 FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR,
84 BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR,
85 BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR,
86 LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR,
87 NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR,
88 UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR,
89 WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR,
90 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
91 VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR,
92 VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR,
93 VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR,
94 VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR,
95 VEC_PACK_FIX_TRUNC_EXPR.
96 (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the
97 full expression.
98
7496b609 992009-08-27 Richard Guenther <rguenther@suse.de>
100
101 * gengtype.c (main): Handle uint64_t.
102 * ipa-utils.c (get_base_var): Indent properly.
103 * tree-ssa-live.c (debug_scope_block): New function.
104 * tree-flow.h (debug_scope_block): Declare.
105 * tree-ssa-copy.c (replace_exp_1): Add vertical space.
106 * basic-block.h (enum profile_status): Rename to
107 enum profile_status_d.
108 (x_profile_status): Adjust type.
109
8c5b0c2b 1102009-08-27 Dodji Seketeli <dodji@redhat.com>
111
112 PR debug/41770
113 * dwarf2out.c (get_context_die): Declare this static function.
114 (gen_type_die_with_usage): Make sure a DIE is a generated for
115 the context of a typedef.
116
8cc286dc 1172009-08-26 Anatoly Sokolov <aesok@post.ru>
118
119 * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack
120 switch.
121
b47517ea 1222009-08-26 Richard Sandiford <rdsandiford@googlemail.com>
123
124 * config/mips/mips-protos.h (mips_output_sync): Declare.
125 (mips_sync_loop_insns): Likewise.
126 (mips_output_sync_loop): Replace first two parameters with an rtx.
127 * config/mips/mips.c (mips_multi_member): New structure.
128 (mips_multi_members): New variable.
129 (mips_multi_start): New function.
130 (mips_multi_add): Likewise.
131 (mips_multi_add_insn): Likewise.
132 (mips_multi_add_label): Likewise.
133 (mips_multi_last_index): Likewise.
134 (mips_multi_copy_insn): Likewise.
135 (mips_multi_set_operand): Likewise.
136 (mips_multi_write): Likewise.
137 (mips_print_operand_punctuation): Remove '%|' and '%-'.
138 (mips_init_print_operand_punct): Update accordingly.
139 (mips_start_ll_sc_sync_block): New function.
140 (mips_end_ll_sc_sync_block): Likewise.
141 (mips_output_sync): Likewise.
142 (mips_sync_insn1_template): Likewise.
143 (mips_sync_insn2_template): Likewise.
144 (mips_get_sync_operand): Likewise.
145 (mips_process_sync_loop): Likewise.
146 (mips_output_sync_loop): Use mips_process_sync_loop.
147 (mips_sync_loop_insns): New function.
148 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete.
149 (MIPS_COMPARE_AND_SWAP_12): Likewise.
150 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise.
151 (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise.
152 (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise.
153 (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise.
154 (MIPS_SYNC_OLD_OP_12): Likewise.
155 (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise.
156 (MIPS_SYNC_NEW_OP_12): Likewise.
157 (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise.
158 (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise.
159 (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise.
160 (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise.
161 (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise.
162 (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise.
163 * config/mips/mips.md (sync_mem): New attribute.
164 (sync_oldval, sync_newval, sync_inclusive_mask): Likewise.
165 (sync_exclusive_mask, sync_required_oldval): Likewise.
166 (sync_insn1_op2, sync_insn1, sync_insn2): Likewise.
167 (sync_release_barrier): Likewise.
168 (length): Handle sync loops.
169 (sync): Use mips_output_sync.
170 * config/mips/sync.md (*memory_barrier): Use mips_output_sync.
171 (sync_compare_and_swap<mode>): Set the new sync_* attributes
172 and use mips_output_sync_loop.
173 (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise.
174 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
175 (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise.
176 (sync_old_add<mode>, sync_old_sub<mode>): Likewise.
177 (sync_new_add<mode>, sync_new_sub<mode>): Likewise.
178 (sync_<optab><mode>, sync_old_<optab><mode>): Likewise.
179 (sync_new_<optab><mode>, sync_nand<mode>): Likewise.
180 (sync_old_nand<mode>, sync_new_nand<mode>): Likewise.
181 (sync_lock_test_and_set<mode>, test_and_set_12): Likewise.
182
a8cefe90 1832009-08-26 Richard Guenther <rguenther@suse.de>
184
185 PR middle-end/41163
186 * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
187 the types to not match.
188 * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
189 verification.
190 * tree-ssa.c (useless_type_conversion_p): Conversions to
191 pointers to unprototyped functions are useless.
192
7e17648b 1932009-08-26 Richard Guenther <rguenther@suse.de>
194
195 * tree-ssa-structalias.c (create_variable_info_for): Remove
196 strange whole-program condition, prepare to be called for non-globals.
197 (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
198 params build a representative with known type and track its fields.
199
66f98e8a 2002009-08-26 Uros Bizjak <ubizjak@gmail.com>
201
202 * config/alpha/sync.md: Update comment about unpredictable LL/SC lock
203 clearing by a taken branch.
204 (sync_<fetchop_name><mode>): Split when epilogue_completed is set,
205 effectively after bbro pass.
206 (sync_nand<mode>): Ditto.
207 (sync_old_<fetchop_name><mode>): Ditto.
208 (sync_old_nand<mode>): Ditto.
209 (sync_new_<fetchop_name><mode>): Dito.
210 (sync_new_nand<mode>): Ditto.
211 (sync_compare_and_swap<mode>_1): Ditto.
212 (*sync_compare_and_swap<mode>): Ditto.
213 (sync_lock_test_and_set<mode>_1): Ditto.
214 ("sync_lock_test_and_set<mode>): Ditto.
215
038ca0d1 2162009-08-25 Douglas B Rupp <rupp@gnat.com>
217
218 * hwint.h (HOST_LONG_FORMAT): New macro
219 * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
220 Use HOST_PTR_PRINTF.
221 * system.h (HOST_PTR_PRINTF): Resurrect old macro
222 * doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
223 (HOST_PTR_PRINTF): Document.
224
31c1975b 2252009-08-25 Jan Hubicka <jh@suse.cz>
226
227 * config/i386/bmmintrin.h: Replace by #error.
228
229 Revert:
230 Michael Meissner <michael.meissner@amd.com>
231 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
232 Tony Linthicum <tony.linthicum@amd.com>
233
234 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
235 (TARGET_ROUND): New macro for the round/ptest instructions which
236 are shared between SSE4.1 and SSE5.
237 (OPTION_MASK_ISA_ROUND): Ditto.
238 (OPTION_ISA_ROUND): Ditto.
239 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
240 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
241
242 * config/i386/i386.opt (-msse5): New switch for SSE5 support.
243 (-mfused-madd): New switch to give users control over whether the
244 compiler optimizes to use the multiply/add SSE5 instructions.
245
246 * config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
247 (ix86_handle_option): Turn off 3dnow if -msse5.
248 (override_options): Add SSE5 support.
249 (print_operand): %Y prints comparison codes for SSE5 com/pcom
250 instructions.
251 (ix86_expand_sse_movcc): Add SSE5 support.
252 (ix86_expand_sse5_unpack): New function to use pperm to unpack a
253 vector type to the next largest size.
254 (ix86_expand_sse5_pack): New function to use pperm to pack a
255 vector type to the next smallest size.
256 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
257 (IX86_BUILTIN_FMADDSD): Ditto.
258 (IX86_BUILTIN_FMADDPS): Ditto.
259 (IX86_BUILTIN_FMADDPD): Ditto.
260 (IX86_BUILTIN_FMSUBSS): Ditto.
261 (IX86_BUILTIN_FMSUBSD): Ditto.
262 (IX86_BUILTIN_FMSUBPS): Ditto.
263 (IX86_BUILTIN_FMSUBPD): Ditto.
264 (IX86_BUILTIN_FNMADDSS): Ditto.
265 (IX86_BUILTIN_FNMADDSD): Ditto.
266 (IX86_BUILTIN_FNMADDPS): Ditto.
267 (IX86_BUILTIN_FNMADDPD): Ditto.
268 (IX86_BUILTIN_FNMSUBSS): Ditto.
269 (IX86_BUILTIN_FNMSUBSD): Ditto.
270 (IX86_BUILTIN_FNMSUBPS): Ditto.
271 (IX86_BUILTIN_FNMSUBPD): Ditto.
272 (IX86_BUILTIN_PCMOV_V2DI): Ditto.
273 (IX86_BUILTIN_PCMOV_V4SI): Ditto.
274 (IX86_BUILTIN_PCMOV_V8HI): Ditto.
275 (IX86_BUILTIN_PCMOV_V16QI): Ditto.
276 (IX86_BUILTIN_PCMOV_V4SF): Ditto.
277 (IX86_BUILTIN_PCMOV_V2DF): Ditto.
278 (IX86_BUILTIN_PPERM): Ditto.
279 (IX86_BUILTIN_PERMPS): Ditto.
280 (IX86_BUILTIN_PERMPD): Ditto.
281 (IX86_BUILTIN_PMACSSWW): Ditto.
282 (IX86_BUILTIN_PMACSWW): Ditto.
283 (IX86_BUILTIN_PMACSSWD): Ditto.
284 (IX86_BUILTIN_PMACSWD): Ditto.
285 (IX86_BUILTIN_PMACSSDD): Ditto.
286 (IX86_BUILTIN_PMACSDD): Ditto.
287 (IX86_BUILTIN_PMACSSDQL): Ditto.
288 (IX86_BUILTIN_PMACSSDQH): Ditto.
289 (IX86_BUILTIN_PMACSDQL): Ditto.
290 (IX86_BUILTIN_PMACSDQH): Ditto.
291 (IX86_BUILTIN_PMADCSSWD): Ditto.
292 (IX86_BUILTIN_PMADCSWD): Ditto.
293 (IX86_BUILTIN_PHADDBW): Ditto.
294 (IX86_BUILTIN_PHADDBD): Ditto.
295 (IX86_BUILTIN_PHADDBQ): Ditto.
296 (IX86_BUILTIN_PHADDWD): Ditto.
297 (IX86_BUILTIN_PHADDWQ): Ditto.
298 (IX86_BUILTIN_PHADDDQ): Ditto.
299 (IX86_BUILTIN_PHADDUBW): Ditto.
300 (IX86_BUILTIN_PHADDUBD): Ditto.
301 (IX86_BUILTIN_PHADDUBQ): Ditto.
302 (IX86_BUILTIN_PHADDUWD): Ditto.
303 (IX86_BUILTIN_PHADDUWQ): Ditto.
304 (IX86_BUILTIN_PHADDUDQ): Ditto.
305 (IX86_BUILTIN_PHSUBBW): Ditto.
306 (IX86_BUILTIN_PHSUBWD): Ditto.
307 (IX86_BUILTIN_PHSUBDQ): Ditto.
308 (IX86_BUILTIN_PROTB): Ditto.
309 (IX86_BUILTIN_PROTW): Ditto.
310 (IX86_BUILTIN_PROTD): Ditto.
311 (IX86_BUILTIN_PROTQ): Ditto.
312 (IX86_BUILTIN_PROTB_IMM): Ditto.
313 (IX86_BUILTIN_PROTW_IMM): Ditto.
314 (IX86_BUILTIN_PROTD_IMM): Ditto.
315 (IX86_BUILTIN_PROTQ_IMM): Ditto.
316 (IX86_BUILTIN_PSHLB): Ditto.
317 (IX86_BUILTIN_PSHLW): Ditto.
318 (IX86_BUILTIN_PSHLD): Ditto.
319 (IX86_BUILTIN_PSHLQ): Ditto.
320 (IX86_BUILTIN_PSHAB): Ditto.
321 (IX86_BUILTIN_PSHAW): Ditto.
322 (IX86_BUILTIN_PSHAD): Ditto.
323 (IX86_BUILTIN_PSHAQ): Ditto.
324 (IX86_BUILTIN_FRCZSS): Ditto.
325 (IX86_BUILTIN_FRCZSD): Ditto.
326 (IX86_BUILTIN_FRCZPS): Ditto.
327 (IX86_BUILTIN_FRCZPD): Ditto.
328 (IX86_BUILTIN_CVTPH2PS): Ditto.
329 (IX86_BUILTIN_CVTPS2PH): Ditto.
330 (IX86_BUILTIN_COMEQSS): Ditto.
331 (IX86_BUILTIN_COMNESS): Ditto.
332 (IX86_BUILTIN_COMLTSS): Ditto.
333 (IX86_BUILTIN_COMLESS): Ditto.
334 (IX86_BUILTIN_COMGTSS): Ditto.
335 (IX86_BUILTIN_COMGESS): Ditto.
336 (IX86_BUILTIN_COMUEQSS): Ditto.
337 (IX86_BUILTIN_COMUNESS): Ditto.
338 (IX86_BUILTIN_COMULTSS): Ditto.
339 (IX86_BUILTIN_COMULESS): Ditto.
340 (IX86_BUILTIN_COMUGTSS): Ditto.
341 (IX86_BUILTIN_COMUGESS): Ditto.
342 (IX86_BUILTIN_COMORDSS): Ditto.
343 (IX86_BUILTIN_COMUNORDSS): Ditto.
344 (IX86_BUILTIN_COMFALSESS): Ditto.
345 (IX86_BUILTIN_COMTRUESS): Ditto.
346 (IX86_BUILTIN_COMEQSD): Ditto.
347 (IX86_BUILTIN_COMNESD): Ditto.
348 (IX86_BUILTIN_COMLTSD): Ditto.
349 (IX86_BUILTIN_COMLESD): Ditto.
350 (IX86_BUILTIN_COMGTSD): Ditto.
351 (IX86_BUILTIN_COMGESD): Ditto.
352 (IX86_BUILTIN_COMUEQSD): Ditto.
353 (IX86_BUILTIN_COMUNESD): Ditto.
354 (IX86_BUILTIN_COMULTSD): Ditto.
355 (IX86_BUILTIN_COMULESD): Ditto.
356 (IX86_BUILTIN_COMUGTSD): Ditto.
357 (IX86_BUILTIN_COMUGESD): Ditto.
358 (IX86_BUILTIN_COMORDSD): Ditto.
359 (IX86_BUILTIN_COMUNORDSD): Ditto.
360 (IX86_BUILTIN_COMFALSESD): Ditto.
361 (IX86_BUILTIN_COMTRUESD): Ditto.
362 (IX86_BUILTIN_COMEQPS): Ditto.
363 (IX86_BUILTIN_COMNEPS): Ditto.
364 (IX86_BUILTIN_COMLTPS): Ditto.
365 (IX86_BUILTIN_COMLEPS): Ditto.
366 (IX86_BUILTIN_COMGTPS): Ditto.
367 (IX86_BUILTIN_COMGEPS): Ditto.
368 (IX86_BUILTIN_COMUEQPS): Ditto.
369 (IX86_BUILTIN_COMUNEPS): Ditto.
370 (IX86_BUILTIN_COMULTPS): Ditto.
371 (IX86_BUILTIN_COMULEPS): Ditto.
372 (IX86_BUILTIN_COMUGTPS): Ditto.
373 (IX86_BUILTIN_COMUGEPS): Ditto.
374 (IX86_BUILTIN_COMORDPS): Ditto.
375 (IX86_BUILTIN_COMUNORDPS): Ditto.
376 (IX86_BUILTIN_COMFALSEPS): Ditto.
377 (IX86_BUILTIN_COMTRUEPS): Ditto.
378 (IX86_BUILTIN_COMEQPD): Ditto.
379 (IX86_BUILTIN_COMNEPD): Ditto.
380 (IX86_BUILTIN_COMLTPD): Ditto.
381 (IX86_BUILTIN_COMLEPD): Ditto.
382 (IX86_BUILTIN_COMGTPD): Ditto.
383 (IX86_BUILTIN_COMGEPD): Ditto.
384 (IX86_BUILTIN_COMUEQPD): Ditto.
385 (IX86_BUILTIN_COMUNEPD): Ditto.
386 (IX86_BUILTIN_COMULTPD): Ditto.
387 (IX86_BUILTIN_COMULEPD): Ditto.
388 (IX86_BUILTIN_COMUGTPD): Ditto.
389 (IX86_BUILTIN_COMUGEPD): Ditto.
390 (IX86_BUILTIN_COMORDPD): Ditto.
391 (IX86_BUILTIN_COMUNORDPD): Ditto.
392 (IX86_BUILTIN_COMFALSEPD): Ditto.
393 (IX86_BUILTIN_COMTRUEPD): Ditto.
394 (IX86_BUILTIN_PCOMEQUB): Ditto.
395 (IX86_BUILTIN_PCOMNEUB): Ditto.
396 (IX86_BUILTIN_PCOMLTUB): Ditto.
397 (IX86_BUILTIN_PCOMLEUB): Ditto.
398 (IX86_BUILTIN_PCOMGTUB): Ditto.
399 (IX86_BUILTIN_PCOMGEUB): Ditto.
400 (IX86_BUILTIN_PCOMFALSEUB): Ditto.
401 (IX86_BUILTIN_PCOMTRUEUB): Ditto.
402 (IX86_BUILTIN_PCOMEQUW): Ditto.
403 (IX86_BUILTIN_PCOMNEUW): Ditto.
404 (IX86_BUILTIN_PCOMLTUW): Ditto.
405 (IX86_BUILTIN_PCOMLEUW): Ditto.
406 (IX86_BUILTIN_PCOMGTUW): Ditto.
407 (IX86_BUILTIN_PCOMGEUW): Ditto.
408 (IX86_BUILTIN_PCOMFALSEUW): Ditto.
409 (IX86_BUILTIN_PCOMTRUEUW): Ditto.
410 (IX86_BUILTIN_PCOMEQUD): Ditto.
411 (IX86_BUILTIN_PCOMNEUD): Ditto.
412 (IX86_BUILTIN_PCOMLTUD): Ditto.
413 (IX86_BUILTIN_PCOMLEUD): Ditto.
414 (IX86_BUILTIN_PCOMGTUD): Ditto.
415 (IX86_BUILTIN_PCOMGEUD): Ditto.
416 (IX86_BUILTIN_PCOMFALSEUD): Ditto.
417 (IX86_BUILTIN_PCOMTRUEUD): Ditto.
418 (IX86_BUILTIN_PCOMEQUQ): Ditto.
419 (IX86_BUILTIN_PCOMNEUQ): Ditto.
420 (IX86_BUILTIN_PCOMLTUQ): Ditto.
421 (IX86_BUILTIN_PCOMLEUQ): Ditto.
422 (IX86_BUILTIN_PCOMGTUQ): Ditto.
423 (IX86_BUILTIN_PCOMGEUQ): Ditto.
424 (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
425 (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
426 (IX86_BUILTIN_PCOMEQB): Ditto.
427 (IX86_BUILTIN_PCOMNEB): Ditto.
428 (IX86_BUILTIN_PCOMLTB): Ditto.
429 (IX86_BUILTIN_PCOMLEB): Ditto.
430 (IX86_BUILTIN_PCOMGTB): Ditto.
431 (IX86_BUILTIN_PCOMGEB): Ditto.
432 (IX86_BUILTIN_PCOMFALSEB): Ditto.
433 (IX86_BUILTIN_PCOMTRUEB): Ditto.
434 (IX86_BUILTIN_PCOMEQW): Ditto.
435 (IX86_BUILTIN_PCOMNEW): Ditto.
436 (IX86_BUILTIN_PCOMLTW): Ditto.
437 (IX86_BUILTIN_PCOMLEW): Ditto.
438 (IX86_BUILTIN_PCOMGTW): Ditto.
439 (IX86_BUILTIN_PCOMGEW): Ditto.
440 (IX86_BUILTIN_PCOMFALSEW): Ditto.
441 (IX86_BUILTIN_PCOMTRUEW): Ditto.
442 (IX86_BUILTIN_PCOMEQD): Ditto.
443 (IX86_BUILTIN_PCOMNED): Ditto.
444 (IX86_BUILTIN_PCOMLTD): Ditto.
445 (IX86_BUILTIN_PCOMLED): Ditto.
446 (IX86_BUILTIN_PCOMGTD): Ditto.
447 (IX86_BUILTIN_PCOMGED): Ditto.
448 (IX86_BUILTIN_PCOMFALSED): Ditto.
449 (IX86_BUILTIN_PCOMTRUED): Ditto.
450 (IX86_BUILTIN_PCOMEQQ): Ditto.
451 (IX86_BUILTIN_PCOMNEQ): Ditto.
452 (IX86_BUILTIN_PCOMLTQ): Ditto.
453 (IX86_BUILTIN_PCOMLEQ): Ditto.
454 (IX86_BUILTIN_PCOMGTQ): Ditto.
455 (IX86_BUILTIN_PCOMGEQ): Ditto.
456 (IX86_BUILTIN_PCOMFALSEQ): Ditto.
457 (IX86_BUILTIN_PCOMTRUEQ): Ditto.
458 (enum multi_arg_type): New enum for describing the various SSE5
459 intrinsic argument types.
460 (bdesc_multi_arg): New table for SSE5 intrinsics.
461 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
462 (ix86_expand_multi_arg_builtin): New function for creating SSE5
463 intrinsics.
464 (ix86_expand_builtin): Add SSE5 intrinsic support.
465 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
466 operand instructions.
467 (ix86_expand_sse5_multiple_memory): New function to split the
468 second memory reference from SSE5 instructions.
469 (type_has_variadic_args_p): Delete in favor of stdarg_p.
470 (ix86_return_pops_args): Use stdarg_p to determine if the function
471 has variable arguments.
472 (ix86_setup_incoming_varargs): Ditto.
473 (x86_this_parameter): Ditto.
474
475 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
476 declaration.
477 (ix86_expand_sse5_pack): Ditto.
478 (ix86_sse5_valid_op_p): Ditto.
479 (ix86_expand_sse5_multiple_memory): Ditto.
480
481 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
482 constant for SSE5 support.
483 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
484 (UNSPEC_SSE5_TRUEFALSE): Ditto.
485 (UNSPEC_SSE5_PERMUTE): Ditto.
486 (UNSPEC_SSE5_ASHIFT): Ditto.
487 (UNSPEC_SSE5_LSHIFT): Ditto.
488 (UNSPEC_FRCZ): Ditto.
489 (UNSPEC_CVTPH2PS): Ditto.
490 (UNSPEC_CVTPS2PH): Ditto.
491 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
492 (PCOM_TRUE): Ditto.
493 (COM_FALSE_S): Ditto.
494 (COM_FALSE_P): Ditto.
495 (COM_TRUE_S): Ditto.
496 (COM_TRUE_P): Ditto.
497 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
498 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
499 types.
500 (memory attribute): Ditto.
501 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
502 Use SSE4_1_ROUND_* constants instead of hard coded numbers.
503 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
504 (floor<mode>2): Ditto.
505 (ceil<mode>2): Ditto.
506 (btrunc<mode>2): Ditto.
507 (nearbyintdf2): Ditto.
508 (nearbyintsf2): Ditto.
509 (sse_setccsf): Disable if SSE5.
510 (sse_setccdf): Ditto.
511 (sse5_setcc<mode>): New support for SSE5 conditional move.
512 (sse5_pcmov_<mode>): Ditto.
513
514 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
515 (SSEMODEF4): Ditto.
516 (SSEMODEF2P): Ditto.
517 (ssemodesuffixf4): New mode attribute for SSE5.
518 (ssemodesuffixf2s): Ditto.
519 (ssemodesuffixf2c): Ditto.
520 (sserotatemax): Ditto.
521 (ssescalarmode): Ditto.
522 (sse_maskcmpv4sf3): Disable if SSE5.
523 (sse_maskcmpv2df3): Ditto.
524 (sse_vmmaskcmpv4sf3): Ditto.
59d15e1f 525 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions.
31c1975b 526 (sse5_vmfmadd<mode>4): Ditto.
527 (sse5_fmsub<mode>4): Ditto.
528 (sse5_vmfmsub<mode>4): Ditto.
529 (sse5_fnmadd<mode>4): Ditto.
530 (sse5_vmfnmadd<mode>4): Ditto.
531 (sse5_fnmsub<mode>4): Ditto.
532 (sse5_vmfnmsub<mode>4): Ditto.
533 (sse5i_fmadd<mode>4): Ditto.
534 (sse5i_fmsub<mode>4): Ditto.
535 (sse5i_fnmadd<mode>4): Ditto.
536 (sse5i_fnmsub<mode>4): Ditto.
537 (sse5i_vmfmadd<mode>4): Ditto.
538 (sse5i_vmfmsub<mode>4): Ditto.
539 (sse5i_vmfnmadd<mode>4): Ditto.
540 (sse5i_vmfnmsub<mode>4): Ditto.
541 (mulv16qi3): Add SSE5 support.
542 (mulv4si3): Ditto.
543 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
544 (sse2_mulv4si3): Disable if SSE5.
545 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
546 (sse4_1_roundps): Ditto.
547 (sse4_1_roundsd): Ditto.
548 (sse4_1_roundss): Ditto.
549 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
550 be generated.
551 (sse_maskcmpsf3): Ditto.
552 (sse_vmmaskcmpv4sf3): Ditto.
553 (sse2_maskcmpv2df3): Ditto.
554 (sse2_maskcmpdf3): Ditto.
555 (sse2_vmmaskcmpv2df3): Ditto.
556 (sse2_eq<mode>3): Ditto.
557 (sse2_gt<mode>3): Ditto.
558 (sse5_pcmov_<mode>): Add SSE5 support.
559 (vec_unpacku_hi_v16qi): Ditto.
560 (vec_unpacks_hi_v16qi): Ditto.
561 (vec_unpacku_lo_v16qi): Ditto.
562 (vec_unpacks_lo_v16qi): Ditto.
563 (vec_unpacku_hi_v8hi): Ditto.
564 (vec_unpacks_hi_v8hi): Ditto.
565 (vec_unpacku_lo_v8hi): Ditto.
566 (vec_unpacks_lo_v8hi): Ditto.
567 (vec_unpacku_hi_v4si): Ditto.
568 (vec_unpacks_hi_v4si): Ditto.
569 (vec_unpacku_lo_v4si): Ditto.
570 (vec_unpacks_lo_v4si): Ditto.
571 (sse5_pmacsww): New SSE5 intrinsic insn.
572 (sse5_pmacssww): Ditto.
573 (sse5_pmacsdd): Ditto.
574 (sse5_pmacssdd): Ditto.
575 (sse5_pmacssdql): Ditto.
576 (sse5_pmacssdqh): Ditto.
577 (sse5_pmacsdqh): Ditto.
578 (sse5_pmacsswd): Ditto.
579 (sse5_pmacswd): Ditto.
580 (sse5_pmadcsswd): Ditto.
581 (sse5_pmadcswd): Ditto.
582 (sse5_pcmov_<move>): Conditional move support on SSE5.
583 (sse5_phaddbw): New SSE5 intrinsic insn.
584 (sse5_phaddbd): Ditto.
585 (sse5_phaddbq): Ditto.
586 (sse5_phaddwd): Ditto.
587 (sse5_phaddwq): Ditto.
588 (sse5_phadddq): Ditto.
589 (sse5_phaddubw): Ditto.
590 (sse5_phaddubd): Ditto.
591 (sse5_phaddubq): Ditto.
592 (sse5_phadduwd): Ditto.
593 (sse5_phadduwq): Ditto.
594 (sse5_phaddudq): Ditto.
595 (sse5_phsubbw): Ditto.
596 (sse5_phsubwd): Ditto.
597 (sse5_phsubdq): Ditto.
598 (sse5_pperm): Ditto.
599 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
600 (sse5_pperm_zero_v16qi_v8hi): Ditto.
601 (sse5_pperm_sign_v8hi_v4si): Ditto.
602 (sse5_pperm_zero_v8hi_v4si): Ditto.
603 (sse5_pperm_sign_v4si_v2di): Ditto.
604 (sse5_pperm_sign_v4si_v2di): Ditto.
605 (sse5_pperm_pack_v2di_v4si): Ditto.
606 (sse5_pperm_pack_v4si_v8hi): Ditto.
607 (sse5_pperm_pack_v8hi_v16qi): Ditto.
608 (sse5_perm<mode>): New SSE5 intrinsic insn.
609 (rotl<mode>3): Ditto.
610 (sse5_rotl<mode>3): Ditto.
611 (sse5_ashl<mode>3): Ditto.
612 (sse5_lshl<mode>3): Ditto.
613 (sse5_frcz<mode>2): Ditto.
614 (sse5s_frcz<mode>2): Ditto.
615 (sse5_cvtph2ps): Ditto.
616 (sse5_cvtps2ph): Ditto.
617 (sse5_vmmaskcmp<mode>3): Ditto.
618 (sse5_com_tf<mode>3): Ditto.
619 (sse5_maskcmp<mode>3): Ditto.
620 (sse5_maskcmp_uns<mode>3): Ditto.
621 (sse5_maskcmp_uns2<mode>3): Ditto.
622 (sse5_pcom_tf<mode>3): Ditto.
66f98e8a 623
624 * config/i386/predicates.md (sse5_comparison_float_operator):
625 New predicate to match the comparison operators supported by
626 the SSE5 com instruction.
31c1975b 627 (ix86_comparison_int_operator): New predicate to match just the
628 signed int comparisons.
629 (ix86_comparison_uns_operator): New predicate to match just the
630 unsigned int comparisons.
631
632 * doc/invoke.texi (-msse5): Add documentation.
633 (-mfused-madd): Ditto.
634
635 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
636
637 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
638 mmintrin-common.h.
639 (x86_64-*-*): Ditto.
640
641 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
642
643 * config/i386/bmmintrin.h: New file, provide common x86 compiler
644 intrinisics for SSE5.
645
646 * config/i386/smmintrin.h: Move instructions shared with SSE5 to
647 mmintrin-common.h.
648
649 * config/i386/mmintrin-common.h: New file, to contain common
650 instructions between SSE4.1 and SSE5.
651
652 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
653 FOREACH_FUNCTION_ARGS to iterate over the argument list.
654 (gen_regparm_prefix): Ditto.
655
656 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
657 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use
658 prototype_p to determine if a function is prototyped.
659
e463efd7 6602009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com>
661
662 * c-common.c (c_common_reswords) add the alignof keyword,
663 with same RID as __alignof and __alignof__
664
cd90919d 6652009-08-25 Anatoly Sokolov <aesok@post.ru>
666
667 * hooks.h (hook_bool_const_int_const_int_true): Declare.
668 * hooks.c (hook_bool_const_int_const_int_true): New function.
669 * target.h (struct gcc_target): Add can_eliminate field.
670 * target-def.h (TARGET_CAN_ELIMINATE): Define.
671 (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
672 * ira.c (setup_eliminable_regset): Use can_eliminate target hook.
673 * reload1.c (update_eliminables, init_elim_table): (Ditto.).
674 (elim_table): Revise comment.
675 * system.h (CAN_ELIMINATE): Poison.
676 * defaults.h (CAN_ELIMINATE): Remove.
677 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
678
679 * config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
680 * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
681 Define macro.
682 (alpha_vms_can_eliminate): Declare as static, change return type to
683 bool.
684 * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.
685
686 * config/arm/arm.h (CAN_ELIMINATE): Remove macro.
687 * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
688 (arm_can_eliminate): New function.
689
690 * config/avr/avr.h (CAN_ELIMINATE): Remove macro.
691 * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
692 (avr_can_eliminate): Declare as static.
693 * config/avr/avr-protos.h (avr_can_eliminate): Remove.
694
695 * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
696 * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
697 (bfin_can_eliminate): New function.
698
699 * config/crx/crx.h (CAN_ELIMINATE): Remove macro.
700 * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
701 (crx_can_eliminate): New function.
66f98e8a 702
cd90919d 703 * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
704 * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
705 (fr30_can_eliminate): New function.
706
707 * config/frv/frv.h (CAN_ELIMINATE): Remove macro.
708 * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
709 (frv_can_eliminate): New function.
710
711 * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
712 * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
713 (h8300_can_eliminate): New function.
714
715 * config/i386/i386.h (CAN_ELIMINATE): Remove macro.
716 * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
717 (i386_can_eliminate): Declare as static, change return type to bool.
718 * config/i386/i386-protos.h (i386_can_eliminate): Remove.
719
720 * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
721 * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
722 (ia64_can_eliminate): New function.
723
724 * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
725 * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
726 (iq2000_can_eliminate): New function.
727
728 * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
729 * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
730 (m32r_can_eliminate): New function.
731
732 * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
733 * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
734 (m68hc11_can_eliminate): New function.
735
736 * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
737 * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
738 (m68k_can_eliminate): New function.
739
740 * config/mep/mep.h (CAN_ELIMINATE): Remove macro.
741 * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
742 (mep_can_eliminate): New function.
743
744 * config/mips/mips.h (CAN_ELIMINATE): Remove macro.
745 * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
746 (mips_can_eliminate): New function.
747
748 * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
749 * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
750 (rs6000_can_eliminate): New function.
751
752 * config/s390/s390.h (CAN_ELIMINATE): Remove macro.
753 * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
754 (s390_can_eliminate): Declare as static.
755 * config/s390/s390-protos.h (sparc_can_eliminate): Remove.
756
757 * config/score/score.h (CAN_ELIMINATE): Remove macro.
758 * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
759 (score_can_eliminate): New function.
760
761 * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
762 * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
763 (sparc_can_eliminate): Declare as static.
764 * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.
765
766 * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
767 * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
768 (xstormy16_can_eliminate): New function.
769
770 * config/v850/v850.h (CAN_ELIMINATE): Remove macro.
771 * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
772 (v850_can_eliminate): New function.
773
119a3c48 7742009-08-25 Uros Bizjak <ubizjak@gmail.com>
775
776 * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
777 (*cmpdf_internal): Enable for all ALPHA_FPTM levels.
778 (*movdfcc_ext[1234]): Disable for IEEE mode.
779
1e5ec9ee 7802009-08-25 Eric Botcazou <ebotcazou@adacore.com>
781
782 * gimplify.c (prepare_gimple_addressable): New static function.
783 (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
784 it addressable.
785 (gimplify_addr_expr): Invoke it similarly on the operand instead of
786 manually fiddling with it.
787
235978c1 7882009-08-25 Michael Matz <matz@suse.de>
789
790 * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
791 * dojump.c (do_jump_by_parts_greater): Take two operands instead of
792 full expression.
793 (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
794 (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
795 (do_jump): Split out code for simple binary comparisons into ...
796 (do_jump_1): ... this, taking the individual operands and code.
797 Change callers to helper function above accordingly.
798 * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
799 comparisons.
800
2c02962c 8012009-08-25 Michael Matz <matz@suse.de>
802
803 * expr.h (struct separate_ops, sepops): New type for passing
804 around an exploded simple expression.
805 * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
806 Use this structure instead of expression tree.
807 (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
808 expression, only its type.
809 (expand_vec_cond_expr): Take type and individual operands instead
810 of full expression.
811 * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
812 expand_vec_shift_expr): Change prototype accordingly.
813 * tree-vect-stmts.c (vectorizable_condition): Change call of
814 expand_vec_cond_expr_p to pass only type.
815 * expr.c (do_store_flags): Change prototype and implementation
816 to take an exploded expression.
817 (expand_expr_real_1): New local ops initialized with details
818 of the full expression. Use it instead of full
819 expression in calls to do_store_flags, expand_vec_cond_expr,
820 expand_widen_pattern_expr and expand_vec_shift_expr.
821
588e1cc3 8222009-08-25 Michael Matz <matz@suse.de>
823
824 * expr.c (expand_expr_real_1): New local treeop0, treeop1,
825 treeop2 initialized with first three operands of the full expression.
826 Substitute all TREE_OPERAND (exp, [012]) calls with them.
827
0e058104 8282009-08-25 Kai Tietz <kai.tietz@onevision.com>
829
830 * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
831 (__gthread_objc_condition_allocate): Mark arguments as unused.
832 (__gthread_objc_condition_deallocate): Likewise.
833 (__gthread_objc_condition_wait): Likewise.
834 (__gthread_objc_condition_broadcast): Likewise.
835 (__gthread_objc_condition_signal): Likewise.
836 (__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
837 (__gthread_objc_thread_id): Likewise.
838
2692ac97 8392009-08-25 Janus Weil <janus@gcc.gnu.org>
840
841 PR middle-end/41149
842 * tree-pretty-print.c (print_call_name): Print the correct call name
843 for procedure pointer components.
844
ddb33bff 8452009-08-24 Steve Ellcey <sje@cup.hp.com>
846
847 * config/ia64/ia64.c (ia64_promote_function_mode): Call
848 default_promote_function_mode when not VMS.
849
c6636ef7 8502009-08-24 Olivier Hainque <hainque@adacore.com>
851
852 * convert.c (convert_to_integer): Don't assume an input pointer is
853 POINTER_SIZE wide. Fetch from the type instead.
854
81a71e2b 8552009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
856
857 * configure.ac (AC_PREREQ): Bump to 2.64.
858
23f19d1b 8592009-08-24 Rafael Avila de Espindola <espindola@google.com>
860
861 * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
862 (process_command): Don't search standard_exec_prefix_1 and
863 standard_exec_prefix_2.
864
4eff18f0 8652009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
866
66f98e8a 867 * config/arm/arm.c (output_return_instruction): Handle for
868 unified syntax.
4eff18f0 869
80ffb9de 8702009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
871
66f98e8a 872 * config/arm/arm.c (arm_select_cc_mode): Handle subreg.
80ffb9de 873
85393a52 8742009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
875
66f98e8a 876 * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable.
877 (*arm_movdf_vfp): Likewise.
85393a52 878
6fbc081b 8792009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
880
66f98e8a 881 * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
882 (vashr<mode>3): Rename from ashr<mode>3.
883 (vlshr<mode>3): Rename from lshr<mode>3.
6fbc081b 884
6794f93d 8852009-08-24 Kai Tietz <kai.tietz@onevision.com>
886
887 PR/40786
888 * c-format.c (format_wanted_type): Add new member scalar_identity_flag.
889 (check_format_info_main): Use scalar_identify_flag.
890 (check_format_types): Check for scalar size identity if
891 scalar_identify_flag is set.
892 (printf_length_specs): Extend by new field.
893 (asm_fprintf_length_specs): Likewise.
894 (gcc_diag_length_specs): Likewise.
895 (scanf_length_specs): Likewise.
896 (strfmon_length_specs): Likewise.
897 (gcc_gfc_length_specs): Likewise.
898 * config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
899 (ms_printf_flag_specs): Likewise.
900 * c-format.h (format_length_info): Add new member scalar_identity_flag.
901
7fa90ef4 9022009-08-23 Uros Bizjak <ubizjak@gmail.com>
903
904 PR target/40718
905 * config/i386/i386.c (*call_pop_1): Disable for sibling calls.
0d67d758 906 (*call_value_pop_1): Ditto.
7fa90ef4 907 (*sibcall_pop_1): New insn pattern.
0d67d758 908 (*sibcall_value_pop_1): Ditto.
7fa90ef4 909
a2f10148 9102009-08-23 Alan Modra <amodra@bigpond.net.au>
911
912 PR target/41081
913 * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64,
914 ashrsi3_64): New.
915
f92bd2dd 9162009-08-23 Alan Modra <amodra@bigpond.net.au>
917
918 PR target/41081
919 * fwprop.c (try_fwprop_subst): Allow multiple sets.
920 (get_reg_use_in): New function.
921 (forward_propagate_subreg): Propagate through subreg of zero_extend
922 or sign_extend.
923
a1ef431d 9242009-08-22 Kaz Kojima <kkojima@gcc.gnu.org>
925
926 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define.
927 * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee.
928
cd9a469c 9292009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
930
115d57c5 931 * configure.ac: Remove --with-datarootdir, --with-docdir,
932 --with-htmldir switches. No need to call AC_SUBST for
933 datarootdir, docdir, htmldir any more.
934 * configure: Regenerate.
935 * doc/install.texi (Configuration): Document --datarootdir,
936 --docdir, --htmldir, --pdfdir; update documentation for
937 --infodir, --mandir.
119a3c48 938 (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11,
939 M4 to 1.4.6.
115d57c5 940
cd9a469c 941 * aclocal.m4: Regenerate.
942 * config.in: Regenerate.
943 * configure: Regenerate.
944
8b8d3752 9452009-08-21 Douglas B Rupp <rupp@gnat.com>
946 Olivier Hainque <hainque@adacore.com>
947
948 * config/ia64/ia64.c: Include libfuncs.h.
949 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
950 (ia64_expand_call): Use reg 25 on VMS.
951 (ia64_initialize_trampoline): Fix for VMS ABI.
952 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
953 (ia64_function_arg): Initialize reg 25 on VMS.
954 Fix OpenVMS ABI issues for varargs.
955 For OpenVMS, emit the Argument Information register set in the
956 incoming/sibcall case as well.
957 (ia64_arg_type): New function.
958 (ia64_function_arg_advance): Keep track of cum->words.
959 Fix OpenVMS ABI issues for varargs.
960 (ia64_function_value): On VMS, promote mode of non-aggregate types.
961 (ia64_override_options): Set flag_no_common on VMS.
962 (ia64_init_builtins): Disable FWRITE builtin.
963 (ia64_asm_output_external): Call DO_CRTL_NAMES.
964 (ia64_vms_init_libfuncs): Add decc$ routines.
965 (ia64_vms_valid_pointer_mode): New function.
966 (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
967 (ia64_promote_function_mode): New function
968 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
969 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
970 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
971 (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
972 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
973 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
974 Suppress trailing '#' if VALUE is numeric.
975 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
976 ia64_promote_function_mode.
977 (TARGET_VALID_POINTER_MODE): Define.
978
5763e7b8 9792009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
980
981 PR target/40671
982 * config/rs6000/rs6000.c (rs6000_override_options): Use
7fa90ef4 983 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers.
5763e7b8 984
985 PR target/41145
986 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
e6f3bd37 987 reporting of vector + decimal/boolean/complex error.
5763e7b8 988
a916d53a 9892009-08-21 Jakub Jelinek <jakub@redhat.com>
990
991 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
992 __vector double TYPE_DECL.
993
8ac5341f 9942009-08-21 Richard Earnshaw <rearnsha@arm.com>
995
996 * arm.h (MACHMODE): New define. Include insn-modes.h if available.
997 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
998 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
999 to pointer to enum machine_mode. Update all callers as needed.
1000
d9064fba 10012009-08-21 Uros Bizjak <ubizjak@gmail.com>
1002
1003 * config/alpha/alpha.md (exception_receiver): Emit alternative
1004 GP load sequence if flag_reorder_blocks_and_partition is set.
1005 (*exception_receiver_2): Also enable when
1006 flag_reorder_blocks_and_partition is set.
1007
a7b6471c 10082009-08-20 Matt Rice <ratmice@gmail.com>
1009 Diego Novillo <dnovillo@google.com>
1010
1011 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and
1012 tree-ssa-sccvn.h.
1013
874993a5 10142009-08-20 Richard Guenther <rguenther@suse.de>
1015
7fa90ef4 1016 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define.
874993a5 1017 * c-tree.h (c_dup_lang_specific_decl): Remove.
1018 (struct lang_decl, struct lang_type): Move definitions ...
1019 * c-lang.h: ... here. New file.
1020 * c-decl.c: Include c-lang.h.
1021 (c_dup_lang_specific_decl): Remove.
1022 * c-typeck.c: Include c-lang.h.
1023 * Makefile.in (c-decl.o): Add c-lang.h dependency.
1024 (c-typeck.o): Likewise.
1025 * c-config-lang.in (gtfiles): Add c-lang.h.
1026 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h
1027 like c-tree.h.
1028
a2d3293a 10292009-08-20 Uros Bizjak <ubizjak@gmail.com>
1030
1031 * config/alpha/alpha.c (alpha_end_function): Do not clear
1032 crtl->emit structure and free insn locators if cfun->is_thunk is true,
1033 this is now handled in generic code.
1034
73df8a45 10352009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
1036
1037 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
1038 (s390_z10_fix_long_loop_prediction): New function.
1039 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
1040 (s390_reorg): Walk over the INSNs and invoke
1041 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
1042
f1443d23 10432009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
1044
1045 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
1046 "*brx_64bit", "*brx_31bit"): New patterns.
1047 * config/s390/s390.c ('E'): New output modifier.
1048
eca5c984 10492009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
a2d3293a 1050 Richard Earnshaw <richard.earnshaw@arm.com>
eca5c984 1051
a2d3293a 1052 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
1053 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt.
eca5c984 1054
853940d9 10552009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1056
1057 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
1058 patterns.
1059 * pa.c (emit_move_sequence): Check if address of operand1 is valid
1060 for mode mode of operand0 when doing secondary reload for SAR.
1061
5fb2a157 10622009-08-19 Jakub Jelinek <jakub@redhat.com>
1063
1064 PR middle-end/41123
1065 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
1066 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
1067
a02f3606 10682009-08-19 Jason Merrill <jason@redhat.com>
1069
1070 * doc/invoke.texi (C++ Dialect Options): Note change of minimum
1071 supported template depth in C++0x.
1072
ca2aa213 10732009-08-19 Jakub Jelinek <jakub@redhat.com>
1074
1075 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
1076 free_after_compilation.
1077 * config/score/score7.c (score7_output_mi_thunk): Likewise.
1078 * config/score/score3.c (score3_output_mi_thunk): Likewise.
1079 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1080 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
1081 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1082 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
1083 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1084
86efc2bb 10852009-08-19 Ian Lance Taylor <iant@google.com>
1086
1087 * doc/md.texi (Insn Canonicalizations): Correct canonicalization
1088 of (plus (mult (neg B) C) A).
1089
1ea6a73c 10902009-08-18 Michael Matz <matz@suse.de>
1091
1092 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p
1093 instead of comparing TYPE_MAIN_VARIANT for equality.
1094 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
1095 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
1096 * tree-vect-loop.c (vect_is_simple_reduction): Ditto.
1097 * gimplify.c (goa_lhs_expr_p): Ditto and use
1098 STRIP_USELESS_TYPE_CONVERSION.
1099
e1b3b79b 11002009-08-18 Michael Matz <matz@suse.de>
1101
1102 * tree-ssa-structalias.c (create_variable_info_for): Also mark
1103 first field in a struct.
1104 (intra_create_variable_infos): Don't deal with flag_argument_noalias.
1105
f2b52d4f 11062009-08-18 Uros Bizjak <ubizjak@gmail.com>
1107
1108 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
1109 locators before emit_insn is called. Remove assert that
1110 cfun->is_thunk.
1111 (alpha_end_function): Clear crtl->emit structure and free insn
1112 locators if cfun->is_thunk is true.
1113
924907a3 11142009-08-18 Jason Merrill <jason@redhat.com>
1115
1116 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
1117 type if available.
1118 * configure.ac: Test for it.
1119 * configure, config.in: Regenerate.
1120 * doc/install.texi: Document --enable-gnu-unique-object.
1121
49e436b5 11222009-08-18 Richard Guenther <rguenther@suse.de>
1123
1124 PR middle-end/41094
1125 * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
1126 pow(x,y*z) only if x is nonnegative.
1127
b14b6a13 11282009-08-18 Jakub Jelinek <jakub@redhat.com>
1129
1130 * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump
1131 on jumps.
1132
f3aba4fa 1133 PR target/40971
1134 * config/rs6000/rs6000.c (rs6000_legitimize_address): For
1135 [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000.
1136
cc24427c 11372009-08-17 DJ Delorie <dj@redhat.com>
1138
1139 * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
1140 * config/m32c/prologue.md (epilogue_freit): New.
1141 (fset_b): New.
1142 * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
1143 (bank_switch_p): Likewise.
1144 (fast_interrupt_p): Likewise.
1145 (interrupt_p): Likewise.
1146 (m32c_conditional_register_usage): Round memregs size up.
1147 (need_to_save): We only need to save $a0 when we use ENTER.
1148 (interrupt_p): Check for fast_interrupt too.
1149 (bank_switch_p): New.
1150 (fast_interrupt_p): New.
1151 (m32c_attribute_table): Add bank_switch and fast_interrupt.
1152 (m32c_emit_prolog): Support bank switching and fast interrupts.
1153 * doc/extend.texi (Function Attributes): Add bank_switch and
1154 fast_interrupt.
1155
656ad977 11562009-08-17 Douglas B Rupp <rupp@gnat.com>
1157
1158 * config/alpha/alpha.c (vms_valid_pointer_mode): New function.
1159 * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.
1160
0da249fd 11612009-08-16 Douglas B Rupp <rupp@gnat.com>
1162
7fa90ef4 1163 * doc/invoke.texi (Target options): Add new option list for IA-64/VMS.
0da249fd 1164 (menu): Add IA-64/VMS Options.
1165 (IA-64/VMS Options): Likewise.
1166
7d9383c3 11672009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
1168
1169 PR target/38599
1170 * config/mips/mips.md (*lwxs): Use :P for pointer values.
1171
0a54d56a 11722009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
1173
1174 * config/mips/mips-protos.h (mips_push_asm_switch): New function.
1175 (mips_pop_asm_switch): Likewise.
1176 * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
1177 with...
1178 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
1179 (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
1180 (mips_push_asm_switch, mips_pop_asm_switch): Likewise.
1181 (mips_print_operand_punctuation): Use them. Check mips_noreorder
1182 instead of set_noreorder.
1183 (mips_output_function_prologue): Use the new functions.
1184 (mips_output_function_epilogue): Likewise.
1185 (mips_need_noat_wrapper_p): New function, split out from...
1186 (mips_final_prescan_insn, mips_final_postscan_insn): ...here.
1187 Use mips_push_asm_switch and mips_pop_asm_switch.
1188 * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
1189 and mips_pop_asm_switch.
1190 (ASM_OUTPUT_REG_POP): Likewise.
1191 (DBR_OUTPUT_SEQEND): Remove boilerplate comment.
1192 Use mips_pop_asm_switch.
1193 (mips_asm_switch): New structure.
1194 (set_noreorder, set_nomacro): Replace with...
1195 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
1196 * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
1197 instead of set_nomacro.
1198 (fix_truncsfsi2_macro): Likewise.
1199 (cprestore): Likewise.
1200 (hazard): Use mips_noreorder instead of set_noreorder.
1201 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
1202
937fc2f7 12032009-08-16 Uros Bizjak <ubizjak@gmail.com>
1204
1205 * config/alpha/alpha.c (alpha_and_function): Handle NULL_RTX returned
1206 from prev_active_insn.
1207
3eb18e1f 12082009-08-16 Anatoly Sokolov <aesok@post.ru>
1209
1210 * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
1211 * config/avr/avr.c (avr_override_options): Initialize
1212 avr_current_arch variable.
1213 (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
1214 __AVR_HAVE_16BIT_SP__ according to the device type.
1215 (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
1216 TARGET_TINY_STACK.
1217 (expand_epilogue): Use correct QI mode frame pointer for tiny stack.
1218 Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
1219
fb44fa22 12202009-08-16 Dodji Seketeli <dodji@redhat.com>
1221
7aa793fe 1222 PR debug/37801
fb44fa22 1223 * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
1224 generating inlined subroutine die only. We shouldn't be
1225 called for anything else.
1226 (gen_block_die): Don't generate inline subroutine debug info for
1227 abstract blocks.
1228
3c035d93 12292009-08-15 Sebastian Pop <sebastian.pop@amd.com>
1230
1231 * graphite-poly.c (print_pbb): Print PBB index.
1232
19eec579 12332009-08-15 Sebastian Pop <sebastian.pop@amd.com>
1234
1235 PR middle-end/40981
1236 * graphite-interchange.c (ppl_max_for_le): Moved...
1237 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
1238 * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of
1239 ppl_Pointset_Powerset_C_Polyhedron_maximize.
1240 * graphite-ppl.h (ppl_max_for_le): Declared.
1241
7f68f564 12422009-08-14 Olatunji Ruwase <tjruwase@google.com>
1243
1244 * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
1245 supported on all platforms.
7fa90ef4 1246 * target.h (struct gcc_target): Remove handle_pragma_redefine_extname.
1247 * c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname.
7f68f564 1248 * c-pragma.c: Likewise.
1249 * target-def.h (TARGET_INITIALIZER): Remove
1250 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
7fa90ef4 1251 * config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
7f68f564 1252
2f2c1efb 12532009-08-14 Douglas B Rupp <rupp@gnat.com>
1254
1255 * config/ia64/fde-vms.c: New file.
1256 * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
1257 * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
1258 (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
1259 (uw_frame_state_for): Only register a personality routine if it is
1260 known to be compatible with our expectations.
1261 (_Unwind_FindEnclosingFunction, uw_frame_state_for):
1262 Declare unw_table_entry stack variable and
1263 mod all calls to _Unwind_FindTableEntry to add arg.
1264 * config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
1265 (_Unwind_FindTableEntry): Add arg to prototype.
1266
17a745fe 12672009-08-14 Eric Botcazou <ebotcazou@adacore.com>
1268
1269 * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
1270 field 'signal_pfs_loc'.
1271 (uw_frame_state_for): Remove duplicate code dealing with leaf
1272 procedures without unwind info.
1273 If in the frame after unwinding through a signal handler, restore
1274 the AR.PFS register instead of the CFM if AR.PFS has not been saved.
1275 * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
1276 'pfs_loc' to the AR.PFS location in the signal context; instead
1277 set 'signal_pfs_loc'.
1278 Manually generate the unwind info for the AR.PFS register.
1279 (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
1280 ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
1281 (ia64_handle_unwabi): Test 'fs->unwabi' against them.
1282 Do not set 'pfs_loc' to the AR.PFS location in the signal context;
1283 instead set 'signal_pfs_loc'.
1284 Remove code preventing the AR.PFS register from being restored
1285 from the signal context.
1286
f51dfe4d 12872009-08-14 Douglas B Rupp <rupp@gnat.com>
1288 Tristan Gingold <gingold@adacore.com>
1289
1290 * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
1291 * config/ia64/t-vms: New file.
1292 * config/ia64/vms64.h: New file.
1293 * config/ia64/vms.h: New file.
1294 * config/ia64/vms-crtinit.asm: New file.
1295 * config/ia64/vms_symvec_libgcc_s.opt: New file.
1296 * config/ia64/vms-unwind.h: New file.
1297
a717c371 12982009-08-14 Uros Bizjak <ubizjak@gmail.com>
1299
1300 * config/alpha/alpha.c (alpha_emit_conditional_move): Handle
1301 TFmode compares.
1302
63e89698 13032009-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1304
1305 PR middle-end/30789
7fa90ef4 1306 * builtins.c (do_mpc_arg2): Make extern, define for any MPC version.
1307 Move declaration...
63e89698 1308 * real.h (do_mpc_arg2): ... here.
1309 * fold-const.c (const_binop): Use MPC for complex MULT_EXPR
1310 and RDIV_EXPR.
1311
c937fbea 13122009-08-14 Rafael Avila de Espindola <espindola@google.com>
1313
7f68f564 1314 * final.c (add_debug_prefix_map): Don't use GC memory for
1315 old_prefix and new_prefix.
c937fbea 1316
8700909c 13172009-08-14 Richard Guenther <rguenther@suse.de>
1318
1319 * ipa-prop.c (compute_complex_pass_through): If we cannot
1320 compute a non-varying offset for IPA_JF_ANCESTOR punt.
1321
a0ef5201 13222009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1323
1324 * c-lex.c (c_lex_with_flags): Increase size of local variable
1325 to avoid memory clobber.
1326
b2e46392 13272009-08-14 Paolo Bonzini <bonzini@gnu.org>
1328
1329 PR target/40934
1330 * config/i386/i386.c (ix86_fp_comparison_strategy):
a717c371 1331 Only enable/disable sahf at function granularity.
b2e46392 1332
4f426d85 13332009-08-14 Hans-Peter Nilsson <hp@axis.com>
1334
1335 PR rtl-optimization/41064
1336 * reload1.c (reload_as_needed): Don't call extract_insn
1337 for known invalid replacements after calling
1338 validate_replace_rtx_group and verify_changes.
1339
17e313b0 13402009-08-14 Uros Bizjak <ubizjak@gmail.com>
1341
1342 PR target/41019
1343 * config/i386/sse.md (SSEMODE124C8): New mode iterator.
1344 (vcond<SSEMODEF2P:mode>): Assert that operation is supported by
1345 ix86_expand_fp_vcond.
1346 (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
1347 Assert that operation is supported by ix86_expand_int_vcond.
1348 (vcondu<SSEMODE124C8:mode>): Ditto.
1349
a47075bb 13502009-08-13 DJ Delorie <dj@redhat.com>
1351
1352 * config/i386/djgpp-stdint.h: New.
1353 * config.gcc (djgpp): Use it.
1354
06b71e62 13552009-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
1356
1357 * config/sh/sh.c (sh_override_options): When flag_exceptions or
17e313b0 1358 flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.
06b71e62 1359
e17cf2c8 13602009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
1361
a717c371 1362 * tree-ssa-loop-prefetch.c
1363 (prune_ref_by_group_reuse): Enhance probabilistic analysis
e17cf2c8 1364 for long-stride pruning.
1365 (compute_miss_rate): New function to compute the probability
a717c371 1366 that two memory references access different cache lines.
e17cf2c8 1367
323c8f71 13682009-08-13 Dave Korn <dave.korn.cygwin@gmail.com>
1369
1370 * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.
1371
4c0d4e21 13722009-08-13 Richard Guenther <rguenther@suse.de>
1373
1374 PR middle-end/41047
1375 * tree-ssa-ccp.c (ccp_fold): When folding pointer additions
1376 use the constant pointer type.
1377 * gimplify.c (canonicalize_addr_expr): Canonicalize independent
1378 of CV qualifiers on the target pointer type.
1379 * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
1380 conversion check before restrict check.
1381
449ddd47 13822009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
1383
1384 PR target/41029
1385 * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.
1386
c596fd64 13872009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
1388
1389 * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.
1390
b14e6fc5 13912009-08-12 Richard Guenther <rguenther@suse.de>
1392
1393 PR tree-optimization/41011
1394 * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
1395 and reference constructing.
1396
19bcf521 13972009-08-12 Xinliang David Li <davidxl@google.com>
1398
1399 PR tree-optimization/41012
1400 * tree-flow.h : New external interface.
1401 * gimple-low.c (check_call_arg): Change to public function.
1402 Remove argument mismatch check in lowering.
1403 * tree-inline.h (tree_can_inline_p): Interface change.
1404 * tree-inline.c (tree_can_inline_p): Fold argument mismatch check
1405 into this function.
f6c8c8fc 1406 * ipa-inline.c (cgraph_decide_inlining_of_small_functions):
19bcf521 1407 Call change to tree_can_inline_p function.
1408 (cgraph_decide_inlining_incrementally): Ditto.
1409
27d3c04f 14102009-08-12 Richard Sandiford <rdsandiford@googlemail.com>
1411
1412 PR tree-optimization/41031
1413 * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
1414 on the partition variable rather than promote_mode on the source
1415 type. Assert that the partition variable's type has the same
1416 mode as the source value's.
1417
c879dbcf 14182009-08-12 Paolo Bonzini <bonzini@gnu.org>
1419
1420 * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
1421 for for_return == 2.
1422 * function.c (assign_parm_setup_reg): Use for_return == 2, improve
1423 comments.
1424 * calls.c (expand_call): Fix typo.
1425 * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
1426 and PARM_DECL.
1427 * stmt.c (expand_value_return): Use promote_function_mode to copy out
1428 of pseudo.
1429 * targhooks.c (default_promote_function_mode): Handle for_return == 2.
1430 * config/cris/cris.c (cris_promote_function_mode): Likewise.
1431 * config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
1432 * config/pa/pa.c (pa_promote_function_mode): Likewise.
1433
8ac5341f 14342009-08-12 Andrew Haley <aph@redhat.com>
71843396 1435
1436 * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
1437
4d9e5553 14382009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1439
1440 PR bootstrap/40103
1441 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1442
dfe8e806 14432009-08-12 Richard Guenther <rguenther@suse.de>
1444
1445 * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
1446 * gimplify.c (gimplify_modify_expr): Do not use
1447 lang_hooks.types_compatible_p.
1448 * tree-ssa.c (useless_type_conversion_p): For aggregates
1449 just return false if the canonical types differ.
1450
43f8b6ab 14512009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1452
1453 PR middle-end/40980
1454 * sese.c (convert_for_phi_arg): New.
1455 (add_guard_exit_phis): Use convert_for_phi_arg.
1456
96da1999 14572009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1458
1459 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
1460 unknown subscript upper bounds.
1461
80020e9d 14622009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1463 Pranav Garg <pranav.garg2107@gmail.com>
1464
1465 * graphite-interchange.c (gather_access_strides): Removed.
1466 (ppl_max_for_le): New.
1467 (build_linearized_memory_access): New.
1468 (memory_stride_in_loop): New.
1469 (pbb_interchange_profitable_p): Reimplemented.
1470 * graphite-ppl.h (ppl_new_id_map): New.
1471 (ppl_interchange): New.
1472
c9fce634 14732009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1474
1475 * graphite-interchange.c (compute_subscript): Removed.
1476 (compute_array_size_cstr): Removed.
1477 (compute_array_size_poly): Removed.
1478 (compute_array_size): Removed.
1479 (gather_access_strides_poly): Removed.
1480 (gather_access_strides): Empty.
1481
85f74b79 14822009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1483
1484 * graphite-dependences.c (dependence_polyhedron_1): Replace
1485 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
1486 (graphite_legal_transform_dr): Same.
1487 (graphite_carried_dependence_level_k): Same.
1488 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
1489 Initialize PDR_NB_SUBSCRIPTS.
1490 (print_pdr_access_layout): Replace pdr_nb_subscripts with
1491 PDR_NB_SUBSCRIPTS.
1492 * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
1493 (PDR_NB_SUBSCRIPTS): New.
1494 (pdr_nb_subscripts): Removed.
1495 (pdr_dim): Simplified.
1496 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
1497 with PDR_NB_SUBSCRIPTS.
1498
19b42529 14992009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1500
1501 * graphite-interchange.c (compute_array_size): Remove use of
1502 PDR_DATA_CONTAINER.
1503 * graphite-poly.c (new_poly_dr): Remove argument data_container.
1504 Do not initialize PDR_DATA_CONTAINER.
1505 (print_pdr): Do not print PDR_DATA_CONTAINER.
1506 * graphite-poly.h (struct poly_dr): Remove data_container field.
1507 (PDR_DATA_CONTAINER): Removed.
1508 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
1509 PDR_DATA_CONTAINER.
1510 (build_poly_dr): Same.
1511
0835eab6 15122009-08-12 Konrad Trifunovic <konrad.trifunovic@gmail.com>
1513 Sebastian Pop <sebastian.pop@amd.com>
1514
1515 * graphite-dependences.c (graphite_legal_transform_dr): Work on a
1516 copy of the dependence polyhedron. Free the temporary objects.
1517 (graphite_carried_dependence_level_k): Free unused objects before
1518 returning.
1519
1520 * testsuite/gcc.dg/graphite/interchange-1.c: XFAILed.
1521 * testsuite/gcc.dg/graphite/interchange-2.c: XFAILed.
1522 * testsuite/gcc.dg/graphite/interchange-3.c: XFAILed.
1523 * testsuite/gcc.dg/graphite/interchange-4.c: XFAILed.
1524 * testsuite/gcc.dg/graphite/interchange-7.c: XFAILed.
1525
a741358d 15262009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1527
1528 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
1529 Early return without analyzing the data dependences if no
1530 transform has been done. Call restore_scattering if the transform
1531 is not legal.
1532 (graphite-interchange.c): Same.
17e313b0 1533 * graphite-poly.c (print_scattering_function): Test for
1534 PBB_TRANSFORMED.
a741358d 1535 (graphite_read_transforms): Initialize PBB_TRANSFORMED.
1536 (apply_poly_transforms): Do not gcc_assert that
1537 the transform is legal.
17e313b0 1538 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
a741358d 1539 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
1540 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
1541 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
1542 * graphite-poly.h (struct poly_scattering): New.
1543 (struct poly_bb): Add original, transformed, and saved fields.
17e313b0 1544 Remove transformed_scattering, original_scattering,
1545 nb_local_variables and nb_scattering_transform fields.
a741358d 1546 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
1547 (poly_scattering_new): New.
1548 (poly_scattering_free): New.
1549 (poly_scattering_copy): New.
1550 (store_scattering_pbb): New.
1551 (store_scattering): New.
1552 (restore_scattering_pbb): New.
1553 (restore_scattering): New.
1554 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
1555 Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
1556
95b2e0d3 15572009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1558
1559 * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
1560 (print_scop): Same.
1561
675d86b2 15622009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1563
1564 * Makefile.in (graphite.o): Depends on PREDICT_H.
1565 * graphite.c: Include predict.h.
1566 (graphite_finalize): Call tree_estimate_probability.
1567 * predict.c (predict_loops): Do not call scev_initialize and
1568 scev_finalize.
1569 (tree_estimate_probability_bb): New.
1570 (tree_estimate_probability): Do not initialize loops: move that
1571 code to the driver. Call tree_estimate_probability_bb.
1572 (tree_estimate_probability_driver): New.
1573 (pass_profile): Use tree_estimate_probability_driver.
1574 * predict.h (tree_estimate_probability): Declared.
1575
525c22c4 15762009-08-12 Sebastian Pop <sebastian.pop@amd.com>
1577
1578 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
1579 * graphite-dependences.c (graphite_legal_transform): Add time to
1580 TV_GRAPHITE_DATA_DEPS.
1581 (dependency_between_pbbs_p): Same.
1582 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
1583
b95fdaae 15842009-08-12 Andrey Belevantsev <abel@ispras.ru>
1585
1586 PR rtl-optimization/41033
f6c8c8fc 1587 * alias.c (nonoverlapping_component_refs_p): Punt when strict
b95fdaae 1588 aliasing is disabled.
1589
c051f153 15902009-08-11 Adam Nemet <anemet@caviumnetworks.com>
1591
1592 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
1593 si_mask_operand, and_load_operand, low_bitmask_operand,
1594 and_reg_operand, and_operand): New predicates.
1595 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
1596 * config/mips/mips.c (and_operands_ok): New function.
1597 * config/mips/mips-protos.h (and_operands_ok): Declare it.
1598 * config/mips/mips.md (move_type): Add ext_ins and logical.
1599 (type): Handle them.
17e313b0 1600 (and<mode>3): Use and_reg_operand as the second operand's predicate.
c051f153 1601 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
1602 shift_shift. Remove commutative constraint modifier.
1603 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
1604 shift_shift.
1605 (*clear_upper32_dext): Remove define_insn_and_split.
1606 (*clear_upper32): Turn this define_insn_and_split ...
1607 (splitter for ANDing register with 0xffff_ffff): .. into this.
1608
d16b48d5 16092009-08-11 Adam Nemet <anemet@caviumnetworks.com>
1610
1611 * combine.c (try_widen_shift_mode): Factor out code to check if an
f6c8c8fc 1612 integer constant is a low-order bitmask from here ...
d16b48d5 1613 * rtlanal.c (low_bitmask_len): ... to here.
1614 * rtl.h (low_bitmask_len): Declare.
1615
4c95716b 16162009-08-11 Uros Bizjak <ubizjak@gmail.com>
1617
1618 PR target/8603
1619 * config/alpha/alpha.md (addsi3): Remove expander.
1620 (addsi3): Rename from *addsi3_internal insn pattern.
1621 (subsi3): Remove expander.
1622 (subsi3): Rename from *subsi3_internal insn pattern.
1623
a5773a09 16242009-08-11 Douglas B Rupp <rupp@gnat.com>
1625
1626 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
1627 FWRITE_UNLOCKED.
1628
cfdbb1f5 16292009-08-11 Vasiliy Fofanov <fofanov@adacore.com>
4c95716b 1630 Eric Botcazou <botcazou@adacore.com>
1631 Douglas B Rupp <rupp@gnat.com>
cfdbb1f5 1632
1633 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
1634 that records that fit in 64 bits are returned by immediate value,
1635 as required by OpenVMS Calling Standard.
1636 (function_value): Adjust for above modification.
1637 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
1638 virtual_incoming_args_rtx as base object, not next_arg.
1639 * config/alpha/vms.h: (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
1640
79141aaa 16412009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1642
1643 * reload.c (find_reloads_subreg_address): Check the original
1644 req_equiv_mem address to detect the case where an address is
1645 not valid in the outer mode.
1646
84033db4 16472009-08-11 Richard Guenther <rguenther@suse.de>
f6c8c8fc 1648
4c95716b 1649 PR bootstrap/40788
1650 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
84033db4 1651
50afef9b 16522009-08-10 Douglas B Rupp <rupp@gnat.com>
1653
1654 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
1655 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
1656
d3832055 16572009-08-10 Olivier Hainque <hainqueu@adacore.com>
4c95716b 1658 Douglas B Rupp <rupp@gnat.com>
d3832055 1659
1660 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
1661 PT_STACK when frame_pointer_needed on OpenVMS.
1662 (alpha_pv_save_size, alpha_using_fp): Remove.
1663 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
1664 with proper processing for PT_NULL.
1665 (alpha_vms_initial_elimination_offset): New function. Support for
1666 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
1667 (alpha_sa_size): Force procedure type to PT_STACK when
1668 frame_pointer_needed on OpenVMS.
1669 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
1670 (alpha_using_fp): Likewise.
1671 (alpha_vms_can_eliminate): Add prototype.
1672 (alpha_vms_initial_elimination_offset): Likewise.
1673 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
1674 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
1675
00dca3d4 16762009-08-10 Eric Botcazou <botcazou@adacore.com>
4c95716b 1677 Douglas B Rupp <rupp@gnat.com>
00dca3d4 1678
1679 * config/alpha/alpha.c (common_object_handler): New function.
1680 (vms_attribute_table): Declare a single attribute "common_object".
1681 (vms_output_aligned_decl_common): New global function.
1682 (SECTION_VMS_OVERLAY): Delete.
1683 (SECTION_VMS_GLOBAL): Likewise.
1684 (SECTION_VMS_INITIALIZE): Likewise.
1685 (vms_asm_named_section): Remove support for above flags.
1686 (vms_section_type_flags): Delete.
1687 (TARGET_SECTION_TYPE_FLAGS): Likewise.
1688 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
1689 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
1690 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
1691
b71fdb0b 16922009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1693
1694 PR target/41015
1695 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
1696 (sub_ddmmss): Likewise.
1697
f1fcbf19 16982009-08-10 Andreas Tobler <a.tobler@schweiz.org>
1699
1700 PR bootstrap/41018
1701 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
1702 year.
1703
45c9f108 17042009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1705
1706 PR target/37053
1707 * reload1.c (reload_as_needed): Use cancel_changes to completely
1708 undo a failed replacement attempt.
1709
4cf75304 17102009-08-10 Richard Guenther <rguenther@suse.de>
1711
1712 PR middle-end/41006
1713 * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
1714 (useless_type_conversion_p): ... here. Require pointer targets
1715 to be compatible.
1716
29f90295 17172009-08-10 Dodji Seketeli <dodji@redhat.com>
1718
1719 PR c++/40866
1720 * tree-inline.c (copy_statement_list): The resulting copy shouldn't
1721 loose the original type of the statement list.
1722
2db66e7c 17232009-08-09 Douglas B Rupp <rupp@gnat.com>
1724
1725 * config/alpha/alpha.c: Include libfuncs.h
1726 (avms_asm_output_extern): New function.
1727 (alpha_init_libfuncs): Init some decc libfuncs.
1728 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
1729 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
1730 (DO_CRTL_NAMES): Define.
1731 (LIB_SPEC): Remove.
1732 * config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef.
1733 (LONG_TYPE_SIZE): Define.
1734 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
1735 (SUBTARGET_SWITCHES): Define malloc64 switch.
1736 (TARGET_DEFAULT): Default MASK_MALLOC64 set.
1737 (MASK_RETURN_ADDR): Define.
1738 doc/invoke.texi (mmalloc64): Document switch.
1739
50f36bdb 17402009-08-09 Olivier Hainque <hainque@adacore.com>
4c95716b 1741 Douglas B Rupp <rupp@gnat.com>
50f36bdb 1742
1743 * config/alpha/alpha.c (struct machine_function): New flag for VMS,
1744 uses_condition_handler.
1745 (alpha_expand_builtin_establish_vms_condition_handler): New expander.
1746 (alpha_expand_builtin_revert_vms_condition_handler): New expander.
1747 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
1748 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
1749 (code_for_builtin): New insn codes for the new alpha_builtins.
1750 (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
1751 (alpha_sa_size): Account for uses_condition_handler.
1752 (alpha_expand_prologue): Likewise.
1753 (alpha_start_function): Likewise.
1754 (alpha_expand_epilogue): Likewise.
1755 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
1756 establish/revert expanders.
1757 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
1758 * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
1759 New expander, resorting to the alpha.c associated function.
1760 (builtin_revert_vms_condition_handler): Likewise.
1761 * config/alpha/vms-gcc_shell_handler.c: New file. Implements
1762 __gcc_shell_handler, the static VMS condition handler used as
1763 an indirection wrapper to the current dynamically established
1764 handler.
1765 * config/alpha/vms-unwind.h: Complete rewrite.
1766 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
1767 * config/alpha/vms.h (MD_UNWIND_SUPPORT):
f6c8c8fc 1768
c45d3ddf 17692009-08-09 Eric Botcazou <botcazou@adacore.com>
4c95716b 1770 Douglas B Rupp <rupp@gnat.com>
c45d3ddf 1771
1772 * config/alpha/alpha.c (alpha_links): Add 'target' field.
1773 (alpha_need_linkage): Handle aliases. Return function symbol.
1774 (alpha_use_linkage): Rename 'linkage' argument to 'func'.
1775 Use ultimate alias target for the linkage name.
1776 * config/alpha/alpha.md (movmemdi): Use the symbol returned
1777 by alpha_need_linkage for the function symbol.
1778 (setmemdi): Likewise.
1779
0dbcfe49 17802009-08-09 Douglas B Rupp <rupp@gnat.com>
1781
1782 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
1783 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
1784 (ASM_WEAKEN_LABEL): Define.
1785 (CRT_CALL_STATIC_FUNCTION): Define.
1786 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
1787 (ENDFILE_SPEC): Define.
1788 (INIT_SECTION_ASM_OP): Define.
1789 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
1790 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
1791 crtend.o crtendS.o.
1792 (MULTILIB_OSDIRNAMES): Define.
1793 (shlib_version): Define.
1794 (SHLIB_EXT): Define.
1795 (SHLIB_OBJS): Define.
1796 (SHLIB_NAME): Define.
1797 (SHLIB_MULTILIB): Define.
1798 (SHLIB_INSTALL): Define.
1799 (SHLIB_SYMVEC): Define.
1800 (SHLIB_SYMVECX2): Define.
1801 (SHLIB_LINK): Define.
1802
d2f33c43 18032009-08-09 Douglas B Rupp <rupp@gnat.com>
1804
1805 * config/alpha/alpha.c (alpha_initialize_trampoline):
1806 Initialize VMS trampoline IAW ABI for bounded procedure calls.
1807 (alpha_start_function): Emit transfer address on nested functions
1808 for VMS trampoline call.
1809 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
1810 since no longer used.
1811 * config/alpha/vms-tramp.asm: Remove.
1812 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
1813 since now only data initialized at runtime.
1814
75871697 18152009-08-09 Douglas B Rupp <rupp@gnat.com>
1816
1817 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
1818 (LINK_GCC_C_SEQUENCE_SPEC): Define.
1819 (MD_EXEC_PREFIX): Remove, no longer used.
1820 (MD_STARTFILE_PREFIX): Likewise.
1821 (INCLUDE_DEFAULTS): Likewise.
1822 * config/alpha/t-vms:
1823 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
1824
854e8953 18252009-08-09 Richard Guenther <rguenther@suse.de>
1826
1827 PR tree-optimization/41016
4c95716b 1828 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
854e8953 1829 (operand_precision): Remove.
1830 (integral_operand_p): Likewise.
1831 (recognize_single_bit_test): Adjust.
1832
672d914b 18332009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
1834
1835 * c-common.c (c_fully_fold_internal): Issue a warning if a binary
1836 operation overflows. Likewise non-cast unary arithmetic.
1837 If one arm of a conditional expression is always taken,
1838 inhibit evaluation warnings for the other arm. Likewise inhibit
1839 evaluation warnings for the second && or || operand if the first
1840 operand is enough to determine the result.
1841 * c-typeck.c (build_conditional_expr): Apply the same inhibition
1842 rules here.
1843 (build_binary_op): Prevent duplicate evaluation warnings.
1844
e81447c7 18452009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
1846
1847 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
1848 and destination have different modes, Use promote_mode to
1849 determine the signedness of the conversion. Assert that the
1850 promoted source mode matches the destination mode. Don't pass
1851 the destination and destination mode to expand_expr if the source
1852 mode is different. Simplify conversion logic.
1853
a18d4327 18542009-08-09 Ira Rosen <irar@il.ibm.com>
1855
1856 PR tree-optimization/41008
1857 * tree-vect-loop.c (vect_is_simple_reduction): Get operands
f6c8c8fc 1858 from condition only in case it's a comparison. Adjust checks.
a18d4327 1859
3ee48c5c 18602009-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
1861
1862 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
1863 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
1864 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
1865 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
1866 (dump_cand): Handle them.
1867 (struct iv_cand): New members COST_STEP and AINC_USE.
1868 (stmt_after_increment): Likewise.
1869 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All
1870 callers changed. Use gimple_uid comparison instead of scanning.
1871 (add_candidate_1): When looking for identical candidates, take
1872 AINC_USE into account. Set it for new candidates.
1873 (force_expr_to_var_cost): Cast target_spill_cost to int.
1874 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
1875 All callers changed. Check for availability of autoinc addressing
4c95716b 1876 modes, both in general for a given mode, and in the specific use case.
3ee48c5c 1877 (get_computation_cost_at): New argument CAN_AUTOINC. All callers
1878 changed.
1879 (get_computation_cost): Likewise.
1880 (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
1881 add_autoinc_candidates): New static functions.
1882 (add_candidate): Call add_autoinc_candidates for candidates based on
1883 a USE_ADDRESS use.
1884 (find_iv_candidates): Call set_autoinc_for_original_candidates.
1885 (determine_use_iv_cost_address): If we have an autoinc candidate at
1886 the matching use, verify autoinc is possible and subtract the cost
1887 of the candidate's step from the cost.
1888 (determine_iv_cost): Record the cost of the increment in the COST_STEP
1889 member of the candidate.
1890 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
1891 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks.
1892
9b9a2528 18932009-08-09 Douglas B Rupp <rupp@gnat.com>
1894
1895 * config.build (ia64-hp-*vms*): New target.
1896 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
1897 with ia64-hp-*vms*.
1898 * config.gcc (ia64-hp-*vms*): New target.
1899 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
1900 with ia64-hp-*vms*.
1901 * config.host (ia64-hp-*vms*): New target.
1902 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
1903 with ia64-hp-*vms*.
1904
dfe91132 19052009-08-08 Richard Guenther <rguenther@suse.de>
1906
1907 PR tree-optimization/40991
1908 * tree-ssa-pre.c (eliminate): Delay purging EH edges.
1909
ef9384f3 19102009-08-08 Richard Sandiford <rdsandiford@googlemail.com>
1911
1912 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
1913 mode check. Do truncations in an integer mode.
1914 (force_to_mode): Handle subregs for all mode types. Only do
1915 arithmetic simplifications on integer modes.
1916
cc8f0042 19172009-08-07 Richard Guenther <rguenther@suse.de>
1918
1919 PR tree-optimization/40999
1920 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
1921 (maybe_fold_reference): Lookup constant initializers.
1922 (fold_gimple_assign): Likewise.
1923
a3552555 19242009-08-07 Richard Guenther <rguenther@suse.de>
1925
1926 * tree-ssa.c (useless_type_conversion_p_1): Only for types
1927 that require structural equality defer to the langhook.
1928
5215027d 19292009-08-07 Martin Jambor <mjambor@suse.cz>
1930
1931 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
1932 comments.
1933 (struct ipa_pass_through_data): New type.
1934 (struct ipa_ancestor_jf_data): New type.
1935 (union jump_func_value): Removed field formal_id, added fields
1936 pass_through and ancestor.
1937 (struct ipa_param_call_note): Changed type of formal_id to int from
1938 unsigned.
1939 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
1940 operations jump functions and ancestor jump functions.
1941 (compute_complex_pass_through): New function.
1942 (compute_scalar_jump_functions): Call compute_complex_pass_through,
1943 reflect changes in the jump function strucutre.
1944 (update_jump_functions_after_inlining): Ignore complex pass-through
1945 and ancestor jump functions.
1946 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
1947 polynomial pass-through with operation jump functions.
1948
33b1ed32 19492009-08-07 Jakub Jelinek <jakub@redhat.com>
1950
1951 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
1952 fde->dw_fde_begin as begin label instead of hot/cold label.
1953 Use LLSDAC label instead of LLSDA for second section lsda.
1954 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC
1955 label instead of LLSDA if it is true.
1956 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
1957 callers.
1958 * except.c (add_call_site, dw2_size_of_call_site_table): Add
1959 SECTION argument. Use it as index into crtl->eh.call_site_record
1960 array.
1961 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument,
1962 use it to determine how to print table entries instead of using
1963 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold
1964 label instead of normal begin label as base.
1965 (sjlj_assign_call_site_values): Adjust add_call_site caller.
1966 (convert_to_eh_region_ranges): When doing hot/cold partitioning,
1967 ensure no EH range spans between sections and that landing pads
1968 are always in the corresponding section.
1969 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
1970 for crtl->eh.call_site_record being an array rather than scalar.
1971 (output_one_function_exception_table): New function, copied
1972 from output_function_exception_table. Adjust
1973 dw2_size_of_call_site_table, dw2_output_call_site_table
1974 callers. For SECOND section use *C suffixed labels.
1975 (output_function_exception_table): Call
1976 output_one_function_exception_table and, when doing hot/cold
1977 partitioning, also another time for the second section.
1978 * opts.c: Include except.h.
1979 (decode_options): Allow -freorder-blocks-and-partition with
1980 exceptions, unless SJLJ or TARGET_UNWIND_INFO.
1981 * Makefile.in (opts.o): Depend on $(EXCEPT_H).
1982 * function.h (struct rtl_eh): Change call_site_record from
1983 scalar into array of 2 elements.
1984
547f1802 19852009-08-07 Martin Jambor <mjambor@suse.cz>
1986
1987 * ipa-prop.c (count_formal_params_1): New function.
1988 (ipa_get_vector_of_formal_parms): New function.
1989 (get_vector_of_formal_parm_types): New function.
1990 (ipa_modify_formal_parameters): New function.
1991 (ipa_modify_call_arguments): New function.
1992 (index_in_adjustments_multiple_times_p): New function.
1993 (ipa_combine_adjustments): New function.
1994 (ipa_dump_param_adjustments): New function.
1995 * ipa-prop.h (struct ipa_parm_adjustment): New type.
1996 (ipa_get_vector_of_formal_parms): Declare.
1997 (ipa_modify_formal_parameters): Declare.
1998 (ipa_modify_call_arguments): Declare.
1999 (ipa_combine_adjustments): Declare.
2000 (ipa_dump_param_adjustments): Declare.
2001 (build_ref_for_offset): Declare.
2002 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
2003 * tree-sra.c: Include ipa-prop.c.
f6c8c8fc 2004 (build_ref_for_offset): Make public.
547f1802 2005
c3d60b15 20062009-08-06 Neil Vachharajani <nvachhar@gmail.com>
2007
2008 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
f6c8c8fc 2009
23807f43 20102009-08-06 Thomas Schwinge <tschwinge@gnu.org>
2011
2012 * gcc/doc/extend.texi (__builtin_extract_return_address)
2013 (__builtin_frob_return_address): Document.
2014
b357350a 20152009-08-06 Paul Brook <paul@codesourcery.com>
2016
2017 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
2018 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
2019 implementation on ARMv6-M.
2020
3eec35ec 20212009-08-06 Richard Earnshaw <rearnsha@arm.com>
2022
2023 * doc/extend.texi (pcs): Document new attribute for ARM.
2024
02be9205 20252009-08-06 Richard Earnshaw <rearnsha@arm.com>
2026
2027 * arm.c (pcs_attribute_args): Comment out unsupported attribute
2028 variants.
2029
94966ac4 20302009-08-06 Richard Earnshaw <rearnsha@arm.com>
2031
2032 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
2033 warning ().
2034
f8f15459 20352009-08-06 Richard Earnshaw <rearnsha@arm.com>
2036
2037 * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
2038
578d1295 20392009-08-06 Richard Earnshaw <rearnsha@arm.com>
2040
2041 Merge ARM/hard_vfp_branch to trunk.
2042
2043 2009-08-04 Richard Earnshaw <rearnsha@arm.com>
2044
2045 * arm.c (libcall_eq): New function.
2046 (libcall_hash): New function.
2047 (add_libcall): New function.
2048 (arm_libcall_uses_aapcs_base): New function.
2049 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
2050 libcalls using the base PCS.
2051 (arm_init_cumulative_args): Likewise.
2052
2053 2009-07-20 Joseph Myers <joseph@codesourcery.com>
2054
2055 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
2056 Use base ABI for conversion libfuncs between HFmode and SFmode.
2057
2058 2009-05-12 Joseph Myers <joseph@codesourcery.com>
2059
2060 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
2061 V4SImode as representatives of all 64-bit and 128-bit vector
2062 types. Allow vector types without vector modes.
2063 (aapcs_vfp_is_call_or_return_candidate): Handle vector types
2064 without vector modes like BLKmode.
2065 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
2066 BLKmode. Avoid unsupported vector modes or TImode moves for
2067 non-TARGET_NEON.
2068 (aapcs_vfp_allocate_return_reg): Likewise.
2069 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
2070 V8QImode if TARGET_NEON || TARGET_IWMMXT.
2071
2072 2009-05-12 Joseph Myers <joseph@codesourcery.com>
2073
2074 * config/arm/arm.c (arm_handle_pcs_attribute): New.
2075 (arm_get_pcs_model): Pass attribute arguments to
2076 arm_pcs_from_attribute.
2077 (arm_init_cumulative_args): Use base AAPCS for conversions from
2078 floating-point types to DImode.
2079 (arm_attribute_table): Add pcs attribute.
2080 (arm_handle_pcs_attribute): New.
2081 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
2082 conversions from floating-point types to DImode, also declare them
2083 to use base AAPCS and declare functions they call to use base
2084 AAPCS and their RTABI names.
2085
2086 2009-05-12 Joseph Myers <joseph@codesourcery.com>
2087
2088 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
2089 -mfloat-abi=hard not being supported for VFP.
2090
2091 2009-05-11 Kazu Hirata <kazu@codesourcery.com>
2092
2093 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
2094 SYMBOL_REF to hard_libcall_value.
2095
2096 2009-03-05 Joseph Myers <joseph@codesourcery.com>
2097 Richard Earnshaw <rearnsha@arm.com>
2098
2099 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
2100 has been put on the stack, all remaining co-processory arguments for
2101 that co-processor also go on the stack.
2102
2103 2009-03-05 Joseph Myers <joseph@codesourcery.com>
2104
2105 * config/arm/arm.c (arm_return_in_memory): Handle returning
2106 vectors of suitable size in registers also for AAPCS case.
2107
2108 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
2109
2110 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
2111
2112 2008-12-09 Richard Earnshaw <rearnsha@arm.com>
2113
2114 ARM Hard-VFP calling convention
2115 * target-def.h (TARGET_LIBCALL_VALUE): New hook.
2116 * target.h (gcc_target): Add libcall_value to table of call hooks.
2117 * targhooks.h (default_libcall_value): Default implementation.
2118 * targhooks.c (default_libcall_value): Likewise.
2119 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
2120 * optabs.c (expand_unop): Use it.
2121 * expr.h (hard_libcall_value): Pass the function RTX through.
f6c8c8fc 2122 * calls.c (emit_library_call_value_1): Update call to
578d1295 2123 hard_libcall_value.
2124 * explow.c (hard_libcall_value): Use new target hook.
2125 * testsuite/lib/target-supports.exp
2126 (check_effective_target_arm_hard_vfp_ok): New hook.
2127 (check_effective_target_arm_neon_ok): Improve test for neon
2128 availability.
2129 * testsuite/gcc.target/arm/eabi1.c: Only run test in base variant.
2130 * config/arm/arm.c: Include cgraph.h
2131 (TARGET_FUNCTION_VALUE): Override default hook.
2132 (arm_pcs_default): New variable.
2133 (arm_override_options): Don't fault hard calling convention with VFP.
2134 Add support for AAPCS variants.
2135 (arm_function_value): Make static. Handle AAPCS variants.
2136 (arm_libcall_value): New function.
2137 (arm_apply_result_size): Handle VFP registers in results.
2138 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
2139 conventions.
2140 (pcs_attribute_args): New variable.
2141 (arm_pcs_from_attribute): New function.
2142 (arm_get_pcs_model): New function.
2143 (aapcs_vfp_cum_init): New function.
2144 (aapcs_vfp_sub_candidate): New function.
2145 (aapcs_vfp_is_return_candidate): New function.
2146 (aapcs_vfp_is_call_candidate): New function.
2147 (aapcs_vfp_allocate): New function.
2148 (aapcs_vfp_allocate_return_reg): New function.
2149 (aapcs_vfp_advance): New function.
2150 (aapcs_cp_arg_layout): New variable.
2151 (aapcs_select_call_coproc): New function.
2152 (aapcs_select_return_coproc): New function.
2153 (aapcs_allocate_return_reg): New function.
2154 (aapcs_libcall_value): New function.
2155 (aapcs_layout_arg): New function.
2156 (arm_init_cumulative_args): Initialize AAPCS args data.
2157 (arm_function_arg): Handle AAPCS variants using new interface.
2158 (arm_arg_parital_bytes): Likewise.
2159 (arm_function_arg_advance): New function.
2160 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
2161 calling conventions.
2162 (arm_setup_incoming_varargs): Handle new AAPCS args data.
2163 * arm.h (NUM_VFP_ARG_REGS): Define.
2164 (LIBCALL_VALUE): Update.
2165 (FUNCTION_VALUE): Delete.
2166 (FUNCTION_VALUE_REGNO_P): Add VFP regs.
2167 (arm_pcs): New enum.
2168 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
2169 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
2170 (FUNCTION_ARG_REGNO_P): Add VFP regs.
2171 * arm-protos.h (arm_function_arg_advance): Add.
2172 (aapcs_libcall_value): Add.
2173 (arm_function_value): Delete.
2174
f03e8048 21752009-08-06 Uros Bizjak <ubizjak@gmail.com>
2176 H.J. Lu <hongjiu.lu@intel.com>
2177
2178 PR target/40957
2179 * config/i386/i386.c (standard_sse_mode_p): Remove.
2180 (standard_sse_constant_p): Return 2 for integer mode
2181 vector_all_ones_operand when SSE2 is enabled.
2182 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
2183 (ix86_expand_vector_move): Do not check for negative values from
2184 standard_sse_constant_p.
2185
9fa67218 21862009-08-06 Richard Guenther <rguenther@suse.de>
2187
2188 * tree-ssa.c (useless_type_conversion_p_1): Make function and
2189 array type comparisons frontend independent.
2190 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
2191 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
2192 out array reference lower bound and element size operands.
2193 (ao_ref_init_from_vn_reference): Properly compute the offset
2194 for ARRAY_RANGE_REF.
2195 (vn_reference_fold_indirect): Fill out array reference lower
2196 bound and element size operands.
2197 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
2198 a non gimple valued reference operand which can happen for
2199 array reference lower bound or element size.
2200 (create_component_ref_by_pieces_1): Properly generate the
2201 element size operand for array references.
2202
e2a00a16 22032009-08-06 Richard Guenther <rguenther@suse.de>
2204
2205 PR tree-optimization/40964
2206 * tree.c (iterative_hash_host_wide_int): Export.
2207 * tree.h (iterative_hash_host_wide_int): Declare.
2208 * tree-ssa-structalias.c (heapvar_map): New struct.
2209 (heapvar_map_eq): New function.
2210 (heapvar_map_hash): Likewise.
2211 (heapvar_lookup): Adjust.
2212 (heapvar_insert): Likewise.
2213 (make_constraint_from_heapvar): Allow multiple heap variables
2214 per decl at different offsets.
2215 (init_alias_heapvars): Adjust.
2216
3c367092 22172009-08-04 David Daney <ddaney@caviumnetworks.com>
2218
2219 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
2220 * mips_output_sync_loop (mips_output_sync_loop): Only emit
2221 trailing sync if TARGET_SYNC_AFTER_SC.
2222
46e2d1d4 22232009-08-05 David Daney <ddaney@caviumnetworks.com>
2224
2225 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
2226 compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
2227 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
2228 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
2229 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
2230 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
2231 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2232 sync_new_nand<mode>, sync_lock_test_and_set<mode>,
2233 test_and_set_12): Rewrite calls to mips_output_sync_loop.
2234 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
2235 the prototype declaration match the definition.
2236 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync
2237 instructions explicitly. Add barrier_before and operands
2238 parameters.
2239 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
2240 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
2241 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
2242 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
2243 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
2244 MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
2245
077ad5ad 22462009-08-05 Andrew Pinski <pinskia@gmail.com>
2247
2248 * tree-ssa-alias.c: Fix intervals to use [) syntax.
2249
8bf42176 22502009-08-05 Uros Bizjak <ubizjak@gmail.com>
2251 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
2252
2253 PR target/40906
2254 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
2255 source operand.
2256
627540ce 22572009-08-05 Jakub Jelinek <jakub@redhat.com>
2258
2259 PR rtl-optimization/40924
2260 * dse.c (canon_address): Before calling cselib_expand_value_rtx
2261 make sure canon_rtx (mem_address) isn't simpler than
2262 canon_rtx (expanded_mem_address).
2263
da6ec3dd 22642009-08-05 Li Feng <nemokingdom@gmail.com>
2265
2266 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
2267 for each poly_bb_p.
2268 (build_scop_drs): Build alias set for each SCoP.
2269
707486a0 22702009-08-04 Sandra Loosemore <sandra@codesourcery.com>
2271
2272 * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
2273 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
2274 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
2275 (MIPS_ARCH_FLOAT_SPEC): Likewise.
2276 (BASE_DRIVER_SELF_SPECS): Likewise.
2277
4763217e 22782009-08-04 Andrew Pinski <pinskia@gmail.com>
2279
2280 * tree-ssa-alias.c: Fix some comment typos.
2281
89c9a7aa 22822009-08-04 Kaz Kojima <kkojima@gcc.gnu.org>
2283
2284 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
2285 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
2286
3db273fd 22872009-08-03 Janis Johnson <janis187@us.ibm.com>
2288
2289 PR c/39902
2290 * simplify-rtx.c (simplify_binary_operation_1): Disable
2291 simplifications for decimal float operations.
2292
cbb04ca9 22932009-08-03 Jakub Jelinek <jakub@redhat.com>
2294
2295 PR middle-end/40943
2296 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
2297 operand of INDIRECT_REF.
2298
75645350 22992009-08-03 Uros Bizjak <ubizjak@gmail.com>
2300
2301 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
2302 constants referencing TLS symbols.
2303
b29d7d6e 23042009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2305
2306 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
2307 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
2308
2ed8de55 23092009-08-03 Richard Guenther <rguenther@suse.de>
2310
2311 * tree.c (make_vector_type): Build a main variant first,
2312 get the canonical one and then build the variant.
2313 * tree-ssa.c (useless_type_conversion_p_1): Handle
2314 fixed-point types.
2315 (useless_type_conversion_p): Conversions to pointers to
2316 incomplete record types are useless.
2317
53b5ae07 23182009-08-03 Richard Guenther <rguenther@suse.de>
2319
2320 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
2321 file will be created.
2322 * omp-low.c (pass_diagnose_omp_blocks): Likewise.
2323 * toplev.c (compile_file): Adjust comment.
2324
978fcce1 23252009-08-03 Kaz Kojima <kkojima@gcc.gnu.org>
2326
2327 * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
2328 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
2329 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2330 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
2331 (sh_promote_function_mode): Fix typo.
2332
2888b920 23332009-08-03 Andreas Krebbel <krebbel1@de.ibm.com>
2334
75645350 2335 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
2888b920 2336
15a27966 23372009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2338
2339 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
2340 declaration arguments.
2341
39992b0e 23422009-08-02 Uros Bizjak <ubizjak@gmail.com>
2343
2344 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
2345 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
2346 (ix86_split_ashl): Ditto.
2347 (ix86_expand_vector_init_one_nonzero): Ditto.
2348 (ix86_expand_vector_set): Ditto.
2349 (ix86_expand_reduc_v4sf): Ditto.
2350
23512009-08-02 Paolo Bonzini <bonzini@gnu.org>
905ad4b8 2352
2353 * explow.c (promote_function_mode): Remove assert.
2354 * config/sh/sh.c (sh_promote_function_mode): Declare.
2355
c0045c9e 23562009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2357
905ad4b8 2358 * config/pa/pa.c (pa_promote_function_mode): Declare.
2359 Change to static. Fix promote_mode call.
a6b21a58 2360
c4cd433d 2361 * gthr-dce.h (CONST_CAST2): Define if not defined.
2362 (__gthread_setspecific): Use CONST_CAST2 to fix warning.
2363
c0045c9e 2364 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
2365
905ad4b8 23662009-08-01 Paolo Bonzini <bonzini@gnu.org>
3b2411a8 2367
2368 * expr.c (store_constructor): Use promote_decl_mode. Remove
2369 now write-only variable unsignedp.
2370 (expand_expr_real_1): Use promote_decl_mode.
2371 * expr.h (promote_function_mode, promote_decl_mode): New.
2372 (promote_mode): Remove last argument.
2373 * function.c (assign_temp): Drop last argument of promote_mode.
2374 (assign_parm_find_data_types): Use promote_function_mode.
2375 (assign_parm_setup_reg): Likewise.
2376 (expand_function_end): Use promote_function_mode.
2377 * calls.c (initialize_argument_information): Use promote_function_mode.
2378 (precompute_arguments): Use promote_mode instead of checking if
2379 only PROMOTE_FUNCTION_MODE is defined.
2380 (expand_call): When making sibcall decisions, use promote_function_mode.
2381 Below, remove an if for targetm.calls.promote_function_return and
2382 and use promote_function_mode.
2383 (emit_library_call_value_1): Use promote_function_mode, fix bug
2384 where promote_mode was passed FOR_CALL == 0 for a return value in an
2385 assertion.
2386 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
2387 * explow.c (promote_function_mode, promote_decl_mode): New.
2388 (promote_mode): Keep only the FOR_CALL == 0 case.
2389 * combine.c (setup_incoming_promotion): Remove test of
2390 promote_function_args. Use promote_function_mode.
2391 * stmt.c (expand_value_return): Use promote_decl_mode.
2392 (expand_decl): Use promote_decl_mode.
2393
2394 * expr.c (store_constructor): Use promote_decl_mode. Remove
2395 now write-only variable unsignedp.
2396 (expand_expr_real_1): Use promote_decl_mode.
2397 * expr.h (promote_function_mode, promote_decl_mode): New.
2398 (promote_mode): Remove last argument.
2399 * function.c (assign_temp): Drop last argument of promote_mode.
2400 (assign_parm_find_data_types): Use promote_function_mode.
2401 (assign_parm_setup_reg): Likewise.
2402 (expand_function_end): Use promote_function_mode.
2403 * calls.c (initialize_argument_information): Use promote_function_mode.
2404 (precompute_arguments): Use promote_mode instead of checking if
2405 only PROMOTE_FUNCTION_MODE is defined.
2406 (expand_call): When making sibcall decisions, use promote_function_mode.
2407 Below, remove an if for targetm.calls.promote_function_return and
2408 and use promote_function_mode.
2409 (emit_library_call_value_1): Use promote_function_mode, fix bug
2410 where promote_mode was passed FOR_CALL == 0 for a return value in an
2411 assertion.
2412 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
2413 * explow.c (promote_function_mode, promote_decl_mode): New.
2414 (promote_mode): Keep only the FOR_CALL == 0 case.
2415 * combine.c (setup_incoming_promotion): Remove test of
2416 promote_function_args. Use promote_function_mode.
2417 * stmt.c (expand_value_return): Use promote_decl_mode.
2418 (expand_decl): Use promote_decl_mode.
2419
2420 * explow.c (promote_function_mode): Just call the target hook.
2421 * targhooks.c (default_promote_function_mode,
2422 default_promote_function_mode_always_promote): New.
2423 * targhooks.h (default_promote_function_mode,
2424 default_promote_function_mode_always_promote): Declare.
2425 * target.h (promote_function_args, promote_function_return): Remove.
2426 (promote_function_mode): New.
2427 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
2428 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2429 (TARGET_PROMOTE_FUNCTION_MODE): New.
2430 (TARGET_CALLS): Adjust.
2431 * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
2432 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
2433
2434 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
2435 * config/s390/s390.c (s390_promote_function_mode): ... here,
2436 with pointer handling.
2437 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2438 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2439
2440 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
2441 * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
2442 with pointer handling.
2443 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2444 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
f6c8c8fc 2445
3b2411a8 2446 * config/sh/sh-protos.h (sh_promote_function_mode): New.
2447 * config/sh/sh.c (sh_promote_function_mode): New.
2448 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2449 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2450
2451 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
2452 * config/cris/cris.c (cris_promote_function_mode): ... here.
2453 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2454 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
2455
2456 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
2457 * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
2458 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2459 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
2460
2461 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
39992b0e 2462 * config/arm/arm.c (arm_promote_function_mode): ... here, without
2463 complex type handling.
3b2411a8 2464 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2465 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2466
2467 * config/pa/pa.c (pa_promote_function_mode): New.
2468 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2469 (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2470
2471 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
2472 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
2473 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
2474 * config/xtensa/xtensa.c: Likewise.
2475 * config/stormy16/stormy16.c: Likewise.
2476 * config/iq2000/iq2000.c: Likewise.
2477 * config/rs6000/rs6000.c: Likewise.
2478 * config/picochip/picochip.c: Likewise.
2479 * config/arc/arc.c: Likewise.
2480 * config/mcore/mcore.c: Likewise.
2481 * config/score/score.c: Likewise.
2482 * config/mips/mips.c: Likewise.
2483 * config/bfin/bfin.c: Likewise.
2484 * config/ia64/ia64.c: Likewise (disabled though).
2485
2486 * config/frv/frv.h: Remove pointless remark.
2487
2488 * doc/tm.texi (PROMOTE_FUNCTION_MODE,
2489 TARGET_PROMOTE_FUNCTION_ARGS,
2490 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
2491 (TARGET_PROMOTE_FUNCTION_MODE): ... this.
2492
16848556 24932009-08-01 Sebastian Pop <sebastian.pop@amd.com>
2494
2495 * doc/invoke.texi (-fgraphite-force-parallel): Renamed
2496 -floop-parallelize-all.
2497 * toplev.c (process_options): Rename flag_graphite_force_parallel to
2498 flag_loop_parallelize_all.
2499 * tree-ssa-loop.c (gate_graphite_transforms): Same.
2500 * graphite.c (graphite_transform_loops): Same.
2501 * common.opt: Same.
2502 * graphite-poly.c (apply_poly_transforms): Same.
2503
66cca8a0 25042009-07-31 Richard Earnshaw <rearnsha@arm.com>
2505
2506 PR tree-optimization/40914
2507 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
2508 if set, then check the delta field of the PMF record.
2509 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
2510 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
2511 call is stored in the delta.
2512
50e35237 25132009-07-31 Adam Nemet <anemet@caviumnetworks.com>
2514
2515 * config/mips/mips.md (*clear_upper32_dext): New pattern.
2516
640bddbe 25172009-07-31 Uros Bizjak <ubizjak@gmail.com>
2518
2519 * config/i386/bsd.h (ASM_BYTE): New define.
2520 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
2521 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
2522 .byte. Use fputs or putc instead of fprintf where appropriate.
2523 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use
2524 fputs or putc instead of fprintf where appropriate.
2525 * config/i386/i386elf.h: Ditto.
2526 * config/i386/sysv4.h: Ditto.
f6c8c8fc 2527
640bddbe 2528 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
2529 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
2530 (*tls_global_dynamic_64): Ditto.
2531
f6c8c8fc 25322009-07-31 Christian Bruel <christian.bruel@st.com>
39f6b116 2533
2534 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
f6c8c8fc 2535
683bd8e4 25362009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2537
f6c8c8fc 2538 * config/arm/arm.c (arm_arm_address_cost): Fix typo.
683bd8e4 2539 Remove dead code for MINUS.
2540
447e8aaa 25412009-07-31 Anthony Green <green@moxielogic.com>
2542
2543 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
2544 $r12 in prologue.
2545 (moxie_expand_epilogue): Ditto for epilogue.
2546 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for
2547 incoming arguments.
2548 (moxie_function_arg): Ditto.
2549 (moxie_pass_by_reference): Ditto.
2550 (moxie_arg_partial_bytes): Ditto.
2551 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
2552 (FUNCTION_ARG_ADVANCE) Ditto.
2553 (REG_PARM_STACK_SPACE) Ditto.
2554 (FUNCTION_ARG_REGNO_P) Dito.
2555
2556 * config.gcc: Add moxie linux config support.
2557 * gcc/config/moxie/uclinux.h: New file.
2558
5e11de88 25592009-07-31 DJ Delorie <dj@redhat.com>
2560
2561 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
2562 (UNSPECV_SP_SWITCH_E): New.
2563 (sp_switch_1): Change to an unspec.
2564 (sp_switch_2): Change to an unspec. Don't use post-inc when we
2565 replace $r15.
2566 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
2567 reference the new stack's address
2568
26c166eb 25692009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2570
2571 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
2572 graphite-clast-to-gimple.o, graphite-dependences.o,
2573 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
2574 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
2575 (graphite-blocking.o,
2576 graphite-clast-to-gimple.o, graphite-dependences.o,
2577 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
2578 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
2579 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
2580 * cfgloop.h (struct loop): Add can_be_parallel field.
2581 * common.opt (fgraphite-identity): Moved up.
2582 (fgraphite-force-parallel): New flag.
2583 * graphite.c: Rewrite.
2584 * graphite.h: Rewrite.
2585 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
2586 after Graphite.
2587 * toplev.c (graphite_out_file): New file descriptor.
2588 (graphite_in_file): New.
2589 (process_options): flag_graphite_force_parallel cannot be used without
2590 Graphite.
2591 * tree-ssa-loop.c: Include toplev.h.
2592 (gate_graphite_transforms): Enable flag_graphite for
2593 flag_graphite_force_parallel.
2594
c6bb733d 25952009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2596
2597 * ChangeLog.graphite: New.
2598 * graphite-blocking.c: New.
2599 * graphite-clast-to-gimple.c: New.
2600 * graphite-clast-to-gimple.h: New.
2601 * graphite-dependences.c: New.
2602 * graphite-dependences.h: New.
2603 * graphite-interchange.c: New.
2604 * graphite-poly.c: New.
2605 * graphite-poly.h: New.
2606 * graphite-ppl.c: New.
2607 * graphite-ppl.h: New.
2608 * graphite-scop-detection.c: New.
2609 * graphite-scop-detection.h: New.
2610 * graphite-sese-to-poly.c: New.
2611 * graphite-sese-to-poly.h: New.
2612 * sese.c: New.
2613 * sese.h: New.
2614
e44bcf83 26152009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2616
2617 * tree-chrec.c (evolution_function_right_is_integer_cst): New.
2618 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
2619
7ed7512f 26202009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2621
2622 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
2623 (scev_is_linear_expression): Return false if the evolution is not
2624 affine multivariate.
2625
c794d738 26262009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2627
2628 * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
2629 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
2630
5df4cc8d 26312009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2632
2633 * tree-data-ref.c (debug_data_references): New.
2634 (debug_data_reference): New.
2635 * tree-data-ref.h (debug_data_references): Declared.
2636 (debug_data_reference): Declared.
2637
a3e48a5b 26382009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2639
2640 * tree-data-ref.c (stmt_simple_memref_p: Removed.
2641 * tree-data-ref.h (scop_p): Removed.
2642 (struct data_reference): Remove field scop.
2643 (DR_SCOP): Removed.
2644 (stmt_simple_memref_p): Removed.
2645
b65ec27f 26462009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2647
2648 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
2649 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
2650 basic block empty.
2651
56c337f9 26522009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2653
2654 * doc/invoke.texi (-fgraphite-force-parallel): Documented.
2655
da2ee0e7 26562009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2657
2658 * doc/invoke.texi (-fgraphite-identity): Documented.
2659
8b7d09b4 26602009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2661
2662 * tree-scalar-evolution.c: Fix comment.
2663 (instantiate_scev_1): Return unknow from scev instantiation if the
2664 result is not above instantiate_below.
2665
524bc988 26662009-07-30 Sebastian Pop <sebastian.pop@amd.com>
2667
2668 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
2669 static anymore. Instantiate the symbols that may have been introduced
2670 by chrec_apply.
2671 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
2672 Declared.
2673
987ce674 26742009-07-30 DJ Delorie <dj@redhat.com>
2675
2676 * config/mep/mep.c (mep_asm_init_sections): Add section flags and
2677 .vliw directive to VLIW sections.
2678
a2655af1 26792009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2680
2681 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
2682 New variables.
2683 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
2684 (AUTOHEADER): New variable.
2685 ($(srcdir)/cstamp-h.in): Use it.
2686
32374e3c 26872009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
2688 Pat Haugen <pthaugen@us.ibm.com>
2689 Revital Eres <ERES@il.ibm.com>
2690
2691 * config/rs6000/vector.md (VEC_F): Add VSX support.
2692 (VEC_A): Ditto.
2693 (VEC_N): Ditto.
2694 (mov<mode>): Ditto.
2695 (vector_load_<mode>): Ditto.
2696 (vector_store_<mode>): Ditto.
2697 (vector GPR move split): Ditto.
2698 (vec_reload_and_plus_<mptrsize>): Ditto.
2699 (vec_reload_and_reg_<mptrsize>): Ditto.
2700 (add<mode>3): Ditto.
2701 (sub<mode>3): Ditto.
2702 (mul<mode>3): Ditto.
2703 (neg<mode>2): Ditto.
2704 (abs<mode>2): Ditto.
2705 (smin<mode>3): Ditto.
2706 (smax<mode>3): Ditto.
2707 (vector_eq<mode>): Ditto.
2708 (vector_gt<mode>): Ditto.
2709 (vector_ge<mode>): Ditto.
2710 (vector_gtu<mode>): Ditto.
2711 (vector_select_<mode>_uns): Ditto.
2712 (vector_eq_<mode>_p): Ditto.
2713 (vector_gt_<mode>_p): Ditto.
2714 (vector_ge_<mode>_p): Ditto.
2715 (vector_gtu_<mode>_p): Ditto.
2716 (cr6_test_for_zero): Ditto.
2717 (cr6_test_for_zero_reverse): Ditto.
2718 (cr6_test_for_lt): Ditto.
2719 (cr6_test_for_lt_reverse): Ditto.
2720 (xor<mode>3): Ditto.
2721 (ior<mode>3): Ditto.
2722 (and<mode>3): Ditto.
2723 (one_cmpl<mode>2): Ditto.
2724 (nor<mode>2): Ditto.
2725 (andc<mode>2): Ditto.
2726 (float<VEC_int<mode>2): Ditto.
2727 (unsigned_float<VEC_int><mode>2): Ditto.
2728 (fix_trunc<mode><VEC_int>2): Ditto.
2729 (fixuns_trunc<mode><VEC_int>2): Ditto.
2730 (vec_init<mode>):
2731 (vec_set<mode>): Ditto.
2732 (vec_extract<mode>): Ditto.
2733 (vec_interleave_highv4sf): Ditto.
2734 (vec_interleave_lowv4sf): Ditto.
2735 (vec_realign_load_<mode>): Ditto.
2736 (vec_shl_<mode>): Ditto.
2737 (vec_shr_<mode>): Ditto.
2738 (div<mode>3): New patterns for VSX.
2739 (vec_interleave_highv2df): Ditto.
2740 (vec_interleave_lowv2df): Ditto.
2741 (vec_pack_trunc_v2df): Ditto.
2742 (vec_pack_sfix_trunc_v2df): Ditto.
2743 (vec_pack_ufix_trunc_v2df): Ditto.
2744 (vec_unpacks_hi_v4sf): Ditto.
2745 (vec_unpacks_lo_v4sf): Ditto.
2746 (vec_unpacks_float_hi_v4si): Ditto.
32374e3c 2747 (vec_unpacks_float_lo_v4si): Ditto.
17e313b0 2748 (vec_unpacku_float_hi_v4si): Ditto.
2749 (vec_unpacku_float_lo_v4si): Ditto.
32374e3c 2750 (movmisalign<mode>): Ditto.
2751 (vector_ceil<mode>2): New patterns for vectorizing math library.
2752 (vector_floor<mode>2): Ditto.
2753 (vector_btrunc<mode>2): Ditto.
2754 (vector_copysign<mode>3): Ditto.
2755
2756 * config/rs6000/predicates.md (easy_vector_constant_msb): New
640bddbe 2757 predicate for setting the high bit in each word, used for copysign.
32374e3c 2758
2759 * config/rs6000/ppc-asm.h (f19): Whitespace.
2760 (f32-f63): Define if VSX.
2761 (v0-v31): Define if Altivec.
2762 (vs0-vs63): Define if VSX.
2763
2764 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
2765
2766 * config/rs6000/power7.md: New file, provide tuning parameters for
2767 -mcpu=power7.
2768
640bddbe 2769 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
32374e3c 2770 (rs6000_cpu_cpp_builtins): Ditto.
2771 (altivec_overloaded_builtins): Ditto.
2772 (altivec_resolve_overloaded_builtin): Ditto.
2773
2774 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
2775 debug switch to disable vectorizing simple math builtin
2776 functions.
2777
2778 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
2779 Vectorize simple math builtin functions.
2780 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
2781 hook to vectorize math builtins.
2782 (rs6000_override_options): Enable -mvsx on -mcpu=power7.
2783 (rs6000_builtin_conversion): Add VSX/power7 support.
2784 (rs6000_builtin_vec_perm): Ditto.
2785 (vsplits_constant): Add support for loading up a vector constant
2786 with just the high bit set in each part.
2787 (rs6000_expand_vector_init): Add VSX/power7 support.
2788 (rs6000_expand_vector_set): Ditto.
2789 (rs6000_expand_vector_extract): Ditto.
2790 (rs6000_emit_move): Ditto.
2791 (bdesc_3arg): Ditto.
2792 (bdesc_2arg): Ditto.
2793 (bdesc_1arg): Ditto.
2794 (rs6000_expand_ternop_builtin): Ditto.
2795 (altivec_expand_builtin): Ditto.
2796 (rs6000_expand_unop_builtin): Ditto.
2797 (rs6000_init_builtins): Ditto.
2798 (altivec_init_builtins): Ditto.
2799 (builtin_function_type): Ditto.
2800 (rs6000_common_init_builtins): Ditto.
2801 (rs6000_handle_altivec_attribute); Ditto.
2802 (rs6000_mangle_type): Ditto.
2803 (rs6000_vector_mode_supported_p): Ditto.
2804 (rs6000_mode_dependent_address): Altivec addresses with AND -16
2805 are mode dependent.
2806
2807 * config/rs6000/vsx.md: New file for VSX support.
2808
2809 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
2810 identifing values with just the most significant bit set.
2811 (enum rs6000_builtins): Add builtins for VSX. Add simple math
2812 vectorized builtins.
2813
2814 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
2815 (UNSPEC_VRFIM): Delete.
2816 (splitter for loading up vector with most significant bit): New
2817 splitter for vectorizing copysign.
2818 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for
2819 vectorizing simple math functions.
640bddbe 2820 (altivec_vrfip): Add support for vectorizing simple math functions.
32374e3c 2821 (altivec_vrfim): Ditto.
2822 (altivec_copysign_v4sf3): New insn for Altivec copysign support.
2823
2824 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
2825 (power7.md, vsx.md): Include for power7 support.
2826 (copysigndf3): Use VSX instructions if -mvsx.
2827 (negdf2_fpr): Ditto.
2828 (absdf2_fpr): Ditto.
2829 (nabsdf2_fpr): Ditto.
2830 (adddf3_fpr): Ditto.
2831 (subdf3_fpr): Ditto.
2832 (muldf3_fpr): Ditto.
2833 (divdf3_fpr): Ditto.
2834 (fix_truncdfdi2_fpr): Ditto.
2835 (cmpdf_internal1): Ditto.
2836 (fred, fred_fpr): Convert into expander/insn to add VSX support.
2837 (btruncdf2, btruncdf2_fpr): Ditto.
2838 (ceildf2, ceildf2_fpr): Ditto.
2839 (floordf2, floordf2_fpr): Ditto.
2840 (floatdidf2, floatdidf2_fpr): Ditto.
2841 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx.
2842 (fmsubdf4_fpr): Ditto.
2843 (fnmadddf4_fpr_1): Ditto.
2844 (fnmadddf4_fpr_2): Ditto.
2845 (fnmsubdf4_fpr_1): Ditto.
2846 (fnmsubdf4_fpr_2): Ditto.
2847 (fixuns_truncdfdi2): Add expander for VSX support.
2848 (fix_truncdfdi2): Ditto.
2849 (fix_truncdfsi2): Ditto.
2850 (ftruncdf2): Ditto.
2851 (btruncsf2): Whitespace.
2852 (movdf_hardfloat32): Add support for VSX registers.
2853 (movdf_softfloat32): Ditto.
2854 (movdf_hardfloat64): Ditto.
2855 (movdf_hardfloat64_mfpgpr): Ditto.
2856 (movdf_softfloat64): Ditto.
2857 (movti splitters): Add check for vector registers supporting
2858 TImode in the future.
2859 (bpermd): Add power7 bpermd instruction.
2860
2861 * config/rs6000/altivec.h (vec_div): Define if VSX.
2862 (vec_mul): Ditto.
2863 (vec_msub): Ditto.
2864 (vec_nmadd): Ditto.
2865 (vec_nearbyint): Ditto.
2866 (vec_rint): Ditto.
2867 (vec_sqrt): Ditto.
640bddbe 2868 (all predicates): Use the generic builtin function, and not the V4SF
2869 specific function so that the predicates will work with VSX's V2DF.
32374e3c 2870 (vec_all_*): Ditto.
2871 (vec_any_*): Ditto.
2872
2873 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
2874 Document new VSX functions and types.
2875
2876 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
2877 switches.
2878
2879 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
2880 "wa", and "j" constraints. Modify "v" to talk about Altivec
2881 instead of just vector.
2882
efbcb6de 28832009-07-30 Andrew MacLeod <amacleod@redhat.com>
2884
2885 PR debug/26475
2886 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
2887 location for phi arguments.
2888 (rewrite_update_phi_arguments): Find locations for reaching defs.
2889 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
2890 Add location to add_phi_arg calls.
2891 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
2892 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
2893 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
2894 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
2895 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
2896 * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
2897 * tree-phinodes.c (make_phi_node): Initialize location.
2898 (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
2899 (add_phi_arg): Add location parameter.
2900 (remove_phi_arg_num): Move location when moving phi argument.
f6c8c8fc 2901 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
efbcb6de 2902 location.
2903 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
2904 slpeel_update_phi_nodes_for_guard1,
2905 slpeel_update_phi_nodes_for_guard2,
2906 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
2907 vect_loop_versioning): Set locations.
2908 * tree-parloops.c (create_phi_for_local_result,
2909 transform_to_exit_first_loop, create_parallel_loop): Add locations.
2910 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
2911 * tree-vect-loop.c (get_initial_def_for_induction,
2912 vect_create_epilog_for_reduction, vect_finalize_reduction): Add
2913 locations.
2914 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus.
2915 (gimple_phi_arg_location_from_edge): New. Return locus from an edge.
2916 (gimple_phi_arg_set_location): New. Set locus.
2917 (gimple_phi_arg_has_location): New. Check for locus.
2918 (redirect_edge_var_map_location): New. Return locus from var_map.
2919 * tree-vect-data-refs.c (vect_setup_realignment): Set location.
2920 * tree-ssa-phiopt.c (conditional_replacement): Set locus when
2921 combining PHI arguments.
2922 (cond_store_replacement): Set location.
2923 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
2924 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
2925 scop_add_exit_phis_edge): Add locations.
2926 * tree-cfgcleanup.c (remove_forwarder_block,
2927 remove_forwarder_block_with_phi): Add locations.
2928 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
2929 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
2930 locations.
2931 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
2932 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
2933 flush_pending_stmts): Add source location.
2934 * lambda-code.c (perfect_nestify): Maintain location stack with argument
2935 stack to preserve locations.
2936 * tree-vect-stmts.c (vectorizable_load): Add location.
2937 * tree-inline.c (copy_phis_for_bb): Copy locus.
2938 (setup_one_parameter): Add call locus to inlined parameter stmts.
2939 (initialize_inlined_parameters): Pass in call location as parameter
2940 assignment locus.
2941 (tree_function_versioning): Pass location to setup_one_parameter.
2942 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
2943 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
2944 copy and edge lists.
2945 (insert_partition_copy_on_edge, insert_value_copy_on_edge,
f6c8c8fc 2946 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
efbcb6de 2947 locus parameter and override the stmt default if provided.
2948 (new_elim_graph, clear_elim_graph, delete_elim_graph,
2949 elim_graph_add_edge, elim_graph_remove_succ_edge,
2950 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
2951 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
2952 eliminate_phi): Add locus info in elimination graph for each edge and
2953 value copy.
2954 (insert_backedge_copies): Copy locus if present.
2955 * tree-flow.h (struct _edge_var_map): Add locus field.
2956 * tree-switch_conversions.c (fix_phi_nodes): Add locations.
2957 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
f6c8c8fc 2958 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
efbcb6de 2959 locations.
2960 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
f6c8c8fc 2961
76870d0c 29622009-07-30 Martin Jambor <mjambor@suse.cz>
2963
2964 PR tree-optimization/40570
2965 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
2966 use inlining loops.
2967
5fa90eea 29682009-07-30 Razya Ladelsky <razya@il.ibm.com>
2969
2970 * ssa-loop-manip.c: Include langhooks.h.
2971 (rewrite_phi_with_iv): New.
2972 (rewrite_all_phi_nodes_with_iv): New.
2973 (canonicalize_loop_ivs): Move here from tree-parloops.c.
2974 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
2975 * tree-parloops.c (loop_parallel_p): Move out all conditions
2976 except dependency check.
2977 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
2978 (gen_parallel_loop): Call canonicalize_loop_ivs without
2979 reduction_list argument.
2980 (build_new_reduction): New.
2981 (gather_scalar_reductions): New.
2982 (try_get_loop_niter): New.
2983 (try_create_reduction_list): New.
2984 (parallleize_loops): Change the parallel conditions check.
2985 * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
2986 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
2987
65441c28 29882009-07-30 Dave Korn <dave.korn.cygwin@gmail.com>
2989
2990 * opt-functions.awk (opt_args): Allow argument to be enclosed in
2991 curly braces.
2992 * doc/options.texi (Option properties): Mention new quoting syntax.
2993
1f697db5 29942009-07-29 Douglas B Rupp <rupp@gnat.com>
2995
2996 * config/alpha/alpha.c (alpha_start_function):
2997 Handle VMS_DEBUG_MAIN_POINTER
2998 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
2999 * doc/invoke.texi: Document -mdebug-main switch.
3000
da50fe8f 30012009-07-29 Richard Henderson <rth@redhat.com>
3002
3003 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
3004 (cgraph_create_edge_including_clones): Likewise.
3005 * tree-inline.c (copy_bb): Operate on the correct edges
3006 when updating the callgraph.
3007
e783950f 30082009-07-29 Douglas B Rupp <rupp@gnat.com>
3009
3010 * config/alpha/vms-cc.c: Deleted.
3011 * config/alpha/vms-ld.c: Deleted.
3012 * config/alpha/t-vms64: Moved to config/vms
3013 * config/alpha/vms-crt0-64.c: Moved to config/vms
3014 * config/alpha/vms-crt0.c: Moved to config/vms
3015 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
3016 * config/alpha/vms-psxcrt0.c: Moved to config/vms
3017 * config/alpha/xm-vms.h: Moved to config/vms
3018 * config/alpha/x-vms: Moved to config/vms
3019 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
3020 config/vms/t-vms.
3021 * config/vms/t-vms: Moved here from config/alpha. Alpha specific
3022 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
3023 (version): Set.
3024 * config/vms/t-vms64: Moved here from config/alpha
3025 * config/vms/vms-crt0-64.c: Moved here from config/alpha.
3026 (argc,argv,envp): Enforce 32bit malloc'ing.
3027 * config/vms/vms-psxcrt0-64.c: Likewise.
3028 * config/vms/vms-crt0.c: Moved here from config/alpha.
3029 * config/vms/vms-psxcrt0.c: Likewise.
3030 * config/vms/vms-crtl-64.h: New file.
3031 * config/vms/vms-crtl.h: New file.
3032 * config/vms/vms.opt: New file.
3033 * config/vms/xm-vms64.h: New file.
3034 * config/vms/xm-vms.h: Moved here from config/alpha.
3035 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
3036 Set.
3037 * config/vms/x-vms: Moved here from config/alpha.
3038 (version, VMS_EXTRA_PARTS): Moved to t-vms.
3039 (vms-ld.o, vms-cc.o): Removed.
3040 (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
3041
c2a8dc5b 30422009-07-29 Douglas B Rupp <rupp@gnat.com>
3043
3044 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
3045 correct stack (obvious VMS fix).
3046
d5440449 30472009-07-29 Douglas B Rupp <rupp@gnat.com>
3048
3049 * dwarf2out.c (output_file_names): Output VMS style file name, size,
3050 date, version info if VMS_DEBUGGING_INFO defined.
3051 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
3052 size, date calculating code moved here.
3053
751d1b5b 30542009-07-29 Paul Brook <paul@codesourcery.com>
3055
3056 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
3057 do_push/do_pop.
3058
b8340ddc 30592009-07-29 Uros Bizjak <ubizjak@gmail.com>
3060
3061 PR target/40577
3062 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
3063 to DImode when generating insq_le insn.
3064
f01ce600 30652009-07-28 Douglas B Rupp <rupp@gnat.com>
3066
3067 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
3068 New macro set for VMS_DEBUGGGING_INFO.
3069 (AT_string_form): Use it.
3070
e3b9264d 30712009-07-28 DJ Delorie <dj@redhat.com>
3072
3073 * config/mep/mep.c (vtext_section): New.
3074 (vftext_section): New.
3075 (ftext_section): New.
3076 (mep_select_section): Add support for functions.
3077 (mep_unique_section): Likewise.
3078 (mep_asm_init_sections): Likewise.
5bfd4d4b 3079 (mep_encode_section_info): Remove it from here.
e3b9264d 3080
3081 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
3082
e0213ecc 30832009-07-28 Paolo Bonzini <bonzinI@gnu.org>
3084
3085 * tree.h (TREE_DEPRECATED): Document it is used for types too.
3086 (TYPE_VECTOR_OPAQUE): Use default_def_flag
3087
7bf5f48b 30882009-07-28 Douglas B Rupp <rupp@gnat.com>
3089
3090 * dwarf2out.c (output_file_names): Test new macro
3091 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
3092 (add_comp_dir_attribute): Likewise.
3093
a37c5284 30942009-07-28 Kai Tietz <kai.tietz@onevision.com>
3095
3096 * config/i386/mingw-w64.h (LINK_SPEC): Add
3097 separating space between commands.
3098
3e5688bf 30992009-07-28 Jan Hubicka <jh@suse.cz>
3100
3101 PR tree-optimization/40759
3102 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
3103 for renaming.
3104
09bb2dae 31052009-07-27 DJ Delorie <dj@redhat.com>
3106
3107 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
3108 types are dword-aligned.
3109 (mep_expand_va_start): Likewise.
3110
ada30930 31112009-07-27 Olivier Hainque <hainque@adacore.com>
b8340ddc 3112 Douglas B Rupp <rupp@gnat.com>
ada30930 3113
3114 * convert.c (convert_to_pointer): Don't assume the target
3115 pointer type is POINTER_SIZE long. Fetch its precision instead.
3116
f75af213 31172009-07-27 Douglas B Rupp <rupp@gnat.com>
3118
3119 * system.h (fopen): Undefine if macro.
3120
5de632d9 31212009-07-27 Jakub Jelinek <jakub@redhat.com>
3122
3123 * dwarf2out.c (output_cfi_p): Removed.
3124 (output_cfis): New function.
3125 (output_fde): New function, split from output_call_frame_info.
3126 (output_call_frame_info): Use it.
3127 (dwarf2out_switch_text_section): Use output_cfis.
3128
c2c9961e 31292009-07-24 Kai Tietz <kai.tietz@onevision.com>
3130
3131 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
3132 TARGET_BI_ARCH is specified without enabling SJLJ.
3133 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
3134 if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
3135
6edd680c 31362009-07-26 Mikael Pettersson <mikpe@it.uu.se>
3137
3138 * arm.md (negdi2): Use DImode if forcing a value into a register.
3139
afbe62f9 31402009-07-26 Ira Rosen <irar@il.ibm.com>
3141
3142 PR tree-optimization/40801
3143 * tree-vect-stmts.c (vectorizable_call): Get previous copy
3144 of vector operand from the previous copy of vector statement.
3145 Pass the correct definition type value to
3146 vect_get_vec_def_for_stmt_copy().
3147
ecf52e84 31482009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3149
3150 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
3151 const char ** conversion.
3152
598767c9 31532009-07-25 David Daney <ddaney@caviumnetworks.com>
3154
3155 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
3156 fancy_abort() if !ENABLE_ASSERT_CHECKING.
3157 (gcc_unreachable): Invoke __builtin_unreachable() if
3158 !ENABLE_ASSERT_CHECKING.
3159
c4d13c5c 31602009-07-25 David Daney <ddaney@caviumnetworks.com>
3161
3162 PR rtl-optimization/40445
3163 * emit-rtl.c (next_nonnote_insn_bb): New function.
3164 * rtl.h (next_nonnote_insn_bb): Declare new function.
3165 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
3166 with no successors that is the successor of the ENTRY_BLOCK.
3167 Continue from the top after removing an empty fallthrough block.
3168 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
3169 of next_nonnote_insn.
3170
616b875f 31712009-07-25 David Daney <ddaney@caviumnetworks.com>
3172
b8340ddc 3173 * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
f6c8c8fc 3174
bdb1f0d1 31752009-07-25 Martin Jambor <mjambor@suse.cz>
3176
3177 * c-common.c (c_common_attribute_table): New element for noclone.
3178 (handle_noclone_attribute): New function. Forward-declare.
3179 * tree-inline.c (tree_versionable_function_p): Check for noclone
3180 attribute.
3181 * doc/extend.texi (Labels as Values): Document need for noclone.
3182 (Function Attributes): Document noclone attribute.
3183
d4915beb 31842009-07-25 Jakub Jelinek <jakub@redhat.com>
3185
3186 PR rtl-optimization/34999
3187 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
3188 and dw_fde_switched_cold_to_hot fields.
3189 (output_cfi_p): New function.
3190 (output_call_frame_info): If fde->dw_fde_switched_sections,
3191 output 2 FDEs instead of one with corrupted header.
3192 (dwarf2out_do_cfi_startproc): New function.
3193 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi
3194 and fde->dw_fde_switched_cold_to_hot.
3195 (dwarf2out_switch_text_section): Compute
3196 fde->dw_fde_switched_cold_to_hot. Switch to new text section here.
3197 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
3198 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
3199 Otherwise, compute fde->dw_fde_switch_cfi.
3200
15b7ca3a 32012009-07-24 Cary Coutant <ccoutant@google.com>
3202
3203 * tree-cfg.c (assign_discriminator): Add explicit parentheses.
3204
04953c08 32052009-07-24 Cary Coutant <ccoutant@google.com>
3206
3207 * cfghooks.c (split_block): Copy discriminator to new block.
3208 * tree-cfg.c (assign_discriminator): Check location of last
3209 instruction in block as well as first.
3210
bcfcac73 32112009-07-24 Uros Bizjak <ubizjak@gmail.com>
3212
3213 * config/i386/linux.c: Use fputs or putc instead of fprintf
3214 where appropriate.
3215 * config/i386/gas.h: Ditto.
3216 * config/i386/x86-64.h: Ditto.
3217 * config/i386/att.h: Ditto.
3218
39a4aea8 32192009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3220
3221 * expmed.c (emit_store_flag): Use a recursive call to optimize the
3222 xor case.
3223
e6098777 32242009-07-24 Martin Jambor <mjambor@suse.cz>
3225
3226 * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
3227 (ipa_push_func_to_list_1): Declare.
3228 (ipa_push_func_to_list): New function.
3229
3230 * ipa-prop.c (ipa_push_func_to_list_1): New function.
3231 (ipa_init_func_list): Call ipa_push_func_to_list_1.
3232 (ipa_push_func_to_list): Removed.
3233 (ipa_pop_func_from_list): Clear node_enqueued flag.
3234
c0717306 32352009-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
f6c8c8fc 3236
c0717306 3237 * config/s390/s390.c (override_options): Default
3238 max-unrolled-insns to 100 for z10 tuning.
3239
6215fc9e 32402009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
3241
3242 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
3243 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
3244 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
3245 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
3246 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
3247 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
3248 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
3249
1a4e7ef7 32502009-07-24 Kai Tietz <kai.tietz@onevision.com>
3251
3252 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
3253 use default set in mingw32.h header.
3254 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
3255 64-bit /mingw/include path.
3256 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
3257 path.
3258
c56a6318 32592009-07-23 Neil Vachharajani <nvachhar@google.com>
3260
3261 PR rtl-optimization/40209
3262 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
3263
bdf4452a 32642009-07-23 Uros Bizjak <ubizjak@gmail.com>
3265
3266 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate
3267 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
3268 with the rest of string where appropriate. Use fputs or putc
3269 instead of fprintf where appropriate.
3270
702c5d85 32712009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
3272 Pat Haugen <pthaugen@us.ibm.com>
3273 Revital Eres <ERES@il.ibm.com>
3274
3275 * config/rs6000/vector.md: New file. Move most of the vector
3276 expander support here from altivec.md to allow for the VSX vector
3277 unit in the future. Add support for secondary_reload patterns.
3278 Rewrite the patterns for vector comparison, and vector comparison
3279 predicate instructions so that the RTL expresses the desired
3280 behavior, instead of using unspec.
3281
3282 * config/rs6000/constraints.md ("f" constraint): Use
3283 rs6000_constraints to hold the precalculated register class.
3284 ("d" constraint): Ditto.
3285 ("wd" constraint): New constraint for VSX.
3286 ("wf" constraint): Ditto.
3287 ("ws" constraint): Ditto.
3288 ("wa" constraint): Ditto.
3289 ("wZ" constraint): Ditto.
3290 ("j" constraint): Ditto.
3291
3292 * config/rs6000/predicates.md (vsx_register_operand): New
3293 predicate for VSX.
3294 (vfloat_operand): New predicate for vector.md.
3295 (vint_operand): Ditto.
3296 (vlogical_operand): Ditto.
3297 (easy_fp_constant): If VSX, 0.0 is an easy constant.
3298 (easy_vector_constant): Add VSX support.
3299 (altivec_indexed_or_indirect_operand): New predicate for
3300 recognizing Altivec style memory references with AND -16.
3301
3302 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
3303 for vector secondary reload support.
bcfcac73 3304 (rs6000_vector_reg_class): Delete, replacing it with
3305 rs6000_constraints.
702c5d85 3306 (rs6000_vsx_reg_class): Ditto.
3307 (rs6000_constraints): New array to hold the register classes of
3308 each of the register constraints that can vary at runtime.
3309 (builtin_mode_to_type): New static array for builtin function type
3310 creation.
3311 (builtin_hash_table): New static hash table for builtin function
3312 type creation.
3313 (TARGET_SECONDARY_RELOAD): Define target hook.
3314 (TARGET_IRA_COVER_CLASSES): Ditto.
3315 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
bdf4452a 3316 registers are 128 bits if VSX memory reference instructions are used.
702c5d85 3317 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
3318 unit is being used.
3319 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
3320 (rs6000_debug_reg_global): Move -mdebug=reg statements here.
3321 Print several of the scheduling related parameters.
3322 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
3323 rs6000_constraints instead of rs6000_vector_reg_class. Move
3324 -mdebug=reg code to rs6000_debug_reg_global. Add support for
3325 -mvsx-align-128 debug switch. Drop testing float_p if VSX or
3326 Altivec. Add VSX support. Setup for secondary reload support on
3327 Altivec/VSX registers.
3328 (rs6000_override_options): Make power7 set the scheduling groups
3329 like the power5. Add support for new debug switches to override
3330 the scheduling defaults. Temporarily disable -mcpu=power7 from
3331 setting -mvsx. Add support for debug switches -malways-hint,
3332 -msched-groups, and -malign-branch-targets.
3333 (rs6000_buitlin_conversion): Add support for returning unsigned
3334 vector conversion functions to fix regressions due to stricter
3335 type checking.
3336 (rs6000_builtin_mul_widen_even): Ditto.
3337 (rs6000_builtin_mul_widen_odd): Ditto.
3338 (rs6000_builtin_vec_perm): Ditto.
3339 (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
3340 (rs6000_expand_vector_init): Initial VSX support for using xxlxor
3341 to zero a register.
3342 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
3343 generated upstream.
3344 (bdesc_3arg): Add builtins for unsigned types. Add builtins for
3345 VSX types for bit operations. Changes to accomidate vector.md.
3346 (bdesc_2arg): Ditto.
3347 (bdesc_1arg): Ditto.
3348 (struct builtin_description_predicates): Rewrite predicate
3349 handling so that RTL describes the operation, instead of passing
3350 the instruction to be used as a string argument.
3351 (bdesc_altivec_preds): Ditto.
3352 (altivec_expand_predicate_builtin): Ditto.
3353 (altivec_expand_builtin): Ditto.
3354 (rs6000_expand_ternop_builtin): Use a switch instead of an if
3355 statement for vsldoi support.
bdf4452a 3356 (altivec_expand_ld_builtin): Change to use new names from vector.md.
702c5d85 3357 (altivec_expand_st_builtin): Ditto.
3358 (paired_expand_builtin): Whitespace changes.
3359 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the
3360 builtin_mode_to_type table for secondary reload. Call
3361 builtin_function_type to build random builtin functions.
3362 (altivec_init_builtins): Change to use builtin_function_type to
3363 create builtin function types dynamically as we need them.
3364 (builtin_hash_function): New support for hashing the tree types
3365 for builtin function as we need it, rather than trying to build
bdf4452a 3366 all of the trees that we need. Add initial preliminary VSX support.
702c5d85 3367 (builtin_function_type): Ditto.
3368 (builtin_function_eq): Ditto.
3369 (builtin_hash_struct): Ditto.
3370 (rs6000_init_builtins): Ditto.
3371 (rs6000_common_init_builtins): Ditto.
3372 (altivec_init_builtins): Ditto.
3373 (rs6000_common_init_builtins): Ditto.
3374 (enum reload_reg_type): New enum for simplifing reg classes.
3375 (rs6000_reload_register_type): Simplify register classes into GPR,
bdf4452a 3376 Vector, and other registers. Altivec and VSX addresses in reload.
702c5d85 3377 (rs6000_secondary_reload_inner): Ditto.
3378 (rs6000_ira_cover_classes): New target hook, that returns the
3379 appropriate cover classes, based on -mvsx being used or not.
3380 (rs6000_secondary_reload_class): Add VSX support.
3381 (get_vec_cmp_insn): Delete, rewrite vector conditionals.
3382 (get_vsel_insn): Ditto.
3383 (rs6000_emit_vector_compare): Rewrite vector conditional support
3384 so that where we can, we use RTL operators, instead of blindly use
3385 UNSPEC.
3386 (rs6000_emit_vector_select): Ditto.
3387 (rs6000_emit_vector_cond_expr): Ditto.
bdf4452a 3388 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
702c5d85 3389 (create_TOC_reference): Add -mdebug=addr support.
bdf4452a 3390 (emit_frame_save): VSX loads/stores need register indexed addressing.
702c5d85 3391
3392 * config/rs6000/rs6000.md: Include vector.md.
3393
3394 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
3395
3396 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3397 support for V2DI, V2DF in logical, permute, select operations.
3398
3399 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
3400 switch for vsx/power7.
3401 (-mvsx-scalar-memory): Ditto.
3402 (-mvsx-align-128): Ditto.
3403 (-mallow-movmisalign): Ditto.
3404 (-mallow-df-permute): Ditto.
3405 (-msched-groups): Ditto.
3406 (-malways-hint): Ditto.
3407 (-malign-branch-targets): Ditto.
f6c8c8fc 3408
702c5d85 3409 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
3410 hook instead.
3411 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
3412 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
3413 (rs6000_vector_reg_class): Delete.
3414 (rs6000_vsx_reg_class): Ditto.
3415 (enum rs6000_reg_class_enum): New enum for the constraints that
3416 vary based on target switches.
3417 (rs6000_constraints): New array to hold the register class for all
3418 of the register constraints that vary based on the switches used.
3419 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
3420 (enum rs6000_builtins): Add unsigned varients for the builtin
3421 declarations returned by target hooks for expanding multiplies,
3422 select, and permute operations. Add VSX builtins.
3423 (enum rs6000_builtin_type_index): Add entries for VSX.
3424 (V2DI_type_node): Ditto.
3425 (V2DF_type_node): Ditto.
3426 (unsigned_V2DI_type_node): Ditto.
3427 (bool_long_type_node): Ditto.
3428 (intDI_type_internal_node): Ditto.
3429 (uintDI_type_internal_node): Ditto.
3430 (double_type_internal_node): Ditto.
3431
3432 * config/rs6000/altivec.md (whole file): Move all expanders to
3433 vector.md from altivec.md. Rename insn matching functions to be
3434 altivec_foo.
3435 (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
3436 (altivec_vcmp*): Ditto.
3437 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
3438 (VM): New iterator for moves that includes the VSX types.
3439 (altivec_vperm_<mode>): Add VSX types. Add unsigned types.
3440 (altivec_vperm_<mode>_uns): New, for unsigned types.
bdf4452a 3441 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
702c5d85 3442 (altivec_eq<mode>): Ditto.
3443 (altivec_gt<mode>): Ditto.
3444 (altivec_gtu<mode>): Ditto.
3445 (altivec_eqv4sf): Ditto.
3446 (altivec_gev4sf): Ditto.
3447 (altivec_gtv4sf): Ditto.
3448 (altivec_vcmpbfp_p): Ditto.
3449
63787642 34502009-07-23 Richard Earnshaw <rearnsha@arm.com>
3451
f6c8c8fc 3452 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
63787642 3453 unsigned HWI.
3454
3ce93c03 34552009-07-23 Uros Bizjak <ubizjak@gmail.com>
3456
3457 PR target/40832
c8795808 3458 * config/i386/i386.c (output_387_ffreep): Rewrite to use
3ce93c03 3459 ASM_SHORT instead of .word.
3460 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
3461 instead of .word in asm template.
3462
9f724a58 34632009-07-22 Vladimir Makarov <vmakarov@redhat.com>
3464
3465 PR target/37488
3466 * ira-lives.c (bb_has_abnormal_call_pred): New function.
3467 (process_bb_node_lives): Use it.
3468
3469 * ira.c (setup_cover_and_important_classes): Don't setup
3470 ira_important_class_nums. Add cover classes to the end of
3471 important classes.
c8795808 3472 (cover_class_order, comp_reg_classes_func, reorder_important_classes):
3473 New.
9f724a58 3474 (find_reg_class_closure): Use reorder_important_classes.
3475
3476 * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
3477
3478 * config/i386/i386.c (i386_ira_cover_classes): New function.
3479 (TARGET_IRA_COVER_CLASSES): Redefine.
3480
3481 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
3482 importance of order of cover classes in the array.
f6c8c8fc 3483
d60ec13d 34842009-07-22 Diego Novillo <dnovillo@google.com>
3485
3486 * tree-pass.h (TDF_EH): Define.
3487 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
3488 contains TDF_EH, print the EH region number holding GS.
3489 * tree-dump.c (dump_options): Add "eh".
3490 * doc/invoke.texi: Document it.
3491
5aa8c5f0 34922009-07-22 Doug Kwan <dougkwan@google.com>
3493
3494 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
3495
38fcb532 34962009-07-22 Michael Matz <matz@suse.de>
3497
3498 PR tree-optimization/35229
3499 PR tree-optimization/39300
3500
3501 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
3502 (inhibit_phi_insertion): New function.
3503 (insert_into_preds_of_block): Call it for REFERENCEs.
3504 (init_pre): Initialize and finalize scalar evolutions.
3505 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
3506
686cc944 35072009-07-22 Uros Bizjak <ubizjak@gmail.com>
3508
3509 * config/i386/predicates.md (zero_extended_scalar_load_operand):
3510 Use CONST_VECTOR_NUNITS to determine number of elements.
3511
a7b49046 35122009-07-22 Andreas Krebbel <krebbel1@de.ibm.com>
3513
3514 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
3515 (U, W): Constraints are now deprecated and will be removed if we
f6c8c8fc 3516 run out of letters.
a7b49046 3517 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
3518 the file.
3519 ("prefetch"): Add the stcmh instruction for prefetching.
3520 * config/s390/s390.c (s390_symref_operand_p): Function moved. No
3521 changes.
3522 (s390_short_displacement): Return always true if compiling for
3523 machines not providing the long displacement facility.
3524 (s390_mem_constraint): Support the new constraint letter Z.
3525 (s390_check_qrst_address): New function.
3526
829e79ce 35272009-07-21 DJ Delorie <dj@redhat.com>
3528
3529 * config/mep/mep.c (mep_legitimize_arg): Leave control registers
3530 alone too.
3531
9dcd0d49 35322009-07-21 Jason Merrill <jason@redhat.com>
3533
3534 * c-common.c (max_tinst_depth): Increase default to 1024.
3535
ea3bb9f4 35362009-07-21 Uros Bizjak <ubizjak@gmail.com>
3537
3538 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
3539 (vec_unpacku_float_lo_v4si): Ditto.
3540
e42ab82a 35412009-07-21 Uros Bizjak <ubizjak@gmail.com>
3542
3543 PR target/40811
3544 * config/i386/sse.md (sse2_cvtudq2ps): New expander.
3545 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
3546 (builtin_description): Add __builtin_ia32_cvtudq2ps.
3547 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
3548
567cd518 35492009-07-21 Jakub Jelinek <jakub@redhat.com>
3550
3551 PR tree-optimization/40813
3552 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
3553 it.
3554
3c5bea87 35552009-07-21 Kaz Kojima <kkojima@gcc.gnu.org>
3556
3557 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
3558 with a NOP_EXPR if needed.
3559
41fba625 35602009-07-21 Paul Brook <paul@codesourcery.com>
3561
3562 * tree-vectorizer.c (increase_alignment): Handle nested arrays.
3563 Terminate debug dump with newline.
3564
eab96f1c 35652009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3566
3567 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
3568 Cast "1" to unsigned HOST_WIDE_INT.
3569 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
3570 deposit length to the maximum length - lsb. Extend length if
3571 HOST_BITS_PER_WIDE_INT is 32.
3572
9261e5d9 35732009-07-20 Olatunji Ruwase <tjruwase@google.com>
3574
3575 * cgraph.h (constant_pool_htab): New function.
3576 (constant_descriptor_tree): Move from varasm.c.
3577 * varasm.c (constant_pool_htab): New function.
3578 (constant_descriptor_tree): Move to cgraph.h.
3579
67a2b55a 35802009-07-20 Olatunji Ruwase <tjruwase@google.com>
3581
ea3bb9f4 3582 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
67a2b55a 3583
124370fd 35842009-07-20 Shujing Zhao <pearly.zhao@oracle.com>
3585
3586 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
3587 $(VARRAY_H).
3588
5185084d 35892009-07-20 Xinliang David Li <davidxl@google.com>
3590
3591 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
3592
d1cbb867 35932009-07-20 Adam Nemet <anemet@caviumnetworks.com>
3594
3595 * config/mips/mips.md (move_type): Add arith.
3596 (type): Handle arith.
3597 (zero_extendsidi2): Rename this into ...
3598 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS.
3599 (zero_extendsidi2): New expander.
3600 (*zero_extendsidi2_dext): New pattern.
3601
bfa627f8 36022009-07-20 Nick Clifton <nickc@redhat.com>
3603
3604 * config.gcc (mips64-*-*): Add definition of tm_defines in order
3605 to set MIPS_ABI_DEFAULT.
3606 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
3607
f6d257e7 36082009-07-20 Jakub Jelinek <jakub@redhat.com>
3609
ffbeca59 3610 * tree-object-size.c (addr_object_size): Handle unions with
3611 array in it as last field of structs in __bos (, 1) as __bos (, 0).
3612
f6d257e7 3613 PR tree-optimization/40792
3614 * tree.c (build_function_type_skip_args): Remove bogus assert.
3615
e20422ea 36162009-07-20 Jan Hubicka <jh@suse.cz>
ea3bb9f4 3617 Martin Jambor <mjambor@suse.cz>
e20422ea 3618
3619 * cgraph.h (combined_args_to_skip): New field.
3620 * cgraph.c (cgraph_create_virtual_clone): Properly handle
3621 combined_args_to_skip and args_to_skip.
3622 * tree-inline.c (update_clone_info): New function.
3623 (tree_function_versioning): Call update_clone_info.
686cc944 3624 * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
3625 functions.
e20422ea 3626 (cgraph_materialize_all_clones): More extensive dumping, working
3627 with combined_args_to_skip rather than args_to_skip.
3628
0df23b96 36292009-07-20 Ira Rosen <irar@il.ibm.com>
3630
3631 * tree-vectorizer.h (vectorizable_condition): Add parameters.
3632 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
3633 (get_initial_def_for_reduction): Likewise.
3634 (vectorizable_reduction): Skip the check of first operand in case
3635 of COND_EXPR. Add check that it is outer loop vectorization if
f6c8c8fc 3636 nested cycle was detected. Call vectorizable_condition() for
0df23b96 3637 COND_EXPR. If reduction epilogue cannot be created do not fail for
3638 nested cycles (if it is not double reduction). Assert that there
3639 is only one type in the loop in case of COND_EXPR. Call
3640 vectorizable_condition() to vectorize COND_EXPR.
3641 * tree-vect-stmts.c (vectorizable_condition): Update comment.
f6c8c8fc 3642 Add parameters. Allow nested cycles if called from
0df23b96 3643 vectorizable_reduction(). Use reduction vector variable if provided.
3644 (vect_analyze_stmt): Call vectorizable_reduction() before
3645 vectorizable_condition().
3646 (vect_transform_stmt): Update call to vectorizable_condition().
3647
0ce30983 36482009-07-20 Christian Bruel <christian.bruel@st.com>
f6c8c8fc 3649
0ce30983 3650 * config/sh/sh.opt (-mfmovd): Resurrect and document.
3651 * doc/invoke.texi (-mfmovd): Likewise.
3652 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
f6c8c8fc 3653
c5269667 36542009-07-20 Jan Hubicka <jh@suse.cz>
3655
3656 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
3657 when handling SSA name.
3658
a5d536df 36592009-07-19 Jan Hubicka <jh@suse.cz>
3660
3661 PR tree-optimization/40676
3662 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
3663 virtual PHIs in empty BBs.
3664
dce31f46 36652009-07-18 Adam Nemet <anemet@caviumnetworks.com>
3666
3667 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
3668 re-expanded the compound use gen_lowpart instead to convert to the
3669 desired mode.
3670
4e0ce2fb 36712009-07-18 Adam Nemet <anemet@caviumnetworks.com>
3672
3673 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
3674 OUTER_CONST arguments.
3675 <LSHIFTRT>: Use them to allow widening if the bits shifted in from
3676 the new wider mode will be masked off.
3677 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
3678
be26a489 36792009-07-18 Adam Nemet <anemet@caviumnetworks.com>
3680
3681 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
3682 high-order bits are zero.
3683
5b46cc62 36842009-07-18 Adam Nemet <anemet@caviumnetworks.com>
3685
3686 * combine.c (simplify_shift_const_1): Split code to determine
3687 shift_mode into ...
3688 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the
3689 new bits shifted in are identical to the old sign bit.
3690
a09ce826 36912009-07-18 Richard Guenther <rguenther@suse.de>
3692
3693 PR c/40787
3694 * gimplify.c (gimplify_call_expr): Reject code using results from
3695 functions returning void.
3696
3e055d82 36972009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
3698
3699 * doc/md.texi: Document the new PowerPC "es" constraint.
3700 Document that "m" can include automodified addresses on this target,
3701 and explain how %U must be used. Extend the "Q" and "Z" documentation
3702 to suggest "es" as well as "m".
3703 * config/rs6000/constraints.md (es): New memory constraint.
3704 (Q, Z): Update strings to match new documentation.
3705
a3026c18 37062009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
3707
3708 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
3709 offset from virtual_stack_vars_rtx and arg_pointer_rtx.
3710 * config/rs6000/predicates.md (volatile_mem_operand): Use
3711 offsettable_nonstrict_memref_p.
3712 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
3713 (*floatunssidf2_internal): Likewise.
3714 (*fix_truncdfsi2_internal): Likewise.
3715 (*fix_trunctfsi2_internal): Likewise.
3716
970c146d 37172009-07-17 Anatoly Sokolov <aesok@post.ru>
3718
3719 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
3720 atmega32u2 devices.
3721 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3722
bfec3452 37232009-07-17 Richard Guenther <rguenther@suse.de>
3724
3725 PR c/40401
3726 * tree-pass.h (pass_diagnose_omp_blocks): Declare.
3727 (pass_warn_unused_result): Likewise.
3728 (TODO_set_props): Remove.
3729 * omp-low.c (diagnose_omp_structured_block_errors): Change to
3730 run as a pass.
3731 (pass_diagnose_omp_blocks): Define.
3732 * c-decl.c (pop_file_scope): Do not finalize the CU here.
3733 (c_gimple_diagnostics_recursively): Remove.
3734 (finish_function): Do not call it.
3735 (c_write_global_declarations): Continue after errors.
3736 Finalize the CU here.
3737 * c-gimplify.c (c_genericize): Do not gimplify here.
3738 * c-common.c (c_warn_unused_result): Move ...
3739 * tree-cfg.c (do_warn_unused_result): ... here.
3740 (run_warn_unused_result): New function.
3741 (gate_warn_unused_result): New function.
3742 (pass_warn_unused_result): New pass.
3743 * c-common.h (c_warn_unused_result): Remove.
3744 * flags.h (flag_warn_unused_result): Declare.
3745 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
3746 * opts.c (flag_warn_unused_result): Initialize to false.
3747 * toplev.c (compile_file): Add comment.
3748 * omp-low.c (create_omp_child_function): Do not register
3749 the function with the frontend.
3750 (diagnose_omp_structured_block_errors): Prepare to be
3751 called as optimization pass.
3752 (gate_diagnose_omp_blocks): New function.
3753 (pass_diagnose_omp_blocks): New pass.
3754 * cgraph.h (cgraph_optimize): Remove.
3755 (cgraph_analyze_function): Likewise.
3756 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
3757 * cgraphunit.c (cgraph_lower_function): Lower nested functions
3758 before their parents here.
3759 (cgraph_finalize_function): Not here.
3760 (cgraph_analyze_function): Gimplify functions here.
3761 (cgraph_finalize_compilation_unit): Continue after errors.
3762 Optimize the callgraph from here.
3763 (cgraph_optimize): Make static.
3764 * langhooks.c (write_global_declarations): Finalize the CU.
3765 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
3766 (gimplify_function_tree): Assert we gimplify only once.
3767 Set PROP_gimple_any property.
3768 * tree-nested.c (gimplify_all_functions): New function.
3769 (lower_nested_functions): Gimplify all nested functions.
3770 * gimple.h (diagnose_omp_structured_block_errors): Remove.
3771 * passes.c (init_optimization_passes): Add pass_warn_unused_result
3772 and pass_diagnose_omp_blocks after gimplification. Do not
3773 set TODO_set_props on all_lowering_passes.
3774 (execute_one_pass): Do not handle TODO_set_props.
3775 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
3776 (gimplify.o): Add tree-pass.h dependency.
3777 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
3778 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
3779 (unsave_r): Likewise.
3780 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
3781 temporary variable.
3782
3c337d70 37832009-07-17 Sandra Loosemore <sandra@codesourcery.com>
3784
3785 * doc/service.texi (Service): Restore previously removed link,
3786 which isn't broken after all.
3787
142d8c77 37882009-07-17 Richard Guenther <rguenther@suse.de>
3789
3790 PR tree-optimization/40321
3791 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
3792 PHI nodes to the maximal set.
3793 (make_values_for_phi): Add PHI arguments to the maximal set.
3794 (execute_pre): Dump PHI_GEN and the maximal set.
3795
39a1041d 37962009-07-17 Jakub Jelinek <jakub@redhat.com>
3797
3798 PR c++/40780
3799 * gimplify.c (gimplify_conversion): Don't change non-conversions into
3800 VIEW_CONVERT_EXPR.
3801
3e8e7577 38022009-07-16 Sandra Loosemore <sandra@codesourcery.com>
3803
3804 * doc/extend.texi (Nested Functions): Replace broken link with
3805 textual reference.
3806 * doc/service.texi (Service): Remove broken link.
3807
04700344 38082009-07-16 H.J. Lu <hongjiu.lu@intel.com>
3809
3810 PR bootstrap/40781
3811 * builtins.c (expand_builtin_memcmp): Use loc instead of
3812 EXPR_LOCATION (exp).
3813 (expand_builtin_strncmp): Likewise.
3814
389dd41b 38152009-07-17 Aldy Hernandez <aldyh@redhat.com>
3816 Manuel López-Ibáñez <manu@gcc.gnu.org>
3817
f6c8c8fc 3818 PR 40435
389dd41b 3819 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
3820 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
3821 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
3822 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
3823 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
3824 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
3825 tree-inline.c, c-common.c, c-common.h, gimple.c,
3826 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
3827 convert.c: Add location argument to fold_{unary,binary,ternary},
3828 fold_build[123], build_call_expr, build_size_arg,
3829 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
3830 fold_build1_initializer, fold_build2_initializer,
3831 fold_build3_initializer, fold_build_call_array,
3832 fold_build_call_array_initializer, fold_single_bit_test,
3833 omit_one_operand, omit_two_operands, invert_truthvalue,
3834 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
3835 combine_comparisons, fold_builtin_*, fold_call_expr,
3836 build_range_check, maybe_fold_offset_to_address, round_up,
3837 round_down.
3838
c1c67b4f 38392009-07-16 Jason Merrill <jason@redhat.com>
3840
3841 PR libstdc++/37907
3842 * c-common.c (c_common_reswords): Add __is_standard_layout
3843 and __is_trivial.
3844 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
3845 * doc/implement-cxx.texi: New.
3846 * doc/gcc.texi: Include it.
3847
f3269732 38482009-07-16 DJ Delorie <dj@redhat.com>
3849
3850 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
3851 compares that may be indirectly affected by previous instructions.
3852
c699fab8 38532009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3854
3855 * builtins.c (do_mpc_arg2): New.
3856 (fold_builtin_2): Fold builtin cpow.
3857 * real.h (HAVE_mpc_pow): New.
3858
c8798ca6 38592009-07-16 Bingfeng Mei <bmei@broadcom.com>
3860
8097362b 3861 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
3862 comparison to skip unprofitable schedule
3863
d05a1771 38642009-07-16 Simon Baldwin <simonb@google.com>
3865
3866 * gcc.c (option_map): New flag -no-canonical-prefixes.
3867 * (display_help): Print help text for new flag.
3868 * (process_command): Move options translation and language specifics
3869 and handle new flag early. Use it to set a function pointer to a
3870 prefix builder. Replace make_relative_prefix calls with calls to
3871 the function pointed to. Ignore new flag in regular options handling.
3872 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
3873
91f16f16 38742009-07-15 DJ Delorie <dj@redhat.com>
3875
3876 * config/mep/mep.md (sibcall_internal): Change register to avoid
3877 argument registers.
3878 (sibcall_value_internal): Likewise.
3879
705e8c40 38802009-07-15 Eric Botcazou <ebotcazou@adacore.com>
3881
3882 PR rtl-optimization/40710
3883 * resource.c (mark_target_live_regs): Reset DF problem to LR.
3884
4a02ea0c 38852009-07-15 Adam Nemet <anemet@caviumnetworks.com>
3886
3887 * config/mips/mips.md (*extenddi_truncate<mode>,
3888 *extendsi_truncate<mode>): Change type attribute to move_type
3889 with shift_shift. Split out code handling exts from here ...
3890 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
3891 pattern.
3892 (*extendhi_truncateqi): Change type attribute to move_type with
3893 shift_shift. Split out code handling exts from here ...
3894 (*extendhi_truncateqi_exts): ... to this new pattern.
3895
ddb24cdb 38962009-07-15 Uros Bizjak <ubizjak@gmail.com>
07ddf75c 3897
ddb24cdb 3898 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
3899 instead of "and" with inverted sign bit mask value. Use
3900 "nonimmediate_operand" for operand 1 and operand 2 predicate.
3901 Allocate registers only for operand 4 and operand 5.
07ddf75c 3902
0962300c 39032009-07-15 Jakub Jelinek <jakub@redhat.com>
3904
3905 PR middle-end/40747
3906 * fold-const.c (fold_cond_expr_with_comparison): When folding
3907 < and <= to MIN, make sure the MIN uses the same type as the
3908 comparison's operands.
3909
1c274529 39102009-07-15 Richard Earnshaw <rearnsha@arm.com>
3911
3912 * arm.md (ior_xor): New code iterator.
3913 (split for ior/xor with shift and zero-extend): New split pattern.
3914 * arm/predicates.md (subreg_lowpart_operator): New special predicate.
3915
96803d15 39162009-07-15 Richard Guenther <rguenther@suse.de>
3917
3918 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
3919 offset member.
3920
0f2b32ac 39212009-07-15 Richard Guenther <rguenther@suse.de>
3922
3923 PR middle-end/40753
07ddf75c 3924 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
0f2b32ac 3925
d8758d91 39262009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3927
3928 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
3929 handle 2.6.30 kernel.
3930
58443085 39312009-07-15 DJ Delorie <dj@redhat.com>
3932
3933 * config/mep/mep.md (sibcall_internal): Change register to allow
3934 for 24-bit addresses.
3935 (sibcall_value_internal): Likewise.
3936
6298247a 39372009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com>
f6c8c8fc 3938
07ddf75c 3939 * doc/invoke.texi: Added descriptions of the scheduling heuristics
3940 that are enabled/disabled by the flags introduced by a previous patch.
f6c8c8fc 3941
93608695 39422009-07-14 DJ Delorie <dj@redhat.com>
3943
3944 * config/mep/mep.md (sibcall_internal): Include non-toggling
3945 non-jmp case.
3946 (sibcall_value_internal): Likewise.
3947
c02b6f4e 39482009-07-14 Taras Glek <tglek@mozilla.com>
3949 Rafael Espindola <espindola@google.com>
3950
3951 * doc/sourcebuild.texi: Document install-plugin target.
3952 * configure.ac: Added install-plugin target to language makefiles.
3953 * configure: Regenerate.
3954 * Makefile.in: (install-plugin): Install more headers,
3955 depend on lang.install-plugin.
3956
0aec0de8 39572009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3958
3959 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
3960 translation.
f6c8c8fc 3961
2053b71f 39622009-07-14 DJ Delorie <dj@redhat.com>
3963
3964 * config/mep/mep.c (mep_vliw_jmp_match): New function.
3965 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
3966 * config/mep/mep.md (sibcall_internal): Change test from
3967 mep_vliw_mode_match to mep_vliw_jmp_match.
3968 (sibcall_value_internal): Likewise.
3969
3d86078b 39702009-07-14 Uros Bizjak <ubizjak@gmail.com>
3971
3972 * config/i386/sse.md (copysign<mode>3): New expander.
3973 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
3974 * config/i386/i386.c (ix86_build_signbit_mask): Make public.
3975 Use ix86_build_const_vector.
3976 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
3977 IX86_BUILTIN_CPYSGNPD.
3978 (builtin_description): Add __builtin_ia32_copysignps and
3979 __builtin_ia32_copysignpd.
3980 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
3981 and BUILT_IN_COPYSIGNF.
3982
7abca321 39832009-07-13 Jason Merrill <jason@redhat.com>
3984
3985 * builtins.c (can_trust_pointer_alignment): New fn.
3986 (get_pointer_alignment): Factor it out from here.
3987 * tree.h: Declare it.
3988
519c9794 39892009-07-14 David Edelsohn <edelsohn@gnu.org>
3990
3991 * config/rs6000/predicates.md (offsettable_mem_operand): Test
3992 RTX_AUTOINC class.
3993
75c0b6e7 39942009-07-14 Dodji Seketeli <dodji@redhat.com>
3995
3996 PR debug/40705
3997 PR c++/403057
3998 * dwarf2.out.c (gen_type_die_with_usage): Added comment.
3999
b6da67dc 40002009-07-14 Richard Guenther <rguenther@suse.de>
3d86078b 4001 Andrey Belevantsev <abel@ispras.ru>
b6da67dc 4002
4003 PR middle-end/40745
4004 * cfgexpand.c (partition_stack_vars): Do not bother to update
4005 alias information when not optimizing.
4006
3a443843 40072009-07-14 Richard Guenther <rguenther@suse.de>
ea3bb9f4 4008 Andrey Belevantsev <abel@ispras.ru>
3a443843 4009
4010 * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
4011 (pt_solution_set): Likewise.
4012 * tree-ssa-alias.c (refs_may_alias_p_1): Export.
4013 * tree-ssa-structalias.c (pt_solution_set): New function.
4014 * final.c (rest_of_clean_state): Free SSA data structures.
4015 * print-rtl.c (print_decl_name): Remove.
4016 (print_mem_expr): Implement in terms of print_generic_expr.
4017 * alias.c (ao_ref_from_mem): New function.
4018 (rtx_refs_may_alias_p): Likewise.
4019 (true_dependence): Query alias-export info.
4020 (canon_true_dependence): Likewise.
4021 (write_dependence_p): Likewise.
4022 * tree-dfa.c (get_ref_base_and_extent): For void types leave
4023 size unknown.
4024 * emit-rtl.c (component_ref_for_mem_expr): Remove.
4025 (mem_expr_equal_p): Use operand_equal_p.
4026 (set_mem_attributes_minus_bitpos): Do not use
4027 component_ref_for_mem_expr.
4028 * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
4029 (update_alias_info_with_stack_vars): Likewise.
4030 (partition_stack_vars): Call update_alias_info_with_stack_vars.
4031 * tree-ssa.c (delete_tree_ssa): Do not release SSA names
4032 explicitly nor clear stmt operands.
4033 Free the decl-to-pointer map.
4034 * tree-optimize.c (execute_free_datastructures): Do not free
4035 SSA data structures here.
4036 * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
4037 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
4038 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
4039 dependencies.
4040 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
4041
28767f83 40422009-07-13 DJ Delorie <dj@redhat.com>
4043
dd20d2ca 4044 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
4045 unrolling at the right iteration count.
4046
28767f83 4047 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
4048 calculations.
4049
4d569386 40502009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
f6c8c8fc 4051
3d86078b 4052 * haifa-sched.c (rank_for_schedule): Introduced flags to
4053 enable/disable individual scheduling heuristics.
4054 * common.opt: Introduced flags to enable/disable individual
f6c8c8fc 4055 heuristics in the scheduler.
3d86078b 4056 * doc/invoke.texi: Introduced flags to enable/disable individual
4057 heuristics in the scheduler.
f6c8c8fc 4058
b20cb873 40592009-07-13 Kai Tietz <kai.tietz@onevision.com>
4060
4061 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
4062 config/i386/mingw-tls.c.
4063 * config/i386/mingw-tls.c: Removed.
4064
c0a0357c 40652009-07-13 Ira Rosen <irar@il.ibm.com>
4066
f6c8c8fc 4067 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
c0a0357c 4068 checks access only relevant statements.
4069 (vectorizable_reduction): Likewise.
4070
ce663cb5 40712009-07-12 Kai Tietz <kai.tietz@onevision.com>
4072
4073 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
4074 just for 32-bit case.
4075
504e084a 40762009-07-12 Jan Hubicka <jh@suse.cz>
4077
4078 PR tree-optimization/40585
4079 * except.c (expand_resx_expr): When there already is resume
4080 instruction, produce linked list.
4081 (build_post_landing_pads): Assert that resume is empty.
4082 (connect_post_landing_pads): Handle resume lists.
4083 (dump_eh_tree): Dump resume list.
4084
7aa0d350 40852009-07-12 Ira Rosen <irar@il.ibm.com>
4086
4087 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
4088 with additional argument.
7c1037d2 4089 * tree-vectorizer.h (enum vect_def_type): Add
7aa0d350 4090 vect_double_reduction_def.
4091 (vect_is_simple_reduction): Add argument.
7c1037d2 4092 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
7aa0d350 4093 indentation.
4094 (vect_analyze_scalar_cycles_1): Detect double reduction. Call
4095 vect_is_simple_reduction with additional argument.
4096 (vect_analyze_loop_operations): Handle exit phi nodes in case of
4097 double reduction.
4098 (reduction_code_for_scalar_code): Handle additional codes by
4099 returning ERROR_MARK for them. Fix comment and indentation.
4100 (vect_is_simple_reduction): Fix comment, add argument to specify
4101 double reduction. Detect double reduction.
4102 (get_initial_def_for_induction): Fix indentation.
4103 (get_initial_def_for_reduction): Fix comment and indentation.
4104 Handle double reduction. Create initial definitions that do not
4105 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
4106 (vect_create_epilog_for_reduction): Fix comment, add argument to
4107 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
4108 epilogue result extraction. Create double reduction phi node and
4109 replace relevant uses.
4110 (vectorizable_reduction): Call vect_is_simple_reduction with
4111 additional argument. Fix indentation. Update epilogue code treatment
7c1037d2 4112 according to the changes in reduction_code_for_scalar_code. Check
7aa0d350 4113 for double reduction. Call vect_create_epilog_for_reduction with
4114 additional argument.
4115 * tree-vect-stmts.c (process_use): Handle double reduction, update
4116 documentation.
4117 (vect_mark_stmts_to_be_vectorized): Handle double reduction.
4118 (vect_get_vec_def_for_operand): Likewise.
4119
24fb1d3f 41202009-07-12 Danny Smith <dansmister@gmail.com>
4121
4122 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
4123 dllexport if !TREE_PUBLIC.
4124 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
4125
00abffbf 41262009-07-11 Anatoly Sokolov <aesok@post.ru>
4127
4128 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
4129 (avr_extra_arch_macro) Remove declatation.
4130 * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
4131 (avr_extra_arch_macro) Declare as static.
4132 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
4133
6af7af33 41342009-07-11 Jan Hubicka <jh@suse.cz>
4135
4136 PR middle-end/48388
4137 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
4138
738ab6f5 41392009-07-11 Jakub Jelinek <jakub@redhat.com>
4140
04ef4ca6 4141 PR debug/40713
4142 * dwarf2out.c (dw_fde_struct): Add in_std_section and
4143 cold_in_std_section bits.
4144 (dwarf2out_begin_prologue): Initialize them.
4145 (dwarf2out_finish): Don't emit FDE range into .debug_ranges
4146 if already covered by text_section or cold_text_section range.
4147
8645d3e7 4148 PR rtl-optimization/40667
4149 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
4150 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
4151 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
4152 * config/i386/i386.c (ix86_minimum_alignment): New function.
4153 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
4154 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
4155 * emit-rtl.c (gen_reg_rtx): Likewise.
4156 * function.c (assign_parms): Likewise. If nominal_type needs
4157 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
4158 rather than passed_type's alignment.
4159
738ab6f5 4160 PR target/40668
4161 * function.c (assign_parm_setup_stack): Adjust
4162 MEM_OFFSET (data->stack_parm) if promoted_mode is different
4163 from nominal_mode on big endian.
4164
88e81a69 41652009-07-11 Paolo Bonzini <bonzini@gnu.org>
4166
4167 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
4168
1756c1fe 41692009-07-10 DJ Delorie <dj@redhat.com>
4170
4171 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
4172
6895d90f 41732009-07-10 Mark Mitchell <mark@codesourcery.com>
4174
4175 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
4176 attribute.
4177 (thumb2_cbnz): Likewise.
4178
1af9587c 41792009-07-10 David Daney <ddaney@caviumnetworks.com>
4180
4181 PR target/39079
4182 * config.gcc (supported_defaults): Add synci.
4183 (with_synci): Add validation.
4184 (all_defaults): Add synci.
4185 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
4186 ISA_HAS_SYNCI.
4187 (synci): Same.
4188 * config/mips/mips.opt (msynci): New option.
4189 * config/mips/mips.c (mips_override_options): Warn on use of
4190 -msynci for targets that do now support it.
4191 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
4192 msynci.
4193 * gcc/doc/invoke.texi (-msynci): Document the new option.
4194 * doc/install.texi (--with-synci): Document the new option.
4195
b34a77f7 41962009-07-10 Richard Guenther <rguenther@suse.de>
4197
4198 PR tree-optimization/40496
4199 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
4200 the PHI result with a compatible type.
4201
af5f5e79 42022009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
4203
4204 PR 25509
4205 PR 40614
4206 * c.opt (Wunused-result): New.
4207 * doc/invoke.texi: Document it.
4208 * c-common.c (c_warn_unused_result): Use it.
4209
48e9be89 42102009-07-09 DJ Delorie <dj@redhat.com>
4211
7c88e513 4212 * targhooks.c (default_target_can_inline_p): Rename from
4213 default_target_option_can_inline_p.
4214 * targhooks.h (default_target_can_inline_p): Likewise.
4215 * target-def.h (TARGET_CAN_INLINE_P): Rename from
4216 TARGET_OPTION_CAN_INLINE_P.
4217 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
4218 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
4219 (mep_target_can_inline_p): Rename from
4220 mep_target_option_can_inline_p.
4221
4222 PR target/40626
1f47850b 4223 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
4224 registers used to pass vectors.
4225
48e9be89 4226 * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
4227
bde36f4a 42282009-07-09 Tom Tromey <tromey@redhat.com>
4229
4230 * unwind-dw2-fde-darwin.c: Include dwarf2.h.
4231 * config/mmix/mmix.c: Include dwarf2.h.
4232 * config/rs6000/darwin-fallback.c: Include dwarf2.h.
4233 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
4234 * config/sh/sh.c: Include dwarf2.h.
4235 * config/i386/i386.c: Include dwarf2.h.
4236 * Makefile.in (DWARF2_H): Remove 'elf'.
4237 * except.c: Include dwarf2.h.
4238 * unwind-dw2.c: Include dwarf2.h.
4239 * dwarf2out.c: Include dwarf2.h.
4240 * unwind-dw2-fde-glibc.c: Include dwarf2.h.
4241 * unwind-dw2-fde.c: Include dwarf2.h.
4242 * dwarf2asm.c: Include dwarf2.h.
4243
4db82bc9 42442009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
7c1037d2 4245
4db82bc9 4246 * haifa-sched.c (insn_finishes_cycle_p): New static function.
7c1037d2 4247 (max_issue): Use it.
4248 * sched-int.h (struct sched_info: insn_finishes_block_p): New
4249 scheduler hook.
4250 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
4251 (region_sched_info): Update.
4252 * sched-ebb.c (ebb_sched_info): Update.
4253 * modulo-sched.c (sms_sched_info): Update.
4db82bc9 4254 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
4255
30b38676 42562009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
4257
4258 * varasm.c (build_constant_desc): Don't share RTL in pool entries.
75abcc2a 4259
42602009-07-09 Basile Starynkevitch <basile@starynkevitch.net>
4261
f6c8c8fc 4262 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
75abcc2a 4263
507d706c 42642009-07-09 Jakub Jelinek <jakub@redhat.com>
4265
4266 PR middle-end/40692
4267 * fold-const.c (fold_cond_expr_with_comparison): Don't replace
4268 arg1 with arg01 if arg1 is already INTEGER_CST.
4269
85ece28d 42702009-07-08 Adam Nemet <anemet@caviumnetworks.com>
4271
7c1037d2 4272 * simplify-rtx.c (simplify_binary_operation_1) <AND>:
4273 Transform (and (truncate)) into (truncate (and)).
85ece28d 4274
658e1523 42752009-07-08 Adam Nemet <anemet@caviumnetworks.com>
4276
4277 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
4278 creating LHS paradoxical subregs. Fix surrounding returns to
4279 use NULL_RTX rather than 0.
4280
a71ff2a7 42812009-07-08 DJ Delorie <dj@redhat.com>
4282
4283 * config/mep/mep.c: (mep_option_can_inline_p): New.
4284 (TARGET_OPTION_CAN_INLINE_P): Define.
4285
fbff7494 42862009-07-08 Mark Wielaard <mjw@redhat.com>
4287
4288 PR debug/40659
4289 * dwarf2out.c (add_data_member_location_attribute): When we have
4290 only a constant offset don't emit a new location description using
4291 DW_OP_plus_uconst, but just add the constant with add_AT_int, when
4292 dwarf_version > 2.
4293
fd0652b1 42942009-07-08 Richard Henderson <rth@redhat.com>
4295
4296 PR target/38900
4297 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
4298 (enum reg_class): Add CLOBBERED_REGS.
4299 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
4300 * config/i386/i386.c (ix86_conditional_register_usage): Moved
4301 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
4302 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls.
4303 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't
4304 force 64-bit sibcalls into R11.
4305 * config/i386/constraints.md (U): New constraint.
4306 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
4307 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
4308 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
4309
10230637 43102009-07-08 Shujing Zhao <pearly.zhao@oracle.com>
4311
4312 * basic-block.h (dump_regset, debug_regset): Remove duplicate
4313 prototypes.
4314 * c-objc-common.h (c_initialize_diagnostics): Ditto.
4315 * ebitmap.h (dump_ebitmap): Ditto.
4316 * optabs.h (optab_libfunc): Ditto.
4317 * tree.h (tree_expr_nonzero_warnv_p): Ditto.
4318 * tree-flow.h (vect_can_force_dr_alignment_p,
658e1523 4319 get_vectype_for_scalar_type): Ditto.
10230637 4320 (vectorize_loops): Move prototype to ...
658e1523 4321 * tree-vectorizer.h: ... here. Also, adjust comment.
10230637 4322 (vect_set_verbosity_level): Remove duplicate prototype.
4323 * tree-ssa-loop.c: Include tree-vectorizer.h.
4324 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
4325
3abce6d8 43262009-07-08 Nick Clifton <nickc@redhat.com>
4327
4328 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
4329 forward slash.
4330
aecef6a2 43312009-07-08 DJ Delorie <dj@redhat.com>
4332
4333 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
4334 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
4335 cpmovtocc_P0S_P1): Mark volatile. Note which registers are
4336 written to.
4337 * config/mep/intrinsics.md: Regenerated.
4338 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
4339 registers when asm() or calls are detected.
658e1523 4340
e627cda1 43412009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
4342
4343 PR c++/31246
4344 * gimplify.c (gimplify_expr): Propagate no_warning flag when
4345 gimplifying.
4346 * gimple (gimple_build_call_from_tree): Likewise.
4347 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
4348 no_warning flag before warning.
658e1523 4349
1cf1742e 43502009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
4351
4352 * tree.c (set_expr_locus): Remove.
4353 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
4354 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by
4355 EXPR_LOCATION.
4356 * gimplify.c (internal_get_tmp_var): Likewise.
4357 (gimplify_call_expr): Likewise.
4358 (gimplify_one_sizepos): Likewise.
4359
75f6aa15 43602009-07-07 Eric Botcazou <ebotcazou@adacore.com>
4361
4362 PR debug/40666
4363 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
4364 to variables for debugging purposes.
4365
b475d084 43662009-06-23 Mark Loeser <mark@halcy0n.com>
4367
4368 PR build/40010
4369 * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
4370
11cd5422 43712009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
4372
4373 * pretty-print.c (pp_base_format): Remove %J.
4374 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
4375 gcc_cxxdiag_char_table): Likewise.
4376 (init_dynamic_diag_info): Likewise.
b475d084 4377
a426d5d9 43782009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
4379
4380 * pretty-print.c (pp_base_format): Remove %H.
4381 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
4382 gcc_cxxdiag_char_table): Likewise.
4383 (init_dynamic_diag_info): Likewise.
4384 * config/mep/mep.c (mep_select_section): Likewise.
4385
21486db3 43862009-07-07 Duncan Sands <baldrick@free.fr>
4387
7c1037d2 4388 * final.c (pass_clean_state): Give the pass a name.
4389 * passes.c (pass_rest_of_compilation): Likewise.
4390 * tree-optimize.c (pass_all_optimizations): Likewise.
21486db3 4391
8b52eeb5 43922009-07-07 H.J. Lu <hongjiu.lu@intel.com>
4393
4394 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
4395 an extra 'decl' for error_at.
4396
6ecef788 43972009-07-07 Jakub Jelinek <jakub@redhat.com>
4398
4399 PR middle-end/40669
4400 * tree-tailcall.c (adjust_return_value_with_ops,
4401 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
4402 if it has complex or vector type.
4403
6acfe4cd 44042009-07-07 Olivier Hainque <hainque@adacore.com>
4405
8b52eeb5 4406 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
4407 pthread symbols.
6acfe4cd 4408
a933e912 44092009-07-07 Basile Starynkevitch <basile@starynkevitch.net>
4410
4411 * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
4412
712d2297 44132009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
4414
7c1037d2 4415 * cgraphunit.c: Replace %J by an explicit location. Update all calls.
712d2297 4416 * c-decl.c: Likewise.
4417 * function.c: Likewise.
4418 * varasm.c: Likewise.
4419 * tree-ssa.c: Likewise.
4420 * c-common.c: Likewise.
4421 * tree-cfg.c: Likewise.
4422 * config/spu/spu.c: Likewise.
4423 * config/ia64/ia64.c: Likewise.
4424 * config/v850/v850.c: Likewise.
4425
975b4396 44262009-07-06 DJ Delorie <dj@redhat.com>
4427
4428 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
4429 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
4430 unspecified accesses to control registers.
4431 * config/mep/intrinsics.md: Regenerate.
4432 * config/mep/intrinsics.h: Regenerate.
4433 * config/mep/mep-intrin.h: Regenerate.
658e1523 4434
5fb6a912 44352009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
4436
4437 * c-lex.c: Replace %H by an explicit location. Update all calls.
4438 * c-common.c: Likewise.
4439 * c-decl.c: Likewise.
4440 * c-typeck.c: Likewise.
4441 * fold-const.c: Likewise.
4442 * gimplify.c: Likewise.
4443 * stmt.c: Likewise.
4444 * tree-cfg.c: Likewise.
4445 * tree-ssa-loop-niter.c: Likewise.
4446 * tree-vrp.c: Likewise.
4447 * value-prof.c: Likewise.
4448
241b2d37 44492009-07-06 Diego Novillo <dnovillo@google.com>
4450
4451 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
4452 if it has one. Handle cases where VAR does not have an
4453 annotation or cfun is NULL.
4454
8dfbefd8 44552009-07-06 Diego Novillo <dnovillo@google.com>
4456
4457 * tree.c: Include debug.h.
4458 (initialize_tree_contains_struct): New.
4459 (init_ttree): Call it.
4460 (tree_node_structure_for_code): Factor out of ...
4461 (tree_node_structure): ... here.
4462 * treestruct.def (TS_PHI_NODE): Remove.
4463 (TS_GIMPLE_STATEMENT): Remove.
4464
77c223c3 44652009-07-06 Diego Novillo <dnovillo@google.com>
4466
7c1037d2 4467 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
77c223c3 4468 (debug_tree_chain): Handle cycles.
4469
c4af075b 44702009-07-06 Nick Clifton <nickc@redhat.com>
4471 DJ Delorie <dj@redhat.com>
4472
4473 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
4474 __FMOVD_ENABLED__ is defined.
4475 * config/sh/sh.h
4476 (TARGET_FMOVD): Provide a default definition.
4477 (MASK_FMOVD): Likewise.
4478 (TARGET_CPU_CPP_BUILTINS): Define
4479 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
4480 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
7c1037d2 4481 two fmov instructions depending upon whether TARGET_FMOVD is enabled.
c4af075b 4482 (split for DF load from memory into register): Also handle
4483 MEMs which consist of REG+DISP addressing.
4484 (split for DF store from register to memory): Likewise.
4485 (movsf_ie): Always use single fp_mode.
4486 * config/sh/sh.c (sh_override_options): Do not automatically
4487 enable TARGET_MOVD for the SH2A when supporting doubles - leave
4488 that to the -mfmovd command line switch.
4489 (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
4490 (fldi_ok): Always allow.
4491 * config/sh/sh.opt (mfmovd): Remove this switch.
4492 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
4493
a3150208 44942009-07-06 J"orn Rennecke <joern.rennecke@arc.com>
4495 Kaz Kojima <kkojima@gcc.gnu.org>
4496
4497 PR rtl-optimization/30807
4498 * postreload.c (reload_combine): For every new use of REG_SUM,
4499 record the use of BASE.
4500
3e02d180 45012009-07-06 Jan Hubicka <jh@suse.cz>
4502
4503 * params.def: Revert my accidental commit at 2009-06-30.
4504
3535bad9 45052009-07-04 Ian Lance Taylor <iant@google.com>
4506
4507 PR target/40636
4508 * config/i386/msformat-c.c (mingw_format_attributes): Declare as
4509 EXPORTED_CONST.
4510 (mingw_format_attribute_overrides): Likewise.
4511
f3a4b1fb 45122009-07-04 Jakub Jelinek <jakub@redhat.com>
4513
4514 PR debug/40596
4515 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
4516 don't check cfa.reg. Instead of cfa.indirect use
4517 fde && fde->drap_reg != INVALID_REGNUM test.
4518
461ada8d 45192009-07-04 Eric Botcazou <ebotcazou@adacore.com>
4520
4521 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
4522
ccce8d98 45232009-07-03 Vladimir Makarov <vmakarov@redhat.com>
4524
4525 PR target/40587
7c1037d2 4526 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
658e1523 4527
42d9ffa5 45282009-07-03 Richard Guenther <rguenther@suse.de>
4529
4530 PR tree-optimization/40640
4531 * tree-switch-conversion.c (build_arrays): Perform arithmetic
4532 in original type.
4533
89c679bd 45342009-07-03 Jan Hubicka <jh@suse.cz>
4535
4536 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
4537 for size, reduce amount of inlining.
4538
b5a4c072 45392009-07-03 Richard Guenther <rguenther@suse.de>
4540
4541 PR middle-end/34163
7c1037d2 4542 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
4543 if t +- x is known to not overflow and the conversion widens the
4544 operation.
b5a4c072 4545 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
4546
b1887855 45472009-07-03 Jan Hubicka <jh@suse.cz>
4548
4549 * ipa-pure-const.c (analyze): Update loop optimizer init.
4550 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
4551 try_remove_empty_loop, remove_empty_loops): Remove.
4552 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
4553 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
4554 to mark regular loops as neccesary.
4555 (degenerate_phi_p): New function.
4556 (propagate_necessity, remove_dead_phis): Use it.
4557 (forward_edge_to_pdom): Likewise.
4558 (eliminate_unnecessary_stmts): Take care to remove uses of results of
4559 virtual PHI nodes that became unreachable.
4560 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
4561 * tree-flow.h (remove_empty_loops): Remove.
4562 * passes.c (init_optimization_passes): Remove.
4563
d0b2c064 45642009-07-03 Uros Bizjak <ubizjak@gmail.com>
4565
4566 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
4567 can_create_pseudo_p.
4568 (*fix_trunc<mode>_i387_1): Ditto.
4569 (*floathi<mode>2_1): Ditto.
4570 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
4571 (*fistdi2_1): Ditto.
4572 (*fist<mode>2_1): Ditto.
4573 (frndintxf2_floor): Ditto.
4574 (*fist<mode>2_floor_1): Ditto.
4575 (frndintxf2_ceil): Ditto.
4576 (*fist<mode>2_ceil_1): Ditto.
4577 (frndintxf2_trunc): Ditto.
4578 (frndintxf2_mask_pm): Ditto.
4579 (fxam<mode>2_i387_with_temp): Ditto.
4580 * config/i386/sse.md (mulv16qi3): Ditto.
4581 (*sse2_mulv4si3): Ditto.
4582 (mulv2di3): Ditto.
4583 (sse4_2_pcmpestr): Ditto.
4584 (sse4_2_pcmpistr): Ditto.
4585
a336775c 45862009-07-03 Jan Hubicka <jh@suse.cz>
4587
4588 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
4589 (mark_stmt_necessary): Set it.
4590 (mark_operand_necessary): Set it.
4591 (mark_control_dependent_edges_necessary): Set it.
4592 (mark_virtual_phi_result_for_renaming): New function.
4593 (get_live_post_dom): New function.
4594 (forward_edge_to_pdom): New function.
4595 (remove_dead_stmt): Fix handling of control dependences.
4596 (tree_dce_init): Init new bitmap.
4597 (tree_dce_done): Free it.
4598
86fd2723 45992009-07-02 Richard Guenther <rguenther@suse.de>
4600
4601 PR bootstrap/40617
4602 * tree-ssa-structalias.c (new_var_info): Initialize
4603 is_restrict_var.
4604
3ae61172 46052009-07-02 Jan Hubicka <jh@suse.cz>
4606
4607 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
4608 local.
4609
d68bc06a 46102009-07-02 Paolo Bonzini <bonzini@gnu.org>
4611
4612 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
4613 instead of recomputing it. Adjust calls.
4614 (emit_store_flag): Adjust recursive calls.
4615
9b68b56b 46162009-07-02 Richard Guenther <rguenther@suse.de>
4617
4618 * tree-ssa-live.c (remove_unused_locals): Do not remove
4619 heap variables.
4620 * tree-ssa-structalias.c (handle_lhs_call): Delay setting
4621 of DECL_EXTERNAL for HEAP variables.
4622 (compute_points_to_sets): Set DECL_EXTERNAL for escaped
4623 HEAP variables. Do not adjust RESTRICT vars.
4624 (find_what_var_points_to): Nobody cares if something
4625 points to READONLY.
4626
4ad2fc34 46272009-07-02 Ben Elliston <bje@au.ibm.com>
4628
4629 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
4630 pc_low and pc_high declarations to the top of the function.
4631
32a5f905 46322009-07-01 DJ Delorie <dj@redhat.com>
4633
4634 * config/mep/mep.c (mep_handle_option): Leave IVC2 control
4635 registers as fixed.
d0b2c064 4636 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
32a5f905 4637 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
4638 unspecified accesses to control registers.
4639 * config/mep/intrinsics.md: Regenerate.
4640 * config/mep/intrinsics.h: Regenerate.
4641 * config/mep/mep-intrin.h: Regenerate.
658e1523 4642
7da17dca 46432009-07-01 Anthony Green <green@moxielogic.com>
4644
4645 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
4646 instruction when possible.
4647 (moxie_expand_prologue): Ditto. Also, save an instruction and
658e1523 4648 some complexity by popping off of $r12 instead of $sp.
7da17dca 4649 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two
4650 operands.
658e1523 4651
c009a3ec 46522009-07-01 Richard Henderson <rth@redhat.com>
4653
4654 PR bootstrap/40347
4655 * function.c (reposition_prologue_and_epilogue_notes): If epilogue
4656 contained no insns, reposition note before last insn.
4657
8d2a8041 46582009-07-01 Richard Henderson <rth@redhat.com>
4659
4660 PR debug/40431
4661 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
4662 DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
4663
56df51d8 46642009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
4665
4666 PR bootstrap/40558
4667 * config/rs6000/rs6000.c (print_operand): Undo change that breaks
4668 darwin9 for printing reg addresses with %y.
4669
3f03d2db 46702009-07-01 Adam Nemet <anemet@caviumnetworks.com>
4671
4672 * combine.c (force_to_mode): Handle TRUNCATE. Factor out
4673 truncation from operands in binary operations.
4674
98e07982 46752009-07-01 Adam Nemet <anemet@caviumnetworks.com>
4676
4677 Revert:
4678 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
4679 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
4680 subreg of op0 to the original op0.
4681
4682 * expmed.c (store_bit_field_1): Use a temporary as the destination
4683 instead of a paradoxical subreg when we need to truncate the result.
4684
65232149 46852009-07-01 DJ Delorie <dj@redhat.com>
4686
d0b2c064 4687 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
4688 names to VLIW variants.
65232149 4689 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
4690 * config/mep/intrinsics.md: Regenerate.
4691 * config/mep/intrinsics.h: Regenerate.
4692 * config/mep/mep-intrin.h: Regenerate.
4693
92ae5ac1 46942009-07-01 Jakub Jelinek <jakub@redhat.com>
4695
4696 PR debug/40462
4697 * jump.c (returnjump_p): Revert last patch.
4698 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
4699
372b3fe2 47002009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4701
c7aa0bd1 4702 PR target/40575
4703 * pa.md (casesi32p): Use jump table label to determine the offset
4704 of the jump table.
4705 (casesi64p): Likewise.
4706
d0b2c064 4707 * pa.c (forward_branch_p): Return bool type. Use instruction
4708 addresses when available. Assert that INSN has a jump label.
372b3fe2 4709 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
4710 have a jump label.
4711
9df58cd1 47122009-07-01 Richard Guenther <rguenther@suse.de>
4713
4714 PR tree-optimization/19831
4715 * tree-ssa-dce.c (propagate_necessity): Calls to functions
d0b2c064 4716 that only act as barriers do not make any previous stores necessary.
9df58cd1 4717 * tree-ssa-structalias.c (handle_lhs_call): Delay making
4718 HEAP variables global, do not add a constraint from nonlocal.
4719 (find_func_aliases): Handle escapes through return statements.
4720 (compute_points_to_sets): Make escaped HEAP variables global.
4721
7d4098a0 47222009-07-01 Paolo Bonzini <bonzini@gnu.org>
4723
4724 PR bootstrap/40597
4725 * expmed.c (emit_store_flag): Perform a conversion if necessary,
4726 after reducing a DImode cstore to SImode.
4727
7dbdd983 47282009-07-01 Paolo Bonzini <bonzini@gnu.org>
4729
4730 * expr.c (expand_expr_real_1): Reinstate fallthrough to
4731 TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
4732
91ec62fb 47332009-07-01 Maciej W. Rozycki <macro@linux-mips.org>
4734
4735 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1.
4736 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the
4737 to 0.
4738 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
4739 and umod_optab if TARGET_BSD_DIVMOD.
4740 * config/vax/lib1funcs.asm: New file.
4741 * config/vax/t-linux: New file.
4742 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
4743
c899341f 47442009-06-30 Jakub Jelinek <jakub@redhat.com>
4745
57d0100f 4746 PR c++/40566
4747 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
4748 to type arguments that have void type.
4749
c899341f 4750 PR debug/40573
4751 * dwarf2out.c (gen_formal_parameter_die): Call
4752 equate_decl_number_to_die if node is different from origin.
4753
76bfc156 47542009-06-30 Anthony Green <green@moxielogic.com>
4755
4756 Clean up moxie port for --enable-build-with-cxx.
4757 * config/moxie/moxie.c (moxie_function_value): First two
4758 parameters are const_tree, not tree.
4759 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
4760 (REG_CLASS_NAMES): Ditto.
4761 (REGNO_REG_CLASS): Ditto.
4762 * config/moxie/moxie-protos.h (moxie_override_options): Declare.
4763 (moxie_function_value): Fix constyness of arguments.
4764
4189e677 47652009-06-30 Eric Botcazou <ebotcazou@adacore.com>
4766
4767 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
4768 finalize_size_functions before further processing.
4769 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
4770 (variable_size): Call self_referential_size on size expressions
4771 that contain a PLACEHOLDER_EXPR.
4772 (size_functions): New static variable.
4773 (copy_self_referential_tree_r): New static function.
4774 (self_referential_size): Likewise.
4775 (finalize_size_functions): New global function.
4776 * tree.c: Include tree-inline.h.
4777 (push_without_duplicates): New static function.
4778 (find_placeholder_in_expr): New global function.
4779 (substitute_in_expr) <tcc_declaration>: Return the replacement object
4780 on equality.
4781 <tcc_expression>: Likewise.
4782 <tcc_vl_exp>: If the replacement object is a constant, try to inline
4783 the call in the expression.
4784 * tree.h (finalize_size_functions): Declare.
4785 (find_placeholder_in_expr): Likewise.
4786 (FIND_PLACEHOLDER_IN_EXPR): New macro.
4787 (substitute_placeholder_in_expr): Update comment.
4788 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
4789 is true.
4790 (copy_tree_body_r): Likewise.
4791 (copy_tree_body): New static function.
4792 (maybe_inline_call_in_expr): New global function.
4793 * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
4794 (maybe_inline_call_in_expr): Declare.
4795 * Makefile.in (tree.o): Depend on TREE_INLINE_H.
4796 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
4797 GIMPLE_H.
4798
4bb5d312 47992009-06-30 Richard Guenther <rguenther@suse.de>
4800
4801 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
4802 continue walking.
4803 (propagate_necessity): Do not mark reaching defs of stores
4804 as necessary.
4805
c9263b6a 48062009-06-30 Jan Hubicka <jh@suse.cz>
4807
4808 * cfgloopanal.c (check_irred): Move into ...
4809 (mark_irreducible_loops): ... here; return true if ireducible
4810 loops was found.
4811 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
4812 (analyze_function): Try to prove loop finiteness.
4813 * cfgloop.h (mark_irreducible_loops): Update prototype.
4814 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
4815
2bda5ce3 48162009-06-30 Basile Starynkevitch <basile@starynkevitch.net>
4817
4818 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
4819
9908a112 48202009-06-30 Ira Rosen <irar@il.ibm.com>
4821
4822 PR tree-optimization/40542
f6c8c8fc 4823 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
9908a112 4824 types.
4825
e8803173 48262009-06-30 Martin Jambor <mjambor@suse.cz>
4827
4828 PR tree-optimization/40582
4829 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
4830 than useless_type_conversion_p.
4831 (generate_subtree_copies): Increment sra_stats.subtree_copies at a
4832 proper place.
4833
55a9bfa7 48342009-06-30 Martin Jambor <mjambor@suse.cz>
4835
4836 PR middle-end/40554
4837 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
4838
1daead67 48392009-06-30 Richard Guenther <rguenther@suse.de>
4840
4841 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
4842 use ao_ref references.
4843 (walk_aliased_vdefs): Likewise.
4844 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
4845 * tree-ssa-dce.c (struct ref_data): Remove.
4846 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
4847 (mark_aliased_reaching_defs_necessary): Adjust.
4848 (mark_all_reaching_defs_necessary_1): Likewise.
4849
cf564daf 48502009-06-30 Paolo Bonzini <bonzini@gnu.org>
4851
4852 PR boostrap/40597
4853 * expmed.c (emit_cstore): New name of emit_store_flag_1.
4854 (emit_store_flag_1): Extract from emit_store_flag, adjust
4855 calls to (what now is) emit_cstore.
4856 (emit_store_flag): Call emit_store_flag_1 and also use it
4857 for what used to be recursive calls.
4858
258b3d02 48592009-06-30 Wei Guozhi <carrot@google.com>
4860
4861 PR/40416
4862 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
4863 if the target bb post dominates from bb.
4864 * config/i386/i386.c (memory_address_length): Check existence of base
4865 register before using it.
4866
c4af075b 48672009-06-30 Nick Clifton <nickc@redhat.com>
4868 DJ Delorie <dj@redhat.com>
4869
4870 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
4871 __FMOVD_ENABLED__ is defined.
4872 * config/sh/sh.h
4873 (TARGET_FMOVD): Provide a default definition.
4874 (MASK_FMOVD): Likewise.
4875 (TARGET_CPU_CPP_BUILTINS): Define
4876 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
4877 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
4878 two fmov instructions depending upon whether TARGET_FMOVD is
4879 enabled.
4880 (split for DF load from memory into register): Also handle
4881 MEMs which consist of REG+DISP addressing.
4882 (split for DF store from register to memory): Likewise.
4883 * config/sh/sh.opt (mfmovd): Remove this switch.
4884 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
4885 * config/sh/sh.c (sh_override_options): Do not automatically
4886 enable TARGET_MOVD for the SH2A when supporting doubles - leave
4887 that to the -mfmovd command line switch.
4888
4889 * config/sh/sh.c (broken_move): Do not restrict fldi test to only
4890 the SH4 and SH4A.
4891 (fldi_ok): Always allow.
4892 * config/sh/sh.md (movsf_ie): Always use single fp_mode.
4893
760e1ed4 48942009-06-29 DJ Delorie <dj@redhat.com>
4895
4896 * doc/install.texi (mep-x-elf): Correct chip's full name.
4897
58c0b97e 48982009-06-29 H.J. Lu <hongjiu.lu@intel.com>
4899
4900 * doc/extend.texi: Fix typo.
4901
2452254d 49022009-06-29 Tom Tromey <tromey@redhat.com>
4903
4904 * dwarf2.h: Remove.
4905 * Makefile.in (DWARF2_H): New variable.
4906 (except.o): Use it.
4907 (dwarf2out.o): Likewise.
4908 (dwarf2asm.o): Likewise.
4909 * config/i386/t-i386: Use DWARF2_H.
4910 * except.c: Include elf/dwarf2.h.
4911 * unwind-dw2.c: Include elf/dwarf2.h.
4912 * dwarf2out.c: Include elf/dwarf2.h.
4913 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
4914 <dtprel>: New field.
4915 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
4916 (size_of_loc_descr): Likewise.
4917 (output_loc_operands_raw): Likewise.
4918 (output_loc_operands): Handle new dtprel field.
4919 (loc_checksum): Update.
4920 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
4921 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
4922 * unwind-dw2-fde.c: Include elf/dwarf2.h.
4923 * dwarf2asm.c: Include elf/dwarf2.h.
4924 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
4925 * config/mmix/mmix.c: Include elf/dwarf2.h.
4926 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
4927 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
4928 * config/sh/sh.c: Include elf/dwarf2.h.
4929 * config/i386/i386.c: Include elf/dwarf2.h.
4930
7c3116fb 49312009-06-29 DJ Delorie <dj@redhat.com>
4932
3a28fb14 4933 * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
4934
7c3116fb 4935 * doc/extend.texi: Add MeP attributes and pragmas.
4936 * doc/invoke.text: Add MeP Options.
4937 * doc/contrib.texi: Add MeP contribution.
4938 * doc/md.texi: Add MeP constraints.
4939 * doc/install.texi: Add MeP target.
4940
5a1c68c3 49412009-06-30 Anatoly Sokolov <aesok@post.ru>
4942
4943 * target.h (struct gcc_target): Add frame_pointer_required field.
4944 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
4945 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
4946 * ira.c (setup_eliminable_regset): Use frame_pointer_required target
4947 hook.
4948 * reload1.c (update_eliminables): (Ditto.).
4949 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
4950 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4951 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
4952
4953 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
4954
4955 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
4956 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
4957 (arm_frame_pointer_required): New function.
4958
4959 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
4960 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4961 (avr_frame_pointer_required_p): Declare as static.
4962 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
4963
4964 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
4965 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
4966 (bfin_frame_pointer_required): Make as static, change return type
4967 to bool.
4968 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
4969
4970 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
4971 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4972 (cris_frame_pointer_required): New function.
f6c8c8fc 4973
5a1c68c3 4974 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
4975
4976 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
4977 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4978 (fr30_frame_pointer_required): New function.
f6c8c8fc 4979
5a1c68c3 4980 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
4981 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
4982 (frv_frame_pointer_required): Make as static, change return type
4983 to bool.
4984 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
4985
4986 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
4987 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4988 (ix86_frame_pointer_required): Make as static, change return type to
4989 bool.
4990 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
4991
4992 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
4993 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4994
4995 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
4996
4997 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
f6c8c8fc 4998
5a1c68c3 4999 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
5000
5001 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
5002 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
5003 (mips_frame_pointer_required): Make as static.
5004 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
f6c8c8fc 5005
5a1c68c3 5006 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
5007 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
5008 (mmix_frame_pointer_required): Mew function.
5009
5010 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
5011 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
5012
5013 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
5014
5015 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
5016
5017 * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
5018
5019 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
5020 (CAN_ELIMINATE): Redefine.
5021 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
5022 (sparc_frame_pointer_required): New function.
5023 (sparc_can_eliminate): New function.
5024 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
5025
5026 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
5027 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
5028
5029 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
5030 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
5031 (xtensa_frame_pointer_required): Make as static, change return type
5032 to bool.
5033 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
5034 Remove.
5035
d0b2c064 50362009-06-29 Olatunji Ruwase <tjruwase@google.com>
275b769b 5037
5038 * doc/plugins.texi: Document PLUGIN_START_UNIT.
5039 * toplev.c (compile_file): Call PLUGIN_START_UNIT.
5040 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
5041 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
5042 (register_callback): Handle PLUGIN_START_UNIT.
5043 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
5044
e0ca1cb5 50452009-06-29 Eric Botcazou <ebotcazou@adacore.com>
5046
5047 * tree.c (process_call_operands): Propagate TREE_READONLY from the
5048 operands.
5049 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
5050 (build3_stat): Propagate TREE_READONLY for COND_EXPR.
5051
d6d765b4 50522009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
5053
5054 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
5055 move cost.
5056
70a23968 50572009-06-29 Uros Bizjak <ubizjak@gmail.com>
5058
5059 * doc/extend.texi (Additional Floating Types): __float128 is also
5060 supported on i386 targets.
5061
1c1f1bc0 50622009-06-29 Richard Guenther <rguenther@suse.de>
5063
5064 PR middle-end/14187
5065 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
5066 flag.
5067 (pt_solutions_same_restrict_base): Declare.
5068 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
5069 flag.
5070 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
5071 (make_constraint_from, make_copy_constraint): Move earlier.
5072 (make_constraint_from_heapvar): New function.
5073 (make_constraint_from_restrict): Likewise.
5074 (handle_lhs_call): Use it.
5075 (find_func_aliases): Use it to track conversions to restrict
5076 qualified pointers.
5077 (struct fieldoff): Add only_restrict_pointers flag.
5078 (push_fields_onto_fieldstack): Initialize it.
5079 (create_variable_info_for): Track global restrict qualified pointers.
5080 (intra_create_variable_infos): Use make_constraint_from_heapvar.
5081 Track restrict qualified pointer arguments.
5082 (set_uids_in_ptset): Use varinfo is_global_var flag.
5083 (find_what_var_points_to): Set the vars_contains_restrict flag.
5084 Always create the points-to solution for sets including restrict tags.
5085 (pt_solutions_same_restrict_base): New function.
5086 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
5087 qualified pointers use pt_solutions_same_restrict_base as
5088 additional source for disambiguation.
5089
8115f0af 50902009-06-29 Richard Guenther <rguenther@suse.de>
5091
5092 PR middle-end/38212
5093 * alias.c (find_base_decl): Remove.
5094 (get_deref_alias_set_1): Remove restrict handling.
5095 * c-common.c (c_apply_type_quals_to_decl): Do not set
5096 DECL_POINTER_ALIAS_SET.
5097 * gimplify.c (find_single_pointer_decl_1): Remove.
5098 (find_single_pointer_decl): Likewise.
5099 (internal_get_tmp_var): Remove restrict handling.
5100 (gimple_regimplify_operands): Likewise.
5101 * omp-low.c (expand_omp_atomic_pipeline): Do not set
5102 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
5103 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
5104 * tree.c (restrict_base_for_decl): Remove.
5105 (init_ttree): Do not allocate it.
5106 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
5107 LABEL_DECL_UID for label decls.
5108 (copy_node_stat): Do not copy restrict information.
5109 (decl_restrict_base_lookup): Remove.
5110 (decl_restrict_base_insert): Likewise.
5111 (print_restrict_base_statistics): Likewise.
5112 (dump_tree_statistics): Do not call print_restrict_base_statistics.
5113 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
5114 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
5115 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
5116 (LABEL_DECL_UID): Adjust.
5117 (DECL_BASED_ON_RESTRICT_P): Remove.
5118 (DECL_GET_RESTRICT_BASE): Likewise.
5119 (SET_DECL_RESTRICT_BASE): Likewise.
5120 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
5121
5122 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
5123 instead of DECL_POINTER_ALIAS_SET.
5124 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
5125 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
5126 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
5127
a000e0d1 51282009-06-29 Richard Guenther <rguenther@suse.de>
5129
5130 PR tree-optimization/40579
5131 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
5132 the IL to simplify has constants that overflowed.
5133
275b8285 51342009-06-28 Uros Bizjak <ubizjak@gmail.com>
5135
5136 PR tree-optimization/40550
5137 * tree-vect-generic.c (expand_vector_operations_1): Compute in
5138 vector_compute_type only when the size of vector_compute_type is
5139 less than the size of type.
5140
2ba5b763 51412009-06-28 Eric Botcazou <ebotcazou@adacore.com>
5142
5143 * fold-const.c (contains_label_1): Fix comments.
5144 (contains_label_p): Do not walk trees multiple time.
5145
e6a0a4a3 51462009-06-28 Paolo Bonzini <bonzini@gnu.org>
5147
70a23968 5148 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
5149 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
5150 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
5151 ix86_fp_comparison_operator.
5152 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
5153 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
5154 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
5155 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
5156 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
5157 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
5158 (related splits): Change predicate to ix86_fp_comparison_operator.
5159 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
5160 instead of ix86_fp_comparison_codes.
5161 (ix86_trivial_fp_comparison_operator,
5162 ix86_fp_comparison_operator): New.
5163 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
5164 (ix86_expand_compare): Eliminate last two parameters.
5165 (ix86_fp_jump_nontrivial_p): Kill.
5166 * config/i386/i386.c (put_condition_code): Eliminate call to
5167 ix86_fp_comparison_codes and subsequent assertion.
5168 (ix86_fp_comparison_codes): Eliminate.
5169 (ix86_fp_swap_condition): New.
5170 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
5171 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
5172 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
5173 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
5174 and ix86_fp_swap_condition.
5175 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
5176 Use ix86_fp_comparison_strategy.
5177 (ix86_expand_compare): Likewise. Eliminate last two arguments.
5178 (ix86_fp_jump_nontrivial_p): Eliminate.
5179 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
5180 call to ix86_expand_compare.
5181 (ix86_split_fp_branch, ix86_expand_setcc,
5182 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
5183 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
e6a0a4a3 5184
b0694be0 51852009-06-28 Paolo Bonzini <bonzini@gnu.org>
5186
70a23968 5187 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
5188 related to jump_clobbers.
5189 * config/arm/arm.md (conds): Remove jump_clob case.
5190 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
5191 splits): Change comparison_operator to arm_comparison_operator.
5192 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
5193 Eliminate.
b0694be0 5194
fb425e71 51952009-06-28 Paolo Bonzini <bonzini@gnu.org>
5196
70a23968 5197 * dojump.c (do_compare_rtx_and_jump): Try swapping the
5198 condition for floating point modes.
5199 * expmed.c (emit_store_flag_1): Move here a bigger part
5200 of emit_store_flag.
5201 (emit_store_flag): Try swapping the condition for floating point
5202 modes.
5203 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
fb425e71 5204
80e1bfa1 52052009-06-28 Paolo Bonzini <bonzini@gnu.org>
5206
70a23968 5207 * expr.c (expand_expr_real_1): Just use do_store_flag.
5208 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
5209 emit_store_flag_force.
5210 * expmed.c (emit_store_flag_force): Copy here trick
5211 previously in expand_expr_real_1. Try reversing the comparison.
5212 (emit_store_flag_1): Work if target is NULL.
5213 (emit_store_flag): Work if target is NULL, using the result mode
5214 from the comparison. Use split_comparison, restructure final part
5215 to simplify conditionals.
80e1bfa1 5216
3fcf767f 52172009-06-28 Paolo Bonzini <bonzini@gnu.org>
5218
70a23968 5219 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
5220 * dojump.c (do_jump): Change handling of floating-point
5221 ops to use just do_compare_and_jump.
5222 (split_comparison): New.
5223 (do_compare_rtx_and_jump): Add here logic coming previously
5224 in do_jump, using split_comparison.
3fcf767f 5225
025781a4 52262009-06-27 H.J. Lu <hongjiu.lu@intel.com>
5227
5228 PR target/40489
5229 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
5230
02c74b9b 52312009-06-27 Paolo Bonzini <bonzini@gnu.org>
5232
5233 * tree-ssa-alias.c: Fix unintentional commit.
5234
fa0ccb6b 52352009-06-27 Paolo Bonzini <bonzini@gnu.org>
5236
5237 * passes.c (execute_one_pass): Fix unintentional commit.
5238
44e66138 52392009-06-27 Paolo Bonzini <bonzini@gnu.org>
5240
025781a4 5241 * df-problems.c (df_set_seen, df_unset_seen): Delete.
5242 (df_rd_local_compute, df_md_local_compute): Inline them.
44e66138 5243
025781a4 5244 (df_md_scratch): New.
5245 (df_md_alloc, df_md_free): Allocate/free it.
5246 (df_md_local_compute): Only include live registers in init.
5247 (df_md_transfer_function): Prune the in-set computed by
5248 the confluence function, and the gen-set too.
44e66138 5249
52502009-06-27 Paolo Bonzini <bonzini@gnu.org>
2355a966 5251
5252 PR rtl-optimization/26854
025781a4 5253 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
5254 * df-problems.c (df_rd_add_problem): Fix comment.
5255 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
5256 df_md_simulate_artificial_defs_at_top,
5257 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
5258 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
5259 df_md_transfer_function, df_md_init, df_md_confluence_0,
5260 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
5261 problem_MD, df_md_add_problem): New.
5262 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
5263 df_md_get_bb_info): New.
275b8285 5264 (DF_LAST_PROBLEM_PLUS1): Adjust.
025781a4 5265
5266 * Makefile.in (fwprop.o): Include domwalk.h.
5267 * fwprop.c: Include domwalk.h.
5268 (reg_defs, reg_defs_stack): New.
5269 (bitmap_only_bit_between): Remove.
5270 (process_defs): New.
5271 (process_uses): Use reg_defs and local_md instead of
5272 bitmap_only_bit_between and local_rd.
5273 (single_def_use_enter_block): New, from build_single_def_use_links.
5274 (single_def_use_leave_block): New.
5275 (build_single_def_use_links): Remove code moved to
5276 single_def_use_enter_block, invoke domwalk.
5277 (use_killed_between): Adjust comment.
2355a966 5278
d7f2555b 52792009-06-27 Paolo Bonzini <bonzini@gnu.org>
5280
5281 * bitmap.h (bitmap_ior_and_into): New.
5282 * bitmap.c (bitmap_ior_and_into): New.
5283
6bf320fb 52842009-06-27 Paolo Bonzini <bonzini@gnu.org>
5285
025781a4 5286 * domwalk.h (struct dom_walk_data): Remove all callbacks except
5287 before_dom_children_before_stmts and after_dom_children_after_stmts.
f6c8c8fc 5288 Rename the two remaining callbacks to just before_dom_children and
025781a4 5289 after_dom_children. Remove other GIMPLE statement walking bits.
5290 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
5291 * graphite.c: Do not include domwalk.h.
5292 * tree-into-ssa.c (interesting_blocks): New global.
5293 (struct mark_def_sites_global_data): Remove it and names_to_rename.
5294 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
5295 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
5296 now that they're not domwalk callbacks.
5297 (rewrite_initialize_block): Rename to...
5298 (rewrite_enter_block): ... this, place after called functions. Test
5299 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
5300 (rewrite_finalize_block): Rename to...
5301 (rewrite_leave_block): ... this, place after called functions.
5302 (rewrite_update_init_block): Rename to...
5303 (rewrite_update_enter_block): ... this, place after called functions.
f6c8c8fc 5304 Test interesting_blocks, call rewrite_update_stmt and
025781a4 5305 rewrite_update_phi_arguments.
5306 (rewrite_update_fini_block): Rename to...
5307 (rewrite_leave_block): ... this, place after called functions.
5308 (rewrite_blocks): Remove last argument, simplify initialization of
5309 walk_data.
5310 (mark_def_sites_initialize_block): Rename to...
5311 (mark_def_sites_block): ... this, call mark_def_sites.
5312 (mark_def_sites_blocks): Remove argument, simplify initialization of
5313 walk_data.
5314 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
5315 (update_ssa): Likewise.
5316 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
5317 callback.
5318 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
5319 (dom_opt_initialize_block): Rename to...
5320 (dom_opt_enter_block): ... this, place after called functions. Walk
5321 statements here, inline propagate_to_outgoing_edges.
5322 (dom_opt_finalize_block): Rename to...
5323 (dom_opt_leave_block): ... this, place after called functions.
5324 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
5325 domwalk callback.
5326 (dse_enter_block, dse_record_phi): New.
5327 (dse_record_phis): Delete.
5328 (dse_finalize_block): Rename to...
5329 (dse_leave_block): ... this.
5330 (tree_ssa_dse): Simplify initialization of walk_data.
5331 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
5332 Adjust initialization of walk_data.
5333 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
5334 * tree-ssa-loop-phiopt.c (get_non_trapping):
5335 Adjust initialization of walk_data.
5336 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
5337 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
5338 it's not a domwalk callback.
5339 (uncprop_initialize_block): Rename to...
5340 (dse_enter_block): ... this, call uncprop_into_successor_phis.
5341 (dse_finalize_block): Rename to...
5342 (dse_leave_block): ... this.
5343 (tree_ssa_uncprop): Simplify initialization of walk_data.
5344 * Makefile.in: Adjust dependencies.
6bf320fb 5345
3db2019b 53462009-06-27 Richard Earnshaw <rearnsha@arm.com>
5347
5348 * arm.md (casesi): Fix test for Thumb1.
5349 (thumb1_casesi_internal_pic): Likewise.
5350 (thumb1_casesi_dispatch): Likewise.
5351
d7b91299 53522009-06-26 Daniel Gutson <dgutson@codesourcery.com>
5353
5354 * config/arm/arm-cores.def: Added core cortex-m0.
5355 * config/arm/arm-tune.md: Regenerated.
5356 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
5357
1f2d41ad 53582009-06-26 DJ Delorie <dj@redhat.com>
5359
5360 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
5361
5362 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
5363 the scheduler doesn't tag jump insns.
5364
da870dac 53652009-06-26 H.J. Lu <hongjiu.lu@intel.com>
5366
5367 * c-decl.c (merge_decls): Re-indent.
5368
fcd5ffce 53692009-06-26 Janis Johnson <janis187@us.ibm.com>
5370
5371 PR c/39902
5372 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
5373 Special-case decimal float constants.
5374
d747fdfb 53752009-06-26 Richard Henderson <rth@redhat.com>
5376
5377 * function.h (struct function): Add cannot_be_copied_reason,
5378 and cannot_be_copied_set.
5379 * tree-inline.c (has_label_address_in_static_1): Rename from
5380 inline_forbidden_p_2; don't set inline_forbidden_reason here.
5381 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
5382 don't set inline_forbidden_reason.
5383 (copy_forbidden): New function, split out of inline_forbidden_p.
5384 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
5385 (inline_forbidden_p): Use copy_forbidden.
5386 (tree_versionable_function_p): Likewise.
5387 (inlinable_function_p): Merge into tree_inlinable_function_p.
5388 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
5389 * ipa-cp.c (ipcp_versionable_function_p): New function.
5390 (ipcp_cloning_candidate_p): Use it.
5391 (ipcp_node_modifiable_p): Likewise.
5392
f9fa0459 53932009-06-26 Olatunji Ruwase <tjruwase@google.com>
5394
5395 * builtins.c (expand_builtin_alloca): Handle builtin alloca
5396 that is marked not to be inlined. Remove flag_mudflap use.
5397 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
5398 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
5399
9d4aeda2 54002009-06-26 Steve Ellcey <sje@cup.hp.com>
5401
5402 PR bootstrap/40338
5403 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
5404 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
5405
5ab8d1bf 54062009-06-26 Kai Tietz <kai.tietz@onevision.com>
5407
5408 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
5409 shared libgcc.
5410 (__mingwthr_remove_key_dtor): Likewise.
5411
636df1b1 54122009-06-26 Richard Guenther <rguenther@suse.de>
5413
275b8285 5414 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
636df1b1 5415
a27f5985 54162009-06-26 Steven Bosscher <steven@gcc.gnu.org>
5417
5418 PR middle-end/40525
5419 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
5420 try the non-cond_exec path also.
5421
317754f4 54222009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5423
5424 PR target/40468
5425 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
5426 (output_cbranch): Use new functions.
5427 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
5428 Likewise.
5429
6ff33500 54302009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
5431 Pat Haugen <pthaugen@us.ibm.com>
5432 Revital Eres <ERES@il.ibm.com>
5433
56df51d8 5434 * config/rs6000/rs6000.c (print_operand): Correct lossage message
5435 for %c error. Add %x support to print VSX registers as a unified
5436 register set, instead of separate float and altivec registers.
5437 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
5438 %y case, and add support for VSX pre-modify addresses.
5439 (output_toc): Add assert for CONST containing an integer constant
5440 in the PLUS case.
5441 (rs6000_adjust_cost): Add POWER7 support.
5442 (insn_must_be_first_in_group): Ditto.
5443 (insn_must_be_last_in_group): Ditto.
5444 (rs6000_emit_popcount): Ditto.
5445 (rs6000_vector_mode_supported_p): Ditto.
5446
6ff33500 5447 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
5448 Change some of the functions called by macros to being called
5449 through a pointer, so debug functions can be inserted if
f6c8c8fc 5450 -mdebug=addr or -mdebug=cost.
6ff33500 5451 (rs6000_preferred_reload_class_ptr): Ditto.
5452 (rs6000_secondary_reload_class_ptr): Ditto.
5453 (rs6000_secondary_memory_needed_ptr): Ditto.
5454 (rs6000_cannot_change_mode_class_ptr): Ditto.
5455 (rs6000_secondary_reload_inner): Ditto.
5456 (rs6000_legitimize_reload_address): Ditto.
5457 (rs6000_legitimize_reload_address_ptr): Ditto.
5458 (rs6000_mode_dependent_address): Ditto.
5459 (rs6000_mode_dependent_address_ptr): Ditto.
5460
5461 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
5462 function to return true if the mode allows reg + integer
5463 addresses.
5464 (virtual_stack_registers_memory_p): New function to return true if
5465 the address refers to a virtual stack register.
5466 (rs6000_legitimate_offset_address_p): Move code to say whether a
5467 mode supports reg+int addressing to reg_offset_addressing_ok_p and
5468 call it.
5469 (rs6000_legitimate_address_p): Add checks for modes that only can
5470 do reg+reg addressing. Start adding VSX support.
5471 (rs6000_legitimize_reload_address): Ditto.
5472 (rs6000_legitimize_address): Ditto.
5473 (rs6000_debug_legitimate_address_p): New debug functions for
5474 -mdebug=addr and -mdebug=cost.
5475 (rs6000_debug_rtx_costs): Ditto.
5476 (rs6000_debug_address_costs): Ditto.
5477 (rs6000_debug_adjust_cost): Ditto.
5478 (rs6000_debug_legitimize_address): Ditto.
5479 (rs6000_legitimize_reload_address_ptr): Point to call normal
5480 function or debug function. Make functions called via pointer
5481 static.
5482 (rs6000_mode_dependent_address_ptr): Ditto.
5483 (rs6000_secondary_reload_class_ptr): Ditto.
5484 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
5485 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
5486 into a friendlier error.
5487 (rs6000_init_builtins): Add initial VSX support.
5488 (rs6000_adjust_cost): Fix some spacing issues.
5489
5490 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
5491 (REG_CLASS_NAMES): Ditto.
5492 (REG_CLASS_CONTENTS): Ditto.
5493 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
5494 pointer, to add -mdebug=addr support.
5495 (CANNOT_CHANGE_MODE_CLASS): Ditto.
5496 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
5497 -mdebug=addr support.
5498 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
5499 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
5500 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
5501
5502 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
5503 16-bit values.
5504 (bswapsi*): Set attribute types for load/store. Add combiner
5505 patterns to eliminate zero extend on 64-bit.
5506 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
5507 stdbrx if the hardware supports those instructions.
5508
0f32121e 55092009-06-25 Ian Lance Taylor <iant@google.com>
5510
5511 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
5512 (Link Options): Document -static-libstdc++.
5513
5260b939 55142009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
5515
5516 PR target/38731
5517 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
5518 DATA_ALIGNMENT instead.
5519
917f08fa 55202009-06-25 Richard Guenther <rguenther@suse.de>
5521
5522 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
5523 indirect references against the callused/escaped solutions.
5524 (call_may_clobber_ref_p_1): Likewise.
5525
eaadb0b5 55262009-06-25 Martin Jambor <mjambor@suse.cz>
5527
5528 PR tree-optimization/40493
5529 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
5530 (enum unscalarized_data_handling): New type.
5531 (handle_unscalarized_data_in_subtree): Return what has been done.
5532 (load_assign_lhs_subreplacements): Handle left flushes differently.
5533 (sra_modify_assign): Use unscalarized_data_handling, simplified
5534 condition determining whether to remove the statement.
5535
f5494808 55362009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
f26f4496 5537
5538 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
5539 excerpt - @ should be doubled for texinfo.
f5494808 5540
ef51d1e3 55412009-06-24 Ian Lance Taylor <iant@google.com>
5542
5543 * config/arc/arc.c: Include "df.h".
5544 (arc_attribute_table): Make static. Move higher in file.
5545 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
5546 (output_shift): Initialize n later to avoid warning.
5547 * config/arm/arm.c (arm_attribute_table): Make static. Move
5548 higher in file.
5549 * config/avr/avr.c (avr_attribute_table): Make static. Move
5550 higher in file.
5551 (reg_class_tab): Change array type from int to enum reg_class.
5552 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
5553 LABEL_REF.
5554 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
5555 (lshrhi3_out): Likewise.
5556 (class_likely_spilled_p): Change return type to bool.
5557 (avr_rtx_costs): Use local code variable with enum type.
5558 * config/avr/avr.md (movmemhi): Use add_reg_note.
5559 (andhi3, andsi3): Don't use AS2 with "and".
5560 (iorhi3, iorsi3): Don't use AS2 with "or".
275b8285 5561 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
ef51d1e3 5562 * config/crx/crx.c: Include "df.h".
5563 (crx_attribute_table): Make static.
5564 * config/m32r/m32r.c: Include "df.h".
5565 (m32r_attribute_table): Make static. Move higher in file.
5566 (pop): Use add_reg_note.
5567 (block_move_call): Change 0 to LCT_NORMAL in function call.
5568 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
5569 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
5570 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
5571 declare, not just when TREE_CODE is defined.
5572 * config/m68hc11/m68hc11.c: Include "expr.h".
5573 (m68hc11_attribute_table): Make static. Move higher in file.
5574 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
5575 function call.
5576 (m68hc11_register_indirect_p): Likewise.
5577 (m68hc11_function_arg_padding): Change return type to enum
5578 direction.
5579 (emit_move_after_reload): Use add_reg_note.
5580 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
5581 (m68hc11_split_logical): Likewise.
5582 (m68hc11_rtx_costs): Add local code_and outer_code variables with
5583 enum type.
5584 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
5585 to VOIDmode in function call.
5586 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
5587 tree is defined.
5588 (m68hc11_split_logical): Update declaration.
5589 (m68hc11_function_arg_padding): Update declaration.
5590 * config/mcore/mcore.c (regno_reg_class): Change form array of int
5591 to array of enum reg_class.
5592 (mcore_attribute_table): Make static. Move higher in file.
5593 (mcore_rtx_costs): Add cast to enum type.
5594 * config/mcore/mcore.h (regno_reg_class): Update declaration.
5595 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
5596 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
5597 in file.
5598 * config/sh/predicates.md (trapping_target_operand): Rename and to
5599 and_expr.
5600 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
5601 higher in file.
5602 * config/spu/spu.c (spu_attribute_table): Make static. Move
5603 higher in file.
5604 * config/v850/v850.c (v850_attribute_table): Make static. Move
5605 higher in file.
5606 (v850_rtx_costs): Use local code with enum type.
5607 (expand_epilogue): Add cast.
5608 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
5609
5b9c0169 56102009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
5611
5612 PR target/40515
5613 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
5614 -m2a-single-only and -m2a-nofpu.
f6c8c8fc 5615 * config/sh/sh.opt: Document m2a generates FPU code.
5b9c0169 5616
0e841940 56172009-06-24 Anatoly Sokolov <aesok@post.ru>
5618
5619 * defaults.h (CAN_ELIMINATE): Provide default.
5620 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
5621 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
5622 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
5623 * config/spu/spu.h (CAN_ELIMINATE): Delete.
5624 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
5625 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
5626 * config/cris/cris.h (CAN_ELIMINATE): Delete.
5627 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
5628 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
5629 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
5630
a239165a 56312009-06-24 DJ Delorie <dj@redhat.com>
5632
5633 * mep-ext-cop.cpu: Fix copyright notice.
5634 * mep-default: Fix copyright notice.
5635 * mep-core: Fix copyright notice.
5636 * mep: Fix copyright notice.
5637 * mep-ivc2: Fix copyright notice.
5638 * mep-c5: Fix copyright notice.
5639
c86a70e3 56402009-06-24 Denis Chertykov <chertykov@gmail.com>
5641
f6c8c8fc 5642 * doc/contrib.texi (Contributors):
c86a70e3 5643
0af25806 56442009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
f6c8c8fc 5645
0af25806 5646 PR middle-end/40501
5647 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
5648 src and dst operands if necessary.
5649
46222c18 56502009-06-23 DJ Delorie <dj@redhat.com>
5651
5652 Add MeP port.
5653 * config.gcc: Add mep support.
5654 * recog.c: Resurrect validate_replace_rtx_subexp().
5655 * recog.h: Likewise.
5656 * config/mep/: Add new port:
5657 * config/mep/constraints.md: New file.
5658 * config/mep/default.h: New file.
5659 * config/mep/intrinsics.h: New file.
5660 * config/mep/intrinsics.md: New file.
5661 * config/mep/ivc2-template.h: New file.
5662 * config/mep/mep-c5.cpu: New file.
5663 * config/mep/mep-core.cpu: New file.
5664 * config/mep/mep-default.cpu: New file.
5665 * config/mep/mep-ext-cop.cpu: New file.
5666 * config/mep/mep-intrin.h: New file.
5667 * config/mep/mep-ivc2.cpu: New file.
5668 * config/mep/mep-lib1.asm: New file.
5669 * config/mep/mep-lib2.c: New file.
5670 * config/mep/mep-pragma.c: New file.
5671 * config/mep/mep-protos.h: New file.
5672 * config/mep/mep-tramp.c: New file.
5673 * config/mep/mep.c: New file.
5674 * config/mep/mep.cpu: New file.
5675 * config/mep/mep.h: New file.
5676 * config/mep/mep.md: New file.
5677 * config/mep/mep.opt: New file.
5678 * config/mep/predicates.md: New file.
5679 * config/mep/t-mep: New file.
5680
7ab76cec 56812009-06-23 Ian Lance Taylor <iant@google.com>
5682
5683 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
5684 from loose_warn into c_loose_warn and from strict_warn into
5685 c_strict_warn. Set and substitute warn_cxxflags. Check for
5686 --enable-build-with-cxx. Set and substitute
5687 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
5688 * Makefile.in (CXXFLAGS): New variable.
5689 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
5690 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
5691 the default is the same as $(STRICT_WARN).
5692 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
5693 (CXX): New variable.
5694 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
5695 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
5696 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
5697 (HOST_LIBS): New variable.
5698 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
5699 (ALL_CXXFLAGS): New variable.
5700 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
5701 * doc/install.texi (Configuration): Document
5702 --enable-build-with-cxx, --with-stage1-ldflags,
5703 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
5704 * configure: Rebuild.
5705
f3a8f217 57062009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
cb41fde2 5707
f3a8f217 5708 * config/arm/arm.c (arm_override_options): Fix braces and formatting
5709 from previous commit.
cb41fde2 5710
988e7f78 57112009-06-23 Ian Lance Taylor <iant@google.com>
5712
5713 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
5714
6577bf6b 57152009-06-23 Ian Lance Taylor <iant@google.com>
5716
5717 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
5718 with ATTRIBUTE_UNUSED.
5719
9c878e1b 57202009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
5721 Pat Haugen <pthaugen@us.ibm.com>
f3a8f217 5722 Revital Eres <eres@il.ibm.com>
9c878e1b 5723
5724 * config.in (HAVE_AS_POPCNTD): Add default definition.
5725 (HAVE_AS_LWSYNC): Ditto.
5726
5727 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
5728 release number.
5729 (gcc_cv_as_powerpc_cmpb): Ditto.
5730 (gcc_cv_as_powerpc_dfp): Ditto.
5731 (gcc_cv_as_powerpc_vsx): Ditto.
5732 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
5733 supporting the popcntd/lwsync instructions.
5734 (gcc_cv_as_powerpc_lwsync): Ditto.
5735 * configure: Regenerate.
5736
5737 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
5738 -mcpu=native and -mcpu=power7.
5739 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
5740
5741 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
5742 a variable instead of a mask to reduce the number of mask bits.
5743 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
5744 (-mbit-word): Ditto.
5745 (-mregnames): Ditto.
5746 * config/rs6000/rs6000.opt (-mupdate): Ditto.
5747 (-mfused-madd): Ditto.
5748
5749 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
5750 2.06 instructions.
5751 (-mvsx): New switch for VSX instructions.
5752 (-misel): Move from a variable to a mask to allow it to be set by
5753 -mcpu=.
5754
5755 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
5756 function declaration to an array declaration.
5757 (rs6000_hard_regno_nregs): New external array declaration.
5758
5759 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
5760 files included by rs6000.md.
5761
5762 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
5763 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
5764
5765 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
5766 a target mask.
5767 (rs6000_debug_reg): New -mdebug= variables.
5768 (rs6000_debug_addr): Ditto.
5769 (rs6000_debug_cost): Ditto.
5770 (rs6000_pmode): New variable to hold Pmode.
5771 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
5772 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
5773 calculated at compiler start.
5774 (rs6000_hard_regno_nregs): Change function to an array which holds
5775 HARD_REGNO_NREGS calculated at compiler start.
5776 (rs6000_explicit_options): Delete isel field.
5777 (rs6000_vector_unit): New array to hold which vector unit
5778 supports arithmetic options for a given type.
5779 (rs6000_vector_mem): New array to hold which vector unit supports
5780 memory reference operations for a given type.
5781 (rs6000_vector_align): New array to given the alignment of each
5782 vector type.
5783 (power7_cost): New basic costs for power7.
5784 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
5785 (rs6000_hard_regno_nregs_internal): New function, moved from
5786 HARD_REGNO_NREGS, to calculate the number of registers each hard
5787 register takes for each type.
5788 (rs6000_debug_reg_print): New function for -mdebug=reg support.
275b8285 5789 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
9c878e1b 5790 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
5791 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
5792 unit information here so it is calculated once at compiler startup
5793 time.
5794 (rs6000_override_options): Make -misel a target mask. Add more
5795 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
5796 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
5797 -mdebug=cost.
5798 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
5799 (rs6000_handle_option): Move -misel from variable to target mask.
5800 (rs6000_builtin_mask_for_load): Add VSX support.
5801 (rs6000_conditional_register_usage): Ditto.
5802 (USE_ALTIVEC_FOR_ARG_P): Ditto.
5803 (function_arg_boundary): Ditto.
5804 (rs6000_expand_builtin): Ditto.
5805 (def_builtin): Make abort message a little friendlier.
5806 (rs6000_emit_int_cmove): Add support for 64-bit isel.
5807
5808 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
5809 assembler support the popcntd instruction instead of a vsx
5810 instruction to enable power7 support.
5811 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
5812 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
5813 option to the assembler if -mcpu=native.
5814 (ASM_CPU_NATIVE_SPEC): Ditto.
5815 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
5816 ISA 2.06 features.
5817 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
5818 the lwsync instruction.
5819 (enum processor_type): Add PROCESSOR_POWER7.
5820 (rs6000_debug_reg): New -mdebug= options.
5821 (rs6000_debug_addr): Ditto.
5822 (rs6000_debug_cost): Ditto.
5823 (rs6000_isel): Delete.
5824 (enum rs6000_vector): New enum to say what vector unit we have.
5825 (VECTOR_UNIT_*): New macros to say which vector unit has
5826 arithmetic operations for a given type.
5827 (VECTOR_MEM_*): New macros to say which vector unit has memory
5828 operations for a given type.
5829 (TARGET_LDBRX): Whether the machine supports the ldbrx
5830 instruction.
5831 (TARGET_ISEL): Delete, -misel moved to be a mask.
5832 (TARGET_ISEL64): New macro for 64-bit isel support.
5833 (UNITS_PER_VSX_WORD): New macro.
5834 (POINTER_SIZE): Move to be an external variable, rather than
5835 calculating whether we are generating 32 ot 64-bit code.
5836 (Pmode): Ditto.
5837 (STACK_BOUNDARY): Add VSX support.
5838 (LOCAL_ALIGNMENT): Ditto.
5839 (SLOW_UNALIGNED_ACCESS): Ditto.
5840 (VSX_REGNO_P): New macro for VSX support.
5841 (VFLOAT_REGNO_P): Ditto.
5842 (VINT_REGNO_P): Ditto.
5843 (VLOGICAL_REGNO_P): Ditto.
5844 (VSX_VECTOR_MODE): Ditto.
5845 (VSX_SCALAR_MODE): Ditto.
5846 (VSX_MODE): Ditto.
5847 (VSX_MOVE_MODE): Ditto.
5848 (VSX_REG_CLASS_P): Ditto.
5849 (HARD_REGNO_NREGS): Instead of calling a function, use an array
5850 lookup.
5851 (UNITS_PER_SIMD_WORD): Add VSX support.
5852 (MODES_TIEABLE_P): Ditto.
5853 (STARTING_FRAME_OFFSET): Ditto.
5854 (STACK_DYNAMIC_OFFSET): Ditto.
5855 (EPILOGUE_USES): Ditto.
5856 (REGNO_REG_CLASS): Move to array lookup.
5857 (CLASS_MAX_NREGS): Ditto.
5858 (rs6000_vector_reg_class): Add declaration.
5859 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
5860 overlap with the floating point and Altivec registers.
5861
5862 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
5863
5864 * config/rs6000/driver-rs6000.c (asm_names): New static array to
5865 give the appropriate asm switches if -mcpu=native.
5866 (host_detect_local_cpu): Add support for "asm".
5867 (host_detect_local_cpu): Follow GNU code guidelines for name.
5868
5869 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
5870 -mbit-word to a variable instead of being a target mask.
5871
5872 * config/rs6000/sync.md (lwsync): If the assembler supports it,
5873 emit the lwsync instruction instead of emitting the instruction as
5874 an integer constant.
5875
5876 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
5877 fixuns_trundfsi2, move expander into rs6000.md.
5878
5879 * config/rs6000/rs6000.md (cpu): Add power7.
5880 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
5881 (logical predicate patterns): Change the single instruction
5882 primitives that set CR0 to be fast_compare instead of compare.
5883 (norsi*): Ditto.
5884 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
5885 (popcntddi2): Ditto.
5886 (popcount<mode>): Ditto.
5887 (floating multiply/add insns): Name the floating point
5888 multiply/add insns.
5889 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
5890 (isel_unsigned_<mode>): Ditto.
5891 (fixuns_trundfsi2): Move expander here from spe.md.
5892 (smindi3): Define if we have -misel on 64-bit systems.
5893 (smaxdi3): Ditto.
5894 (umindi3): Ditto.
5895 (umaxdi3): Ditto.
5896
795cff42 58972009-06-23 Anatoly Sokolov <aesok@post.ru>
5898
5899 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
5900 extra_objs.
5901 * config/avr/avr.c (avr_current_device): New variable.
5902 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
5903 (avr_arch, mcu_type_s): Move to avr.h.
5904 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
5905 default_data_section_start fields.
5906 (avr_arch): Moved from avr.c.
5907 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
5908 library_name fields.
5909 (avr_current_device, avr_mcu_types, avr_arch_types,
5910 avr_device_to_arch, avr_device_to_data_start,
5911 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
5912 (EXTRA_SPEC_FUNCTIONS): Define.
5913 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
5914 options mapping. Use device_to_arch and device_to_data_start insted.
5915 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
5916 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
5917 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
5918 * config/avr/driver-avr.c: New file.
5919 * config/avr/avr-devices.c: New file.
5920
5dc67ab1 59212009-06-23 Jakub Jelinek <jakub@redhat.com>
5922
331cf53a 5923 * var-tracking.c (unshare_variable): Force initialized to
5924 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
5925 (set_variable_part): Likewise.
5926 (struct variable_union_info): Remove pos_src field.
5927 (vui_vec, vui_allocated): New variables.
5928 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
5929 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
5930 == 1 use a simpler sorting algorithm. Compute pos field right
5931 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
5932 Avoid quadratic comparison if !flag_var_tracking_uninit.
5933 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
f6c8c8fc 5934 unshare_variable unconditionally.
331cf53a 5935 (dataflow_set_different_2): Removed.
5936 (dataflow_set_different): Don't traverse second hash table.
5937 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
5938 unconditionally to var_reg_set or var_mem_set.
5939 (emit_notes_in_bb): Likewise.
5940 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
5941 unshare_variable.
5942 (emit_note_insn_var_location): Don't set initialized to
5943 VAR_INIT_STATUS_INITIALIZED early.
5944 (vt_finalize): Free vui_vec if needed, clear vui_vec and
5945 vui_allocated.
5946 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
5947
5dc67ab1 5948 * tree-object-size.c (addr_object_size): Instead of checking
5949 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
5950 are no FIELD_DECLs following it.
5951
9bc1852a 59522009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
5953
5954 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
5955 order to match bswaps with signed source operands.
5956
20167aff 59572009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5958
5959 * sdbout.c (sdbout_one_type): Fix braces in switch.
5960
97709d23 59612009-06-23 Richard Guenther <rguenther@suse.de>
5962
5963 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
5964 member.
5965 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
5966 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
5967 var_callused, callused_tree, var_storedanything, storedanything_tree,
5968 var_integer, integer_tree): Remove global variables.
5969 (new_var_info): Do not pass new id, append the new var to the
5970 global variable vector.
5971 (do_ds_constraint): Use is_global_var member of the variable-info.
5972 (new_scalar_tmp_constraint_exp): Adjust.
5973 (create_function_info_for): Likewise.
5974 (create_variable_info_for): Likewise.
5975 (find_what_var_points_to): Remove dead code.
5976 (init_base_vars): Simplify.
5977 (compute_points_to_sets): Adjust.
5978
731d1ca3 59792009-06-22 Adam Nemet <anemet@caviumnetworks.com>
5980
5981 * combine.c (try_combine): Dump information about the insns we're
5982 combining.
5983
af1b1eb5 59842009-06-22 Adam Nemet <anemet@caviumnetworks.com>
5985
5986 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
5987 check when calling force_to_mode on TRUNCATE's operand.
5988
d6cf890d 59892009-06-22 Ian Lance Taylor <iant@google.com>
5990
70a23968 5991 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
d6cf890d 5992
02cfc9c9 59932009-06-22 Steven Bosscher <steven@gcc.gnu.org>
5994
5995 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
5996
9ffe1a0b 59972009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5998
5999 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
6000 override library linkage flags such as -static-libgcc or
6001 -shared-libgcc.
6002
c74a692b 60032009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
6004
6005 * config/m68k/m68k-devices.def: Add line for MCF5221x.
6006
b91bd472 60072009-06-22 Ian Lance Taylor <iant@google.com>
6008
6009 * config/linux.opt: Put mglibc ahead of muclibc.
6010
6011 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
6012 for duplicate decls.
6013
19b30c2a 60142009-06-22 Matthias Klose <doko@ubuntu.com>
6015
6016 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
6017
61a9d3ca 60182009-06-22 Steven Bosscher <steven@gcc.gnu.org>
6019
6020 PR objc/28050
6021 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
6022 instead of NULL if a parser error occurs.
6023
d87ccabd 60242009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6025
6026 * dwarf2out.c (dwarf2_debug_hooks): Initialize
6027 non-DWARF2_DEBUGGING_INFO version.
6028
13dc7657 60292009-06-22 Kai Tietz <kai.tietz@onevision.com>
6030
82a3cc73 6031 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
6032 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
6033
6034 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
13dc7657 6035 (LIBGCC2_TF_CEXT): Define.
6036 (TF_SIZE): Define.
6037
e8bd8f68 60382009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6039
6040 PR target/40463
6041 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
6042
06e0f8b2 60432009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6044
82a3cc73 6045 * config/arm/arm.c (arm_override_options): Disable
6046 -mcaller-super-interworking and -mcallee-super-interworking.
6047 * doc/invoke.texi (ARM Options): Document this.
06e0f8b2 6048
110eae03 60492009-06-22 Nathan Sidwell <nathan@codesourcery.com>
6050
6051 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
6052 * config/arm/constraints.md (j): New constraint for movw operands.
6053 (N): Remove thumb2 meaning.
6054 * config/arm/arm.md (*arm_movw): Delete.
6055 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
6056 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
6057 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
6058
ec91c4af 60592009-06-22 Martin Jambor <mjambor@suse.cz>
6060
6061 PR tree-optimization/40492
6062 * tree-sra.c (sra_modify_assign): Pass zero offsets to
6063 build_ref_for_offset.
6064
971ba038 60652009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
6066
6067 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
6068 JUMP_TABLE_DATA_P predicates where applicable.
6069 * auto-inc-dec.c: Ditto.
6070 * builtins.c: Ditto.
6071 * caller-save.c: Ditto.
6072 * calls.c: Ditto.
6073 * cfgcleanup.c: Ditto.
6074 * cfglayout.c: Ditto.
6075 * cfgrtl.c: Ditto.
6076 * combine.c: Ditto.
6077 * combine-stack-adj.c: Ditto.
6078 * cse.c: Ditto.
6079 * cselib.c: Ditto.
6080 * dbxout.c: Ditto.
6081 * df-scan.c: Ditto.
6082 * dse.c: Ditto.
6083 * dwarf2asm.c: Ditto.
6084 * dwarf2out.c: Ditto.
6085 * emit-rtl.c: Ditto.
6086 * except.c: Ditto.
6087 * explow.c: Ditto.
6088 * expmed.c: Ditto.
6089 * expr.c: Ditto.
6090 * final.c: Ditto.
6091 * function.c: Ditto.
6092 * fwprop.c: Ditto.
6093 * gcse.c: Ditto.
6094 * genpreds.c: Ditto.
6095 * genrecog.c: Ditto.
6096 * ifcvt.c: Ditto.
6097 * ira-costs.c: Ditto.
6098 * ira-lives.c: Ditto.
6099 * jump.c: Ditto.
6100 * loop-iv.c: Ditto.
6101 * lower-subreg.c: Ditto.
6102 * modulo-sched.c: Ditto.
6103 * optabs.c: Ditto.
6104 * postreload.c: Ditto.
6105 * print-rtl.c: Ditto.
6106 * recog.c: Ditto.
6107 * reginfo.c: Ditto.
6108 * regmove.c: Ditto.
6109 * reload1.c: Ditto.
6110 * reload.c: Ditto.
6111 * reorg.c: Ditto.
6112 * rtlanal.c: Ditto.
6113 * rtl.c: Ditto.
6114 * sched-vis.c: Ditto.
6115 * sdbout.c: Ditto.
6116 * sel-sched-ir.c: Ditto.
6117 * simplify-rtx.c: Ditto.
6118 * targhooks.c: Ditto.
6119 * var-tracking.c: Ditto.
6120 * vmsdbgout.c: Ditto.
6121
74f3a0fa 61222009-06-22 Matthias Klose <doko@ubuntu.com>
6123
6124 * Makefile.in (install-plugin): Always use DESTDIR.
6125
1b448af3 61262009-06-22 Olivier Hainque <hainque@adacore.com>
f6c8c8fc 6127
1b448af3 6128 * config/pa/pa.c (output_call): Don't optimize post call jumps
6129 into return address adjustments if the call may throw.
6130
e6ac8414 61312009-06-21 Richard Earnshaw <rearnsha@arm.com>
6132
6133 * arm.c (thumb1_output_casesi): New function.
6134 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
6135 optimizing for size or PIC.
6136 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
6137 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
6138 (casesi): Handle Thumb-1 when optimizing for size or PIC.
6139 (thumb1_casesi_internal_pic): New expand rule.
6140 (thumb1_casesi_dispatch): New pattern.
6141 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
6142 thumb-1 mode.
6143 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
6144 in the text seciton when PIC or optimizing for size.
6145 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
6146 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
6147 preservation properties of code.
6148 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
6149 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
6150 (__gnu_thumb1_case_si): New function.
6151 * t-arm (LIB1ASMSRC): Define here.
6152 (LIB1ASMFUNCS): Add some common functions.
6153 * t-arm-elf (LIB1ASMSRC): Delete.
6154 (LIB1ASMFUNCS): Append to existing set.
6155 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
6156 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
6157 * t-symbian (LIB1ASMFUNCS): Likewise.
6158 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
6159 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
6160
a974c7bc 61612009-06-21 Richard Guenther <rguenther@suse.de>
6162
6163 PR tree-optimization/38729
6164 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
6165 to loops with a single exit if -fno-expensive-optimizations.
6166
a8f6ad2b 61672009-06-21 Jakub Jelinek <jakub@redhat.com>
6168
6169 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
6170 (dataflow_set): Change vars type from htab_t to shared_hash.
6171 (shared_hash_pool, empty_shared_hash): New variables.
6172 (vars_clear): Removed.
6173 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
6174 shared_hash_find_slot_unshare, shared_hash_find_slot,
6175 shared_hash_find_slot_noinsert, shared_hash_find): New
6176 static inlines.
6177 (shared_hash_unshare, shared_hash_destroy): New functions.
6178 (unshare_variable): Unshare set->vars if shared, use
6179 shared_hash_htab.
6180 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
6181 (get_init_value, find_src_set_src, dump_dataflow_set,
6182 clobber_variable_part, emit_notes_for_differences): Use
6183 shared_hash_htab.
6184 (dataflow_set_init): Remove second argument, set vars to
6185 empty_shared_hash instead of creating a new htab.
6186 (dataflow_set_clear): Call shared_hash_destroy and set vars
6187 to empty_shared_hash instead of calling vars_clear.
6188 (dataflow_set_copy): Don't call vars_copy, instead just share
6189 the src htab with dst.
6190 (variable_union): Use shared_hash_*, use initially NO_INSERT
6191 lookup if set->vars is shared. Don't keep slot cleared before
6192 calling unshare_variable. Unshare set->vars if needed.
6193 Even ->refcount == 1 vars must be unshared if set->vars is shared
6194 and var needs to be modified.
6195 (variable_canonicalize): New function.
6196 (dataflow_set_union): If dst->vars is empty, just share src->vars
6197 with dst->vars and traverse with variable_canonicalize to canonicalize
6198 and unshare what is needed.
6199 (dataflow_set_different): If old_set and new_set use the same shared
6200 htab, they aren't different. If number of htab elements is different,
6201 htabs are different. Use shared_hash_*.
6202 (dataflow_set_destroy): Call shared_hash_destroy instead of
6203 htab_delete.
6204 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
6205 second argument to dataflow_set_init.
6206 (vt_initialize): Likewise. Initialize shared_hash_pool and
6207 empty_shared_hash, move bb in/out initialization afterwards.
6208 Use variable_htab_free instead of NULL as changed_variables del hook.
6209 (variable_was_changed): Change type of second argument to pointer to
6210 dataflow_set. When inserting var into changed_variables, bump
6211 refcount. Unshare set->vars if set is shared htab and slot needs to
6212 be cleared.
6213 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
6214 lookup if set->vars is shared. Unshare set->vars if needed.
6215 Even ->refcount == 1 vars must be unshared if set->vars is shared
6216 and var needs to be modified. Adjust variable_was_changed caller.
6217 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
6218 vars must be unshared if set->vars is shared and var needs to be
6219 modified. Adjust variable_was_changed caller.
6220 (emit_note_insn_var_location): Don't pool_free var.
6221 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
6222 instead of 1.
6223 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
6224 free_alloc_pool on shared_hash_pool.
6225
2eed1d69 62262009-06-20 Anthony Green <green@moxielogic.com>
6227
6228 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
6229 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
6230
09d9c774 62312009-06-20 Richard Guenther <rguenther@suse.de>
6232
6233 * tree-ssa-structalias.c (find_func_aliases): For memset use
6234 a constraint from NULL if we memset to zero.
6235 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
6236 we explicitly handle that do not read from memory.
6237 (call_may_clobber_ref_p_1): Properly handle builtins that may
6238 set errno.
6239
c2abd8e4 62402009-06-20 Richard Guenther <rguenther@suse.de>
6241
6242 PR tree-optimization/40495
6243 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
6244 (new_scalar_tmp_constraint_exp): New function.
6245 (process_constraint): Do not create temporary decls.
6246 (process_all_all_constraints): Likewise.
6247 (handle_const_call): Likewise.
6248 (create_function_info_for): Do not set decl.
6249
0a0a59fa 62502009-06-19 Ian Lance Taylor <iant@google.com>
6251
6252 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
6253 (rs6000_attribute_table): Make static; move before use.
6254
01d4d739 62552009-06-19 Eric Botcazou <ebotcazou@adacore.com>
6256
6257 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
6258 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
6259 Propagate the TREE_READONLY flag without overwriting it.
6260 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
6261 Propagate the TREE_READONLY flag onto the result.
6262 (process_call_operands): Move around. Use correct constant value.
6263
e4aeee53 62642009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6265
6266 PR target/40482
70a23968 6267 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
e4aeee53 6268 * config/arm/arm.md: Likewise.
6269
0f32121e 62702009-06-19 Ian Lance Taylor <iant@google.com>
6163a125 6271
6272 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
6273 to GIMPLE_ERROR_MARK.
6274
6275 * c-typeck.c (build_conditional_expr): Add op1_original_type and
70a23968 6276 op2_original_type parameters. Warn about using different enum types.
6163a125 6277 * c-parser.c (c_parser_conditional_expression): Pass original
6278 types to build_conditional_expr.
6279 * c-tree.h (build_conditional_expr): Update declaration.
6280
c451bee6 62812009-06-19 Ian Lance Taylor <iant@google.com>
6282
6283 * config/i386/i386.c (ix86_function_specific_save): Test that
6284 fields match values, rather than testing the values are in a
6285 certain range.
6286
047fdd47 62872009-06-19 Richard Guenther <rguenther@suse.de>
6288
6289 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
6290 ADDR_EXPR pointers.
6291 (ptr_derefs_may_alias_p): Likewise.
6292 (ptr_deref_may_alias_ref_p_1): New function.
6293 (ptr_deref_may_alias_ref_p): Likewise.
6294 (ref_maybe_used_by_call_p_1): Handle builtins that are not
6295 covered by looking at the ESCAPED solution.
6296 (call_may_clobber_ref_p_1): Likewise.
6297 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
6298 Handle NULL_TREE offset. Do not produce redundant constraints.
6299 (process_all_all_constraints): New helper function.
6300 (do_structure_copy): Use it.
6301 (handle_lhs_call): Likewise.
6302 (find_func_aliases): Handle some builtins with pointer arguments
6303 and/or return values explicitly.
6304
8e7b72c4 63052009-06-19 Ian Lance Taylor <iant@google.com>
6306
6307 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
6308
d8708296 63092009-06-19 Ian Lance Taylor <iant@google.com>
6310
6311 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
6312
1a7c0ccb 63132009-06-19 Ian Lance Taylor <iant@google.com>
6314
6315 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
6316 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
6317 version.
6318
6319 * c-decl.c (finish_decl): If -Wc++-compat, warn about
6320 uninitialized const.
6321
843bd2fa 63222009-06-19 Ian Lance Taylor <iant@google.com>
6323
6324 * dse.c (struct store_info): Rename bitmap field to bmap. Change
6325 all uses.
6326
6327 * c-decl.c (in_struct, struct_types): Remove.
6328 (struct c_binding): Add in_struct field.
6329 (c_binding_ptr): Define type, along with VEC.
6330 (struct c_struct_parse_info): Define.
6331 (struct_parse_info): New static variable.
6332 (bind): Initialize in_struct field.
6333 (start_struct): Remove enclosing_in_struct and
6334 enclosing_struct_types parameters. Add
6335 enclosing_struct_parse_info parameter. Change all callers. Set
6336 struct_parse_info rather than in_struct and struct_types.
6337 (grokfield): If -Wc++-compat and there is a symbol binding for the
6338 field name, set the in_struct flag and push it on the
6339 struct_parse_info->fields vector.
6340 (warn_cxx_compat_finish_struct): New static function.
6341 (finish_struct): Remove enclosing_in_struct and
6342 enclosing_struct_types parameters. Add
6343 enclosing_struct_parse_info parameter. Change all callers. Don't
6344 set C_TYPE_DEFINED_IN_STRUCT here. Call
6345 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
6346 parameter. Only push on struct_types if warn_cxx_compat.
6347 (finish_enum): Only push on struct_types if warn_cxx_compat.
6348 (declspecs_add_type): Add loc parameter. Change all callers.
6349 Change all error calls to error_at. Pass loc, not input_location,
6350 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
6351 defined in a struct. If -Wc++-compat and parsing a struct, record
6352 that a typedef name was used.
6353 * c-parser.c (c_parser_declspecs): Get location to pass to
6354 declspecs_add_type.
6355 (c_parser_struct_or_union_specifier): Update calls to start_struct
6356 and finish_struct.
6357 * c-tree.h (struct c_struct_parse_info): Declare.
6358 (finish_struct, start_struct): Update declarations.
6359 (declspecs_add_type): Update declaration.
6360
4a76ab2a 63612009-06-19 Ian Lance Taylor <iant@google.com>
6362
6363 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
6364 variable with an anonymous type.
6365
1f853dda 63662009-06-19 Uros Bizjak <ubizjak@gmail.com>
6367
6368 * see.c: Remove for real.
6369
b3154a1f 63702009-06-19 Uros Bizjak <ubizjak@gmail.com>
6371
6372 * optabs.h (enum optab_index): Add new OTI_significand.
6373 (significand_optab): Define corresponding macro.
6374 * optabs.c (init_optabs): Initialize significand_optab.
6375 * genopinit.c (optabs): Implement significand_optab using
6376 significand?f2 patterns.
6377 * builtins.c (expand_builtin_mathfn): Handle
6378 BUILT_IN_SIGNIFICAND{,F,L}.
6379 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
6380 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6381
6382 * config/i386/i386.md (significandxf2, significand<mode>2): New
6383 expanders to implement significandf, significand and significandl
6384 built-ins as inline x87 intrinsics.
6385
b32505d2 63862009-06-18 Anatoly Sokolov <aesok@post.ru>
6387
6388 * config/avr/avr.c (avr_override_options): Remove setting value of
6389 PARAM_INLINE_CALL_COST.
6390
8c1f2562 63912009-06-18 Richard Henderson <rth@redhat.com>
6392
6393 PR 40488
6394 * tree-pass.h (TDF_ASMNAME): New.
6395 * tree-dump.c (dump_options): Add asmname.
6396 * doc/invoke.texi: Document it.
6397
6398 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
6399 (dump_decl_name): ...here.
6400 (dump_function_name): New flags arg; mind TDF_ASMNAME.
6401 (dump_generic_node): Update dump_function_name calls.
6402 (print_call_name): New flags arg; update all dump calls.
6403 * diagnostic.h (print_call_name): Update.
6404 * gimple-pretty-print.c (dump_gimple_call): Update.
6405
4b85d273 64062009-06-18 H.J. Lu <hongjiu.lu@intel.com>
6407
6408 PR target/40470
6409 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
6410
8e6de413 64112009-06-18 Diego Novillo <dnovillo@google.com>
6412
6413 * doc/plugins.texi: Document plugin_is_GPL_compatible.
6414 * plugin.c (str_license): Declare.
6415 (try_init_one_plugin): Assert that the symbol
6416 'plugin_is_GPL_compatible' exists.
6417
0b99ff3e 64182009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
6419
6420 * see.c: Remove.
6421 * Makefile.in (OBJS-common): Remove see.o.
6422 (see.o): Remove.
6423 * common.opt (fsee): Mark as preserved for backward compatibility.
f6c8c8fc 6424 * opts.c (common_handle_option): Add OPT_fsee to the backward
0b99ff3e 6425 compatibility section.
6426 * passes.c (init_optimization_passes, pass_see): Remove pass.
6427 * timevar.def (TV_SEE): Remove.
6428 * tree-pass.h (pass_see): Remove declaration.
6429 * doc/invoke.texi (-fsee): Remove documentation.
f6c8c8fc 6430
33c3560d 64312009-06-18 Martin Jambor <mjambor@suse.cz>
6432
6433 * tree-sra.c: Include statistics.h
6434 (sra_stats): New variable.
6435 (sra_initialize): Clear sra_stats.
6436 (create_access_replacement): Increment sra_stats.replacements.
6437 (get_access_replacement): Do not return twice.
6438 (analyze_all_variable_accesses): Increment statistics counter by the
6439 number of scalarized aggregates.
6440 (generate_subtree_copies): Increment sra_stats.subtree_copies.
6441 (sra_modify_expr): Increment sra_stats.exprs.
6442 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
6443 (sra_modify_assign): Increment sra_stats.exprs,
6444 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
6445 (perform_intra_sra): Update statistics counters.
6446 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
6447
546af3f3 64482009-06-18 Sandra Loosemore <sandra@codesourcery.com>
6449
6450 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
6451 (arm_scalar_mode_supported_p): New function.
6452
42746368 64532009-06-18 Paul Brook <paul@codesourcery.com>
6454 Sandra Loosemore <sandra@codesourcery.com>
6455
6456 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
6457 (__extendhfsf2, __truncsfhf2): Define.
6458 * config/arm/fp16.c: New file.
6459 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
6460 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
6461
9b8516be 64622009-06-18 Sandra Loosemore <sandra@codesourcery.com>
6463
6464 * doc/extend.texi (Half-Precision): New section.
6465 * doc/invoke.texi (Option Summary): List -mfp16-format.
6466 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
6467 * config/arm/arm.opt (mfp16-format=): New.
6468 * config/arm/arm.c: Include intl.h.
6469 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
6470 (TARGET_INVALID_RETURN_TYPE): Redefine.
6471 (TARGET_PROMOTED_TYPE): Redefine.
6472 (TARGET_CONVERT_TO_TYPE): Redefine.
6473 (arm_fp16_format): Define.
6474 (all_fpus): Add entry for neon-fp16.
6475 (fp_model_for_fpu): Likewise.
6476 (struct fp16_format): Declare.
6477 (all_fp16_formats): Define.
6478 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
6479 functions.
6480 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
6481 and no ldrh.
6482 (arm_legitimate_index_p): Treat HFmode like HImode.
6483 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
6484 (coproc_secondary_reload_class): Special-case HFmode.
6485 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
6486 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
6487 (arm_init_fp16_builtins): New.
6488 (arm_init_builtins): Call it.
6489 (arm_invalid_parameter_type): New.
6490 (arm_invalid_return_type): New.
6491 (arm_promoted_type): New.
6492 (arm_convert_to_type).
6493 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
6494 format.
6495 (arm_emit_fp16_const): New function.
6496 (arm_mangle_type): Mangle __fp16 as "Dh".
6497 * config/arm/arm.h (TARGET_VFPD32): Make it know about
6498 FPUTYPE_NEON_FP16.
6499 (TARGET_NEON_FP16): New.
6500 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
6501 (enum fputype): Add FPUTYPE_NEON_FP16.
6502 (enum arm_fp16_format_type): Declare.
6503 (arm_fp16_format): Declare.
6504 (LARGEST_EXPONENT_IS_NORMAL): Define.
6505 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
6506 * config/arm/arm-modes.def (HFmode): Define.
6507 * config/arm/vfp.md: (*movhf_vfp): New.
6508 (extendhfsf2): New.
6509 (truncsfhf2): New.
6510 * config/arm/arm.md: (fpu): Add neon_fp16.
6511 (floatsihf2, floatdihf2): New.
6512 (fix_trunchfsi2, fix_trunchfdi2): New.
6513 (truncdfhf2): New.
6514 (extendhfdf2): New.
6515 (movhf): New.
6516 (*arm32_movhf): New.
6517 (*thumb1_movhf): New.
6518 (consttable_2): Add check for HFmode constants.
6519 (consttable_4): Handle HFmode constants.
6520
ab60f474 65212009-06-18 Uros Bizjak <ubizjak@gmail.com>
6522
6523 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
6524
71a0b254 65252009-06-17 Olivier Hainque <hainque@adacore.com>
6526
6527 * collect2.c (main): Use CONST_CAST2 to perform char ** to
6528 const char ** conversion in AIX specific section.
f6c8c8fc 6529
c119b8ad 65302009-06-17 H.J. Lu <hongjiu.lu@intel.com>
6531
6532 * config/i386/i386.c (ix86_special_builtin_type): Remove
6533 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
6534 (bdesc_special_args): Updated.
6535 (ix86_init_mmx_sse_builtins): Likewise.
6536 (ix86_expand_special_args_builtin): Likewise.
6537
7585370f 65382009-06-17 Richard Henderson <rth@redhat.com>
6539
6540 * tree-pretty-print.c (maybe_dump_asm_name): New.
6541 (dump_decl_name): Use it.
6542 (PRINT_FUNCTION_NAME): Merge into...
6543 (dump_function_name): ... here. Use maybe_dump_asm_name.
6544
1488fe24 65452009-06-17 Cary Coutant <ccoutant@google.com>
6546
6547 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
6548 Change caller.
6549 * debug.c (struct gcc_debug_hooks): Change placeholder for
6550 source_line hook.
6551 (debug_nothing_int_charstar_int): Replaced by...
6552 (debug_nothing_int_charstar_int_bool): ...this.
6553 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
6554 source_line prototype.
6555 (debug_nothing_int_charstar_int): Replaced by...
6556 (debug_nothing_int_charstar_int_bool): ...this.
6557 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
6558 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
6559 Output is_stmt operand when necessary.
cc85e995 6560 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1488fe24 6561 (notice_source_line): Add is_stmt parameter.
6562 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
6563 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
6564 Change callers.
6565 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
6566 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
6567
584511c1 65682009-06-17 Ian Lance Taylor <iant@google.com>
6569
6570 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
6571 Change all uses.
6572 (struct store_by_pieces_d): Rename from store_by_pieces. Change
6573 call uses.
6574
98112881 65752009-06-17 Adam Nemet <anemet@caviumnetworks.com>
6576
6577 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
6578 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
6579 tree_strip_sign_nop_conversions and
6580 tree_ssa_strip_useless_type_conversions rather than stripping
6581 the operations here.
6582 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
6583 Declare them.
6584 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
6585 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
6586 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
6587 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
6588 functions.
6589
40cbc433 65902009-06-17 Michael Eager <eager@eagercon.com>
6591
c6aaf951 6592 * config/rs6000/constraints.md (register_constraint "d"): New.
6593 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
6594 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
6595 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
6596 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
6597 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
6598 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
6599 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
6600 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
40cbc433 6601 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
6602 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c6aaf951 6603 __fctiwz): Same.
6604 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
40cbc433 6605 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
6606 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
6607 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c6aaf951 6608 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
6609 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
6610 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
6611 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
6612 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
6613 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
6614 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
6615 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
6616 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
40cbc433 6617 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
6618
c5bafa96 66192009-06-16 Ian Lance Taylor <iant@google.com>
6620
6621 * profile.c (total_num_never_executed): Don't define.
6622 (compute_branch_probabilities): Don't count or print
6623 num_never_executed.
6624 (init_branch_prob): Don't set total_num_never_executed.
6625 (end_branch_prob): Don't print total_num_never_executed.
6626
326fb3fd 66272009-06-17 David Daney <ddaney@caviumnetworks.com>
6628
c6aaf951 6629 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
326fb3fd 6630
bfe6deb6 66312009-06-17 David Edelsohn <edelsohn@gnu.org>
6632
6633 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
6634 (nabstd2_fpr): Same.
6635
aa7bb50e 66362009-06-17 Steve Ellcey <sje@cup.hp.com>
6637
6638 * expr.c (expand_assignment): Change complex type check.
6639
d4fcd9bc 66402009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
6641
f6c8c8fc 6642 * doc/plugins.texi (Building GCC plugins): Added new section.
d4fcd9bc 6643
019c559b 66442009-06-17 Ian Lance Taylor <iant@google.com>
6645
6646 * c-pch.c (get_ident): Don't set size of templ array.
6647 (pch_init): Don't set size of partial_pch array.
6648
6649 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
6650 string constant to intialize an array whose size is the length of
6651 the string.
6652
c7e30df8 66532009-06-17 Richard Guenther <rguenther@suse.de>
6654
6655 PR tree-optimization/40389
6656 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
6657 to addressable types.
6658 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
6659
0f0057aa 66602009-06-17 Richard Guenther <rguenther@suse.de>
6661
6662 PR middle-end/40460
6663 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
6664 if there is no evolution of left in the loop bail out.
6665 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
6666 chrec_fold_multiply.
6667
b1e84b78 66682009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
6669 Janis Johnson <janis187@us.ibm.com>
6670
6671 PR target/39254
6672 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
6673 for the symbol ref of a constant that is the source of a move
6674 - nor for any other not-obvious-label-ref constants.
6675
d5fa1515 66762009-06-16 Olatunji Ruwase <tjruwase@google.com>
6677
c5bafa96 6678 * plugin.c (position_pass): Skip newly inserted pass during list
d5fa1515 6679 traversal to avoid repeated insertion.
6680
3a61a8b9 66812009-06-16 Ian Lance Taylor <iant@google.com>
6682
6683 * vec.h (VEC_stack_alloc): Define different version if
6684 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
6685 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
6686 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
6687 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
6688
b2db647e 66892009-06-16 H.J. Lu <hongjiu.lu@intel.com>
6690
6691 * config.gcc (extra_headers): Add ia32intrin.h for x86.
6692
6693 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
6694 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
6695 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
6696 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
6697 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
6698 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c6aaf951 6699 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
b2db647e 6700 (bdesc_special_args): Add __builtin_ia32_rdtsc and
6701 __builtin_ia32_rdtscp.
6702 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
6703 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c6aaf951 6704 and __builtin_ia32_rorhi.
b2db647e 6705 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
6706 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c6aaf951 6707 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
b2db647e 6708 (ix86_expand_args_builtin): Likewise.
6709 (ix86_expand_special_args_builtin): Likewise.
6710
6711 * config/i386/i386.md (UNSPECV_RDTSCP): New.
6712 (UNSPECV_RDTSC): Likewise.
6713 (UNSPECV_RDPMC): Likewise.
c6aaf951 6714 (*bsr): Renamed to ...
b2db647e 6715 (bsr): This
c6aaf951 6716 (*bsr_rex64): Renamed to ...
b2db647e 6717 (bsr_rex64): This.
6718 (rdpmc): New.
6719 (*rdpmc): Likewise.
6720 (*rdpmc_rex64): Likewise.
6721 (rdtsc): Likewise.
6722 (*rdtsc): Likewise.
6723 (*rdtsc_rex64): Likewise.
6724 (rdtscp): Likewise.
6725 (*rdtscp): Likewise.
6726 (*rdtscp_rex64): Likewise.
6727
6728 * config/i386/ia32intrin.h: New.
6729
6730 * config/i386/x86intrin.h: Include <ia32intrin.h>.
6731
8efd2ddb 67322009-06-16 Ian Lance Taylor <iant@google.com>
6733
6734 * ira-build.c (copy_info_to_removed_store_destinations):
6735 Initialize parent_a.
6736
b99f3c92 67372009-06-16 Ian Lance Taylor <iant@google.com>
6738
6739 * c-decl.c (grokdeclarator): Change size_varies to bool.
6740
40b15760 67412009-06-16 Ian Lance Taylor <iant@google.com>
6742
6743 * sel-sched.c: Make forward declarations of move_op_hooks and
6744 fur_hooks explicitly extern.
6745
8dc2823a 67462009-06-16 Ian Lance Taylor <iant@google.com>
6747
c6aaf951 6748 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
8dc2823a 6749 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
6750
10a15ee4 67512009-06-16 Ian Lance Taylor <iant@google.com>
6752
6753 * resource.c (mark_referenced_resources): Change
6754 include_delayed_effects parameter to bool. Change all callers.
6755 (mark_end_of_function_resources): Likewise.
6756 * reorg.c (insn_references_resource_p): Likewise.
6757 (insn_sets_resource_p): Likewise.
6758 * resource.h (mark_referenced_resources): Update declaration.
6759 (mark_end_of_function_resources): Update declaration.
6760
c7e5ac45 67612009-06-16 David Edelsohn <edelsohn@gnu.org>
6762
6763 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
6764
bbe0f5ef 67652009-06-16 David Edelsohn <edelsohn@gnu.org>
6766
6767 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
6768 GCC can bootstrap on AIX with GNU Binutils 2.20.
6769
957d66f3 67702009-06-16 Ian Lance Taylor <iant@google.com>
6771
6772 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
6773
4345dfaa 67742009-06-16 Ian Lance Taylor <iant@google.com>
6775
6776 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
6777 inline, not extern inline.
6778 (exact_log2): Likewise.
6779 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
6780 test CLZ_HWI.
6781 (exact_log2): Likewise, but don't test CTZ_HWI.
6782
c623bf22 67832009-06-16 Ian Lance Taylor <iant@google.com>
6784
6785 * bitmap.c (bitmap_clear): Don't declare as inline.
6786 * gimple.c (gimplify_assign): Likewise.
6787 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
6788 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
6789 (sched_scan_info): Remove duplicate definition.
6790
48d94ede 67912009-06-16 Ian Lance Taylor <iant@google.com>
6792
6793 * c-common.c (skip_evaluation): Don't define.
6794 (c_inhibit_evaluation_warnings): Define global variable.
6795 (overflow_warning): Check c_inhibit_evaluation_warnings rather
6796 than skip_evaluation.
6797 (convert_and_check, warn_for_div_by_zero): Likewise.
6798 * c-common.h (skip_evaluation): Don't declare.
6799 (c_inhibit_evaluation_warnings): Declare.
6800 * c-parser.c (c_parser_typeof_specifier): Set
6801 c_inhibit_evaluation_warnings rather than skip_evaluation.
6802 (c_parser_conditional_expression): Likewise.
6803 (c_parser_binary_expression): Likewise.
6804 (c_parser_sizeof_expression): Likewise.
6805 (c_parser_alignof_expression): Likewise.
6806 * c-typeck.c (build_indirect_ref): Check
6807 c_inhibit_evaluation_warnings rather than skip_evaluation.
6808 (build_conditional_expr, build_binary_op): Likewise.
6809
e8146f09 68102009-06-16 Richard Guenther <rguenther@suse.de>
6811
6812 * tree-ssa-alias.c (is_escape_site): Remove.
6813 * tree-ssa-alias.h (enum escape_type): Remove.
6814 (is_escape_site): Likewise.
6815 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
6816 via casts and asms without deferring to is_escape_site.
6817
60a132a9 68182009-06-16 Jakub Jelinek <jakub@redhat.com>
6819
6820 PR middle-end/40446
6821 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
6822 use gen_lowpart if op0 has complex mode.
6823
c174c650 68242009-06-16 Richard Guenther <rguenther@suse.de>
6825
6826 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
6827 variables add them to ESCAPED.
c6aaf951 6828 (find_func_aliases): Do not make all indirectly stored values escaped.
c174c650 6829
929bec98 68302009-06-16 Rafael Avila de Espindola <espindola@google.com>
6831
6832 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
6833 make_decl_one_only.
6834
ea8ae162 68352009-06-16 Martin Jambor <mjambor@suse.cz>
6836
6837 PR tree-optimization/40432
6838 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
6839 check whether we need to force gimple register operand.
6840
f18b05a3 68412009-06-16 Martin Jambor <mjambor@suse.cz>
6842
6843 PR tree-optimization/40413
6844 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
6845 build_ref_for_offset.
6846 (propagate_subacesses_accross_link): Fix a typo in a comment.
6847
ade2ac53 68482009-06-16 Ira Rosen <irar@il.ibm.com>
6849
6850 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
6851 with additional parameter.
c6aaf951 6852 * tree-vectorizer.h (enum vect_def_type): Add new value
ade2ac53 6853 vect_nested_cycle.
6854 (enum vect_relevant): Add comments.
6855 (vect_is_simple_reduction): Add new argument.
6856 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
6857 Detect nested cycles.
6858 (vect_is_simple_reduction): Update documentation, add an argument to
6859 distinguish inner-loop reduction from nested cycle, detect nested
6860 cycles, fix printings and indentation, don't swap operands in case
6861 of nested cycle.
6862 (get_initial_def_for_reduction): Handle subtraction.
6863 (vect_create_epilog_for_reduction): Add new argument to specify
6864 reduction variable.
6865 (vect_finalize_reduction): Handle subtraction, fix comments.
c6aaf951 6866 (vectorizable_reduction): Handle nested cycles. In case of nested
f6c8c8fc 6867 cycle keep track of the reduction variable position. Call
7c1037d2 6868 vect_is_simple_reduction with additional parameter. Use original
ade2ac53 6869 statement code in reduction epilogue for nested cycle. Call
6870 vect_create_epilog_for_reduction with additional parameter.
c6aaf951 6871 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
6872 inner-loop vectorization.
ade2ac53 6873 (vect_recog_widen_sum_pattern): Likewise.
6874 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
6875 and reductions.
6876 (vect_mark_stmts_to_be_vectorized): Likewise.
6877 (vect_get_vec_def_for_operand): Handle nested cycles.
6878
fb35baeb 68792009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6880
6881 * doc/invoke.texi (Debugging Options): Fix option index entries
6882 for -fdump-statistics, -frandom-seed add entries for
6883 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
6884 (FRV Options): Fix entries for -mTLS, -mtls.
6885 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
6886 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
6887 (M68hc1x Options): Fix @itemx for -mnominmax.
6888 (MCore Options): Fix entry for -mno-lsim.
6889 (MMIX Options): Fix entry for -mabi=mmixware.
6890 (PDP-11 Options): Fix entry for -mbcopy-builtin.
6891
9dc75945 68922009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
6893
6894 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
6895 Mention the plugin mode of gengtype.
c6aaf951 6896 * doc/gty.texi (Source Files Containing Type Information): Likewise.
9dc75945 6897 * gengtype.c: Updated copyright.
6898 (plugin_files, nb_plugin_files) Added new static variables.
6899 (measure_input_list) Care about plugin_files.
6900 (write_rtx_next): Added early return in plugin mode.
6901 (create_file): Updated copyright year in generated file. Added
6902 asserts.
6903 (oprintf): Added early return if NULL outf.
6904 (get_output_file_with_visibility): Care of plugin_files.
6905 (get_output_file_name): May return null.
6906 (write_local): Added early return.
6907 (put_mangled_filename): Ditto.
6908 (finish_root_table): Added check for base_files.
6909 (write_roots): Care about null when plugins.
6910 (main): Added plugin mode.
6911
f805d53d 69122009-06-15 Ian Lance Taylor <iant@google.com>
6913
c6aaf951 6914 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
f805d53d 6915 * gcov.c (read_count_file): Add braces around variables declared
6916 before label.
6917
6918 * c.opt (Wjump-misses-init): New warning.
6919 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
6920 -Wall and -Wc++-compat if not already set.
6921 (c_common_post_options): Clear warn_jump_misses_init if it was not
6922 set.
6923 * c-decl.c (struct c_binding): Change type field to a union with
6924 new label field. Make it the first field in the struct. Update
6925 references to type to use u.type instead.
6926 (struct c_spot_bindings): Define.
6927 (struct c_goto_bindings): Define.
6928 (c_goto_bindings_p): Define, along with VECs.
6929 (struct c_label_vars): Define.
6930 (struct c_scope): Add has_label_bindings field.
6931 (bind_label, set_spot_bindings): New static functions.
6932 (decl_jump_unsafe, update_spot_bindings): New static functions.
6933 (update_label_decls): New static function.
6934 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
6935 Update binding u.label field to shadowed field.
6936 (c_binding_start_stmt_expr): New function.
6937 (c_binding_end_stmt_expr): New function.
6938 (pushdecl): Don't call c_begin_vm_scope.
6939 (make_label): Add defining and p_label_vars parameters. Change
6940 all callers.
6941 (lookup_label): Correct test for whether a label has not yet been
6942 defined. Call bind_label rather than bind.
6943 (warn_about_goto): New static function.
6944 (lookup_label_for_goto): New function.
6945 (declare_label): Call bind_label rather than bind.
6946 (check_earlier_gotos): New static function.
6947 (define_label): Don't give errors about jumping into statement
6948 expressions or scopes of variably modified types. Call
6949 set_spot_bindings and check_earlier_gotos. Call bind_label
6950 instead of bind. Don't set label_context_stack_se or
6951 label_context_stack_vm.
6952 (c_get_switch_bindings): New function.
6953 (c_release_switch_bindings): New function.
6954 (c_check_switch_jump_warnings): New function.
6955 (start_function): Don't set label_context_stack_se or
6956 label_context_stack_vm.
6957 (finish_function): Likewise.
6958 * c-typeck.c (label_context_stack_se): Don't define.
6959 (label_context_stack_vm): Don't define.
6960 (c_finish_goto_label): Call lookup_label_for_goto rather than
6961 lookup_label. Don't give errors about jumping into a statement
6962 expression or the scope of a variably modified type. Don't set
6963 label_context_stack_se or label_context_stack_vm.
6964 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
6965 fields. Add bindings field.
6966 (c_start_case): Don't set deleted fields. Set bindings field.
6967 (do_case): Rework order of tests. Don't check blocked_stmt_expr
6968 or blocked_vm. Call c_check_switch_jump_warnings.
6969 (c_finish_case): Don't test blocked_stmt_expr field. Call
6970 c_release_switch_bindings.
6971 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
6972 c_switch_stack. Don't walk label_context_stack_se labels. Don't
6973 set label_context_stack_se. Call c_bindings_start_stmt_expr.
6974 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
6975 c_switch_stack. Don't walk label_context_stack_se labels. Don't
6976 set label_context_stack_se. Call c_bindings_end_stmt_expr.
6977 (c_begin_vm_scope, c_end_vm_scope): Don't define.
6978 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
6979 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
6980 (C_DECL_UNJUMPABLE_VM): Don't define.
6981 (C_DECL_UNDEFINABLE_VM): Don't define.
6982 (struct c_label_list): Don't define.
6983 (struct c_label_context_se): Don't define.
6984 (struct c_label_context_vm): Don't define.
6985 (struct c_spot_bindings): Declare.
6986 (c_bindings_start_stmt_expr): Declare.
6987 (c_bindings_end_stmt_expr): Declare.
6988 (lookup_label_for_goto): Declare.
6989 (c_get_switch_bindings, c_release_switch_bindings): Declare.
6990 (c_check_switch_jump_warnings): Declare.
6991 (label_context_stack_se, label_context_stack_vm): Don't declare.
6992 (c_finish_goto_label): Update declaration.
6993 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
6994 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
6995 (Warning Options): Document -Wjump-misses-init.
6996
56b5c963 69972009-06-15 Jakub Jelinek <jakub@redhat.com>
6998
6999 * tree-object-size.c (addr_object_size): Fix a pasto in the last
7000 change.
7001
02527fdb 70022009-06-15 Rafael Avila de Espindola <espindola@google.com>
7003
7004 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
7005
0b35068b 70062009-06-15 Aldy Hernandez <aldyh@redhat.com>
7007
7008 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
7009
70102009-06-15 Aldy Hernandez <aldyh@redhat.com>
7011
7012 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
7013
ecd88073 70142009-06-15 Rafael Avila de Espindola <espindola@google.com>
7015
7016 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
7017 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
7018 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
7019 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c6aaf951 7020 * dwarf2asm.c (dw2_force_const_mem): Update call to
7021 make_decl_one_only.
ecd88073 7022 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
7023 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
7024 * langhooks.c (lhd_comdat_group): Remove.
7025 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
7026 * tree.h (DECL_COMDAT_GROUP): New.
7027 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
7028 (tree_decl_with_vis): Add comdat_group. Remove one_only.
7029 (make_decl_one_only): Change signature.
7030 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
7031 make_decl_one_only.
7032 (make_decl_one_only): Change signature.
7033 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
7034
c6f3d74f 70352009-06-15 Richard Guenther <rguenther@suse.de>
7036
7037 PR middle-end/40439
7038 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
7039
92b84fc3 70402009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7041
7042 * tree-ssa-math-opts.c: Remove extra divide.
7043
497042b8 70442009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7045
7046 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
7047
84cc784c 70482009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7049
7050 * passes.c: Add bswap pass.
7051 * tree-pass.h: Add pass_optimize_bswap declaration.
7052 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
7053 Include rtl.h, expr.h and optabs.h for optab_handler check.
7054 (struct symbolic_number, pass_optimize_bswap): New definition.
7055 (do_shift_rotate, verify_symbolic_number_p): New functions.
7056 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
7057 (gate_optimize_bswap): New function.
7058 * tree.c (widest_int_cst_value): New function.
7059 * tree.h (widest_int_cst_value): Prototype added.
7060
d9beaaeb 70612009-06-14 Steven Bosscher <steven@gcc.gnu.org>
7062
7063 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
7064 REG_EQUAL/REG_EQUIV notes.
7065
60b9b3ae 70662009-06-14 Richard Guenther <rguenther@suse.de>
7067
7068 PR middle-end/40389
7069 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
7070 has its address taken if NRV was applied and it is addressable.
7071 * tree-ssa-structalias.c (get_constraint_for_address_of): New
7072 function split out from ...
7073 (get_constraint_for_1): ... here.
7074 (handle_rhs_call): Use it to mark the return slot escaped if
7075 it is addressable and NRV was applied.
7076
65edca84 70772009-06-13 Aldy Hernandez <aldyh@redhat.com>
7078
7079 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
7080 Change first argument type to location_t.
7081 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
7082 Do not set input_location.
7083 Use loc instead of input_location throughout.
7084
286fa508 70852009-06-13 Richard Guenther <rguenther@suse.de>
7086
60b9b3ae 7087 PR tree-optimization/40421
286fa508 7088 * tree-predcom.c (should_unroll_loop_p): Remove.
7089 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
7090
052a8489 70912009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
7092
7093 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7094 Add location argument.
7095
54e46243 70962009-06-13 Aldy Hernandez <aldyh@redhat.com>
7097
7098 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
7099 build_decl.
7100 * config/s390/s390.c (s390_build_builtin_va_list): Same.
7101 (s390_gimplify_va_arg): Pass location to create_artificial_label.
7102 * config/spu/spu-protos.h: Add location to
7103 spu_resolve_overloaded_builtin.
7104 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
7105 spu_build_builtin_va_list.
7106 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
7107 argument. Pass location to build_function_call_vec.
7108 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
7109 build_decl.
7110 (emit_fpu_switch): Same.
7111 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
7112 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
7113 to build_decl and create_artificial_label.
7114 (xtensa_gimplify_va_arg_expr): Same.
7115 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
7116 (xstormy16_gimplify_va_arg_expr): Same.
7117 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
7118 * config/arm/arm.c (arm_build_builtin_va_list): Same.
7119 * config/mips/mips.c (mips_build_builtin_va_list): Same.
7120 (mips16_build_function_stub): Same.
7121 (mips16_build_call_stub): Same.
7122
0bdb6455 71232009-06-13 Richard Earnshaw <rearnsha@arm.com>
7124
7125 PR target/40327
7126 * arm/constraints.md (Pa, Pb): New constraints.
f6c8c8fc 7127 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
0bdb6455 7128 split pattern to deal with them.
7129
a9077cc3 71302009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
7131
7132 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
7133 fix index entry for -Xpreprocessor.
7134
f69f268d 71352009-06-12 Aldy Hernandez <aldyh@redhat.com>
7136
7137 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7138 Add location argument to build_decl call.
7139 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
7140 (rs6000_init_builtins): Same.
7141 (spe_init_builtins): Same.
7142 (rs6000_gimplify_va_arg): Add location argument to
7143 create_artificial_label call.
7144
738c9748 71452009-06-12 Steven Bosscher <steven@gcc.gnu.org>
7146
7147 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
7148 * combine-stack-adj.c (pass_stack_adjustments): Use it.
7149 * Makefile.in: Fix GGC dependency for gcse.o.
7150
e60a6f7b 71512009-06-12 Aldy Hernandez <aldyh@redhat.com>
7152
7153 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
7154 * gimple-pretty-print.c (dump_gimple_stmt): Same.
7155 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
7156 created.
7157 * c-parser.c (c_parser_binary_expression): Use current column while
7158 building binary operations.
7159 * common.opt (fshow-column): Enable by default.
7160 * tree-vrp.c (check_array_ref): Use warning_at.
7161 (check_array_bounds): Use location from call back if expr has no
7162 location.
7163 * tree.h: Add location argument to maybe_fold_*.
7164 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
7165 (maybe_fold_offset_to_array_ref): Add location argument and use it.
7166 (maybe_fold_offset_to_component_ref): Same.
7167 (maybe_fold_offset_to_reference): Same.
7168 (maybe_fold_offset_to_address): Same.
7169 (maybe_fold_stmt_indirect): Same.
7170 (maybe_fold_stmt_addition): Same.
7171 (fold_stmt_r): Pass location to maybe_fold_*.
7172 (fold_gimple_assign): Same.
7173 * c-tree.h: Add location argument to finish_decl,
7174 default_function_array_conversion, store_init_value.
7175 * c-decl.c (define_label): Use error_at.
7176 (c_make_fname_decl): Pass location to finish_decl.
7177 (finish_decl): New location argument.
7178 (build_compound_literal): Pass location to store_init_value.
7179 (grokdeclarator): Pass location to finish_decl.
7180 (grokfield): Same.
7181 * c-typeck.c (array_to_pointer_conversion): New location argument.
7182 (function_to_pointer_conversion): Same.
7183 (default_function_array_conversion): Same.
7184 (parser_build_unary_op): Pass location to overflow_warning.
7185 (parser_build_binary_op): Same. Use warning_at.
7186 (build_unary_op): Pass location to array_to_pointer_conversion.
7187 (build_c_cast): Pass location to digest_init.
7188 (build_modify_expr): New location argument.
7189 (convert_for_assignment): Same.
7190 (store_init_value): Same.
7191 (digest_init): Same.
7192 (output_init_element): Pass location to digest_init and
7193 array_to_pointer_conversion.
7194 (c_finish_return): Pass location to convert_for_assignment.
7195 * gimplify.c (gimplify_conversion): Pass location to
7196 maybe_fold_offset_to_address.
7197 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
7198 to maybe_fold_stmt_addition.
7199 * c-omp.c (c_finish_omp_atomic): Pass new location to
7200 build_modify_expr.
7201 (c_finish_omp_for): Same.
7202 * c-common.c (overflow_warning): New argument.
7203 * c-common.h: New argument to build_modify_expr, overflow_warning.
7204 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
7205 finish_decl.
7206 (c_parser_initializer): Pass location to
7207 default_function_array_conversion.
7208 (c_parser_initelt): Same.
7209 (c_parser_initval): Same.
7210 (c_parser_asm_operands): Same.
7211 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
7212 (c_parser_conditional_expression): Same.
7213 (c_parser_binary_expression): Add location info to stack. Use it.
7214 (c_parser_unary_expression): Pass location to
7215 default_function_array_conversion, parser_build_unary_op,
7216 build_indirect_ref, c_parser_postfix_expression_after_primary.
7217 (c_parser_postfix_expression_after_primary): New location argument.
7218 Use it.
7219 (c_parser_expression_conv): Pass location to
7220 default_function_array_conversion.
7221 (c_parser_expr_list): Same.
7222 (c_parser_omp_atomic): Same.
7223 (c_parser_omp_for_loop): Same.
7224 * c-tree.h: (struct c_declarator): Add comment to id_loc.
7225 (build_array_declarator): New argument.
7226 * c-decl.c (build_array_declarator): Add location argument.
7227 (grokdeclarator): Set id_loc for cdk_array.
7228 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
7229 build_array_declarator.
7230 * tree.c (build_omp_clause): Add location argument.
7231 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
7232 (OMP_CLAUSE_LOCATION): New macro.
7233 (struct tree_omp_clause): Add location field.
7234 (build_omp_clause): Add argument.
7235 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
7236 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
7237 build_omp_clause.
7238 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
7239 (cp_parser_omp_clause_collapse): Same.
7240 (cp_parser_omp_clause_default): Same.
7241 (cp_parser_omp_clause_if): Same.
7242 (cp_parser_omp_clause_nowait): Same.
7243 (cp_parser_omp_clause_num_threads): Same.
7244 (cp_parser_omp_clause_ordered): Same.
7245 (cp_parser_omp_clause_schedule): Same.
7246 (cp_parser_omp_clause_untied): Same.
7247 (cp_parser_omp_for_loop): Same.
7248 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
7249 * c-tree.h (c_start_case): Add location argument.
7250 (c_process_expr_stmt): Same.
7251 (c_finish_goto_*): Same.
7252 * tree-parloops.c (initialize_reductions): Pass location to
7253 build_omp_clause.
7254 (create_parallel_loop): Same.
7255 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
7256 (gfc_trans_omp_reduction_list): Same.
7257 (gfc_trans_omp_clauses): Same.
7258 (gfc_trans_omp_do): Same.
7259 * c-typeck.c (c_finish_goto_label): Same.
7260 (c_finish_goto_ptr): New location argument.
7261 (c_start_case): Same.
7262 (emit_side_effect_warnings): Same.
7263 (c_process_expr_stmt): Same.
7264 (c_finish_stmt_expr): Same.
7265 (c_finish_omp_clauses): Use error_at instead of error.
7266 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
7267 build_omp_clause.
7268 * c-omp.c (c_split_parallel_clauses): New location argument.
7269 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
7270 to build_omp_clause.
7271 (convert_local_reference_stmt): Same.
7272 (convert_gimple_call): Same.
7273 * c-common.h (c_split_parallel_clauses): New argument.
7274 * c-parser.c (c_parser_statement_after_labels): Pass location to
7275 c_finish_goto_label.
7276 (c_parser_switch_statement): Pass location to c_start_case.
7277 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
7278 and c_process_expr_stmt.
7279 (c_parser_omp_variable_list): Add location argument.
c6aaf951 7280 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
e60a6f7b 7281 (c_parser_omp_clause_default): Same.
7282 (c_parser_omp_clause_if): Same.
7283 (c_parser_omp_clause_num_threads): Same.
7284 (-c_parser_omp_clause_ordered): Same.
7285 (c_parser_omp_clause_reduction): Pass location to
7286 c_parser_omp_variable_list.
7287 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
7288 (c_parser_omp_clause_untied): Same.
7289 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c6aaf951 7290 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
e60a6f7b 7291
7292 * c-tree.h (check_for_loop_decls, undeclared_variable,
7293 build_component_ref, build_array_ref, build_external_ref,
7294 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
7295 build_conditional_expr, build_compound_expr, c_cast_expr,
7296 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
7297 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
7298 argument.
7299 * c-semantics.c (build_stmt): Same.
7300 (build_case_label): Same.
7301 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
7302 (undeclared_variable): New argument.
7303 (make_label): Same.
7304 (lookup_label): Pass location on down.
7305 (define_label): Same.
7306 (finish_decl): Same.
7307 (build_compound_literal): Same.
7308 (finish_struct): Same.
7309 (finish_function): Do not set location here.
7310 (check_for_loop_decls): New argument.
7311 * tree.c (save_expr): Set location.
7312 (build_empty_stmt): New argument.
7313 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
7314 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
7315 * builtins.c (gimplify_va_arg_expr): Use locations.
7316 (expand_builtin_sync_operation): Same.
7317 * c-typeck.c (build_component_ref): New argument.
7318 (build_array_ref): Same.
7319 (build_external_ref): Same.
7320 (c_expr_sizeof_expr): Same.
7321 (c_expr_sizeof_type): Same.
7322 (parser_build_unary_op): Same.
7323 (build_conditional_expr): Same.
7324 (build_compound_expr): Pass location on down.
7325 (build_compound_expr): New argument.
7326 (build_c_cast): Same.
7327 (c_cast_expr): Same.
7328 (build_asm_expr): Same.
7329 (c_finish_return): Same.
7330 (c_process_expr_stmt): Pass location on down.
7331 (c_finish_stmt_expr): New argument.
7332 (push_clenaup): Same.
7333 (c_finish_omp_parallel): Same.
7334 (c_finish_omp_task): Same.
7335 * gimplify.c (gimplify_call_expr): Pass location on down.
7336 * c-omp.c (c_finish_omp_master): New argument.
7337 (c_finish_omp_critical): Same.
7338 (c_finish_omp_ordered): Same.
7339 (c_finish_omp_barrier): Same.
7340 (-c_finish_omp_taskwait): Same.
7341 (c_finish_omp_atomic): Same.
7342 (c_finish_omp_flush): Same.
7343 * tree-inline.c (copy_tree_body_r): Pass location on down.
7344 (inline_forbidden_p): Remove use of input_location.
7345 * c-gimplify.c (c_build_bind_expr): New argument.
7346 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
7347 (c_sizeof_or_alignof_type): New argument.
7348 (c_alignof_expr): Same.
7349 (build_va_arg): Same.
7350 (c_add_case_label): Same.
7351 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
7352 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
7353 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
7354 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
7355 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
7356 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
7357 New argument.
7358 * stub-objc.c (objc_build_selector_expr): Same.
7359 (objc_build_throw_stmt): Same.
7360 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
7361 (c_parser_initelt): Same.
7362 (c_parser_compound_statement): Same.
7363 (c_parser_compound_statement_nostart): Same.
7364 (c_parser_label): Same.
7365 (c_parser_statement_after_labels): Same.
7366 (c_parser_if_body): Same.
7367 (c_parser_else_body): Same.
7368 (c_parser_if_statement): Same.
7369 (c_parser_switch_statement): Same.
7370 (c_parser_while_statement): Same.
7371 (c_parser_do_statement): Same.
7372 (c_parser_for_statement): Same.
7373 (c_parser_asm_statement): Same.
7374 (c_parser_conditional_expression): Same.
7375 (c_parser_binary_expression): Same.
7376 (c_parser_cast_expression): Same.
7377 (c_parser_unary_expression): Same.
7378 (c_parser_sizeof_expression): Same.
7379 (c_parser_alignof_expression): Same.
7380 (c_parser_postfix_expression): Same.
7381 (c_parser_expression): Same.
7382 (c_parser_objc_receiver): Same.
7383 (c_parser_omp_variable_list): Same.
7384 (c_parser_omp_structured_block): Same.
7385 (c_parser_omp_atomic): New argument.
7386 (c_parser_omp_barrier): Same.
7387 (c_parser_omp_critical): Same.
7388 (c_parser_omp_flush): Pass location on down.
7389 (c_parser_omp_for_loop): New argument.
7390 (c_parser_omp_for): Same.
7391 (c_parser_omp_master): Same.
7392 (c_parser_omp_ordered): Same.
7393 (c_parser_omp_sections_scope): Same.
7394 (c_parser_omp_sections): Same.
7395 (c_parser_omp_parallel): Same.
7396 (c_parser_omp_single): Same.
7397 (c_parser_omp_task): Same.
7398 (c_parser_omp_taskwait): Pass location on down.
7399 (c_parser_omp_construct): Same.
7400 (c_parser_omp_threadprivate): Same.
7401 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
7402 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
7403 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
7404 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
7405 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
7406 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
7407 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
7408 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
7409 config/i386/i386.c, stmt.c:
7410 Add location argument to the following function definitions and/or
7411 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
7412 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
7413 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
7414 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
7415 do_case, c_finish_bc_stmt, build_compound_literal,
7416 build_function_call.
7417 * c-decl.c (build_compound_literal): Add location argument.
7418 Make all diagnostic calls use location.
7419 (start_struct): Same.
7420 (finish_struct): Same.
7421 (start_enum): Same.
7422 (build_enumerator): Same.
7423 (start_function): Same.
7424 (grokdeclarator): Make all diagnostic calls use location.
7425 (store_parm_decls_oldstyle): Same.
7426 * c-typeck.c (build_function_call): Add location argument.
7427 Make all diagnostic calls use location.
7428 (do_case): Same.
7429 (c_finish_bc_stmt): Same.
7430 * tree-nested.c (get_trampoline_type): Add argument.
7431 Pass location to build_decl.
7432 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
7433 * rtl.h (RTL_LOCATION): New.
7434 * c-common.c (c_add_case_label): Add location argument.
7435 Make all diagnostic calls use location.
7436 * c-common.h: Add location argument to make_fname_decl, do_case,
7437 c_add_case_label, build_function_call, resolve_overloaded_builtin.
7438 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
7439 Set it appropriately for every case. Pass enum_loc to start_enum
7440 call. Pass value_loc first to build_enumerator. Pass enum_loc to
7441 parser_xref_tag.
7442 (c_parser_struct_or_union_specifier): Save location. Use it for
7443 start_struct, finish_struct, and parser_xref_tag.
7444
2a6a6991 74452009-06-12 Ian Lance Taylor <iant@google.com>
7446
c6aaf951 7447 * fold-const.c (fold_unary): Rename local variable and to and_expr.
2a6a6991 7448
7449 * c-opts.c (c_common_handle_option): For -Wc++-compat set
7450 cpp_opts->warn_cxx_operator_names.
7451
380c5f61 74522009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
7453
7454 PR tree-opt/38865
7455 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
7456 is returns NULL and OP is a VCE, look through the VCE.
7457
754a9c6c 74582009-06-12 Ian Lance Taylor <iant@google.com>
7459
7460 PR bootstrap/40430
7461 * collect2.c (main): Use CONST_CAST2 in code inside #if
7462 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
7463
bd9c33a8 74642009-06-12 Joey Ye <joey.ye@intel.com>
7465
7466 PR middle-end/39146
7467 * cfgexpand.c (get_decl_align_unit): Update
7468 max_used_stack_slot_alignment with align instead of
7469 stack_alignment_needed.
7470
7471 * function.c (assign_stack_local_1): Update
7472 max_used_stack_slot_alignment with alignment_in_bits instead
7473 of stack_alignment_needed.
7474 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
7475 here.
7476
e59b3312 74772009-06-12 Jakub Jelinek <jakub@redhat.com>
7478
7479 * dwarf2out.c (last_var_location_insn): New variable.
7480 (dwarf2out_end_epilogue): Clear last_var_location_insn.
7481 (dwarf2out_var_location): Don't record anything after last real
7482 insn. Only change labels if there were any real instructions
7483 in between last note and this one, or if changed sections.
7484
eb0e7e5d 74852009-06-11 Richard Henderson <rth@redhat.com>
7486
bd9c33a8 7487 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
d30e4246 7488 note when storing the frame pointer in a register.
7489 (FRP): Don't redefine to nothing for epilogue.
7490 (alpha_expand_epilogue): Mark register and sp restores.
7491 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
7492
eb0e7e5d 7493 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
7494 when gen_lowpart is needed.
7495
a6f7c039 74962009-06-11 Richard Henderson <rth@redhat.com>
7497
750daa32 7498 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
7499
a6f7c039 7500 * dwarf2out.c (need_data_align_sf_opcode): New.
7501 (div_data_align): Move earlier.
7502 (def_cfa_1, reg_save): Use it.
7503
614b751e 75042009-06-11 H.J. Lu <hongjiu.lu@intel.com>
7505
7506 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
7507 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
7508 (ix86_handle_option): Handle OPT_mcrc32.
7509 (ix86_target_string): Add -mcrc32.
7510 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
7511
7512 * config/i386/i386.h (TARGET_CRC32): New.
7513
c6aaf951 7514 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
614b751e 7515 (sse4_2_crc32di): Likewise.
7516
c6aaf951 7517 * config/i386/i386.opt (mcrc32): New.
614b751e 7518
7519 * doc/invoke.texi: Document -mcrc32.
7520
4a631454 75212009-06-11 Richard Henderson <rth@redhat.com>
7522
614b751e 7523 * common.opt (gdwarf-): Accept a version number.
4a631454 7524 * doc/invoke.texi (gdwarf-): Update docs.
7525 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
7526 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
7527 version level, and record it.
7528
7529 * dwarf2.h (DW_CIE_VERSION): Remove.
7530 * dwarf2out.c (DWARF_VERSION): Remove.
7531 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
7532 (output_call_frame_info): Use CIE version 3 for dwarf3,
7533 or if the return register column is out of range for version 1.
7534 (dwarf_stack_op_name): Add all dwarf3 values.
7535 (DEBUG_PUBTYPES_SECTION): New.
7536 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
7537 encoding change for dwarf3.
7538 (output_die) [dw_val_class_die_ref]: Likewise.
7539 (output_compilation_unit_header): Emit correct version for dwarf3.
7540 (output_line_info): Likewise.
7541 (output_pubnames): Update for DWARF_VERSION removal.
7542 (output_aranges): Likewise.
7543 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
7544 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
7545 (dwarf2out_finish): Likewise.
7546
33a67b8d 75472009-06-11 David Daney <ddaney@caviumnetworks.com>
7548
7549 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
7550 in r148403.
7551
d2b48f0c 75522009-06-11 David Daney <ddaney@caviumnetworks.com>
7553
7554 PR c/39252
7555 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
7556 * builtins.c (expand_builtin_unreachable): New function.
7557 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
7558 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
7559 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
7560 successors.
7561 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
7562 searching for missing barriers.
7563
31bcb516 75642009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7565
7566 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
7567 when -fprofile-generate* was passed.
7568 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
7569
df3bfef4 75702009-06-11 Anthony Green <green@moxielogic.com>
7571
c6aaf951 7572 * config/moxie/moxie.md: Define length attribute for all instructions.
df3bfef4 7573 (rCC): Define.
7574 (*b<cond:code>): Support limited branch ranges for new PC-relative
7575 branch instructions.
7576 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
7577
d5257977 75782009-06-11 Jakub Jelinek <jakub@redhat.com>
7579
745ee33e 7580 * config/i386/i386.c (min_insn_size): Use get_attr_length
7581 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
7582 For __asm return 0.
7583
d5257977 7584 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
7585 instead of emit_insn_before.
7586
9448096b 75872009-06-10 Ian Lance Taylor <iant@google.com>
7588
7589 PR bootstrap/40408
7590 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
7591 GIMPLE_SWITCH.
7592
b50b1b69 75932009-06-10 Revital Eres <eres@il.ibm.com>
7594
7595 * passes.c (init_optimization_passes): Reschedule
7596 predictive-commoning pass before complete unroll pass.
7597
9967e578 75982009-06-10 Martin Jambor <mjambor@suse.cz>
7599
7600 * cgraph.c (cgraph_node_can_be_local_p): New function.
7601 (cgraph_make_node_local): New function.
7602 * cgraph.h (cgraph_node_can_be_local_p): Declare.
7603 (cgraph_make_node_local): Declare.
7604
33a0b99d 76052009-06-10 Nathan Froyd <froydnj@codesourcery.com>
7606
7607 * tree.h (tree_base): Add packed_flag and user_align fields.
7608 Decrease size of spare field.
7609 (TYPE_USER_ALIGN): Use user_align from tree_base.
7610 (DECL_USER_ALIGN): Likewise.
7611 (TYPE_PACKED): Use packed_flag from tree_base.
7612 (DECL_PACKED): Likewise.
7613 (tree_type): Delete packed_flag and user_align fields. Widen
7614 precision field. Widen mode field and shuffle fields to align
7615 mode on an 8-bit boundary.
7616 (tree_decl_common): Delete decl_flag_1 and user_align fields.
7617 Renumber decl_flag_* fields. Fix comments. Widen
7618 decl_common_unused field.
c6aaf951 7619 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
33a0b99d 7620 (DECL_EXTERNAL): Likewise.
7621 (DECL_BIT_FIELD): Likewise.
7622 (DECL_NONADDRESSABLE_P): Likewise.
7623 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
7624 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
7625
f7f05a07 76262009-06-10 Ian Lance Taylor <iant@google.com>
7627
7628 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
7629 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
7630 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
7631 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
7632 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
7633 DEF_VEC_ALLOC_FUNC_P.
7634 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
7635 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
7636 DEF_VEC_ALLOC_FUNC_O.
7637 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
7638 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
7639 DEF_VEC_ALLOC_FUNC_I.
7640 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
7641 (vec_stack_p_reserve_exact_1): Declare.
7642 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
7643 (vec_stack_free): Declare.
7644 (VEC_stack_alloc): Define.
7645 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
7646 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
7647 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
7648 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
7649 for void_p.
7650 (stack_vecs): New static variable.
7651 (vec_stack_p_reserve_exact_1): New function.
7652 (vec_stack_o_reserve_1): New static function.
7653 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
7654 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
7655 (vec_stack_free): New function.
7656 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
7657 (VEC_df_ref_stack_alloc): Define.
7658 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
7659 DEF_VEC_ALLOC_P_STACK.
7660 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
7661 (struct df_collection_rec): Change _vec fields to VEC. Remove
7662 _use fields.
7663 (df_free_collection_rec): Adjust for new fields.
7664 (df_insn_rescan): Use new df_collection_rec fields.
7665 (df_notes_rescan, df_canonize_collection_rec): Likewise.
7666 (df_ref_create_structure, df_ref_record): Likewise.
7667 (df_get_conditional_uses, df_get_call_refs): Likewise.
7668 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
7669 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
7670 (df_record_exit_block_uses, df_bb_verify): Likewise.
c6aaf951 7671 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
f7f05a07 7672 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
7673 Remove count parameter. Change return type to void. Change all
7674 callers.
7675 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
7676 Remove count parameter. Change return type to void. Change all
7677 callers.
7678 (df_install_refs): Change old_vec parameter to VEC. Remove count
7679 parameter. Change all callers.
7680 (df_install_mws): Change old_vec parameter to VEC. Remove count
7681 parameter. Change all callers.
7682 (df_refs_verify): Change new_rec parameter to VEC. Change call
7683 callers.
7684 (df_mws_verify): Likewise.
7685
7a63ab96 76862009-06-10 Alexandre Oliva <aoliva@redhat.com>
7687
7688 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
7689
9e26132e 76902009-06-10 H.J. Lu <hongjiu.lu@intel.com>
7691
7692 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
7693
be52b6d8 76942009-06-10 Anthony Green <green@moxielogic.com>
7695
7696 * config/moxie/crti.asm: New file.
7697 * config/moxie/crtn.asm: New file.
7698 * config/moxie/moxie.c: New file.
7699 * config/moxie/moxie.h: New file.
7700 * config/moxie/sfp-machine.h: New file.
7701 * config/moxie/moxie-protos.h: New file.
7702 * config/moxie/t-moxie: Created.
7703 * config/moxie/t-moxie-softfp: Created.
7704 * config/moxie/moxie.md: Created.
7705 * config/moxie/constraints.md: Created.
7706 * config.gcc: Add moxie support.
7707 * doc/md.texi (Machine Constraints): Add moxie constraints.
7708 * doc/contrib.texi (Contributors): Mention moxie port.
7709 * doc/install.texi (Specific): Mention the moxie port.
7710
423aab86 77112009-06-09 Ian Lance Taylor <iant@google.com>
7712
7713 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
7714 compiling with C++.
7715 * optabs.c (optab_table): Only use designated initializers if
7716 HAVE_DESIGNATED_INITIALIZERS is defined.
7717 (convert_optab_table): Likewise.
7718 (init_optabs): Always call init_insn_codes if
7719 HAVE_DESIGNATED_INITIALIZERS is not defined.
7720
d5b637fa 77212009-06-09 Ian Lance Taylor <iant@google.com>
7722
7723 * targhooks.c (default_builtin_vectorized_function): Change fn
7724 parameter to unsigned int.
7725 (default_builtin_vectorized_conversion): Change code parameter to
7726 unsigned int.
7727 (default_builtin_reciprocal): Change fn parameter to unsigned int.
7728 * targhooks.h: Update declarations.
7729 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
7730 parameter to unsigned int.
7731
7732 * c-typeck.c (comptypes_check_enum_int): New static function.
7733 (comptypes_internal): Add enum_and_int_p parameter. Change all
7734 callers.
7735 (comp_target_types): Add location parameter. Change all callers.
7736 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
7737 Change all callers.
7738 (function_types_compatible_p, type_lists_compatible_p): Likewise.
7739 (build_conditional_expr): Add colon_loc parameter. Change all
7740 callers.
c6aaf951 7741 (convert_for_assignment): Add location parameter. Change all callers.
d5b637fa 7742 * c-parser.c (c_parser_conditional_expression): Pass location of
7743 colon to build_conditional_expr.
7744 * c-tree.h (build_conditional_expr): Update declaration.
7745
d970c7fe 77462009-06-09 Sebastian Pop <sebastian.pop@amd.com>
7747
7748 * graphite.c: Revert previous patch.
7749
1aa098ae 77502009-06-09 Sebastian Pop <sebastian.pop@amd.com>
7751
7752 PR bootstrap/40103
7753 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
7754
f937ec59 77552009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
7756
614b751e 7757 * tree-ssa-loop-prefetch.c
7758 (loop_prefetch_arrays): Fixed a portability problem in printf format
7759 string.
f937ec59 7760
31000708 77612009-06-09 Martin Jambor <mjambor@suse.cz>
7762
7763 PR tree-optimization/40351
c6aaf951 7764 * tree-sra.c (propagate_subacesses_accross_link): Check that a
7765 refrence to a potential artifical subaccess can be constructed.
31000708 7766
9b8dc018 77672009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
7768
7769 * config/sh/sh-protos.h (sh_optimization_options): Declare.
7770 (sh_override_options): Likewise.
7771 * config/sh/sh.c: Include params.h.
7772 (sh_optimization_options): New.
7773 (sh_override_options): Likewise.
7774 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
7775 (OVERRIDE_OPTIONS): Use sh_override_options.
7776
dcec2982 77772009-06-08 Jakub Jelinek <jakub@redhat.com>
7778
7779 * dwarf2out.c (emit_cfa_remember): New variable.
7780 (add_fde_cfi): If emit_cfa_remember, recurse to add
7781 DW_CFA_remember_state first.
7782 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
7783 instead just set emit_cfa_remember.
7784
804f8485 77852009-06-08 Jan Hubicka <jh@suse.cz>
7786
7787 PR debug/40126
7788 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
7789
7fe9b425 77902009-06-08 Jan Hubicka <jh@suse.cz>
7791
7792 PR middle-end/39834
c6aaf951 7793 * cgraphunit.c (save_inline_function_body): Do not copy transform
7794 hooks for saved inline bodies.
7fe9b425 7795 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
7796 for given function.
7797
01e196ce 77982009-06-08 Adam Nemet <anemet@caviumnetworks.com>
7799
7800 * jump.c (returnjump_p): Handle delayed branches. Add missing
7801 function comment.
7802
b437daf4 78032009-06-08 Jan Hubicka <jh@suse.cz>
7804
7805 PR middle-end/40102
7806 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
7807 original node might've been modified.
7808 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
7809
fbc1ccbc 78102009-06-08 Jakub Jelinek <jakub@redhat.com>
7811
7812 * tree-object-size.c (addr_object_size): Add OSI argument.
7813 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
7814 (compute_builtin_object_size, expr_object_size): Adjust callers.
7815 (plus_stmt_object_size): Call addr_object_size instead of
7816 compute_builtin_object_size.
7817
0ab353e1 78182009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
614b751e 7819 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
f6c8c8fc 7820
7821 * tree-ssa-loop-prefetch.c
7822 (gather_memory_references): Introduced a counter for the number of
0ab353e1 7823 memory references.
f6c8c8fc 7824 (anything_to_prefetch_p): Introduced a counter for the number of
0ab353e1 7825 prefetches.
f6c8c8fc 7826 (is_loop_prefetching_profitable): New function with a cost model
0ab353e1 7827 for prefetching.
f6c8c8fc 7828 (loop_prefetch_arrays): Use the new cost model to determine if
0ab353e1 7829 prefetching is profitable.
f6c8c8fc 7830 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
0ab353e1 7831 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f6c8c8fc 7832 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
0ab353e1 7833 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f6c8c8fc 7834 * doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO,
0ab353e1 7835 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f6c8c8fc 7836
e32b531f 78372009-06-08 Michael Matz <matz@suse.de>
7838
7839 PR debug/40012
e32b531f 7840 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
7841 partitions use the same.
7842 (expand_one_var): Deal with DECL_RTL sometimes begin set also
7843 for basevars of SSA_NAMEs.
7844 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
7845 to not expand them twice.
7846 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
7847 multiple places.
7848
71278019 78492009-06-08 Alexandre Oliva <aoliva@redhat.com>
7850
7851 * common.opt (fcompare-debug=, fcompare-debug-second): New.
7852 (fdump-final-insns=, gtoggle): New.
7853 * doc/invoke.texi: Document them.
7854 * final.c (rest_of_clean_state): Dump final insn stream.
7855 * gcc.c (invoke_as): Hook in -fcompare-debug.
7856 (static_spec_functions): Add compare-debug-dump-opt,
7857 compare-debug-self-opt and compare-debug-auxbase-opt.
7858 (compare_debug, compare_debug_second, compare_debug_opt): New.
7859 (switches_debug_check, n_switches_debug_check): New.
7860 (debug_auxbase_opt, debug_check_temp_file): New.
7861 (process_command): Handle -fno-compare-debug, -fcompare-debug and
7862 -fcompare-debug=*.
7863 (do_self_spec): Handle arguments after switches.
7864 (do_spec_1): Add .gk extension to temp file basenames for compare.
7865 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
7866 (cc1_options): Use it instead of normal auxbase computation for
7867 the second compare-debug compilation.
7868 (compare_files): New.
7869 (main): Set up and implement compare debug mode.
7870 (compare_debug_dump_opt_spec_function): New.
7871 (compare_debug_self_opt_spec_function): New.
7872 (compare_debug_auxbase_opt_spec_function): New.
7873 * toplev.c (process_options): Handle flag_gtoggle,
7874 flag_dump_final_insns.
7875 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
7876 during -fcompare-debug-second compilation.
7877
561017b5 78782009-06-07 Ian Lance Taylor <iant@google.com>
7879
c6aaf951 7880 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
561017b5 7881 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
7882
7883 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
7884 with no default node. Change warning with %H to warning_at.
7885 Don't clear warn_switch around case checking.
7886 * doc/invoke.texi (Warning Options): Clarify distinction between
7887 -Wswitch and -Wswitch-enum.
7888
315a45ed 78892009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7890
7891 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
7892
18d8ad76 78932009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7894
7895 * gbl-ctors.h: Add header guard.
7896
d8eaff30 78972009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7898
7899 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
7900 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
7901 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
7902 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
7903 prototypes for removed functions.
7904 (expressions_equal_p): Move to ...
7905 * tree-ssa-sccvn.h: ... here and ...
7906 * matrix-reorg.c: ... adjust includes.
7907
de9d32d3 79082009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7909
7910 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
7911
9eba252e 79122009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7913
7914 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
7915 (finish_function): Remove erroneous whitespace.
7916
dd24d1a6 79172009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7918
2c2eb7fa 7919 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
7920 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
3d400f58 7921
79222009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7923
7924 * errors.c (internal_error): Commentary typo fix.
7925 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
7926 * tree-ssa-pre.c: Ditto.
dd24d1a6 7927
2c2eb7fa 79282009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7929
7930 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
7931 them is supposed to hold actual statements.
7932
e1c8f1c5 79332009-06-06 Ian Lance Taylor <iant@google.com>
7934
7935 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
7936 empty statements can now have attributes.
7937
e6408be9 79382009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
7939
7940 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
7941 * config/mips/mips.md: Ditto.
7942
253e1b4a 79432009-06-05 Nathan Froyd <froydnj@codesourcery.com>
7944
7945 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
7946 _RELOCATABLE.
7947 (__eabi_uconvert): Likewise.
7948
aef98aab 79492009-06-05 Nathan Froyd <froydnj@codesourcery.com>
7950
7951 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
7952 CFI_* definitions with IN_GCC.
7953
8cb0d379 79542009-06-05 David Edelsohn <edelsohn@gnu.org>
7955
7956 * xcoffout.h (xcoffout_source_line): Update prototype.
7957
c3cfad90 79582009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7959
7960 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
7961 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
7962
f63d3ecc 79632009-06-05 Jakub Jelinek <jakub@redhat.com>
7964
7965 PR middle-end/40340
7966 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
7967 inlined_function_outer_scope_p blocks for artificial inlines
7968 even at -g0/-g1.
7969 * tree.c (tree_nonartificial_location): Rewrite using
7970 block_nonartificial_location.
7971
454f25be 79722009-06-05 Revital Eres <eres@il.ibm.com>
7973 Leehod Baruch <leehod@il.ibm.com>
7974
7975 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
7976 (expand_expr_real_1): Remove comment.
7977 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7978 Vectorize misaligned access when the target supports it.
c6aaf951 7979 (vect_supportable_dr_alignment): Check for unaligned access support.
454f25be 7980 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
7981 and remove asset.
7982
be6a5df4 79832009-06-05 Julian Brown <julian@codesourcery.com>
7984
7985 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
7986 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
7987
75b9059b 79882009-06-05 Richard Guenther <rguenther@suse.de>
7989
7990 PR bootstrap/40350
7991 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
7992 as possibly unused.
7993
f63d3ecc 79942009-06-05 Jakub Jelinek <jakub@redhat.com>
a3cd0f6a 7995
7996 * config/s390/s390.c (global_not_special_regno_p): New static inline.
7997 (save_gprs): Don't tell unwinder when a global register is saved.
7998 (s390_emit_epilogue): Emit needed epilogue unwind info.
7999
55df8db3 80002009-06-05 Alexandre Oliva <aoliva@redhat.com>
8001
8002 * dwarf2out.c (deferred_asm_name): New.
8003 (add_name_and_src_coords_attributes): Defer creation of
8004 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
8005 computed yet.
8006 (move_linkage_attr): New.
8007 (dwarf2out_finish): Revisit deferrals and emit attributes at the
8008 right place.
8009
78e29a95 80102009-06-05 Alexandre Oliva <aoliva@redhat.com>
8011
8012 * tree-nested.c (finalize_nesting_tree_1): Declare the
8013 frame_decl in the binding tree.
8014
d01c707b 80152009-06-04 Cary Coutant <ccoutant@google.com>
8016
8017 * basic-block.h (struct basic_block_def): Add discriminator field.
8018 * dbxout.c (dbxout_source_line): Add new parameter. Change all
8019 callers.
8020 * debug.c (do_nothing_debug_hooks): Add additional entry.
8021 (debug_nothing_int_charstar_int): New function.
c6aaf951 8022 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
d01c707b 8023 (debug_nothing_int_charstar_int): New declaration.
8024 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
8025 discriminator value in .loc directive.
8026 * final.c (last_discriminator): New variable.
8027 (discriminator): New variable.
8028 (final_start_function): Initialize above variables, pass current
8029 discriminator to debug hook.
8030 (notice_source_line): Check for discriminator change.
8031 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
8032 * sdbout.c (sdbout_source_line): New parameter.
8033 * tree-cfg.c (struct locus_discrim_map): New structure type.
8034 (discriminator_per_locus): New hash table.
8035 (build_gimple_cfg): Allocate and free discriminator hash table.
8036 (make_edges): Call assign_discriminator.
8037 (locus_map_hash): New function.
8038 (locus_map_eq): New function.
8039 (next_discriminator_for_locus): New function.
8040 (same_line_p): New function.
8041 (assign_discriminator): New function.
8042 (make_cond_expr_edges): Call assign_discriminator.
8043 (make_gimple_switch_edges): Likewise.
8044 (first_non_label_stmt): New function.
8045 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
8046 all callers.
8047 * xcoffout.c (xcoffout_source_line): Add new parameter.
8048
8049 * configure.ac (gcc_cv_as_discriminator): New configury check for
8050 gas support for discriminator.
8051 * configure: Regenerate.
8052 * config.in: Regenerate.
8053
7430cad1 80542009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8055
8056 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
8057 val after checking for integers.
8058
b51058a6 80592009-06-04 Uros Bizjak <ubizjak@gmail.com>
8060
8061 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
8062 X64_REGPARM_MAX.
8063 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
8064 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
8065 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
8066 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
8067 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
8068 X64_SSE_REGPARM_MAX.
8069 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
8070 X64_SSE_REGPARM_MAX.
8071
4537c5d9 80722009-06-04 Alexandre Oliva <aoliva@redhat.com>
8073
8074 * gcc.c (report_times_to_file): New.
8075 (execute): Implement it.
8076 (process_command): Support -time=.
8077 * doc/invoke.texi: Document it.
8078
ee093c13 80792009-06-04 Alexandre Oliva <aoliva@redhat.com>
8080
8081 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
8082 that have value exprs.
8083
1e03a59b 80842009-06-04 Alexandre Oliva <aoliva@redhat.com>
8085
8086 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
8087 declarations for constants until...
8088 (dw2_output_indirect_constant_1): ... this point.
8089
a3ffc315 80902009-06-04 Richard Earnshaw <rearnsha@arm.com>
8091
8092 PR target/10242
8093 * arm.md (arm_addsi3): Don't try to split an add with an
8094 eliminable register until after reload has completed.
8095
cd819d2f 80962009-06-03 Ian Lance Taylor <iant@google.com>
8097
8098 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
8099 * genattrtab.c (write_length_unit_log): Likewise.
8100 * genchecksum.c (dosum): Likewise.
8101 * gengtype.c (write_rtx_next): Likewise.
8102 (finish_root_table, write_roots): Likewise.
8103 * gimple.c (gimple_ops_offset_): Likewise.
8104 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
8105 * config/arc/arc.c (arc_attribute_table): Likewise.
8106 * config/arm/arm.c (arm_attribute_table): Likewise.
8107 * config/avr/avr.c (avr_attribute_table): Likewise.
8108 * config/crx/crx.c (crx_attribute_table): Likewise.
8109 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
8110 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
8111 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
8112 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
8113 * config/sh/sh.c (sh_attribute_table): Likewise.
8114 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
8115 * config/spu/spu.c (spu_attribute_table): Likewise.
8116 * config/v850/v850.c (v850_attribute_table): Likewise.
8117
8118 * config/alpha/alpha.c (vms_attribute_table): Make static.
8119 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
8120 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
8121 * config/mips/mips.c (mips_attribute_table): Likewise.
8122
8123 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
8124 $(SYSTEM_H).
8125 (cc1-checksum.o): Likewise.
8126
9a4e1a73 81272009-06-03 Steve Ellcey <sje@cup.hp.com>
8128
8129 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
8130
a9cc13e1 81312009-06-03 Jakub Jelinek <jakub@redhat.com>
8132
5f59286d 8133 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
8134 insn if it is changing sp. Use gen_add3_insn instead of
8135 conditionally gen_addsi3 and gen_adddi3.
8136 (offset_below_red_zone_p): New static inline function.
8137 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
8138 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
8139 * config/rs6000/ppc-asm.h: Include auto-host.h.
8140 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
8141 CFI_RESTORE): Define.
8142 * config/rs6000/crtresxgpr.asm: Add unwind info.
8143 * config/rs6000/crtresxfpr.asm: Likewise.
8144 * config/rs6000/crtresgpr.asm: Likewise.
8145 * config/rs6000/crtresfpr.asm: Likewise.
8146 * config/rs6000/crtsavgpr.asm: Likewise.
8147 * config/rs6000/crtsavfpr.asm: Likewise.
8148
b3154a1f 8149 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
8150 argument of DWARF2_FRAME_REG_OUT macros.
a9cc13e1 8151
e5a8295a 81522009-06-03 Julian Brown <julian@codesourcery.com>
8153
8154 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
8155 words or less (including TImode) in core registers.
8156
261b246f 81572009-06-03 Richard Guenther <rguenther@suse.de>
8158
8159 PR middle-end/40328
8160 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
8161
2dfe9981 81622009-06-03 Andrey Belevantsev <abel@ispras.ru>
8163
f6c8c8fc 8164 * statistics.c (statistics_counter_event): Do not record event
2dfe9981 8165 in pass dump if its number == -1.
f6c8c8fc 8166 (curr_statistics_hash): Add assert that we never get passes
2dfe9981 8167 with static number == -1.
8168
9a60c3b9 81692009-06-03 Richard Guenther <rguenther@suse.de>
8170 Andrey Belevantsev <abel@ispras.ru>
8171
f6c8c8fc 8172 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
9a60c3b9 8173 non-BLKmode arrays addressable.
8174
f539feff 81752009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
8176
8177 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
8178 * config/m68k/m68k.h: ... here.
8179 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
8180 m68k and fido.
8181
4ecddf77 81822009-06-03 Martin Jambor <mjambor@suse.cz>
8183
8184 PR tree-optimization/40323
8185 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
8186 assignment.
8187
831afe34 81882009-06-03 Richard Guenther <rguenther@suse.de>
8189
8190 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
8191 consistently.
8192
cb94f03c 81932009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
8194
8195 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
8196 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
8197 JUMP_TABLE_DATA_P where applicable.
8198 * config/sh/sh.c: Ditto.
8199 * config/sh/sh.h: Ditto.
8200 * config/sh/sh.md: Ditto.
8201 * config/sh/symbian.c: Ditto.
8202
faa14cce 82032009-06-03 Uros Bizjak <ubizjak@gmail.com>
8204
8205 * config/i386/driver-i386.c (describe_cache): Optimize
8206 concatenation of strings. Use snprintf instead of sprintf.
8207 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
8208 target when not compiling with GCC.
8209
2b0c9242 82102009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
8211
8212 * config/sh/sh.c: Revert last change.
8213 (sh_expand_epilogue): Emit a blockage insn before the frame
8214 pointer adjustment unconditionally.
8215
d4902064 82162009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
8217
8218 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
8219 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
8220 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
8221 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
8222 to COLLECT_GCC_OPTIONS.
8223
ef6fd54f 82242009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
8225
8226 * collect2.c (target_system_root): New variable.
8227 (main): Handle --sysroot=.
8228 (ignore_library): Strip the sysroot from the library path.
8229
cabc7147 82302009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
8231
8232 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
8233 (collect2.o): Depend on collect2-aix.h.
8234 (collect2-aix.o): New rule.
8235 * collect2-aix.h: New file.
8236 * collect2-aix.c: Likewise.
8237 * collect2.c: Include collect2-aix.h. Don't undefine
8238 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
8239 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
8240 Use TARGET_AIX_VERSION instead of _AIX51.
8241 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
8242 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
8243 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
8244 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
8245 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
8246
329cbab5 82472009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
8248
8249 * collect2.c (ignore_library): Avoid premature post-increment
8250 and null deference.
8251
5b69e2e1 82522009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
8253
8254 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
8255 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
8256 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
8257 CROSS_DIRECTORY_STRUCTURE too.
8258 (LINK_LIBG_SPEC): Likewise.
8259 (LIB_SPEC): Add %R to sysroot paths.
8260 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
8261 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
8262 * config/rs6000/aix51.h: As for aix43.h.
8263 * config/rs6000/aix52.h: Likewise.
8264 * config/rs6000/aix53.h: Likewise.
8265 * config/rs6000/aix61.h: Likewise.
8266 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
8267 to the beginning of sysroot paths.
8268
f86c2921 82692009-06-02 Alexandre Oliva <aoliva@redhat.com>
8270
8271 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
8272 INSN_LISTs that are out of the REG_NOTE range.
8273
b635a1a3 82742009-06-02 Alexandre Oliva <aoliva@redhat.com>
8275
8276 * loop-unroll.c (struct iv_to_split): Add pointer to next.
8277 (struct var_to_expand): Likewise.
8278 (struct opt_info): Add head and tail for linked lists of the above.
8279 (analyze_insn_to_expand_var): Initialize next.
8280 (analyze_iv_to_split_insn): Likewise.
8281 (analyze_insns_in_loop): Create linked lists.
8282 (allocate_basic_variable): Simplify for use without hash table.
8283 (insert_var_expansion_initialization): Likewise, make it type-safer.
8284 (combine_var_copies_in_loop_exit): Likewise.
8285 (apply_opt_in_copies): Walk lists rather than hash tables.
8286 (release_var_copies): Simplified and inlined by hand into...
8287 (free_opt_info): ... this function.
8288
07958fba 82892009-06-02 Richard Guenther <rguenther@suse.de>
8290
8291 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
8292 for field decls.
8293
c3771ec9 82942009-06-02 Alexandre Oliva <aoliva@redhat.com>
8295
8296 * cfgexpand.c (gimple_expand_cfg): Discard the source location
8297 only for builtins that are not overridden.
8298
d5b19135 82992009-06-02 Alexandre Oliva <aoliva@redhat.com>
8300
8301 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
8302 label string.
8303
44cb2148 83042009-06-02 Alexandre Oliva <aoliva@redhat.com>
8305
8306 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
8307
bc20fdd7 83082009-06-02 Alexandre Oliva <aoliva@redhat.com>
8309
8310 * combine.c (move_deaths): Compare LUIDs within the same BB only.
8311
0a59e439 83122009-06-02 Alexandre Oliva <aoliva@redhat.com>
8313
8314 * common.opt (fdump-unnumbered-links): New.
8315 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
8316 * print-rtl.c (flag_dump_unnumbered_links): New.
8317 (print_rtx): Test it.
8318
11417c43 83192009-06-02 Richard Earnshaw <rearnsha@arm.com>
8320
8321 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
8322 push/pop multiple to 8-byte alignment.
a3ffc315 8323
7737aadd 83242009-06-01 Jakub Jelinek <jakub@redhat.com>
8325
c42a6003 8326 * config/i386/i386.c (queued_cfa_restores): New static variable.
8327 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
8328 functions.
8329 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
8330 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
8331 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
8332 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
8333 note unconditionally.
8334 (ix86_emit_restore_regs_using_mov): Likewise.
8335 (ix86_emit_restore_sse_regs_using_mov): Likewise.
8336 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
8337 it through to ix86_emit_restore_reg_using_pop.
8338 (ix86_emit_leave): Add RED_OFFSET argument. Call
8339 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
8340 instead of adding REG_CFA_OFFSET note unconditionally.
8341 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
8342 the above functions. Call ix86_add_queued_cfa_restore_notes when
8343 needed.
8344
8345 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
8346 force output of the label even for dwarf2out_do_cfi_asm.
8347 (add_fde_cfi): If -g2 and above and cfi might change CFA,
8348 force creation of CFI label and chain DW_CFA_set_loc jumping to it
8349 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
8350 caller.
8351 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
8352 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
8353 dwarf2out_cfi_label callers.
8354 * tree.h (dwarf2out_cfi_label): Adjust prototype.
8355 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
8356 Adjust dwarf2out_cfi_label callers.
8357 * config/vax/vax.c (vax_output_function_prologue): Likewise.
8358
e3b9403e 8359 * config/i386/i386.h (struct machine_cfa_state,
8360 struct machine_function): Guard with ifndef USED_FOR_TARGET
8361 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
8362
b1fc924e 8363 PR other/40024
8364 * emutls.c (__emutls_get_address): Change arr->size to mean number
8365 of allocated arr->data entries instead of # of slots + 1.
8366
7737aadd 8367 PR middle-end/40316
8368 * recog.c (peep2_reinit_state): New function.
8369 (peephole2_init_state): Use it at the end of a basic block and also
8370 when seeing a RTX_FRAME_RELATED_P insn.
8371
a58127d5 83722009-06-01 Steve Ellcey <sje@cup.hp.com>
8373
8374 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
8375 fixuns_truncrfdi2): New.
8376 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
8377 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
8378 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
8379 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
8380 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
8381 *recip_approx): Remove.
8382 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
8383 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
8384 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
8385 move to div.md.
8386 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
8387 setf_exp_rf): New.
8388
402ba866 83892009-06-01 Ian Lance Taylor <iant@google.com>
8390
8391 * attribs.c (register_attribute): Use CONST_CAST.
8392 * collect2.c (main): Use CONST_CAST2.
8393 (scan_prog_file): Likewise.
8394 * gcc.c (process_command, main): Likewise.
8395 * toplev.c (toplev_main): Likewise.
8396
8397 * c-typeck.c (handle_warn_cast_qual): New static function,
8398 partially broken out of build_c_cast.
8399 (build_c_cast): Call handle_warn_cast_qual.
8400 * doc/invoke.texi (Warning Options): Document new effect of
8401 -Wcast-qual.
8402
b559b9e2 84032009-06-01 Aldy Hernandez <aldyh@redhat.com>
8404
8405 * diagnostic.c (diagnostic_build_prefix): Always print columns.
8406 (diagnostic_report_current_module): Print columns.
8407 * common.opt (flag_show_column): Enable by default.
8408
02b0d167 84092009-06-01 Luis Machado <luisgpm@br.ibm.com>
8410
8411 * alias.c (find_base_term): Check for NULL term before returning.
8412
a56c46d2 84132009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
8414
8415 Revert due to PR40320:
a56c46d2 8416 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
8417 * calls.c (emit_library_call_value_1): Don't force_operand for move
8418 and push insns.
8419
34a6a65d 84202009-06-01 Olivier Hainque <hainque@adacore.com>
afb7aecf 8421 Eric Botcazou <ebotcazou@adacore.com>
34a6a65d 8422
8423 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
8424 to be processed as a bitfield for constructor output purposes.
8425 * output.h (initializer_constant_valid_for_bitfield_p): Declare
8426 new function.
8427 * varasm.c (oc_local_state): New type, output_constructor
8428 local state to support communication with helpers.
8429 (oc_outer_state): New type, output_constructor outer state of
8430 relevance in recursive calls.
8431 (output_constructor_array_range): New output_constructor helper,
8432 extracted code for an array range element.
8433 (output_constructor_regular_field): New output_constructor helper,
8434 extracted code for an element that is not a bitfield.
8435 (output_constructor_bitfield): New output_constructor helper,
8436 extracted code for a bitfield element. Accept an OUTER state
8437 argument for recursive processing. Recurse on record or array
8438 CONSTRUCTOR values, possibly past noop conversions.
69e84e89 8439 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
34a6a65d 8440 VALUE is a valid constant-valued expression for use in a static
8441 bit-field initializer.
69e84e89 8442 (output_constructor): Rework to use helpers. Accept and honor an
8443 OUTER state argument for recursive calls. Return total size. Be
34a6a65d 8444 prepared for nested constructors initializing bitfields.
8445 (output_constant): Feed OUTER in calls to output_constructor.
8446
997988ca 84472009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
8448
8449 * calls.c (emit_library_call_value_1): Don't force_operand for move
8450 and push insns.
8451
7435242d 84522009-06-01 Nick Clifton <nickc@redhat.com>
8453
8454 * doc/invoke.texi (IA-64 Options): Fix typo.
8455
10095225 84562009-06-01 Ira Rosen <irar@il.ibm.com>
8457
8458 PR tree-optimization/39129
7c1037d2 8459 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
10095225 8460 printed message.
7c1037d2 8461 (vect_do_peeling_for_loop_bound): Use
10095225 8462 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
8463 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
8464 (vect_loop_versioning): Likewise.
8465 (vect_create_cond_for_alias_checks): Fix indentation.
7c1037d2 8466 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
10095225 8467 macros.
8468 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
8469 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
7c1037d2 8470 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
10095225 8471 "control flow in loop".
7c1037d2 8472 (vect_estimate_min_profitable_iters): Use
10095225 8473 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
8474 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
8475 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
8476 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
7c1037d2 8477 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
8478 statement belongs to a group of strided accesses with the exact code
10095225 8479 check.
8480 (vectorizable_load): Likewise.
8481 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
8482 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
8483
c4c8f6ce 84842009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
8485
8486 * config/freebsd-stdint.h: New file.
8487 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
8488 Add freebsd-stdint.h to tm_file.
8489
af29b1b3 84902009-06-01 Richard Earnshaw <rearnsha@arm.com>
8491
8492 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
8493 (thumb2_extendhidi2): Likewise.
8494
27d1bc52 84952009-05-31 Ian Lance Taylor <iant@google.com>
8496
faa14cce 8497 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
35a8b591 8498
84992009-05-31 Ian Lance Taylor <iant@google.com>
8500
faa14cce 8501 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
27d1bc52 8502 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
8503 (ipa-reference.o): Depend upon gt-ipa-reference.h.
8504
4437c3fe 85052009-05-31 Jason Merrill <jason@redhat.com>
8506
8507 * tree-pretty-print.c (print_call_name): Take the callee, not the
faa14cce 8508 call itself. Make non-static. Use dump_function_name for functions.
4437c3fe 8509 (dump_generic_node): Adjust.
8510 * diagnostic.h: Declare print_call_name.
8511 * gimple-pretty-print.c (dump_gimple_call): Use it.
8512
4f5ea781 85132009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
8514
8515 * config/sh/sh.md (ashldi3_std): New define_expand.
8516 (ashldi3): Use it.
8517
566998f1 85182009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
8519
8520 PR target/40313
8521 * config/sh/sh.c: Include debug.h.
8522 (sh_expand_epilogue): Emit a blockage insn before the frame
8523 pointer adjustment also when dwarf2out_do_frame returns true.
8524
409bc734 85252009-05-31 Richard Earnshaw <rearnsha@arm.com>
8526
8527 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
8528 (thumb2_extendqidi2): New pattern.
8529
f9e29128 85302009-05-31 Ira Rosen <irar@il.ibm.com>
8531
8532 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
8533 mark phis for renaming.
8534 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
8535 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
8536 Call mark_sym_for_renaming.
8537 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
faa14cce 8538 * tree-vect-loop.c (vect_transform_loop): Remove
8539 vect_memsyms_to_rename initialization and a call to
8540 mark_set_for_renaming.
f9e29128 8541
4872d196 85422009-05-31 Jakub Jelinek <jakub@redhat.com>
8543
8544 PR middle-end/40304
8545 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
8546 frame related even if !set_cfa && style < 0.
8547
d068eb52 85482009-05-30 Kai Tietz <kai.tietz@onevision.com>
8549
8550 * config/i386/mingw-tls.c: New file.
faa14cce 8551 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
8552 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
8553 defining _WIN32 but not __CYGWIN__.
d068eb52 8554
7601a55c 85552009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8556
8557 * configure.ac: Add MPC support.
f6c8c8fc 8558
8559 * config.in, configure: Regenerate.
7601a55c 8560
25e880b1 85612009-05-29 Richard Henderson <rth@redhat.com>
8562
8563 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
8564 NOTE_INSN_BASIC_BLOCK.
8565 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
8566 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
8567 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
8568 to be deleted.
8569 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
8570 add in_use field.
8571 (add_cfi): Disable check redefining cfa away from drap.
8572 (lookup_cfa_1): Add remember argument; handle remember/restore.
8573 (lookup_cfa): Pass remember argument.
8574 (cfa_remember): New.
8575 (compute_barrier_args_size_1): Remove sibcall check.
8576 (dwarf2out_frame_debug_def_cfa): New.
8577 (dwarf2out_frame_debug_adjust_cfa): New.
8578 (dwarf2out_frame_debug_cfa_offset): New.
8579 (dwarf2out_frame_debug_cfa_register): New.
8580 (dwarf2out_frame_debug_cfa_restore): New.
8581 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
8582 (dwarf2out_begin_epilogue): New.
8583 (dwarf2out_frame_debug_restore_state): New.
8584 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
8585 DW_CFA_restore_state.
8586 (output_cfi_directive): Likewise.
8587 (convert_cfa_to_fb_loc_list): Likewise.
8588 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
8589 * dwarf2out.h: Update.
8590 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
8591 (copy_insn_1): Early out for null.
8592 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
8593 and dwarf2out_frame_debug_restore_state.
8594 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
8595 (prologue_insn_hash, epilogue_insn_hash): New.
8596 (free_after_compilation): Adjust freeing accordingly.
8597 (record_insns): Create hash table if needed; push insns into
8598 hash instead of array.
8599 (maybe_copy_epilogue_insn): New.
8600 (contains): Search hash table instead of array.
8601 (sibcall_epilogue_contains): Remove.
8602 (thread_prologue_and_epilogue_insns): Split eh_return insns
8603 and mark them as epilogues.
8604 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
8605 scanning in terms of basic blocks.
8606 * insn-notes.def (CFA_RESTORE_STATE): New.
8607 * jump.c (returnjump_p_1): Accept EH_RETURN.
8608 (eh_returnjump_p_1, eh_returnjump_p): New.
8609 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
8610 CFA_REGISTER, CFA_RESTORE): New.
8611 * rtl.def (EH_RETURN): New.
8612 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
8613
8614 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
8615 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
8616
8617 * config/i386/i386.c (gen_push): Update cfa state.
8618 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
8619 add a CFA_ADJUST_CFA note.
8620 (ix86_dwarf_handle_frame_unspec): Remove.
8621 (ix86_expand_prologue): Update cfa state.
8622 (ix86_emit_restore_reg_using_pop): New.
8623 (ix86_emit_restore_regs_using_pop): New.
8624 (ix86_emit_leave): New.
8625 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
8626 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
8627 * config/i386/i386.h (struct machine_cfa_state): New.
8628 (ix86_cfa_state): New.
8629 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
8630 (eh_return_internal): Merge from eh_return_<mode>,
8631 use eh_return rtx, split w/ epilogue.
8632
d62e827b 86332009-05-29 Ian Lance Taylor <iant@google.com>
8634
8635 * builtins.c (validate_gimple_arglist): Don't use va_arg with
8636 enum type.
8637 * calls.c (emit_library_call_value_1): Likewise.
8638
8639 * c-typeck.c (c_build_va_arg): New function.
8640 * c-tree.h (c_build_va_arg): Declare.
8641 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
8642 instead of build_va_arg.
8643
fe4600c9 86442009-05-29 Eric Botcazou <ebotcazou@adacore.com>
8645
8646 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
8647 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
8648 (ptr_difference_cost): Use affine combinations to compute it.
8649 (difference_cost): Likewise.
8650 (get_computation_cost_at): Compute more accurate cost for addresses
8651 if the ratio is a multiplier allowed in addresses.
8652 For non-addresses, consider that an additional offset or symbol is
8653 added only once.
8654
00a0e418 86552009-05-29 Jakub Jelinek <jakub@redhat.com>
8656
1f3db558 8657 * config/i386/i386.c (ix86_decompose_address): Avoid useless
8658 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
8659
00a0e418 8660 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
8661 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
8662 (prefix_rex): For UNIT_MMX don't imply the prefix by default
8663 if MODE_DI.
8664 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
8665 to 1 for TYPE_SSE{IADD1,CVT1}.
8666 (prefix_vex_imm8): Removed.
8667 (length_vex): Only pass 1 as second argument to
8668 ix86_attr_length_vex_default if prefix_extra is 0.
8669 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
8670 (length): For prefix vex computation use length_immediate
8671 attribute instead of prefix_vex_imm8.
8672 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
8673 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
8674 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
8675 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
8676 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
8677 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
8678 a space in between the operands.
8679 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
8680 if one operand is 0xff and the other one si, di, bp or sp.
8681 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
8682 other one si, di, bp or sp.
8683 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
8684 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
8685 type and mode attributes.
8686 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
8687 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
8688 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
8689 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
8690 prefix_data16 attribute iff MODE_DF.
8691 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
8692 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
8693 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
8694 constm128_operand in length_immediate computation.
8695 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
8696 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
8697 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
8698 length_immediate attribute to 1.
8699 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
8700 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
8701 for certain alternatives.
8702 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
8703 prefix_data16 attribute if MODE_V1DF.
8704 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
8705 length_immediate to 1.
8706 (set_got_rex64, set_rip_rex64): Remove length attribute, set
8707 length_address to 4, set mode attribute to MODE_DI.
8708 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
8709 (fxam<mode>2_i387): Set length attribute to 4.
8710 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
8711 *prefetch_3dnow_rex): Override length_address attribute.
8712 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
8713 attributes.
8714 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
8715 (constm128_operand): Removed.
8716 * config/i386/i386.c (memory_address_length): For
8717 disp && !index && !base in 64-bit mode account for SIB byte if
8718 print_operand_address can't optimize disp32 into disp32(%rip)
8719 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
8720 for fs: or gs: segment.
8721 (ix86_attr_length_immediate_default): When checking if shortform
8722 is possible, truncate immediate to the length of the non-shortened
8723 immediate.
8724 (ix86_attr_length_address_default): Ignore MEM_P operands
8725 with X constraint.
8726 (ix86_attr_length_vex_default): Only check for DImode on
8727 GENERAL_REG_P operands.
8728 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
8729 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
8730 (sse_cvttps2pi): Clear prefix_rep attribute.
8731 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
8732 attribute.
8733 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
8734 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
8735 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
8736 iff operand 2 is const_int_operand.
8737 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
8738 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
8739 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
8740 instead of vex.
8741 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
8742 prefix_data16.
8743 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
8744 prefix_data16 attribute for movlpd and movhpd instructions.
8745 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
8746 length_immediate for shufpd instruction.
8747 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
8748 (avx_cmpp<avxmodesuffixf2c><mode>3,
8749 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
8750 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
8751 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
faa14cce 8752 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
00a0e418 8753 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
8754 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
8755 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
8756 prefix_data16 attribute for the first alternative to 1.
8757 (*avx_loadlps): Override length_immediate for the first alternative.
8758 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
8759 attributes for second alternative.
8760 (*vec_concatv2sf_sse4_1): Override length_immediate and
8761 prefix_data16 attributes for second alternative.
8762 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
8763 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
8764 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
8765 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
8766 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
8767 prefix_data16 and length_immediate to 1.
8768 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
8769 to 1.
8770 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
faa14cce 8771 prefix_extra attribute for variants that don't have 0f prefix alone.
00a0e418 8772 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
8773 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
8774 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
8775 *sse4_1_pextrd): Set length_immediate to 1.
8776 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
8777 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
8778 to 1.
8779 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
8780 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
8781 length_immediate to 1 for second alternative.
8782 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
8783 prefix_extra and length_immediate attributes for the first
8784 alternative.
8785 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
8786 first alternative.
8787 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
8788 to 1 for the first and third alternative.
8789 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
8790 alternative.
8791 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
8792 attribute.
8793 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
8794 attribute to 0.
8795 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
8796 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
8797 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
8798 *avx_psign<mode>3): Set prefix_extra attribute to 1.
8799 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
8800 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
8801 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
8802 ssse3_psign<mode>3): Override prefix_rex attribute.
faa14cce 8803 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
00a0e418 8804 (ssse3_palignrti): Override length_immediate to 1.
8805 (ssse3_palignrdi): Override length_immediate to 1, override
8806 prefix_rex attribute.
faa14cce 8807 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
00a0e418 8808 (sse4a_extrqi): Override length_immediate to 2.
8809 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
8810 (sse4a_insertq): Override prefix_data16 to 0.
8811 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
8812 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
8813 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
8814 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
8815 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
8816 and length_immediate to 1.
8817 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
8818 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
8819 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
8820 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
8821 and length_immediate to 1.
8822 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
8823 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
8824 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
8825 avx_ptest256): Override prefix_extra to 1.
8826 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
8827 Override prefix_data16 and length_immediate to 1.
8828 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
8829 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
8830 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
8831 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
8832 prefix_data16 to 0 and prefix_extra to 2.
8833 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
8834 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
8835 attribute.
8836 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
8837 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
8838 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
8839 and prefix_extra to 2.
8840 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
8841 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
8842 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
8843 avx_vpermilvar<mode>3,
8844 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
8845 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
8846 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
8847 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
8848 Override prefix_extra to 1.
8849 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
8850 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
8851 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
8852 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
8853 prefix_extra and length_immediate to 1.
8854 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
8855 modrm to 0.
8856 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
8857 to 1 for the first alternative.
8858 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
8859 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
8860 cases.
8861 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
8862 *movv2sf_internal_avx, *movv2sf_internal): Override
8863 prefix_rep attribute for certain alternatives.
8864 (*mov<mode>_internal): Override prefix_rep or prefix_data16
8865 attributes for certain alternatives.
8866 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
8867 attributes for certain alternatives.
8868 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
8869 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
8870 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
8871 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
8872 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
8873 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
8874 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
8875 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
8876 length_immediate to 1 if operand 2 is const_int_operand.
8877 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
faa14cce 8878 *vec_extractv2si_1): Set length_immediate attribute to 1.
00a0e418 8879 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
8880 using old 3DNOW insn rather than SSE/3DNOW_A.
8881 (mmx_emms, mmx_femms): Clear modrm attribute.
8882
8d53b873 88832009-05-29 Martin Jambor <mjambor@suse.cz>
8884
8885 * tree-sra.c: New implementation of SRA.
8886
8887 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
8888 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
8889 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
8890 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
8891 (SRA_MAX_STRUCTURE_COUNT): Removed.
8892 (SRA_FIELD_STRUCTURE_RATIO): Removed.
8893 * doc/invoke.texi (sra-max-structure-size): Removed.
8894 (sra-field-structure-ratio): Removed.
8895
7c1ab261 88962009-05-29 Jakub Jelinek <jakub@redhat.com>
8897
8898 PR middle-end/40291
8899 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
8900 before expansion.
8901
961d3eb8 89022009-05-29 Andrey Belevantsev <abel@ispras.ru>
8903
8904 PR rtl-optimization/40101
8905 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
8906 seqno. Adjust comment.
f6c8c8fc 8907 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
961d3eb8 8908 inserting bookkeeping before a jump, the jump is not scheduled.
8909 When no positive seqno found, provide a value. Add comment.
8910
bc3c318e 89112009-05-29 Richard Guenther <rguenther@suse.de>
8912
8913 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
8914 short-cutting on the first component.
8915
7cf869dd 89162009-05-29 Jakub Jelinek <jakub@redhat.com>
8917
8918 PR middle-end/39958
8919 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
8920 for trees other than decls/types.
8921
2adb8813 89222009-05-29 Richard Guenther <rguenther@suse.de>
8923
8924 * tree-ssa-operands.c (get_expr_operands): Do not handle
8925 INDIRECT_REFs in the handled-component case. Remove
8926 unused get_ref_base_and_extent case.
8927 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
8928 tree_low_cst and host_integerp where possible.
8929 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
8930 codes for equivalence.
8931 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
8932
6471e33b 89332009-05-29 David Billinghurst <billingd@gcc.gnu.org>
8934
8935 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
f6c8c8fc 8936 to tmake_file for i[34567]86-*-cygwin*.
6471e33b 8937
fd36071f 89382009-05-29 Jakub Jelinek <jakub@redhat.com>
8939
8940 PR target/40017
8941 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
8942 (altivec_categorize_keyword, init_vector_keywords,
8943 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
8944 similar to bool.
8945
de84ad02 89462009-05-29 Kai Tietz <kai.tietz@onevision.com>
8947
8948 * tree.c (handle_dll_attribute): Check if node is
8949 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
8950
4ce3945e 89512009-05-29 Richard Earnshaw <rearnsha@arm.com>
8952
8953 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
8954 component.
8955 (thumb2_zero_extendqidi2): Likewise.
8956
b0acfa02 89572009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
8958
8959 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
8960 instead of gen_movrt.
8961 * config/sh/sh.md (movrt): Remove.
8962
63945be2 89632009-05-28 Steve Ellcey <sje@cup.hp.com>
8964
faa14cce 8965 * doc/invoke.texi (IA-64 Options):
f6c8c8fc 8966 Add -msdata, -mfused-madd, -mno-inline-float-divide,
63945be2 8967 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
8968 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
8969 -msched-prefer-non-control-spec-insns,
8970 -msched-stop-bits-after-every-cycle,
8971 -msched-count-spec-in-critical-path,
8972 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
faa14cce 8973 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
63945be2 8974 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
8975 and -msched-spec-verbose.
8976
92ecd908 89772009-05-28 Joseph Myers <joseph@codesourcery.com>
8978
faa14cce 8979 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
92ecd908 8980 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
8981 error if used.
8982 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
8983
3918bd18 89842009-05-28 Richard Guenther <rguenther@suse.de>
8985
8986 * tree-ssa-alias.c (ao_ref_init): New function.
8987 (ao_ref_base): Likewise.
8988 (ao_ref_base_alias_set): Likewise.
8989 (ao_ref_alias_set): Likewise.
8990 (refs_may_alias_p_1): Change signature.
8991 (refs_may_alias_p): Adjust.
8992 (refs_anti_dependent_p): Likewise.
8993 (refs_output_dependent_p): Likewise.
8994 (call_may_clobber_ref_p_1): Change signature.
8995 (call_may_clobber_ref_p): Adjust.
8996 (stmt_may_clobber_ref_p_1): New function split out from ...
8997 (stmt_may_clobber_ref_p): ... here.
8998 (maybe_skip_until): Adjust signature.
8999 (get_continuation_for_phi): Likewise.
9000 (walk_non_aliased_vuses): Likewise.
9001 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
9002 (ao_ref_init): Declare.
9003 (ao_ref_base): Likewise.
9004 (ao_ref_alias_set): Likewise.
9005 (stmt_may_clobber_ref_p_1): Likewise.
9006 (walk_non_aliased_vuses): Adjust.
9007 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
9008 (get_ref_from_reference_ops): remove.
9009 (vn_reference_lookup_2): Adjust signature.
9010 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
faa14cce 9011 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
3918bd18 9012 (vn_reference_lookup): Adjust.
9013 (vn_reference_insert): Likewise.
9014 (vn_reference_insert_pieces): Adjust signature.
9015 (visit_reference_op_call): Adjust.
9016 * tree-ssa-pre.c (get_expr_type): Simplify.
9017 (phi_translate_1): Adjust.
9018 (compute_avail): Likewise.
9019 (translate_vuse_through_block): Do not re-build trees.
9020 (value_dies_in_block_x): Likewise.
9021 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
9022 fields.
9023 (vn_reference_lookup_pieces): Adjust declaration.
9024 (vn_reference_insert_pieces): Likewise.
9025
f2e585c3 90262009-05-28 Benjamin Kosnik <bkoz@redhat.com>
9027
9028 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
9029 with checking disabled.
9030
7b897de3 90312009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
9032
9033 PR target/37216
9034
9035 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
9036 macro definition for support of three-operand format aligned
9037 .comm directive in assembler on cygwin/pe/mingw target OS.
9038 * configure: Regenerate.
9039 * config.h: Regenerate.
9040
9041 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
9042 aligned form of .comm directive if -mpe-aligned-commons is in effect.
9043 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
9044
9045 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
9046 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
9047
dd2644cf 90482009-05-28 Ira Rosen <irar@il.ibm.com>
9049
9050 PR tree-optimization/40254
9051 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
9052 in analysis of basic blocks.
9053
01c8e4c9 90542009-05-28 Adam Nemet <anemet@caviumnetworks.com>
9055
9056 PR middle-end/33699
faa14cce 9057 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
01c8e4c9 9058 * target-def.h (TARGET_CONST_ANCHOR): New macro.
9059 (TARGET_INITIALIZER): Use it.
9060 * cse.c (CHEAPER): Move it up to the other macros.
9061 (insert): Rename this ...
9062 (insert_with_costs): ... to this. Add cost parameters. Update
9063 function comment.
9064 (insert): New function. Call insert_with_costs.
9065 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
9066 find_reg_offset_for_const, try_const_anchors): New functions.
9067 (cse_insn): Call try_const_anchors. Adjust cost of src_related
9068 when using a const-anchor. Call insert_const_anchors.
faa14cce 9069 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
01c8e4c9 9070 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
9071
0c1c155a 90722009-05-28 Alexandre Oliva <aoliva@redhat.com>
9073
9074 * tree-inline.c (remap_decls): Enable nonlocalized variables
9075 when not optimizing.
9076
fe5c69b7 90772009-05-28 Alexandre Oliva <aoliva@redhat.com>
9078
9079 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
9080 Simplify other tests involving optimize.
9081
99385b4b 90822009-05-27 Tom Tromey <tromey@redhat.com>
9083
9084 * unwind-dw2.c (_Unwind_DebugHook): New function.
9085 (uw_install_context): Call _Unwind_DebugHook.
9086
2458dc30 90872009-05-27 Tom Tromey <tromey@redhat.com>
9088
9089 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
9090
40b6e20e 90912009-05-27 Ian Lance Taylor <iant@google.com>
9092
9093 * Makefile.in (LINKER, LINKER_FLAGS): Define.
9094 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
9095 (ALL_LINKERFLAGS): Define.
9096 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
9097 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
9098 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
9099 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
9100 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
9101 $(LINKER_FOR_BUILD).
9102 (build/gcov-iov$(build_exeext)): Likewise.
9103
2b86a75a 91042009-05-27 Julian Brown <julian@codesourcery.com>
9105
9106 * gcse.c (target.h): Include.
9107 (can_assign_to_reg_without_clobbers_p): Check that the target allows
9108 copy of argument to a pseudo register.
9109
b79917fd 91102009-05-27 Diego Novillo <dnovillo@google.com>
9111
9112 * tree-ssa-live.c (dump_scope_block): Document arguments.
9113 (dump_scope_blocks): Document.
9114 (debug_scope_blocks): New.
9115 * tree-flow.h (debug_scope_blocks): Declare.
9116
23c2749b 91172009-05-21 Denis Chertykov <denisc@overta.ru>
9118
faa14cce 9119 * doc/contrib.texi (Contributors): Add myself to the list.
23c2749b 9120
4c13df35 91212009-05-27 Olivier Hainque <hainque@adacore.com>
6cbeacbb 9122
9123 * expr.c (target_align): New function. Alignment the TARGET of an
9124 assignment may be assume to have.
9125 (highest_pow2_factor_for_target): Use it instead of relying on
9126 immediate tree attributes of TARGET, not necessarily honored when
9127 intermediate bitfields are involved.
f6c8c8fc 9128
c2d2fbe7 91292009-05-27 H.J. Lu <hongjiu.lu@intel.com>
9130
9131 PR target/40266
9132 * config/i386/driver-i386.c (host_detect_local_cpu): Support
9133 AVX, SSE4, AES, PCLMUL and POPCNT.
9134
7aa082e5 91352009-05-27 Diego Novillo <dnovillo@google.com>
9136
9137 * tree-pretty-print.c (dump_location): New.
9138 (dump_generic_node): Call it.
9139 Factor code to handle BLOCK nodes ...
9140 (dump_block_node): ... here.
9141
a0b14cdf 91422009-05-27 Rafael Avila de Espindola <espindola@google.com>
9143
faa14cce 9144 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
9145 with it.
a0b14cdf 9146 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
9147 included.
9148 * gcc-plugin.h: Include config.h and system.h.
9149 (IN_GCC): Define if not defined.
9150
97903452 91512009-05-27 Hans-Peter Nilsson <hp@axis.com>
9152
9153 PR middle-end/40249
9154 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
9155 with -fno-inline.
9156
452bfb8b 91572009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
9158
9159 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
9160 applicable.
9161 * config/m32r/m32r.h: Ditto.
9162 * config/m32r/m32r.md: Ditto.
9163 * config/m32r/predicates.md: Ditto.
9164
75f1788a 91652009-05-27 Alexandre Oliva <aoliva@redhat.com>
9166
9167 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
9168
740cd0be 91692009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
9170
9171 * doc/plugins.texi
9172 (Loading plugins): typo.
9173 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
9174 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
9175 (Interacting with the GCC Garbage Collector): Added new section.
9176 (Giving information about a plugin): Added new section for
9177 PLUGIN_INFO.
740cd0be 9178 * ggc.h (ggc_register_root_tab): Added declaration.
9179 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
9180 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
9181 (register_callback): Improved comment in declaration.
faa14cce 9182 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
9183 (extra_root_vec) Added static variable for dynamic roots registration.
740cd0be 9184 (ggc_register_root_tab) Added new routine.
9185 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
9186 PLUGIN_GGC_MARKING event.
9187 * ggc-zone.c: Include plugin.h.
9188 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
9189 * ggc-page.c: Include plugin.h.
9190 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
9191 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
9192 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
9193 (register_callback): check lack of callbacks for
9194 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
9195 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
9196 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
9197 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
9198 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
9199 dependency on plugin.h.
9200 (plugin.o): Added dependency on ggc.h...
9201
79e662e5 92022009-05-26 Richard Guenther <rguenther@suse.de>
9203
9204 PR middle-end/40248
9205 Revert
9206 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
9207 with mismatched comparison modes.
9208
9209 * expr.c (expand_expr_real_1): Expand the operand of a
9210 VIEW_CONVERT_EXPR in its natural mode.
9211
585d4848 92122009-05-26 Ian Lance Taylor <iant@google.com>
9213
9214 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
9215 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
9216 (ALL_COMPILERFLAGS): Define.
9217 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
9218 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
9219 (collect2$(exeext), collect2.o): Likewise.
9220 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
9221 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
9222 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
9223 (libbackend.o, intl.o, cppdefault.o): Likewise.
9224 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
9225 (build/%.o): Use $(COMPILER_FOR_BUILD).
9226 (build/gen%$(build_exeext)): Likewise.
9227 (build/gcov-iov$(build_exeext)): LIkewise.
9228 * config/t-darwin (darwin.o): Use $(COMPILER).
9229 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
9230 * config/t-sol2 (sol2-c.o): Likewise.
9231 (sol2.o): Likewise.
9232 * config/t-vxworks (vxworks.o): Likewise.
9233 * config/x-darwin (host-darwin.o): Likewise.
9234 * config/x-hpux (host-hpux.o): Likewise.
9235 * config/x-linux (host-linux.o): Likewise.
9236 * config/x-solaris (host-solaris.o): Likewise.
9237 * config/alpha/x-alpha (driver-alpha.o): Likewise.
9238 * config/arm/t-arm (arm-c.o): Likewise.
9239 * config/arm/t-pe (pe.o): Likewise.
9240 * config/arm/t-wince-pe (pe.o): Likewise.
9241 * config/i386/t-cygming (winnt.o): Likewise.
9242 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
9243 * config/i386/t-cygwin (cygwin1.o): Likewise.
9244 (cygwin2.o): Likewise.
9245 * config/i386/t-i386 (i386-c.o): Likewise.
9246 * config/i386/t-interix (winnt.o): Likewise.
9247 * config/i386/t-netware (netware.o): Likewise.
9248 * config/i386/t-nwld (nwld.o): Likewise.
9249 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
9250 * config/i386/x-i386 (driver-i386.o): Likewise.
9251 * config/i386/x-cygwin (host-cygwin.o): Likewise.
9252 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
9253 * config/ia64/t-ia64 (ia64-c.o): Likewise.
9254 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
9255 * config/mips/x-native (driver-native.o): Likewise.
9256 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
9257 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
9258 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
9259 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
9260 * config/score/t-score-elf (score7.o): Likewise.
9261 (score3.o): Likewise.
9262 * config/sh/t-sh (sh-c.o): Likewise.
9263 * config/sh/t-symbian (sh-c.o): Likewise.
9264 (symbian.o): Likewise.
9265 * config/spu/t-spu-elf (spu-c.o): Likewise.
9266 * config/v850/t-v850 (v850-c.o): Likewise.
9267 * config/v850/t-v850e (v850-c.o): Likewise.
9268
388a0bc7 92692009-05-26 Richard Guenther <rguenther@suse.de>
9270
9271 PR tree-optimization/40122
9272 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
9273 VECTOR_CSTs if possible.
9274 (fold_gimple_assign): Likewise.
9275
f6d729b8 92762009-05-26 Richard Guenther <rguenther@suse.de>
9277
9278 PR middle-end/40252
9279 * fold-const.c (fold_binary): Use the correct types for building
9280 rotates.
9281
ba3f9c71 92822009-05-26 Richard Guenther <rguenther@suse.de>
9283
9284 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
9285 redundant calls to merge_alias_info.
9286 (bump_vector_ptr): Likewise.
9287 * tree-ssa-copy.c (merge_alias_info): Remove.
9288 (replace_exp_1): Remove call to merge_alias_info.
9289 (propagate_tree_value): Likewise.
9290 (fini_copy_prop): Propagate points-to info.
9291 * tree-flow.h (merge_alias_info): Remove.
9292
93829856 92932009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
9294
9295 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
9296
97343302 92972009-05-25 Jan Hubicka <jh@suse.cz>
9298
9299 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
9300 * cgraph.h (struct inline_summary): New filed self_wize,
9301 size_inlining_benefit, self_time and time_inlining_benefit.
9302 (struct cgraph_global_info): Replace insns by time ans size fields.
9303 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
9304 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
9305 (ipcp_update_callgraph): Do not touch function bodies.
9306 * ipa-inline.c: Include except.h
9307 (MAX_TIME): New constant.
9308 (overall_insns): Remove.
9309 (leaf_node_p): New.
9310 (overall_size, max_benefit): New static variables.
9311 (cgraph_estimate_time_after_inlining): New function.
9312 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
9313 (cgraph_clone_inlined_nodes): Update size.
9314 (cgraph_mark_inline_edge): Update size.
9315 (cgraph_estimate_growth): Use size info.
9316 (cgraph_check_inline_limits): Check size.
9317 (cgraph_default_inline_p): Likewise.
9318 (cgraph_edge_badness): Compute badness based on benefit and size cost.
9319 (cgraph_decide_recursive_inlining): Check size.
faa14cce 9320 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
9321 and times.
97343302 9322 (cgraph_decide_inlining): Likewise.
9323 (cgraph_decide_inlining_incrementally): Likewise; honor
9324 PARAM_EARLY_INLINING_INSNS.
9325 (likely_eliminated_by_inlining_p): New predicate.
9326 (estimate_function_body_sizes): New function.
9327 (compute_inline_parameters): Use it.
9328 * except.c (must_not_throw_labels): New function.
9329 * except.h (must_not_throw_labels): Declare.
9330 * tree-inline.c (init_inline_once): Kill inlining_weigths
9331 * tree-ssa-structalias.c: Avoid uninitialized warning.
9332 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
9333 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
9334 (PARAM_INLINE_CALL_COST): Remove.
9335 (PARAM_EARLY_INLINING_INSNS): New.
9336
d8021dea 93372009-05-25 Richard Guenther <rguenther@suse.de>
9338
9339 PR tree-optimization/36327
9340 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
faa14cce 9341 callback for reference translation or lookup at the point of may-defs.
d8021dea 9342 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
9343 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
9344 for union COMPONENT_REFs.
9345 (vn_reference_lookup_3): New callback. Lookup from memset
9346 and CONSTRUCTOR assignment, translate through struct copies.
9347 (vn_reference_lookup_pieces): Make sure to not free the
9348 passed operands array. Adjust walk_non_aliased_vuses call.
9349 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
9350 make sure we do not leak memory.
9351
7f81b5ee 93522009-05-25 Richard Guenther <rguenther@suse.de>
9353
9354 * tree-ssa-alias.h (dump_points_to_solution): Declare.
9355 * tree-inline.c (expand_call_inline): Reset the escaped and
9356 callused solutions.
9357 * tree-ssa-structalias.c (pass_build_ealias): New.
9358 * tree-pass.h (pass_build_ealias): Declare.
f6c8c8fc 9359 * passes.c (init_optimization_passes): Add PTA during
7f81b5ee 9360 early optimizations.
9361 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
9362 and CALLUSED solutions.
9363 (dump_points_to_solution): New function, split out from ...
9364 (dump_points_to_info_for): ... here.
9365 * tree-parloops.c (parallelize_loops): Reset the escaped and
9366 callused solutions.
9367
6a352190 93682009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9369
9370 PR bootstrap/40027
9371 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
9372 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
9373
765a637f 93742009-05-25 Ira Rosen <irar@il.ibm.com>
9375
9376 PR tree-optimization/40238
9377 * tree-vect-stmts.c (vect_init_vector): Insert initialization
9378 statements after basic block's labels.
f6c8c8fc 9379 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
765a637f 9380 to free the allocated memory.
9381
b4dce965 93822009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
9383
9384 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
9385 return address with a USE.
9386
3b32ccd7 93872009-05-24 Richard Guenther <rguenther@suse.de>
9388
9389 PR middle-end/40233
9390 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
9391 array type from the main variant of the inner type.
9392
98897d2c 93932009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9394
9395 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
9396 definition to bool (from int) to un-break build.
9397 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
9398
4c5fd53c 93992009-05-24 Paolo Bonzini <bonzini@gnu.org>
9400
9401 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
9402 discard_stmt_changes): Delete.
9403 * tree-ssa-operands.c (scb_stack): Delete.
9404 (init_ssa_operands): Do not initialize it.
9405 (fini_ssa_operands): Do not free it.
9406 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
9407
f6c8c8fc 9408 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
4c5fd53c 9409 update_stmt, remove the others. Fix comments.
9410 * tree-dfa.c (optimize_stack_restore): Likewise.
9411 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
9412 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
9413 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
9414 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
9415 Likewise.
9416 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
9417 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
faa14cce 9418 (dom_opt_finalize_block): Likewise, adjusting access to
9419 stmts_to_rescan.
4c5fd53c 9420 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
9421 (stmts_to_rescan): Change item type to gimple.
9422 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
9423
37545e54 94242009-05-24 Ira Rosen <irar@il.ibm.com>
9425
9426 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
9427 * tree-pass.h (pass_slp_vectorize): New pass.
9428 * params.h (SLP_MAX_INSNS_IN_BB): Define.
9429 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
9430 * tree-vectorizer.c (timevar.h): Include.
9431 (user_vect_verbosity_level): Declare.
9432 (vect_location): Fix comment.
9433 (vect_set_verbosity_level): Update user_vect_verbosity_level
9434 instead of vect_verbosity_level.
9435 (vect_set_dump_settings): Add an argument. Ignore user defined
9436 verbosity if dump flags require higher level of verbosity. Print to
9437 stderr only for loop vectorization.
9438 (vectorize_loops): Update call to vect_set_dump_settings.
9439 (execute_vect_slp): New function.
9440 (gate_vect_slp): Likewise.
9441 (struct gimple_opt_pass pass_slp_vectorize): New.
9442 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
9443 access its members.
9444 (vec_info_for_bb): New function.
9445 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
9446 (VECTORIZATION_ENABLED): New macro.
9447 (SLP_ENABLED, SLP_DISABLED): Likewise.
9448 (vect_is_simple_use): Add bb_vec_info argument.
9449 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
9450 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
9451 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
9452 vect_schedule_slp, vect_analyze_slp): Likewise.
9453 (vect_analyze_stmt): Add slp_tree argument.
9454 (find_bb_location): Declare.
9455 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
9456 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
9457 (vect_analyze_loop_operations, vect_analyze_loop,
9458 get_initial_def_for_induction, vect_create_epilog_for_reduction,
9459 vect_finalize_reduction, vectorizable_reduction,
9460 vectorizable_live_operation, vect_transform_loop): Likewise.
9461 * tree-data-ref.c (dr_analyze_innermost): Update comment,
9462 skip evolution analysis if analyzing a basic block.
9463 (dr_analyze_indices): Likewise.
9464 (initialize_data_dependence_relation): Skip the test whether the
9465 object is invariant for basic blocks.
9466 (compute_all_dependences): Skip dependence analysis for data
9467 references in basic blocks.
9468 (find_data_references_in_stmt): Don't fail in case of invariant
9469 access in basic block.
9470 (find_data_references_in_bb): New function.
9471 (find_data_references_in_loop): Move code to
2377feea 9472 find_data_references_in_bb and add a call to it.
37545e54 9473 (compute_data_dependences_for_bb): New function.
9474 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
9475 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
9476 that STEP is 0.
9477 (vect_analyze_data_ref_dependence): Check for interleaving in case of
9478 unknown dependence in basic block and fail in case of dependence in
9479 basic block.
9480 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
9481 dependence instances from either loop or basic block vectorization
9482 info.
9483 (vect_compute_data_ref_alignment): Check if it is loop vectorization
9484 before calling nested_in_vect_loop_p.
9485 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
9486 dependence instances from either loop or basic block vectorization
9487 info.
9488 (vect_verify_datarefs_alignment): Likewise.
9489 (vect_enhance_data_refs_alignment): Adjust function calls.
9490 (vect_analyze_data_refs_alignment): Likewise.
9491 (vect_analyze_group_access): Fix printing. Skip different checks if
9492 DR_STEP is 0. Keep strided stores either in loop or basic block
9493 vectorization data structure. Fix indentation.
9494 (vect_analyze_data_ref_access): Fix comments, allow zero step in
9495 basic blocks.
9496 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
9497 dependence instances from either loop or basic block vectorization
9498 info.
9499 (vect_analyze_data_refs): Update comment. Call
9500 compute_data_dependences_for_bb to analyze basic blocks.
9501 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
9502 case of loop vectorization. In case of basic block vectorization use
2377feea 9503 data-ref itself as a base.
37545e54 9504 (vect_create_data_ref_ptr): In case of basic block vectorization:
9505 don't advance the pointer, add new statements before the current
9506 statement. Adjust function calls.
9507 (vect_supportable_dr_alignment): Support only aligned accesses in
9508 basic block vectorization.
9509 * common.opt (ftree-slp-vectorize): New flag.
9510 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
9511 (vect_pattern_recog_1): Likewise.
9512 * tree-vect-stmts.c (process_use): Likewise.
9513 (vect_init_vector): Add new statements in the beginning of the basic
9514 block in case of basic block SLP.
9515 (vect_get_vec_def_for_operand): Adjust function calls.
9516 (vect_finish_stmt_generation): Likewise.
9517 (vectorizable_call): Add assert that it is loop vectorization, adjust
9518 function calls.
9519 (vectorizable_conversion, vectorizable_assignment): Likewise.
9520 (vectorizable_operation): In case of basic block SLP, take
9521 vectorization factor from statement's type and skip the relevance
9522 check. Adjust function calls.
9523 (vectorizable_type_demotion): Add assert that it is loop
9524 vectorization, adjust function calls.
9525 (vectorizable_type_promotion): Likewise.
9526 (vectorizable_store): Check for outer loop only in case of loop
9527 vectorization. Adjust function calls. For basic blocks, skip the
9528 relevance check and don't advance pointers.
9529 (vectorizable_load): Likewise.
9530 (vectorizable_condition): Add assert that it is loop vectorization,
9531 adjust function calls.
9532 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
9533 that it is not reduction, get vector type, call only supported
2377feea 9534 functions, skip loop specific parts.
37545e54 9535 (vect_transform_stmt): Check for outer loop only in case of loop
9536 vectorization.
9537 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
9538 (vect_is_simple_use): Fix comment, add new argument, fix conditions
9539 for external definition.
9540 * passes.c (pass_slp_vectorize): New pass.
9541 * tree-vect-slp.c (find_bb_location): New function.
9542 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
9543 check for patterns only in loops.
9544 (vect_build_slp_tree): Add argument, adjust function calls, fail in
9545 case of multiple types in basic block SLP.
9546 (vect_mark_slp_stmts_relevant): New function.
9547 (vect_supported_load_permutation_p): Fix comment.
9548 (vect_analyze_slp_instance): Add argument. In case of basic block
9549 SLP, take vectorization factor from statement's type, check that
9550 unrolling factor is 1. Adjust function call. Save SLP instance in
9551 either loop or basic block vectorization structure. Return FALSE,
9552 if SLP failed.
9553 (vect_analyze_slp): Add argument. Get strided stores groups from
9554 either loop or basic block vectorization structure. Return FALSE
9555 if basic block SLP failed.
9556 (new_bb_vec_info): New function.
9557 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
9558 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
9559 (vect_schedule_slp): Add argument. Get SLP instances from either
9560 loop or basic block vectorization structure. Set vectorization factor
9561 to be 1 for basic block SLP.
9562 (vect_slp_transform_bb): New function.
9563 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
9564
88facd8b 95652009-05-23 Mark Mitchell <mark@codesourcery.com>
9566
9567 * final.c (shorten_branches): Do not align labels for jump tables.
9568 (final_scan_insn): Use JUMP_TABLE_DATA_P.
9569
507ec136 95702009-05-23 Eric Botcazou <ebotcazou@adacore.com>
9571
9572 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
9573 Remove outdated reference to flow.c and fix nits.
9574 * doc/gccint.texi: Tweak RTL description.
9575 * doc/rtl.texi: Likewise.
9576
947dd720 95772009-05-23 Denis Chertykov <chertykov@gmail.com>
9578
9579 * config/avr/avr.c: Change my email address.
9580 * config/avr/avr.h: Likewise.
9581 * config/avr/avr.md: Likewise.
9582 * config/avr/avr-protos.h: Likewise.
9583 * config/avr/libgcc.S: Likewise.
9584
9d98604b 95852009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
9586
9587 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
9588 (spu_split_load, spu_split_store): Change return type to int.
9589 (spu_split_convert): Declare.
9590 * config/spu/predicates.md (spu_mem_operand): Remove.
9591 (spu_mov_operand): Update.
9592 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
9593 * config/spu/spu.c (regno_aligned_for_load): Remove.
9594 (reg_aligned_for_addr, spu_expand_load): Define.
9595 (spu_expand_extv): Reimplement and handle MEM.
9596 (spu_expand_insv): Handle MEM.
9597 (spu_sched_reorder): Handle insn's with length 0.
9598 (spu_legitimate_address_p): Reimplement.
9599 (store_with_one_insn_p): Return TRUE for any mode with size
9600 larger than 16 bytes.
9601 (address_needs_split): Define.
9602 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
9603 operands.
9604 (spu_convert_move): Define.
2377feea 9605 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
9d98604b 9606 (spu_split_store): Change all MEM's to TImode.
9607 (spu_init_expanders): Preallocate registers that correspond to
9608 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
9609 mark_reg_pointer.
9610 (spu_split_convert): Define.
9611 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
9612 (_move<mode>, _movdi, _movti): Update predicate and condition.
9613 (load, store): Change to define_split.
9614 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
9615 extend<mode>ti2.
9616 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
9617 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
9618 define_insn_and_split of lshr<mode>3.
9619 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
9620 (<v>ashr<mode>3_imm): Define.
9621 (extv, extzv, insv): Allow MEM operands.
9622 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
9623 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
9624 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
9625 (_spu_convert2): Change to define_insn_and_split and remove the
9626 corresponding define_peephole2.
9627 (stack_protect_set, stack_protect_test, stack_protect_test_si):
9628 Change predicates to memory_operand.
9629
beeea7ed 96302009-05-22 Mark Mitchell <mark@codesourcery.com>
9631
9632 * config/arm/thumb2.md: Add 16-bit multiply instructions.
beeea7ed 9633
4b2b1011 96342009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9635
9636 PR tree-optimization/40219
9637 * tree.c (iterative_hash_expr): Make sure the builtin function is
9638 a normal builtin function and not a front end or back end builtin
9639 before indexing into the built_in_decls array.
9640
2a3ebafa 96412009-05-22 Richard Guenther <rguenther@suse.de>
9642
9643 PR middle-end/38964
9644 * alias.c (write_dependence_p): Do not use TBAA for answering
9645 anti-dependence or output-dependence.
2377feea 9646 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
2a3ebafa 9647 (emit_pointer_definition): Remove.
9648 (emit_alias_warning): Likewise.
9649 (find_what_var_points_to): Remove TBAA pruning code.
9650 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
9651 violations.
9652 (compute_points_to_sets): Remove code computing the set of
9653 dereferenced pointers.
9654 * tree-data-ref.c (dr_may_alias_p): Properly use the split
9655 oracle for querying anti and output dependencies.
9656 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
9657 if TBAA may be applied.
9658 (refs_anti_dependent_p): New function.
9659 (refs_output_dependent_p): Likewise.
9660 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
9661 (refs_output_dependent_p): Likewise.
9662 * doc/tree-ssa.texi (Memory model): New section.
9663 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
9664 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
9665 * cfgexpand.c (expand_gimple_basic_block): Do not handle
9666 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
9667 * expr.c (expand_expr_real_1): Likewise.
9668 * gimple-low.c (lower_stmt): Likewise.
9669 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
9670 (dump_gimple_cdt): Remove.
9671 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
9672 (gimple_size): Likewise.
9673 (walk_gimple_op): Likewise.
9674 (is_gimple_stmt): Likewise.
9675 (walk_stmt_load_store_addr_ops): Likewise.
9676 (gimple_build_cdt): Remove.
9677 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
9678 * gimple.h (gimple_cdt_new_type): Remove.
9679 (gimple_cdt_new_type_ptr): Likewise.
9680 (gimple_cdt_set_new_type): Likewise.
9681 (gimple_cdt_location): Likewise.
9682 (gimple_cdt_location_ptr): Likewise.
9683 (gimple_cdt_set_location): Likewise.
9684 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
9685 * tree-cfg.c (remove_useless_stmts_1): Do not handle
9686 GIMPLE_CHANGE_DYNAMIC_TYPE.
9687 (verify_types_in_gimple_stmt): Likewise.
9688 * tree-inline.c (estimate_num_insns): Likewise.
9689 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
9690 (copy_decl_to_var): Likewise.
9691 (copy_result_decl_to_var): Likewise.
9692 * tree-pretty-print.c (dump_generic_node): Do not handle
9693 CHANGE_DYNAMIC_TYPE_EXPR.
9694 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9695 * tree-ssa-operands.c (get_expr_operands): Likewise.
9696 * tree-ssa-structalias.c (struct variable_info): Remove
9697 no_tbaa_pruning member.
9698 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
9699 (unify_nodes): Do not copy it.
9700 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
9701 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
9702 (set_uids_in_ptset): Do not check it.
9703 (find_what_var_points_to): Likewise.
9704 (compute_tbaa_pruning): Remove.
9705 (compute_points_to_sets): Do not call it.
9706 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
9707 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
9708 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
9709 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
9710 (DECL_NO_TBAA_P): Likewise.
9711 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
9712 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
9713 (expand_omp_atomic_pipeline): Do not set it.
9714 * print-tree.c (print_node): Do not dump it.
9715 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
9716 redundant check.
9717
59082b2e 97182009-05-22 Vladimir Makarov <vmakarov@redhat.com>
9719
9720 PR target/39856
9721 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
9722 for clobber.
9723
aed4eb5d 97242009-05-22 Mark Mitchell <mark@codesourcery.com>
9725
9726 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
9727 non-external.
9728
b384c0ce 97292009-05-22 Ben Elliston <bje@au.ibm.com>
9730
9731 * Makefile.in (bversion.h, s-bversion): New targets.
9732 (TOPLEV_H): Add bversion.h.
9733 * toplev.h: Include "bversion.h".
9734 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
9735 the __format__ attribute only if compiling with the same version
9736 of GCC as the sources (the "build version").
9737
0fb56989 97382009-05-22 Ben Elliston <bje@au.ibm.com>
9739
9740 * c-format.c (handle_format_attribute): Fix comment typo.
9741
4fbe0a55 97422009-05-21 Steve Ellcey <sje@cup.hp.com>
9743
9744 PR target/37846
9745 * config/ia64/ia64.opt (mfused-madd): New.
9746 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
9747 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
9748 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
9749 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
9750 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
9751 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
9752 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
f6c8c8fc 9753 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
4fbe0a55 9754 instruction if !TARGET_FUSED_MADD.
9755 (fpma, fpms): Remove colon from name.
9756
869bac23 97572009-05-22 Richard Guenther <rguenther@suse.de>
9758
9759 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
9760 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
9761 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
9762 TARGET_MEM_REF.
9763 (create_expression_by_pieces): Only convert if necessary.
9764 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
9765 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
9766
e716188e 97672009-05-21 Adam Nemet <anemet@caviumnetworks.com>
9768
9769 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
9770 regular pattern from a template and rename it ...
9771 (*extzv_truncsi_exts): ... to this.
9772
18c97951 97732009-05-21 Richard Guenther <rguenther@suse.de>
9774
9775 * cgraph.h (struct cgraph_node): Remove inline_decl member.
9776 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
9777 (cgraph_default_inline_p): Likewise.
9778 (cgraph_decide_inlining_incrementally): Likewise.
9779
525b61fa 97802009-05-21 H.J. Lu <hongjiu.lu@intel.com>
9781 Uros Bizjak <ubizjak@gmail.com>
9782
9783 * config/i386/cpuid.h (bit_MOVBE): New.
9784
9785 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
9786
9787 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
9788 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
9789 (ix86_handle_option): Handle OPT_mmovbe.
9790 (ix86_target_string): Add -mmovbe.
9791 (pta_flags): Add PTA_MOVBE.
9792 (processor_alias_table): Add PTA_MOVBE to "atom".
9793 (override_options): Handle PTA_MOVBE.
9794
9795 * config/i386/i386.h (TARGET_MOVBE): New.
9796
9797 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
9798 (*bswapsi_movbe): New.
9799 (*bswapdi_movbe): Likewise.
9800 (bswapdi2): Renamed to ...
9801 (*bswapdi_1): This.
9802 (bswapdi2): New expander.
9803
9804 * config/i386/i386.opt (mmovbe): New.
9805
9806 * doc/invoke.texi: Document -mmovbe.
9807
0b3a031a 98082009-05-21 Taras Glek <tglek@mozilla.com>
9809
9810 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
9811 * gcc-plugin.h (plugin_init): Updated signature.
9812 * gcc-plugin.h (plugin_name_args): Moved to this header.
525b61fa 9813 * doc/plugins.texi (plugin_init): Updated documention to reflect
9814 API change.
0b3a031a 9815 * doc/plugins.texi (plugin_name_args): Added to documention.
9816
3d8bad71 98172009-05-21 Mark Mitchell <mark@codesourcery.com>
9818
9819 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
9820 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
9821
d41c63a8 98222009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
9823
9824 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
9825 JUMP_TABLE_DATA_P predicates where applicable.
9826 * config/i386/predicates.md: Ditto.
9827 * config/i386/sse.md: Ditto.
9828
2aa911e0 98292009-05-21 Jakub Jelinek <jakub@redhat.com>
9830
ff07cef7 9831 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
9832 operand2 -128 override length_immediate attribute to 1.
9833 * config/i386/predicates.md (constm128_operand): New predicate.
9834
2aa911e0 9835 * config/i386/i386.c (memory_address_length): Handle %r12
9836 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
9837 also check REGNO.
9838 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
9839 mode look through optional ZERO_EXTEND and SUBREG.
9840 * config/i386/i386.md (R12_REG): New define_constant.
9841 (prefix_data16): For sse unit set also for MODE_TI insns.
9842 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
9843 insns set if operand 1 is ext_QIreg_operand.
9844 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
9845 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
9846 immediate.
9847 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
9848 mode from MODE_DI to MODE_SI.
9849 (movdi_1_rex64): Override modrm and length_immediate attributes
9850 only for movabs (TYPE_IMOV, alternative 2).
9851 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
9852 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
9853 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
9854 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
9855 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
9856 prefix_rex attribute if DImode.
9857 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
9858 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
9859 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
9860 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
9861 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
9862 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
9863 Likewise. For TYPE_IMOV clear length_immediate attribute.
9864 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
9865 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
9866 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
9867 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
9868 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
9869 or one operand TYPE_ISHIFT.
9870 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
9871 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
9872 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
9873 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
9874 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
9875 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
9876 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
9877 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
9878 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
9879 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
9880 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
9881 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
9882 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
9883 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
9884 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
9885 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
9886 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
9887 set mode attribute, don't override length attribute.
9888 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
9889 to 1.
9890 (return_internal_long): Set length attribute to 2 instead of 1.
9891 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
9892 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
9893 prefix_rex attribute.
2377feea 9894 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
9895 New predicates.
9896 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
2aa911e0 9897
dad3e2d4 98982009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9899
9900 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
9901
f352a3fb 99022009-05-20 Ian Lance Taylor <iant@google.com>
9903
9904 * tree.c (build_tree_list_vec_stat): New function.
9905 (ctor_to_vec): New function.
9906 (build_nt_call_vec): New function.
9907 (build_call_array): Change args to be a const pointer.
9908 (build_call_vec): New function.
9909 * tree.h (build_nt_call_vec): Declare.
9910 (build_tree_list_vec_stat): Declare.
9911 (build_tree_list_vec): Define.
9912 (build_call_array): Update declaration.
9913 (build_call_vec): Declare.
9914 (ctor_to_vec): Declare.
9915 * c-common.c (tree_vector_cache): New static variable.
9916 (make_tree_vector): New function.
9917 (release_tree_vector): New function.
9918 (make_tree_vector_single): New function.
9919 (make_tree_vector_copy): New function.
9920 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
9921 (make_tree_vector_single, make_tree_vector_copy): Declare.
9922 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
9923 (c_parser_expr_list): Don't manage cache here, instead call
9924 make_tree_vector.
9925 (c_parser_release_expr_list): Remove static function.
9926 (c_parser_vec_to_tree_list): Remove static function.
9927 (c_parser_attributes): Call build_tree_list_vec instead of
9928 c_parser_vec_to_tree_list. Call release_tree_vector instead of
9929 c_parser_release_expr_list.
9930 (c_parser_postfix_expression_after_primary): Likewise.
9931 (c_parser_objc_keywordexpr): Likewise.
9932
2b3c93a3 99332009-05-20 Sandra Loosemore <sandra@codesourcery.com>
9934
9935 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
9936 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
9937 TARGET_CONVERT_TO_TYPE.
9938 * hooks.c (hook_tree_const_tree_null): Define.
9939 * hooks.h (hook_tree_const_tree_null): Declare.
9940 * target.h (struct gcc_target): Add invalid_parameter_type,
9941 invalid_return_type, promoted_type, and convert_to_type fields.
9942 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
9943 (TARGET_INVALID_RETURN_TYPE): Define.
9944 (TARGET_PROMOTED_TYPE): Define.
9945 (TARGET_CONVERT_TO_TYPE): Define.
9946 (TARGET_INITIALIZER): Update for new fields.
9947 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
9948 (grokparms): Check targetm.invalid_parameter_type.
9949 * c-typeck.c (default_conversion): Check targetm.promoted_type.
9950 * c-convert.c (convert): Check targetm.convert_to_type.
9951
d5594fe1 99522009-05-20 Adam Nemet <anemet@caviumnetworks.com>
9953
9954 * config/mips/mips.md (*extenddi_truncate<mode>,
9955 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
9956 defintions.
9957 (*extendhi_truncateqi): New define_insn_and_sptit.
9958
6189c517 99592009-05-20 Jakub Jelinek <jakub@redhat.com>
9960
9961 PR middle-end/40204
9962 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
2377feea 9963 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
6189c517 9964
52dbb6e6 99652009-05-20 Eric Botcazou <ebotcazou@adacore.com>
9966
9967 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
9968 the operand of VIEW_CONVERT_EXPR.
9969
4ec32090 99702009-05-20 H.J. Lu <hongjiu.lu@intel.com>
9971
9972 * config/i386/driver-i386.c (host_detect_local_cpu): Check
faa14cce 9973 extended family and model for Intel processors. Support Intel Atom.
4ec32090 9974
c1e61953 99752009-05-20 Olivier Hainque <hainque@adacore.com>
9976
9977 * gstab.h (stab_code_type): Define, to be used instead of the
9978 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
9979 notice.
9980 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
9981 occurrences by stab_code_type.
9982 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
9983
b39bfa08 99842009-05-20 Martin Jambor <mjambor@suse.cz>
9985
9986 * tree-flow.h (insert_edge_copies_seq): Undeclare.
9987 (sra_insert_before): Likewise.
9988 (sra_insert_after): Likewise.
9989 (sra_init_cache): Likewise.
9990 (sra_type_can_be_decomposed_p): Likewise.
9991 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
9992 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
9993 (sra_insert_before): Likewise.
9994 (sra_insert_after): Likewise.
9995 (sra_init_cache): Likewise.
9996 (insert_edge_copies_seq): Made static and moved upwards.
9997
9998 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
9999 case.
10000
10001 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
10002
10003 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
10004 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
10005 simple copies.
10006
f367b3d4 100072009-05-20 Richard Guenther <rguenther@suse.de>
10008
10009 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
10010 with mismatched comparison modes.
10011
90560cad 100122009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2377feea 10013
90560cad 10014 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
2377feea 10015 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
10016 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
10017 with shifts for Thumb2.
10018 (orsi_notsi): New for orn.
10019 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
10020 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
10021 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
10022 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
10023 Don't invert remainder for IOR.
f6c8c8fc 10024
fffbaaf2 100252009-05-19 Zdenek Dvorak <ook@ucw.cz>
10026
10027 PR tree-optimization/40087
10028 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
10029 number_of_iterations_ne): Rename never_infinite argument.
10030 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
10031 number_of_iterations_le): Handle pointer-type ivs when
10032 exit_must_be_taken is false.
10033 (number_of_iterations_cond): Do not always assume that
10034 exit_must_be_taken if the control variable is a pointer.
10035
b6d7101e 100362009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
10037
10038 * c-typeck.c (build_binary_op): Allow % on integal vectors.
10039 * doc/extend.texi (Vector Extension): Document that % is allowed too.
10040
d0573158 100412009-05-19 H.J. Lu <hongjiu.lu@intel.com>
10042
10043 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
10044 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
10045
e80c6822 100462009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
10047
10048 PR c/40172
10049 * c.opt (Wlogical-op): Disabled by default.
10050 * c-opt (c_common_post_options): Do not enable Wlogical-op with
10051 Wextra.
10052 * doc/invoke.texi (Wlogical-op): Likewise.
f6c8c8fc 10053
191bdb6e 100542009-05-19 Eric Botcazou <ebotcazou@adacore.com>
10055
10056 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
10057 into CASE_CONVERT.
10058 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
10059 Propagate the type of the first operand.
10060 <ASSERT_EXPR>: Simplify.
10061 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
10062 Rewrite using the RHS code as discriminant.
10063 <NOP_EXPR>: Turn into CASE_CONVERT.
10064 <PLUS_EXPR>: Propagate the type of the first operand.
10065
50738926 100662009-05-19 Steve Ellcey <sje@cup.hp.com>
10067
10068 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
10069 (ia64_dconst_0_375): New.
10070 * config/ia64/ia64.c (ia64_override_options): Remove
10071 -minline-sqrt-min-latency warning.
10072 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
10073 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
10074 * config/ia64/ia64.md (*sqrt_approx): Remove.
10075 (sqrtsf2): Remove #if 0.
10076 (sqrtsf2_internal_thr): Rewrite and move to div.md.
10077 (sqrtdf): Remove assert.
10078 (sqrtdf2_internal_thr): Rewrite and move to div.md.
10079 (sqrtxf2): Remove #if 0.
10080 (sqrtxf2_internal_thr): Rewrite and move to div.md.
10081 * div.md (sqrt_approx_rf): New.
10082 (sqrtsf2_internal_thr): New implementation.
10083 (sqrtsf2_internal_lat): New.
10084 (sqrtdf2_internal_thr: New implementation.
10085 (sqrtxf2_internal): New implementation.
10086
b0b1cbb9 100872009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
10088 Hans-Peter Nilsson <hp@axis.com>
10089
10090 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
10091 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
10092 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
10093 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
10094 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
10095 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
10096 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
10097 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
10098 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
10099 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
10100 * c-common.c: ...from here.
10101
bac21f4c 101022009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
10103
faa14cce 10104 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
bac21f4c 10105
44d89feb 101062009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10107
10108 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
10109
46d25b89 101102009-05-19 Ben Elliston <bje@au.ibm.com>
10111
10112 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
10113 assignments with memcpy calls.
10114 (add_fdes): Likewise.
10115 (binary_search_unencoded_fdes): Likewise.
10116 (linear_search_fdes): Eliminate type puns.
f6c8c8fc 10117
9e019299 101182009-05-19 Richard Guenther <rguenther@suse.de>
10119
10120 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
10121 not falsely claim to have propagated into all uses.
10122
83c2609c 101232009-05-19 Ben Elliston <bje@au.ibm.com>
10124
10125 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
10126 version to v3.0.
10127
eeabeacf 101282009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
10129
10130 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
10131 * config/sh/sh.c (sh_legitimate_address_p): Make static.
10132 (TARGET_LEGITIMATE_ADDRESS_P): New.
10133 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10134 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
f6c8c8fc 10135
9c569d54 101362009-05-18 Dodji Seketeli <dodji@redhat.com>
10137
10138 PR debug/40109
10139 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
10140 child of the containing namespace's DIE.
10141
7c6d4a4d 101422009-05-18 Adam Nemet <anemet@caviumnetworks.com>
10143
10144 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
10145 *zero_extendhi_truncqi): Move after the zero_extend patterns.
10146 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
10147 extend patterns.
10148
3559347d 101492009-05-18 H.J. Lu <hongjiu.lu@intel.com>
10150
10151 PR target/39942
10152 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
10153 gen_align with gen_pad.
10154 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
10155 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
10156
10157 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
10158 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
10159
10160 * config/i386/i386.md (align): Renamed to ...
10161 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
10162 ASM_OUTPUT_MAX_SKIP_PAD.
10163
f422081b 101642009-05-18 Andreas Schwab <schwab@linux-m68k.org>
10165
e371d98c 10166 * config.gcc: Fix variable syntax.
10167
f422081b 10168 PR target/39531
10169 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
10170 before calling exact_log2.
10171 (output_iorsi3): Likewise.
10172 (output_xorsi3): Likewise.
10173
79c09794 101742009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
10175
10176 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
10177 for the none zero constant operand except for EQ and NE
10178 comprisons even when the first operand is R0.
10179
ffead1ca 101802009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
10181
10182 * config/s390/2064.md: Remove trailing whitespaces.
10183 * config/s390/2084.md: Likewise.
10184 * config/s390/constraints.md: Likewise.
10185 * config/s390/fixdfdi.h: Likewise.
10186 * config/s390/libgcc-glibc.ver: Likewise.
10187 * config/s390/s390-modes.def: Likewise.
10188 * config/s390/s390-protos.h: Likewise.
10189 * config/s390/s390.c: Likewise.
10190 * config/s390/s390.h: Likewise.
10191 * config/s390/s390.md: Likewise.
10192 * config/s390/tpf-unwind.h: Likewise.
10193
2a381450 101942009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
10195
10196 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
10197
869bde6b 101982009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
10199
10200 M68K TLS support.
10201 * configure.ac (m68k-*-*): Check if binutils support TLS.
10202 * configure: Regenerate.
10203 * config/m68k/predicates.md (symbolic_operand): Extend comment.
10204 * config/m68k/constraints.md (Cu): New constraint.
10205 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
10206 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
10207 (movsi): Handle TLS symbols.
10208 (addsi3_5200): Handle XTLS symbols, indent.
10209 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
10210 (m68k_tls_reference_p): Declare.
10211 (m68k_legitimize_address): Declare.
10212 (m68k_unwrap_symbol): Declare.
10213 * config/m68k/m68k.opt (mxtls): New option.
10214 * config/m68k/m68k.c (ggc.h): Include.
10215 (m68k_output_dwarf_dtprel): Implement hook.
10216 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
10217 (m68k_expand_prologue): Load GOT pointer when function needs it.
10218 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
10219 (m68k_legitimate_constant_address_p): Same.
10220 (m68k_decompose_address): Handle TLS references.
10221 (m68k_get_gp): New static function.
10222 (enum m68k_reloc): New contants.
10223 (TLS_RELOC_P): New macro.
10224 (m68k_wrap_symbol): New static function.
10225 (m68k_unwrap_symbol): New function.
10226 (m68k_final_prescan_insn_1): New static function.
10227 (m68k_final_prescan_insn): New function.
10228 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
10229 functions.
10230 (legitimize_pic_address): Handle TLS references..
10231 (m68k_tls_get_addr, m68k_get_tls_get_addr)
10232 (m68k_libcall_value_in_a0_p)
10233 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
10234 (m68k_call_m68k_read_tp): Helper variables and functions for ...
10235 (m68k_legitimize_tls_address): Handle TLS references.
10236 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
10237 New functions.
10238 (m68k_legitimize_address): Handle TLS symbols.
10239 (m68k_get_reloc_decoration): New static function.
10240 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
10241 UNSPEC_RELOC32.
10242 (m68k_output_dwarf_dtprel): Implement hook.
10243 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
10244 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
10245 m68k_call_* routines.
10246 (sched_attr_op_type): Handle TLS symbols.
10247 (gt-m68k.h): Include.
10248 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
10249 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
10250
a3808114 102512009-05-18 Martin Jambor <mjambor@suse.cz>
10252
10253 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
10254 (visit_store_addr_for_mod_analysis): New function.
10255 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
10256 (determine_cst_member_ptr): Use gimple_assign_single_p.
10257 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
10258 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
10259 operands. Don't check number of operands of a NOP_EXPR.
10260
87deed07 102612009-05-18 Eric Fisher <joefoxreal@gmail.com>
10262
10263 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
10264
0969aa9b 102652009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
10266
10267 PR c/40172
10268 * c-common.c (warn_logical_operator): Don't warn if one of
10269 expression isn't always true or false.
10270
80c5827c 102712009-05-17 Kai Tietz <kai.tietz@onevision.com>
10272
0969aa9b 10273 * config/i386/biarch32.h: New file.
10274 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
80c5827c 10275
f494873f 102762009-05-17 Adam Nemet <anemet@caviumnetworks.com>
10277
10278 * config/mips/mips.md (*zero_extend<mode>_trunchi,
10279 *zero_extend<mode>_truncqi): Merge these into ...
10280 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
10281 Name the pattern following this as *zero_extendhi_truncqi.
10282
c2a312d3 102832009-05-16 Brad Lucier <lucier@math.purdue.edu>
10284
10285 PR middle-end/39301
10286 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
10287 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
10288 (output_info): Make field HOST_WIDEST_INT.
10289 (print_statistics): Use HOST_WIDEST_INT_PRINT.
10290 (dump_bitmat_statistics): Same.
10291
ef87fe4c 102922009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
10293
10294 * config.gcc (use_gcc_stdint): Set to wrap.
10295 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
10296 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
10297 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10298 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10299 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10300 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10301 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10302 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10303
38c0064e 103042009-05-16 Joseph Myers <joseph@codesourcery.com>
10305
10306 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
10307 tune_64.
10308 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
10309 Move definitions earlier.
10310 (OPT_ARCH64, OPT_ARCH32): Define.
10311 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
10312 and tune_64.
10313
a277ddf3 103142009-05-16 Richard Earnshaw <rearnsha@arm.com>
10315
10316 PR target/40153
10317 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
10318 implies.
10319
bc5a93af 103202009-05-16 Richard Earnshaw <rearnsha@arm.com>
10321
10322 * arm.md (movdi2): Copy non-reg values to DImode registers.
10323
139e6b83 103242009-05-16 Jakub Jelinek <jakub@redhat.com>
10325
01e60dc2 10326 PR target/39942
10327 * final.c (label_to_max_skip): New function.
10328 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
10329 CODE_LABEL_NUMBER <= max_labelno.
10330 * output.h (label_to_max_skip): New prototype.
10331 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
10332 (ix86_avoid_jump_mispredicts): ... this. Don't define if
10333 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
10334 Handle CODE_LABELs with >= 16 byte alignment or with
10335 max_skip == (1 << align) - 1.
10336 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
10337 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
10338
139e6b83 10339 PR target/39942
10340 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
10341 .p2align 3 if MAX_SKIP is smaller than 7.
10342 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10343
26dbec0a 103442009-05-15 Ian Lance Taylor <iant@google.com>
10345
10346 * alias.c (struct alias_set_entry_d): Rename from struct
10347 alias_set_entry. Change all uses.
10348 * except.c (struct call_site_record_d): Rename from struct
10349 call_site_record. Change all uses.
10350 * except.h (struct eh_region_d): Rename from struct eh_region.
10351 Change all uses.
10352 * gcse.c (struct hash_table_d): Rename from struct hash_table.
10353 Change all uses.
10354 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
10355 ivtype_map_elt. Change all uses.
10356 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
10357 Change all uses.
10358 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
10359 * graphite.h (struct name_tree_d): Rename from struct name_tree.
10360 Change all uses.
10361 (struct sese_d): Rename from struct sese. Change all uses.
2377feea 10362 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
10363 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
26dbec0a 10364 * optabs.h (struct optab_d): Rename from struct optab. Change all
10365 uses.
10366 (struct convert_optab_d): Rename from struct convert_optab.
10367 Change all uses.
10368 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
10369 ipa_opt_pass. Change all uses.
10370 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
10371 all uses.
10372
10373 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
10374 defined as a typedef.
10375 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
10376 defined as a tag.
10377
9c20c4fc 103782009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
10379
10380 PR 16302
10381 * fold-const.c (make_range,build_range_check,merge_ranges): Move
10382 declaration to...
f6c8c8fc 10383 (merge_ranges): Returns bool.
9c20c4fc 10384 * tree.h (make_range): .. to here.
10385 (build_range_check): Likewise.
10386 (merge_ranges): Likewise. Renamed from merge_ranges.
10387 * c-typeck.c (parser_build_binary_op): Update calls to
10388 warn_logical_operator.
10389 * c-common.c (warn_logical_operator): Add new warning.
10390 * c-common.h (warn_logical_operator): Update declaration.
f6c8c8fc 10391
4b0c3b93 103922009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
10393
2377feea 10394 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
f6c8c8fc 10395
239d491a 103962009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10397
b155fb54 10398 * doc/install.texi: Document MPC requirements, flags etc.
10399
239d491a 10400 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
10401 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
10402 Evaluate constant arguments.
10403 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
10404 (fold_builtin_1): Likewise, also evaluate constant arguments.
10405 Remove superfluous break.
10406 (do_mpc_ckconv): New.
10407 * real.h: Include mpc.h.
10408 * toplev.c (print_version): Output MPC version info if available.
10409
275b395f 104102009-05-15 Sandra Loosemore <sandra@codesourcery.com>
10411
2377feea 10412 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
275b395f 10413
2206e042 104142009-05-15 H.J. Lu <hongjiu.lu@intel.com>
10415
10416 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
10417 only once.
10418
a7b61d8c 104192009-05-15 Jan Hubicka <jh@suse.cz>
10420
10421 * doc/invoke.texi (max-early-inliner-iterations): New flag.
10422 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
10423 (try_inline): Fix return value.
10424 (cgraph_decide_inlining_incrementally): Honor new value.
10425 (cgraph_early_inlining): Handle indirect inlining.
10426 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
10427
22c748a1 104282009-05-15 Jan Hubicka <jh@suse.cz>
10429
10430 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
10431 * cgraphunit.c (cgraph_finalize_function): Set it.
10432 (cgraph_expand_function): Use it.
10433
681f1241 104342009-05-15 Sandra Loosemore <sandra@codesourcery.com>
10435
10436 * real.c (encode_ieee_half): Define.
10437 (decode_ieee_half): Define.
10438 (ieee_half_format): Define.
10439 (arm_half_format): Define.
10440 * real.h (ieee_half_format): Declare.
10441 (arm_half_format): Declare.
10442
d5a9653a 104432009-05-15 Sandra Loosemore <sandra@codesourcery.com>
10444
10445 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
10446 swapped, and reversed optabs exist before trying to use them.
10447
f1c02c87 104482009-05-15 Paul Brook <paul@codesourcery.com>
10449 Sandra Loosemore <sandra@codesourcery.com>
10450
f1c02c87 10451 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
10452 loads. Allow PRE_DEC.
10453 (output_move_neon): Handle PRE_DEC.
10454 (arm_print_operand): Add 'A' for neon structure loads.
10455 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
10456 * config/arm/neon.md (neon_mov): Update comment.
10457 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
10458 calls.
10459 (Um): New constraint.
10460
2958813f 104612009-05-15 Jan Hubicka <jh@suse.cz>
10462
10463 Revert the following patch until testsuite fallout is fixed:
10464 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
10465 * cgraph.h (struct inline_summary): New filed self_wize,
10466 size_inlining_benefit, self_time and time_inlining_benefit.
10467 (struct cgraph_global_info): Replace insns by time ans size fields.
10468 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
10469 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
10470 (ipcp_update_callgraph): Do not touch function bodies.
10471 * ipa-inline.c: Include except.h
2377feea 10472 (MAX_TIME): New constant.
2958813f 10473 (overall_insns): Remove
10474 (overall_size, max_benefit): New static variables.
10475 (cgraph_estimate_time_after_inlining): New function.
10476 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
10477 (cgraph_clone_inlined_nodes): Update size.
10478 (cgraph_mark_inline_edge): Update size.
10479 (cgraph_estimate_growth): Use size info.
10480 (cgraph_check_inline_limits): Check size.
10481 (cgraph_default_inline_p): Likewise.
10482 (cgraph_edge_badness): Compute badness based on benefit and size cost.
10483 (cgraph_decide_recursive_inlining): Check size.
faa14cce 10484 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
10485 and times.
2958813f 10486 (cgraph_decide_inlining): Likewise.
54e6ab3d 10487 (cgraph_decide_inlining_incrementally): Likewise; honor
10488 PARAM_EARLY_INLINING_INSNS.
2958813f 10489 (likely_eliminated_by_inlining_p): New predicate.
10490 (estimate_function_body_sizes): New function.
10491 (compute_inline_parameters): Use it.
10492 * except.c (must_not_throw_labels): New function.
10493 * except.h (must_not_throw_labels): Declare.
10494 * tree-inline.c (init_inline_once): Kill inlining_weigths
10495 * tree-ssa-structalias.c: Avoid uninitialized warning.
10496 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
10497 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
10498 (PARAM_INLINE_CALL_COST): Remove.
10499 (PARAM_EARLY_INLINING_INSNS): New.
10500
1b536c34 105012009-05-15 Richard Guenther <rguenther@suse.de>
10502
10503 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
10504 not TODO_update_ssa.
10505
a1157bfe 105062009-05-15 Richard Guenther <rguenther@suse.de>
10507
10508 PR tree-optimization/39999
10509 * gimple.h (gimple_expr_type): Use the expression type looking
10510 through useless conversions.
10511 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
10512 (vn_nary_op_insert_stmt): Likewise.
10513 (simplify_binary_expression): Likewise.
10514
408c3c77 105152009-05-15 Richard Guenther <rguenther@suse.de>
10516
10517 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
10518 New options, enabled by default.
10519 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
10520 Document.
10521 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
10522 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
10523 * tree-ssa-structalias.c (gate_tree_pta): New function.
10524 (pass_build_alias): Use it.
10525
bd8d8d81 105262009-05-15 Joseph Myers <joseph@codesourcery.com>
10527
10528 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
10529 recurse on an invariant address if a conversion from a pointer
10530 type to a wider integer type is involved.
10531
9288864f 105322009-05-15 Jan Hubicka <jh@suse.cz>
10533
10534 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
10535 * cgraph.h (struct inline_summary): New filed self_wize,
10536 size_inlining_benefit, self_time and time_inlining_benefit.
10537 (struct cgraph_global_info): Replace insns by time ans size fields.
10538 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
10539 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
10540 (ipcp_update_callgraph): Do not touch function bodies.
10541 * ipa-inline.c: Include except.h
2377feea 10542 (MAX_TIME): New constant.
9288864f 10543 (overall_insns): Remove
10544 (overall_size, max_benefit): New static variables.
10545 (cgraph_estimate_time_after_inlining): New function.
10546 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
10547 (cgraph_clone_inlined_nodes): Update size.
10548 (cgraph_mark_inline_edge): Update size.
10549 (cgraph_estimate_growth): Use size info.
10550 (cgraph_check_inline_limits): Check size.
10551 (cgraph_default_inline_p): Likewise.
10552 (cgraph_edge_badness): Compute badness based on benefit and size cost.
10553 (cgraph_decide_recursive_inlining): Check size.
faa14cce 10554 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
10555 and times.
9288864f 10556 (cgraph_decide_inlining): Likewise.
54e6ab3d 10557 (cgraph_decide_inlining_incrementally): Likewise; honor
10558 PARAM_EARLY_INLINING_INSNS.
9288864f 10559 (likely_eliminated_by_inlining_p): New predicate.
10560 (estimate_function_body_sizes): New function.
10561 (compute_inline_parameters): Use it.
10562 * except.c (must_not_throw_labels): New function.
10563 * except.h (must_not_throw_labels): Declare.
10564 * tree-inline.c (init_inline_once): Kill inlining_weigths
10565 * tree-ssa-structalias.c: Avoid uninitialized warning.
10566 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
10567 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
10568 (PARAM_INLINE_CALL_COST): Remove.
10569 (PARAM_EARLY_INLINING_INSNS): New.
10570 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
10571 (inline-call-cost): Remove.
10572 (early-inlining-insns): New.
10573
a9538d68 105742009-05-15 Eric Botcazou <ebotcazou@adacore.com>
10575
10576 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
10577 for bounds.
10578 (print_int_cst_bounds_in_octal_p): Likewise.
10579 (dbxout_type): Adjust calls to above functions. Be prepared to deal
10580 with subtypes.
10581 * dwarf2out.c (base_type_die): Likewise.
10582 (is_subrange_type): Delete.
10583 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
10584 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
faa14cce 10585 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
10586 if the destination type is boolean.
a9538d68 10587 (build_range_check): Do not special-case subtypes.
10588 (fold_sign_changed_comparison): Likewise.
10589 (fold_unary): Likewise.
10590 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
10591 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
10592 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
faa14cce 10593 * tree.c (subrange_type_for_debug_p): New predicate based on the
10594 former is_subrange_type.
a9538d68 10595 * tree.h (subrange_type_for_debug_p): Declare.
10596 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
10597 (convert_affine_scev): Remove call to above function.
10598 (chrec_convert_aggressive): Likewise.
10599 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
10600 false for conversions involving subtypes.
10601 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
10602 (vrp_val_min): Likewise.
10603 (needs_overflow_infinity): Likewise.
10604 (extract_range_from_unary_expr): Likewise.
10605
bc409cb4 106062009-05-15 Paolo Bonzini <bonzini@gnu.org>
10607
314be557 10608 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
10609 * config/frv/frv.c: Likewise.
10610 * config/s390/s390.c: Likewise.
10611 * config/sparc/sparc.h: Likewise.
10612 * config/i386/i386.h: Likewise.
10613 * config/i386/i386.c: Likewise.
10614 * config/crx/crx.c: Likewise.
10615 * config/m68hc11/m68hc11.h: Likewise.
10616 * config/iq2000/iq2000.c: Likewise.
10617 * config/mn10300/mn10300.h: Likewise.
10618 * config/mn10300/mn10300.c: Likewise.
10619 * config/m68k/m68k.c: Likewise.
10620 * config/rs6000/rs6000.c: Likewise.
10621 * config/rs6000/xcoff.h: Likewise.
10622 * config/rs6000/linux64.h: Likewise.
10623 * config/rs6000/sysv4.h: Likewise.
10624 * config/score/score3.c: Likewise.
10625 * config/score/score7.c: Likewise.
10626 * config/score/score.c: Likewise.
10627 * config/arm/arm.md: Likewise.
10628 * config/mips/mips.c: Likewise.
10629 * config/mips/mips.md: Likewise.
10630 * config/bfin/bfin.h: Likewise.
10631 * config/pa/pa.c: Likewise.
10632 * config/pa/constraints.md: Likewise.
10633
10634 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
10635 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
10636 * config/pdp11/pdp11.h: Use memory_address_p instead.
bc409cb4 10637
9f1b7d17 106382009-05-14 Ian Lance Taylor <iant@google.com>
10639
10640 * passes.c (finish_optimization_passes): Change i to int.
10641 * plugin.c (plugins_active_p): Change event to int.
10642 (dump_active_plugins): Likewise.
10643 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
10644 Add cast.
10645 * tree.c (tree_range_check_failed): Change c to unsigned int.
10646 (omp_clause_range_check_failed): Likewise.
10647 (build_common_builtin_nodes): Change mode to int. Add cast.
10648 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
10649 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
10650
10651 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
10652 ++ or -- with a variable of enum type.
10653
b500432f 106542009-05-14 Steven Bosscher <steven@gcc.gnu.org>
10655
10656 PR driver/40144
10657 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
10658
da71eacc 106592009-05-14 Steven Bosscher <steven@gcc.gnu.org>
10660
10661 * store-motion.c: Do not include params.h
10662 * Makefile.in: Fix dependencies for various files.
10663
ca4bb7ac 106642009-05-14 Steven Bosscher <steven@gcc.gnu.org>
10665
10666 * auto-inc-dec.c: Fix pass description, remove apparent
10667 accidental duplication.
10668
8d27c5b5 106692009-05-14 H.J. Lu <hongjiu.lu@intel.com>
10670
10671 PR middle-end/40147
10672 * ipa-utils.h (memory_identifier_string): Moved to ...
10673 * tree.h (memory_identifier_string): Here. Add GTY(()).
10674
fd50b071 106752009-05-14 Paolo Bonzini <bonzini@gnu.org>
10676
10677 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
10678 in the former documentation of...
10679 (GO_IF_LEGITIMATE_ADDRESS): ... this.
10680 * ira-conflicts.c (get_dup_num): Use address_operand.
10681 * targhooks.c (default_legitimate_address_p): New.
10682 * targhooks.h (default_legitimate_address_p): New.
10683 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
10684 Call hook.
10685 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
10686 * target.h (struct target): Add legitimate_address_p.
10687 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
10688 (TARGET_INITIALIZER): Include it.
10689
10690 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10691 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
10692 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
10693 (TARGET_LEGITIMATE_ADDRESS_P): New.
10694
10695 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10696 (REG_OK_STRICT_P): Delete.
10697 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
10698 (frv_legitimate_address_p_1): ... this.
10699 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
10700 (frv_legitimate_address_p_1): ... the renamed old
10701 frv_legitimate_address_p.
10702 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
10703 (TARGET_LEGITIMATE_ADDRESS_P): New.
10704
10705 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10706 * config/s390/s390-protos.h (legitimate_address_p): Remove.
10707 * config/s390/s390.c (legitimate_address_p): Rename to...
10708 (s390_legitimate_address_p): ... this, make static.
10709 (legitimize_address): Adjust call.
10710 (TARGET_LEGITIMATE_ADDRESS_P): New.
10711 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
10712
10713 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10714 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
10715 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
10716 (TARGET_LEGITIMATE_ADDRESS_P): New.
10717
10718 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10719 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
10720 * config/spu/spu.c (spu_legitimate_address): Rename to...
10721 (spu_legitimate_address_p): ... this, make static.
10722 (TARGET_LEGITIMATE_ADDRESS_P): New.
10723
10724 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10725 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
10726 * config/sparc/sparc.c (legitimate_address_p): Rename to...
10727 (sparc_legitimate_address_p): ... this, make static and return bool.
10728 (legitimize_address): Adjust call.
10729 (TARGET_LEGITIMATE_ADDRESS_P): New.
10730
10731 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10732 * config/i386/i386-protos.h (legitimate_address_p): Remove.
10733 * config/i386/i386.c (legitimate_address_p): Rename to...
10734 (ix86_legitimate_address_p): ... this, make static.
10735 (constant_address_p): Move after it, adjust call.
10736 (TARGET_LEGITIMATE_ADDRESS_P): New.
10737
10738 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10739 * config/avr/avr-protos.h (legitimate_address_p): Remove.
10740 * config/avr/avr.c (legitimate_address_p): Rename to...
10741 (avr_legitimate_address_p): ... this, make static.
10742 (legitimize_address): Adjust call.
10743 (TARGET_LEGITIMATE_ADDRESS_P): New.
10744
10745 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10746 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
10747 * config/crx/crx.c (crx_legitimate_address_p): Make static.
10748 (TARGET_LEGITIMATE_ADDRESS_P): New.
10749
10750 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10751 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
10752 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
10753 (TARGET_LEGITIMATE_ADDRESS_P): New.
10754
10755 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10756 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
10757 Remove.
10758 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
10759 Make static.
10760 (TARGET_LEGITIMATE_ADDRESS_P): New.
10761
10762 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10763 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
10764 Remove.
10765 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
10766 Rename to...
10767 (m68hc11_legitimate_address_p): ... this, make static.
10768 (go_if_legitimate_address_internal): Rename to...
10769 (m68hc11_legitimate_address_p_1): ... this.
10770 (legitimize_address): Adjust call.
10771 (TARGET_LEGITIMATE_ADDRESS_P): New.
10772
10773 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2377feea 10774 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
10775 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
fd50b071 10776 (TARGET_LEGITIMATE_ADDRESS_P): New.
10777
10778 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10779 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
10780 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
10781 (mn10300_legitimate_address_p): ... this, make static.
10782 (TARGET_LEGITIMATE_ADDRESS_P): New.
10783
10784 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10785 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
10786 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
10787 (TARGET_LEGITIMATE_ADDRESS_P): New.
10788
10789 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10790 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
10791 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
10792 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10793 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
10794 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
10795 (rs6000_legitimate_address_p): ... this, make static.
10796 (TARGET_LEGITIMATE_ADDRESS_P): New.
10797 (REG_MODE_OK_FOR_BASE_P): Delete.
10798 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
10799
10800 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10801 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
10802 Delete.
10803 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
10804 static, adjust types.
10805 (TARGET_LEGITIMATE_ADDRESS_P): New.
10806
10807 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10808 * config/score/score.c (score_address_p): Rename to...
10809 (score_legitimate_address_p): ... this.
10810 (TARGET_LEGITIMATE_ADDRESS_P): New.
10811 * config/score/score3.c (score3_address_p): Rename to...
10812 (score3_legitimate_address_p): ... this.
10813 * config/score/score7.c (score7_address_p): Rename to...
10814 (score7_legitimate_address_p): ... this.
10815
10816 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
10817 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
10818 GO_IF_LEGITIMATE_ADDRESS): Delete.
10819 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
10820 thumb2_legitimate_address_p): Delete.
10821 (arm_legitimate_address_p): Rename to...
10822 (arm_legitimate_address_outer_p): ... this.
10823 * config/arm/constraints.md ("Uq"): Adjust call.
10824 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
faa14cce 10825 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
10826 to...
fd50b071 10827 (arm_legitimate_address_outer_p): ... this.
faa14cce 10828 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
10829 static.
fd50b071 10830 (TARGET_LEGITIMATE_ADDRESS_P): New.
10831
10832 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10833 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
10834 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
10835 (TARGET_LEGITIMATE_ADDRESS_P): New.
10836
10837 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10838 * config/vax/vax-protos.h (legitimate_address_p): Remove.
10839 * config/vax/vax.c (legitimate_address_p): Rename to...
10840 (vax_legitimate_address_p): ... this, make static.
10841 (TARGET_LEGITIMATE_ADDRESS_P): New.
10842
10843 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10844 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
10845 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
10846 (TARGET_LEGITIMATE_ADDRESS_P): New.
10847
10848 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10849 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
10850 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
10851 (mmix_legitimate_address_p): ... this, make static.
10852 (TARGET_LEGITIMATE_ADDRESS_P): New.
10853
10854 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
10855 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
10856 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
10857 (TARGET_LEGITIMATE_ADDRESS_P): New.
10858
142792e2 108592009-05-14 Paolo Bonzini <bonzini@gnu.org>
10860
10861 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
10862 of MODE_COMPLEX_INT.
10863
92e0f786 108642009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10865
10866 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
10867 LCT_NORMAL in function call.
10868 * mips-tdump.c (print_file_desc): Add cast to enum type.
10869 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
10870 (mark_stabs): Add casts to enum types.
10871 (parse_stabs_common): Add casts to enum types.
4fb84273 10872
cc1a5e3e 108732009-05-13 Adam Nemet <anemet@caviumnetworks.com>
10874
10875 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
10876 Check for invalid values of LETTER.
10877
e3fced1a 108782009-05-13 Taras Glek <tglek@mozilla.com>
10879
faa14cce 10880 * attribs.c (register_attribute): moved out attribute registration
10881 into register_attribute.
10882 * doc/plugins.texi: Documented register_attribute and
10883 PLUGIN_ATTRIBUTES.
4fb84273 10884 * gcc-plugin.h: Added forward decl for register_attribute.
10885 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
10886 * plugin.c (register_callback, invoke_plugin_callbacks): Added
10887 PLUGIN_ATTRIBUTES boilerplate.
e3fced1a 10888
a339bdea 108892009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
10890
10891 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
10892 values even in sentinel and empty entries.
10893 (ms_printf_flag_specs): Likewise.
10894 (ms_scanf_flag_specs): Likewise.
10895 (ms_strftime_flag_specs): Likewise.
10896 (ms_print_char_table): Likewise.
10897 (ms_scan_char_table): Likewise.
10898 (ms_time_char_table): Likewise.
10899
f7b092e4 109002009-05-13 Doug Kwan <dougkwan@google.com>
10901
10902 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
10903
eb3880ea 109042009-05-13 Adam Nemet <anemet@caviumnetworks.com>
10905
10906 * config/mips/mips.md (store): Add attributes for QI and HI.
10907 Update comment.
10908 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
10909 (truncdi<mode>2): ... this new pattern.
10910
33ef0630 109112009-05-13 Brad Hards <bradh@kde.org>
10912
10913 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
10914
ff1fe2e2 109152009-05-14 Jakub Jelinek <jakub@redhat.com>
2ffe5515 10916 Ben Elliston <bje@au.ibm.com>
10917
10918 PR middle-end/40035
10919 * dse.c (check_mem_read_rtx): Guard against width == -1.
10920
2b36f1bc 109212009-05-13 Michael Matz <matz@suse.de>
10922
10923 PR middle-end/39976
10924 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
10925 (trivially_conflicts_p): New function.
10926 (insert_backedge_copies): Use it.
10927
6b600976 109282009-05-13 Janis Johnson <janis187@us.ibm.com>
10929
10930 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
10931 (handle_stdc_pragma): Use new enum constant names.
10932 (handle_pragma_float_const_decimal64): Ditto.
10933
b20df6d7 109342009-05-13 Ian Lance Taylor <iant@google.com>
10935
10936 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
10937 tree.def.
10938
ec0044e4 109392009-05-13 Nathan Sidwell <nathan@codesourcery.com>
10940
10941 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
10942 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
10943 multilibs.
10944 * config/m68k/m68k.h (FL_UCLINUX): Define.
10945
16669ccd 109462009-05-13 Jan Hubicka <jh@suse.cz>
10947
10948 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
10949
bfc27c6a 109502009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
10951
10952 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
10953 unless -fschedule-insns is specified.
10954
65b0af14 109552009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
10956
10957 PR target/39561
10958 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
10959 TARGET_EXPAND_CBRANCHDI4.
10960 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
10961 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
10962 (cmpeqdi): Fix comment.
10963
36fa166c 109642009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
10965
10966 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
10967 (sh_legitimate_address_p): Likewise.
10968 * config/sh/sh.c (sh_legitimate_index_p): New.
10969 (sh_legitimate_address_p): Likewise.
10970 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
10971 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
10972 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
10973 (MAYBE_BASE_REGISTER_RTX_P): New macro.
10974 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
10975 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
10976 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
10977 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
10978 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
10979
94e6e359 109802009-05-12 Jan Hubicka <jh@suse.cz>
10981
10982 * tree-inline.c (estimate_operator_cost): Add operands;
10983 when division happens by constant, it is cheap.
10984 (estimate_num_insns): Loads and stores are not having cost of 0;
10985 EH magic stuff is cheap; when computing runtime cost of switch,
10986 use log2 base of amount of its cases; builtin_expect has cost of 0;
10987 compute cost for moving return value of call.
10988 (init_inline_once): Initialize time_based flags.
10989 * tree-inline.h (eni_weights_d): Add time_based flag.
10990
d6b07704 109912009-05-12 Paolo Bonzini <bonzini@gnu.org>
10992
10993 * df-core.c: Update head documentation.
10994
111c35f8 109952009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10996
10997 PR bootstrap/40118
10998 * rs6000.c (rs6000_generate_compare): Use op1b instead of
10999 shadowing exisiting variable op1.
11000
6ca2db76 110012009-05-12 Uros Bizjak <ubizjak@gmail.com>
11002
073bc052 11003 PR target/37179
6ca2db76 11004 * config/i386/driver-i386.c (processor_signatures): New enum.
11005 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
11006 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
11007 processor signature to detect geode processor.
11008
27f97b12 110092009-05-12 Paolo Bonzini <bonzini@gnu.org>
11010
11011 Revert:
11012
11013 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
11014
11015 * optabs.c (prepare_cmp_insn): Temporarily disable test that
11016 causes spurious differences between trunk and cond-optab branch.
11017
74f4459c 110182009-05-12 Paolo Bonzini <bonzini@gnu.org>
11019
6ca2db76 11020 * dojump.c (compare_from_rtx): Delete.
11021 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
11022 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
74f4459c 11023 if the comparison does not satisfy the predicate; test predicates for
11024 operands 2 and 3 of a cstore pattern. Don't try cstore optab
11025 further if one existing pattern fails.
6ca2db76 11026 * expr.h (compare_from_rtx): Delete.
74f4459c 11027 (prepare_operand): Declare it.
6ca2db76 11028 * optabs.c: Change "lib call" to "libcall" throughout.
74f4459c 11029 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
6ca2db76 11030 HAVE_conditional_trap, emit_cmp_insn): Delete.
11031 (can_compare_p): Delete cmp_optab case.
74f4459c 11032 (prepare_float_lib_cmp): Return an rtx and a machine mode.
6ca2db76 11033 Accept other parameters by value.
11034 (prepare_operand): Make non-static.
11035 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
11036 other parameters by value. Try to widen operands here based on
11037 an optab_methods argument and looking at cbranch_optab.
11038 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
11039 loop. Use cbranch_optab directly.
11040 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
11041 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
11042 assertion.
11043 (emit_conditional_move, emit_conditional_add): Inline what's needed
11044 of compare_from_rtx, using new prepare_cmp_insn for the rest.
11045 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
11046 with COMPARE. Move cmov_optab and cstore_optab above
11047 with cbranch_optab, move cmp_optab down with ucmp_optab,
11048 remove tst_otpab. Do not initialize trap_rtx.
11049 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
74f4459c 11050 for trap code. Do not check HAVE_conditional_trap. Use
11051 prepare_cmp_insn. Accept no predicate for operand 3.
6ca2db76 11052 * optabs.h (OTI_cmp): Mark as used only for libcalls.
11053 (OTI_ctrap, ctrap_optab): New.
11054 (tst_optab): Delete.
11055 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
11056 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
11057 with lookup of ctrap_optab.
faa14cce 11058 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
11059 Delete.
6ca2db76 11060 (ctrap_optab): New.
11061
11062 * combine.c (combine_simplify_rtx, simplify_set): Do not
11063 special case comparing against zero for cc0 machines.
74f4459c 11064 * simplify-rtx.c (simplify_binary_operation_1): Never remove
11065 COMPARE on cc0 machines.
11066 (simplify_relational_operation): Return a new expression when
11067 a COMPARE could be removed.
6ca2db76 11068 * final.c (final_scan_insn): Compare cc_status values
11069 against LHS of a (compare FOO (const_int 0)) cc0 source.
11070 Also check if cc_status.value is the full compare.
74f4459c 11071
6ca2db76 11072 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
11073 (cstoreMM4): Document.
74f4459c 11074 (conditional_trap): Document ctrapMM4 instead.
6ca2db76 11075 (sync_compare_and_swapMM): Refer to cbranchcc4.
74f4459c 11076 (Dependent Patterns): Eliminate obsolete information referring to
11077 the old jump optimization phase.
6ca2db76 11078 (Canonicalization): Include cbranchcc4 case, omit canonicalization
74f4459c 11079 of compares with 0 on cc0 machines.
11080 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
11081 avoiding references to cc0. Remove text about storing operands
11082 in cmpMM.
11083 * doc/tm.texi (Condition Codes): Include blurb on different
11084 condition code representations, separate into subsections for
11085 CC0, MODE_CC and conditional execution.
11086
6ca2db76 11087 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
11088 alpha_emit_setcc): Accept operands and a machine mode.
11089 * config/alpha/alpha.c (alpha_emit_conditional_branch):
11090 Get code/op0/op1 from operands, use machine mode argument
11091 instead of alpha_compare.fp_p. Emit the branch here.
11092 (alpha_emit_setcc): Likewise, and return boolean.
11093 (alpha_emit_conditional_move): Likewise. Assert that
11094 cmp_op_mode == cmp_mode, and simplify accordingly.
11095 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
11096 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
11097 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
11098 Delete.
11099 (stack probe test): Use cbranchdi4.
11100 * config/alpha/predicates.md (alpha_cbranch_operator): New.
11101
f6c8c8fc 11102 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
6ca2db76 11103 * config/arc/arc.h (movsicc, movsfcc): Use it.
11104 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
11105 (cbranchsi4, cstoresi4): New.
f6c8c8fc 11106 (cmpsi, bCC and sCC expanders): Remove.
6ca2db76 11107
11108 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
11109 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
11110 * config/arm/predicates.md (arm_comparison_operator): Only include
11111 floating-point operators if there is a hardware floating-point unit.
11112 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
11113 deferring to cbranch_cc and cstore_cc respectively.
11114 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
11115 cbranch_cc, cstore_cc): New.
11116 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
74f4459c 11117 arm_compare_op1.
6ca2db76 11118 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
11119
11120 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
11121 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
11122 as an argument.
11123 (adjust_insn_length): Adjust calls.
11124 (avr_reorg): Handle (compare (foo) (const_int 0)).
11125 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
11126 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
11127 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
11128 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
11129 (bCC): Remove.
11130 (cbranchqi4, cbranchhi4, cbranchsi4): New.
74f4459c 11131 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
11132
6ca2db76 11133 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
11134 (cbranchsi4, cstorebi4, cstoresi4): New.
74f4459c 11135 (movbisi): This insn is duplicate, split it to zero_extend.
6ca2db76 11136 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
11137 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
11138 (bfin_optimize_loop): Use cbranch expander.
11139 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
11140 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
11141 (bfin_bimode_comparison_operator): ... this.
11142 (bfin_direct_comparison_operator): New.
f6c8c8fc 11143
6ca2db76 11144 * config/cris/cris.c (cris_normal_notice_update_cc): Look
11145 inside (compare FOO (const_int 0)).
11146 (cris_rtx_costs): Handle ZERO_EXTRACT.
11147 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
11148 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
11149 (*tstdi_v32): Delete.
11150 (*cmpdi_non_v32): Add M alternative for operand 1.
11151 (cmpsi, cmp<mode>): Make private.
11152 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
11153 with COMPARE.
11154 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
11155
11156 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
11157 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
11158 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
74f4459c 11159 (cc_reg_operand): New.
11160 (any_cond): Delete.
6ca2db76 11161 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
11162 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
11163 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
11164 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
11165 crx_expand_scond): Delete.
11166
11167 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
11168 (cbranchsi4): New.
11169 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
11170 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
11171
11172 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
11173 cstoresi4, cstoresf4, cstoredf4): New.
11174 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
11175 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
11176 Receive the entire operands array.
11177 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
11178 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
11179 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
11180 Get test/op0/op1 from the operands array.
11181 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
11182
11183 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
11184 (h8300_expand_store): New.
11185 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
11186 (const_int 0)).
11187 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
11188 (h8300_expand_store): New.
11189 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
11190 or do not try to produce (set (cc0) REG).
11191 (peepholes): Wrap arguments with COMPARE. Add a peephole to
11192 change a compare into a move to a scratch register. Disable some
11193 peepholes when comparing with zero.
11194 (tstsi, tsthi, tstsi, cmpqi): Make private.
11195 (cmphi): Delete.
11196 (bCC, sCC): Delete.
11197 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
11198 cstoresi4): New.
74f4459c 11199
11200 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
11201 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
11202 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
11203 (ix86_emit_i387_log1p): Use cbranchxf2.
11204 (ix86_expand_setcc): Return void.
11205 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
11206 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
11207 cmp<MODEF>, cmpcc): Remove.
6ca2db76 11208 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
11209 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
11210 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
74f4459c 11211 (sCC and bCC expanders): Remove.
11212 (stack_protect_test): Use cbranchcc4.
11213
6ca2db76 11214 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
11215 Delete.
11216 (ia64_expand_compare): Accept three rtx by reference and return void.
11217 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
11218 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
11219 from *expr. Update *expr with the BImode comparison to do.
11220 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
11221 cmptf, bCC, sCC, conditional_trap): Delete.
f6c8c8fc 11222 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
6ca2db76 11223 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
11224 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
11225 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
11226 * config/ia64/predicates.md (ia64_cbranch_operator): New.
11227
11228 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
11229 type of last argument.
11230 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
11231 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
11232 use machine mode argument instead of branch_type. Remove dead
11233 code for floating-point comparisons.
11234 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
11235 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
11236 Remove.
11237 (cbranchsi4, cstoresi4): New.
11238 * config/iq2000/predicates.md (reg_or_const_operand): New.
11239
11240 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
11241 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
11242 (b<code>_op): Rewrite to...
11243 (bcc_op): ... this, using match_operator.
11244 (s<code>_op): Rewrite to...
11245 (scc_op): ... this, using match_operator.
11246 (s<code>_24_op): Rewrite to...
11247 (scc_op_24): ... this, using match_operator.
11248 (s<code>_<mode>): Rewrite to...
11249 (cstore<mode>4): ... this, using match_operator.
11250 (s<code>_<mode>_24): Rewrite to...
11251 (cstore<mode>4_24): ... this, using match_operator.
11252 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
11253 m32c_unpend_compare, m32c_expand_scc): Delete.
11254 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
11255 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
11256 (m32c_expand_movcc): Change NE to EQ if necessary.
11257 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
11258
11259 * config/m32r/m32r-protos.h (gen_cond_store): New.
11260 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
11261 (gen_cond_store): New, from sCC patterns.
11262 (m32r_expand_block_move): Use cbranchsi4.
11263 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
11264 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
11265 (cbranchsi4, cstoresi4): New.
f6c8c8fc 11266
6ca2db76 11267 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
11268 Delete.
11269 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
74f4459c 11270 (m68hc11_notice_update_cc): Look into a compare with 0.
6ca2db76 11271 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
11272 Delete.
11273 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
11274 cmphi, cmpqi, bCC): Delete.
11275 (cbranchsi4, cbranchhi4, cbranchqi4): New.
11276 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
11277 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
11278 sets with COMPARE.
11279
11280 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
11281 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
11282 * config/m68k/constraints.md (H): New.
11283 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
11284 the define_insn below.
11285 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
11286 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
11287 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
11288 patterns): Wrap RHS with COMPARE.
11289 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
11290 (*cmpdi_internal): Name this pattern.
11291 (cmpdi): Change to define_insn.
11292 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
11293 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
11294 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
11295 predicate.
11296 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
11297 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
11298 (conditional_trap): Change to...
11299 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
11300 (*conditional_trap): Use the ordered_comparison_operator and
11301 const1_operand predicates.
11302 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
11303 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
11304 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
11305 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
11306
11307 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
11308 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
f6c8c8fc 11309 (mcore_gen_compare): New.
6ca2db76 11310 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
11311 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
11312 (mcore_gen_compare): ... this.
11313 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
11314 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
11315 (stack probe pattern): Use cbranchsi4.
11316
11317 * config/mips/predicates.md (mips_cstore_operator): New.
11318 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
11319 * config/mips/mips.md (any_cond): Delete.
11320 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
11321 always succeed.
11322 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
11323 fixuns_truncsfdi2): Use cbranch patterns.
f6c8c8fc 11324 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
6ca2db76 11325 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
11326 Adjust call to mips_expand_conditional_branch.
11327 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
11328 cstore<GPR:mode>4.
11329 * config/mips/mips-protos.h (mips_expand_conditional_branch,
11330 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
11331 * config/mips/mips.c (cmp_operands): Delete.
11332 (mips_emit_compare): Get comparison operands from *op0/*op1.
11333 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
11334 that it succeeds. Use op0/op1 instead of cmp_operands.
11335 (mips_expand_conditional_branch, mips_expand_conditional_move,
11336 mips_expand_conditional_trap): Likewise.
f6c8c8fc 11337 (mips_block_move_loop): Use cbranch patterns.
6ca2db76 11338 * config/mips/mips.h (cmp_operands): Delete.
11339
11340 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
11341 (mmix_gen_compare_reg): Just return a register in the right CC mode.
11342 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
11343 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
11344 (*cmpcc_folded): Rename to...
11345 (*cmpdi_folded): this.
11346 (*cmpcc): Rename to...
11347 (*cmps): ... this.
11348 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
11349 (bCC): Remove.
11350 (cbranchdi4): New.
11351 (cbranchdf4): New. Handle invalid comparisons here.
11352 * config/mmix/predicates.md (float_comparison_operator): New.
11353
11354 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
11355 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
11356 * config/mn10300/mn10300.md (tst): Delete.
11357 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
11358 Name these patterns and wrap RHS in a compare.
11359 (*cmpsi): Make this pattern private. Include tst.
11360 (*cmpsf): Make this pattern private.
11361 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
11362 (compare with zero peepholes): Likewise.
11363 (bCC): Remove.
11364 (cbranchsi4, cbranchsf4): New.
11365 (casesi): Use cbranchsi4.
11366
11367 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
11368 hppa_branch_type): Delete.
11369 (return_addr_rtx): Use cbranchsi4.
11370 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
11371 Emit CCFPmode comparison here.
11372 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
11373 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
11374 hppa_branch_type): Delete.
11375 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
11376 (movsicc, movdicc): Remove references to hppa_compare_op0,
11377 hppa_compare_op1 and compare_from_rtx.
11378 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
11379 (casesi): Use cbranchsi4.
11380
11381 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
11382 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
11383 * config/pdp11/pdp11.md (register_or_const0_operand): New.
11384 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
11385 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
11386 (bCC): Delete.
11387 (cbranchdf4, cbranchhi4, cbranchqi4): New.
11388 (*branch, *branch_inverted): New.
11389
11390 * config/picochip/picochip.md (cbranchhi4): Use
11391 ordered_comparison_operator.
11392 (cmphi, bCC): Remove.
11393
11394 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
11395 (trap_comparison_operator): Delete.
11396 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
11397 rs6000_emit_cbranch): Accept mode and operands.
11398 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
f6c8c8fc 11399 rs6000_compare_fp_p): Delete.
6ca2db76 11400 (rs6000_generate_compare): Accept mode and comparison. Extract code
11401 and op0/op1 from there. Replace references to rs6000_compare_op0
11402 and rs6000_compare_op1.
11403 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
11404 extract result from passed operands.
11405 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
11406 extract loc from passed operands.
11407 (rs6000_emit_cmove): Likewise.
11408 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
11409 rs6000_compare_fp_p): Delete.
11410 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
11411 (cbranch<GPR>4, cbranch<FP>4): New.
11412 (cstore<mode>4): New. Consolidate here all choices about when to use
11413 portable or specialized sCC sequences.
11414 (stack_protect_test): Use cbranchsi4.
11415 (conditional_trap): Replace with ctrap<GPR>4.
11416 (conditional trap insn): Replace trap_comparison_operator with
f6c8c8fc 11417 ordered_comparison_operator.
6ca2db76 11418
11419 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
11420 (s390_emit_prologue): Use ctrap.
11421 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
11422 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
11423 New predicates replacing...
11424 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
11425 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
11426 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
11427 (add<mode>cc): Do not use s390_compare_op0/op1.
11428 (s<code>): Change to...
11429 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
11430 (seq): Change to...
11431 (cstorecc4): ... this. Handle EQ or NE equally.
11432 (*sne): Un-privatize for use in cstorecc4.
11433 (b<code>): Change to...
11434 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
11435 (conditional_trap): Replace with...
11436 (ctrap<GPR>4, ctrap<FP>4): ... these.
11437 (stack_protect): Use cbranchcc4.
11438
11439 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
11440 * config/score/score-protos.h (score_gen_cmp): Delete.
11441 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
11442 (score_block_move-loop): Use cbranchsi4.
11443 * config/score/score.md (cbranchsi4): New.
11444 (cmpsi, bCC): Delete.
11445 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
11446 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
11447 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
11448 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
11449 * config/score/score3.h (score3_gen_cmp): Delete.
11450 * config/score/score7.h (score7_gen_cmp): Delete.
11451
11452 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
11453 (sh_emit_scc_to_t): ... this. Return void.
11454 (from_compare): Rename to...
11455 (sh_emit_compare_and_branch): ... this.
11456 (sh_emit_compare_and_set): New.
11457 (sh_expand_t_scc): Accept operands.
11458 * config/sh/predicates.md (sh_float_comparison_operator): New.
11459 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
11460 (prepare_scc_operands): Rename to...
11461 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
11462 arguments.
11463 (sh_emit_cheap_store_flag): New.
74f4459c 11464 (sh_emit_set_t_insn): New.
6ca2db76 11465 (from_compare): Rename to...
11466 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
11467 handling of TARGET_SH2E floating point to avoid recursive call.
11468 Generate branch here.
11469 (sh_emit_compare_and_set): New.
11470 (sh_expand_t_scc): Get op0/op1 from arguments.
11471 (sh_emit_cheap_store_flag): New.
11472 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
11473 cases.
74f4459c 11474 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
6ca2db76 11475 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
11476 (movsicc, movdicc): Do nothing when it recreated operands from
11477 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
11478 prepare_scc_operands (now sh_emit_scc_to_t).
11479 (udivdi3): Use cstoresi4.
11480 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
11481 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
11482 (cbranchint4_media, cbranchfp4_media): New.
11483 (casesi): Use cbranchdi4.
11484 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
11485 Delete.
11486 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
11487 (movnegt): Remove second operand.
11488 (cbranchsf4, cbranchdf4): New.
11489 (stack_protect): Use cbranchdi4/cbranchsi4.
11490
11491 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
11492 (gen_compare_reg): Accept comparison, extract part of it to...
f6c8c8fc 11493 (gen_compare_reg_1): ... this.
6ca2db76 11494 (gen_compare_operator): Delete.
11495 (gen_v9_scc): Accept separate destination, comparison code and arms.
11496 Do not use sparc_compare_op0/sparc_compare_op1.
11497 (emit_scc_insn, emit_conditional_branch_insn): New.
11498 (emit_v9_brxx): Make static. Remove useless assertion.
11499 (sparc_emit_float_lib_cmp): Return RTL instead of calling
11500 emit_cmp_insn.
11501 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
11502 * config/sparc/sparc-protos.h (gen_compare_reg,
74f4459c 11503 sparc_emit_float_lib_cmp): Adjust prototype.
11504 (emit_scc_insn, emit_conditional_branch_insn): New.
11505 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
6ca2db76 11506 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
11507 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
11508 iterators to the top.
11509 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
11510 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
74f4459c 11511 snedi_special_trunc): Delete.
6ca2db76 11512 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
74f4459c 11513 and snedi_special_trunc.
6ca2db76 11514 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
11515 cbranchdi4, cbranch<F:mode>4): New.
11516 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
11517 here. Use gen_compare_reg instead of gen_compare_operator.
11518 (conditional_trap): Replace with...
11519 (ctrapsi4, ctrapdi4): ... this.
11520 (stack_protect_test): Use cbranchcc4.
11521
11522 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
11523 argument to rtx.
f6c8c8fc 11524 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
6ca2db76 11525 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
11526 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
11527 from operands[0] or operands[3] depending on is_set.
11528 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
11529 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
11530 cmpdf, bCC), sCC: Remove.
f6c8c8fc 11531 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
6ca2db76 11532 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
11533 cstoredf4): New.
11534 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
11535 spu_emit_branch_or_set.
11536
11537 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
11538 Add two arguments.
11539 * config/stormy16/stormy16.h (xstormy16_compare_op0,
11540 xstormy16_compare_op1): Delete.
11541 * config/stormy16/stormy16.c (xstormy16_compare_op0,
f6c8c8fc 11542 xstormy16_compare_op1): Delete.
6ca2db76 11543 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
11544 Adjust calls.
11545 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
11546 (cmphi, cmpsi, bCC): Remove.
11547
11548 * config/v850/v850.md (tstsi, cmpsi): Fold into...
11549 (*cmpsi): ... this one.
11550 (cbranchsi4, cstoresi4): New.
11551 (bCC expanders): Delete.
11552 (sCC insns): Fold into...
11553 (*setcc): ... this one.
f6c8c8fc 11554 (casesi): Do not use gen_cmpsi and gen_bgtu.
74f4459c 11555 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
11556 (movsicc): Simplify.
11557 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
11558
6ca2db76 11559 * config/vax/vax-protos.h (cond_name): New.
11560 (vax_output_conditional_branch): Remove.
11561 * config/vax/vax.c (cond_name): New.
11562 (vax_output_conditional_branch): Remove.
11563 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
11564 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
11565 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
11566 (bit<VAXint>): Wrap source with (compare).
11567 (b<code> and following unnamed pattern): Rename to *branch and
11568 *branch_reversed. Change macroization to match_operator.
11569 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
11570
11571 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
11572 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
11573 Change last argument to machine_mode.
11574 (xtensa_expand_scc): Add machine_mode argument.
11575 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
11576 (gen_conditional_move, xtensa_expand_conditional_branch,
11577 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
11578 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
11579 Adjust operand numbers.
11580 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
11581 Delete.
11582 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
11583 (cmpsi, cmpsf, b<code>, s<code>): Delete.
11584 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
74f4459c 11585
880e5cd7 115862009-05-12 Paolo Bonzini <bonzini@gnu.org>
11587
11588 * optabs.c (prepare_cmp_insn): Temporarily disable test that
11589 causes spurious differences between trunk and cond-optab branch.
11590
bd1f9655 115912009-05-12 Alexandre Oliva <aoliva@redhat.com>
11592
11593 PR target/37137
11594 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
11595
f6bf9542 115962009-05-12 Alexandre Oliva <aoliva@redhat.com>
11597
11598 * tree.c (iterative_hash_pointer): Delete.
11599 (iterative_hash_expr): Short-circuit handling of NULL pointer.
11600 Hash UIDs and versions of SSA names. Don't special-case built-in
11601 function declarations.
11602
ebbdcbb3 116032009-05-11 Ian Lance Taylor <iant@google.com>
11604
11605 PR bootstrap/40103
11606 * graphite.c: Force -Wc++-compat to only be a warning before
11607 #including "cloog/cloog.h".
11608
a111083a 116092009-05-11 Martin Jambor <mjambor@suse.cz>
11610
11611 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
f6c8c8fc 11612
aa2ba534 116132009-05-11 Jan Hubicka <jh@suse.cz>
11614
11615 * tree-ssa-loop-ivcanon.c: Include target.h
11616 (struct loop_size): new structure.
11617 (constant_after_peeling): New predicate.
11618 (tree_estimate_loop_size): New function.
11619 (estimated_unrolled_size): Rewrite for new estimates.
11620 (try_unroll_loop_completely): Use new estimates.
11621 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
11622
897ffbb0 116232009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
11624
11625 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
11626 libcpp interface change.
11627 (spu_macro_to_expand): Likewise.
11628
a39fe414 116292009-05-11 Paolo Bonzini <bonzini@gnu.org>
11630
11631 PR tree-optimization/40026
11632 * gimplify.c (gimplify_init_constructor): Change initial conditional
11633 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
11634 optimize_compound_literals_in_ctor.
11635
175be17a 116362009-05-11 Nathan Sidwell <nathan@codesourcery.com>
11637
11638 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
11639 New devices.
11640 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
11641
1a0e7d51 116422009-05-11 H.J. Lu <hongjiu.lu@intel.com>
11643
11644 * tree-vect-data-refs.c (vect_analyze_group_access): Use
11645 HOST_WIDE_INT for gap.
11646
b11576bf 116472009-05-11 Ira Rosen <irar@il.ibm.com>
11648
11649 PR tree-optimization/40074
11650 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
11651 account in group size and step comparison.
11652
2f8eb909 116532009-05-11 Richard Guenther <rguenther@suse.de>
11654
11655 * passes.c (init_optimization_passes): Strip now incorrect comment.
11656 (execute_function_todo): Do not set PROP_alias.
11657 * tree-pass.h (PROP_alias): Remove.
11658 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
11659 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
11660 * tree-nrv.c (pass_return_slot): Likewise.
11661 * tree-object-size.c (pass_object_sizes): Likewise.
11662 * tree-ssa-dom.c (pass_dominator): Likewise.
11663 (pass_phi_only_cprop): Likewise.
11664 * tree-ssa-dse.c (pass_dse): Likewise.
11665 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
11666 (pass_cselim): Likewise.
11667 * tree-ssa-pre.c (pass_pre): Likewise.
11668 (pass_fre): Likewise.
11669 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11670 * tree-ssa-sink.c (pass_sink_code): Likewise.
11671 * tree-stdarg.c (pass_stdarg): Likewise.
11672 * tree-tailcall.c (pass_tail_calls): Likewise.
11673 * tree-vrp.c (pass_vrp): Likewise.
11674
0b09525f 116752009-05-10 Ian Lance Taylor <iant@google.com>
11676
11677 * basic-block.h (enum profile_status): Break out of struct
11678 control_flow_graph.
11679 * cgraph.h (struct inline_summary): Break out of struct
11680 cgraph_local_info.
11681 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
11682 of struct cgraph_order_sort.
6ca2db76 11683 * combine.c (enum undo_kind): New enum, broken out of struct undo.
0b09525f 11684 * cse.c (struct branch_path): Break out of struct
11685 cse_basic_block_data.
11686 * except.h (enum eh_region_type): Break out of struct eh_region.
11687 * gcc.c (enum add_del): Break out of struct modify_target.
6ca2db76 11688 * genrecog.c (enum decision_type): Break out of struct decision_test.
0b09525f 11689 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
11690 ggc_pch_data.
6ca2db76 11691 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
11692 * regmove.c (enum match_use): New enum, broken out of struct match.
0b09525f 11693 * sched-int.h (enum post_call_group): New enum, broken out of
11694 struct deps.
11695 (struct deps_reg): Break out of struct deps.
11696 * target.h (struct asm_int_op): Break out of struct gcc_target.
11697 * tree-eh.c (struct goto_queue_node): Break out of struct
11698 leh_tf_state.
11699 * tree-inline.h (enum copy_body_cge_which): Break out of
11700 copy_body_data.
11701 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
11702
11703 * c-decl.c (in_struct, struct_types): New static variables.
11704 (pushtag): Add loc parameter. Change all callers.
11705 (lookup_tag): Add ploc parameter. Change all callers.
11706 (check_compound_literal_type): New function.
11707 (parser_xref_tag): Add loc parameter. Change all callers. If
11708 -Wc++-compat, warn about struct/union/enum types defined within a
11709 struct or union.
11710 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
11711 and loc parameters. Change all callers. Change error calls to
11712 error_at, using loc. For a redefinition, if the location of the
11713 original definition is known, report it. Set in_struct and
6ca2db76 11714 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
0b09525f 11715 (finish_struct): Add new parameters enclosing_in_struct and
11716 enclosing_struct_types. Change all callers. Set
11717 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
11718 in the struct. If in a struct, add this struct to struct_types.
11719 (start_enum): Add loc parameter. Change all callers. Use
11720 error_at for errors, using loc. For a redefinition, if the
11721 location of the original definition is known, report it. If in a
11722 struct, add this enum type to struct_types. If -Wc++-compat warn
11723 if in sizeof, typeof, or alignof.
6ca2db76 11724 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
11725 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
0b09525f 11726 (c_parser_enum_specifier): Get enum location for start_enum.
11727 (c_parser_struct_or_union_specifier): Get struct location for
11728 start_struct. Save in_struct and struct_types status between
11729 start_struct and finish_struct.
11730 (c_parser_cast_expression): Get location of cast.
11731 (c_parser_alignof_expression): Get location of type.
11732 (c_parser_postfix_expression): Likewise.
11733 (c_parser_postfix_expression_after_paren_type): Add type_loc
6ca2db76 11734 parameter. Change all callers. Call check_compound_literal_type.
11735 Use type_loc for error about variable size type.
11736 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
11737 of an enum constant from an enum type defined in a struct or union.
0b09525f 11738 (c_cast_expr): Add loc parameter. Change all callers. If
11739 -Wc++-compat, warn about defining a type in a cast.
11740 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
11741 (start_enum, start_struct, finish_struct): Update declarations.
11742 (parser_xref_tag, c_cast_expr): Update declarations.
11743 (check_compound_literal_type): Declare.
11744
9d6d8a52 117452009-05-11 Ben Elliston <bje@au.ibm.com>
11746
11747 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
11748 for recent libcpp interface change.
11749 (rs6000_macro_to_expand): Likewise.
11750
c67e32f9 117512009-05-10 Michael Matz <matz@suse.de>
11752
11753 PR target/40031
11754 * config/arm/arm.c (require_pic_register): Emit on entry edge,
11755 not at entry of function.
11756
e2a3897e 117572009-05-10 Richard Guenther <rguenther@suse.de>
11758
11759 PR tree-optimization/40081
11760 Revert
11761 * tree-sra.c (instantiate_element): Instantiate scalar replacements
11762 using the main variant of the element type. Do not fiddle with
11763 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
11764
11765 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
11766 structs with volatile fields.
11767
31359ae8 117682009-05-10 Jan Hubicka <jh@suse.cz>
11769
11770 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
6ca2db76 11771 (estimate_move_cost): Assert that it does not get called for
11772 VOID_TYPE_P.
31359ae8 11773 (estimate_num_insns): Skip VOID types in argument handling.
11774 (optimize_inline_calls): Delete unreachable blocks and verify that
11775 callgraph is valid.
11776
2cb64f78 117772009-05-10 Jan Hubicka <jh@suse.cz>
11778
11779 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
11780 * cgraph.c (cgraph_mark_address_taken_node): New function.
11781 (dump_cgraph_node): Dump new flag.
11782 * cgraph.h (struct cgraph_node): Add address_taken.
11783 (cgraph_mark_address_taken_node): New function.
2cb64f78 11784 * ipa.c (cgraph_postorder): Prioritize functions with address taken
11785 since new direct calls can be born.
11786
2ee04baa 117872009-05-10 Joseph Myers <joseph@codesourcery.com>
11788
11789 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
11790 tok->val.node.node.
11791
8d8c4f3e 117922009-05-10 Jan Hubicka <jh@suse.cz>
11793
11794 PR middle-end/40084
5eaad62c 11795 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
11796 argument; rewrite.
8d8c4f3e 11797 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
11798 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
11799 * tree-inline.c (copy_bb): Set frequency correctly.
5eaad62c 11800 (fold_marked_statements): Update call to
11801 cgraph_update_edges_for_call_stmt.
8d8c4f3e 11802
67a779df 118032009-05-10 Joseph Myers <joseph@codesourcery.com>
11804
11805 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
11806 identifiers in diagnostics.
11807 * config/arm/arm.c (arm_handle_fndecl_attribute,
11808 arm_handle_isr_attribute): Likewise.
11809 * config/avr/avr.c (avr_handle_progmem_attribute,
2377feea 11810 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
67a779df 11811 * config/bfin/bfin.c (handle_int_attribute,
11812 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
11813 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
11814 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
11815 Likewise.
11816 * config/darwin.c (darwin_handle_kext_attribute,
11817 darwin_handle_weak_import_attribute): Likewise.
11818 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
11819 h8300_handle_eightbit_data_attribute,
11820 h8300_handle_tiny_data_attribute): Likewise.
11821 * config/i386/i386.c (ix86_handle_cconv_attribute,
2377feea 11822 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
67a779df 11823 * config/i386/winnt.c (ix86_handle_shared_attribute,
11824 ix86_handle_selectany_attribute): Likewise.
11825 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
11826 * config/m32c/m32c.c (function_vector_handler): Likewise.
11827 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
11828 m68hc11_handle_fntype_attribute): Likewise.
11829 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
11830 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
11831 * config/mips/mips.c (mips_insert_attributes,
11832 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
11833 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
11834 rs6000_handle_struct_attribute): Likewise.
11835 * config/sh/sh.c (sh_insert_attributes,
11836 sh_handle_resbank_handler_attribute,
11837 sh_handle_interrupt_handler_attribute,
11838 sh2a_handle_function_vector_handler_attribute,
11839 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
11840 Likewise.
11841 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
11842 * config/spu/spu.c (spu_handle_fndecl_attribute,
11843 spu_handle_vector_attribute): Likewise.
11844 * config/stormy16/stormy16.c
11845 (xstormy16_handle_interrupt_attribute): Likewise.
11846 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
11847 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
11848
a608187f 118492009-05-10 Joseph Myers <joseph@codesourcery.com>
11850
2377feea 11851 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
a608187f 11852 (pp_translate_identifiers): New.
11853 (pp_identifier): Only conditionally translate identifier to locale
11854 character set.
11855 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
11856 (pp_base_tree_identifier): Only conditionally translate identifier
11857 to locale character set.
11858 * c-pretty-print.c (M_): Define.
11859 (pp_c_type_specifier, pp_c_primary_expression): Mark English
11860 fragments for conditional translation with M_.
11861 * tree-pretty-print.c (maybe_init_pretty_print): Disable
11862 identifier translation.
11863
d919c4c8 118642009-05-10 Richard Guenther <rguenther@suse.de>
11865
11866 PR tree-optimization/40081
11867 * tree-sra.c (instantiate_element): Instantiate scalar replacements
11868 using the main variant of the element type. Do not fiddle with
11869 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
11870
947781ac 118712009-05-09 Jan Hubicka <jh@suse.cz>
11872
11873 PR middle-end/40080
11874 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
11875 indirect calls; verify cgraph afterwards.
11876
21f41380 118772009-05-09 Jan Hubicka <jh@suse.cz>
11878
11879 PR bootstrap/40082
11880 * ipa.c (update_inlined_to_pointer): New function.
11881 (cgraph_remove_unreachable_nodes): Use it.
11882
1b044ec2 118832009-05-09 Jan Hubicka <jh@suse.cz>
11884
11885 * tree-eh.c (struct leh_state): Remove prev_try.
11886 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
11887 not track prev_try.
f6c8c8fc 11888 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
1b044ec2 11889 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
11890 remove_eh_handler_and_replace, foreach_reachable_handler,
11891 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
11892 * except.h (struct eh_region): Remove eh_region_u_cleanup.
11893 (gen_eh_region_cleanup): Update prototype.
11894
8997fc11 118952009-05-09 Jan Hubicka <jh@suse.cz>
11896
11897 PR middle-end/40043
11898 * except.c (copy_eh_region): Always set prev_try.
11899 (redirect_eh_edge_to_label): Find outer try.
11900 (foreach_reachable_handler): When looking for prev try
11901 handle case where previous try is not going to be taken.
11902
54206f86 119032009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
11904
11905 PR tree-optimization/40049
11906 * tree-vect-stmts.c (vectorizable_operation): If the machine has
11907 only vector/vector shifts, convert the type of the constant to the
11908 appropriate type to avoid building incorrect trees, which
11909 eventually have problems with garbage collection.
11910
fc86f9df 119112009-05-08 Joseph Myers <joseph@codesourcery.com>
11912
11913 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
11914 -1 for complex floating-point types if honoring signed zeros.
11915
ccf4ab6b 119162009-05-08 Jan Hubicka <jh@suse.cz>
11917
80a52720 11918 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
11919 argument; handle correctly when profile is absent.
ccf4ab6b 11920 (build_cgraph_edges): Update.
11921 (rebuild_cgraph_edges): Update.
80a52720 11922 * cgraph.c: Do not include varray.h.
11923 (cgraph_set_call_stmt_including_clones): New function.
11924 (cgraph_create_edge_including_clones): Likewise
11925 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
ccf4ab6b 11926 (cgraph_update_edges_for_call_stmt): Handle clones.
11927 (cgraph_remove_node): Handle clone tree.
11928 (cgraph_remove_node_and_inline_clones): New function.
11929 (dump_cgraph_node): Dump clone tree.
11930 (cgraph_clone_node): Handle clone tree.
80a52720 11931 (clone_function_name): Bring here from tree-inline.c.
ccf4ab6b 11932 (cgraph_create_virtual_clone): New function.
80a52720 11933 * cgraph.h (ipa_replace_map): Move here from ipa.h.
11934 (cgraph_clone_info): New function.
ccf4ab6b 11935 (strut cgraph_node): Add clone_info and new clone tree pointers.
80a52720 11936 (cgraph_remove_node_and_inline_clones,
11937 cgraph_set_call_stmt_including_clones,
11938 cgraph_create_edge_including_clones,
11939 cgraph_create_virtual_clone): Declare.
ccf4ab6b 11940 (cgraph_function_versioning): Use VEC argument.
11941 (compute_call_stmt_bb_frequency): Update prototype.
11942 (cgraph_materialize_all_clones): New function.
11943 * ipa-cp.c (ipcp_update_cloned_node): Remove.
11944 (ipcp_create_replace_map): Update to VECtors.
11945 (ipcp_update_callgraph): Use virtual clones.
11946 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
11947 (ipcp_update_profiling): Do not update local profiling.
11948 (ipcp_insert_stage): Use VECtors and virtual clones.
11949 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
11950 (clone_of_p): New function.
11951 (cgraph_preserve_function_body_p): Use clone tree.
11952 (cgraph_optimize): Materialize clones.
11953 (cgraph_function_versioning): Update for VECtors.
11954 (save_inline_function_body): Use clone tree.
80a52720 11955 (cgraph_materialize_clone): New function.
11956 (cgraph_materialize_all_clones): Likewise.
ccf4ab6b 11957 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
11958 * ipa.c: Include gimple.h.
11959 (cgraph_remove_unreachable_nodes): Use clone tree.
80a52720 11960 * ipa-prop.c (ipa_note_param_call): Update call to
11961 compute_call_stmt_bb_frequencycall.
ccf4ab6b 11962 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
80a52720 11963 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
ccf4ab6b 11964 (copy_bb): Handle updating of clone tree; add new edge when new call
11965 appears.
11966 (expand_call_inline): Be strict about every call having edge.
11967 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
11968 (delete_unreachable_blocks_update_callgraph): New function.
80a52720 11969 (tree_function_versioning): Use VECtors; always remove unreachable
11970 blocks and fold conditionals.
11971 * tree-inline.h: Do not include varray.h.
ccf4ab6b 11972 (tree_function_versioning): Remove.
11973 * Makefile.in (GTFILES): Remove tree-inline.c
11974 * passes.c (do_per_function): Do only functions having body.
80a52720 11975 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
11976 tree.
ccf4ab6b 11977
45c4e798 119782009-05-08 H.J. Lu <hongjiu.lu@intel.com>
11979 Andrew Morrow <acm@google.com>
11980
11981 PR c/36892
11982 * c-common.c (c_common_attribute_table): Permit deprecated
11983 attribute to take an optional argument.
11984 (handle_deprecated_attribute): If the optional argument to
11985 __attribute__((deprecated)) is not a string ignore the attribute
11986 and emit a warning.
11987
11988 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
11989 * c-typeck.c (build_component_ref): Likewise.
11990 (build_external_ref): Likewise.
11991
11992 * toplev.c (warn_deprecated_use): Add an attribute argument.
11993 Emit the message associated with __attribute__((deprecated)).
11994
11995 * toplev.h (warn_deprecated_use): Updated.
11996
11997 * doc/extend.texi: Document new optional parameter to
11998 __attribute__((deprecated))
11999
3a45c25e 120002009-05-08 Michael Eager <eager@eagercon.com>
12001
12002 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
12003 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
12004
aebe538b 120052009-05-08 Richard Guenther <rguenther@suse.de>
12006
12007 PR tree-optimization/40062
12008 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
12009 Avoid exponential behavior.
12010
e0bd4156 120112009-05-08 Paolo Bonzini <bonzini@gnu.org>
12012
12013 PR rtl-optimization/33928
12014 PR 26854
12015 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
12016 process_uses, build_single_def_use_links): New.
12017 (update_df): Update use_def_ref.
12018 (forward_propagate_into): Use get_def_for_use instead of use-def
12019 chains.
12020 (fwprop_init): Call build_single_def_use_links and let it initialize
12021 dataflow.
12022 (fwprop_done): Free use_def_ref.
12023 (fwprop_addr): Eliminate duplicate call to df_set_flags.
f6c8c8fc 12024 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
e0bd4156 12025 df_rd_simulate_one_insn): New.
12026 (df_rd_bb_local_compute_process_def): Update head comment.
12027 (df_chain_create_bb): Use the new RD simulation functions.
f6c8c8fc 12028 * df.h (df_rd_simulate_artificial_defs_at_top,
e0bd4156 12029 df_rd_simulate_one_insn): New.
12030 * opts.c (decode_options): Enable fwprop at -O1.
12031 * doc/invoke.texi (-fforward-propagate): Document this.
12032
0f241d3f 120332009-05-08 Joseph Myers <joseph@codesourcery.com>
12034
12035 PR c/24581
12036 * c-typeck.c (build_binary_op): Handle arithmetic between one real
12037 and one complex operand specially.
12038 * tree-complex.c (some_nonzerop): Do not identify a real value as
12039 zero if flag_signed_zeros.
12040
5c83cd34 120412009-05-08 Paolo Bonzini <bonzini@gnu.org>
12042
12043 PR rtl-optimization/33928
e0f84439 12044 * loop-invariant.c (record_use): Fix && vs. || mishap.
5c83cd34 12045
68461c19 120462009-05-08 Paolo Bonzini <bonzini@gnu.org>
12047
12048 PR rtl-optimization/33928
39db6a03 12049 * loop-invariant.c (struct use): Add addr_use_p.
12050 (struct def): Add n_addr_uses.
12051 (struct invariant): Add cheap_address.
12052 (create_new_invariant): Set cheap_address.
12053 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
12054 (record_uses): Pass df_ref to record_use.
12055 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
12056 used only as such.
68461c19 12057
e0f22649 120582009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
12059
12060 * config/sh/sh.c: Do not include c-pragma.h.
12061
653ba01f 120622009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
12063
12064 * config/spu/spu.c: Remove include of c-common.h.
12065
3ae3a17f 120662009-05-07 Janis Johnson <janis187@us.ibm.com>
12067
12068 PR c/39037
12069 * c-common.h (mark_valid_location_for_stdc_pragma,
12070 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
12071 clear_float_const_decimal64, float_const_decimal64_p): New.
12072 * c.opt (Wunsuffixed-float-constants): New.
12073 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
12074 unsuffixed float constant, handle new warning.
12075 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
12076 * c-decl.c (c_scope): New flag float_const_decimal64.
12077 (set_float_const_decimal64, clear_float_const_decimal64,
12078 float_const_decimal64_p): New.
12079 (push_scope): Set new flag.
12080 * c-parser.c (c_parser_translation_unit): Mark when it's valid
12081 to use STDC pragmas.
12082 (c_parser_external_declaration): Ditto.
12083 (c_parser_compound_statement_nostart): Ditto.
12084 * c-pragma.c (valid_location_for_stdc_pragma,
12085 mark_valid_location_for_stdc_pragma,
12086 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
12087 handle_pragma_float_const_decimal64): New.
12088 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
12089 * cp/semantics.c (valid_location_for_stdc_pragma_p,
12090 set_float_const_decimal64, clear_float_const_decimal64,
12091 float_const_decimal64_p): New dummy functions.
12092 * doc/extend.texi (Decimal Float): Remove statement that the
12093 pragma, and suffix for double constants, are not supported.
12094 * doc/invoke.texi (Warning Options): List new option.
12095 (-Wunsuffixed-float-constants): New.
12096
6de97ed5 120972009-05-08 Steven Bosscher <steven@gcc.gnu.org>
12098
12099 * config/i386/i386.c: Do not include c-common.h.
12100
b2d31ed6 121012009-05-07 Mark Heffernan <meheff@google.com>
12102
12103 * doc/invoke.texi (Debugging Options): Document change of debugging
12104 dump location.
39db6a03 12105 * opts.c (decode_options): Make dump_base_name relative to
b2d31ed6 12106 aux_base_name directory.
12107
697cef4f 121082009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
12109
12110 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
12111 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
12112
537bb6bf 121132009-05-07 Rafael Avila de Espindola <espindola@google.com>
12114
12115 * Makefile.in (install-plugin): Simplify a bit.
12116
2d4749b6 121172009-05-07 Paolo Bonzini <bonzini@gnu.org>
12118
12119 * Makefile.in (OBJS-common): Add regcprop.o.
12120 (regcprop.o): New.
12121 * timevar.def (TV_CPROP_REGISTERS): New.
12122 * regrename.c (regrename_optimize): Return 0.
12123 (rest_of_handle_regrename): Delete.
12124 (pass_rename_registers): Point to regrename_optimize.
f6c8c8fc 12125 (struct value_data_entry, struct value_data,
2d4749b6 12126 kill_value_one_regno, kill_value_regno, kill_value,
12127 set_value_regno, init_value_data, kill_clobbered_value,
12128 kill_set_value, kill_autoinc_value, copy_value,
12129 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
12130 replace_oldest_value_reg, replace_oldest_value_addr,
12131 replace_oldest_value_mem, copyprop_hardreg_forward_1,
12132 debug_value_data, validate_value_data): Move...
12133 * regcprop.c: ... here.
12134 (rest_of_handle_cprop): Delete.
12135 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
12136
7ad40ea1 121372009-05-07 Jakub Jelinek <jakub@redhat.com>
12138
12139 PR middle-end/40057
12140 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
12141 GEN_INT for 1 << bitnum.
12142 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
12143 build_int_cst_type.
12144
1cae7fd7 121452009-05-07 Uros Bizjak <ubizjak@gmail.com>
12146
12147 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
e0f84439 12148 Remove wrong description of "nand" operation.
1cae7fd7 12149
618b10bf 121502009-05-06 Richard Guenther <rguenther@suse.de>
12151 Adam Nemet <anemet@caviumnetworks.com>
12152
12153 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
12154 comment. Add that if LHS is not a gimple register, then RHS1 has
12155 to be a single object (GIMPLE_SINGLE_RHS).
12156
c1a83279 121572009-05-06 Adam Nemet <anemet@caviumnetworks.com>
12158
12159 * expr.c (get_def_for_expr): Move it up in the file.
12160 (store_field): When expanding a bit-field store, look at the
12161 defining gimple stmt for the masking conversion.
12162
b0090d52 121632009-05-06 Janis Johnson <janis187@us.ibm.com>
12164
12165 PR middle-end/39986
12166 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
12167 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
12168 32-bit memcpy into long.
12169
8fb8ca17 121702009-05-06 Jakub Jelinek <jakub@redhat.com>
12171
12172 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
12173 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
12174 new_reg_loc_descr.
12175 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
12176 instead of appending DW_OP_deref*.
12177
f800c469 121782009-05-06 Michael Matz <matz@suse.de>
12179
12180 PR middle-end/40021
12181 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
12182 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
12183
b3c73487 121842009-05-06 Rafael Avila de Espindola <espindola@google.com>
12185
12186 * Makefile.in (install-plugin): Fix srcdir handling.
12187
d29f7fa8 121882009-05-06 Andrey Belevantsev <abel@ispras.ru>
12189
12190 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
12191 when processing for not_regs_needed bitmap.
12192 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
f6c8c8fc 12193 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
12194 handling it for rhs.
d29f7fa8 12195
75445c99 121962009-05-06 H.J. Lu <hongjiu.lu@intel.com>
12197
a4374f2d 12198 * config/i386/i386.md (unnamed inc/dec peephole): Use
0ec7bfcd 12199 optimize_insn_for_size_p instead of optimize_size.
75445c99 12200 * config/i386/predicates.md (incdec_operand): Likewise.
12201 (aligned_operand): Likewise.
12202 * config/i386/sse.md (divv8sf3): Likewise.
12203 (sqrtv8sf2): Likewise.
12204
6e760686 122052009-05-06 H.J. Lu <hongjiu.lu@intel.com>
12206
12207 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
12208
12209 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
12210
67b1adf3 122112009-05-06 H.J. Lu <hongjiu.lu@intel.com>
12212
12213 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
12214 ssemodesuffixf2c with avxmodesuffixf2c.
12215
7f824b22 122162009-05-06 Joseph Myers <joseph@codesourcery.com>
12217
12218 PR c/40032
0ec7bfcd 12219 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
7f824b22 12220
7ac958de 122212009-05-05 Jakub Jelinek <jakub@redhat.com>
12222
12223 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
12224 (struct tree_base): Adjust spacing for 8 bit boundaries.
12225 (struct tree_decl_common): Add decl_by_reference_flag bit.
12226 (DECL_BY_REFERENCE): Adjust.
12227 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
12228 print DECL_BY_REFERENCE bit.
12229 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
12230 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
12231 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
12232 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
12233 unconditionally.
12234
72211fd1 12235 PR middle-end/39666
12236 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
12237 range of the type, but default label is missing, add it with one
12238 of the existing labels instead of adding a new label for it.
12239
a4987849 122402009-05-05 Joseph Myers <joseph@codesourcery.com>
12241
12242 * dwarf.h: Remove.
12243
912f2b18 122442009-05-05 Rafael Avila de Espindola <espindola@google.com>
12245
12246 * Makefile.in (enable_plugin, plugin_includedir): New.
12247 (install): Depend on install-plugin.
12248 (PLUGIN_HEADERS): New.
12249 (install-plugin): New.
12250 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
12251
d977f485 122522009-05-05 Richard Guenther <rguenther@suse.de>
12253
12254 PR tree-optimization/40022
12255 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
12256 the only vuse.
12257 (phivn_valid_p): Fix tuplification error, simplify.
12258 (phiprop_insert_phi): Add dumps.
12259 (propagate_with_phi): Simplify.
12260
bab5904e 122612009-05-05 Richard Guenther <rguenther@suse.de>
12262
12263 PR middle-end/40023
0ec7bfcd 12264 * builtins.c (gimplify_va_arg_expr): Properly build the address.
bab5904e 12265
15155321 122662009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
12267
12268 * tree.h (strip_float_extensions): Remove duplicate declaration.
0ec7bfcd 12269 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
12270 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
12271 block_ultimate_origin): Rearrange the declarations line to match the
12272 comment that indicates the .c file which the functions are defined.
12273 (dwarf2out_*, set_decl_rtl): Add comment.
12274 (get_base_address): Adjust comment.
12275 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
12276 declarations line and add comment.
12277 (is_builtin_name): Add blank after function name, for clarity.
15155321 12278
abd3e6b5 122792009-05-04 Joseph Myers <joseph@codesourcery.com>
12280
12281 * attribs.c (decl_attributes): Use %qE for identifiers in
12282 diagnostics.
12283 * cgraphunit.c (verify_cgraph_node): Translate function names to
12284 locale character set in diagnostics.
12285 * coverage.c (get_coverage_counts): Use %qE for identifiers in
12286 diagnostics.
12287 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
12288 Document that functions are named in UTF-8.
12289 * expr.c (expand_expr_real_1): Translate function names to locale
12290 character set in diagnostics.
12291 * gimplify.c (omp_notice_variable, omp_is_private,
12292 gimplify_scan_omp_clauses): Use %qE for identifiers in
12293 diagnostics.
12294 * langhooks.c (lhd_print_error_function): Translate function names
12295 to locale character set.
12296 * langhooks.h (decl_printable_name): Document that return value is
12297 in internal character set.
12298 * stmt.c: Include pretty-print.h
12299 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
12300 diagnostics.
12301 (resolve_operand_name_1): Translate named operand name to locale
12302 character set.
12303 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
12304 diagnostics.
12305 * toplev.c (announce_function): Translate function names to locale
12306 character set.
12307 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
12308 (default_tree_printer): Use pp_identifier or translate identifiers
12309 to locale character set. Mark "<anonymous>" for translation.
12310 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
12311 for identifiers in diagnostics.
12312 * tree.c (handle_dll_attribute): Use %qE for identifiers in
12313 diagnostics.
12314 * varasm.c (output_constructor): Use %qE for identifiers in
12315 diagnostics.
12316
6ac2286b 123172009-05-04 Rafael Avila de Espindola <espindola@google.com>
12318
12319 * configure.ac: use ` ` instead of $()
12320 * configure: Regenerate.
12321
5f80759e 123222009-05-05 Ben Elliston <bje@au.ibm.com>
12323
12324 * config/pa/linux-atomic.c: Eliminate conditional include of
12325 errno.h on non-LP64 systems to simplify build requirements.
12326
d1dd9ac0 123272009-05-04 Joseph Myers <joseph@codesourcery.com>
12328
12329 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
12330 diagnostics.
12331 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
12332 and pass value to identifier_to_locale.
12333 (warn_variable_length_array): Make name a tree.
12334 (grokdeclarator): Separate diagnostic texts for named and unnamed
12335 declarators. Use %qE for named declarators.
12336 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
12337 diagnostics.
12338 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
12339 identifiers in diagnostics.
12340 * c-typeck.c (push_member_name, start_init): Pass identifiers to
12341 identifier_to_locale. Mark "anonymous" strings for translation.
12342
c440daea 123432009-05-04 Michael Eager <eager@eagercon.com>
12344
12345 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
0ec7bfcd 12346 address for DImode/DFmode only if double-precision FP regs.
c440daea 12347
498670de 123482009-05-04 Michael Eager <eager@eagercon.com>
12349
12350 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
12351 TARGET_SINGLE_FLOAT check.
12352
ada4bf4e 123532009-05-04 Michael Eager <eager@eagercon.com>
12354
12355 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
12356
c6312735 123572009-05-04 Michael Eager <eager@eagercon.com>
12358
12359 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
12360 * config/rs6000/t-xilinx: New
12361
41e3a0c7 123622009-05-04 Paolo Bonzini <bonzini@gnu.org>
12363
39db6a03 12364 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
41e3a0c7 12365 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
12366 * gcc/explow.c (memory_address): Use target hook.
12367 * gcc/targhooks.c (default_legitimize_address): New.
12368 * gcc/targhooks.h (default_legitimize_address): New.
12369 * gcc/target.h (legitimize_address): New.
12370 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
12371 (TARGET_INITIALIZER): Include it.
12372 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
12373
12374 * config/bfin/bfin-protos.h (legitimize_address): Remove.
12375 * config/bfin/bfin.c (legitimize_address): Remove.
12376 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
0ec7bfcd 12377 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
12378 Remove.
41e3a0c7 12379 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
12380 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
12381
12382 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
12383 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
12384 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
12385 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
12386 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
12387 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
12388 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
12389 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
12390 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
12391 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
12392 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
12393 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
12394 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
12395 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
12396 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
12397 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
12398 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
12399 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
12400 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
12401 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
12402 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
12403 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
12404 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
12405
12406 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
12407 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
12408 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
12409 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
12410 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
12411 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
12412 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
12413 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
12414 (thumb_legitimize_address): Delete.
12415 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
12416 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
12417 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
12418 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
12419 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
0ec7bfcd 12420 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
12421 Delete.
12422 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
12423 Delete.
41e3a0c7 12424
12425 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
12426 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
12427 * config/m32r/m32r.c (m32r_legitimize_address): New.
12428 * config/m68k/m68k.c (m68k_legitimize_address): New.
12429 * config/score/score.c (score_legitimize_address): Standardize.
12430 * config/score/score3.c (score3_legitimize_address): Standardize.
12431 * config/score/score3.h (score3_legitimize_address): Adjust.
12432 * config/score/score7.c (score7_legitimize_address): Standardize.
12433 * config/score/score7.h (score7_legitimize_address): Adjust.
12434 * config/sh/sh.c (sh_legitimize_address): New.
12435 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
12436
12437 * gcc/config/s390/s390.c (legitimize_address): Rename to...
12438 (s390_legitimize_address): ... this.
12439 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
12440 (sparc_legitimize_address): ... this.
12441 * gcc/config/i386/i386.c (legitimize_address): Rename to...
12442 (ix86_legitimize_address): ... this.
12443 * gcc/config/avr/avr.c (legitimize_address): Rename to...
12444 (avr_legitimize_address): ... this.
12445 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
12446 (mn10300_legitimize_address): ... this.
12447 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
12448 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
12449 (alpha_expand_mov): Adjust call.
12450
12451 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
12452 * config/spu/spu.c (spu_legitimize_address): Likewise.
12453 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
12454 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
12455
27746e01 124562009-05-04 Joseph Myers <joseph@codesourcery.com>
12457
12458 * intl.c (locale_encoding, locale_utf8): New.
12459 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
12460 * intl.h (locale_encoding, locale_utf8): Declare.
12461 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
12462 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
12463 New.
12464 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
12465 argument.
12466 (pp_tree_identifier): Define to call pp_base_tree_identifier.
12467 (pp_base_tree_identifier): Declare as function.
12468 (identifier_to_locale): Declare.
12469 * Makefile.in (pretty-print.o): Update dependencies.
0ec7bfcd 12470 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
27746e01 12471
97d4c6a6 124722009-05-04 Richard Guenther <rguenther@suse.de>
12473
12474 PR middle-end/40015
12475 * builtins.c (fold_builtin_memory_op): Do not decay to element
12476 type if the size matches the whole array.
12477
5521b4c8 124782009-05-04 Kazu Hirata <kazu@codesourcery.com>
12479
12480 * expmed.c (synth_mult): When trying out a shift, pass the result
12481 of a signed shift.
12482
b592bb50 124832009-05-04 Kazu Hirata <kazu@codesourcery.com>
12484
12485 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
12486 (shiftsub1_cost): New.
12487 (init_expmed): Compute shiftsub1_cost.
12488 (synth_mult): Optimize multiplications by constants of the form
12489 -(2^^m-1) for some constant positive integer m.
12490
45bb3afb 124912009-05-03 Richard Guenther <rguenther@suse.de>
12492
12493 PR c/39983
12494 * c-typeck.c (array_to_pointer_conversion): Do not built
12495 ADDR_EXPRs of arrays of pointer-to-element type.
12496 * c-gimplify.c (c_gimplify_expr): Revert change fixing
12497 up wrong ADDR_EXPRs after-the-fact.
12498 * c-common.c (strict_aliasing_warning): Strip pointer
12499 conversions for obtaining the original type.
12500 * builtins.c (fold_builtin_memset): Handle array types.
12501 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
12502 and array types
12503
9225ad44 125042009-05-03 Richard Guenther <rguenther@suse.de>
12505
12506 PR middle-end/23329
12507 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
12508 Do not lose casts from array types with unknown extent to array
12509 types with known extent.
12510 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
12511 alias set compatibility.
12512
a0ded67b 125132009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
12514
12515 * flags.h (extra_warnings): Delete.
12516 * toplev.c (process_options): Handle Wuninitialized here.
12517 * opts.c (extra_warnings): Delete.
12518 (set_Wextra): Delete.
12519 (common_handle_option): -Wextra can be handled automatically.
12520 * c-opts.c (c_common_handle_option): Delete obsolete code.
12521 (c_common_post_options): Simplify comment.
12522 * common.opt (W): Add Var.
12523 (Wextra): Add Var.
12524 (Wuninitialized): Initialize to -1.
12525
bf39f60a 125262009-05-03 Adam Nemet <anemet@caviumnetworks.com>
12527 Richard Guenther <rguenther@suse.de>
12528
12529 * expr.c (get_def_for_expr): New function.
12530 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
12531 SSA rather than trees.
12532 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
12533 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
f6c8c8fc 12534
c1800156 125352009-05-03 Joseph Myers <joseph@codesourcery.com>
12536
12537 * c-common.c (reswords): Add _Imaginary.
12538 * c-common.c (enum rid): Add RID_IMAGINARY.
12539
8b50765f 125402009-05-03 Paolo Bonzini <bonzini@gnu.org>
12541
12542 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
12543 Patch by Richard Guenther.
12544
a4efa7dc 125452009-05-03 Anatoly Sokolov <aesok@post.ru>
12546
12547 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
12548 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
12549 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
12550 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
12551 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
12552 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
12553 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
12554 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
12555 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
12556 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
12557 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
12558 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
12559 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
12560 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
12561 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
12562 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
12563 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
12564 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
12565
b4c97a12 125662009-05-02 Richard Guenther <rguenther@suse.de>
12567
12568 PR tree-optimization/39940
12569 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
12570 doing so.
12571
f09f132b 125722009-05-02 Richard Guenther <rguenther@suse.de>
12573
12574 PR middle-end/40001
12575 * tree-ssa.c (execute_update_addresses_taken): Properly check
12576 if we can mark a variable DECL_GIMPLE_REG_P.
12577 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
12578 back to the end of the function.
12579 (is_gimple_reg_type): Remove complex type special casing.
12580 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
12581 if not optimizing.
12582
2ccfd743 125832009-05-02 Ben Elliston <bje@au.ibm.com>
12584
12585 * doc/collect2.texi (Collect2): Document search path behaviour
12586 when configured with --with-ld.
12587
5b835bca 125882009-05-02 Jan Hubicka <jh@suse.cz>
12589
12590 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
12591 parameter; update callers.
0ec7bfcd 12592 (coalesce_cost_edge): EH edges are costier because they needs
12593 splitting even if not critical and even more costier when there are
12594 multiple EH predecestors.
5b835bca 12595
a0c110ce 125962009-05-02 Jan Hubicka <jh@suse.cz>
12597
12598 * except.c (remove_eh_handler_and_replace): Handle updating after
12599 removing TRY blocks.
12600
aa7ab40e 126012009-05-02 Eric Botcazou <ebotcazou@adacore.com>
12602
12603 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
12604
c778f6b8 126052009-05-02 Steven Bosscher <steven@gcc.gnu.org>
12606
12607 * varasm.c: Do not include c-pragma.h.
12608 * attribs.c: Do not incude c-common.h.
12609
d6230243 126102009-05-01 Michael Matz <matz@suse.de>
12611
12612 * calls.c (initialize_argument_information): Handle SSA names like
12613 decls with a non MEM_P DECL_RTL.
12614
5863771b 126152009-05-01 Steven Bosscher <steven@gcc.gnu.org>
12616
12617 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
12618 * ipa-utils.c: Likewise.
12619 * ipa-type-escape.c: Likewise.
12620 * cgraphunit.c Do not include c-common.h.
12621 * ipa-pure-const.c: Likewise.
12622 * tree-if-conv.c: Likewise.
12623 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
12624 * ipa-struct-reorg.c: Likewise.
12625 * tree-nomudflap.c: Likewise.
12626 * tree-ssa-structalias.c: Likewise.
12627
acf70424 126282009-05-01 Steven Bosscher <steven@gcc.gnu.org>
12629
12630 * store-motion.c: Many cleanups to make this pass a first-class
12631 citizen instead of an appendix to gcse load motion. Add TODO list
12632 to make this pass faster/cleaner/better.
12633
12634 (struct ls_expr): Post gcse.c-split cleanups.
12635 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
12636 "stores" field to "avail_stores".
12637 (pre_ldst_mems): Rename to store_motion_mems.
12638 (pre_ldst_table): Rename to store_motion_mems_table.
12639 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
12640 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
12641 (ldst_entry): Rename to st_expr_entry, update users.
12642 (free_ldst_entry): Rename to free_st_expr_entry, update users.
12643 (free_ldst_mems): Rename to free_store_motion_mems, update users.
0ec7bfcd 12644 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
12645 update caller.
acf70424 12646 (first_ls_expr): Rename to first_st_expr, update users.
12647 (next_ls_expr): Rename to next_st_expr, update users.
12648 (print_ldst_list): Rename to print_store_motion_mems. Print names of
12649 fields properly for store motion instead of names inherited from load
12650 motion in gcse.c.
12651 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
12652 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
12653 are done with it.
12654
12655 (ae_kill): Rename to st_kill, update users.
12656 (ae_gen): Rename to st_avloc, update users.
12657 (transp): Rename to st_transp, update users.
12658 (pre_insert_map): Rename to st_insert_map, update users.
12659 (pre_delete_map): Rename to st_delete_map, update users.
12660 (insert_store, build_store_vectors, free_store_memory,
12661 one_store_motion_pass): Update for abovementioned changes.
12662
12663 (gcse_subst_count, gcse_create_count): Remove.
12664 (one_store_motion_pass): New statistics counters "n_stores_deleted"
12665 and "n_stores_created", local variables.
12666
12667 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
12668 use for_each_rtx.
12669
12670 (regvec, compute_store_table_current_insn): Remove.
12671 (reg_set_info, reg_clear_last_set): Remove.
12672 (compute_store_table): Use DF caches instead of local dataflow
12673 solvers.
12674
1e00012f 126752009-05-01 Joseph Myers <joseph@codesourcery.com>
12676
12677 * c-objc-common.c (c_tree_printer): Print identifiers with
12678 pp_identifier, not pp_string. Mark "({anonymous})" for
12679 translation.
12680 * c-pretty-print.c (pp_c_ws_string): New.
12681 (pp_c_cv_qualifier, pp_c_type_specifier,
12682 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
12683 pp_c_storage_class_specifier, pp_c_function_specifier,
12684 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
12685 pp_c_primary_expression, pp_c_postfix_expression,
12686 pp_c_unary_expression, pp_c_shift_expression,
12687 pp_c_relational_expression, pp_c_equality_expression,
12688 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
12689 use pp_string and pp_c_ws_string in place of pp_identifier and
12690 pp_c_identifier for non-identifiers. Mark English strings for
12691 translation.
12692 * c-pretty-print.h (pp_c_ws_string): Declare.
12693
8271b966 126942009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
12695 Roland McGrath <roland@redhat.com>
12696
0ec7bfcd 12697 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
8271b966 12698 (ENABLE_LD_BUILDID): New configuration option.
12699 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
12700 (LINK_BUILDID_SPEC): New macro.
12701 (init_spec): If defined, prepend it between LINK_EH_SPEC and
12702 link_spec.
12703 * doc/install.texi: Document --enable-linker-build-id option.
12704 * configure: Rebuild.
12705 * config.in: Rebuild.
12706
f9eddbcf 127072009-04-30 Adam Nemet <anemet@caviumnetworks.com>
12708
12709 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
12710 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
12711 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
12712 MIPS_GP_SAVE_AREA_SIZE.
12713 * config/mips/mips.c (struct mips_frame_info): Update comment
12714 before arg_pointer_offset and hard_frame_pointer_offset.
12715 (mips_compute_frame_info): Update diagram before function: to
12716 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
12717 indicate the position of frame_pointer_rtx with -fstack-protector and
12718 to show args_size. Don't allocate cprestore area for leaf functions
12719 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
12720 cprestore_size.
12721 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
12722
a1828715 127232009-04-30 Michael Matz <matz@suse.de>
12724
f9eddbcf 12725 PR tree-optimization/39955
12726 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
a1828715 12727
520196ac 127282009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
12729
12730 * ira.c (setup_cover_and_important_classes): Use safe macro
12731 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
12732 directly.
12733 * genpreds.c (write_tm_preds_h): Output suitable definition of
12734 REG_CLASS_FOR_CONSTRAINT.
12735
29d35324 127362009-04-30 Rafael Avila de Espindola <espindola@google.com>
12737
12738 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
12739 instead of an int.
12740 * bitmap.c (bitmap_descriptor): Likewise.
12741 * ggc-common.c (loc_descriptor): Likewise.
12742 * varray.c (varray_descriptor): Likewise.
12743 * vec.c (vec_descriptor): Likewise.
12744
f274e293 127452009-04-30 Eric Botcazou <ebotcazou@adacore.com>
14ca6b9a 12746
12747 * Makefile.in (dce.o): Add $(EXCEPT_H).
12748 * dce.c: Include except.h and delete redundant vector definitions.
12749 (deletable_insn_p): Return false for non-call insns that can throw
12750 if DF is running.
12751
4b673aa1 127522009-04-30 Steven Bosscher <steven@gcc.gnu.org>
12753
12754 * gcse.c (ae_gen): Remove.
12755 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
12756 and make non-static function to make it available in store-motion.c.
12757 Update call sites with search-and-replace.
12758 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
12759 extract_mentioned_regs, extract_mentioned_regs_helper,
12760 find_moveable_store, compute_store_table, load_kills_store, find_loads,
12761 store_killed_in_insn, store_killed_after, store_killed_before,
12762 build_store_vectors, insert_insn_start_basic_block, insert-store,
12763 remove_reachable_equiv_notes, replace_store_insn, delete_store,
12764 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
12765 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
12766 * store-motion.c: ...new file. Also copy data structures from gcse.c
12767 and clean up to remove parts not used by store motion.
12768 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
12769 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
12770
aca3a78f 127712009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12772
12773 PR target/38571
12774 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
12775 when optimizing for size.
12776
e5a9568a 127772009-04-30 Hans-Peter Nilsson <hp@axis.com>
12778
12779 * gcse.c (gcse_constant_p): Fix typo in last change.
12780
c2cf4a47 127812009-04-30 Rafael Avila de Espindola <espindola@google.com>
12782
12783 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
12784
c5e00404 127852009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
12786
12787 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
12788
c8b71b5d 127892009-04-29 James E. Wilson <wilson@codesourcery.com>
12790
12791 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
12792 CONST_HIGH_PART result.
12793
ebdd0478 127942009-04-29 Anatoly Sokolov <aesok@post.ru>
12795
12796 * config/avr/avr.c (initial_elimination_offset): Rename to
12797 avr_initial_elimination_offset.
12798 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
12799 change return type to bool.
12800 (avr_can_eliminate): New function.
12801 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
12802 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
12803 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
1cae7fd7 12804 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
ebdd0478 12805 avr_initial_elimination_offset.
12806 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
12807 (avr_initial_elimination_offset): Define.
12808
225e5f6f 128092009-04-29 Eric Botcazou <ebotcazou@adacore.com>
0ec7bfcd 12810 Steven Bosscher <steven@gcc.gnu.org>
225e5f6f 12811
12812 PR rtl-optimization/39938
12813 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
12814 * cfgrtl.c: Include insn-attr.h.
12815 (rest_of_pass_free_cfg): New function.
12816 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
12817 * resource.c (init_resource_info): Remove call to df_analyze.
12818
db7bc493 128192009-04-29 Richard Guenther <rguenther@suse.de>
12820
12821 PR target/39943
12822 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
12823 allow conversion to signed integers.
12824
8f93c289 128252009-04-29 Richard Guenther <rguenther@suse.de>
12826
12827 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
12828 shifts of floating point vectors if the shift amount is
12829 a constant multiple of the element size.
12830
4ef1170b 128312009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
12832 Michael Matz <matz@suse.de>
12833
12834 PR middle-end/39927
12835 PR bootstrap/39929
12836 * tree-outof-ssa.c (emit_partition_copy): New function.
12837 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
12838 insert_part_to_rtx_on_edge): Perform the partition base var
12839 copy using emit_partition_copy.
12840 (insert_value_copy_on_edge): Convert constants to the right mode.
12841 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
12842 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
12843
8c7abb6c 128442009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
12845
12846 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
12847 scan backwards to try to find a constant to initialize it.
12848
82adee25 12849 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
12850 insn before the loop_end instruction, don't look past labels.
12851
7b705d94 128522009-04-29 Richard Guenther <rguenther@suse.de>
12853
12854 PR middle-end/39937
12855 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
12856 loose type conversions.
12857 (forward_propagate_addr_expr): Fix tuplification bug. Remove
12858 stmts only if there are no uses of its definition.
12859
0fead507 128602009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
12861
12862 * config/bfin/bfin.h (splitting_loops): Declare.
12863 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
12864 Reorder bit definitions to be ascending.
12865 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
12866 * config/bfin/bfin.c (splitting_loops): New variable.
12867 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
12868 (struct loop_info): Remove members INIT and LOOP_INIT.
12869 (bfin_optimize_loop): Don't set them. Reorder the code that generates
0ec7bfcd 12870 the LSETUP sequence. Allow LC to be loaded from any register, but
12871 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
0fead507 12872 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
12873 set to 1.
12874 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
12875 of reload_completed.
0ec7bfcd 12876
0fead507 12877 From Jie Zhang:
12878 * config/bfin/bfin.md (movsi_insn): Refine constraints.
12879
e8ad34e4 128802009-04-29 Rafael Avila de Espindola <espindola@google.com>
12881
12882 * Makefile.in (PLUGIN_VERSION_H): New.
12883 (OBJS-common): Remove plugin-version.o.
12884 (plugin.o): Depend on (PLUGIN_VERSION_H).
12885 (plugin-version.o): Remove.
12886 * configure: Regenerate
12887 * configure.ac: Create plugin-version.h.
12888 * gcc-plugin.h (plugin_gcc_version): Remove.
12889 (plugin_default_version_check): Change signature.
12890 * plugin-version.c: Remove.
12891 * plugin.c: Include plugin-version.h.
12892 (str_plugin_gcc_version_name): Remove.
12893 (try_init_one_plugin): Pass gcc version to plugin_init.
12894 (plugin_default_version_check): Both gcc and plugin versions are now
12895 arguments.
12896
2a21643e 128972009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
f6c8c8fc 12898
2a21643e 12899 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
12900 problematic last insns. Test for TYPE_CALL rather than CALL_P.
0ec7bfcd 12901 Remove special case testing for last insn of inner loops. Don't fail
12902 if the loop ends with a jump, emit an extra nop instead.
2a21643e 12903
101deac5 12904 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
12905 DREGS rather than comparing directly. Remove code that tries to
12906 account for latencies.
12907
86cf57b9 129082009-04-29 Richard Guenther <rguenther@suse.de>
12909
12910 PR tree-optimization/39941
12911 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
12912 eliminating an indirect call.
12913
b898ce29 129142009-04-29 Richard Guenther <rguenther@suse.de>
12915
12916 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
12917 parameter. Allow invariants as base if !require_lvalue.
12918 (verify_gimple_assign_single): Adjust.
12919
901bfd0a 129202009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
12921
12922 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
12923 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
0ec7bfcd 12924 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
12925 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
901bfd0a 12926 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
12927 a VEC_SELECT.
0ec7bfcd 12928 * config/bfin/bfin.c (bfin_expand_builtin,
12929 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
901bfd0a 12930
f1a47479 129312009-04-28 Richard Guenther <rguenther@suse.de>
12932
12933 * tree-vect-loop.c (get_initial_def_for_induction): Use
12934 correct types for pointer increment.
12935
660b6c15 129362009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12937
12938 * toplev.c (print_version): Update GMP version string calculation.
12939
79f40f20 129402009-04-28 Eric Botcazou <ebotcazou@adacore.com>
12941
12942 PR rtl-optimization/39938
12943 * resource.c (init_resource_info): Add call to df_analyze.
12944
afba4ec8 129452009-04-28 Uros Bizjak <ubizjak@gmail.com>
12946
12947 * config/alpha/alpha.md (usegp): Cast the result of
12948 alpha_find_lo_sum_using_gp to enum attr_usegp.
12949 * config/alpha/alpha.c (override_options): Remove end-of-structure
12950 marker element from cpu_table. Use array size of cpu_table to handle
12951 -mcpu and -mtune options.
12952 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
12953
cf61fe8d 129542009-04-28 Joseph Myers <joseph@codesourcery.com>
12955
12956 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
12957 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
12958 tune_32 and tune_64.
12959 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
12960 support on PowerPC.
12961 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
12962 * config/rs6000/option-defaults.h: ... here. New file.
12963 (OPT_64, OPT_32): Define.
12964 (MASK_64BIT): Define to 0 if not already defined.
12965 (OPT_ARCH64, OPT_ARCH32): Define.
12966 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
12967 and tune_64.
12968
a73d7011 129692009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12970
12971 * config/arm/arm.c (arm_override_options): Emit error on using
12972 fpa with AAPCS.
12973
13506fb4 129742009-04-28 Uros Bizjak <ubizjak@gmail.com>
12975
12976 PR rtl-optimization/39914
12977 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12978 registers for allocnos created from user-defined variables only
12979 when not optimizing.
12980
1e5de3bd 129812009-04-28 Richard Guenther <rguenther@suse.de>
12982
12983 PR middle-end/39937
12984 * fold-const.c (fold_binary): Use distribute_real_division only
12985 on float types.
12986
43cb9222 129872009-04-28 Steve Ellcey <sje@cup.hp.com>
12988
12989 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
12990 add hpux-stdint.h to tm_file.
12991 (hppa[12]*-*-hpux11*): Ditto.
12992 (ia64*-*-hpux*): Ditto.
12993 * config/hpux-stdint.h: New.
943327c1 12994 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
43cb9222 12995 __STDC_EXT__ for all compiles.
943327c1 12996 * config/pa/pa-hpux.h: Ditto.
12997 * config/pa/pa-hpux10.h: Ditto.
12998 * config/pa/pa-hpux11.h: Ditto.
43cb9222 12999
029529e6 130002009-04-28 Catherine Moore <clm@codesourcery.com>
13001
13002 * debug.h (set_name): Add comment.
13003
e5d1687d 130042009-04-28 Andrew Pinski <pinskia@gmail.com>
13005
13006 PR target/39929
13007 * config/darwin.c (machopic_gen_offset): Check
13008 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
13009 * config/arm/arm.c (require_pic_register): Likewise.
13010
a0388eef 130112009-04-28 Paolo Bonzini <bonzini@gnu.org>
13012
afba4ec8 13013 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
13014 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
13015 m32c_promote_prototypes): Delete.
a0388eef 13016
bffc9f73 130172009-04-28 Michael Matz <matz@suse.de>
13018
13019 PR middle-end/39922
13020 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
13021 constants.
13022
d716274d 130232009-04-28 Richard Guenther <rguenther@suse.de>
13024
13506fb4 13025 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
d716274d 13026
d6539baf 130272009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13028
13029 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
13030 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
13031 * config/arm/arm-tune.md: Regenerate.
13032
df6266b9 130332009-04-28 Alexander Monakov <amonakov@ispras.ru>
943327c1 13034
df6266b9 13035 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
13036 block if there are complex incoming edges.
13037 (sel_merge_blocks): Remove useless assert.
13038 (sel_redirect_edge_and_branch): Check that edge was redirected.
13039 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
13040 (sel_find_rgns): Delete declaration.
13041 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
13042 the region when it is not a preheader.
13043
a0c94741 130442009-04-28 Uros Bizjak <ubizjak@gmail.com>
13045
13046 PR c/39323
13047 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
13048
f003f9fd 130492009-04-28 Richard Guenther <rguenther@suse.de>
13050
13051 * tree.h (SSA_NAME_VALUE): Remove.
13052 (struct tree_ssa_name): Remove value_handle member.
13053 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
13054 array for jump threading.
13055 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
13056 SSA_NAME_VALUEs.
13057 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
13058 * tree-flow.h (threadedge_initialize_values): Declare.
13059 (threadedge_finalize_values): Likewise.
13060 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
13061 (SSA_NAME_VALUE): Define.
13062 (threadedge_initialize_values): New function.
13063 (threadedge_finalize_values): Likewise.
13064 * tree-ssa-dom.c (ssa_name_values): New global variable.
13065 (SSA_NAME_VALUE): Define.
13506fb4 13066 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
f003f9fd 13067
f083cd24 130682009-04-28 Ira Rosen <irar@il.ibm.com>
13069
13070 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
f6c8c8fc 13071 Use REPORT_VECTORIZED_LOCATIONS instead
f083cd24 13072 REPORT_VECTORIZED_LOOPS.
13073 * tree-vectorizer.c (vect_verbosity_level): Make static.
13074 (vect_loop_location): Rename to vect_location.
13075 (vect_set_verbosity_level): Update comment.
13076 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
13077 and vect_location.
13078 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
13079 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
13080 instead REPORT_UNVECTORIZED_LOOPS.
6ca2db76 13081 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
13082 and vect_loop_def to vect_external_def and vect_internal_def.
f083cd24 13083 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
f6c8c8fc 13084 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
f083cd24 13085 REPORT_UNVECTORIZED_LOCATIONS.
13086 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
f6c8c8fc 13087 and vect_used_in_loop and to vect_unused_in_scope and
f083cd24 13088 vect_used_in_scope.
13089 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
13090 (vect_verbosity_level): Remove declaration.
13091 (vect_analyze_operations): Likewise.
13092 (vect_analyze_stmt): Declare.
13093 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
13094 REPORT_UNVECTORIZED_LOCATIONS.
13095 (vect_get_loop_niters): Fix indentation.
13096 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
13097 (vect_analyze_loop_operations): New function.
13098 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
13099 vect_analyze_operations.
13100 (vect_is_simple_reduction): Use new names.
13101 (vectorizable_live_operation, vect_transform_loop): Likewise.
6ca2db76 13102 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
13103 to specify whether the data references can be a part of interleaving
13104 chain.
f083cd24 13105 (vect_analyze_data_ref_dependence): Use new names.
13106 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
13107 (vect_create_addr_base_for_vector_ref): Remove redundant code.
13108 * tree-vect-patterns.c (widened_name_p): Use new names.
13109 (vect_recog_dot_prod_pattern): Likewise.
13110 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
f6c8c8fc 13111 (process_use, vect_mark_stmts_to_be_vectorized,
f083cd24 13112 vect_model_simple_cost, vect_model_store_cost,
13113 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
13114 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
13115 vectorizable_operation, vectorizable_type_demotion,
13116 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
13117 vectorizable_condition): Likewise.
13118 (vect_analyze_operations): Split into vect_analyze_loop_operations
13119 and ...
13120 (vect_analyze_stmt): ... new function.
13121 (new_stmt_vec_info): Use new names.
13122 (vect_is_simple_use): Use new names and fix comment.
13123 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
13124 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
13125
f1689c28 131262009-04-28 Uros Bizjak <ubizjak@gmail.com>
13127
13128 PR target/39911
13129 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
13130 and integer modes for x87 operands. Do not ICE for unsupported size,
13131 generate error instead. Generate error for unsupported operand types.
13132 ['z']: Do not handle HImode memory operands specially. Warning
13133 for floating-point operands. Fallthru to 'Z' for unsupported operand
13134 types. Do not ICE for unsupported size, generate error instead.
13135 (output_387_binary_op): Use %Z to output operands.
13136 (output_fp_compare): Ditto.
13137 (output_387_reg_move): Ditto.
13138
1f63a7d6 131392009-04-28 Ben Elliston <bje@au.ibm.com>
13140
13141 PR c++/35652
13142 Revert:
13143
13144 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13145
13146 * builtins.c (c_strlen): Do not warn here.
13147 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
13148 * c-common.c (pointer_int_sum): Take an explicit location.
13149 Warn about offsets out of bounds.
13150 * c-common.h (pointer_int_sum): Adjust declaration.
13151
bc620c5c 131522009-04-27 Ian Lance Taylor <iant@google.com>
13153
13154 * collect2.c (is_ctor_dtor): Change type of ret field in struct
13155 names to symkind.
13156 * dce.c (run_fast_df_dce): Change type of old_flags to int.
13157 * df-core.c (df_set_flags): Change return type to int. Change
13158 type of old_flags to int.
13159 (df_clear_flags): Likewise.
13160 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
13161 (df_get_conditional_uses): Likewise.
13162 * df.h (df_set_flags, df_clear_flags): Update declarations.
13163 * dwarf2out.c (struct indirect_string_node): Change type of form
13164 field to enum dwarf_form.
13165 (AT_string_form): Change return type to enum dwarf_form.
13166 * fixed-value.c (fixed_compare): Add cast to enum type.
13167 * fwprop.c (update_df): Change 0 to VOIDmode.
13168 * gensupport.c: Change 0 to UNKNOWN.
13169 * gimple.h (gimple_cond_code): Add cast to enum type.
13170 * haifa-sched.c (reemit_notes): Add cast to enum type.
13171 * hooks.c (hook_int_void_no_regs): Remove function.
13172 * hooks.h (hook_int_void_no_regs): Remove declaration.
13173 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
a0c94741 13174 * predict.c (combine_predictions_for_insn): Add casts to enum type.
bc620c5c 13175 * real.c (real_arithmetic): Add cast to enum type.
13176 (real_compare): Likewise.
13177 * target.h (struct gcc_target): Change return type of
13178 branch_target_register_class to enum reg_class.
13179 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
13180 default_branch_target_register_class.
a0c94741 13181 * targhooks.c (default_branch_target_register_class): New function.
bc620c5c 13182 * targhooks.h (default_branch_target_register_class): Declare.
a0c94741 13183 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
bc620c5c 13184 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
13185 cast to int.
13186 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
13187 ERROR_MARK.
13188 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
13189 vect_uninitialized_def. Change 0 to ERROR_MARK.
13190 * tree-vect-stmts.c (supportable_widening_operation): Don't
13191 initialize icode1 and icode2.
a0c94741 13192 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
bc620c5c 13193 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
13194 and to STD_C89.
13195 (cmn_err_flag_specs): Change 0 to STD_C89.
13196 (cmn_err_char_table): Likewise.
13197 * config/arm/arm.c (get_arm_condition_code): Change type of code
13198 to enum arm_cond_code.
13199 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
13200 (IWMMXT_BUILTIN2): Likewise.
13201 (neon_builtin_type_bits): Don't define typedef.
13202 (neon_builtin_datum): Change type of bits field to int.
13203 (arm_expand_neon_args): Add cast to enum type.
13204 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
13205 TLS_MODEL_NONE.
13206 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
13207 casts to enum type.
13208 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
13209 MIPS_FP_COND_f.
13210 * config/mips/mips.md (jal_macro): Return enum constant.
13211 (single_insn): Likewise.
13212 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
13213 CODE_FOR_nothing.
13214 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13215 casts to enum type.
13216 * config/s390/s390.c (s390_tune_flags): Change type to int.
13217 (s390_arch_flags): Likewise.
a0c94741 13218 (s390_handle_arch_option): Change flags field of struct pta to int.
bc620c5c 13219 * config/s390/s390.h (s390_tune_flags): Update declaration.
13220 (s390_arch_flags): Likewise.
13221 * config/sh/sh.c (prepare_move_operands): Compare
13222 tls_symbolic_operand result with enum constant.
13223 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
13224 (sh_expand_prologue): Add cast to enum type.
13225 (sh_expand_epilogue): Likewise.
13226 (tls_symbolic_operand): Change return type to enum tls_model.
13227 (fpscr_set_from_mem): Add cast to enum type.
13228 (legitimize_pic_address): Compare tls_symbolic_operand result with
13229 enum constant.
13230 (sh_target_reg_class): Change return type to enum reg_class.
13231 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
13232 PROCESSOR_xxx.
a0c94741 13233 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
13234 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
bc620c5c 13235 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
13236 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
13237 (delayed_branch, tls_call_delay): Likewise.
13238 (eligible_for_sibcall_delay): Likewise.
f6c8c8fc 13239 (eligible_for_return_delay): Likewise.
bc620c5c 13240 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
13241 (spu_expand_builtin_1): Likewise.
13242
13243 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
13244 for all types of conversions.
13245 (output_init_element): Issue -Wc++-compat warning if needed when
13246 initializing a bitfield with enum type.
13247 * c-parser.c (c_parser_expression): Set original_type to
86efc2bb 13248 original_type of right hand operand of comma operator.
bc620c5c 13249
68576faf 132502009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13251
13252 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
13253 grammar nits.
a0c94741 13254 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
68576faf 13255 * doc/cpp.texi (Standard Predefined Macros)
13256 (Implementation-defined behavior): Likewise.
a0c94741 13257 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
68576faf 13258 * doc/gimple.texi (GIMPLE Exception Handling)
13259 (@code{GIMPLE_ASSIGN}): Likewise.
a0c94741 13260 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
68576faf 13261 * doc/invoke.texi (Warning Options, Optimize Options)
13262 (AVR Options, Darwin Options): Likewise.
13263 (Optimize Options): Reformulate -fwhole-program description.
13264 * doc/loop.texi (Lambda): Likewise.
13265 * doc/md.texi (Output Template, Define Constraints)
13266 (Standard Names, Insn Splitting): Likewise.
13267 * doc/options.texi (Option properties): Likewise.
13268 * doc/passes.texi (Tree-SSA passes): Likewise.
13269 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
13270 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
13271 (File Names and DBX): Likewise.
13272 * doc/trouble.texi (Incompatibilities): Likewise.
13273
ade56658 132742009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
8f1d58ad 13275
13276 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
13277 instruction is correct.
13278
ade56658 132792009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
56c7bfc2 13280
13281 Allow non-constant arguments to conversion intrinsics.
13282 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
13283 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
13284 * spu.c (print_operand): Handle 'v' and 'w'.
13285 (exp2_immediate_p, spu_gen_exp2): Define.
13286 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
13287 spu_convtf_1): Update parameter descriptions.
a0c94741 13288 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
56c7bfc2 13289 * constraints.md ('v', 'w'): New.
13290 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
13291 Remove.
13292 (i2f, I2F): New define_mode_attr.
13293 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
13294 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
13295 fixuns_truncv4sfv4si2): Update to use mode attribute.
13296 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
13297 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
13298 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
13299 patterns for combine.
13300
d743aba2 133012009-04-27 Steven Bosscher <steven@gcc.gnu.org>
13302
13303 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
13304 (cprop, hoist, pre, store_motion): New debug counters.
13305 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
13306 is not an RTL pass anymore.
13307 (pass_profiling): Remove extern decl for pass removed in 2005.
13308 (pass_gcse, pass_jump_bypass): Remove.
13309 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
13310 to 0 for clean state.
13311 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
13312 * cse.c (gate_handle_cse_after_global_opts,
13313 rest_of_handle_cse_after_global_opts): New functions.
13314 (pass_cse_after_global_opts): New pass, does local CSE.
13315 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
13316 (TV_CPROP): New timevar.
13317 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
13318 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
13319 (gcse_main, recompute_all_luids): Remove.
13320 (compute_hash_table_work): Call max_reg_num instead of reading
13321 max_gcse_regno.
13322 (cprop_jump): Don't set run_jump_opt_after_gcse.
13323 (constprop_register): Always allow to alter jumps.
13324 (cprop_insn): Likewise.
13325 (do_local_cprop): Likewise.
13326 (local_cprop_pass): Likewise. Return non-zero if something changed.
13327 (cprop): Remove function, fold interesting bits into one_cprop_pass.
13328 (find_implicit_sets): Add note about missed optimization opportunity.
13329 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
13330 pass_rtl_cprop execute function.
13331 Don't bother tracking the pass number, each pass gets its own dumpfile
13332 now anyway.
13333 Always allow to alter jumpsand bypass jumps.
13334 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
13335 will just find no suitable set.
13336 (pre_edge_insert): Fix dumping, this function is for PRE only.
13337 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
13338 pass_rtl_pre execute function.
13339 (hoist_code): Return non-zero if something changed. Keep track of
13340 substitutions and insertions for statistics gathering similar to PRE.
13341 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
13342 called from the pass_rtl_hoist execute function. Show pass statistics.
13343 (compute_store_table): Use max_reg_num directly instead of using the
13344 formerly global max_gcse_regno.
13345 (build_store_vectors): Likewise.
13346 (replace_store_insn): Fix dumping.
13347 (store_motion): Rename to ...
13348 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
13349 pass, called from the pass_rtl_store_motion execute function. Keep
13350 track of substitutions and insertions for statistics gathering similar
13351 to PRE.
13352 (bypass_jumps): Remove, fold interesting bits into ...
13353 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
13354 from the pass_rtl_cprop execute function.
13355 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
13356 pass_jump_bypass): Remove.
13357 (gate_handle_gcse, rest_of_handle_gcse): Remove.
13358 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
13359 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
13360 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
13361 (gate_rtl_store_motion, execute_rtl_store_motion,
13362 pass_rtl_store_motion): New.
13363 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
13364 make it clear that -fcse-skip-blocks is a no-op for backward compat.
13365 * passes.c (init_optimization_passes): Remove pass_gcse and
13366 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
13367 and cse_after_global_opts in place of pass_gcse. Schedule cprop
13368 instead of pass_jump_bypass.
13369
fd3f8d70 133702009-04-27 Richard Guenther <rguenther@suse.de>
13371
13372 PR middle-end/39928
13373 * gimplify.c (gimplify_expr): If we are required to create
13374 a temporary make sure it ends up as register.
13375
dd430c78 133762009-04-27 H.J. Lu <hongjiu.lu@intel.com>
13377
13378 PR target/39903
13379 * config/i386/i386.c (construct_container): Don't call
13380 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
13381 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
13382
dfdbf3fd 133832009-04-27 Michael Matz <matz@suse.de>
13384
13385 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
13386 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
13387 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
13388 (dump_replaceable_exprs): Take a bitmap.
13389 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
13390 array.
13391 (expand_gimple_basic_block): Likewise.
13392 * tree-ssa-ter.c (struct temp_expr_table_d): Make
13393 replaceable_expressions member a bitmap.
13394 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
13395 (mark_replaceable): Likewise.
13396 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
13397 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
13398
ae2a9b00 133992009-04-27 Richard Guenther <rguenther@suse.de>
13400
13401 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
13402 (verify_stmts): Dispatch to gimple/type verification code.
13403 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
13404 issue with call argument types.
13405
3cac7f65 134062009-04-27 Michael Matz <matz@suse.de>
13407
13408 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
13409 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
13410 to above.
13411
075f6052 134122009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
afba4ec8 13413 Eric Botcazou <ebotcazou@adacore.com>
075f6052 13414
13415 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
13416 a label's basic block.
13417 (mark_target_live_regs): Tidy and rework obsolete comments.
13418 Change back DF problem to LIVE. If a label starts a basic block,
13419 assume that all registers that used to be live then still are.
13420 (init_resource_info): If a label starts a basic block, set its
13421 BLOCK_FOR_INSN accordingly.
13422 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
13423
ca80ffc8 134242009-04-27 Richard Guenther <rguenther@suse.de>
13425
13426 * tree-flow-inline.h (function_ann): Remove.
13427 (get_function_ann): Likewise.
13428 * tree-dfa.c (create_function_ann): Remove.
13429 * tree-flow.h (struct static_var_ann_d): Remove.
13430 (struct function_ann_d): Likewise.
13431 (union tree_ann_d): Remove fdecl member.
13432 (function_ann_t): Remove.
13433 (function_ann, get_function_ann, create_function_ann): Remove
13434 declarations.
13435
ff8e23a2 134362009-04-27 Uros Bizjak <ubizjak@gmail.com>
13437
13438 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
13439
df9b545b 134402009-04-27 Jan Hubicka <jh@suse.cz>
13441
13442 * ipa-pure-const.c (struct funct_state_d): New fields
13443 state_previously_known, looping_previously_known; remove
13444 state_set_in_source.
13445 (analyze_function): Use new fields.
13446 (propagate): Avoid assumption that state_set_in_source imply
13447 nonlooping.
13448
13449 * tree-ssa-loop-niter.c (finite_loop_p): New function.
13450 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
13451 * cfgloop.h (finite_loop_p): Declare.
13452
5cc6fc7d 134532009-04-26 Michael Matz <matz@suse.de>
13454
ff8e23a2 13455 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
5cc6fc7d 13456
96c15164 134572009-04-26 Michael Matz <matz@suse.de>
13458
13459 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
13460 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
13461 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
13462 pass_mark_used_blocks): Remove.
13463 * tree-optimize.c (pass_free_datastructures,
13464 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
13465 * passes.c (init_optimization_passes): Don't call
13466 pass_mark_used_blocks, remove dead code.
13467
4bbd1d82 134682009-04-26 H.J. Lu <hongjiu.lu@intel.com>
13469
13470 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
13471 * tree-ssa-live.h (register_ssa_partition): Likewise.
13472
a8dd994c 134732009-04-26 Michael Matz <matz@suse.de>
13474
13475 Expand from SSA.
13476 * builtins.c (fold_builtin_next_arg): Handle SSA names.
13477 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
13478 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
f6c8c8fc 13479 SSA names.
a8dd994c 13480 (compare_pairs): Swap cost comparison.
13481 (coalesce_ssa_name): Don't use change_partition_var.
13482 * tree-nrv.c (struct nrv_data): Add modified member.
13483 (finalize_nrv_r): Set it.
13484 (tree_nrv): Use it to update statements.
13485 (pass_nrv): Require PROP_ssa.
13486 * tree-mudflap.c (mf_decl_cache_locals,
13487 mf_build_check_statement_for): Use make_rename_temp.
13488 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
13489 * alias.c (find_base_decl): Handle SSA names.
13490 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
13491 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
13492 * rtl.h (set_reg_attrs_for_parm): Declare.
13493 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
13494 to "optimized", remove unused locals at finish.
13495 (execute_free_datastructures): Make global, call
13496 delete_tree_cfg_annotations.
13497 (execute_free_cfg_annotations): Don't call
13498 delete_tree_cfg_annotations.
13499
13500 * ssaexpand.h: New file.
13501 * expr.c (toplevel): Include ssaexpand.h.
ff8e23a2 13502 (expand_assignment): Handle SSA names the same as register variables.
a8dd994c 13503 (expand_expr_real_1): Expand SSA names.
13504 * cfgexpand.c (toplevel): Include ssaexpand.h.
13505 (SA): New global variable.
13506 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
13507 (SSAVAR): New macro.
13508 (set_rtl): New helper function.
13509 (add_stack_var): Deal with SSA names, use set_rtl.
13510 (expand_one_stack_var_at): Likewise.
13511 (expand_one_stack_var): Deal with SSA names.
13512 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
13513 before unique numbers.
13514 (expand_stack_vars): Use set_rtl.
13515 (expand_one_var): Accept SSA names, add asserts for them, feed them
13516 to above subroutines.
13517 (expand_used_vars): Expand all partitions (without default defs),
13518 then only the local decls (ignoring those expanded already).
13519 (expand_gimple_cond): Remove edges when jumpif() expands an
13520 unconditional jump.
13521 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
13522 or remove abnormal edges. Ignore insns setting the LHS of a TERed
13523 SSA name.
13524 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
13525 members of SA; deal with PARM_DECL partitions here; expand
13526 all PHI nodes, free tree datastructures and SA. Commit instructions
13527 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
13528 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
13529 info and statements at start, collect garbage at finish.
13530 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
13531 (VAR_ANN_PARTITION) Remove.
13532 (change_partition_var): Don't declare.
13533 (partition_to_var): Always return SSA names.
13534 (var_to_partition): Only accept SSA names.
13535 (register_ssa_partition): Only check argument.
13536 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
13537 member.
13538 (delete_var_map): Don't free it.
13539 (var_union): Only accept SSA names, simplify.
13540 (partition_view_init): Mark only useful SSA names as used.
13541 (partition_view_fini): Only deal with SSA names.
13542 (change_partition_var): Remove.
13543 (dump_var_map): Use ssa_name instead of partition_to_var member.
13544 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
13545 basic blocks.
13546 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
13547 (struct _elim_graph): New member const_dests; nodes member vector of
13548 ints.
13549 (set_location_for_edge): New static helper.
13550 (create_temp): Remove.
13551 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
ff8e23a2 13552 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
a8dd994c 13553 (new_elim_graph): Allocate const_dests member.
13554 (clean_elim_graph): Truncate const_dests member.
13555 (delete_elim_graph): Free const_dests member.
13556 (elim_graph_size): Adapt to new type of nodes member.
13557 (elim_graph_add_node): Likewise.
13558 (eliminate_name): Likewise.
13559 (eliminate_build): Don't take basic block argument, deal only with
13560 partition numbers, not variables.
13561 (get_temp_reg): New static helper.
13562 (elim_create): Use it, deal with RTL temporaries instead of trees.
13563 (eliminate_phi): Adjust all calls to new signature.
13564 (assign_vars, replace_use_variable, replace_def_variable): Remove.
13565 (rewrite_trees): Only do checking.
13566 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
13567 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
13568 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
13569 contains_tree_r, MAX_STMTS_IN_LATCH,
13570 process_single_block_loop_latch, analyze_edges_for_bb,
13571 perform_edge_inserts): Remove.
13572 (expand_phi_nodes): New global function.
13573 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
13574 functions, initialize new parameter, remember partitions having a
13575 default def.
13576 (finish_out_of_ssa): New global function.
13577 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
13578 don't reset in_ssa_p here, don't disable TER when mudflap.
13579 (pass_del_ssa): Remove.
13580 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
13581 partition members.
13582 (execute_free_datastructures): Declare.
13583 * Makefile.in (SSAEXPAND_H): New variable.
13584 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
13585 * basic-block.h (commit_one_edge_insertion): Declare.
13586 * passes.c (init_optimization_passes): Move pass_nrv and
13587 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
13588 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
13589 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
13590 (redirect_branch_edge): Deal with super block when expanding, split
13591 out jump patching itself into ...
13592 (patch_jump_insn): ... here, new static helper.
13593
0d3f8fd5 135942009-04-26 Michael Matz <matz@suse.de>
13595
13596 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
13597 beyond num_ssa_names.
13598 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
13599 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
13600
a1d07e97 136012009-04-26 Jakub Jelinek <jakub@redhat.com>
13602
abe2d6dd 13603 PR inline-asm/39543
13604 * fwprop.c (forward_propagate_asm): New function.
13605 (forward_propagate_and_simplify): Propagate also into __asm, if it
13606 doesn't increase the number of referenced registers.
13607
a1d07e97 13608 PR c/39889
13609 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
13610
136112009-04-26 Jakub Jelinek <jakub@redhat.com>
9579733e 13612
13613 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
13614 note_nonlocal_vla_type for nonlocal VLAs.
13615 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
13616 contains_remapped_vars, remap_vla_decls): New functions.
13617 (convert_nonlocal_reference_stmt): If not optimizing, call
13618 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
13619 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
13620 if it wasn't found in var_map.
13621 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
13622 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
13623 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
13624 declare_vars.
13625 * gimplify.c (nonlocal_vlas): New variable.
13626 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
13627 referenced VLAs.
13628 (gimplify_body): Create and destroy nonlocal_vlas.
1095d222 13629
1938132c 13630 * dwarf2out.c (loc_descr_plus_const): New function.
13631 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
13632 mem_loc_descriptor, loc_descriptor_from_tree_1,
13633 descr_info_loc, gen_variable_die): Use it.
13634
1095d222 13635 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
13636 !TREE_STATIC VAR_DECLs.
13637 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
13638 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
13639 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
13640 DECL_BY_REFERENCE is valid.
13641 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
13642 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
13643 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
13644 Copy DECL_BY_REFERENCE.
13645 (struct nesting_copy_body_data): New type.
13646 (nesting_copy_decl): New function.
13647 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
13648 if they have variable length.
13649
62bd61dd 136502009-04-26 Michael Matz <matz@suse.de>
13651
13652 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
13653 mark new temporaries for renaming.
13654
7fc1e5fb 136552009-04-26 Joseph Myers <joseph@codesourcery.com>
13656
13657 PR c/39581
13658 * c-decl.c (global_bindings_p): Return negative value.
13659 (c_variable_size): New. Based on variable_size from
13660 stor-layout.c.
13661 (grokdeclarator): Call c_variable_size not variable_size.
13662
cfc43899 136632009-04-26 Uros Bizjak <ubizjak@gmail.com>
13664
13665 * config/i386/i386.c (print_operand) ['z']: Fix typo.
13666
4d63ce54 136672009-04-26 Kai Tietz <kai.tietz@onevision.com>
13668
13669 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
13670 Redefine it to just use mingw/include.
13671 (ASM_SPEC): Rules for -m32 and -m64.
13672 (LINK_SPEC): Use Likewise.
13673 (SPEC_32): New define.
13674 (SPEC_64): Likewise.
13675 (SUB_LINK_SPEC): Likewise.
13676 (MULTILIB_DEFAULTS): New define.
13677 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
13678 Add multilib options.
13679 (MULTILIB_DIRNAMES): Likewise.
13680 (MULTILIB_OSDIRNAMES): Likewise.
13681 (LIBGCC): Likewise.
13682 (INSTALL_LIBGCC): Likewise.
13683
551ed71a 136842009-04-26 Joseph Myers <joseph@codesourcery.com>
13685
13686 PR c/39556
13687 * c-tree.h (enum c_inline_static_type): New.
13688 (record_inline_static): Declare.
13689 * c-decl.c (struct c_inline_static, c_inline_statics,
13690 record_inline_static, check_inline_statics): New.
13691 (pop_file_scope): Call check_inline_statics.
13692 (start_decl): Call record_inline_static instead of pedwarning
13693 directly for static in inline function.
13694 * c-typeck.c (build_external_ref): Call record_inline_static
13695 instead of pedwarning directly for static referenced in inline
13696 function.
13697
2e81afe5 136982009-04-26 Steven Bosscher <steven@gcc.gnu.org>
13699
13700 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
13701 not new but only being rescanned.
13702 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
13703 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
13704 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
13705 record_set_info, compute_set, grealloc): Remove.
13706 (recompute_all_luids): New function.
13707 (gcse_main): Don't compute sets, and don't do related memory
13708 allocations/free-ing. If something changed before the end of the
13709 pass, update LUIDs using recompute_all_luids.
13710 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
13711 (free_gcse_mem): Don't free it either.
13712 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
13713 Use the df insn LUIDs.
13714 (load_killed_in_block): Likewise.
13715 (compute_hash_table_work): Don't compute reg_set_in_block.
13716 (compute_transp): Use DF_REG_DEF_CHAINs.
13717 (local_cprop_pass): Don't use compute_sets and related functions.
13718 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
13719 Use get_max_uid() instead of max_cuid.
13720 (insert_insn_end_basic_block, pre_insert_copy_insn,
13721 update_ld_motion_stores): Don't try to
13722 keep reg_set tables up to date.
13723 (pre_insert_copies): Use df insn LUIDs.
13724 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
13725 (reg_set_info): Don't use extra bitmap argument.
13726 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
13727 information to compute regs_set_in_block.
13728 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
13729 (bypass_jumps): Don't use compute_sets and friends.
13730
b099e703 137312009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13732
13733 PR testsuite/39710
13734 * opts.c (undocumented_msg): Do not leave blank even with
13735 ENABLE_CHECKING.
13736
bcb531e5 137372009-04-25 Joseph Myers <joseph@codesourcery.com>
13738
13739 * c-decl.c (build_enumerator): Allow values folding to integer
13740 constants but not integer constant expressions with a pedwarn if
13741 pedantic.
13742
e8074982 137432009-04-25 Joseph Myers <joseph@codesourcery.com>
13744
13745 PR c/39582
13746 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
13747 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
13748 type is an integer constant.
13749
f047dd27 137502009-04-25 Uros Bizjak <ubizjak@gmail.com>
13751
13752 PR target/39897
13753 * config/i386/i386.c (print_operand) ['z']: Revert handling of
13754 HImode operands.
13755
1d9b9611 137562009-04-25 Joseph Myers <joseph@codesourcery.com>
13757
13758 PR c/39564
13759 * c-decl.c (grokdeclarator): Diagnose declarations of functions
13760 with variably modified return type and no storage class
13761 specifiers, except for the case of nested functions. Distinguish
13762 extern declarations of functions with variably modified return
13763 types from those of objects with variably modified types.
13764
927a6b6b 137652009-04-25 Jan Hubicka <jh@suse.cz>
13766
13767 * tree.c (list_equal_p): New function.
13768 * tree.h (list_equal_p): Declare.
13769 * coretypes.h (edge_def, edge, const_edge, basic_block_def
13770 basic_block_def, basic_block, const_basic_block): New.
13771 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
13772 (redirect_eh_edge): New function.
13773 (make_eh_edge_update_phi): EH edges are not abnormal.
13774 * except.c: Include tree-flow.h.
13775 (list_match): New function.
13776 (eh_region_replaceable_by_p): New function.
13777 (replace_region): New function.
13778 (hash_type_list): New function.
13779 (hash_eh_region): New function.
13780 (eh_regions_equal_p): New function.
13781 (merge_peers): New function.
13782 (remove_unreachable_regions): Verify EH tree when checking;
13783 merge peers.
13784 (copy_eh_region_1): New function.
13785 (copy_eh_region): New function.
13786 (push_reachable_handler): New function.
13787 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
13788 regions without label but with live RESX.
13789 * except.h (redirect_eh_edge_to_label): New.
13790 * tree-flow.h (redirect_eh_edge): New.
13791 * coretypes.h (edge_def, edge, const_edge, basic_block_def
13792 basic_block_def, basic_block, const_basic_block): Remove.
13793 * Makefile.in (except.o): Add dependency on tree-flow.h
13794 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
13795 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
13796 Remove.
13797
6a4da2cd 137982009-04-25 Eric Botcazou <ebotcazou@adacore.com>
13799
13800 PR bootstrap/39645
13801 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
13802 on the destination of memcpy.
13803
d5bfc154 138042009-04-25 Paolo Bonzini <bonzini@gnu.org>
13805
13806 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
13807 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
13808 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
13809
3d1eacdb 138102009-04-25 Jan Hubicka <jh@suse.cz>
13811
13812 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
13813 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
13814 to be reached by different label than left.
13815 (update_eh_edges): Update comment; remove edge_to_remove if possible
13816 and return true if suceeded.
13817 (cleanup_empty_eh): Accept sharing map; handle shared regions.
13818 (cleanup_eh): Compute sharing map.
13819 * except.c (remove_eh_handler_and_replace): Add argument if we should
13820 update regions.
13821 (remove_unreachable_regions): Update for label sharing.
13822 (label_to_region_map): Likewise.
13823 (get_next_region_sharing_label): New function.
13824 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
13825 prev_try pointers.
13826 (remove_eh_handler): Update.
13827 (remove_eh_region_and_replace_by_outer_of): New function.
13828 * except.h (struct eh_region): Add next_region_sharing_label.
13829 (remove_eh_region_and_replace_by_outer_of,
13830 get_next_region_sharing_label): Declare.
13831 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
13832
138332009-04-25 Jan Hubicka <jh@suse.cz>
13834
13835 * tree-cfg.c (split_critical_edges): Split also edges where we can't
13836 insert code even if they are not critical.
13837
138382009-04-25 Jan Hubicka <jh@suse.cz>
13839
13840 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
13841 (gimple_can_remove_branch_p): EH edges won't remove branch by
13842 redirection.
13843 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
13844 updating of non-abnormal EH edges.
13845 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
13846 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
13847 (split_critical_edges): Split also edges where emitting code on them
13848 will lead to splitting later.
13849
6cc62ffa 138502009-04-25 Uros Bizjak <ubizjak@gmail.com>
13851 H.J. Lu <hongjiu.lu@intel.com>
13852
13853 PR target/39590
13854 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
13855 the configured assembler supports fildq and fistpq mnemonics.
13856 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
13857 * configure: Regenerated.
13858 * config.in: Ditto.
13859
13860 * config/i386/i386.c (print_operand): Handle 'Z'.
13861 ['z']: Remove handling of special fild/fist suffixes.
13862 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
13863 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
13864 suffix of fild insn.
13865 (*floatsi<mode>2_vector_mixed): Ditto.
13866 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
13867 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
13868 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
13869 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
13870 * config/i386/gas.h (GAS_MNEMONICS): Remove.
13871
84e907aa 138722009-04-25 Ben Elliston <bje@au.ibm.com>
f6c8c8fc 13873
84e907aa 13874 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
13875 the source of a set operation.
13876
906bb5c3 138772009-04-25 Anatoly Sokolov <aesok@post.ru>
13878
13879 * target.h (struct gcc_target): Add case_values_threshold field.
13880 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
13881 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
13882 * targhooks.c (default_case_values_threshold): New function.
13883 * targhooks.h (default_case_values_threshold): Declare function.
13884 * stmt.c (expand_case): Use case_values_threshold target hook.
13885 * expr.h (case_values_threshold): Remove declartation.
13886 * expr.c (case_values_threshold): Remove function.
13887 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
13888
13889 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
13890 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
13891 (avr_case_values_threshold): Declare as static.
13892 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
13893
13894 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
13895 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
13896 (mn10300_case_values_threshold): New function.
13897
65123d77 138982009-04-24 H.J. Lu <hongjiu.lu@intel.com>
13899
13900 * ira.c (setup_cover_and_important_classes): Add enum cast.
13901
abcb15b5 139022009-04-24 Vladimir Makarov <vmakarov@redhat.com>
13903
13904 * genpreds.c (write_enum_constraint_num): Output definition of
13905 CONSTRAINT_NUM_DEFINED_P macro.
13906 * ira.c (setup_cover_and_important_classes): Use
13907 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
f6c8c8fc 13908
d14bd725 139092009-04-24 DJ Delorie <dj@redhat.com>
13910
13911 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
13912 __SH2A_SINGLE_ONLY__ also.
13913
e41d35a8 139142009-04-24 Steve Ellcey <sje@cup.hp.com>
13915
13916 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
13917 (movdf_internal): Ditto.
13918 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
13919 SFmode and DFmode constants.
13920 (ia64_print_operand): Add 'G' format for printing
13921 floating point constants.
13922
458e27ec 139232009-04-24 Richard Guenther <rguenther@suse.de>
13924
13925 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
13926 from unsigned additions.
13927
88c32270 139282009-04-24 Joseph Myers <joseph@codesourcery.com>
13929
13930 * c-typeck.c (set_init_index): Allow array designators that are
13931 not integer constant expressions with a pedwarn if pedantic.
13932
c79d4a4d 139332009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
13934
13935 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
13936 zero if no overlap in nonzero bits between the operands.
13937
8458f4ca 139382009-04-24 Ian Lance Taylor <iant@google.com>
13939
13940 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
13941 (record_dead_and_set_regs): Likewise.
13942 * df.h (struct df_mw_hardreg): Change flags field to int.
13943 (struct df_base_ref): Likewise.
13944 (struct df): Change changeable_flags field to int.
13945 * df-scan.c (df_defs_record): Change clobber_flags to int.
13946 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
13947 constants rather than #define macros.
13948 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
13949 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
13950 (enum dwarf_calling_convention): Likewise.
13951 (enum dwarf_line_number_x_ops): Likewise.
13952 (enum dwarf_call_frame_info): Likewise.
13953 (enum dwarf_source_language): Likewise.
13954 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
13955 (add_calling_convention_attribute): Likewise.
6cc62ffa 13956 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
13957 (combine_comparisons): Change compcode to int. Add cast to enum type.
8458f4ca 13958 * genrecog.c (maybe_both_true_2): Change c to int.
13959 (write_switch): Likewise. Add cast to enum type.
13960 * gimplify.c (gimplify_omp_for): Handle return values from
13961 gimplify_expr using MIN rather than bitwise or.
13962 (gimplify_expr): Add cast to enum type.
13963 * ipa-prop.c (update_jump_functions_after_inlining): Change
13964 IPA_BOTTOM to IPA_JF_UNKNOWN.
6cc62ffa 13965 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
13966 Add casts to enum type.
8458f4ca 13967 (setup_cover_and_important_classes): Change cl to int. Add casts
13968 to enum type.
13969 (setup_class_translate): Change cl and mode to int.
13970 (ira_init_once): Change mode to int.
13971 (free_register_move_costs): Likewise.
13972 (setup_prohibited_mode_move_regs): Add casts to enum type.
13973 * langhooks.c (add_builtin_function_common): Rework assertion that
13974 value fits bitfield.
13975 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
13976 * omega.c (omega_do_elimination): Avoid math on enum types.
13977 * optabs.c (expand_vec_shift_expr): Remove casts to int.
13978 * opts.c (set_debug_level): Change 2 to enum constant. Use new
13979 int local to handle integral_argment value.
13980 * regmove.c (try_auto_increment): Change PUT_MODE to
13981 PUT_REG_NOTE_KIND.
13982 * reload.c (push_secondary_reload): Add casts to enum type.
13983 (secondary_reload_class, find_valid_class): Likewise.
13984 * reload1.c (emit_input_reload_insns): Likewise.
13985 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
13986 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
13987 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
13988 constant.
13989 * tree.c (build_common_builtin_nodes): Add casts to enum type.
13990 * tree-complex.c (complex_lattice_t): Typedef to int rather than
13991 enum type.
13992 (expand_complex_libcall): Add casts to enum type.
13993 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
13994 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
13995 with ERROR_MARK, not NUM_TREE_CODES.
13996 (vect_create_epilog_for_reduction): Likewise.
13997 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
6cc62ffa 13998 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
8458f4ca 13999 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
14000 enum machine_mode.
14001 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
14002 vect_unused_in_loop. Change 0 to loop_vect.
6cc62ffa 14003 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
8458f4ca 14004 * var-tracking.c (get_init_value): Change return type to enum
14005 var_init_status.
14006 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
14007 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
14008 arm_fp_model.
14009 (arm_override_options): Add casts to enum type.
14010 (arm_emit_tls_decoration): Likewise.
14011 * config/i386/i386.c (ix86_function_specific_restore): Add casts
14012 to enum type.
14013 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
14014 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
14015 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
14016 enum type.
14017 * config/s390/s390.c (code_for_builtin_64): Change to array of
14018 enum insn_code.
14019 (code_for_builtin_31): Likewise.
14020 (s390_expand_builtin): Change code_for_builtin to enum insn_code
14021 const *.
14022 * config/sparc/sparc.c (sparc_override_options): Change value
14023 field in struct code_model to enum cmodel. In initializer change
14024 0 to NULL and add cast to enum type.
14025
14026 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
14027 Change all callers. Issue a -Wc++-compat warning using
14028 lhs_origtype if necessary.
14029 (convert_for_assignment): Issue -Wc++-compat warnings about
14030 invalid conversions to enum type on assignment.
14031 * c-common.h (build_modify_expr): Update declaration.
14032
32e5e2b7 140332009-04-24 Nick Clifton <nickc@redhat.com>
14034
14035 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
14036 (function_arg_advance): Likewise.
14037 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
14038 5th alternative.
14039
99908681 140402009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
14041
14042 * config/s390/constraints.md ('I', 'J'): Fix condition.
14043
2cf7126c 140442009-04-24 Diego Novillo <dnovillo@google.com>
14045
14046 * gengtype-parse.c (parse_error): Add newline after message.
14047
e69a64d3 140482009-04-24 H.J. Lu <hongjiu.lu@intel.com>
14049
14050 * config/i386/sse.md (avxmodesuffixs): Removed.
14051 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
14052 (*avx_pinsr<ssevecsize>): This.
14053
3a40262c 140542009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
14055
14056 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
14057 follow chains of regs with a single definition, and allow expressions
14058 that are function_invariant_p.
cf36214f 14059 (simple_rhs_p): Allow expressions that are function_invariant_p.
3a40262c 14060
00211027 140612009-04-24 Paolo Bonzini <bonzini@gnu.org>
14062
14063 PR middle-end/39867
14064 * fold-const.c (fold_cond_expr_with_comparison): When folding
14065 > and >= to MAX, make sure the MAX uses the same type as the
14066 comparison's operands.
14067
8a88222e 140682009-04-24 Nick Clifton <nickc@redhat.com>
14069
14070 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
14071 addressing for DImode accesses.
14072 (frv_print_operand_address): Handle PLUS case.
6cc62ffa 14073 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8a88222e 14074
82d2c88b 140752009-04-24 Jakub Jelinek <jakub@redhat.com>
14076
14077 PR rtl-optimization/39794
14078 * alias.c (canon_true_dependence): Add x_addr argument.
14079 * rtl.h (canon_true_dependence): Adjust prototype.
14080 * cse.c (check_dependence): Adjust canon_true_dependence callers.
14081 * cselib.c (cselib_invalidate_mem): Likewise.
14082 * gcse.c (compute_transp): Likewise.
14083 * dse.c (scan_reads_nospill): Likewise.
14084 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
14085 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
14086 canon_base_addr of the group, plus optional offset.
14087 (struct group_info): Rename canon_base_mem to
14088 canon_base_addr.
14089 (get_group_info): Set canon_base_addr to canon_rtx of base, not
14090 canon_rtx of base_mem.
14091
670db79f 140922009-04-23 Paolo Bonzini <bonzini@gnu.org>
14093
14094 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
14095 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
14096
c2233b46 140972009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14098
14099 * config/spu/spu-builtins.h: Delete file.
14100
14101 * config/spu/spu.h (enum spu_builtin_type): Move here from
14102 spu-builtins.h.
14103 (struct spu_builtin_description): Likewise. Add GTY marker.
14104 Do not use enum spu_function_code or enum insn_code.
14105 (spu_builtins): Add extern declaration.
14106
14107 * config/spu/spu.c: Do not include "spu-builtins.h".
14108 (enum spu_function_code, enum spu_builtin_type_index,
14109 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
14110 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
14111 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
14112 unsigned_V2DI_type_node): Move here from spu-builtins.h.
14113 (spu_builtin_types): Make static. Add GTY marker.
14114 (spu_builtins): Add extern declaration with GTY marker.
14115 Include "gt-spu.h".
14116
14117 * config/spu/spu-c.c: Do not include "spu-builtins.h".
14118 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
14119 Check programmatically whether all parameters are scalar.
14120
14121 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
14122
7fd3f504 141232009-04-23 Eric Botcazou <ebotcazou@adacore.com>
14124
14125 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
14126 assignment from the constructor either if the target is volatile.
14127
3f8fde42 141282009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
14129
14130 * config/arm/arm.md (insv): Do not share operands[0].
14131
6aa0a859 141322009-04-23 Nathan Sidwell <nathan@codesourcery.com>
14133
14134 * config/vxlib-tls.c (active_tls_threads): Delete.
14135 (delete_hook_installed): New.
14136 (tls_delete_hook): Don't delete the delete hook.
14137 (tls_destructor): Delete it here.
14138 (__gthread_set_specific): Adjust installing the delete hook.
14139 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
14140 __gthread_leave_tsd_dtor_context.
14141
4043967f 141422009-04-23 Rafael Avila de Espindola <espindola@google.com>
14143
14144 * c-format.c (gcc_tdiag_char_table): Add support for %E.
14145
0a48089c 141462009-04-23 Uros Bizjak <ubizjak@gmail.com>
14147
14148 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
14149 enum type.
14150 (alpha_rtx_costs): Ditto.
14151 (emit_unlikely_jump): Use add_reg_note.
14152 (emit_frame_store_1): Ditto.
14153 (alpha_expand_prologue): Ditto.
14154 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
14155 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
14156
5027f179 141572009-04-23 Nick Clifton <nickc@redhat.com>
14158
14159 * config/v850/v850.md (epilogue): Remove suppressed code.
14160 (return): Rename to return_simple and remove test of frame size.
14161 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
14162 to gen_return_simple.
14163
f7eacde3 141642009-04-22 Jing Yu <jingyu@google.com>
14165
14166 PR testsuite/39781
14167 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
14168
415528ef 141692009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
14170
14171 PR C/31499
14172 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
14173 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
14174 value is a VECTOR_CST, the element type is the element type of the
14175 vector.
14176
146d70e9 141772009-04-22 DJ Delorie <dj@redhat.com>
14178
14179 * config/m32c/m32c.h: Update GTY annotations to new syntax.
14180
a7cf5bbf 141812009-04-22 Jakub Jelinek <jakub@redhat.com>
14182
14183 * alias.c (find_base_term): Move around LO_SUM case, so that
14184 CONST falls through into PLUS/MINUS handling.
14185
4377e55f 14186 PR c/39855
14187 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
14188 into 0, use omit_one_operand.
14189
6632aeb5 141902009-04-23 Ben Elliston <bje@au.ibm.com>
14191
14192 * config/rs6000/linux-unwind.h (get_regs): Remove type
14193 puns. Change the type of `pc' to an array of unsigned ints and
14194 update all users. Constify frame24.
14195
6276c4d1 141962009-04-22 DJ Delorie <dj@redhat.com>
14197
14198 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
14199 declarations before code.
14200 (current_function_special_page_vector): Likewise.
14201 (m32c_expand_insv): Silence a warning.
14202
943327c1 142032009-04-21 Taras Glek <tglek@mozilla.com>
fb1e4f4a 14204
14205 * alias.c: Update GTY annotations to new syntax.
14206 * basic-block.h: Likewise.
14207 * bitmap.h: Likewise.
14208 * c-common.h: Likewise.
14209 * c-decl.c: Likewise.
14210 * c-parser.c: Likewise.
14211 * c-pragma.c: Likewise.
14212 * c-tree.h: Likewise.
14213 * cfgloop.h: Likewise.
14214 * cgraph.h: Likewise.
14215 * config/alpha/alpha.c: Likewise.
14216 * config/arm/arm.h: Likewise.
14217 * config/avr/avr.h: Likewise.
14218 * config/bfin/bfin.c: Likewise.
14219 * config/cris/cris.c: Likewise.
14220 * config/darwin.c: Likewise.
14221 * config/frv/frv.c: Likewise.
14222 * config/i386/i386.c: Likewise.
14223 * config/i386/i386.h: Likewise.
14224 * config/i386/winnt.c: Likewise.
14225 * config/ia64/ia64.h: Likewise.
14226 * config/iq2000/iq2000.c: Likewise.
14227 * config/mips/mips.c: Likewise.
14228 * config/mmix/mmix.h: Likewise.
14229 * config/pa/pa.c: Likewise.
14230 * config/pa/pa.h: Likewise.
14231 * config/rs6000/rs6000.c: Likewise.
14232 * config/s390/s390.c: Likewise.
14233 * config/sparc/sparc.c: Likewise.
14234 * config/xtensa/xtensa.c: Likewise.
14235 * cselib.h: Likewise.
14236 * dbxout.c: Likewise.
14237 * dwarf2out.c: Likewise.
14238 * except.c: Likewise.
14239 * except.h: Likewise.
14240 * fixed-value.h: Likewise.
14241 * function.c: Likewise.
14242 * function.h: Likewise.
14243 * gimple.h: Likewise.
14244 * integrate.c: Likewise.
14245 * optabs.c: Likewise.
14246 * output.h: Likewise.
14247 * real.h: Likewise.
14248 * rtl.h: Likewise.
14249 * stringpool.c: Likewise.
14250 * tree-data-ref.c: Likewise.
14251 * tree-flow.h: Likewise.
14252 * tree-scalar-evolution.c: Likewise.
14253 * tree-ssa-address.c: Likewise.
14254 * tree-ssa-alias.h: Likewise.
14255 * tree-ssa-operands.h: Likewise.
14256 * tree.c: Likewise.
14257 * tree.h: Likewise.
14258 * varasm.c: Likewise.
14259 * varray.h: Likewise.
14260 * vec.h: Likewise.
0a48089c 14261 * coretypes.h: Do not define GTY macro if it is already defined.
fb1e4f4a 14262 * doc/gty.texi: Update GTY documentation to new syntax.
14263 * gengtype-lex.l: Enforce attribute-like syntax for GTY
14264 annotations on structs.
14265 * gengtype-parse.c: Likewise.
14266
57187d90 142672009-04-22 Mark Heffernan <meheff@google.com>
14268
0a48089c 14269 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
57187d90 14270
30505192 142712009-04-22 Kazu Hirata <kazu@codesourcery.com>
14272
14273 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
14274 where appropriate.
14275
922878f2 142762009-04-22 Kazu Hirata <kazu@codesourcery.com>
14277
14278 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
14279 the same as a PLUS without a shift. Increase the cost of a
14280 CONST_INT in MULT.
14281
86931af8 142822009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14283
14284 * Makefile.in: Update dependencies.
0a48089c 14285 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
86931af8 14286 * errors.h: Remove bogus comment about compatibility.
14287 (warning): Update declaration.
14288 * genautomata.c: Update all calls to warning.
14289 * gimple.c: Do not include errors.h. Include toplev.h.
14290 * tree-ssa-structalias.c: Do not include errors.h.
14291 * omega.c: Likewise.
14292 * tree-ssa-reassoc.c: Likewise.
14293 * config/spu/spu-c.c: Likewise.
14294 * config/spu/t-spu-elf: Update dependencies.
14295
65c463fd 142962009-04-22 Richard Guenther <rguenther@suse.de>
14297
14298 PR tree-optimization/39824
14299 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
14300 make sure the types are compatible.
14301
ba99525e 143022009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14303
14304 PR c++/14875
14305 * c-common.c (c_parse_error): Take a token_flags parameter.
14306 Use token_type for the token type instead.
14307 Pass token_flags to cpp_type2name.
14308 * c-common.h (c_parse_error): Update declaration.
14309 * c-parser.c (c_parser_error): Pass 0 as token flags.
14310
a7dc303d 143112009-04-22 Andrey Belevantsev <abel@ispras.ru>
14312
14313 PR rtl-optimization/39580
f6c8c8fc 14314 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
14315
b2ee26d5 143162009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14317
14318 * function.c (expand_function_end): Do not emit a jump to the "naked"
14319 return label for fall-through returns.
14320 * except.c (sjlj_emit_function_exit): Always place the call to the
14321 unregister function at the location installed by expand_function_end.
14322
51836a0c 143232009-04-22 Richard Guenther <rguenther@suse.de>
14324
14325 PR tree-optimization/39845
14326 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
14327 (gen_inbound_check): Likewise.
14328
00159b45 143292009-04-22 Nathan Sidwell <nathan@codesourcery.com>
14330
14331 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
14332 padding for PPC.
14333 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
14334 * config/vxlib.c (__gthread_once): Add race guard for PPC.
14335
adb906e2 143362009-04-22 Paolo Bonzini <bonzini@gnu.org>
14337
14338 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
14339 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
14340 shift counts to avoid out-of-bounds array accesses.
14341
57a9e496 143422009-04-22 Paolo Bonzini <bonzini@gnu.org>
14343
14344 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
14345 (Pmode): Move above.
14346
c933fb42 143472009-04-22 Uros Bizjak <ubizjak@gmail.com>
14348
14349 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
14350 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
14351 GET_CODE macro. Use IN_RANGE macro where appropriate.
14352 * config/alpha/alpha.h: Ditto.
14353 * config/alpha/alpha.md: Ditto.
14354 * config/alpha/constraints.md: Ditto.
14355 * config/alpha/predicates.md: Ditto.
f6c8c8fc 14356
91e9f690 143572009-04-22 Paolo Bonzini <bonzini@gnu.org>
14358
14359 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
14360 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14361 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14362 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14363 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14364 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14365 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14366 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14367 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14368 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14369 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14370 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14371 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14372 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14373 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14374 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14375 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14376 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14377 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14378 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14379 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14380 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14381 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14382 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14383 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14384 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14385 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
14386
2ea77971 143872009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
14388
14389 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
14390 references from comments.
14391 * cfgbuild.c: (count_basic_blocks): Delete.
14392 (find_basic_blocks_1): Delete.
14393 (find_basic_blocks): Delete.
14394 * except.c (finish_eh_generation): Make static. Move comment from
c933fb42 14395 except.h here. Remove find_basic_blocks references from comments.
2ea77971 14396 * except.h (finish_eh_generation): Delete.
14397 * basic-block.h (find_basic_blocks): Delete.
14398 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
14399
46b5e7dc 144002009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
14401
14402 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
14403 (sdbout_parms): Likewise.
14404
6f2543f8 144052009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
14406
14407 * config/sh/sh.c (prepare_cbranch_operands): Use
14408 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
14409 (expand_cbranchdi4): Likewise.
14410 (from_compare): Add cast to enum type.
14411 (expand_cbranchsi4): Use add_reg_note.
14412 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
14413 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
14414 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
14415 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
14416 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
14417 instead of CODE_FOR_nothing.
14418 (cbranchdi4): Likewise. Fix the order of arguments for
14419 gen_rtx_fmt_ee.
14420 (push_fpscr): Use add_reg_note.
14421 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
14422 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
f6c8c8fc 14423
7dfbd804 144242009-04-21 Joseph Myers <joseph@codesourcery.com>
14425
14426 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
14427 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
14428 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
14429 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
14430 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
14431 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
14432 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
14433 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
14434 config/alpha/x-vms, config/arc/t-arc,
14435 config/arm/README-interworking, config/arm/arm-c.c,
14436 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
14437 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
14438 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
14439 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
14440 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
14441 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
14442 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
14443 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
14444 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
14445 config/cris/t-elfmulti, config/crx/t-crx,
14446 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
14447 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
14448 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
14449 config/h8300/t-h8300, config/i386/athlon.md,
14450 config/i386/darwin-libgcc.10.4.ver,
14451 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
14452 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
14453 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
14454 config/i386/t-linux64, config/i386/t-nwld,
14455 config/i386/t-rtems-i386, config/i386/t-sol2-10,
14456 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
14457 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
14458 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
14459 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
14460 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
14461 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
14462 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
14463 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
14464 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
14465 config/m68k/t-uclinux, config/mcore/t-mcore,
14466 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
14467 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
14468 config/mips/crtn.asm, config/mips/irix-crti.asm,
14469 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
14470 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
14471 config/mips/mips-fixed.md, config/mips/sb1.md,
14472 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
14473 config/mips/t-iris6, config/mips/t-isa3264,
14474 config/mips/t-libgcc-mips16, config/mips/t-linux64,
14475 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
14476 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
14477 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
14478 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
14479 config/mn10300/t-linux, config/mn10300/t-mn10300,
14480 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
14481 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
14482 config/picochip/libgccExtras/clzsi2.asm,
14483 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
14484 config/rs6000/darwin-libgcc.10.4.ver,
14485 config/rs6000/darwin-libgcc.10.5.ver,
14486 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
14487 config/rs6000/t-aix43, config/rs6000/t-aix52,
14488 config/rs6000/t-darwin, config/rs6000/t-fprules,
14489 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
14490 config/rs6000/t-lynx, config/rs6000/t-netbsd,
14491 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
14492 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
14493 config/rs6000/t-rtems, config/rs6000/t-spe,
14494 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
14495 config/score/t-score-elf, config/sh/divcost-analysis,
14496 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
14497 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
14498 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
14499 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
14500 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
14501 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
14502 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
14503 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
14504 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
14505 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
14506 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
14507 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
14508 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
14509 limitx.h, version.c, xcoff.h: Add copyright and license notices.
14510 * config/h8300/genmova.sh: Include copyright and license notices
14511 in generated output.
14512 * config/h8300/mova.md: Regenerate.
14513 * doc/install.texi2html: Include word "Copyright" in copyright
14514 notice and use name "Free Software Foundation, Inc.".
14515 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
14516 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
14517 ChangeLog-2007, ChangeLog-2008: Correct dates.
14518
43158006 145192009-04-21 Eric Botcazou <ebotcazou@adacore.com>
14520
14521 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
14522 NE_EXPR operations as well.
14523 * c-parser.c (c_parser_condition): Do not set location information on
14524 the condition.
14525 (c_parser_conditional_expression): Likewise.
14526 (c_parser_binary_expression): Set location information on operators.
14527 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
14528 TRUTH_NOT_EXPR has been folded.
14529 * fold-const.c (fold_truth_not_expr): Copy location information from
14530 the incoming expression to the outgoing one.
14531 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
14532 recursive calls on the LHS of the operator but pass that of the
14533 operator to recursive calls on the RHS of the operator. Set it
14534 on the COND_EXPR.
14535 (shortcut_cond_expr): Set the locus of the operator on the second
14536 COND_EXPR and that of the expression on the first in degenerate cases.
14537 Pass the locus of the expression to calls to shortcut_cond_r.
14538 Set the locus of the 'then' block on the associated jump, if any.
14539 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
14540 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
14541 expression to call to gimplify_boolean_expr.
14542
72f432d4 145432009-04-21 Kai Tietz <kai.tietz@onevision.com>
14544
14545 * config.gcc: Add additional configuration for
14546 i686-w64-mingw* and x86_64-w64-mingw* triplet.
14547 * config/i386/mingw-w64.h: New mingw-w64 specific header.
14548 (CPP_SPEC): Redefine for allowing -municode option.
14549 (STARTFILE_SPEC): Likewise.
14550 * config/i386/t-mingw-w64: New.
14551 * config/i386/mingw-w64.opt: New.
14552 (municode): Add new target option.
14553 * doc/invoke.texi (municode): Add documentation for new option.
14554
da84efc1 145552009-04-21 Ian Lance Taylor <iant@google.com>
14556
14557 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14558 Correct test for number of arguments.
14559 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
14560
89871bab 145612009-04-21 Andreas Schwab <schwab@linux-m68k.org>
14562
14563 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
14564 argument of emit_library_call.
14565
be1b4133 145662009-04-21 Richard Guenther <rguenther@suse.de>
14567
14568 PR middle-end/39829
14569 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
14570 inside VIEW_CONVERT_EXPRs.
14571
f6ac75a7 145722009-04-21 Martin Jambor <mjambor@suse.cz>
14573
14574 * tree-switch-conversion.c (build_constructors): Split a long line.
14575 (constructor_contains_same_values_p): New function.
c933fb42 14576 (build_one_array): Create assigns of constants if possible, do not
14577 call mark_sym_for_renaming, call update_stmt.
f6ac75a7 14578 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
14579 make_rename_temp. Do not call mark_symbols_for_renaming, call
14580 update_stmt.
14581 (gen_def_assigns): Do not call mark_symbols_for_renaming or
14582 find_new_referenced_vars, call update_stmt.
14583 (gen_inbound_check): Use create_tmp_var and create ssa names manually
14584 instead of calling make_rename_temp. Do not call
14585 find_new_referenced_vars or mark_symbols_for_renaming, call
14586 update_stmt.
14587
80a26b8b 145882009-04-21 Richard Guenther <rguenther@suse.de>
14589
14590 PR tree-optimization/39827
c933fb42 14591 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
80a26b8b 14592 (tree_ssa_phiprop): Pass the correct array size.
14593
8734914d 145942009-04-21 Uros Bizjak <ubizjak@gmail.com>
14595
14596 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
14597
79973b57 145982009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
14599
14600 PR 16202
14601 * c-typeck.c (lvalue_p): Move declaration ...
14602 * c-common.h (lvalue_p): ... to here.
14603 * c-common.c (candidate_equal_p): New.
14604 (add_tlist): Use it.
14605 (merge_tlist): Use it.
14606 (warn_for_collisions_1): Likewise.
14607 (warning_candidate_p): Accept more candidates.
14608 (verify_tree): A warning candidate can be an expression. Use
14609 candidate_equal_p.
14610
e1483f71 146112009-04-21 Ben Elliston <bje@au.ibm.com>
14612
14613 PR target/5267
14614 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
14615 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
14616 options. Remove -mcall-solaris documentation.
14617
9ab71c6b 146182009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14619
14620 PR c++/13358
14621 * doc/invoke.texi (-Wlong-long): Update description.
14622 * c-lex (interpret_integer): Only warn if there was no previous
14623 overflow and -Wlong-long is enabled.
14624 * c-decl.c (declspecs_add_type): Drop redundant flags.
14625 * c.opt (Wlong-long): Init to -1.
14626 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
14627 and front-end warn_long_long. Wlong-long only depends on other
14628 flags if it is uninitialized.
14629 * c-parser.c (disable_extension_diagnostics): warn_long_long is
14630 the same for CPP and FE.
14631 (restore_extension_diagnostics): Likewise.
14632
b9c74b4d 146332009-04-20 Ian Lance Taylor <iant@google.com>
14634
14635 Fix enum conversions which are invalid in C++:
8734914d 14636 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
14637 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 14638 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
14639 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
8734914d 14640 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
b9c74b4d 14641 (dbxout_parms): Likewise.
8734914d 14642 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
b9c74b4d 14643 (df_clear_flags): Likewise.
14644 * df-problems.c (df_rd_bb_local_compute_process_def): Change
14645 top_flag parameter to int.
14646 (df_chain_create_bb_process_use): Likewise.
8734914d 14647 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
14648 Remove cast.
b9c74b4d 14649 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
14650 (df_ref_create_structure, df_def_record_1): Likewise.
14651 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
14652 (df_notes_rescan): Change 0 to VOIDmode in function call.
14653 (df_get_call_refs, df_insn_refs_collect): Likewise.
14654 (df_bb_regs_collect): Likewise.
14655 (df_entry_block_defs_collect): Likewise.
14656 (df_exit_block_uses_collect): Likewise.
14657 * df.h: Update declarations.
14658 * double-int.c (double_int_divmod): Add cast to enum type.
14659 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
14660 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
14661 (based_loc_descr): Likewise.
14662 (loc_descriptor_from_tree_1): Change first_op and second_op to
14663 enum dwarf_location_atom. Add cast to enum type.
14664 * expmed.c (init_expmed): Change 0 to SET in function call.
8734914d 14665 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
b9c74b4d 14666 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
14667 (do_store_flag): Likewise.
14668 * fixed-value.h (struct fixed_value): Change mode to enum
14669 machine_mode.
8734914d 14670 * function.c (assign_parms): Change 0 to VOIDmode in function call.
b9c74b4d 14671 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
14672 function call.
14673 (insert_insn_decl, insert_decl, insert_state): Likewise.
14674 (automata_list_finish): Likewise.
14675 * genrecog.c (process_define_predicate): Add cast to enum type.
14676 * gensupport.c (init_predicate_table): Add cast to enum type.
14677 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
14678 function call.
14679 (gimple_build_call_1, gimple_build_label): Likewise.
14680 (gimple_build_goto, gimple_build_asm_1): Likewise.
14681 (gimple_build_switch_1, gimple_build_cdt): Likewise.
8734914d 14682 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
b9c74b4d 14683 (enum fallback): Rename from enum fallback_t.
14684 (fallback_t): Typedef as int.
14685 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
14686 GSI_SAME_STMT in function call.
14687 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
14688 enum type.
14689 (setup_reg_class_relations): Likewise.
8734914d 14690 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
b9c74b4d 14691 (setup_prohibited_class_mode_regs): Add cast to enum type.
14692 (setup_prohibited_mode_move_regs): Likewise.
8734914d 14693 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
b9c74b4d 14694 (record_address_regs): Change i to enum reg_class.
14695 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
14696 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
14697 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
14698 (GET_MODE_2XWIDER_MODE): Likewise.
14699 (GET_CLASS_NARROWEST_MODE): Likewise.
14700 * omp-low.c (expand_omp_for): Add cast to enum type.
14701 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
14702 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
14703 * postreload.c (reload_cse_simplify_operands): Change rclass local
14704 to enum reg_class.
14705 * predict.c (combine_predictions_for_insn): Change best_predictor
14706 and predictor to enum br_predictor.
14707 (combine_predictions_for_bb): Likewise.
14708 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
14709 use SET_PREDICT_EXPR_OUTCOME.
8734914d 14710 * real.c (real_arithmetic): Change icode to code in function call.
b9c74b4d 14711 * reginfo.c (init_move_cost): Add casts to enum type.
14712 (init_reg_sets_1, init_fake_stack_mems): Likewise.
14713 * regmove.c (regclass_compatible_p): Change class0 and class1 to
14714 enum reg_class.
14715 * reload.c (find_valid_class): Add casts to enum type.
14716 (push_reload): Change 0 to NO_REGS in function call.
14717 (find_reloads): Change this_alternative to array of enum
14718 reg_class. Remove some now-unnecessary casts.
14719 (make_memloc): Change 0 to VOIDmode in function call.
14720 * reload1.c (reload): Change 0 to VOIDmode in function call.
14721 (eliminate_regs_1, elimination_effects): Likewise.
14722 (eliminate_regs_in_insn): Likewise.
14723 (emit_input_reload_insns): Add cast to enum type.
14724 (delete_output_reload): Change 0 to VOIDmode in function call.
14725 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
14726 to enum type in function call.
14727 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
14728 (SET_PREDICT_EXPR_OUTCOME): Define.
8734914d 14729 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
b9c74b4d 14730 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
14731 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
14732 (dump_function): Likewise.
14733 * tree-dump.h: Update declarations.
14734 * tree-pass.h: Update declarations.
14735 * varasm.c (assemble_integer): Change mclass to enum mode_class.
14736 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
14737 enum type.
14738 (arm_rtx_costs_1): Correct parenthesization.
14739 (arm_rtx_costs): Add casts to enum type.
14740 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
14741 (vfp_emit_fstmd): Use add_rg_note.
14742 (emit_multi_reg_push, emit_sfm): Likewise.
14743 (thumb_set_frame_pointer): Likewise.
14744 (arm_expand_prologue): Likewise.
14745 (arm_regno_class): Change return type to enum reg_class.
14746 (thumb1_expand_prologue): Use add_reg_note.
14747 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
14748 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
14749 in function call.
14750 * config/arm/gentune.sh: Add cast to enum type.
14751 * config/arm/arm-tune.md: Rebuild.
14752 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
14753 (ix86_split_fp_branch, predict_jump): Likewise.
14754 (ix86_expand_multi_arg_builtin): Change sub_code from enum
14755 insn_code to enum rtx_code.
14756 (ix86_builtin_vectorized_function): Add cast to enum type.
14757 * config/i386/i386.md (truncdfsf2): Change slot to enum
14758 ix86_stack_slot.
14759 (truncxf<mode>2, isinf<mode>2): Likewise.
14760 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
14761 enum type.
14762 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
14763 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
14764 (insert_bundle_state): Change 1 to INSERT in function call.
14765 (ia64_add_bundle_selector_before): Likewise.
14766 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
14767 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
14768 (restore_stack_nonlocal): Likewise.
14769 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
14770 function call.
14771 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
14772 function call.
14773 (mips_rtx_costs): Likewise.
14774 (mips_override_options): Add casts to enum type.
14775 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
14776 in function call.
14777 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
14778 (store_reg, set_reg_plus_d): Likewise.
14779 (hppa_expand_prologue, hppa_profile_hook): Likewise.
14780 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
14781 cast to enum type.
14782 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
14783 function call.
14784 (emit_unlikely_jump): Use add_reg_note.
14785 (rs6000_emit_allocate_stack): Likewise.
14786 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
14787 (output_toc): Change 1 to INSERT in function call.
14788 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
14789 (rs6000_initialize_trampoline): Likewise.
14790 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
14791 function call.
14792 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
14793 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
14794 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
14795 (save_gprs): Use add_reg_note.
14796 (s390_emit_prologue): Likewise.
8734914d 14797 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 14798 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
14799 (sparc_fold_builtin): Add cast to enum type.
14800 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
14801 enum insn_code.
14802 (spu_expand_prologue): Use add_reg_note.
8734914d 14803 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 14804
148052009-04-20 Ian Lance Taylor <iant@google.com>
14806
14807 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
14808 (c_parser_postfix_expression_after_primary): Get VEC for list of
14809 arguments. Get original types of arguments. Call
14810 build_function_call_vec.
14811 (cached_expr_list_1, cached_expr_list_2): New static variables.
14812 (c_parser_expr_list): Change return type to VEC *. Add
14813 p_orig_types parameter. Change all callers.
14814 (c_parser_release_expr): New static function.
14815 (c_parser_vec_to_tree_list): New static function.
14816 * c-typeck.c (build_function_call): Rewrite to build a VEC and
14817 call build_function_call_vec.
14818 (build_function_call_vec): New function, based on old
14819 build_function_call.
14820 (convert_arguments): Remove nargs and argarray parameters. Change
14821 values to a VEC. Add origtypes parameter.
8734914d 14822 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
b9c74b4d 14823 (convert_for_assignment): Add origtype parameter. Change all
14824 callers. If warn_cxx_compat, check for conversion to an enum
14825 type when calling a function.
14826 (store_init_value): Add origtype parameter. Change all callers.
14827 (digest_init): Likewise.
14828 (struct init_node): Add origtype field.
14829 (add_pending_init): Add origtype parameter. Change all callers.
14830 (output_init_element): Likewise.
14831 (output_pending_init_elements): Pass origtype from init_node to
14832 output_init_element.
4ebc3d57 14833 (process_init_element): Pass origtype from c_expr to
b9c74b4d 14834 output_init_element.
14835 (c_finish_return): Add origtype parameter. Change all callers.
14836 * c-common.c (sync_resolve_size): Change params to VEC *. Change
14837 caller.
14838 (sync_resolve_params): Likewise.
8734914d 14839 (sync_resolve_return): Change params to first_param. Change caller.
b9c74b4d 14840 (resolve_overloaded_builtins): Change params to VEC *. Change
8734914d 14841 callers. Save first parameter around call to build_function_call_vec.
b9c74b4d 14842 * c-decl.c (finish_decl): Add origtype parameter. Change all
14843 callers. Call build_function_call_vec rather than
14844 build_function_call for cleanup.
14845 * c-tree.h: Update declarations.
14846 * c-common.h: Update declarations.
14847 * stub-objc.c (objc_rewrite_function_call): Change parameter from
14848 params to first_param.
14849 * target.h (struct gcc_target): Change resolve_overloaded_builtin
14850 params parameter from tree to void *.
14851 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14852 Change arglist parameter to have type void *, and to be a pointer
14853 to a VEC.
14854 * config/rs6000/rs6000-protos.h
14855 (altivec_resolve_overloaded_builtin): Update declaration.
14856 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
14857 fnargs parameter to have type void *, and to be a pointer to a
14858 VEC. Call build_function_call_vec instead of
14859 build_function_call.
8734914d 14860 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
b9c74b4d 14861
6df553fd 148622009-04-20 Joey Ye <joey.ye@intel.com>
943327c1 14863 Xuepeng Guo <xuepeng.guo@intel.com>
6df553fd 14864 H.J. Lu <hongjiu.lu@intel.com>
14865
14866 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
14867
14868 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
14869 (IX86_LEA_PRIORITY): Likewise.
14870 (distance_non_agu_define): New function.
14871 (distance_agu_use): Likewise.
14872 (ix86_lea_for_add_ok): Likewise.
14873 (ix86_dep_by_shift_count): Likewise.
14874
14875 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
14876 should split for LEA.
14877
14878 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
14879 function.
14880 (ix86_dep_by_shift_count): Likewise.
14881
a174b54d 148822009-04-20 Richard Guenther <rguenther@suse.de>
14883
14884 * expr.c (handled_component_p): Move ...
14885 * tree.h (handled_component_p): ... here.
14886 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
14887 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
14888 and REALPART_EXPR to be in one group.
14889
59f3ea59 148902009-04-20 Richard Guenther <rguenther@suse.de>
14891
14892 * basic-block.h (get_all_dominated_blocks): Declare.
14893 * dominance.c (get_all_dominated_blocks): New function.
14894 * tree-cfg.c (get_all_dominated_blocks): Remove.
14895 (remove_edge_and_dominated_blocks): Adjust.
14896 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
14897 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
14898 instead of recursing.
14899
13f90d63 149002009-04-20 Doug Kwan <dougkwan@google.com>
14901
14902 * cgraph.h (cgraph_node_ptr): New type for vector functions.
14903 (struct cgraph_node_set_def): New type.
14904 (cgraph_node_set) New type. Also declare vector functions.
14905 (struct cgraph_node_set_element_def): New type.
14906 (cgraph_node_set_element): Ditto.
14907 (cgraph_node_set_iterator): New iterator type.
14908 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
14909 cgraph_node_set_remove, dump_cgraph_node_set,
14910 debug_cgraph_node_set): New prototypes.
14911 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
14912 cgraph_node_set_size): New inlines.
14913 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
14914 including cgraph.h.
14915 (struct ipa_opt_pass): Add struct cgraph_node_set_def
14916 argument to function 'write_summary'.
14917 * ipa.c: Include ggc.h.
14918 (hash_cgraph_node_set_element,
14919 eq_cgraph_node_set_element, cgraph_node_set_new,
14920 cgraph_node_set_add, cgraph_node_set_remove,
14921 cgraph_node_set_find, dump_cgraph_node_set,
14922 debug_cgraph_node_set): New functions.
14923 * Makefile.in (ipa.o): Add dependency on GGC_H.
14924
1065dd4e 149252009-04-20 Ira Rosen <irar@il.ibm.com>
14926
14927 PR tree-optimization/39675
89871bab 14928 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
8734914d 14929 check of the return code of vect_schedule_slp. Check that
14930 stmt_vec_info still exists for the statement, before checking its
14931 vectorization type.
1065dd4e 14932
ae381971 149332009-04-20 Michael Matz <matz@suse.de>
14934
14935 * Makefile.in (generated_files): Take out $(simple_generated_c).
14936
2e4b8e58 149372009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
14938
14939 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
14940 (UINTPTR_TYPE): Likewise.
14941
fe49e588 149422009-04-19 Joseph Myers <joseph@codesourcery.com>
14943
14944 PR c/37481
14945 * c-typeck.c (digest_init): Check for initializing an array with a
14946 string literal.
14947
714c7dce 149482009-04-19 Joseph Myers <joseph@codesourcery.com>
14949
14950 PR c/19771
14951 * c-semantics.c (pop_stmt_list): Propagate
14952 STATEMENT_LIST_HAS_LABEL to parent statement list.
14953
287179e8 149542009-04-19 Adam Nemet <anemet@caviumnetworks.com>
14955
14956 * config/mips/mips.h (mips_tune_attr): New macro.
14957 * config/mips/mips.md (cpu): Use it.
14958
577f4774 149592009-04-19 Joseph Myers <joseph@codesourcery.com>
14960
14961 PR c/38243
14962 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
14963 declaring a tag.
14964
9ed5b1f5 149652009-04-19 Diego Novillo <dnovillo@google.com>
14966
14967 * toplev.c (compile_file): Move call to coverage_finish ...
14968 * cgraphunit.c (ipa_passes): ... here.
14969 Call cgraph_process_new_functions.
14970 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
14971 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
14972
ecfab407 149732009-04-19 Jan Hubicka <jh@suse.cz>
14974
8734914d 14975 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
14976 cfun.
ecfab407 14977 (dump_cgraph_node): Dump can throw external flag.
14978 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
14979
03033af4 149802009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
14981
14982 PR c/32061
14983 PR c++/36954
14984 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
14985 * common.opt (Wlogical-op): Move from here...
14986 * c.opt (Wlogical-op): ... to here.
14987 * c-typeck.c (parser_build_binary_op): Update call to
14988 warn_logical_operator.
14989 * c-opts.c (c_common_post_options): Enable warn_logical_op with
14990 extra_warnings.
14991 * c-common.c (warn_logical_op): Update.
14992 * c-common.h (warn_logical_op): Update declaration.
14993
d3e86ba4 149942009-04-19 Eric Botcazou <ebotcazou@adacore.com>
14995
14996 * tree.c (protected_set_expr_location): Fix formatting.
14997
d4e60318 149982009-04-18 Joseph Myers <joseph@codesourcery.com>
14999
15000 PR c/27676
15001 * c-typeck.c (readonly_warning): new.
15002 (build_unary_op, build_modify_expr): Use readonly_warning for
15003 storing into something readonly but not const-qualified.
15004
1b157e43 150052009-04-18 Joseph Myers <joseph@codesourcery.com>
15006
15007 PR c/22367
15008 * c-typeck.c (build_unary_op): Check for taking address of
15009 expression of type void.
15010
8f24e4bd 150112009-04-18 Joseph Myers <joseph@codesourcery.com>
15012
15013 PR c/35210
15014 * c-typeck.c (build_function_call): Check for calling a function
15015 with qualified void return types. Call require_complete_type when
15016 generating a trap.
15017
17b28e52 150182009-04-18 Jan Hubicka <jh@suse.cz>
15019
15020 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
15021 Set nothrow flag.
15022 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
15023 can_throw_external flag.
15024 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
15025 * ipa-pure-const.c (ignore_edge): New function.
15026 (propagate): Compute order for NOTHROW computation; set NOTHROWs
15027 only over can_throw_external edges.
15028 (local_pure_const): Add nothrow flag.
15029 * ipa-utils.c (searchc): Add ignore_edge callback.
15030 (ipa_utils_reduced_inorder): Add ignore_edge callback.
15031 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
15032 (set_nothrow_function_flags): Update cgraph.
15033 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
15034
1c03e359 150352009-04-18 Richard Guenther <rguenther@suse.de>
15036
15037 PR middle-end/39804
15038 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
15039 (fold_stmt): ... this and ...
15040 (fold_stmt_inplace): ... this.
15041 (fold_stmt_1): Fold references in calls and asms.
15042 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
15043
8a6bbf30 150442009-04-18 Kazu Hirata <kazu@codesourcery.com>
15045
15046 * tree-vrp.c (ssa_name_nonzero_p): Remove.
15047 * tree.h: Remove the prototype for ssa_name_nonzero_p.
15048
32234224 150492009-04-18 Kazu Hirata <kazu@codesourcery.com>
15050
15051 * tree.c (function_args_count): Remove.
15052 * tree.h: Remove the prototype for function_args_count.
15053
c58db4b7 150542009-04-18 Kazu Hirata <kazu@codesourcery.com>
15055
15056 * tree-iterator.c (expr_only): Remove.
15057 * tree.h: Remove the prototype for expr_only.
15058
404acb5b 150592009-04-18 Kazu Hirata <kazu@codesourcery.com>
15060
15061 * reginfo.c (cannot_change_mode_set_regs): Remove.
15062 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
15063
5a07d305 150642009-04-08 Anatoly Sokolov <aesok@post.ru>
15065
15066 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
15067 whether operands 0 and 1 overlaps.
15068
496ffe87 150692009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
15070
15071 PR middle-end/36902
15072 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
15073 pointer. Use warning_at instead of warning.
15074 (search_for_addr_array): Likewise.
15075 (check_array_bounds): Likewise.
15076 (check_all_array_refs): Check that the incoming edge is not in the
15077 list of edges to be removed.
15078 (check_all_array_refs): Avoid the temporal pointer.
15079 (vrp_visit_cond_stmt): Fix typo.
15080 (simplify_switch_using_ranges): Handle the case where the switch
15081 index is an integer constant.
15082
f846b2e1 150832009-04-18 Adam Nemet <anemet@caviumnetworks.com>
15084
15085 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
15086
d270ac20 150872009-04-18 Kazu Hirata <kazu@codesourcery.com>
15088
15089 * doc/extend.texi, doc/invoke.texi: Fix typos.
15090
3085aa6d 150912009-04-17 Cary Coutant <ccoutant@google.com>
15092
15093 * tree-flow-inline.h (get_lineno): Fix inverted test.
15094
d47f59f6 150952009-04-17 Diego Novillo <dnovillo@google.com>
15096
15097 * tree-ssa-pre.c (create_expression_by_pieces): Remove
15098 assertion for AVAIL_OUT.
15099
cea9fc42 151002009-04-17 Mike Frysinger <vapier@gentoo.org>
15101
15102 PR target/38627
15103 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
15104 * config/sh/linux-atomic.asm: Likewise.
15105
576cc2fe 151062009-04-17 Diego Novillo <dnovillo@google.com>
15107
15108 * except.c (debug_eh_tree): New.
15109 (struct eh_region, struct eh_status): Move ...
15110 * except.h: ... here.
15111 (add_type_for_runtime): Declare extern.
15112 (lookup_type_for_runtime): Likewise.
15113 (debug_eh_tree): Declare.
15114 * Makefile.in (GTFILES): List except.h before except.c
15115
8e5b4ed6 151162009-04-17 Diego Novillo <dnovillo@google.com>
15117
8734914d 15118 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
8e5b4ed6 15119 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
15120 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
15121 (find_vars_r): ... here.
15122 * tree-flow.h (find_referenced_vars_in): Declare.
15123 * tree-ssa-pre.c (create_expression_by_pieces): Assert
15124 that AVAIL_OUT exists for BLOCK.
15125 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
15126 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
15127 (tree-parloops.o): Likewise.
15128
132cae05 151292009-04-17 Simon Baldwin <simonb@google.com>
15130
15131 * toplev.c (default_tree_printer): Add handling for %E format.
15132
c6934f8a 151332009-04-17 Diego Novillo <dnovillo@google.com>
15134
8734914d 15135 * tree-pretty-print.c (dump_generic_node): Add break after
15136 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
15137 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
15138 FUNCTION_TYPE together. Call print_struct_decl when printing
15139 structures and TDF_SLIM is not given.
c6934f8a 15140 (print_struct_decl): Fix logic for detecting recursion.
15141
46782931 151422009-04-17 Rafael Avila de Espindola <espindola@google.com>
15143
15144 PR 31567
15145 * gcc.c (create_at_file): New.
15146 (compile_input_file_p): New.
15147 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
15148 * main.c (main): Update call to toplev_main.
15149 * toplev.c (toplev_main): Change signature. Call expandargv.
15150 * toplev.h (toplev_main): Change signature.
15151
0bae362c 151522009-04-17 Eric Botcazou <ebotcazou@adacore.com>
15153
15154 * dwarf2out.c (field_byte_offset): Use the type size as the field size
15155 if the latter is not constant.
15156
9207eb25 151572009-04-17 David Edelsohn <edelsohn@gnu.org>
15158
15159 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
15160
b26d0c9e 151612009-04-17 Eric Botcazou <ebotcazou@adacore.com>
15162
15163 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
15164 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
15165
af4c7413 151662009-04-17 Richard Guenther <rguenther@suse.de>
15167
15168 * tree-ssa-structalias.c (get_constraint_for_component_ref):
15169 Handle component references view-converting an invariant address.
15170
48a84cee 151712009-04-17 Adam Nemet <anemet@caviumnetworks.com>
15172
15173 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
15174 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
15175 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
15176 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
15177 Use @deftypevr rather than @deftypevar.
15178
8f0b877f 151792009-04-17 Richard Guenther <rguenther@suse.de>
15180
8734914d 15181 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
8f0b877f 15182 (get_prop_source_stmt): Likewise.
15183 (can_propagate_from): Likewise.
15184
f555bf81 151852009-04-17 Andrew Stubbs <ams@codesourcery.com>
15186
15187 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
15188 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
15189 (--with-multilib-list): Add default value.
15190 * configure: Regenerate.
15191 * Makefile.in (TM_ENDIAN_CONFIG): Define.
15192 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
15193 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
15194 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
15195 Don't add default cpu to multilib list unnecessarily, but do enable
15196 the relevant compiler option..
15197 Add support for --with-multilib-list=<blank> and
15198 --with-multilib-list=!<somelib> to supress unwanted multilibs.
15199 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
15200 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
15201 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
15202 TM_MULTILIB_CONFIG.
15203 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
15204 (MULTILIB_OSDIRNAMES): New variable.
15205 * config/sh/t-1e: Delete file.
15206 * config/sh/t-mlib-sh1: Delete file.
15207 * config/sh/t-mlib-sh2: Delete file.
15208 * config/sh/t-mlib-sh2a: Delete file.
15209 * config/sh/t-mlib-sh2a-nofpu: Delete file.
15210 * config/sh/t-mlib-sh2a-single: Delete file.
15211 * config/sh/t-mlib-sh2a-single-only: Delete file.
15212 * config/sh/t-mlib-sh2e: Delete file.
15213 * config/sh/t-mlib-sh3e: Delete file.
15214 * config/sh/t-mlib-sh4: Delete file.
15215 * config/sh/t-mlib-sh4-nofpu: Delete file.
15216 * config/sh/t-mlib-sh4-single: Delete file.
15217 * config/sh/t-mlib-sh4-single-only: Delete file.
15218 * config/sh/t-mlib-sh4a: Delete file.
15219 * config/sh/t-mlib-sh4a-nofpu: Delete file.
15220 * config/sh/t-mlib-sh4a-single: Delete file.
15221 * config/sh/t-mlib-sh4a-single-only: Delete file.
15222 * config/sh/t-mlib-sh4al: Delete file.
15223 * config/sh/t-mlib-sh5-32media: Delete file.
15224 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
15225 * config/sh/t-mlib-sh5-64media: Delete file.
15226 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
15227 * config/sh/t-mlib-sh5-compact: Delete file.
15228 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
15229 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
15230 * doc/install.texi (Options specification): Add
15231 --with-multilib-list and --with-endian.
15232
c80cefd7 152332009-04-17 Rafael Avila de Espindola <espindola@google.com>
15234
15235 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
15236 REVISION_c.
15237 (OBJS-common): Add plugin-version.o.
15238 (plugin-version.o): New.
15239 * gcc-plugin.h (plugin_gcc_version): New.
15240 (plugin_default_version_check): New.
15241 (plugin_init_func, plugin_init): Add version argument.
15242 * plugin-version.c: New.
15243 * plugin.c (str_plugin_gcc_version_name): New.
15244 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
15245 pass it to the init function.
15246 (plugin_default_version_check): New.
15247
090a8c65 152482009-04-17 Richard Guenther <rguenther@suse.de>
15249
15250 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
15251 for decl-vs-decl disambiguation.
15252
23911610 152532009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
15254
15255 * config/s390/s390.h (s390_tune_attr): New macro definition.
15256 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
15257
304557cd 152582009-04-17 Richard Guenther <rguenther@suse.de>
15259
15260 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
15261 (fold_stmt_r): Likewise.
15262 (maybe_fold_reference): New function.
15263 (fold_gimple_assign): Handle cases fold_stmt_r did.
15264 (fold_stmt): Do not use fold_stmt_r.
15265 (fold_stmt_inplace): Likewise.
15266
912886f2 152672009-04-17 Richard Guenther <rguenther@suse.de>
15268
15269 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
15270 (record_equivalences_from_stmt): Remove useless checks and
15271 simplifications.
15272 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
15273 the type is already suitable.
15274
2d44789e 152752009-04-17 Paolo Bonzini <bonzini@gnu.org>
15276
15277 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
15278
67225bb6 152792009-04-17 Uros Bizjak <ubizjak@gmail.com>
15280
15281 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
15282 (CMPtype): Define as __gcc_CMPtype.
15283
09ec66c8 152842009-04-17 Aurelien Jarno <aurelien@aurel32.net>
15285
15286 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
15287 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
15288
7f7f16d4 152892009-04-17 Richard Guenther <rguenther@suse.de>
15290
15291 PR tree-optimization/39746
15292 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
15293 special-casing for builtins and static variable use/def.
15294 (call_may_clobber_ref_p_1): Likewise.
15295
0b1615c1 152962009-04-16 Ian Lance Taylor <iant@google.com>
15297
15298 * df.h: Include "timevar.h".
15299 (struct df_problem): Change tv_id field to timevar_id_t.
15300 * tree-pass.h: Include "timevar.h".
15301 (struct opt_pass): Change tv_id field to timevar_id_t.
15302 * timevar.h (timevar_id_t): Define TV_NONE.
15303 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
15304 TV_NONE rather than tv_id != 0.
15305 (execute_one_pass): Likewise.
15306 * Makefile.in (DF_H): Add $(TIMEVAR_H).
15307 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
15308 dependencies to $(TREE_PASS_H).
15309 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
15310 to TV_NONE.
15311 (pass_branch_target_load_optimize2): Likewise.
15312 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
15313 (pass_outof_cfg_layout_mode): Likewise.
15314 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
15315 (pass_rebuild_cgraph_edges): Likewise.
15316 (pass_remove_cgraph_callee_edges): Likewise.
15317 * df-core.c (pass_df_initialize_opt): Likewise.
15318 (pass_df_initialize_no_opt): Likewise.
15319 (pass_df_finish): Likewise.
15320 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
15321 * except.c (pass_set_nothrow_function_flags): Likewise.
15322 (pass_convert_to_eh_region_ranges): Likewise.
15323 * final.c (pass_compute_alignments): Likewise.
15324 * function.c (pass_instantiate_virtual_regs): Likewise.
15325 (pass_init_function): Likewise.
15326 (pass_leaf_regs): Likewise.
15327 (pass_match_asm_constraints): Likewise.
15328 * gimple-low.c (pass_lower_cf): Likewise.
15329 (pass_mark_used_blocks): Likewise.
15330 * init-regs.c (pass_initialize_regs): Likewise.
15331 * integrate.c (pass_initial_value_sets): Likewise.
15332 * ira.c (pass_ira): Likewise.
15333 * jump.c (pass_cleanup_barriers): Likewise.
15334 * omp-low.c (pass_expand_omp): Likewise.
15335 (pass_lower_omp): Likewise.
15336 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
15337 * recog.c (pass_split_all_insns): Likewise.
15338 (pass_split_after_reload): Likewise.
15339 (pass_split_before_regstack): Likewise.
15340 (pass_split_before_sched2): Likewise.
15341 (pass_split_for_shorten_branches): Likewise.
15342 * reginfo.c (pass_reginfo_init): Likewise.
15343 (pass_subregs_of_mode_init): Likewise.
15344 (pass_subregs_of_mode_finish): Likewise.
15345 * passes.c (pass_postreload): Likewise.
15346 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
15347 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
15348 (pass_warn_function_return): Likewise.
15349 (pass_warn_function_noreturn): Likewise.
15350 * tree-complex.c (pass_lower_complex): Likewise.
15351 (pass_lower_complex_O0): Likewise.
15352 * tree-if-conv.c (pass_if_conversion): Likewise.
15353 * tree-into-ssa.c (pass_build_ssa): Likewise.
15354 * tree-mudflap.c (pass_mudflap_1): Likewise.
15355 (pass_mudflap_2): Likewise.
15356 * tree-nomudflap.c (pass_mudflap_1): Likewise.
15357 (pass_mudflap_2): Likewise.
15358 * tree-nrv.c (pass_return_slot): Likewise.
15359 * tree-object-size.c (pass_object_sizes): Likewise.
15360 * tree-optimize.c (pass_all_optimizations): Likewise.
15361 (pass_early_local_passes): Likewise.
15362 (pass_all_early_optimizations): Likewise.
15363 (pass_cleanup_cfg): Likewise.
15364 (pass_cleanup_cfg_post_optimizing): Likewise.
15365 (pass_free_datastructures): Likewise.
15366 (pass_free_cfg_annotations): Likewise.
15367 (pass_fixup_cfg): Likewise.
15368 (pass_init_datastructures): Likewise.
15369 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
15370 (pass_late_warn_uninitialized): Likewise.
15371 (pass_update_address_taken): Likewise.
15372 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
15373 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
15374 (pass_cse_sincos): Likewise.
15375 (pass_convert_to_rsqrt): Likewise.
15376 * tree-ssa-structalias.c (pass_build_alias): Likewise.
15377 * tree-stdarg.c (pass_stdarg): Likewise.
15378 * tree-tailcall.c (pass_tail_recursion): Likewise.
15379 (pass_tail_calls): Likewise.
15380 * tree-vect-generic.c (pass_lower_vector): Likewise.
15381 (pass_lower_vector_ssa): Likewise.
15382 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
15383
eb91c01f 153842009-04-16 Joseph Myers <joseph@codesourcery.com>
15385
15386 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
15387 XLR entry.
15388 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
15389 Handle -march=xlr.
15390 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
15391 logical and signext.
15392
52e95993 153932009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
15394
15395 PR target/39767
15396 * config/sh/predicates.md (arith_operand): Check if the operand
15397 of TRUNCATE is a REG.
15398
78eb54ad 153992009-04-16 Kazu Hirata <kazu@codesourcery.com>
15400
15401 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
15402 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
15403
c6faa3cc 154042009-04-16 Kazu Hirata <kazu@codesourcery.com>
15405
15406 * tree-iterator.c (tsi_split_statement_list_after,
15407 tsi_split_statement_list_before): Remove.
15408 * tree-iterator.h: Remove the prototypes for
09ec66c8 15409 tsi_split_statement_list_after and tsi_split_statement_list_before.
c6faa3cc 15410
248c5002 154112009-04-16 Kazu Hirata <kazu@codesourcery.com>
15412
15413 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
15414 * tree-ssa-propagate.h: Remove the prototype for
15415 stmt_makes_single_load.
15416
b11af8ed 154172009-04-16 Kazu Hirata <kazu@codesourcery.com>
15418
15419 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
15420 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
15421
f94a1f5c 154222009-04-16 Kazu Hirata <kazu@codesourcery.com>
15423
15424 * tree-iterator.c (EXPR_LAST_BODY): Remove.
15425
6d546519 154262009-04-16 Kazu Hirata <kazu@codesourcery.com>
15427
15428 * except.c (eh_region_outer_p): Remove.
15429 * except.h: Remove the prototype for eh_region_outer_p.
15430
ee8f5f57 154312009-04-16 Kazu Hirata <kazu@codesourcery.com>
15432
15433 * function.c (current_function_assembler_name): Remove.
15434 * function.h: Remove the prototype for
15435 current_function_assembler_name.
15436
5859ee98 154372009-04-16 Ian Lance Taylor <iant@google.com>
15438
09ec66c8 15439 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
5859ee98 15440 (add_reg_note): Call alloc_reg_note.
15441 * rtl.h (alloc_reg_note): Declare.
15442 * combine.c (try_combine): Use alloc_reg_note.
15443 (recog_for_combine, move_deaths): Likewise.
15444 (distribute_notes): Use alloc_reg_note and add_reg_note.
15445 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
15446 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
15447 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
15448
8f6c49f5 154492009-04-16 Vladimir Makarov <vmakarov@redhat.com>
15450
15451 PR rtl-optimization/39762
15452 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
15453 ira_may_move_out_cost): Add comments about way of their usage.
09ec66c8 15454 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
89871bab 15455
8f6c49f5 15456 * ira-conflicts.c (process_regs_for_copy): Use function
15457 ira_get_register_move_cost instead of global
15458 ira_register_move_cost.
15459
15460 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
15461 color_pass, move_spill_restore, update_curr_costs): Ditto.
15462
15463 * ira-lives.c (process_single_reg_class_operands): Ditto.
15464
15465 * ira-emit.c (emit_move_list): Ditto.
15466
15467 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
15468 (record_reg_classes): Ditto. Use functions
15469 ira_get_register_move_cost and ira_get_may_move_cost instead of
15470 global vars ira_register_move_cost, ira_may_move_out_cost and
15471 ira_may_move_in_cost.
15472 (record_address_regs): Don't call ira_init_register_move_cost.
15473 Use function ira_get_may_move_cost instead of global
15474 ira_may_move_in_cost.
15475 (process_bb_node_for_hard_reg_moves): Use function
09ec66c8 15476 ira_get_register_move_cost instead of global ira_register_move_cost.
8f6c49f5 15477 (ira_costs): Don't call ira_init_register_move_cost.
89871bab 15478
3e10a823 154792009-04-16 Richard Guenther <rguenther@suse.de>
15480
15481 * tree-cfg.c (verify_gimple_assign_binary):
15482 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
15483 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
15484 (create_general_new_stmt): Note that this function is broken.
15485
2dfeb300 154862009-04-16 Rafael Avila de Espindola <espindola@google.com>
15487
15488 * common.opt (fhelp): Add Var(help_flag).
15489 * gcc-plugin.h (plugin_info): Add help.
15490 * plugin.c (plugin_name_args): Add help.
15491 (register_plugin_info): Set plugin->help.
15492 (print_help_one_plugin): New.
15493 (print_plugins_help): New.
15494 * plugin.h (print_plugins_help): New.
15495 * toplev.c (toplev_main): Call print_plugins_help if needed.
15496
6d5ec6f8 154972009-04-16 Richard Guenther <rguenther@suse.de>
15498
15499 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
15500 (gimple_ior_addresses_taken_1): New function.
15501 (gimple_ior_addresses_taken): Likewise.
15502 * gimple.h (struct gimple_statement_with_ops_base): Remove
15503 addresses_taken member.
15504 (gimple_ior_addresses_taken): Declare.
15505 (gimple_addresses_taken, gimple_addresses_taken_ptr,
15506 gimple_set_addresses_taken): Remove.
15507 * ipa-reference.c (mark_address): New function.
15508 (scan_stmt_for_static_refs): Use it for marking addresses taken.
15509 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
15510 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
15511 (gimple_add_to_addresses_taken): Remove.
15512 (get_tmr_operands): Call mark_address_taken.
15513 (get_asm_expr_operands): Likewise.
15514 (get_expr_operands): Likewise.
15515 (build_ssa_operands): Do not clear the addresses_taken bitmap.
15516 (free_stmt_operands): Do not free it.
15517 * tree-ssa.c (delete_tree_ssa): Likewise.
15518 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
15519
5ed0b345 155202009-04-16 Richard Guenther <rguenther@suse.de>
15521
15522 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
15523 (walk_stmt_load_store_ops): Likewise.
15524 * gimple.c (get_base_loadstore): New function.
15525 (walk_stmt_load_store_addr_ops): Likewise.
15526 (walk_stmt_load_store_ops): Likewise.
15527 * ipa-pure-const.c (check_op): Simplify.
15528 (check_load, check_store): New functions.
15529 (check_stmt): Use walk_stmt_load_store_ops.
15530 * ipa-reference.c (mark_load): Adjust signature.
15531 (mark_store): Likewise.
15532 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
15533
e16288b4 155342009-04-16 Rafael Avila de Espindola <espindola@google.com>
15535
15536 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
15537 (plugin_info): New.
15538 * opts.c (common_handle_option): Don't call print_version.
15539 * plugin.c (plugin_name_args): Add version.
15540 (register_plugin_info): New.
15541 (register_callback): Handle PLUGIN_INFO.
15542 (try_init_one_plugin): New.
15543 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
15544 if failed to init.
15545 (finalize_one_plugin): New.
15546 (finalize_plugins): New.
15547 (print_one_plugin): New.
15548 (print_plugins_versions): New.
15549 * plugin.h (print_plugins_versions): New.
15550 (finalize_plugins): New.
15551 * toplev.c (compile_file): Don't call initialize_plugins.
15552 (print_version): Call print_plugins_versions.
15553 (toplev_main): Call initialize_plugins. Print version if needed.
15554 Call finalize_plugins.
15555
39932bd2 155562009-04-16 Rafael Avila de Espindola <espindola@google.com>
15557
15558 * common.opt (fversion): New.
15559 * gcc.c (print_version): New.
15560 (process_command): Don't print the version. Just set print_version.
15561 (main): Print version. Call subprocesses if print_version and
15562 verbose_flag are set.
15563 * opts.c (common_handle_option): Handle OPT_fversion.
15564
1efcacec 155652009-04-16 Richard Guenther <rguenther@suse.de>
09ec66c8 15566 Ira Rosen <irar@il.ibm.com>
1efcacec 15567
15568 PR tree-optimization/39698
15569 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
15570 type of the reduction variable. Only generate the def if
15571 it is needed.
15572
15573 * omp-low.c (expand_omp_for_generic): When converting to a pointer
15574 make sure to first convert to an integer of the same precision.
15575 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
15576 the type of the evolution correctly in computing the new
15577 induction variable base.
15578
3e40d86f 155792009-04-16 Richard Guenther <rguenther@suse.de>
15580
15581 PR middle-end/39625
15582 * tree-cfg.c (make_blocks): Split statements with to-be
15583 abnormal SSA names on the lhs.
15584
8d125f7d 155852009-04-16 Paolo Bonzini <bonzini@gnu.org>
15586
15587 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
15588 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
15589 * c-typeck.c (really_start_incremental_init): Likewise.
15590 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
15591 (TARGET_INITIALIZER): Remove it.
15592 * target.h (struct target): Remove vector_opaque_p.
15593 * tree.c (build_opaque_vector_type): New.
15594 * tree.h (TYPE_VECTOR_OPAQUE): New.
15595 (build_opaque_vector_type): Declare.
15596 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
15597 * config/rs6000/rs6000.c (build_opaque_vector_type,
15598 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
15599 (rs6000_init_builtins): Use build_opaque_vector_type for
15600 opaque_V4SI_type_node.
15601
8d17cbdd 156022009-04-15 Catherine Moore <clm@codesourcery.com>
15603
09ec66c8 15604 * debug.h (set_name): Declare.
15605 * dwarf2out.c (dwarf2out_set_name): Declare.
15606 (dwarf2_debug_hooks): Add set_name.
15607 (find_AT_string): New.
15608 (add_AT_string): Call find_AT_string.
15609 (dwarf2out_set_name): New.
15610 * cp/decl.c (grokdeclarator): Call set_name.
15611 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
15612 * debug.c (do_nothing_debug_hooks): Likewise.
15613 * dbxout.c (dbx_debug_hooks): Likewise.
15614 * sdbout.c (sdb_debug_hooks): Likewise.
8d17cbdd 15615
943327c1 156162009-04-15 Michael Eager <eager@eagercon.com>
2f267585 15617
09ec66c8 15618 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
15619 reg for single-precision FPU.
15620 * config/rs6000/rs6000.md (movsi_internal1): Only for
15621 !TARGET_SINGLE_FPU.
15622 (movsi_internal1_single): New. Add pattern to move SI values to/from
2f267585 15623 single-precision FP regs.
15624
c821ef7d 156252009-04-15 Richard Guenther <rguenther@suse.de>
15626
15627 * omp-low.c (lower_rec_input_clauses): Build correct address
15628 expressions.
15629 (expand_omp_for_generic): Fix multiplication type.
09ec66c8 15630 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
c821ef7d 15631 (generate_memset_zero): Fix types.
15632 * tree-profile.c (prepare_instrumented_value): Correctly
15633 widen a pointer.
15634
841fdaa6 156352009-04-15 Ian Lance Taylor <iant@google.com>
15636
15637 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
15638 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
15639 for -Wall and for -Wc++-compat.
15640 (c_common_post_options): For C++, set warn_enum_compare if not
15641 already set.
15642 * c-tree.h (struct c_expr): Add field original_type.
15643 (build_external_ref): Update declaration.
15644 * c-parser.c (c_parser_braced_init): Set original_type.
15645 (c_parser_initelt): Likewise.
15646 (c_parser_expr_no_commas): Likewise.
15647 (c_parser_conditional_expression): Likewise.
15648 (c_parser_cast_expression): Likewise.
15649 (c_parser_unary_expression): Likewise. Pull setting of
15650 original_code to top of function.
15651 (c_parser_sizeof_expression): Set original_type.
15652 (c_parser_alignof_expression): Likewise.
15653 (c_parser_postfix_expression): Likewise. Pull setting of
15654 original_code to top of function.
09ec66c8 15655 (c_parser_postfix_expression_after_paren_type): Set original_type.
841fdaa6 15656 (c_parser_postfix_expression_after_primary): Likewise.
15657 (c_parser_expression): Likewise.
15658 * c-typeck.c (build_external_ref): Add type parameter. Change all
15659 callers.
15660 (c_expr_sizeof_expr): Set original_type field.
15661 (parser_build_unary_op): Likewise.
15662 (parser_build_binary_op): Likewise. Optionally warn about
15663 comparisons of enums of different types.
15664 (digest_init): Set original_type field.
15665 (really_start_incremental_init): Likewise.
15666 (push_init_level, pop_init_level): Likewise.
15667 * doc/invoke.texi (Warning Options): -Wenum-compare now
15668 supported in C.
15669
d94bf438 156702009-04-15 Richard Guenther <rguenther@suse.de>
15671
15672 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
15673 out a necessary conversion.
15674 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
15675 names we didn't value number.
15676 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
15677
4af351a8 156782009-04-15 Richard Guenther <rguenther@suse.de>
15679
15680 PR tree-optimization/39764
15681 * tree-ssa-ccp.c (get_value): Canonicalize value with
15682 canonicalize_float_value.
15683
02eb0b56 156842009-04-15 Jan Hubicka <jh@suse.cz>
15685
15686 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
15687 Wrong version of patch.
15688
e522af1d 156892009-04-15 Jan Hubicka <jh@suse.cz>
15690
15691 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
15692
bf8f9895 156932009-04-15 Nathan Sidwell <nathan@codesourcery.com>
15694
15695 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
15696 our distinct integral and vector types.
15697
e50d7837 156982009-04-15 Rafael Avila de Espindola <espindola@google.com>
15699
15700 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
15701 * init.c (build_vtbl_address): Remove call to assemble_external.
15702
1cc9c78b 157032009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
15704
15705 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
15706 output for other floating point modes.
15707
dd2b35f1 157082009-04-14 Diego Novillo <dnovillo@google.com>
15709
15710 * diagnostic.c (diagnostic_report_diagnostic): Do not
15711 warn about loaded plugins for DK_ERROR and DK_WARNING.
15712 * c-decl.c (declspecs_add_type): Move call to
15713 invoke_plugin_callbacks ...
15714 * c-parser.c (c_parser_declspecs): ... here.
15715 * plugin.c (dump_active_plugins): Tidy output.
15716
9227b6fc 157172009-04-14 Diego Novillo <dnovillo@google.com>
15718 Le-Chun Wu <lcwu@google.com>
15719
15720 * configure.ac: Add --enable-plugin support.
15721 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
15722 * Makefile.in (PLUGIN_H): Define.
15723 Export ENABLE_PLUGIN and GMPINC to site.exp.
15724 Add PLUGINLIBS to link command.
15725 Add/modify dependencies for plugin.o and files including plugin.h.
15726 (plugin.o): New.
15727 * config.in: Regenerate.
89871bab 15728
9227b6fc 15729 * opts.c (common_handle_option): Handle OPT_fplugin_ and
15730 OPT_fplugin_arg_.
15731
157322009-04-14 Le-Chun Wu <lcwu@google.com>
15733
15734 * tree-pass.h (register_one_dump_file): Add a prototype for
15735 register_one_dump_file.
15736 * toplev.c (compile_file): Call initialize_plugins.
15737 (do_compile): Call invoke_plugin_callbacks.
15738 (toplev_main): Call invoke_plugin_callbacks.
15739 * common.opt: Add -fplugin= and -fplugin-arg-.
15740 * gcc-plugin.h: New public header file for plugins to include.
15741 * plugin.c: New source file.
15742 * plugin.h: New internal header file.
15743 * passes.c (register_one_dump_file): Make it external.
89871bab 15744
9227b6fc 15745 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
15746
157472009-04-14 Diego Novillo <dnovillo@google.com>
15748
15749 * doc/plugins.texi: New.
15750 * doc/gccint.texi: Add reference to Plugins chapter.
15751 * doc/invoke.texi: Document -fplugin and -fplugin-arg
15752 * diagnostic.c (diagnostic_report_diagnostic): Warn about
15753 loaded plugins, if any.
15754 * timevar.def (TV_PLUGIN_INIT): Define.
15755 (TV_PLUGIN_RUN): Define.
15756 * plugin.c: Include timevar.h
15757 (plugins_active_p): New.
15758 (dump_active_plugins): New.
15759 (debug_active_plugins): New.
15760
f3245e9d 157612009-04-14 Joseph Myers <joseph@codesourcery.com>
15762
15763 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
15764 library paths.
15765 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
15766
222652cd 157672009-04-14 Kazu Hirata <kazu@codesourcery.com>
15768
15769 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
15770 the same as a minus without a shift.
15771
11964566 157722009-04-14 Nick Clifton <nickc@redhat.com>
15773
15774 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
15775 comparisons with small integers will always produce a short
15776 branch.
15777
318db53a 157782009-04-14 Rafael Avila de Espindola <espindola@google.com>
15779
15780 Merge:
318db53a 15781 2008-12-19 Diego Novillo <dnovillo@google.com>
15782
09ec66c8 15783 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
318db53a 15784
7dfbd804 157852009-04-14 Richard Guenther <rguenther@suse.de>
87f9ffa4 15786
15787 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
15788 verification.
15789 (verify_gimple_assign_binary): Likewise. Handle shifts and
15790 rotates correctly.
15791 (verify_gimple_phi): Print the mismatched argument position.
15792 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
15793 Fix types.
15794 (vect_update_init_of_dr): Likewise.
15795 * matrix-reorg.c (transform_access_sites): Do what the
15796 comment suggests.
15797 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
15798
943327c1 157992009-04-13 Michael Eager <eager@eagercon.com>
b91a266c 15800
15801 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
15802 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
15803 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
89871bab 15804 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
b91a266c 15805 remove duplicate config
15806
bc6e5ec3 158072009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
15808
15809 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
15810 file_name:line_number type locator of the call site.
89871bab 15811
48ca7187 158122009-04-13 Vladimir Makarov <vmakarov@redhat.com>
15813
15814 * genautomata.c: Put blank after comma.
15815 (automaton_decls): New.
15816 (struct unit_usage): Add comments to member next.
15817 (store_alt_unit_usage): Keep the list ordered.
15818 (unit_present_on_list_p, equal_alternatives_p): New.
15819 (check_regexp_units_distribution): Check units distribution
15820 correctness correctly.
15821 (main): Don't write automata if error is found. Return correct
15822 exit code.
89871bab 15823
48ca7187 15824 * config/m68k/cf.md (cfv4_ds): Remove.
15825 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
15826 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
15827
15828 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
15829 power4-load-ext, power4-store, power4-store-update,
15830 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
15831 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
15832 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
15833 power4-sqrt, power4-isync): Modify reservation to make correct
15834 unit distribution to automata.
15835
15836 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
15837 power5-store-update, power5-two, power5-three, power5-lmul,
15838 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
89871bab 15839
a883441f 158402009-04-13 Adam Nemet <anemet@caviumnetworks.com>
15841
15842 * except.c (pass_set_nothrow_function_flags): Set name and add
15843 TODO_dump_func.
15844 (set_nothrow_function_flags): Mention in the dump file when
15845 changing a function to nothrow.
15846
7ad9dc69 158472009-04-13 Ozkan Sezer <sezeroz@gmail.com>
15848
15849 PR/39066
15850 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
15851 instead of unsigned long.
15852
d4fde4e2 158532009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15854
a883441f 15855 * config/arm/arm.c (return_used_this_function): Remove.
15856 (arm_output_function_prologue): Remove use of
d4fde4e2 15857 return_used_this_function.
a883441f 15858 (output_return_instruction): Replace use of
d4fde4e2 15859 return_used_this_function
15860 by cfun->machine->return_used_this_function.
a883441f 15861 (arm_output_epilogue): Likewise.
15862 (arm_output_function_epilogue): Likewise.
15863 (thumb_unexpanded_epilogue): Likewise.
15864 * config/arm/arm.h (struct machine_function):
d4fde4e2 15865 New member return_used_this_function.
a883441f 15866
c65be9f5 158672009-04-12 Mark Mitchell <mark@codesourcery.com>
15868
15869 * doc/install.texi: Correct description of default directory for
15870 --with-gxx-include-dir.
15871
32cbeb74 158722009-04-12 Eric Botcazou <ebotcazou@adacore.com>
f2143b56 15873
15874 * fold-const.c (build_range_check): Properly deal with enumeral and
15875 boolean base types.
15876
d45a307d 158772009-04-12 Steven Bosscher <steven@gcc.gnu.org>
15878
15879 * doc/invoke.texi (max_gcse_passes): Remove documentation.
15880 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
15881 * params.h (MAX_GCSE_PASSES): Remove.
15882 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
15883 in sequence. Remove ability to run multiple passes.
15884 (bypass_jumps): Report run as third CPROP pass.
15885
80621b93 158862009-04-12 Adam Nemet <anemet@caviumnetworks.com>
15887
15888 PR middle-end/39651
15889 * except.c (can_throw_external): Look at each insn in a SEQUENCE
15890 when deciding whether the whole SEQUENCE can throw.
15891
ac89ce58 158922009-04-12 Uros Bizjak <ubizjak@gmail.com>
15893
15894 PR target/39740
15895 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
15896 offseted label references.
15897
a8520ca4 158982009-04-11 Jan Hubicka <jh@suse.cz>
15899
15900 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
15901
8ad54c54 159022009-04-11 Richard Guenther <rguenther@suse.de>
15903
15904 PR middle-end/39732
15905 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
15906 return variables as TREE_ADDRESSABLE.
15907
8ecc6f01 159082009-04-11 Richard Guenther <rguenther@suse.de>
15909
15910 PR tree-optimization/39713
15911 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
15912 reference trees have SSA_NAME operands.
15913
6f1afc19 159142009-04-11 Richard Guenther <rguenther@suse.de>
15915
15916 PR c/39712
15917 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
15918 address expressions.
15919
99ff0267 159202009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
15921
15922 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
15923 match changes in Cygwin 1.7
15924 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
15925 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
15926
390c1c3b 159272009-04-10 Paolo Bonzini <bonzini@gnu.org>
15928
15929 PR tree-optimization/39701
15930 * doc/invoke.texi (Optimization Options): Document change in
15931 meaning and initialization of -fdelete-null-pointer-checks.
15932
7df298fe 159332009-04-10 H.J. Lu <hongjiu.lu@intel.com>
15934
15935 PR middle-end/39701
15936 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
15937
15938 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
15939 here.
15940
15941 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
15942
e6554c42 159432009-04-10 Chao-ying Fu <fu@mips.com>
15944
15945 * doc/tm.texi (Instruction Output): Document
15946 TARGET_ASM_FINAL_POSTSCAN_INSN.
15947 * target.h (final_postscan_insn): New field in asm_out.
15948 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
15949 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
15950 * final.c (final_scan_insn): Call
15951 targetm.asm_out.final_postscan_insn after outputting
15952 an asm macro and a normal instruction.
15953
15954 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
15955 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
15956 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
15957 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
15958 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
15959
0f921b42 159602009-04-10 Paolo Bonzini <bonzini@gnu.org>
15961
15962 PR middle-end/39701
7df298fe 15963 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
15964 variables as non-NULL even with -fdelete-null-pointer-checks.
0f921b42 15965
7d37c7ae 159662009-04-10 H.J. Lu <hongjiu.lu@intel.com>
15967
15968 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
15969
2556f3ba 159702009-04-09 H.J. Lu <hongjiu.lu@intel.com>
15971
15972 PR target/39678
15973 * config/i386/i386.c (classify_argument): Handle SCmode with
15974 (bit_offset % 64) != 0.
15975
f3933af2 159762009-04-09 Sandra Loosemore <sandra@codesourcery.com>
15977
15978 * doc/invoke.texi (Optimize Options): Add cross-reference to
15979 -Q --help=optimizers examples.
15980
fa59234c 159812009-04-10 Ben Elliston <bje@au.ibm.com>
15982
15983 PR target/36800
15984 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
15985 regalign for the reg == fpr and TDmode case.
15986
2744a89f 159872009-04-09 David Ayers <ayers@fsfe.org>
15988
15989 PR objc/29200
15990 * objc/objc-act.c (warn_with_method): Remove helper function.
15991 (check_duplicates): Call warning and inform directly.
15992 (really_start_method): Likewise.
15993
dab963fb 159942009-04-09 Paolo Bonzini <bonzini@gnu.org>
15995
15996 * expmed.c (expand_divmod): Always use a comparison for a division
15997 by a large unsigned integer.
15998
7df298fe 15999 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
16000 for things others than variables or functions as nonzero.
dab963fb 16001
6bc9506f 160022009-04-09 Nick Clifton <nickc@redhat.com>
16003
16004 * unwind-compat.c: Change copyright header to refer to version
16005 3 of the GNU General Public License with version 3.1 of the
16006 GCC Runtime Library Exception and to point readers at the
c72c72ef 16007 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
6bc9506f 16008 * config/alpha/crtfastmath.c: Likewise.
16009 * config/alpha/linux-unwind.h: Likewise.
16010 * config/alpha/qrnnd.asm: Likewise.
16011 * config/alpha/vms-crt0-64.c: Likewise.
16012 * config/alpha/vms-crt0.c: Likewise.
16013 * config/alpha/vms-dwarf2.asm: Likewise.
16014 * config/alpha/vms-dwarf2eh.asm: Likewise.
16015 * config/alpha/vms-psxcrt0-64.c: Likewise.
16016 * config/alpha/vms-psxcrt0.c: Likewise.
16017 * config/alpha/vms_tramp.asm: Likewise.
16018 * config/arc/initfini.c: Likewise.
16019 * config/arc/lib1funcs.asm: Likewise.
16020 * config/arm/bpabi-v6m.S: Likewise.
16021 * config/arm/bpabi.S: Likewise.
16022 * config/arm/bpabi.c: Likewise.
16023 * config/arm/crti.asm: Likewise.
16024 * config/arm/crtn.asm: Likewise.
16025 * config/arm/ieee754-df.S: Likewise.
16026 * config/arm/ieee754-sf.S: Likewise.
16027 * config/arm/lib1funcs.asm: Likewise.
16028 * config/arm/libunwind.S: Likewise.
16029 * config/arm/linux-atomic.c: Likewise.
16030 * config/arm/mmintrin.h: Likewise.
16031 * config/arm/pr-support.c: Likewise.
16032 * config/arm/unaligned-funcs.c: Likewise.
16033 * config/arm/unwind-arm.c: Likewise.
16034 * config/arm/unwind-arm.h: Likewise.
16035 * config/avr/libgcc.S: Likewise.
16036 * config/bfin/crti.s: Likewise.
16037 * config/bfin/crtlibid.s: Likewise.
16038 * config/bfin/crtn.s: Likewise.
16039 * config/bfin/lib1funcs.asm: Likewise.
16040 * config/bfin/linux-unwind.h: Likewise.
16041 * config/cris/arit.c: Likewise.
16042 * config/cris/cris_abi_symbol.c: Likewise.
16043 * config/darwin-64.c: Likewise.
16044 * config/darwin-crt2.c: Likewise.
16045 * config/darwin-crt3.c: Likewise.
16046 * config/darwin.h: Likewise.
16047 * config/dbxelf.h: Likewise.
16048 * config/dfp-bit.c: Likewise.
16049 * config/dfp-bit.h: Likewise.
16050 * config/elfos.h: Likewise.
16051 * config/fixed-bit.c: Likewise.
16052 * config/fixed-bit.h: Likewise.
16053 * config/fp-bit.c: Likewise.
16054 * config/fp-bit.h: Likewise.
16055 * config/fr30/crti.asm: Likewise.
16056 * config/fr30/crtn.asm: Likewise.
16057 * config/fr30/lib1funcs.asm: Likewise.
16058 * config/freebsd-spec.h: Likewise.
16059 * config/frv/cmovd.c: Likewise.
16060 * config/frv/cmovh.c: Likewise.
16061 * config/frv/cmovw.c: Likewise.
16062 * config/frv/frvbegin.c: Likewise.
16063 * config/frv/frvend.c: Likewise.
16064 * config/frv/lib1funcs.asm: Likewise.
16065 * config/glibc-stdint.h: Likewise.
16066 * config/h8300/clzhi2.c: Likewise.
16067 * config/h8300/crti.asm: Likewise.
16068 * config/h8300/crtn.asm: Likewise.
16069 * config/h8300/ctzhi2.c: Likewise.
16070 * config/h8300/fixunssfsi.c: Likewise.
16071 * config/h8300/lib1funcs.asm: Likewise.
16072 * config/h8300/parityhi2.c: Likewise.
16073 * config/h8300/popcounthi2.c: Likewise.
16074 * config/i386/ammintrin.h: Likewise.
16075 * config/i386/att.h: Likewise.
16076 * config/i386/avxintrin.h: Likewise.
16077 * config/i386/biarch64.h: Likewise.
16078 * config/i386/bmmintrin.h: Likewise.
16079 * config/i386/cpuid.h: Likewise.
16080 * config/i386/cross-stdarg.h: Likewise.
16081 * config/i386/crtfastmath.c: Likewise.
16082 * config/i386/crtprec.c: Likewise.
16083 * config/i386/cygming-crtbegin.c: Likewise.
16084 * config/i386/cygming-crtend.c: Likewise.
16085 * config/i386/cygwin.asm: Likewise.
16086 * config/i386/emmintrin.h: Likewise.
16087 * config/i386/gmm_malloc.h: Likewise.
16088 * config/i386/gthr-win32.c: Likewise.
16089 * config/i386/i386.h: Likewise.
16090 * config/i386/immintrin.h: Likewise.
16091 * config/i386/linux-unwind.h: Likewise.
16092 * config/i386/linux64.h: Likewise.
16093 * config/i386/mm3dnow.h: Likewise.
16094 * config/i386/mmintrin-common.h: Likewise.
16095 * config/i386/mmintrin.h: Likewise.
16096 * config/i386/nmmintrin.h: Likewise.
16097 * config/i386/pmm_malloc.h: Likewise.
16098 * config/i386/pmmintrin.h: Likewise.
16099 * config/i386/smmintrin.h: Likewise.
16100 * config/i386/sol2-c1.asm: Likewise.
16101 * config/i386/sol2-ci.asm: Likewise.
16102 * config/i386/sol2-cn.asm: Likewise.
16103 * config/i386/sol2-gc1.asm: Likewise.
16104 * config/i386/tmmintrin.h: Likewise.
16105 * config/i386/unix.h: Likewise.
16106 * config/i386/w32-unwind.h: Likewise.
16107 * config/i386/wmmintrin.h: Likewise.
16108 * config/i386/x86-64.h: Likewise.
16109 * config/i386/x86intrin.h: Likewise.
16110 * config/i386/xmmintrin.h: Likewise.
16111 * config/ia64/crtbegin.asm: Likewise.
16112 * config/ia64/crtend.asm: Likewise.
16113 * config/ia64/crtfastmath.c: Likewise.
16114 * config/ia64/crti.asm: Likewise.
16115 * config/ia64/crtn.asm: Likewise.
16116 * config/ia64/fde-glibc.c: Likewise.
16117 * config/ia64/lib1funcs.asm: Likewise.
16118 * config/ia64/linux-unwind.h: Likewise.
16119 * config/ia64/quadlib.c: Likewise.
16120 * config/ia64/unwind-ia64.c: Likewise.
16121 * config/linux.h: Likewise.
16122 * config/m32c/m32c-lib1.S: Likewise.
16123 * config/m32c/m32c-lib2-trapv.c: Likewise.
16124 * config/m32c/m32c-lib2.c: Likewise.
16125 * config/m32r/initfini.c: Likewise.
16126 * config/m68hc11/larith.asm: Likewise.
16127 * config/m68hc11/m68hc11-crt0.S: Likewise.
16128 * config/m68k/cf.md: Likewise.
16129 * config/m68k/crti.s: Likewise.
16130 * config/m68k/crtn.s: Likewise.
16131 * config/m68k/lb1sf68.asm: Likewise.
16132 * config/m68k/linux-unwind.h: Likewise.
16133 * config/mcore/crti.asm: Likewise.
16134 * config/mcore/crtn.asm: Likewise.
16135 * config/mcore/lib1.asm: Likewise.
16136 * config/mips/linux-unwind.h: Likewise.
16137 * config/mips/loongson.h: Likewise.
16138 * config/mips/mips16.S: Likewise.
16139 * config/mmix/crti.asm: Likewise.
16140 * config/mmix/crtn.asm: Likewise.
16141 * config/pa/fptr.c: Likewise.
16142 * config/pa/hpux-unwind.h: Likewise.
16143 * config/pa/lib2funcs.asm: Likewise.
16144 * config/pa/linux-atomic.c: Likewise.
16145 * config/pa/linux-unwind.h: Likewise.
16146 * config/pa/milli64.S: Likewise.
16147 * config/pa/quadlib.c: Likewise.
16148 * config/pa/stublib.c: Likewise.
16149 * config/picochip/libgccExtras/adddi3.asm: Likewise.
16150 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
16151 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
16152 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
16153 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
16154 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
16155 * config/picochip/libgccExtras/divmod15.asm: Likewise.
16156 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
16157 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
16158 * config/picochip/libgccExtras/longjmp.asm: Likewise.
16159 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
16160 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
16161 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
16162 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
16163 * config/picochip/libgccExtras/setjmp.asm: Likewise.
16164 * config/picochip/libgccExtras/subdi3.asm: Likewise.
16165 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
16166 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
16167 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
16168 * config/rs6000/750cl.h: Likewise.
16169 * config/rs6000/altivec.h: Likewise.
16170 * config/rs6000/biarch64.h: Likewise.
16171 * config/rs6000/crtresfpr.asm: Likewise.
16172 * config/rs6000/crtresgpr.asm: Likewise.
16173 * config/rs6000/crtresxfpr.asm: Likewise.
16174 * config/rs6000/crtresxgpr.asm: Likewise.
16175 * config/rs6000/crtsavfpr.asm: Likewise.
16176 * config/rs6000/crtsavgpr.asm: Likewise.
16177 * config/rs6000/darwin-asm.h: Likewise.
16178 * config/rs6000/darwin-fallback.c: Likewise.
16179 * config/rs6000/darwin-fpsave.asm: Likewise.
16180 * config/rs6000/darwin-ldouble.c: Likewise.
16181 * config/rs6000/darwin-tramp.asm: Likewise.
16182 * config/rs6000/darwin-unwind.h: Likewise.
16183 * config/rs6000/darwin-vecsave.asm: Likewise.
16184 * config/rs6000/darwin-world.asm: Likewise.
16185 * config/rs6000/e500crtres32gpr.asm: Likewise.
16186 * config/rs6000/e500crtres64gpr.asm: Likewise.
16187 * config/rs6000/e500crtres64gprctr.asm: Likewise.
16188 * config/rs6000/e500crtrest32gpr.asm: Likewise.
16189 * config/rs6000/e500crtrest64gpr.asm: Likewise.
16190 * config/rs6000/e500crtresx32gpr.asm: Likewise.
16191 * config/rs6000/e500crtresx64gpr.asm: Likewise.
16192 * config/rs6000/e500crtsav32gpr.asm: Likewise.
16193 * config/rs6000/e500crtsav64gpr.asm: Likewise.
16194 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
16195 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
16196 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
16197 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
16198 * config/rs6000/eabi-ci.asm: Likewise.
16199 * config/rs6000/eabi-cn.asm: Likewise.
16200 * config/rs6000/eabi.asm: Likewise.
16201 * config/rs6000/linux-unwind.h: Likewise.
16202 * config/rs6000/linux64.h: Likewise.
16203 * config/rs6000/paired.h: Likewise.
16204 * config/rs6000/paired.md: Likewise.
16205 * config/rs6000/ppc64-fp.c: Likewise.
16206 * config/rs6000/ppu_intrinsics.h: Likewise.
16207 * config/rs6000/rs6000.h: Likewise.
16208 * config/rs6000/si2vmx.h: Likewise.
16209 * config/rs6000/sol-ci.asm: Likewise.
16210 * config/rs6000/sol-cn.asm: Likewise.
16211 * config/rs6000/spe.h: Likewise.
16212 * config/rs6000/spu2vmx.h: Likewise.
16213 * config/rs6000/sysv4.h: Likewise.
16214 * config/rs6000/tramp.asm: Likewise.
16215 * config/rs6000/vec_types.h: Likewise.
16216 * config/s390/linux-unwind.h: Likewise.
16217 * config/s390/tpf-unwind.h: Likewise.
16218 * config/score/crti.asm: Likewise.
16219 * config/score/crtn.asm: Likewise.
16220 * config/sh/crt1.asm: Likewise.
16221 * config/sh/crti.asm: Likewise.
16222 * config/sh/crtn.asm: Likewise.
16223 * config/sh/divtab-sh4-300.c: Likewise.
16224 * config/sh/divtab-sh4.c: Likewise.
16225 * config/sh/divtab.c: Likewise.
16226 * config/sh/lib1funcs-4-300.asm: Likewise.
16227 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
16228 * config/sh/lib1funcs.asm: Likewise.
16229 * config/sh/lib1funcs.h: Likewise.
16230 * config/sh/linux-atomic.asm: Likewise.
16231 * config/sh/linux-unwind.h: Likewise.
16232 * config/sh/shmedia.h: Likewise.
16233 * config/sh/sshmedia.h: Likewise.
16234 * config/sh/ushmedia.h: Likewise.
16235 * config/sparc/crtfastmath.c: Likewise.
16236 * config/sparc/linux-unwind.h: Likewise.
16237 * config/sparc/sol2-c1.asm: Likewise.
16238 * config/sparc/sol2-ci.asm: Likewise.
16239 * config/sparc/sol2-cn.asm: Likewise.
16240 * config/spu/divmodti4.c: Likewise.
16241 * config/spu/divv2df3.c: Likewise.
16242 * config/spu/float_disf.c: Likewise.
16243 * config/spu/float_unsdidf.c: Likewise.
16244 * config/spu/float_unsdisf.c: Likewise.
16245 * config/spu/float_unssidf.c: Likewise.
16246 * config/spu/mfc_multi_tag_release.c: Likewise.
16247 * config/spu/mfc_multi_tag_reserve.c: Likewise.
16248 * config/spu/mfc_tag_release.c: Likewise.
16249 * config/spu/mfc_tag_reserve.c: Likewise.
16250 * config/spu/mfc_tag_table.c: Likewise.
16251 * config/spu/multi3.c: Likewise.
16252 * config/spu/spu_internals.h: Likewise.
16253 * config/spu/spu_intrinsics.h: Likewise.
16254 * config/spu/spu_mfcio.h: Likewise.
16255 * config/spu/vec_types.h: Likewise.
16256 * config/spu/vmx2spu.h: Likewise.
16257 * config/stormy16/stormy16-lib2.c: Likewise.
16258 * config/svr4.h: Likewise.
16259 * config/sync.c: Likewise.
16260 * config/v850/lib1funcs.asm: Likewise.
16261 * config/vxlib-tls.c: Likewise.
16262 * config/vxlib.c: Likewise.
16263 * config/vxworks-dummy.h: Likewise.
16264 * config/xtensa/crti.asm: Likewise.
16265 * config/xtensa/crtn.asm: Likewise.
16266 * config/xtensa/ieee754-df.S: Likewise.
16267 * config/xtensa/ieee754-sf.S: Likewise.
16268 * config/xtensa/lib1funcs.asm: Likewise.
16269 * config/xtensa/lib2funcs.S: Likewise.
16270 * config/xtensa/linux-unwind.h: Likewise.
16271 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
16272 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
16273 * coretypes.h: Likewise.
16274 * crtstuff.c: Likewise.
16275 * defaults.h: Likewise.
16276 * dwarf2.h: Likewise.
16277 * emutls.c: Likewise.
16278 * gbl-ctors.h: Likewise.
16279 * gcov-io.h: Likewise.
16280 * ginclude/float.h: Likewise.
16281 * ginclude/iso646.h: Likewise.
16282 * ginclude/stdarg.h: Likewise.
16283 * ginclude/stdbool.h: Likewise.
16284 * ginclude/stddef.h: Likewise.
16285 * ginclude/stdfix.h: Likewise.
16286 * ginclude/stdint-gcc.h: Likewise.
16287 * ginclude/tgmath.h: Likewise.
16288 * gthr-aix.h: Likewise.
16289 * gthr-dce.h: Likewise.
16290 * gthr-gnat.c: Likewise.
16291 * gthr-gnat.h: Likewise.
16292 * gthr-lynx.h: Likewise.
16293 * gthr-mipssde.h: Likewise.
16294 * gthr-nks.h: Likewise.
16295 * gthr-posix.c: Likewise.
16296 * gthr-posix.h: Likewise.
16297 * gthr-posix95.h: Likewise.
16298 * gthr-rtems.h: Likewise.
16299 * gthr-single.h: Likewise.
16300 * gthr-solaris.h: Likewise.
16301 * gthr-tpf.h: Likewise.
16302 * gthr-vxworks.h: Likewise.
16303 * gthr-win32.h: Likewise.
16304 * gthr.h: Likewise.
16305 * libgcc2.c: Likewise.
16306 * libgcc2.h: Likewise.
16307 * libgcov.c: Likewise.
16308 * tsystem.h: Likewise.
16309 * typeclass.h: Likewise.
16310 * unwind-c.c: Likewise.
16311 * unwind-compat.h: Likewise.
16312 * unwind-dw2-fde-compat.c: Likewise.
16313 * unwind-dw2-fde-darwin.c: Likewise.
16314 * unwind-dw2-fde-glibc.c: Likewise.
16315 * unwind-dw2-fde.c: Likewise.
16316 * unwind-dw2-fde.h: Likewise.
16317 * unwind-dw2.c: Likewise.
16318 * unwind-dw2.h: Likewise.
16319 * unwind-generic.h: Likewise.
16320 * unwind-pe.h: Likewise.
16321 * unwind-sjlj.c: Likewise.
16322 * unwind.inc: Likewise.
16323 * config/arm/neon-gen.ml: Change generated copyright header to
16324 refer to version 3 of the GNU General Public License with
16325 version 3.1 of the GCC Runtime Library Exception and to point
16326 readers at the COPYING3 and COPYING3.RUNTIME files and the
16327 FSF's license web page.
16328 * config/arm/arm_neon.h: Regenerate.
16329
163302009-04-09 Jakub Jelinek <jakub@redhat.com>
16331
16332 * config/cris/cris.md: Change copyright header to refer to version
16333 3 of the GNU General Public License.
16334 * doc/install.texi2html: Change copyright header to refer to version
16335 3 of the GNU General Public License and to point readers at the
16336 COPYING3 file and the FSF's license web page.
16337 * config/vax/linux.h: Likewise.
16338
8e58aded 163392009-04-09 Paolo Bonzini <bonzini@gnu.org>
16340
7df298fe 16341 * config/i386/i386.md (cmpcc): New.
16342 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
16343 (sync_compare_and_swap_cc*): Delete.
16344
16345 * config/s390/s390.c (s390_compare_emitted): Remove.
16346 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
16347 s390_compare_emitted used to be handled. Assert that modes match.
16348 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
16349 refer to sync_compare_and_swap_ccsi.
16350 * config/s390/s390.h (s390_compare_emitted): Remove.
16351 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
16352 instead of s390_compare_emitted.
16353 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
16354 instead of s390_compare_emitted.
16355 * config/s390/s390.md (cmpcc): New.
16356 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
16357 CC_REGNUM, do not pretend it's set.
16358 (sync_compare_and_swap_cc*): Delete.
16359 * config/s390/predicates.md (cc_reg_operand): New.
16360
16361 * expr.c (sync_compare_and_swap_cc): Delete.
16362 * optabs.h (sync_compare_and_swap_cc): Delete.
16363 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
16364 is being used with can_compare_p.
16365 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
16366 (find_cc_set): New.
16367 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
16368 look for a MODE_CC set instead. Use emit_store_flag.
16369 (expand_compare_and_swap_loop): Likewise, with some additional
16370 complication to avoid a force_reg when useless. Use
16371 emit_cmp_and_jump_insns.
16372 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
16373 * doc/md.texi (sync_compare_and_swap_cc): Merge with
16374 sync_compare_and_swap documentation.
8e58aded 16375
98b64106 163762009-04-09 Jan Hubicka <jh@suse.cz>
16377
16378 * except.c (find_prev_try): Break out from ....
16379 (duplicate_eh_regions): ... here; properly update prev_try pointers
16380 when duplication part of tree.
16381 (dump_eh_tree): Improve dumping.
16382 (verify_eh_region): New.
16383 (verify_eh_tree): Use it.
16384
d7dfb761 163852009-04-06 Richard Guenther <rguenther@suse.de>
16386
16387 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
16388 &ARRAY addresses by adjusting their types and prepending
16389 a conversion.
16390 * tree-cfg.c (verify_gimple_assign_single): Verify that
16391 addresses are correct.
16392
87c5de3b 163932009-04-09 Richard Guenther <rguenther@suse.de>
16394
16395 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
16396 indices into an array reference if possible.
16397 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
16398 Fold POINTER_PLUS_EXPR statements with invariant address.
16399
50ec89c7 164002009-04-09 Alan Modra <amodra@bigpond.net.au>
16401
16402 PR target/39634
16403 * config.gcc (powerpc64-*-linux*): Always build biarch.
16404
482c1ea0 164052009-04-09 Joseph Myers <joseph@codesourcery.com>
16406
16407 PR c/39613
16408 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
16409 it and pedwarn if this results in an INTEGER_CST.
16410
fec76ae9 164112009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16412
16413 * doc/install.texi: Update minimum GMP version. Remove obsolete
16414 text in MPFR section.
16415
a974aa3e 164162009-04-08 Jakub Jelinek <jakub@redhat.com>
16417
16418 * dwarf2out.c (class_scope_p): New static inline.
16419 (class_or_namespace_scope_p): Use it.
16420 (gen_variable_die): Use DW_TAG_member tag for static data member
16421 declarations instead of DW_TAG_variable.
16422
e1a7ccb9 16423 PR middle-end/39573
16424 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
16425 variables.
16426
94373fa5 164272009-04-08 Richard Guenther <rguenther@suse.de>
16428
16429 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
16430 valueize random data.
16431
b5e8a0bc 164322009-04-08 David Edelsohn <edelsohn@gnu.org>
16433
16434 * config.gcc (aix tm_file): Add aix-stdint.h.
16435 (aix tm clause use_gcc_stdint): Set to wrap.
16436 * config/rs6000/aix-stdint.h: New file.
89871bab 16437
3a44a278 164382009-04-08 Richard Guenther <rguenther@suse.de>
16439
16440 PR middle-end/36291
16441 * tree-dfa.c (add_referenced_var): Do not recurse into
16442 global initializers.
16443 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
16444 exposed variables.
16445 (fold_const_aggregate_ref): Likewise.
16446
c429965c 164472009-04-08 Paolo Bonzini <bonzini@gnu.org>
16448
0ed4dbb4 16449 * recog.c (ordered_comparison_operator): New.
16450 * gensupport.c (std_preds): Add it.
c429965c 16451 * doc/md.texi (Machine-Independent Predicates): Document it.
16452
48d5ef93 164532009-04-08 Jan Hubicka <jh@suse.cz>
16454
16455 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
16456 * function.h (rtl_eh): Remove exception_handler_label_map.
16457 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
16458 remove_exception_handler_label, for_each_eh_label_1): Remove.
16459 (rtl_remove_unreachable_regions): Remove.
16460 (convert_from_eh_region_ranges): Do not remove unreachable regions.
16461 (find_exception_handler_labels): Don't build the hashtable.
16462 (maybe_remove_eh_handler): Remove.
16463 (for_each_eh_label): Rewrite to walk the tree.
16464 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
16465 * except.h (maybe_remove_eh_handler): Remove.
16466 * passes.c (init_optimization_passes): Schedule second EH cleanup
16467 before out-of-ssa.
16468 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
16469 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
16470
cbb955b0 164712009-04-08 Paolo Bonzini <bonzini@gnu.org>
16472
16473 * genoutput.c (validate_optab_operands): New.
16474 (gen_insn, gen_expand): Call it.
16475
16476 * genflags.c (gen_insn): Detect misused iterators.
16477 (main): Pass line_no to gen_insn, exit with status 1 on error.
16478
16479 * genextract.c (line_no): Make global.
16480 (VEC_safe_set_locstr): Change assertion to error message.
16481 (main): Exit with status 1 on error.
16482
9a8bed72 164832009-04-08 Joseph Myers <joseph@codesourcery.com>
16484
16485 PR c/39614
16486 PR c/39673
16487 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
16488 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
16489 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
16490 * c-convert.c (convert): Do not call fold on results of conversion
16491 functions when the result is a C_MAYBE_CONST_EXPR.
16492 * c-parser.c (c_parser_postfix_expression): Do not fold condition
16493 of __builtin_choose_expr.
16494 * c-typeck.c (remove_c_maybe_const_expr): New.
16495 (build_unary_op, build_conditional_expr, build_compound_expr,
16496 build_binary_op, c_objc_common_truthvalue_conversion): Call
16497 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
16498 integer operands.
16499
943327c1 165002009-04-08 Bingfeng Mei <bmei@broadcom.com>
87de4c68 16501
89871bab 16502 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
0ed4dbb4 16503 CODE to produce a new one. Add a prototype to use fold_convert_const
87de4c68 16504
1e37e2e4 165052009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
16506
16507 PR bootstrap/39660
16508 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
16509 mix declarations and code.
16510
c68bcf58 165112009-04-08 Ben Elliston <bje@au.ibm.com>
16512
16513 * gcc.c: Replace `CC' with `GCC' throughout.
16514
a015dc67 165152009-04-07 H.J. Lu <hongjiu.lu@intel.com>
16516
16517 * doc/invoke.texi: Document Atom support.
16518
fc8ee10c 165192009-04-07 Jason Merrill <jason@redhat.com>
16520
16521 PR c++/25185
16522 * c-common.h, c-common.c: Add flag_pretty_templates.
16523 * c-opts.c (c_common_handle_option): Set it.
16524 * c.opt: Add -fno-pretty-templates.
16525 * doc/invoke.texi (C++ Dialect Options): Likewise.
16526
9b57ed9f 165272009-04-07 Uros Bizjak <ubizjak@gmail.com>
16528
16529 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
16530 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
16531 (ia64_expand_builtin): Likewise.
16532
9b973aa6 165332009-04-07 Martin Jambor <mjambor@suse.cz>
16534
16535 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
16536 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
16537 ADDR_EXPRS are include too.
16538
09347e88 165392009-04-07 Richard Guenther <rguenther@suse.de>
16540
16541 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
16542 decls are only used if passes as parameters or if they are
16543 local statics and the call is not to a builtin.
16544 (call_may_clobber_ref_p_1): Likewise.
16545
da4963ce 165462009-04-07 Paolo Bonzini <bonzini@gnu.org>
16547
16548 * expr.c (do_store_flag): Remove last argument. Simplify code
16549 to avoid duplication of tests already done by can_compare_p.
16550 (expand_expr_real_1): Adjust caller.
16551
235155da 165522009-04-07 Paolo Bonzini <bonzini@gnu.org>
16553
9b57ed9f 16554 * optabs.c (can_compare_p): Test the predicate of a
16555 cbranch and cstore pattern.
235155da 16556
2040a7e4 165572009-04-07 Paolo Bonzini <bonzini@gnu.org>
16558
9b57ed9f 16559 * expr.c (convert_move): Use emit_store_flag instead of
16560 "emulating" it.
2040a7e4 16561
a5f5a6f7 165622009-04-07 Paolo Bonzini <bonzini@gnu.org>
16563
9b57ed9f 16564 * config/i386/i386.c (ix86_compare_emitted): Remove.
16565 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
16566 ix86_compare_op0 like ix86_compare_emitted used to be handled.
16567 * config/i386/i386.h (ix86_compare_emitted): Remove.
16568 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
16569 instead of ix86_compare_emitted.
16570 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
a5f5a6f7 16571
fa22494c 165722009-04-07 Andrew Stubbs <ams@codesourcery.com>
16573
16574 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
16575 Add t-sysroot-suffix to tmake_file.
16576 * config/print-sysroot-suffix.sh: New file.
16577 * config/t-sysroot-suffix: New file.
16578
e73bbd21 165792009-04-07 Ben Elliston <bje@au.ibm.com>
16580
16581 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
16582 as the latter produces a warning when the target does not support
16583 infinity.
16584
d5cd42ef 165852009-04-07 Ben Elliston <bje@au.ibm.com>
16586
16587 * dfp.c: Replace type punning assignments with memcpy throughout.
16588 * Makefile.in (dfp.o-warn): Remove.
89871bab 16589
4e5e2802 165902009-04-07 Alan Modra <amodra@bigpond.net.au>
16591
16592 PR target/39634
16593 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
16594 Include soft-fp/t-softfp after rs6000/t-linux64.
16595
30904b2c 165962009-04-06 Eric Botcazou <ebotcazou@adacore.com>
16597
16598 * stor-layout.c (set_sizetype): Use the full precision of their
16599 machine mode for bitsize types.
16600
3544e448 166012009-04-06 H.J. Lu <hongjiu.lu@intel.com>
16602
16603 * config/i386/i386.md: Revert 2 accidental checkins.
16604
fbfe006e 166052009-04-06 Joey Ye <joey.ye@intel.com>
943327c1 16606 Xuepeng Guo <xuepeng.guo@intel.com>
fbfe006e 16607 H.J. Lu <hongjiu.lu@intel.com>
16608
16609 Atom pipeline model, tuning and insn selection.
16610 * config.gcc (atom): Add atom config options and target.
16611
16612 * config/i386/atom.md: New.
16613
16614 * config/i386/i386.c (atom_cost): New cost.
16615 (m_ATOM): New macro flag.
16616 (initial_ix86_tune_features): Set m_ATOM.
16617 (x86_accumulate_outgoing_args): Likewise.
16618 (x86_arch_always_fancy_math_387): Likewise.
16619 (processor_target): Add Atom cost.
16620 (cpu_names): Add Atom cpu name.
16621 (override_options): Set Atom ISA.
16622 (ix86_issue_rate): New case PROCESSOR_ATOM.
16623 (ix86_adjust_cost): Likewise.
16624
16625 * config/i386/i386.h (TARGET_ATOM): New target macro.
16626 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
16627 (TARGET_OPT_AGU): New target option.
16628 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
16629 (processor_type): Add PROCESSOR_ATOM.
16630
16631 * config/i386/i386.md (cpu): Add new value "atom".
16632 (use_carry, movu): New attr.
16633 (atom.md): Include atom.md.
16634 (adddi3_carry_rex64): Set attr "use_carry".
16635 (addqi3_carry): Likewise.
16636 (addhi3_carry): Likewise.
16637 (addsi3_carry): Likewise.
16638 (*addsi3_carry_zext): Likewise.
16639 (subdi3_carry_rex64): Likewise.
16640 (subqi3_carry): Likewise.
16641 (subhi3_carry): Likewise.
16642 (subsi3_carry): Likewise.
16643 (x86_movdicc_0_m1_rex64): Likewise.
16644 (*x86_movdicc_0_m1_se): Likewise.
16645 (x86_movsicc_0_m1): Likewise.
16646 (*x86_movsicc_0_m1_se): Likewise.
16647 (*adddi_1_rex64): Emit add insn as much as possible.
16648 (*addsi_1): Likewise.
16649 (return_internal): Set atom_unit.
16650 (return_internal_long): Likewise.
16651 (return_pop_internal): Likewise.
16652 (*rcpsf2_sse): Set atom_sse_attr attr.
16653 (*qrt<mode>2_sse): Likewise.
16654 (*prefetch_sse): Likewise.
16655
16656 * config/i386/i386-c.c (ix86_target_macros_internal): New case
16657 PROCESSOR_ATOM.
16658 (ix86_target_macros_internal): Likewise.
16659
16660 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
16661 (*prefetch_sse_rex): Likewise.
16662 (sse_rcpv4sf2): Likewise.
16663 (sse_vmrcpv4sf2): Likewise.
16664 (sse_sqrtv4sf2): Likewise.
16665 (<sse>_vmsqrt<mode>2): Likewise.
16666 (sse_ldmxcsr): Likewise.
16667 (sse_stmxcsr): Likewise.
16668 (*sse_sfence): Likewise.
16669 (sse2_clflush): Likewise.
16670 (*sse2_mfence): Likewise.
16671 (*sse2_lfence): Likewise.
16672 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
16673 (<sse>_movup<ssemodesuffixf2c>): Likewise.
16674 (avx_movdqu<avxmodesuffix>): Likewise.
16675 (avx_lddqu<avxmodesuffix>): Likewise.
16676 (sse2_movntv2di): Change attr "type" to "ssemov".
16677 (sse2_movntsi): Likewise.
16678 (rsqrtv8sf2): Change attr "type" to "sseadd".
16679 (sse3_addsubv2df3): Set attr "atom_unit".
16680 (sse3_h<plusminus_insn>v4sf3): Likewise.
16681 (*sse2_pmaddwd): Likewise.
16682 (*vec_extractv2di_1_rex64): Likewise.
16683 (*vec_extractv2di_1_avx): Likewise.
16684 (sse2_psadbw): Likewise.
16685 (ssse3_phaddwv8hi3): Likewise.
16686 (ssse3_phaddwv4hi3): Likewise.
16687 (ssse3_phadddv4si3): Likewise.
16688 (ssse3_phadddv2si3): Likewise.
16689 (ssse3_phaddswv8hi3): Likewise.
16690 (ssse3_phaddswv4hi3): Likewise.
16691 (ssse3_phsubwv8hi3): Likewise.
16692 (ssse3_phsubwv4hi3): Likewise.
16693 (ssse3_phsubdv4si3): Likewise.
16694 (ssse3_phsubdv2si3): Likewise.
16695 (ssse3_phsubswv8hi3): Likewise.
16696 (ssse3_phsubswv4hi3): Likewise.
16697 (ssse3_pmaddubsw128): Likewise.
16698 (sse3_pmaddubsw: Likewise.
16699 (ssse3_palignrti): Likewise.
16700 (ssse3_palignrdi): Likewise.
16701
ad659dc9 167022009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
16703
16704 * doc/install.texi (Specific): Fix two cross-references to MinGW.
16705
220307de 167062009-04-06 Richard Guenther <rguenther@suse.de>
16707
16708 PR tree-optimization/28868
16709 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
16710 of which PHI results we inserted.
16711 (insert_into_preds_of_block): Record inserted PHIs.
16712 (eliminate): Eliminate redundant PHI nodes.
16713 (init_pre): Init inserted_phi_names.
16714
0fefde02 167152009-04-06 Richard Guenther <rguenther@suse.de>
16716
16717 PR tree-optimization/39643
16718 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
16719 IMAGPART_EXPRs of complex constants.
16720 (execute_fold_all_builtins): If we folded a call queue
16721 TODO_update_address_taken.
16722
b07ddb92 167232009-04-06 Jan Hubicka <jh@suse.cz>
16724
16725 PR middle-end/39659
16726 * except.c (remove_unreachable_regions): Propagate may_contain_throw
16727 flag.
16728
85714674 167292009-04-06 Andrew Stubbs <ams@codesourcery.com>
16730
16731 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
16732 delay slot.
16733 (ic_invalidate_array): Likewise.
16734
943327c1 167352009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
c2fd5e89 16736
16737 * calls.c (emit_library_call_value_1): Fix a problem with parameter
16738 alignment for library calls.
16739
8953973a 167402009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
16741
16742 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
16743 (mingw32 tm clause use_gcc_stdint): Set to wrap.
16744 * config/i386/mingw-stdint.h: New file.
16745
eb04d2de 167462009-04-05 Richard Guenther <rguenther@suse.de>
16747
16748 PR tree-optimization/39648
16749 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
16750 our &A vs. &A[0] IL deficiencies.
16751
0f656a57 167522009-04-04 Jan Hubicka <jh@suse.cz>
16753
eb04d2de 16754 * except.c (sjlj_find_directly_reachable_regions): Be ready for
16755 removed toplevel regions.
0f656a57 16756 (sjlj_mark_call_sites): Likewise.
16757
615180dd 167582009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
16759
16760 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
16761 (cygwin tm clause use_gcc_stdint): Set to wrap.
16762 * config/i386/cygwin-stdint.h: New file.
16763
23a3430d 167642009-04-04 Richard Guenther <rguenther@suse.de>
16765
16766 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
16767 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
16768 single-argument PHIs if we are in loop-closed SSA form.
16769 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
16770 for the pre-condition.
16771 (slpeel_tree_peel_loop_to_edge): Likewise.
16772 (vect_build_loop_niters): Take an optional sequence to append stmts.
16773 (vect_generate_tmps_on_preheader): Likewise.
16774 (vect_do_peeling_for_loop_bound): Take extra guards for the
16775 pre-condition.
16776 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
16777 the cost model check.
16778 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
c72c72ef 16779 guards if we are going to peel. Do not apply versioning in that case.
23a3430d 16780 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
16781 (vect_do_peeling_for_loop_bound): Likewise.
16782 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
16783 loop bound only record extra pre-conditions, do not apply loop
16784 versioning.
16785
42e901a3 167862009-04-04 Richard Guenther <rguenther@suse.de>
16787
16788 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
16789 renaming code.
16790
87490e08 167912009-04-04 Jan Hubicka <jh@suse.cz>
16792
16793 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
16794 last_basic_block for size of bb->index indexed array.
16795 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
16796 compute_out, link_btr_uses, build_btr_def_use_webs,
16797 build_btr_def_use_webs, migrate_btr_defs): Likewise.
16798
686e094c 167992009-04-04 Jan Hubicka <jh@suse.cz>
16800
16801 * except.c (remove_eh_handler_and_replace): Break out from ...
16802 (remove_eh_handler): ... here.
16803 (bring_to_root): New function.
16804 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
16805 handled ones, bring others to root of tree.
16806
3bd82487 168072009-04-04 Jan Hubicka <jh@suse.cz>
16808
74eed1ed 16809 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
16810 (all_phis_safe_to_merge): New function.
16811 (update_info): New structure.
16812 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
16813 (cleanup_empty_eh): Update SSA if possible.
3bd82487 16814
17fbf1b8 168152009-04-04 Richard Guenther <rguenther@suse.de>
16816
16817 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
16818 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
16819 (append_vuse): Likewise.
16820
d02454a0 168212009-04-04 Jakub Jelinek <jakub@redhat.com>
16822
16823 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
16824 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
16825 instead of REG_UNSAVED for DW_CFA_undefined.
16826 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
16827 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
16828 outermost frame.
16829
19f6bf8d 168302009-04-04 Richard Earnshaw <rearnsha@arm.com>
16831
16832 PR target/39501
16833 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
16834 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
16835 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
16836
d12dee9c 168372009-04-04 Richard Guenther <rguenther@suse.de>
16838
16839 PR tree-optimization/8781
16840 PR tree-optimization/37892
16841 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
16842 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
16843 (valueize_refs): Call it for *& valueizations.
16844 (shared_reference_ops_from_ref): Rename to ...
16845 (valueize_shared_reference_ops_from_ref): ... this and valueize.
16846 (shared_reference_ops_from_call): Rename to ...
16847 (valueize_shared_reference_ops_from_call): ... this and valueize.
16848 (vn_reference_lookup): Update.
16849 (visit_reference_op_call): Likewise.
16850 * tree-ssa-pre.c (phi_translate_1): Fold *&.
16851 (eliminate): Value-replace the call address in call statements.
16852
507b89a4 168532009-04-04 Richard Guenther <rguenther@suse.de>
16854
16855 PR tree-optimization/39636
16856 * tree-ssa-forwprop.c
16857 (forward_propagate_addr_into_variable_array_index): Check for
16858 GIMPLE_ASSIGN before accessing the rhs code.
16859
4a83184b 168602009-04-03 Jason Merrill <jason@redhat.com>
16861
16862 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
16863
d363dedc 168642009-04-03 Steve Ellcey <sje@cup.hp.com>
16865
16866 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
16867 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
16868 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
16869 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
16870 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
16871 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
16872 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
16873 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
16874 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
16875 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
16876 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
16877 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
16878 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
16879 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
16880 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
16881 Use fr_reg_or_fp01_operand instead of fr_register_operand
16882
16883 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
16884 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
16885 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
16886
2dd81ece 168872009-04-03 Vladimir Makarov <vmakarov@redhat.com>
16888
acc6de19 16889 PR rtl-optimization/39607
16890 PR rtl-optimization/39631
c72c72ef 16891
16892 Revert:
89871bab 16893
2dd81ece 16894 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
16895 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
16896 instead of DF_LR_OUT.
16897 * ira-lives.c (process_bb_node_lives): Ditto.
16898 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
16899 instead of DF_LR_{OUT,IN}.
16900 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
16901 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
16902
41709826 169032009-04-03 Steven Bosscher <steven@gcc.gnu.org>
16904
16905 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
16906 (execute_lower_omp): Always run but take the short way out if -fopenmp
16907 is not given.
16908 (gate_lower_omp): Remove, forcing the pass manager to always run the
16909 pass and always set PROP_gimple_lomp.
16910 (pass_lower_omp): Remove gate function.
16911 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
16912 PROP_trees. Instead, require it.
16913 * ipa-cp.c (pass_ipa_cp): Likewise.
16914 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
16915 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
16916 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
16917 and PROP_gimple_leh.
16918
dd277d48 169192009-04-03 Richard Guenther <rguenther@suse.de>
16920
16921 PR middle-end/13146
16922 PR tree-optimization/23940
16923 PR tree-optimization/33237
16924 PR middle-end/33974
16925 PR middle-end/34093
16926 PR tree-optimization/36201
16927 PR tree-optimization/36230
16928 PR tree-optimization/38049
16929 PR tree-optimization/38207
16930 PR tree-optimization/38230
16931 PR tree-optimization/38301
16932 PR tree-optimization/38585
16933 PR middle-end/38895
16934 PR tree-optimization/38985
16935 PR tree-optimization/39299
16936 * tree-ssa-structalias.h: Remove.
16937 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
16938 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
16939 (struct vuse_element_d): Remove.
16940 (struct vuse_vec_d): Likewise.
16941 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
16942 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
16943 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
16944 VUSE_ELEMENT_VAR): Likewise.
16945 (struct voptype_d): Likewise.
16946 (NUM_VOP_FREE_BUCKETS): Likewise.
16947 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
16948 (struct stmt_operands_d): Remove.
16949 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
16950 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
16951 VDEF_NUM, VDEF_VECT): Likewise.
16952 (copy_virtual_operands): Remove.
16953 (operand_build_cmp): Likewise.
16954 (create_ssa_artificial_load_stmt): Likewise.
16955 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
16956 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
16957 vuse_index and mayuse_index members. Pack and move done and iter_type
16958 members to the front.
16959 (SSA_OP_VMAYUSE): Remove.
16960 (SSA_OP_VIRTUAL_USES): Adjust.
16961 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
16962 (unlink_stmt_vdef): Declare.
16963 (add_to_addressable_set): Remove.
16964 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
16965 (vrp_visit_stmt): Likewise.
16966 * doc/tree-ssa.texi (Alias analysis): Update.
16967 * doc/invoke.texi (max-aliased-vops): Remove docs.
16968 (avg-aliased-vops): Likewise.
16969 * tree-into-ssa.c (syms_to_rename): Remove.
16970 (need_to_update_vops_p): Likewise.
16971 (need_to_initialize_update_ssa_p): Rename to ...
16972 (update_ssa_initialized_fn): ... this. Track function we are
16973 initialized for.
16974 (symbol_marked_for_renaming): Simplify.
16975 (add_new_name_mapping): Do not set need_to_update_vops_p.
16976 (dump_currdefs): Use SYMS_TO_RENAME.
16977 (rewrite_update_stmt): Always walk all uses/defs.
16978 (dump_update_ssa): Adjust.
16979 (init_update_ssa): Take function argument. Track what we are
16980 initialized for.
16981 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
16982 (create_new_def_for): Initialize for cfun, assert we are initialized
16983 for cfun.
16984 (mark_sym_for_renaming): Simplify.
16985 (mark_set_for_renaming): Do not initialize update-ssa.
16986 (need_ssa_update_p): Simplify. Take function argument.
16987 (name_mappings_registered_p): Assert we ask for the correct function.
16988 (name_registered_for_update_p): Likewise.
16989 (ssa_names_to_replace): Likewise.
16990 (release_ssa_name_after_update_ssa): Likewise.
16991 (update_ssa): Likewise. Use SYMS_TO_RENAME.
16992 (dump_decl_set): Do not print a newline.
16993 (debug_decl_set): Do it here.
16994 (dump_update_ssa): And here.
16995 * tree-ssa-loop-im.c (move_computations): Adjust.
16996 (movement_possibility): Likewise.
16997 (determine_max_movement): Likewise.
16998 (gather_mem_refs_stmt): Likewise.
16999 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
17000 or NAME_MEMORY_TAG.
17001 * tree-complex.c (update_all_vops): Remove.
17002 (expand_complex_move): Adjust.
17003 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
17004 Simplify test for memory referencing statement. Exclude
17005 non-invariant ADDR_EXPRs.
17006 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
17007 * tree-loop-distribution.c (generate_memset_zero): Adjust.
17008 (rdg_flag_uses): Likewise.
17009 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
17010 related code.
17011 (tree_optimize_tail_calls_1): Also split the
17012 edge from the entry block if we have degenerate PHI nodes in
17013 the first basic block.
17014 * tree.c (init_ttree): Remove memory-tag related code.
17015 (tree_code_size): Likewise.
17016 (tree_node_structure): Likewise.
17017 (build7_stat): Re-write to be build6_stat.
17018 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
17019 (SSA_VAR_P): Adjust.
17020 (struct tree_memory_tag): Remove.
17021 (struct tree_memory_partition_tag): Likewise.
17022 (union tree_node): Adjust.
17023 (build7): Re-write to be build6.
17024 * tree-pass.h (pass_reset_cc_flags): Remove.
17025 (TODO_update_address_taken): New flag.
17026 (pass_simple_dse): Remove.
17027 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
17028 * params.h (MAX_ALIASED_VOPS): Remove.
17029 (AVG_ALIASED_VOPS): Likewise.
17030 * omp-low.c (expand_omp_taskreg): Update SSA form.
17031 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
17032 aliases the lhs in a copy stmt.
17033 * tree-ssa-dse.c (struct address_walk_data): Remove.
17034 (memory_ssa_name_same): Likewise.
17035 (memory_address_same): Likewise.
17036 (get_kill_of_stmt_lhs): Likewise.
17037 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
17038 unused stores. Look through PHI nodes into post-dominated regions.
17039 (dse_optimize_stmt): Simplify. Properly remove stores.
17040 (tree_ssa_dse): Compute dominators.
17041 (execute_simple_dse): Remove.
17042 (pass_simple_dse): Likewise.
17043 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
17044 gimple_loaded_syms and gimple_stored_syms computation.
17045 * toplev.c (dump_memory_report): Dump alias and pta stats.
17046 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
17047 (vn_reference_eq): Likewise.
17048 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
17049 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
17050 valueize_vuses): Remove.
17051 (get_def_ref_stmt_vuses): Simplify. Rename to ...
17052 (get_def_ref_stmt_vuse): ... this.
17053 (vn_reference_lookup_2): New function.
17054 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
17055 walking equivalent vuses. Simplify.
17056 (vn_reference_lookup): Likewise.
17057 (vn_reference_insert): Likewise.
17058 (vn_reference_insert_pieces): Likewise.
17059 (visit_reference_op_call): Simplify.
17060 (visit_reference_op_load): Likewise.
17061 (visit_reference_op_store): Likewise.
17062 (init_scc_vn): Remove shared_lookup_vuses initialization.
17063 (free_scc_vn): Remove shared_lookup_vuses freeing.
17064 (sort_vuses, sort_vuses_heap): Remove.
17065 (get_ref_from_reference_ops): Export.
17066 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
17067 vector with single vuse pointer.
17068 (vn_reference_lookup_pieces, vn_reference_lookup,
17069 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
17070 (shared_vuses_from_stmt): Remove.
17071 (get_ref_from_reference_ops): Declare.
17072 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
17073 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
17074 memory-tag related code.
17075 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
17076 (likely_value): Add comment, skip static-chain of call statements.
17077 (surely_varying_stmt_p): Adjust.
17078 (gimplify_and_update_call_from_tree): Likewise.
17079 (execute_fold_all_builtins): Do not rebuild alias info.
17080 (gimplify_and_update_call_from_tree): Properly update VOPs.
17081 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
17082 (copy_ref_info): Remove memory-tag related code.
17083 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
17084 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
17085 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
17086 computation.
17087 * tree-ssa-dom.c (gimple_p): Remove typedef.
17088 (eliminate_redundant_computations): Adjust.
17089 (record_equivalences_from_stmt): Likewise.
17090 (avail_expr_hash): Likewise.
17091 (avail_expr_eq): Likewise.
c72c72ef 17092 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
dd277d48 17093 (stmt_makes_single_load): Likewise.
17094 (stmt_makes_single_store): Likewise.
17095 * tree-ssa-alias.c: Rewrite completely.
17096 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
17097 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
17098 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
17099 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
17100 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
17101 Remove public functions.
17102 (pass_reset_cc_flags): Remove.
17103 (pass_build_alias): Move ...
17104 * tree-ssa-structalias.c (pass_build_alias): ... here.
17105 * tree-ssa-alias.c (may_be_aliased): Move ...
17106 * tree-flow-inline.h (may_be_aliased): ... here.
17107 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
17108 count_uses_and_derefs): Move ...
17109 * gimple.c: ... here.
17110 * gimple.h (count_uses_and_derefs): Declare.
17111 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
17112 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
17113 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
17114 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
17115 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
17116 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
17117 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
17118 New functions.
17119 * tree-dfa.c (refs_may_alias_p): Move ...
17120 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
17121 * tree-ssa-alias.h: New file.
17122 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
17123 (statement_sink_location): Likewise.
17124 * opts.c (decode_options): Do not adjust max-aliased-vops or
17125 avg-aliased-vops values.
17126 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
17127 (TV_CALL_CLOBBER): Likewise.
17128 (TV_FLOW_SENSITIVE): Likewise.
17129 (TV_FLOW_INSENSITIVE): Likewise.
17130 (TV_MEMORY_PARTITIONING): Likewise.
17131 (TV_ALIAS_STMT_WALK): New timevar.
17132 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
17133 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
17134 (get_address_description): Remove memory-tag related code.
17135 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
17136 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
17137 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
17138 and immediate uses in statements. Document.
17139 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
17140 (dump_symbols): Remove.
17141 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
17142 * alias.c (get_deref_alias_set): New function split out from ...
17143 (get_alias_set): ... here.
17144 * alias.h (get_deref_alias_set): Declare.
17145 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
17146 type parameter. Remove restrict pointer handling. Create a
17147 ref-all pointer in case type-based alias sets do not conflict.
17148 (vect_analyze_data_refs): Remove SMT related code.
17149 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
17150 (vectorizable_load): Likewise.
17151 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
17152 (DR_SYMBOL_TAG, DR_VOPS): Remove.
17153 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
17154 Ignore vops and SMTs.
17155 (dr_analyze_alias): Likewise..
17156 (free_data_ref): Likewise.
17157 (create_data_ref): Likewise.
17158 (analyze_all_data_dependences): Likewise.
17159 (get_references_in_stmt): Adjust.
17160 * tree-flow-inline.h (gimple_aliases_computed_p,
17161 gimple_addressable_vars, gimple_call_clobbered_vars,
17162 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
17163 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
17164 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
17165 gimple_mem_ref_stats): Remove.
17166 (gimple_vop): New function.
17167 (op_iter_next_use): Remove vuses and mayuses cases.
17168 (op_iter_next_def): Remove vdefs case.
17169 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
17170 (clear_and_done_ssa_iter): Do not set removed fields.
17171 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
17172 Assert we are not iterating over vuses or vdefs if not also
17173 iterating over uses or defs.
17174 (op_iter_init_use): Likewise.
17175 (op_iter_init_def): Likewise.
17176 (op_iter_next_vdef): Remove.
17177 (op_iter_next_mustdef): Likewise.
17178 (op_iter_init_vdef): Likewise.
17179 (compare_ssa_operands_equal): Likewise.
17180 (link_use_stmts_after): Handle vuse operand.
17181 (is_call_used): Use is_call_clobbered.
17182 (is_call_clobbered): Global variables are always call clobbered,
17183 query the call-clobbers bitmap.
17184 (mark_call_clobbered): Ignore global variables.
17185 (clear_call_clobbered): Likewise.
17186 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
17187 virtual operands sanity check.
17188 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
17189 Remove.
17190 (TARGET_MEM_REF): Remove TMR_TAG operand.
17191 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
17192 Remove call-clobber related code.
17193 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
17194 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
17195 partitions or escape reason.
17196 (get_single_def_stmt, get_single_def_stmt_from_phi,
17197 get_single_def_stmt_with_phi): Remove.
17198 (dump_referenced_vars): Tidy.
17199 (get_ref_base_and_extent): Allow bare decls.
17200 (collect_dfa_stats): Adjust.
17201 * graphite.c (rename_variables_in_stmt): Adjust.
17202 (graphite_copy_stmts_from_block): Likewise.
17203 (translate_clast): Likewise.
17204 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
17205 (EXPR_DIES): New.
17206 (translate_vuse_through_block): Use the oracle.
17207 (phi_translate_1): Adjust.
17208 (value_dies_in_block_x): Use the oracle. Cache the outcome
17209 in EXPR_DIES.
17210 (valid_in_sets): Check if the VUSE for
17211 a REFERENCE is available.
17212 (eliminate): Do not remove stmts during elimination,
17213 instead queue and remove them afterwards.
17214 (do_pre): Do not rebuild alias info.
17215 (pass_pre): Run TODO_rebuild_alias before PRE.
17216 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
17217 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
17218 (mark_all_v_defs_stmt): Remove.
17219 (mark_all_v_defs_seq): Adjust.
17220 (sra_replace): Likewise.
17221 (scalarize_use): Likewise.
17222 (scalarize_copy): Likewise.
17223 (scalarize_init): Likewise.
17224 (scalarize_ldst): Likewise.
17225 (todoflags): Remove.
17226 (tree_sra): Do not rebuild alias info.
17227 (tree_sra_early): Adjust.
17228 (pass_sra): Run TODO_update_address_taken before SRA.
17229 * tree-predcom.c (set_alias_info): Remove.
17230 (prepare_initializers_chain): Do not call it.
17231 (mark_virtual_ops_for_renaming): Adjust.
17232 (mark_virtual_ops_for_renaming_list): Remove.
17233 (initialize_root_vars): Adjust.
17234 (initialize_root_vars_lm): Likewise.
17235 (prepare_initializers_chain): Likewise.
17236 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
17237 (may_propagate_copy_into_stmt): Likewise.
17238 (merge_alias_info): Do nothing for now.
17239 (propagate_tree_value_into_stmt): Adjust.
17240 (stmt_may_generate_copy): Likewise.
17241 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
17242 not mark symbols for renaming.
17243 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
17244 with the same statement, make sure to update the new pointed-to one.
17245 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
17246 call statements, do not mark symbols for renaming.
17247 (mark_operand_necessary): Dump something.
17248 (ref_may_be_aliased): New function.
17249 (mark_aliased_reaching_defs_necessary_1): New helper function.
17250 (mark_aliased_reaching_defs_necessary): Likewise.
17251 (mark_all_reaching_defs_necessary_1): Likewise.
17252 (mark_all_reaching_defs_necessary): Likewise.
17253 (propagate_necessity): Do not process virtual PHIs. For
17254 non-aliased loads mark all reaching definitions as necessary.
17255 For aliased loads and stores mark the immediate dominating
17256 aliased clobbers as necessary.
17257 (visited): New global static.
17258 (perform_tree_ssa_dce): Free visited bitmap after propagating
17259 necessity.
17260 (remove_dead_phis): Perform simple dead virtual PHI removal.
17261 (remove_dead_stmt): Properly unlink virtual operands when
17262 removing stores.
17263 (eliminate_unnecessary_stmts): Schedule PHI removal after
17264 stmt removal.
17265 * tree-ssa-ter.c (is_replaceable_p): Adjust.
17266 (process_replaceable): Likewise.
17267 (find_replaceable_in_bb): Likewise.
17268 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
17269 based on the single gimple vop.
17270 (verify_flow_insensitive_alias_info): Remove.
17271 (verify_flow_sensitive_alias_info): Likewise.
17272 (verify_call_clobbering): Likewise.
17273 (verify_memory_partitions): Likewise.
17274 (verify_alias_info): Likewise.
17275 (verify_ssa): Adjust..
17276 (execute_update_addresses_taken): Export. Update SSA
17277 manually. Optimize only when optimizing. Use a local bitmap.
17278 (pass_update_address_taken): Remove TODO_update_ssa, add
17279 TODO_dump_func.
17280 (pass_update_address_taken): Just use TODO_update_address_taken.
17281 (init_tree_ssa): Do not initialize addressable_vars.
17282 (verify_ssa): Verify new VUSE / VDEF properties.
17283 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
17284 Do not call verify_alias_info.
17285 (delete_tree_ssa): Clear the VUSE, VDEF operands.
17286 Do not free the loaded and stored syms bitmaps. Reset the escaped
17287 and callused solutions. Do not free addressable_vars.
17288 Remove memory-tag related code.
17289 (warn_uninitialized_var): Aliases are always available.
17290 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
17291 * lambda-code.c (can_put_in_inner_loop): Adjust.
17292 (can_put_after_inner_loop): Likewise.
17293 (perfect_nestify): Likewise.
17294 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
17295 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
17296 (vectorizable_conversion): Do not mark symbols for renaming.
17297 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
17298 (expand_call_inline): Unlink the calls virtual operands before
17299 replacing it.
17300 (tree_function_versioning): Do not call update_ssa if we are not
17301 updating clones. Simplify.
17302 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
17303 (propagate_with_phi): Likewise..
17304 * tree-outof-ssa.c (create_temp): Remove memory tag and call
17305 clobber code. Assert we are not aliased or global.
17306 * tree-flow.h: Include tree-ssa-alias.h
17307 (enum escape_type): Remove.
17308 (struct mem_sym_stats_d): Likewise.
17309 (struct mem_ref_stats_d): Likewise.
17310 (struct gimple_df): Add vop member. Remove global_var,
17311 call_clobbered_vars, call_used_vars, addressable_vars,
17312 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
17313 escaped and callused members.
17314 (struct ptr_info_def): Remove all members, add points-to solution
17315 member pt.
17316 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
17317 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
17318 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
17319 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
17320 (tree-ssa-alias.o): Likewise.
17321 (toplev.o): Add tree-ssa-alias.h
17322 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
17323 * gimple.c (gimple_set_bb): Fix off-by-one error.
17324 (is_gimple_reg): Do not handle memory tags.
17325 (gimple_copy): Also copy virtual operands.
17326 Delay updating the statement. Do not reset loaded and stored syms.
17327 (gimple_set_stored_syms): Remove.
17328 (gimple_set_loaded_syms): Likewise.
17329 (gimple_call_copy_skip_args): Copy the virtual operands
17330 and mark the new statement modified.
17331 * tree-ssa-structalias.c (may_alias_p): Remove.
17332 (set_uids_in_ptset): Take the alias set to prune with as
17333 parameter. Fold in the alias test of may_alias_p.
17334 (compute_points_to_sets): Compute whether a ptr is dereferenced
17335 in a local sbitmap.
17336 (process_constraint): Deal with &ANYTHING on the lhs, reject all
17337 other ADDRESSOF constraints on the lhs.
17338 (get_constraint_for_component_ref): Assert that we don't get
17339 ADDRESSOF constraints from the base of the reference.
17340 Properly generate UNKNOWN_OFFSET for DEREF if needed.
17341 (struct variable_info): Remove collapsed_to member.
17342 (get_varinfo_fc): Remove.
17343 (new_var_info): Do not set collapsed_to.
17344 (dump_constraint): Do not follow cycles.
17345 (dump_constraint_graph): Likewise.
17346 (build_pred_graph): Likewise.
17347 (build_succ_graph): Likewise.
17348 (rewrite_constraints): Likewise.
17349 (do_simple_structure_copy): Remove.
17350 (do_rhs_deref_structure_copy): Remove.
17351 (do_lhs_deref_structure_copy): Remove.
17352 (collapse_rest_of_var): Remove.
17353 (do_structure_copy): Re-implement.
17354 (pta_stats): New global variable.
17355 (dump_pta_stats): New function.
17356 (struct constraint_expr): Make offset signed.
17357 (UNKNOWN_OFFSET): Define special value.
17358 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
17359 (solution_set_expand): New helper function split out from ...
17360 (do_sd_constraint): ... here.
17361 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
17362 (do_ds_constraint): Likewise.
17363 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
17364 and CALLUSED = *CALLUSED.
17365 (set_union_with_increment): Make inc argument signed.
17366 (type_safe): Remove.
17367 (get_constraint_for_ptr_offset): Handle unknown and negative
17368 constant offsets.
17369 (first_vi_for_offset): Handle offsets before start. Bail
17370 out early for offsets beyond the variable extent.
17371 (first_or_preceding_vi_for_offset): New function.
17372 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
17373 Together with ESCAPED = *ESCAPED this properly computes reachability.
17374 (find_what_var_points_to): New function.
17375 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
17376 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
17377 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
17378 pt_solutions_intersect): New functions.
17379 (compute_call_used_vars): Remove.
17380 (compute_may_aliases): New main entry into PTA computation.
17381 * gimple.h (gimple_p): New typedef.
17382 (struct gimple_statement_base): Remove references_memory_p.
17383 (struct gimple_statement_with_memory_ops_base): Remove
17384 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
17385 members.
17386 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
17387 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
17388 gimple_set_references_memory): Remove.
17389 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
17390 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
17391 New functions.
17392 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
17393 (verify_expr): Allow RESULT_DECL.
17394 (gimple_duplicate_bb): Do not copy virtual operands.
17395 (gimple_duplicate_sese_region): Adjust.
17396 (gimple_duplicate_sese_tail): Likewise.
17397 (mark_virtual_ops_in_region): Remove.
17398 (move_sese_region_to_fn): Do not call it.
17399 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
17400 and pass_simple_dse.
17401 (execute_function_todo): Handle TODO_update_address_taken,
17402 call execute_update_addresses_taken for TODO_rebuild_alias.
17403 (execute_todo): Adjust.
17404 (execute_one_pass): Init dump files early.
17405 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
17406 call-clobbered.
17407 (create_general_new_stmt): Clear vops.
17408 * tree-ssa-reassoc.c (get_rank): Adjust.
17409 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
17410 symbols for renaming.
17411 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
17412 (PARAM_AVG_ALIASED_VOPS): Likewise.
17413 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
17414 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
c72c72ef 17415 * tree-ssa-operands.c: Simplify for new virtual operand representation.
dd277d48 17416 (operand_build_cmp, copy_virtual_operands,
17417 create_ssa_artificial_load_stmt, add_to_addressable_set,
17418 gimple_add_to_addresses_taken): Remove public functions.
17419 (unlink_stmt_vdef): New function.
17420
8d40ea45 174212009-04-03 Alan Modra <amodra@bigpond.net.au>
17422
17423 * config.gcc (powerpc-*-linux*): Merge variants.
17424
0bfaf4c4 174252009-04-02 Chao-ying Fu <fu@mips.com>
943327c1 17426 James Grosbach <james.grosbach@microchip.com>
0bfaf4c4 17427
17428 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
17429 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
17430 cop0_sp_offset.
17431 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
17432 keep_interrupts_masked_p, use_debug_exception_return_p.
17433 (mips_attribute_table): Add interrupt, use_shadow_register_set,
17434 keep_interrupts_masked, use_debug_exception_return.
17435 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
17436 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
17437 New functions.
17438 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
17439 (mips_print_operand): Process COP0 registers to print $0 .. $31
17440 correctly for GAS to process.
17441 (mips_interrupt_extra_call_saved_reg_p): New function.
17442 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
17443 extra registers.
17444 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
17445 (mips_compute_frame_info): Add supports for interrupt context that
17446 includes doubleword accumulators and COP0 registers.
17447 (mips_for_each_saved_acc): New function.
17448 (mips_for_each_saved_gpr_and_fpr): Change the function name from
17449 mips_for_each_saved_reg.
17450 (mips_save_reg): Save accumulators.
17451 (mips_kernel_reg_p): A new for_each_rtx callback.
17452 (mips_expand_prologue): Support interrupt handlers.
17453 (mips_restore_reg): Restore accumulators.
17454 (mips_expand_epilogue): Support interrupt handlers.
17455 (mips_can_use_return_insn): Return false for interrupt handlers.
17456 (mips_epilogue_uses): New function.
17457 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
17458 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
17459 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
17460 cop0_move): New instructions.
17461 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
17462 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
17463 defines.
17464 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
17465 New defines.
17466 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
17467 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
17468 interrupt handlers, we use K0 as the temporary register.
17469 (EPILOGUE_USES): Change to a function call.
17470 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
17471 handlers, we use K0 as the temporary register.
89871bab 17472
0bfaf4c4 17473 * doc/extend.texi (Function Attributes): Document interrupt,
17474 use_shadow_register_set, keep_interrupts_masked,
17475 use_debug_exception_return for MIPS attributes.
17476
47b92737 174772009-04-03 Alan Modra <amodra@bigpond.net.au>
17478
17479 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
17480 Remove a number of t-files from tmake_file.
17481 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
17482 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
17483 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
17484 target_prototype, not TARGET_PROTOTYPE.
17485 (LINK_OS_GNU_SPEC): Define.
17486 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
17487 and darwin-ldoubdle.c.
17488
cc92bc82 174892009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
17490
17491 PR driver/39293
17492 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
17493 (cpp_options): Ditto.
17494 (default_compilers): Ditto.
17495 (display_help): Ditto.
17496 (process_command): Ditto.
17497 (do_spec_1): Ditto.
17498 (set_input): Use lbasename instead of duplicate code.
17499 (save_temps_prefix): New static for -save-temps=obj.
17500 (save_temps_length): Ditto.
89871bab 17501
cc92bc82 17502 * doc/invoke.texi (-save-temps=obj): Document new variant to
17503 -save-temps switch.
17504
1c2a5380 175052009-04-02 Jeff Law <law@redhat.com>
17506
17507 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
17508 variable.
17509
1301d110 175102009-04-02 H.J. Lu <hongjiu.lu@intel.com>
17511
17512 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
17513 * configure: Regenerated.
17514
14bd221c 175152009-04-02 Rafael Avila de Espindola <espindola@google.com>
17516
17517 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
17518 share the argument list.
17519
64f3398b 175202009-04-02 Rafael Avila de Espindola <espindola@google.com>
17521
17522 Merge
17523
17524 2009-02-12 Diego Novillo <dnovillo@google.com>
17525
1301d110 17526 * varpool.c (debug_varpool): New.
17527 * cgraph.h (debug_varpool): Declare.
64f3398b 17528
0727d268 175292009-04-02 Jan Hubicka <jh@suse.cz>
17530
17531 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
17532 pass.
17533
3bc1f2c4 175342009-04-02 H.J. Lu <hongjiu.lu@intel.com>
17535
17536 * config/i386/i386.c (ix86_abi): Move initialization to ...
17537 (override_options): Here.
17538
e1190e3a 175392009-04-02 Christian Bruel <christian.bruel@st.com>
17540
17541 * config/sh/sh.c (sh_dwarf_register_span): New function.
17542 (TARGET_DWARF_REGISTER_SPAN): Define.
17543 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
89871bab 17544
792672f0 175452009-04-02 Ira Rosen <irar@il.ibm.com>
17546
17547 PR tree-optimization/39595
89871bab 17548 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
792672f0 17549 interleaved loads group is not greater than the SLP group size.
17550
1c47b3e8 175512009-04-02 Rafael Avila de Espindola <espindola@google.com>
17552
17553 * builtins.c (is_builtin_name): New.
17554 (called_as_built_in): Use is_builtin_name.
17555 * tree.h (is_builtin_name): New.
17556 * varasm.c (incorporeal_function_p): Use is_builtin_name
17557
42aaa915 175582009-04-02 Andrew Stubbs <ams@codesourcery.com>
17559
17560 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
17561
41771881 175622009-04-02 Dodji Seketeli <dodji@redhat.com>
17563
17564 PR c++/26693
09ec66c8 17565 * c-decl.c (clone_underlying_type): Move this ...
41771881 17566 * c-common.c (set_underlying_type): ... here.
17567 Also, make sure the function properly sets TYPE_STUB_DECL() on
17568 the newly created typedef variant type.
17569 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
c72c72ef 17570 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
17571 points.
41771881 17572
ac9b13de 175732009-04-02 Richard Guenther <rguenther@suse.de>
17574
17575 PR tree-optimization/37221
17576 * tree-flow.h (degenerate_phi_result): Declare.
17577 * tree-ssa-dom.c (degenerate_phi_result): Export.
17578 * tree-scalar-evolution.c (analyze_initial_condition): If
17579 the initial condition is defined by a degenerate PHI node
17580 use the degenerate value.
17581
959aa063 175822009-04-01 Eric Botcazou <ebotcazou@adacore.com>
17583
17584 PR rtl-optimization/39588
17585 * combine.c (merge_outer_ops): Do not set the constant when this
17586 is not necessary.
17587 (simplify_shift_const_1): Do not modify it either in this case.
17588
9e0aee4b 175892009-04-01 Steven Bosscher <steven@gcc.gnu.org>
17590
17591 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
17592 tuning is deprecated if -mtune value is set to an Itanium1 variant.
17593
f8ed6d41 175942009-04-01 Janis Johnson <janis187@us.ibm.com>
17595
17596 PR c/29027
17597 * c-lex.c (interpret_float): Default (no suffix) is double.
17598
098581e0 175992009-04-1 Xinliang David Li <davidxl@google.com>
17600
17601 * config/i386/i386.c (legitimate_constant_p): Recognize
17602 all one vector constant.
17603
943327c1 176042009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 17605
943327c1 17606 * config/vax/vax.c: Add #includes to silence warnings.
6718899e 17607 Change #include order to silence two warnings.
17608
943327c1 176092009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 17610
943327c1 17611 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
6718899e 17612 (ASM_SPEC): Pass -k to the assembler for PIC code.
17613
943327c1 176142009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 17615
943327c1 17616 * config.gcc: Add vax-*-linux* to the switch.
17617 * config/vax/linux.h: New file. (TARGET_VERSION,
6718899e 17618 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
17619
943327c1 176202009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 17621
943327c1 17622 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
6718899e 17623 Use predicate macros instead of GET_CODE() == foo.
943327c1 17624 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
6718899e 17625 ashlsi3, rotrsi3, <unnamed>): Likewise.
17626
943327c1 176272009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 17628
943327c1 17629 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
6718899e 17630 jbbccihi, jbbccisi): Remova trailing whitespace.
943327c1 17631 * config/vax/constraints.md: Likewise.
17632 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
17633 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
17634 * config/vax/predicates.md: Likewise.
17635 * config/vax/vax.c (print_operand_address, vax_output_int_move,
6718899e 17636 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
943327c1 17637 * config/vax/vax.h: Likewise.
17638 * config/vax/vax.md (nonlocal_goto): Likewise.
6718899e 17639
943327c1 176402009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 17641
943327c1 17642 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
6718899e 17643 (indirectable_address_p, adjacent_operands_p): Add spaces around
17644 braces.
943327c1 17645 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
6718899e 17646
943327c1 176472009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 17648
943327c1 17649 * config/vax/vax.c (legitimate_constant_address_p,
6718899e 17650 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
17651 index_term_p, reg_plus_index_p, legitimate_address_p,
17652 vax_mode_dependent_address_p): Update comments to match functions
17653 modified by the recent int->bool conversion.
17654
943327c1 176552009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 17656
943327c1 17657 * config/vax/builtins.md: Update copyright message.
17658 * config/vax/constraints.md: Likewise.
17659 * config/vax/netbsd-elf.h: Likewise.
17660 * config/vax/predicates.md: Likewise.
17661 * config/vax/vax-protos.h: Likewise.
17662 * config/vax/vax.c: Likewise.
17663 * config/vax/vax.h: Likewise.
17664 * config/vax/vax.md: Likewise.
17665 * config/vax/vax.opt: Likewise.
6718899e 17666
943327c1 176672009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 17668
943327c1 17669 * config/vax/builtins.md (ffssi2, ffssi2_internal,
6718899e 17670 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
943327c1 17671 * config/vax/constraints.md (B, R): Likewise.
17672 * config/vax/predicates.md (external_memory_operand,
6718899e 17673 nonimmediate_addsub_di_operand): Likewise.
943327c1 17674 * config/vax/vax.c (vax_output_int_add): Likewise.
17675 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
6718899e 17676 untyped_call): Likewise.
17677
943327c1 176782009-04-01 Matt Thomas <matt@3am-software.com>
6718899e 17679
c72c72ef 17680 * config/vax/predicates.md: New file.
17681 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
6718899e 17682 external_const_operand, nonsymbolic_operand, external_memory_operand,
17683 indirect_memory_operand, indexed_memory_operand,
17684 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
17685 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
17686 predicate.
c72c72ef 17687 * config/vax/constraints.md: New file.
17688 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
17689 New constraint.
17690 * config/vax/builtins.md: New file.
17691 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
17692 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
17693 jbbccisi): Define.
6718899e 17694 * config/vax/vax.opt (mqmath): Add option.
17695 * config/vax/vax.md (isfx): Extend with DI.
17696 (VAXintQH, VAXintQHSD): Define.
17697 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
17698 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
17699 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
17700 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
17701 (movdi): Update constraints and use vax_output_int_move().
17702 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
17703 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
17704 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
17705 nonlocal_goto): New.
17706 (mov<mode>): Extend accepted operand types.
17707 (subdi3_old): Rename from subdi3, change update constraints and use
17708 a new implementation.
943327c1 17709 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
6718899e 17710 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
17711 MOVE_RATIO, CLEAR_RATIO): Define.
17712 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
17713 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
17714 (PRINT_OPERAND): Redefine using a function instead of inlined code.
943327c1 17715 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
6718899e 17716 (split_quadword_operands): Make static and really allow variable
17717 splitting.
17718 (print_operand_address): Update for PIC generation.
17719 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
17720 indexable_address_p, fixup_mathdi_operand,
17721 vax_expand_addsub_di_operands, adjacent_operands_p): New.
17722 (vax_float_literal, legitimate_constant_p,
17723 indirectable_constant_address_p, index_term_p,
17724 reg_plus_index_p): Return bool instead of int.
17725 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
17726 where needed.
17727 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
17728 generation.
17729 (vax_output_conditional_branch): Indent.
17730 (legitimate_constant_address_p, indirectable_constant_address_p,
17731 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
17732 vax_mode_dependent_address_p): Return bool instead of int, update for
17733 PIC generation.
17734 * config/vax/vax-protos.h (legitimate_constant_address_p,
17735 legitimate_constant_p, legitimate_address_p,
17736 vax_mode_dependent_address_p): Change declaration to bool.
17737 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
17738 vax_expand_addsub_di_operands, vax_output_int_subtract,
17739 vax_output_movmemsi): Declare.
17740 (split_quadword_operands, vax_float_literal): Delete declaration.
17741 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
17742 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
17743 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
17744 ASM_OUTPUT_DWARF_PCREL): Define.
17745 (ASM_SPEC): Change definition to allow PIC generation.
17746
617606a7 177472009-04-01 Steve Ellcey <sje@cup.hp.com>
17748
17749 * doc/sourcebuild.texi: Update front-end requirements.
17750
c6afd8f1 177512009-04-01 Jakub Jelinek <jakub@redhat.com>
17752
17753 PR target/39226
17754 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
17755 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
17756 (booldi3_internal3): Use boolean_or_operator instead of
17757 boolean_operator.
17758
ce4e9a43 177592009-04-01 Joseph Myers <joseph@codesourcery.com>
17760
17761 PR c/39605
17762 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
17763 declarator whose size is not an integer constant expression but
17764 folds to an integer constant, then treat it as a constant
17765 subsequently.
17766
04b63ffe 177672009-04-01 Richard Guenther <rguenther@suse.de>
17768
17769 * fold-const.c (fold_plusminus_mult_expr): Do not fold
17770 i * 4 + 2 to (i * 2 + 1) * 2.
17771
0930c694 177722009-04-01 Jakub Jelinek <jakub@redhat.com>
17773
17774 PR c/37772
17775 * c-parser.c (c_parser_asm_statement): Skip until close paren and
17776 return if c_parser_asm_string_literal returned NULL.
17777
c46bf770 177782009-04-01 Nick Clifton <nickc@redhat.com>
17779
17780 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
17781 already defined.
17782 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
17783 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
17784 other typedefs to avoid conflicts with libgcc2.c. Define labels
17785 to gain 16-bit bit-manipulation functions from libgcc2.c and then
17786 include it.
17787 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
17788 to gain 16-bit trapping arithmetic functions from libgcc2.c and
17789 then include it.
17790
b5240a18 177912009-04-01 Rafael Avila de Espindola <espindola@google.com>
17792
c72c72ef 17793 * varasm.c (default_function_rodata_section): Declare DOT as
17794 const char*.
b5240a18 17795
4ccce102 177962009-04-01 Kai Tietz <kai.tietz@onevision.com>
943327c1 17797 Andrey Galkin <agalkin@hypercom.com>
4ccce102 17798
17799 PR/39492
17800 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
17801 Make object_name unique for each process.
17802
4a04f4b4 178032009-04-01 Jakub Jelinek <jakub@redhat.com>
17804
17805 PR other/39591
17806 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
17807 addressable variables in the parallel that could go out of scope while
17808 running queued tasks.
17809
b4a3be2d 178102009-04-01 Anatoly Sokolov <aesok@post.ru>
17811
17812 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
17813 (CASE_VALUES_THRESHOLD): Redefine.
17814 * config/avr/avr.c (avr_override_options): Remove initialization of
17815 avr_case_values_threshold variable.
17816 (avr_case_values_threshold): Remove variable. Add new function.
17817 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
17818 * config/avr/avr.opt (mno-tablejump): Remove option.
17819 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
17820
ac2a837e 178212009-04-01 DJ Delorie <dj@redhat.com>
17822
17823 * varasm.c (default_function_rodata_section): Don't assume
17824 anything about where the first '.' in the section name is.
17825
7cad077c 178262009-04-01 Alan Modra <amodra@bigpond.net.au>
17827
17828 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
17829 rs6000_emit_stack_tie.
17830
a5877c89 178312009-03-31 Ian Lance Taylor <iant@google.com>
17832
17833 * tree-eh.c (tree_remove_unreachable_handlers): Compare
17834 gimple_code with GIMPLE_RESX, not RESX.
17835
9e6687c8 178362009-03-31 Joseph Myers <joseph@codesourcery.com>
17837
17838 * c-common.c (c_get_ident): New.
c72c72ef 17839 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
9e6687c8 17840
aa5ba529 178412009-04-01 Ben Elliston <bje@au.ibm.com>
17842
17843 * config/rs6000/sysv4.opt (msdata): Improve option description.
17844
3f970e2e 178452009-03-31 Steve Ellcey <sje@cup.hp.com>
17846
17847 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
17848 (divdf3_internal_lat): Remove.
17849 (divxf3_internal_lat): Remove.
17850 (divxf3_internal_thr): Remove.
17851 (divxf): Use divxf3_internal.
17852 * config/ia64/div.md (divsf3_internal_lat): New.
17853 (divdf3_internal_lat): New.
17854 (divxf3_internal): New.
17855
f3449a3c 178562009-03-31 Joseph Myers <joseph@codesourcery.com>
17857
17858 PR c/448
17859 * Makefile.in (USE_GCC_STDINT): Define.
17860 (stmp-int-hdrs): Install stdint.h if applicable.
17861 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
17862 if known.
17863 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
17864 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
17865 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
17866 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
17867 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
17868 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
17869 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
17870 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
17871 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
17872 (c_common_nodes_and_builtins): Initialize
17873 underlying_wchar_type_node. Do not initialize
17874 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
17875 nodes for new types.
17876 (c_stddef_cpp_builtins): Define macros for new types.
17877 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
17878 Remove.
17879 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
17880 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
17881 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
17882 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
17883 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
17884 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
17885 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
17886 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
17887 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
17888 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
17889 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
17890 int16_type_node, int32_type_node, int64_type_node,
17891 uint8_type_node, uint16_type_node, c_uint32_type_node,
17892 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
17893 int_least32_type_node, int_least64_type_node,
17894 uint_least8_type_node, uint_least16_type_node,
17895 uint_least32_type_node, uint_least64_type_node,
17896 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
17897 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
17898 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
17899 uintptr_type_node): Define.
17900 * c-cppbuiltin.c (builtin_define_constants,
17901 builtin_define_type_minmax): New.
17902 (builtin_define_stdint_macros): Define more macros.
17903 (c_cpp_builtins): Define more limit macros.
17904 (type_suffix): New.
17905 (builtin_define_type_max): Define in terms of
17906 builtin_define_type_minmax. Remove is_long parameter. All
17907 callers changed.
17908 * config.gcc (use_gcc_stdint): Define.
17909 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
17910 Add newlib-stdint.h for generic targets.
17911 * config/glibc-stdint.h, config/newlib-stdint.h,
17912 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
17913 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
17914 * config/score/score.h (UINTPTR_TYPE): Define.
17915 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
17916 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
17917 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
17918 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
17919 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
17920 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
17921 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
17922 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
17923 * config/spu/spu.h (STDINT_LONG32): Define.
17924 * configure.ac (use_gcc_stdint): Substitute.
17925 * configure: Regenerate.
17926 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
17927 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
17928 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
17929 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
17930 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
17931 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
17932 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
17933 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
17934 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
17935 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
17936 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
17937 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
17938 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
17939 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
17940 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
17941 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
17942 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
17943 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
17944 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
17945 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
17946 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
17947 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
17948 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
17949 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
17950 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
17951 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
17952 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
17953 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
17954 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
17955
9bb5f693 179562009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
17957
17958 * loop-iv.c (suitable_set_for_replacement): Renamed from
17959 simplify_using_assignment; changed to return bool and to accept new
17960 args DEST and SRC. Return true iff we find a source/destination pair
17961 that can be used to make a replacement, and fill SRC and DEST if so.
17962 Remove arg ALTERED. Don't deal with altered regs here. All callers
17963 changed.
17964 (simplify_using_initial_values): Deal with altered regs here and track
17965 more precisely the effect they have on the validity of our expression.
17966
7f7a6f4a 17967 * loop-iv.c (simplify_using_condition): A condition of the form
17968 (EQ REG CONST) can be used to simply make a substitution.
17969 (simplify_using_initial_values): Keep track of conditions we have seen
17970 and keep using them to simplify new expressions, while applying the
17971 same substitutions to them as to the expression.
17972
d2cb78ca 17973 * simplify-rtx.c (simplify_relational_operation_1): Simplify
17974 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
17975 GEU/LTU reversed.
17976
f77c1bb0 17977 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
17978 changed. Use this when trying to improve the upper bound.
17979 Generate the comparison by using simplify_gen_relational.
17980
b908751e 17981 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
17982
767cb310 17983 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
17984 functions.
89871bab 17985 (simplify_using_assignment, simplify_using_initial_values): Call
767cb310 17986 replace_in_expr to make replacements. Call replace_single_def_regs
17987 once on the initial version of the expression.
17988
ee933f51 179892009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17990
9b57ed9f 17991 PR target/27237
ee933f51 17992 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
89871bab 17993
172e662b 179942009-03-31 Richard Guenther <rguenther@suse.de>
17995
17996 PR middle-end/31029
17997 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
17998 equality comparisons. Fold C - X CMP X if C % 2 == 1.
17999
401d1fb3 180002009-03-31 Richard Guenther <rguenther@suse.de>
18001
18002 * tree.h (div_if_zero_remainder): Declare.
18003 * fold-const.c (div_if_zero_remainder): Export.
18004 * tree-ssa-forwprop.c
18005 (forward_propagate_addr_into_variable_array_index): Handle
18006 constant array index addition outside of the variable index.
18007
eedfcb26 180082009-03-31 Joseph Myers <joseph@codesourcery.com>
18009
18010 PR target/39592
18011 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
18012 define_splits, floatunssi<mode>2): Require x87 conversions from
18013 DImode to be permitted.
18014
ff903809 180152009-03-31 Joseph Myers <joseph@codesourcery.com>
18016
18017 PR preprocessor/15638
18018 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
18019
47f11e84 180202009-03-31 Richard Guenther <rguenther@suse.de>
18021
18022 PR middle-end/23401
18023 PR middle-end/27810
18024 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
18025 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
18026 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
18027 a separate statement.
18028 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
18029 (lookup_tmp_var): Likewise.
18030 (is_gimple_formal_tmp_or_call_rhs): Remove.
18031 (is_gimple_reg_or_call_rhs): Rename to ...
18032 (is_gimple_reg_rhs_or_call): ... this.
18033 (is_gimple_mem_or_call_rhs): Rename to ...
18034 (is_gimple_mem_rhs_or_call): ... this.
18035 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
18036 DECL_GIMPLE_REG_P only if is_formal is true.
18037 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
18038 for non-proper post-modify expression gimplification.
18039 (gimplify_self_mod_expr): For post-modify expressions gimplify
18040 the lvalue to a minimal lvalue.
18041 (rhs_predicate_for): Remove formal temp case.
18042 (gimplify_modify_expr_rhs): Likewise.
18043 (gimplify_addr_expr): Use is_gimple_reg.
18044 (gimplify_expr): Remove formal temp cases.
18045 (gimple_regimplify_operands): Likewise.
18046 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
18047 and FILTER_EXPR like constants.
18048 * gimple.c (walk_gimple_op): Fix val_only initialization, use
18049 is_gimple_reg.
18050 (is_gimple_formal_tmp_rhs): Remove.
18051 (is_gimple_reg_rhs): Remove special casing.
18052 (is_gimple_mem_rhs): Fix.
18053 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
18054 (is_gimple_formal_tmp_var): Remove.
18055 (is_gimple_formal_tmp_reg): Likewise.
18056 (is_gimple_min_lval): Allow invariant component ref parts.
18057 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
18058 is_gimple_formal_tmp_reg): Remove declarations.
18059 * tree-cfg.c (verify_expr): Verify that variables with address
18060 taken do not have DECL_GIMPLE_REG_P set.
18061 * tree-mudflap.c (mf_build_check_statement_for): Use
18062 force_gimple_operand instead of gimplify_expr.
18063
7af239b5 180642009-03-31 Ayal Zaks <zaks@il.ibm.com>
18065
18066 * modulo-sched.c (sms_schedule_by_order): Pass the actual
18067 schedulable rows to compute_split_row.
18068
09271b9d 180692009-03-31 Ben Elliston <bje@au.ibm.com>
18070
18071 PR target/31635
18072 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
18073 OPT_mvrsave.
18074
d46ea878 180752009-03-31 Alan Modra <amodra@bigpond.net.au>
18076
18077 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
18078 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
18079 * configure: Regenerate.
18080 * config.in: Regenerate.
18081 * config/rs6000/rs6000.opt (mtls-markers): Add.
18082 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
18083 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
18084 (tls_ld_aix, tls_ld_sysv): Likewise.
18085 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
18086 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
18087
6ce64557 180882009-03-31 Alan Modra <amodra@bigpond.net.au>
18089
18090 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
18091
d6d5ab2d 180922009-03-30 Jan Hubicka <jh@suse.cz>
18093
6ce64557 18094 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
18095 out of RESX.
18096 (tree_remove_unreachable_handlers): Cleanup EH predecestor
18097 detection and label handling.
d6d5ab2d 18098
951e5184 180992009-03-30 Vladimir Makarov <vmakarov@redhat.com>
18100
18101 * ira-int.h (ira_allocno): Rename left_conflicts_num to
18102 left_conflicts_size.
18103 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
18104 ALLOCNO_LEFT_CONFLICTS_SIZE.
18105
18106 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
18107 remove_allocno_from_bucket_and_push,
18108 allocno_spill_priority_compare, push_allocnos_to_stack,
18109 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
18110 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
18111 (setup_allocno_left_conflicts_num): Ditto. Rename to
18112 setup_allocno_left_conflicts_size.
18113 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
18114 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
18115 setup_allocno_left_conflicts_size instead of
18116 setup_allocno_left_conflicts_num.
18117
18118 * ira-build.c (ira_create_allocno): Use
18119 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
18120 ALLOCNO_LEFT_CONFLICTS_NUM.
89871bab 18121
cb250333 181222009-03-30 Vladimir Makarov <vmakarov@redhat.com>
18123
18124 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
18125 instead of DF_LR_OUT.
18126
18127 * ira-lives.c (process_bb_node_lives): Ditto.
18128
18129 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
18130 instead of DF_LR_{OUT,IN}.
18131
18132 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
18133
18134 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
18135
dfcd8d23 181362009-03-30 Jan Hubicka <jh@suse.cz>
18137
18138 * except.c (label_to_region_map): Fix thinko.
18139
a7bc9181 181402009-03-30 Steve Ellcey <sje@cup.hp.com>
18141
18142 PR middle-end/38237
18143 * tree.h (tree_find_value): New declaration.
18144 * tree.c (tree_find_value): New function.
18145 * varasm.c (assemble_external): Avoid duplicate entries on lists.
18146
6fb80942 181472009-03-30 Jakub Jelinek <jakub@redhat.com>
18148
18149 PR debug/39563
18150 * c-decl.c (struct c_binding): Add locus field.
18151 (bind): Add locus argument, set locus field from it.
18152 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
18153 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
18154 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
18155 implicitly_declare, undeclared_variable, lookup_label,
18156 declare_label, c_make_fname_decl, c_builtin_function,
18157 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
18158 bind callers.
18159
7dfbd804 181602009-03-30 H.J. Lu <hongjiu.lu@intel.com>
076a4c5c 18161
18162 PR target/38781
18163 * config/i386/i386.c (classify_argument): Check total size of
18164 structure.
18165
ba3a7ba0 181662009-03-30 Martin Jambor <mjambor@suse.cz>
18167
18168 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
18169 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
18170 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
18171 respectively.
18172
18173 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
18174 seen_variable_array_ref while also traversing a union.
18175
18176 * tree-inline.c (optimize_inline_calls): Do not call
18177 cgraph_node_remove_callees.
18178 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
18179 (pass_remove_cgraph_callee_edges): New variable.
18180 * passes.c (init_optimization_passes): Add
18181 pass_remove_cgraph_callee_edges after early inlining and before all
18182 late intraprocedural passes.
18183
18184 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
18185
914301dc 181862009-03-30 Paolo Bonzini <bonzini@gnu.org>
18187
18188 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
18189 Fix typos in names.
18190
0d79facf 181912009-03-30 Paolo Bonzini <bonzini@gnu.org>
18192
9b57ed9f 18193 * combine.c (simplify_comparison): Use have_insn_for.
18194 * dojump.c (do_jump): Likewise.
0d79facf 18195
bbc6e6c4 181962009-03-30 Paolo Bonzini <bonzini@gnu.org>
18197
18198 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
18199 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
18200 sparc_compare_op0 like sparc_compare_emitted used to be handled.
18201 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
18202 instead of sparc_compare_emitted.
18203 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
18204 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
18205 instead of sparc_compare_emitted.
18206
ee4d588d 182072009-03-30 Paolo Bonzini <bonzini@gnu.org>
18208
18209 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
18210 enter/exit cfglayout mode.
18211 (pass_partition_block): Require it.
18212 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
18213 (combine_instructions): Track basic blocks instead of labels.
18214 (update_cfg_for_uncondjump): New.
18215 (try_combine): Use it. Update jumps after rescanning.
18216 (pass_combine): Require PROP_cfglayout.
18217 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
18218
30678076 182192009-03-30 Paolo Bonzini <bonzini@gnu.org>
18220
9b57ed9f 18221 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
18222 Provide/destroy PROP_cfglayout respectively.
18223 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
18224 * tree-pass.h (PROP_cfglayout): New.
30678076 18225
62126877 182262009-03-30 Paolo Bonzini <bonzini@gnu.org>
18227
18228 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
18229 fold_convert_const_fixed_from_fixed,
18230 fold_convert_const_fixed_from_int,
18231 fold_convert_const_fixed_from_real, fold_negate_const): Do not
18232 set TREE_CONSTANT_OVERFLOW.
18233 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
18234 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
18235
fb85abff 182362009-03-30 Ira Rosen <irar@il.ibm.com>
18237
18238 * tree-vect-loop-manip.c: New file.
18239 * tree-vectorizer.c: Update documentation and included files.
18240 (vect_loop_location): Make extern.
18241 (rename_use_op): Move to tree-vect-loop-manip.c
89871bab 18242 (rename_variables_in_bb, rename_variables_in_loop,
18243 slpeel_update_phis_for_duplicate_loop,
fb85abff 18244 slpeel_update_phi_nodes_for_guard1,
18245 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
18246 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
18247 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
89871bab 18248 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
fb85abff 18249 find_loop_location): Likewise.
18250 (new_stmt_vec_info): Move to tree-vect-stmts.c.
18251 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
18252 get_vectype_for_scalar_type, vect_is_simple_use,
18253 supportable_widening_operation, supportable_narrowing_operation):
18254 Likewise.
18255 (bb_in_loop_p): Move to tree-vect-loop.c.
89871bab 18256 (new_loop_vec_info, destroy_loop_vec_info,
18257 reduction_code_for_scalar_code, report_vect_op,
fb85abff 18258 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
18259 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
18260 (vect_supportable_dr_alignment): Likewise.
18261 * tree-vectorizer.h (tree-data-ref.h): Include.
18262 (vect_loop_location): Declare.
18263 Reorganize function declarations according to the new file structure.
18264 * tree-vect-loop.c: New file.
89871bab 18265 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
fb85abff 18266 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
18267 * tree-vect-data-refs.c: New file.
18268 * tree-vect-patterns.c (timevar.h): Don't include.
18269 * tree-vect-stmts.c: New file.
89871bab 18270 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
fb85abff 18271 tree-vect-slp.c, tree-vect-loop.c.
89871bab 18272 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
18273 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
fb85abff 18274 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
18275 (tree-vect-analyze.o): Remove.
18276 (tree-vect-transform.o): Likewise.
18277 (tree-vect-data-refs.o): Add rule.
89871bab 18278 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
fb85abff 18279 tree-vect-slp.o): Likewise.
18280 (tree-vect-patterns.o): Remove redundant dependencies.
18281 (tree-vectorizer.o): Likewise.
18282 * tree-vect-slp.c: New file.
18283
0863a8f4 182842009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18285
18286 * optc-gen.awk: Warn if an option flag has multiple different
18287 help strings.
18288
0606fb97 182892009-03-30 Sebastian Pop <sebastian.pop@amd.com>
18290
18291 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
18292 -floop-block): Document dependences on PPL, CLooG and Graphite.
18293
c6418a4e 182942009-03-30 Joseph Myers <joseph@codesourcery.com>
18295
18296 PR rtl-optimization/323
18297 * c-common.c (c_fully_fold, convert_and_check,
18298 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
18299 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
18300 * c-common.def (EXCESS_PRECISION_EXPR): New.
18301 * c-cppbuiltin.c (builtin_define_float_constants): Define
18302 constants with enough digits for long double.
18303 * c-lex.c (interpret_float): Interpret constant with excess
18304 precision where appropriate.
18305 * c-opts.c (c_common_post_options): Set
18306 flag_excess_precision_cmdline. Give an error for
18307 -fexcess-precision=standard for C++ for processors where the
18308 option is significant.
18309 * c-parser.c (c_parser_conditional_expression): Handle excess
18310 precision in condition.
18311 * c-typeck.c (convert_arguments): Handle arguments with excess
18312 precision.
18313 (build_unary_op): Move excess precision outside operation.
18314 (build_conditional_expr): Likewise.
18315 (build_compound_expr): Likewise.
18316 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
18317 (build_modify_expr): Handle excess precision in RHS.
18318 (convert_for_assignment): Handle excess precision in converted
18319 value.
18320 (digest_init, output_init_element, process_init_element): Handle
18321 excess precision in initializer.
18322 (c_finish_return): Handle excess precision in return value.
18323 (build_binary_op): Handle excess precision in operands and add
18324 excess precision as needed for operation.
18325 * common.opt (-fexcess-precision=): New option.
18326 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
18327 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
18328 For standard excess precision, output explicit conversion to and
18329 truncation from XFmode.
18330 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
18331 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
18332 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
18333 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
18334 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
18335 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
18336 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
18337 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
18338 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
18339 define_splits, sqrt<mode>2): Disable where appropriate for
18340 standard excess precision.
18341 * convert.c (convert_to_real): Do not shorten arithmetic to type
18342 for which excess precision would be used.
18343 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
18344 * doc/invoke.texi (-fexcess-precision=): Document option.
18345 (-mfpmath=): Correct index entry.
18346 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
18347 flag_excess_precision): New.
18348 * langhooks.c (lhd_post_options): Set
18349 flag_excess_precision_cmdline.
18350 * opts.c (common_handle_option): Handle -fexcess-precision=.
18351 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
18352 init_excess_precision): New.
18353 (lang_dependent_init_target): Call init_excess_precision.
18354 * tree.c (excess_precision_type): New.
18355 * tree.h (excess_precision_type): Declare.
18356
7666d572 183572009-03-30 Joseph Myers <joseph@codesourcery.com>
18358
18359 PR c/35235
18360 * c-typeck.c (build_component_ref): Do not copy qualifiers from
18361 non-lvalue to component.
18362
7f5f3953 183632009-03-29 Joseph Myers <joseph@codesourcery.com>
18364
18365 PR preprocessor/34695
18366 * Makefile.in (c-opts.o): Depend on c-tree.h.
18367 * c-common.c: Move down include of diagnostic.h.
18368 (done_lexing, c_cpp_error): New.
18369 * c-common.h (done_lexing): Declare.
18370 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
18371 (parse_in).
18372 * c-opts.c: Include c-tree.h.
18373 (c_common_init_options): Set preprocessor error callback.
18374 (c_common_handle_option): Do not set preprocessor
18375 inhibit_warnings, warnings_are_errors, warn_system_headers,
18376 pedantic_errors or inhibit_warnings flags.
18377 (c_common_post_options): Do not check cpp_errors (parse_in).
18378 (c_common_finish): Do not output dependencies if there were
18379 errors. Do not check return value of cpp_finish.
18380 * c-ppoutput.c (pp_file_change): Set input_location.
18381 * c-tree.h (c_cpp_error): Declare.
18382 * diagnostic.c (diagnostic_set_info_translated): Also initialize
18383 override_column.
18384 (diagnostic_build_prefix): Check override_column.
18385 * diagnostic.h (diagnostic_info): Add override_column field.
18386 (diagnostic_override_column): Define.
18387
862f468c 183882009-03-28 Paolo Bonzini <bonzini@gnu.org>
18389
aca60c7b 18390 * c-common.c (c_expand_expr, c_staticp): Remove.
18391 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
18392 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
18393 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
18394 * c-gimplify.c (gimplify_compound_literal_expr,
18395 optimize_compound_literals_in_ctor): Remove.
18396 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
18397 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
18398 * c-semantics.c (emit_local_var): Remove.
18399
18400 * langhooks-def.h (lhd_expand_expr): Remove.
18401 * langhooks.c (lhd_expand_expr): Remove.
18402 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
18403
18404 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
18405 handling from c-semantics.c; don't call into langhook.
18406 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
18407 * gimplify.c (gimplify_compound_literal_expr,
18408 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
18409 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
18410 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
18411 as was done in c-gimplify.c.
18412 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
18413 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
18414 Move from c-common.h.
18415 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
862f468c 18416
18417 * tree.c (staticp): Do not call langhook.
18418 * langhooks.c (lhd_staticp): Delete.
18419 * langhooks-def.h (lhd_staticp): Delete prototype.
18420 (LANG_HOOKS_STATICP): Delete.
18421 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
18422
aca60c7b 18423 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
18424 instead of DECL_STMTs.
862f468c 18425
a75b1c71 184262009-03-29 Joseph Myers <joseph@codesourcery.com>
18427
18428 PR c/456
18429 PR c/5675
18430 PR c/19976
18431 PR c/29116
18432 PR c/31871
18433 PR c/35198
18434 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
18435 void_type_node.
18436 (fold_call_expr): Return a NOP_EXPR from folding rather than the
18437 contained expression.
aca60c7b 18438 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
a75b1c71 18439 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
18440 conditional expressions for C.
18441 (decl_constant_value_for_optimization): Move from
aca60c7b 18442 decl_constant_value_for_broken_optimization in c-typeck.c. Check
a75b1c71 18443 whether optimizing and that the expression is a VAR_DECL not of
18444 array type instead of doing such checks in the caller. Do not
18445 check pedantic. Call gcc_unreachable for C++.
18446 * c-common.def (C_MAYBE_CONST_EXPR): New.
18447 * c-common.h (c_fully_fold, c_save_expr,
18448 decl_constant_value_for_optimization): New prototypes.
18449 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
18450 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
18451 EXPR_INT_CONST_OPERANDS): Define.
18452 * c-convert.c (convert): Strip nops from expression.
18453 * c-decl.c (groktypename): Take extra parameters expr and
18454 expr_const_operands. Update call to grokdeclarator.
18455 (start_decl): Update call to grokdeclarator. Add statement for
18456 expressions used in type of decl.
18457 (grokparm): Update call to grokdeclarator.
18458 (push_parm_decl): Update call to grokdeclarator.
18459 (build_compound_literal): Add parameter non_const and build a
18460 C_MAYBE_COSNT_EXPR if applicable.
18461 (grokdeclarator): Take extra parameters expr and
18462 expr_const_operands. Track expressions used in declaration
18463 specifiers and declarators. Fold array sizes and track whether
18464 they are constant expressions and whether they are integer
18465 constant expressions.
18466 (parser_xref_tag): Set expr and expr_const_operands fields in
18467 return value.
18468 (grokfield): Update call to grokdeclarator.
18469 (start_function): Update call to grokdeclarator.
18470 (build_null_declspecs): Set expr and expr_const_operands fields in
18471 return value.
18472 (declspecs_add_type): Handle expressions in typeof specifiers.
18473 * c-parser.c (c_parser_declspecs): Set expr and
18474 expr_const_operands fields for declaration specifiers.
18475 (c_parser_enum_specifier): Likewise.
18476 (c_parser_struct_or_union_specifier): Likewise.
18477 (c_parser_typeof_specifier): Likewise. Update call to
18478 groktypename. Fold expression as needed. Return expressions with
18479 type instead of adding statements.
18480 (c_parser_attributes): Update calls to c_parser_expr_list.
18481 (c_parser_statement_after_labels): Fold expression before passing
18482 to objc_build_throw_stmt.
18483 (c_parser_condition): Fold expression.
18484 (c_parser_asm_operands): Fold expression.
18485 (c_parser_conditional_expression): Use c_save_expr. Update call
18486 to build_conditional_expr.
18487 (c_parser_alignof_expression): Update call to groktypename.
18488 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
18489 original_code. Fold expression argument of va_arg. Create
18490 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
18491 argument to va_arg. Update calls to groktypename. Fold array
18492 index for offsetof. Verify that first argument to
18493 __builtin_choose_expr has integer type.
18494 (c_parser_postfix_expression_after_paren_type): Update calls to
18495 groktypename and build_compound_literal. Handle expressions with
18496 side effects in type name.
18497 (c_parser_postfix_expression_after_primary): Update call to
18498 c_parser_expr_list. Set original_code for calls to
18499 __builtin_constant_p.
18500 (c_parser_expr_list): Take extra parameter fold_p. Fold
18501 expressions if requested.
18502 (c_parser_objc_type_name): Update call to groktypename.
18503 (c_parser_objc_synchronized_statement): Fold expression.
18504 (c_parser_objc_receiver): Fold expression.
18505 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
18506 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
18507 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
18508 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
18509 (struct c_typespec): Add elements expr and expr_const_operands.
18510 (struct c_declspecs): Add elements expr and expr_const_operands.
18511 (groktypename, build_conditional_expr, build_compound_literal):
18512 Update prototypes.
18513 (in_late_binary_op): Declare.
18514 * c-typeck.c (note_integer_operands): New function.
18515 (in_late_binary_op): New variable.
18516 (decl_constant_value_for_broken_optimization): Move to c-common.c
18517 and rename to decl_constant_value_for_optimization.
18518 (default_function_array_conversion): Do not strip nops.
18519 (default_conversion): Do not call
18520 decl_constant_value_for_broken_optimization.
18521 (build_array_ref): Do not fold result.
18522 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
18523 result when operand is a VLA.
18524 (c_expr_sizeof_type): Update call to groktypename. Handle
18525 expressions included in type name. Use C_MAYBE_CONST_EXPR for
18526 result when operand names a VLA type.
18527 (build_function_call): Update call to build_compound_literal.
18528 Only fold result for calls to __builtin_* functions. Strip
18529 NOP_EXPR from INTEGER_CST returned from such functions. Fold
18530 the function designator.
18531 (convert_arguments): Fold arguments. Update call to
18532 convert_for_assignment.
18533 (build_unary_op): Handle increment and decrement of
18534 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
18535 decrement earlier. Fold operand of increment and decrement.
18536 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
18537 built for integer operand. Wrap returns that are INTEGER_CSTs
18538 without being integer constant expressions or that have integer
18539 constant operands without being INTEGER_CSTs.
18540 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
18541 (build_conditional_expr): Add operand ifexp_bcp. Track whether
18542 result is an integer constant expression or can be used in
18543 unevaluated parts of one and avoid folding and wrap as
18544 appropriate. Fold operands before possibly doing -Wsign-compare
18545 warnings.
18546 (build_compound_expr): Wrap result for C99 if operands can be used
18547 in integer constant expressions.
18548 (build_c_cast): Update call to digest_init. Do not ignore
18549 overflow from casting floating-point constants to integers. Wrap
18550 results that could be confused with integer constant expressions,
18551 null pointer constants or floating-point constants.
18552 (c_cast_expr): Update call to groktypename. Handle expressions
18553 included in type name.
18554 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
18555 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
18556 Update calls to convert_for_assignment.
18557 (convert_for_assignment): Take new parameter
18558 null_pointer_constant. Do not strip nops or call
18559 decl_constant_value_for_broken_optimization. Set
18560 in_late_binary_op for conversions to boolean.
18561 (store_init_value): Update call to digest_init.
18562 (digest_init): Take new parameter null_pointer_constant. Do not
18563 call decl_constant_value_for_broken_optimization. pedwarn for
18564 initializers not constant expressions. Update calls to
18565 convert_for_assignment.
18566 (constructor_nonconst): New.
18567 (struct constructor_stack): Add nonconst element.
18568 (really_start_incremental_init, push_init_level, pop_init_level):
18569 Handle constructor_nonconst and nonconst element.
18570 (set_init_index): Call constant_expression_warning for array
18571 designators.
18572 (output_init_element): Fold value. Set constructor_nonconst as
18573 applicable. pedwarn for initializers not constant expressions.
18574 Update call to digest_init. Call constant_expression_warning
18575 where constant initializers are required.
18576 (process_init_element): Use c_save_expr.
18577 (c_finish_goto_ptr): Fold expression.
18578 (c_finish_return): Fold return value. Update call to
18579 convert_for_assignment.
18580 (c_start_case): Fold switch expression.
18581 (c_process_expr_stmt): Fold expression.
18582 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
aca60c7b 18583 ensure statement expression is not evaluated in constant expression.
a75b1c71 18584 (build_binary_op): Track whether results are integer constant
18585 expressions or may occur in such, disable folding and wrap results
18586 as applicable. Fold operands for -Wsign-compare warnings unless
18587 in_late_binary_op.
18588 (c_objc_common_truthvalue_conversion): Handle results folded to
18589 integer constants that are not integer constant expressions.
18590 * doc/extend.texi: Document when typeof operands are evaluated,
18591 that condition of __builtin_choose_expr is an integer constant
18592 expression, and more about use of __builtin_constant_p in
18593 initializers.
18594
088cc5d5 185952009-03-29 Richard Guenther <rguenther@suse.de>
18596
18597 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
18598 propagate addresses of array references.
18599
68e09621 186002009-03-29 Steven Bosscher <steven@gcc.gnu.org>
18601
18602 * regmove.c (perhaps_ends_bb_p): Remove.
18603 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
18604 from INSN and check that the main loop stays within that basic block.
18605 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
18606 (regmove_forward_pass): Split out from regmove_optimize. Use
18607 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
18608 (regmove_backward_pass): Split out from regmove_optimize. Use
18609 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
18610 (regmove_optimize): Simplify.
18611
40513f40 186122009-03-29 H.J. Lu <hongjiu.lu@intel.com>
18613
18614 PR target/39545
18615 * config/i386/i386.c (classify_argument): Ignore flexible array
18616 member in struct and warn ABI change.
18617
0d3a7d37 186182009-03-29 H.J. Lu <hongjiu.lu@intel.com>
18619
18620 * config/i386/i386-protos.h (ix86_agi_dependent): New.
18621
18622 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
18623 (ix86_adjust_cost): Updated.
18624
4c5fcca6 186252009-03-29 Jan Hubicka <jh@suse.cz>
18626
18627 PR middle-end/28850
18628 * tree-pass.h (pass_cleanup_eh): New function.
18629 (remove_unreachable_regions): Break code handling RTL
18630 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
18631 that can not be reached by runtime.
18632 (can_be_reached_by_runtime): New function.
18633 (label_to_region_map): New function.
18634 (num_eh_regions): New function.
18635 (rtl_remove_unreachable_regions): New function.
18636 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
18637 (remove_eh_region): New function.
18638 * except.h: Include sbitmap and vecprim.
18639 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
18640 num_eh_regions): Declare.
18641 * passes.c (init_optimization_passes): Schedule cleanup_eh.
aca60c7b 18642 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
4c5fcca6 18643 * tree-eh.c (tree_remove_unreachable_handlers): New function.
18644 (tree_empty_eh_handler_p): New function.
18645 (cleanup_empty_eh): New function.
18646 (cleanup_eh): New function.
18647 (pass_cleanup_eh): New function.
18648
b8c0c866 186492009-03-29 Jan Hubicka <jh@suse.cz>
18650
18651 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
18652 for removed regions.
18653
bb22691b 186542009-03-29 Jan Hubicka <jh@suse.cz>
18655
18656 * except.c (dump_eh_tree): Dump all datastructures.
18657
cd451a8b 186582009-03-29 Jan Hubicka <jh@suse.cz>
18659
18660 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
18661 (duplicate_eh_regions_1): Likewise.
18662 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
18663 vector; call EH verification.
18664 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
18665 Be ready for region being removed.
18666
ffa800d1 186672009-03-29 Jan Hubicka <jh@suse.cz>
18668
18669 * bitmap.c (bitmap_last_set_bit): New function.
18670 * bitmap.h (bitmap_last_set_bit): Declare.
18671
1cf4a36a 186722009-03-29 David Ayers <ayers@fsfe.org>
18673
18674 PR objc/27377
18675 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
18676 by calling objc_compare_types and surpress warnings about
18677 incompatible C pointers that are compatible ObjC pointers.
89871bab 18678
1cf4a36a 186792009-03-29 Adam Nemet <anemet@caviumnetworks.com>
69428266 18680
18681 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
18682 call initialize_inline_failed.
18683 (initialize_inline_failed): Move it from here ...
18684 * cgraph.c (initialize_inline_failed): ... to here.
18685 (cgraph_create_edge): Call initialize_inline_failed rather than
18686 setting inline_failed directly.
18687
d093f898 186882009-03-29 Ben Elliston <bje@au.ibm.com>
18689
18690 PR target/32542
18691 * sysv4.opt (msdata): Improve comment.
18692 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
18693 * sysv4.h (SVR4_ASM_SPEC): Likewise.
18694
df6a567a 186952009-03-29 Ben Elliston <bje@au.ibm.com>
18696
18697 PR target/30451
18698 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
18699 load and store attributes.
18700
29c63a97 187012009-03-29 Ben Elliston <bje@au.ibm.com>
18702
18703 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
18704 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
18705 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
18706 * doc/extend.texi (X86 Built-in Functions): Add index entries for
18707 __builtin_infq and __builtin_huge_valq.
18708
ec4b52e7 187092009-03-28 Anatoly Sokolov <aesok@post.ru>
18710
18711 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
18712 atmega8m1 devices.
18713 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
18714 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
18715
43fb76c1 187162009-03-28 Xinliang David Li <davidxl@google.com>
18717
89871bab 18718 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
43fb76c1 18719 (do_dbg_cnt): New function.
18720
b5cebd44 187212009-03-28 Jan Hubicka <jh@suse.cz>
18722
18723 Merge from pretty-ipa:
18724
18725 2009-03-27 Jan Hubicka <jh@suse.cz>
aca60c7b 18726
b5cebd44 18727 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
18728 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
18729 * passes.c (function_called_by_processed_nodes_p): New.
18730 * ipa-pure-const.c (check_call): Fix handling of operands.
18731 (analyze_function): Dump debug output for skipped bodies.
18732 (local_pure_const): Use function_called_by_processed_nodes_p.
18733 * dwarf2out.c (reference_to_unused): Use output.
18734 * passes.c (do_per_function_toporder): Likewise.
18735
18736 2008-11-12 Jan Hubicka <jh@suse.cz>
18737
18738 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
18739 * ipa-pure-const.c (funct_state_d): Add can throw field; make
18740 state_set_in_source enum
18741 (check_decl): Ignore memory tags; do not set fake looping flags;
18742 dump diagnostics.
18743 (check_operand, check_tree, check_rhs_var, check_lhs_var,
18744 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
18745 (check_call, analyze_function): Rewrite.
18746 (check_stmt): New.
18747 (add_new_function): Update call of analyze_function.
18748 (generate_summary): Add call of analyze_function.
18749 (propagate): Propagate can_throw; handle state_set_in_source correctly.
18750 (local_pure_const): New function.
18751 (pass_local_pure_const): New pass.
18752 * ipa-inline.c (inline_transform): Set after_inlining.
18753 * tree-eh.c (stmt_can_throw_external): New.
18754 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
18755 work with aliasing built.
18756 * tree-flow.h (stmt_can_throw_external): New.
18757 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
18758 and local pure/const pass in early and late optimization queue.
aca60c7b 18759
1c4607fd 187602009-03-28 Martin Jambor <mjambor@suse.cz>
18761
18762 * fold-const.c (get_pointer_modulus_and_residue): New parameter
18763 allow_func_align.
18764 (fold_binary): Allow function decl aligment consideration is the
18765 second argument is integer constant one.
18766 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
18767 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
18768 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
18769
b0d29d1c 187702009-03-28 Jan Hubicka <jh@suse.cz>
18771
18772 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
18773 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
18774 * function.h (rtl_data): Add nothrow flag.
18775 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
18776 set DECL_NOTHROW for AVAILABLE functions.
18777
bf4a1edf 187782009-03-28 Jakub Jelinek <jakub@redhat.com>
18779
69dfb43a 18780 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
18781 following vector keyword has expansion starting with pixel or bool
18782 keyword, expand vector to __vector and pixel or bool to __pixel or
18783 __bool.
18784
bf4a1edf 18785 PR c++/39554
18786 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
18787 warn_if_disallowed_function_p): Removed.
18788 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
18789 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
18790 warning_if_disallowed_function_p.
18791 * flags.h (warn_if_disallowed_function_p,
18792 warn_disallowed_functions): Removed.
18793 * common.opt (Wdisallowed-function-list=): Removed.
18794 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
18795
c256d781 187962009-03-28 Richard Guenther <rguenther@suse.de>
18797
18798 PR tree-optimization/38723
18799 * tree-ssa-pre.c (compute_avail): Add all default definitions to
18800 the entry block.
18801
74a5c8eb 188022009-03-28 Jan Hubicka <jh@suse.cz>
18803
18804 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
18805 test introduced by my previous patch.
18806
59ce9604 188072009-03-28 Richard Guenther <rguenther@suse.de>
18808
18809 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
18810 the PHIs value undefined.
18811
6cb239e5 188122009-03-28 Jan Hubicka <jh@suse.cz>
18813
18814 * tree-pass.h (pass_fixup_cfg): New pass.
18815 * ipa-inline.c (inline_transform): Set
18816 always_inline_functions_inlined/after_inlining.
18817 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
18818 (pass_fixup_cfg): New pass.
18819 * passes.c (init_optimization_passes): Add fixup_cfg.
18820
aeb38861 188212009-03-28 Richard Guenther <rguenther@suse.de>
18822
18823 PR tree-optimization/38458
18824 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
18825 argument use the arguments copy-of value.
18826
8edeb88b 188272009-03-28 Richard Guenther <rguenther@suse.de>
18828
18829 PR tree-optimization/38180
18830 * tree-ssa-ccp.c (get_default_value): Simplify.
18831 (likely_value): Likewise.
18832 (surely_varying_stmt_p): Properly handle VOP case.
18833 (ccp_initialize): Likewise.
18834 (ccp_fold): Handle propagating through *&.
18835 (fold_const_aggregate_ref): Also handle decls.
18836
09fc9532 188372009-03-28 Jan Hubicka <jh@suse.cz>
18838
18839 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
18840 * cgraph.h (cgraph_node): Likewise.
18841 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
18842 (cgraph_reset_node): Use process flag.
18843 (cgraph_mark_functions_to_output): Likewise.
18844 (cgraph_expand_function): Likewise.
18845 (cgraph_expand_all_functions): Likewise.
18846 (cgraph_output_in_order): Likewise.
18847 * dwarf2out.c (reference_to_unused): Likewise.
18848 * passes.c do_per_function_toporder): Likewise.
18849
326a9581 188502009-03-28 Jan Hubicka <jh@suse.cz>
18851
18852 Bring from lto-branch:
aca60c7b 18853
326a9581 18854 2008-09-03 Doug Kwan <dougkwan@google.com>
18855
18856 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
18857 enums instead of reason strings.
18858 * cgraph.c (cgraph_create_edge): Same.
18859 (cgraph_inline_failed_string): New function.
18860 * cgraph.h (cgraph_inline_failed_t): New enum type.
18861 (cgraph_inline_failed_string): New prototype.
18862 (struct cgraph_edge): Change type of INLINED_FAILED from constant
18863 char pointer to cgraph_inline_failed_t.
18864 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
18865 (cgraph_default_inline_p): Ditto.
943327c1 18866 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
326a9581 18867 to cgraph_inline_failed_t pointer.
18868 * cif-code.def: New file.
18869 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
18870 reason string.
18871 (cgraph_check_inline_limits): Change type of REASON to pointer to
18872 cgraph_inline_failed_t. Replace reason strings with enums.
18873 (cgraph_default_inline_p): Ditto.
18874 (cgraph_recursive_inlining_p): Ditto.
18875 (update_caller_keys): Change type of FAILED_REASON to
18876 cgraph_inline_failed_t.
18877 (cgraph_set_inline_failed): Change type of REASON to pointer to
18878 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
18879 convert enums to strings for text output.
18880 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
18881 to be of type cgraph_inline_failed_t. Replace reason strings with
18882 enums. Call cgraph_inline_failed_string to covert enums
18883 to strings for text output.
18884 (cgraph_decide_inlining): Replace reason strings with enums.
18885 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
18886 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
18887 for text output.
18888 * tree-inline.c (expand_call_inline): Change type of REASON
18889 to cgraph_inline_failed_t. Replace reason strings with enums.
18890 Call cgraph_inline_failed_string for text output.
18891 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
18892 (cgraph.o): Ditto.
18893
77b5eabc 188942009-03-28 Jan Hubicka <jh@suse.cz>
18895
18896 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
18897 cgraph_clone_node): Remove master clone handling.
18898 (cgraph_is_master_clone, cgraph_master_clone): Remove.
18899 * cgraph.h (master_clone): Remove.
18900 (cgraph_is_master_clone, cgraph_master_clone): Remove.
18901 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
18902 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
18903
cc76f102 189042009-03-28 Jan Hubicka <jh@suse.cz>
18905
18906 * cgraph.c (cgraph_function_body_availability): Functions declared
18907 inline are always safe to assume that it is not going to be replaced.
18908
63295314 189092009-03-28 Richard Guenther <rguenther@suse.de>
18910
18911 PR tree-optimization/38513
18912 * tree-ssa-pre.c (eliminate): Remove redundant stores.
18913 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
18914 EXC_PTR_EXPR and FILTER_EXPR.
18915 (get_ref_from_reference_ops): Likewise.
18916
d360ad90 189172009-03-28 Richard Guenther <rguenther@suse.de>
18918
18919 PR tree-optimization/38968
18920 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
18921 Use FLOOR_MOD_EXPR to compute misalignment.
18922
c82f3b60 189232009-03-28 Richard Guenther <rguenther@suse.de>
18924
18925 PR tree-optimization/37795
18926 * tree.h (combine_comparisons): Declare.
18927 * fold-const.c (combine_comparisons): Export.
18928 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
18929 comparisons.
18930 (ifcombine_iforif): Use combine_comparisons.
18931
a5bfef5b 189322009-03-28 Jan Hubicka <jh@suse.cz>
18933
18934 * tree-eh.c (inlinable_call_p): New function.
18935 (make_eh_edges): Use it.
18936 (verify_eh_edges): Use it.
18937 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
18938 * except.c (reachable_next_level): Add inlinable_function argument
18939 (sjlj_find_directly_reachable_regions): Update.
18940 (add_reachable_handler): Do not set saw_any_handlers.
18941 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
18942 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
18943 Add new inlinable call parameter.
18944 (can_throw_internal, can_throw_external): Update.
18945 * except.h (can_throw_internal_1, can_throw_external_1,
18946 foreach_reachable_handler): Update declaration.
18947
f2397fc4 189482009-03-28 Joseph Myers <joseph@codesourcery.com>
18949
18950 * config/arm/t-arm-coff, config/h8300/coff.h,
18951 config/i386/i386-aout.h, config/i386/i386-coff.h,
18952 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
18953 config/pdp11/2bsd.h, config/rs6000/aix41.h,
18954 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
18955 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
18956 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
18957 sys-types.h: Remove.
18958 * Makefile.in: Remove protoize and fixproto support and references
18959 in comments.
18960 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
18961 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
18962 Remove.
18963 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
18964 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
18965 unprotoize$(exeext).
18966 (rest.encap): Don't depend on $(STMP_FIXPROTO)
18967 (.PHONY): Don't depend on proto.
18968 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
18969 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
18970 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
18971 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
18972 build/gen-protos.o, build/scan.o, xsys-protos.h,
18973 build/fix-header$(build_exeext), build/fix-header.o,
18974 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
18975 stmp-install-fixproto): Remove.
18976 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
18977 SYSCALLS.c or fixproto files.
18978 (install-common): Don't install protoize.
18979 (install-headers-tar, install-headers-cpio, install-headers-cp):
18980 Don't depend on $(STMP_FIXPROTO).
18981 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
18982 install fixproto files or write out fixproto settings.
18983 (uninstall): Don't uninstall protoize.
18984 * config.gcc (use_fixproto): Remove.
18985 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
18986 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
18987 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
18988 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
18989 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
18990 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
18991 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
18992 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
18993 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
18994 * config/t-vxworks (STMP_FIXPROTO): Remove.
18995 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
18996 STMP_FIXPROTO): Remove.
18997 * config.in, configure: Regenerate.
18998 * crtstuff.c (gid_t, uid_t): Don't undefine.
18999 * doc/install.texi: Change m68k-coff to m68k-elf in example.
19000 (arm-*-coff, arm-*-aout: Remove target entries.
19001 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
19002 Remove mention of AIX 4.1.
19003 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
19004 * doc/invoke.texi (Running Protoize): Remove.
19005 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
19006 (Protoize Caveats): Remove.
19007 * tsystem.h: Update comments on headers assumed to exist.
19008
08ed847d 190092009-03-27 Vladimir Makarov <vmakarov@redhat.com>
19010
19011 * genautomata.c: Add a new year to the copyright. Add a new
19012 reference.
19013 (struct insn_reserv_decl): Add comments for member bypass_list.
19014 (find_bypass): Remove.
19015 (insert_bypass): New.
19016 (process_decls): Use insert_bypass.
19017 (output_internal_insn_latency_func): Output all bypasses with the
19018 same input insn in one switch case.
19019
19020 * rtl.def (define_bypass): Describe bypass choice.
19021 * doc/md.texi (define_bypass): Ditto.
19022
8e353ea6 190232009-03-27 Richard Guenther <rguenther@suse.de>
19024
19025 * gimplify.c (mark_addressable): Export.
19026 * tree-flow.h (mark_addressable): Declare.
19027 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
19028 * tree-ssa.c (verify_phi_args): Verify that address taken
19029 variables have TREE_ADDRESSABLE set.
19030
190312009-03-27 Richard Guenther <rguenther@suse.de>
19032
19033 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
19034 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
19035 Do not mark decls TREE_ADDRESSABLE.
19036 (build_fold_addr_expr): Adjust.
19037 (fold_addr_expr): Remove.
19038 (fold_unary): Use build_fold_addr_expr.
19039 (fold_comparison): Likewise.
19040 (split_address_to_core_and_offset): Likewise.
19041 * coverage.c (tree_coverage_counter_addr): Mark the array decl
19042 TREE_ADDRESSABLE.
19043 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
19044 (gimplify_modify_expr_to_memcpy): Mark source and destination
19045 addressable.
19046 * omp-low.c (create_omp_child_function): Mark the object decl
19047 TREE_ADDRESSABLE.
19048 (lower_rec_input_clauses): Mark the var we take the address of
19049 TREE_ADDRESSABLE.
19050 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
19051
16fe3089 190522009-03-27 H.J. Lu <hongjiu.lu@intel.com>
19053
19054 PR middle-end/39315
19055 * cfgexpand.c (expand_one_stack_var_at): Change alignment
19056 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
19057
9d1d1fab 190582009-03-27 Richard Guenther <rguenther@suse.de>
19059
19060 PR tree-optimization/39120
19061 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
19062 constraints.
19063 (handle_lhs_call): Process return constraints. Add escape
19064 constraints if necessary.
19065 (handle_const_call): Fill out return constraints. Make nested
19066 case more precise. Avoid consttmp if possible.
19067 (handle_pure_call): Fill out return constraints. Avoid
19068 callused if possible.
19069 (find_func_aliases): Simplify call handling.
19070
190712009-03-27 Richard Guenther <rguenther@suse.de>
19072
19073 PR tree-optimization/39120
19074 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
19075 as a representative.
19076 (solve_graph): Do propagate CALLUSED.
19077 (handle_pure_call): Use a scalar constraint from CALLUSED for
19078 the return value.
19079 (find_what_p_points_to): CALLUSED shall not appear in poins-to
19080 solutions.
19081
7cfdc2f0 190822009-03-27 H.J. Lu <hongjiu.lu@intel.com>
19083
19084 PR c/39323
19085 * c-common.c (handle_aligned_attribute): Properly check alignment
19086 overflow. Use (1U << i) instead of (1 << i).
19087
aca60c7b 19088 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
7cfdc2f0 19089
19090 * expr.h (get_mem_align_offset): Updated.
19091
19092 * tree.h (tree_decl_common): Change align to "unsigned int" and
19093 move it before pointer_alias_set.
19094
3f863bef 190952009-03-27 H.J. Lu <hongjiu.lu@intel.com>
19096 Jakub Jelinek <jakub@redhat.com>
19097
19098 PR target/38034
19099 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
19100 gr_register_operand with gr_reg_or_0_operand.
19101 (cmpxchg_rel_di): Likewise.
19102 (sync_lock_test_and_set<mode>): Likewise.
19103
9680c846 191042009-03-27 H.J. Lu <hongjiu.lu@intel.com>
19105
19106 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
19107 (true_regnum): Likewise.
19108
19109 * rtlanal.c (subreg_info): Moved to ...
19110 * rtl.h (subreg_info): Here. New.
19111 (subreg_get_info): New.
19112
19113 * rtlanal.c (subreg_get_info): Make it extern.
19114
0e4d11df 191152009-03-27 H.J. Lu <hongjiu.lu@intel.com>
19116
19117 PR target/39472
19118 * config/i386/i386.c (ix86_abi): New.
19119 (override_options): Handle -mabi=.
aca60c7b 19120 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
0e4d11df 19121 (ix86_call_abi_override): Likewise.
19122 (init_cumulative_args): Likewise.
19123 (function_arg_advance): Likewise.
19124 (function_arg_64): Likewise.
19125 (function_arg): Likewise.
19126 (ix86_pass_by_reference): Likewise.
19127 (ix86_function_value_regno_p): Likewise.
19128 (ix86_build_builtin_va_list_abi): Likewise.
19129 (setup_incoming_varargs_64): Likewise.
19130 (is_va_list_char_pointer): Likewise.
19131 (ix86_init_machine_status): Likewise.
aca60c7b 19132 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
0e4d11df 19133 (ix86_function_type_abi): Return enum calling_abi. Rewrite
19134 for 64bit. Replace DEFAULT_ABI with ix86_abi.
aca60c7b 19135 (ix86_function_abi): Make it static and return enum calling_abi.
0e4d11df 19136 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
19137 with ix86_abi.
19138 (ix86_fn_abi_va_list): Updated.
19139
19140 * config/i386/i386.h (ix86_abi): New.
19141 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
19142 (CONDITIONAL_REGISTER_USAGE): Likewise.
19143 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
19144 (machine_function): Likewise.
19145
19146 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
19147 with ix86_abi.
19148 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
19149 (STACK_BOUNDARY): Likewise.
19150 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
19151
19152 * config/i386/i386.opt (mabi=): New.
19153
19154 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
19155 return enum calling_abi.
19156 (ix86_function_type_abi): Likewise.
19157 (ix86_function_abi): Removed.
19158
19159 * doc/invoke.texi: Document -mabi= option for x86.
19160
656ec810 191612009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19162
19163 * builtins.c (real_dconstp): Delete.
19164 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
19165
cb3582e7 191662009-03-27 Dodji Seketeli <dodji@redhat.com>
19167 Jakub Jelinek <jakub@redhat.com>
19168
19169 PR debug/37959
19170 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
19171 (gen_subprogram_die): When a function is explicit, generate the
19172 DW_AT_explicit attribute.
19173 * langhooks.h (struct lang_hooks_for_decls): Add
19174 function_decl_explicit_p langhook.
19175 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
19176 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
19177
38150ede 191782009-03-27 Jakub Jelinek <jakub@redhat.com>
19179
3f95c690 19180 * builtins.c (fold_builtin_memory_op): Optimize memmove
19181 into memcpy if we can prove source and destination don't overlap.
19182
38150ede 19183 * tree-inline.c: Include gt-tree-inline.h.
19184 (clone_fn_id_num): New variable.
19185 (clone_function_name): New function.
19186 (tree_function_versioning): Use it.
19187 * Makefile.in (GTFILES): Add tree-inline.c.
19188
08da3d21 191892009-03-27 Mark Mitchell <mark@codesourcery.com>
19190
19191 * BASE-VER: Change to 4.5.0.
19192
e19b015b 191932009-03-27 Xinliang David Li <davidxl@google.com>
19194
19195 PR tree-optimization/39557
19196 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
19197
b87f0847 191982009-03-27 Xinliang David Li <davidxl@google.com>
19199
19200 PR tree-optimization/39548
89871bab 19201 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
b87f0847 19202 candidate check.
19203
545ba0d7 192042009-03-27 H.J. Lu <hongjiu.lu@intel.com>
19205
19206 * c-common.c (pointer_int_sum): Use %wd on return from
19207 tree_low_cst.
19208
482c9a19 192092009-03-27 H.J. Lu <hongjiu.lu@intel.com>
19210
19211 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
19212 on return from tree_low_cst.
19213
1f1d68a6 192142009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
19215
19216 PR c++/36799
aca60c7b 19217 * ginclude/stdarg.h (va_copy): Define also for
19218 __GXX_EXPERIMENTAL_CXX0X__.
1f1d68a6 19219
d924b670 192202009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19221
19222 PR c++/35652
19223 * builtins.h (c_strlen): Do not warn here.
19224 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
19225 * c-common.c (pointer_int_sum): Take an explicit location.
19226 Warn about offsets out of bounds.
19227 * c-common.h (pointer_int_sum): Adjust declaration.
19228
1ab73152 192292009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19230
d924b670 19231 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
19232 markup glitch.
1ab73152 19233
f4858d06 192342009-03-26 Jakub Jelinek <jakub@redhat.com>
19235
19236 PR c++/39554
19237 * opts.c (warn_if_disallowed_function_p): Don't assume
19238 get_callee_fndecl must return non-NULL.
19239
d9cee1b1 192402009-03-26 Vladimir Makarov <vmakarov@redhat.com>
19241
19242 PR rtl-optimization/39522
19243 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
19244 when reg_reloaded_valid is set.
19245
204cb876 192462009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19247
19248 * config/spu/divv2df3.c: New file.
19249 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
19250 (DPBIT_FUNCS): Filter out _div_df.
19251
1fd36c3a 192522009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
19253
19254 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
19255 a jump insn, count that jump in the distance to the loop start.
19256
dc9b0799 192572009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
19258
19259 PR target/39523
19260 * config/sh/sh.c (calc_live_regs): Fix condition for global
19261 registers except PIC_OFFSET_TABLE_REGNUM.
19262
6609be22 192632009-03-25 Kai Tietz <kai.tietz@onevision.com>
19264
19265 PR/39518
19266 * doc/invoke.texi (-mconsole): New.
19267 (-mcygwin): New.
19268 (-mno-cygwin): New.
19269 (-mdll): New.
19270 (-mnop-fun-dllimport): New.
19271 (-mthread): New.
19272 (-mwin32): New.
19273 (-mwindows): New.
19274 (sub section "i386 and x86-64 Windows Options"): New.
19275
943327c1 192762009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
2ccb7f3f 19277
19278 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
19279 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
19280
5211387e 192812009-03-25 Richard Guenther <rguenther@suse.de>
19282
19283 PR middle-end/39497
19284 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
19285 of -Wno-error.
19286
686d79e0 192872009-03-25 Andrey Belevantsev <abel@ispras.ru>
19288
19289 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
19290 neither of haifa/selective schedulers are working.
19291
850fc3f0 192922009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19293
19294 * doc/invoke.texi (Debugging Options): Fix description of
19295 -fno-merge-debug-strings.
19296
10178ded 192972009-03-24 Hans-Peter Nilsson <hp@axis.com>
19298
d1640684 19299 * config/cris/libgcc.ver: New version-script.
19300 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
19301
10178ded 19302 * configure.ac <GAS features, nop mnemonic>: Add pattern
19303 crisv32-*-* for "nop".
aca60c7b 19304 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
10178ded 19305 * configure: Regenerate.
19306
416dafb3 193072009-03-24 Ira Rosen <irar@il.ibm.com>
19308
19309 PR tree-optimization/39529
19310 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
19311 mark_sym_for_renaming for the tag copied to the new vector
19312 pointer.
19313
68ecbaec 193142009-03-24 Arthur Loiret <aloiret@debian.org>
19315
aca60c7b 19316 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
68ecbaec 19317 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
19318 EXTRA_SPEC_FUNCTIONS.
19319 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
19320 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
19321 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
19322 -march and -mtune options.
19323
943327c1 193242009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
f8873a45 19325
19326 * config/m68k/t-rtems: Add m5329 multilib.
19327
ab977c1f 193282009-03-24 Dodji Seketeli <dodji@redhat.com>
19329 Jakub Jelinek <jakub@redhat.com>
19330
19331 PR debug/39524
19332 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
19333 nodes.
19334
4390875c 193352009-03-23 Jakub Jelinek <jakub@redhat.com>
19336
19337 PR c/39495
19338 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
19339 instead of c_parser_expression_conv, if original_code isn't one of the
19340 4 allowed comparison codes, fail.
19341
9fac1c66 193422009-03-23 Richard Guenther <rguenther@suse.de>
19343
19344 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
19345 * tree.h (struct tree_type): Likewise.
19346 * reload.h (struct insn_chain): Likewise.
19347 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
19348 * function.h (struct function): Likewise.
19349 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
19350
b7d1c9e6 193512009-03-23 Jakub Jelinek <jakub@redhat.com>
19352
19353 PR tree-optimization/39516
19354 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
19355
943327c1 193562009-03-23 Bingfeng Mei <bmei@broadcom.com>
f824d860 19357
89871bab 19358 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
f824d860 19359 should be set true if BITS_PER_WORD of target is bigger than 32
19360
f8cf5d4c 193612009-03-22 Hans-Peter Nilsson <hp@axis.com>
19362
19363 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
19364 Translate -B-options to -rpath-link. Correct existing
19365 rpath-link and conditionalize on !nostdlib.
19366
8898b2ef 193672009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19368
19369 * doc/extend.texi (Function Attributes, Variable Attributes):
19370 Fix typos.
19371 * doc/invoke.texi (Debugging Options, Optimize Options)
19372 (i386 and x86-64 Options, MCore Options): Likewise.
19373
4b1ab129 193742009-03-20 Jakub Jelinek <jakub@redhat.com>
19375
19376 PR debug/37890
19377 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
19378 it for block local namespace aliases.
19379 (gen_decl_die): Pass context_die to gen_namespace_die.
19380
e060ba36 193812009-03-19 Jakub Jelinek <jakub@redhat.com>
19382
19383 PR c/39495
19384 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
19385 minimum or maximum value.
19386
42f43a38 193872009-03-19 Alexandre Oliva <aoliva@redhat.com>
19388
19389 * reginfo.c (globalize_reg): Recompute derived reg sets.
19390
943327c1 193912009-03-19 Ozkan Sezer <sezeroz@gmail.com>
76d89866 19392
19393 PR target/39063
19394 * libgcc2.c (mprotect): Do not use signed arguments for
19395 VirtualProtect, use DWORD arguments. Also fix the 'may
19396 be used uninitialized' warning for the np variable.
19397
99198add 193982009-03-19 Jakub Jelinek <jakub@redhat.com>
19399
19400 PR target/39496
19401 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
19402 functions using regparm calling conventions when not optimizing.
19403 (ix86_function_sseregparm): Similarly for sseregparm calling
19404 conventions.
19405
63ca8934 194062009-03-19 Li Feng <nemokingdom@gmail.com>
19407
19408 PR middle-end/39500
19409 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
19410 dependence if the first conflict is after niter iterations.
19411
c5fe58d7 194122009-03-19 Hans-Peter Nilsson <hp@axis.com>
19413
19414 PR middle-end/38609
19415 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
19416 functions with dynamic stack-pointer adjustments.
19417
d4669bca 194182009-03-19 Ben Elliston <bje@au.ibm.com>
19419
19420 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
19421 option; change to -msdata=data.
19422
286c29e2 194232009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19424
19425 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
19426 and -fopenmp.
19427
0e55c4d0 194282009-03-18 Eric Botcazou <ebotcazou@adacore.com>
19429
19430 PR target/35180
19431 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
19432
5de57ebe 194332009-03-18 Sandra Loosemore <sandra@codesourcery.com>
19434
19435 * doc/invoke.texi (Code Gen Options): Expand discussion of
19436 -fno-common.
19437
0ac758f7 194382009-03-18 Jakub Jelinek <jakub@redhat.com>
19439
19440 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
19441 * matrix-reorg.c (struct matrix_info): Likewise.
19442 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
19443 * rtl.h (struct mem_attrs): Likewise.
19444 * df.h (struct df): Likewise.
19445 * tree-data-ref.h (struct data_dependence_relation): Likewise.
19446 * ira-int.h (struct ira_allocno): Likewise.
19447 * df-scan.c (struct df_collection_rec): Likewise.
19448 * ira.c (struct equivalence): Likewise.
19449 * function.c (struct temp_slot): Likewise.
19450 * cfgloop.h (struct loop): Likewise.
19451
f24ccada 19452 PR debug/39485
19453 * function.c (use_register_for_decl): When not optimizing, disregard
19454 register keyword for variables with types containing methods.
19455
8fa85fc5 194562009-03-18 Sebastian Pop <sebastian.pop@amd.com>
19457
19458 PR middle-end/39447
19459 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
19460 (is_simple_operand): Call contains_component_ref_p before calling data
19461 reference analysis that would fail on COMPONENT_REFs.
19462
19463 * tree-vrp.c (search_for_addr_array): Fix formatting.
19464
a39f4102 194652009-03-18 Richard Guenther <rguenther@suse.de>
19466
19467 * tree-vect-transform.c (vect_loop_versioning): Fold the
19468 generated comparisons.
19469 * tree-vectorizer.c (set_prologue_iterations): Likewise.
19470 (slpeel_tree_peel_loop_to_edge): Likewise.
19471
b8048da5 194722009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19473
fad6b6bb 19474 PR middle-end/37805
19475 * opts.c (print_specific_help): In addition to `undocumented',
19476 accept `separate' and `joined' flags if passed alone. Describe
19477 output by the first matched one of those.
19478 (common_handle_option): Skip over empty strings.
19479 * gcc.c (display_help): Fix help string for `--help='.
19480 * doc/invoke.texi (Option Summary, Overall Options): With
19481 `--help=', classes and qualifiers can both be repeated, but
19482 only the latter can be negated. One should not pass only
19483 negated qualifiers. Fix markup and examples.
19484
b8048da5 19485 Revert
19486 2008-10-14 Jakub Jelinek <jakub@redhat.com>
19487 PR middle-end/37805
19488 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
19489 and -fhelp=separate.
19490
9247818a 194912009-03-17 Jing Yu <jingyu@google.com>
19492
19493 PR middle-end/39378
a3b7452d 19494 * function.h (struct rtl_data): Move is_thunk from here...
19495 (struct function): ...to here.
19496 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
9247818a 19497 * varasm.c (assemble_start_function): Change is_thunk from crtl to
19498 cfun.
a3b7452d 19499 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
19500 cfun.
19501 (alpha_does_function_need_gp, alpha_start_function): Likewise.
19502 (alpha_output_function_end_prologue): Likewise.
19503 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
19504 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
19505 (rs6000_output_function_epilogue): Likewise.
19506 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
9247818a 19507
d849db06 195082009-03-17 Uros Bizjak <ubizjak@gmail.com>
19509
19510 PR target/39482
19511 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
19512 from different units in a single alternative.
19513 (*truncdfsf_i387): Ditto.
19514 (*truncxfsf2_mixed): Ditto.
19515 (*truncxfdf2_mixed): Ditto.
19516
31334434 195172009-03-17 Jakub Jelinek <jakub@redhat.com>
19518
169f8686 19519 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
19520 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
19521
4595b0f9 19522 PR debug/39474
19523 * tree-ssa-live.c (remove_unused_locals): Don't remove local
19524 unused non-artificial variables when not optimizing.
19525
157e283b 19526 PR debug/39471
19527 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
19528 DW_TAG_imported_module even if decl is IMPORTED_DECL with
19529 NAMESPACE_DECL in its DECL_INITIAL.
19530
979d3efc 19531 PR middle-end/39443
19532 * optabs.c (set_user_assembler_libfunc): New function.
19533 * expr.h (set_user_assembler_libfunc): New prototype.
19534 * c-common.c: Include libfuncs.h.
19535 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
19536 for memcmp, memset, memcpy, memmove and abort.
19537 * Makefile.in (c-common.o): Depend on libfuncs.h.
19538
31334434 19539 PR debug/39412
19540 * dwarf2out.c (gen_inlined_enumeration_type_die,
19541 gen_inlined_structure_type_die, gen_inlined_union_type_die,
19542 gen_tagged_type_instantiation_die): Removed.
19543 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
19544 do nothing.
19545
c158ae09 195462009-03-17 Janis Johnson <janis187@us.ibm.com>
19547
19548 PR testsuite/38526
19549 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
19550 its use.
19551 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
19552 (check-parallel-%): Ditto.
19553 (check-consistency): Ditto.
19554
d4138574 195552009-03-17 Kai Tietz <kai.tietz@onevision.com>
19556
19557 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
19558 local variable rhs by NULL_TREE.
19559
dc8c96bb 195602009-03-17 H.J. Lu <hongjiu.lu@intel.com>
19561
19562 PR target/39477
d849db06 19563 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
dc8c96bb 19564
462bc935 195652009-03-17 H.J. Lu <hongjiu.lu@intel.com>
19566
19567 PR target/39476
d849db06 19568 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
462bc935 19569
195702009-03-17 H.J. Lu <hongjiu.lu@intel.com>
4543b422 19571
19572 PR target/39473
19573 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
19574 for ms->sysv ABI calls only in 64bit mode.
19575
19576 * config/i386/i386.md (untyped_call): Support 32bit.
19577
ff8d1746 195782009-03-16 H.J. Lu <hongjiu.lu@intel.com>
19579
19580 * doc/extend.texi: Replace x86_65 with x86_64.
19581
1095b81d 195822009-03-16 Jakub Jelinek <jakub@redhat.com>
19583
19584 PR tree-optimization/39455
19585 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
19586 mismatches for POINTER_TYPE_P (type).
19587 (number_of_iterations_le): Likewise.
19588
943327c1 195892009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
15d6a8ce 19590
19591 * config/picochip/picochip.c: Removed profiling support.
19592 * config/picochip/picochip.md: Removed profiling instruction.
19593 * config/picochip/picochip.h: Removed profiling builtin.
19594
5bc96548 195952009-03-16 Joseph Myers <joseph@codesourcery.com>
19596
19597 * doc/install.texi (--with-host-libstdcxx): Document.
19598
7846db34 195992009-03-14 Anatoly Sokolov <aesok@post.ru>
19600
19601 PR target/34299
19602 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
19603 generate a warning if the function name does not begin with
19604 "__vector" and the function has either the 'signal' or 'interrupt'
19605 attribute, from here to ...
19606 (avr_declare_function_name): ...here. New function.
19607 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
19608 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
19609
6026d749 196102009-03-14 Jakub Jelinek <jakub@redhat.com>
19611
19612 PR bootstrap/39454
19613 * cse.c (fold_rtx): Don't modify original const_arg1 when
19614 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
19615 separate variable instead.
19616 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
19617 from out of range shift counts.
19618 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
19619
7dfbd804 196202009-03-13 Catherine Moore <clm@codesourcery.com>
747c6be5 19621
943327c1 19622 * config/i386/x-mingw32 (host-mingw32.o): Replace
747c6be5 19623 diagnostic.h with $(DIAGNOSTIC_H).
19624
7dfbd804 196252009-03-12 Jakub Jelinek <jakub@redhat.com>
1f477a18 19626
19627 PR target/39431
19628 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
19629 predicate.
19630 * config/i386/sync.md (sync_compare_and_swap<mode>,
19631 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
19632 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
19633 into a register.
19634 (sync_double_compare_and_swapdi_pic,
19635 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
19636 cmpxchg8b_pic_memory_operand instead of just memory_operand.
19637
7e17a1bf 196382009-03-12 H.J. Lu <hongjiu.lu@intel.com>
19639
19640 PR target/39445
d849db06 19641 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7e17a1bf 19642
01a3edef 196432009-03-12 H.J. Lu <hongjiu.lu@intel.com>
19644
19645 PR target/39327
19646 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
19647 (avx_addsubv4df3): Likewise.
19648 (*avx_addsubv4sf3): Likewise.
19649 (sse3_addsubv4sf3): Likewise.
19650
57183b55 196512009-03-12 H.J. Lu <hongjiu.lu@intel.com>
19652
19653 PR target/38824
d849db06 19654 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
57183b55 19655
3b95aad3 196562009-03-12 Vladimir Makarov <vmakarov@redhat.com>
19657
19658 PR debug/39432
19659 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
19660 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
19661 registers for allocnos created from user-defined variables.
19662
8d72495d 196632009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19664
19665 PR target/39181
19666 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
19667 of non-integer mode as well.
19668
cf219ecd 196692009-03-11 Adam Nemet <anemet@caviumnetworks.com>
19670
19671 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
19672 for functions for which the parameter types are unknown.
19673
76cbc2a0 196742009-03-11 Jakub Jelinek <jakub@redhat.com>
19675
19676 PR target/39137
d849db06 19677 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
76cbc2a0 19678 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
19679 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
19680 * config/i386/i386.c (ix86_local_alignment): For
19681 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
19682 long long variables on the stack to avoid dynamic realignment.
19683 Allow the first argument to be a decl rather than type.
19684 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
19685
18061948 196862009-03-11 Nick Clifton <nickc@redhat.com>
19687
19688 PR target/5362
a37dec0c 19689 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
19690 options.
19691 Add description to mno-lsim option.
19692 * config/mcore/mcore.h: Remove comment about deprecated m4align
19693 option.
19694 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
19695 * doc/invoke.texi: Add description of mno-lsim and
19696 mstack-increment options.
19697
18061948 19698 * config/fr30/fr30.opt: Document the -mno-lsim option.
19699 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
19700 and -mno-lsim options.
19701
944017fd 197022009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19703
19704 * fold-const.c (fold_comparison): Only call fold_inf_compare
19705 if the mode supports infinities.
19706
93ef9154 197072009-03-11 Jason Merrill <jason@redhat.com>
19708
19709 PR debug/39086
19710 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
19711 end already did. Notice GIMPLE_CALL modifications of the result.
19712 Don't copy debug information from an ignored decl or a decl from
19713 another function.
19714
e927e2b8 197152009-03-10 Richard Guenther <rguenther@suse.de>
19716 Nathan Froyd <froydnj@codesourcery.com>
19717
19718 PR middle-end/37850
d849db06 19719 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
e927e2b8 19720 (__divMODE3): Likewise.
19721
48855189 197222009-03-09 Jakub Jelinek <jakub@redhat.com>
19723
19724 PR tree-optimization/39394
19725 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
19726 DECL_SIZE_UNIT of variable length FIELD_DECLs.
19727
af7eac22 197282009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19729
19730 * recog.c (verfiy_changes): Disallow renaming of hard regs in
19731 inline asms for register asm ("") declarations.
19732
4ce9876e 197332009-03-09 Eric Botcazou <ebotcazou@adacore.com>
19734
19735 * fold-const.c (fold_unary): Fix comment.
19736
928059d5 197372009-03-07 Jan Hubicka <jh@suse.cz>
19738
19739 PR target/39361
0648196e 19740 * tree-inline.c (setup_one_parameter): Do replacement of const
19741 argument by constant in SSA form.
928059d5 19742
c9b50df7 197432009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19744
19745 PR middle-end/38028
19746 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
19747 determine alignment passed to assign_stack_local.
19748 (assign_parms_unsplit_complex): Likewise.
19749 * except.c (sjlj_build_landing_pads): Likewise.
19750
ebcb0478 197512009-03-06 Jakub Jelinek <jakub@redhat.com>
19752
82eb5a11 19753 PR middle-end/39360
19754 * tree-flow.h (add_referenced_var): Return bool instead of void.
19755 * tree-dfa.c (add_referenced_var): Return result of
19756 referenced_var_check_and_insert call.
19757 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
19758 of referenced_var_check_and_insert.
19759
ebcb0478 19760 PR debug/39372
d849db06 19761 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
ebcb0478 19762 (gen_variable_die): Emit DW_AT_location on abstract static variable's
19763 DIE, don't emit it if abstract origin already has it.
19764 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
19765 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
19766
6d92fc03 197672009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
19768
aca60c7b 19769 * genpreds.c (needs_variable): Fix parentheses at variable name
6d92fc03 19770 detection.
19771 (write_tm_constrs_h): Indent generated code.
19772
1fe1c6f5 197732009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19774
19775 * doc/extend.texi (Function Attributes): Add documentation
19776 for isr attributes.
19777
5a798e1e 197782009-03-06 Jakub Jelinek <jakub@redhat.com>
19779
19780 PR debug/39387
19781 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
19782 take locus from its DECL_SOURCE_LOCATION instead of input_location.
19783
05f566a9 197842009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
19785
19786 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
19787 the loop as bad.
19788
227f485e 197892009-03-05 Jakub Jelinek <jakub@redhat.com>
19790
19791 PR debug/39379
19792 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
19793 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
19794
a6ccab35 197952009-03-05 Uros Bizjak <ubizjak@gmail.com>
19796
19797 * config/i386/i386.md (R8_REG, R9_REG): New constants.
19798 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
19799 constants instead of magic numbers.
19800 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
19801 (QI_REG_P): Ditto.
19802 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
19803 (x86_64_ms_abi_int_parameter_registers): Ditto.
19804 (x86_64_int_return_registers): Ditto.
0d22f439 19805 (ix86_maybe_switch_abi): Ditto.
a6ccab35 19806 (ix86_expand_call): Ditto for clobbered_registers array.
19807 (ix86_hard_regno_mode_ok): Ditto.
19808 (x86_extended_QIreg_mentioned_p): Ditto.
19809
ea138c98 198102009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
19811
a6ccab35 19812 PR tree-optimization/39349
1595fd95 19813 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
19814
ea138c98 19815 * combine.c (gen_lowpart_for_combine): Use omode when generating
19816 clobber.
19817
242753ba 198182009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
19819
a6ccab35 19820 PR rtl-optimization/39235
242753ba 19821 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
19822
7299be85 198232009-03-04 Zdenek Dvorak <ook@ucw.cz>
19824
19825 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
19826
a4c8b601 198272009-03-04 Richard Guenther <rguenther@suse.de>
19828
19829 PR tree-optimization/39362
19830 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
19831 that occur in abnormal PHIs should be varying.
19832
76610704 198332009-03-04 Zdenek Dvorak <ook@ucw.cz>
19834
19835 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
19836 Extend comments.
19837 (simple_iv): Take loop as an argument instead of statement.
19838 * tree-scalar-evolution.h (simple_iv): Declaration changed.
19839 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
19840 to simple_iv.
19841 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
19842 Ditto.
19843 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
19844 * matrix-reorg.c (analyze_transpose): Ditto.
19845 * tree-data-ref.c (dr_analyze_innermost): Ditto.
19846 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
19847 * tree-predcom.c (ref_at_iteration): Ditto.
19848 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
19849
f13e5f6d 198502009-03-04 Richard Guenther <rguenther@suse.de>
19851
19852 PR tree-optimization/39358
19853 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
19854 escaped_id and callused_id.
19855 (solve_graph): Likewise.
19856
0cb9a712 198572009-03-04 Richard Guenther <rguenther@suse.de>
19858
19859 PR tree-optimization/39339
19860 * tree-sra.c (try_instantiate_multiple_fields): Make it
19861 no longer ICE on the above.
19862
cfb75cdf 198632009-03-03 Joseph Myers <joseph@codesourcery.com>
19864
19865 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
19866 that fits within Pmode.
19867
838bd0ed 198682009-03-03 Steve Ellcey <sje@cup.hp.com>
19869
19870 PR middle-end/10109
19871 * tm.texi (LIBCALL_VALUE): Update description.
19872
e5e13288 198732009-03-03 Steve Ellcey <sje@cup.hp.com>
19874
19875 PR middle-end/34443
19876 * doc/extend.texi (section): Update description.
19877
463cc256 198782009-03-03 H.J. Lu <hongjiu.lu@intel.com>
19879
19880 PR middle-end/39345
19881 * tree-inline.c (remapped_type): New.
19882 (can_be_nonlocal): Call remapped_type instead of remap_type.
19883
072866b6 198842009-03-03 Jakub Jelinek <jakub@redhat.com>
19885
19886 PR fortran/39354
19887 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
19888 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
19889
b430e8d9 198902009-03-03 Richard Guenther <rguenther@suse.de>
19891
19892 PR middle-end/39272
19893 * tree.c (tree_nonartificial_location): New function.
19894 * tree.h (tree_nonartificial_location): Declare.
19895 * builtins.c (expand_builtin_memory_chk): Provide location
19896 of the call location for artificial function pieces.
19897 (maybe_emit_chk_warning): Likewise.
19898 (maybe_emit_sprintf_chk_warning): Likewise.
19899 (maybe_emit_free_warning): Likewise.
19900 * expr.c (expand_expr_real_1): Likewise.
19901
bc79a76b 199022009-03-03 Jakub Jelinek <jakub@redhat.com>
19903
19904 PR tree-optimization/39343
19905 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
19906 COMPONENT_REF t has ARRAY_TYPE.
19907
41c18990 199082009-03-02 Sebastian Pop <sebastian.pop@amd.com>
19909
19910 PR middle-end/39335
19911 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
19912 when the type precision of the induction variable should be
19913 larger than the type precision of nit.
19914 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
19915 * graphite.c (graphite_loop_normal_form): Same.
19916 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
19917
32096e82 199182009-03-02 Uros Bizjak <ubizjak@gmail.com>
19919
19920 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
19921 (*call_1_rex64_ms_sysv): Use named constants instead of magic
a6ccab35 19922 numbers to describe clobbered registers.
32096e82 19923 (*call_value_0_rex64_ms_sysv): Ditto.
a6ccab35 19924 * config/i386/mmx.md (mmx_emms): Ditto.
19925 (mmx_femms): Ditto.
32096e82 19926
b8f6667e 199272009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
19928
19929 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
19930 of ABI_64.
19931
a08dfd55 199322009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19933
19934 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
19935 (spu_section_type_flags): New function.
19936
c81d1104 199372009-03-02 Uros Bizjak <ubizjak@gmail.com>
19938
19939 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
19940 reg_class_contents of FLOAT_REGS into a temporary.
19941
ed243388 199422009-03-02 Richard Guenther <rguenther@suse.de>
c81d1104 19943 Ira Rosen <irar@il.ibm.com>
ed243388 19944
19945 PR tree-optimization/39318
19946 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
19947 information to the vectorized statement.
19948
c4bb7475 199492009-03-01 Uros Bizjak <ubizjak@gmail.com>
19950
4d5fae72 19951 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
19952 variable. Use defined names instead of magic constants for REX SSE
19953 registers.
c4bb7475 19954
d2263ebb 199552009-03-01 Richard Guenther <rguenther@suse.de>
19956
19957 PR tree-optimization/39331
19958 * omp-low.c (lower_send_shared_vars): Do not receive new
19959 values for the reference of DECL_BY_REFERENCE parms or results.
19960
4b5d70fd 199612009-03-01 Jan Hubicka <jh@suse.cz>
19962
19963 PR debug/39267
19964 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
19965 BLOCK_NONLOCALIZED_VAR): New macros.
19966 (tree_block): Add nonlocalized_vars.
79283bdc 19967 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
19968 gen_decl_die): Add origin argument. Allow generation of die with
19969 origin at hand only.
4b5d70fd 19970 (gen_member_die, gen_type_die_with_usage, force_decl_die,
79283bdc 19971 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
19972 of gen_*.
4b5d70fd 19973 (gen_block_die): Fix checking for unused blocks.
19974 (process_scope_var): Break out from .... ; work with origins only.
19975 (decls_for_scope) ... here; process nonlocalized list.
19976 (dwarf2out_ignore_block): Look for nonlocalized vars.
79283bdc 19977 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
19978 vars.
4b5d70fd 19979 (dump_scope_block): Dump them.
19980 * tree-inline.c (remap_decls): Handle nonlocalized vars.
19981 (remap_block): Likewise.
19982 (can_be_nonlocal): New predicate.
19983 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
19984
9af964d4 199852009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19986
19987 * configure: Regenerate.
19988
a43fd3a5 199892009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19990
e6a03973 19991 * optc-gen.awk: No need to duplicate option flags twice.
d849db06 19992 Reuse help texts for duplicate options which do not have any.
e6a03973 19993
53f9a00b 19994 * gcc.c (display_help): Document --version.
19995
0445c349 19996 * gcc.c (main): If print_help_list and verbose_flag, ensure
19997 driver output comes before subprocess output.
19998
1df76a79 19999 * optc-gen.awk: Assign all remaining fields to help string,
20000 space-separated, for multi-line help in *.opt.
20001
d7381490 20002 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
20003 -Wno-pedantic-ms-format is for MinGW targets only.
20004
a43fd3a5 20005 * doc/options.texi (Option file format): Fix bad indentation,
20006 restoring dropped sentence.
20007
3d280f42 200082009-02-28 Jan Hubicka <jh@suse.cz>
20009
20010 * tree-inline.c (tree_function_versioning): Output debug info.
20011
12e12890 200122009-02-28 Jan Hubicka <jh@suse.cz>
20013
20014 PR debug/39267
20015 * tree-inline.c (setup_one_parameter): Do not copy propagate
20016 arguments when not optimizing.
20017
5e56456b 200182009-02-28 H.J. Lu <hongjiu.lu@intel.com>
20019
20020 PR target/39327
20021 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
20022 (avx_addsubv4df3): Likewise.
20023 (*avx_addsubv4sf3): Likewise.
20024 (sse3_addsubv4sf3): Likewise.
20025 (*avx_addsubv2df3): Likewise.
20026 (sse3_addsubv2df3): Likewise.
20027 (avx_unpckhps256): Correct item selectors.
20028 (avx_unpcklps256): Likewise.
20029 (avx_unpckhpd256): Likewise.
20030 (avx_unpcklpd256): Likewise.
20031
a8305131 200322009-02-28 Jan Hubicka <jh@suse.cz>
20033
20034 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
20035 static vars.
20036 (copy_arguments_for_versioning): If var is declared don't declare it.
20037 (tree_function_versioning): First setup substitutions and then copy
20038 args.
20039
89f29a1b 200402009-02-27 Jan Hubicka <jh@suse.cz>
20041
20042 PR debug/39267
20043 * cgraph.h (varpool_output_debug_info): Remove.
20044 * cgraphunit.c (varpool_output_debug_info): Remove.
20045 * dwarf2out.c (deferred_locations_struct): New struct
20046 (deferred_locations): New type.
20047 (deferred_locations_list): New static var.
20048 (deffer_location): New function.
20049 (gen_variable_die): Use it.
20050 (decls_for_scope): Output info on local static vars.
20051 (dwarf2out_finish): Process deferred locations.
20052 * varpool.c (varpool_output_debug_info): Remove.
20053
cee43f7e 200542009-02-27 Jan Hubicka <jh@suse.cz>
20055
20056 PR debug/39267
20057 * tree.h (TREE_PROTECTED): Fix comment.
20058 (BLOCK_HANDLER_BLOCK): Remove.
20059 (struct tree_block): Remove handler_block add body_block.
20060 (inlined_function_outer_scope_p): New.
20061 (is_body_block): Remove.
20062 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
20063 * dwarf2out.c (is_inlined_entry_point): Remove.
20064 (add_high_low_attributes): Use inlined_function_outer_scope_p.
a12d48b6 20065 (gen_block_die): Use is_inlined_entry_point check. Remove body block
20066 code.
cee43f7e 20067 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
20068 * gimplify.c (gimplify_expr): Gimplify body blocks.
a12d48b6 20069 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
20070 block with multiple subblocks.
cee43f7e 20071 (dump_scope_block): Prettier output; dump more flags and info.
20072 (dump_scope_blocks): New.
20073 (remove_unused_locals): Use dump_scope_blocks.
20074 * tree-flow.h (dump_scope_blocks): Declare.
20075 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
20076 * stmt.c (is_body_block): Remove.
20077 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
20078 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
20079
74e261f8 200802009-02-27 Sebastian Pop <sebastian.pop@amd.com>
20081
20082 PR middle-end/39308
89871bab 20083 * graphite.c (graphite_loop_normal_form): Do not call
74e261f8 20084 number_of_iterations_exit from a gcc_assert.
20085
512d9edf 200862009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20087
943327c1 20088 * config/s390/s390.c (s390_swap_cmp): Look for conditional
512d9edf 20089 jumps if COND is NULL.
20090 (find_cond_jump): New function.
20091 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
943327c1 20092 * config/s390/s390.md: Remove z10_cobra attribute value.
512d9edf 20093
f8fff44e 200942009-02-26 Uros Bizjak <ubizjak@gmail.com>
20095
20096 * config/alpha/alpha.h (alpha_expand_mov): Return false if
20097 force_const_mem returns NULL_RTX.
20098
673c690d 200992009-02-26 Jan Hubicka <jh@suse.cz>
20100
20101 PR debug/39267
20102 * cgraph.h (varpool_output_debug_info): Remove.
20103 * cgraphunit.c (varpool_output_debug_info): Remove.
20104 * dwarf2out.c (deferred_locations_struct): New struct
20105 (deferred_locations): New type.
20106 (deferred_locations_list): New static var.
20107 (deffer_location): New function.
20108 (gen_variable_die): Use it.
20109 (decls_for_scope): Output info on local static vars.
20110 (dwarf2out_finish): Process deferred locations.
20111 * varpool.c (varpool_output_debug_info): Remove.
20112
a330630f 201132009-02-25 H.J. Lu <hongjiu.lu@intel.com>
7216a350 20114
20115 PR rtl-optimization/39241
20116 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
20117 to subreg_offset_representable_p.
20118
1e176869 201192009-02-25 Paolo Bonzini <bonzini@gnu.org>
20120
20121 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
20122 execute function prototype. Get f and nregs from max_reg_num
20123 and get_insns. Remove the first backward pass as it's dead,
20124 guard the forward pass by flag_expensive_optimizations.
20125 (rest_of_handle_regmove): Delete.
20126 (pass_regmove): Replace it with regmove_optimize.
20127
28efe441 201282009-02-25 Martin Jambor <mjambor@suse.cz>
20129
20130 PR tree-optimization/39259
20131 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
a6ccab35 20132 calls_alloca function flags.
28efe441 20133 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
20134 calls are detected.
20135
e7dd8234 201362009-02-25 Paolo Bonzini <bonzini@gnu.org>
20137
20138 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
20139 flags_set_1_rtx, flags_set_1_set): Delete.
20140 (regmove_optimize): Do not call mark_flags_life_zones.
20141
3e0af691 201422009-02-24 Julian Brown <julian@codesourcery.com>
20143
20144 PR target/35965
20145 * config/arm/arm.c (require_pic_register): Only set
20146 cfun->machine->pic_reg once per function.
20147
95e9d9cd 201482009-02-24 Sandra Loosemore <sandra@codesourcery.com>
20149
20150 * doc/invoke.texi (Link Options): Document an easier way to pass
f8fff44e 20151 options that take arguments to the GNU linker using -Xlinker and -Wl.
95e9d9cd 20152
bbe1a1e9 201532009-02-24 Steve Ellcey <sje@cup.hp.com>
20154
20155 PR target/33785
20156 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
20157
dbc4ace1 201582009-02-24 Richard Guenther <rguenther@suse.de>
20159
20160 PR debug/39285
20161 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
20162
29474274 201632009-02-24 Richard Guenther <rguenther@suse.de>
7216a350 20164 Zdenek Dvorak <ook@ucw.cz>
29474274 20165
20166 PR tree-optimization/39233
20167 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
20168 from converting them to a generic type.
20169
70c06b9d 201702009-02-23 Sebastian Pop <sebastian.pop@amd.com>
20171
20172 PR tree-optimization/39260
20173 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
20174 contains a condition with a real type.
20175 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
20176
a9d778f8 201772009-02-23 Jason Merrill <jason@redhat.com>
20178
20179 PR c++/38880
20180 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
20181 narrowing_initializer_constant_valid_p.
89871bab 20182 (narrowing_initializer_constant_valid_p): Don't return
a9d778f8 20183 null_pointer_node for adding a pointer to itself.
20184
8b7d416a 201852009-02-23 Jan Hubicka <jh@suse.cz>
20186
20187 PR c/12245
f8fff44e 20188 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
20189 resizing.
8b7d416a 20190
36267649 201912009-02-23 Jan Hubicka <jh@suse.cz>
20192
f8fff44e 20193 PR tree-optimization/37709
20194 * tree.c (block_ultimate_origin): Move here from dwarf2out.
20195 * tree.h (block_ultimate_origin): Declare.
20196 * dwarf2out.c (block_ultimate_origin): Move to tree.c
36267649 20197 * tree-ssa-live.c (remove_unused_scope_block_p):
20198 Eliminate blocks containig no instructions nor live variables nor
20199 nested blocks.
20200 (dump_scope_block): New function.
20201 (remove_unused_locals): Enable removal of dead blocks by default;
f8fff44e 20202 enable dumping at TDF_DETAILS.
36267649 20203
a330630f 202042009-02-21 H.J. Lu <hongjiu.lu@intel.com>
d9984eae 20205
20206 * config/i386/i386.c (classify_argument): Don't allow COImode
20207 and OImode.
20208 (function_arg_advance_32): Don't allow OImode.
20209 (function_arg_32): Likewise.
20210 (function_value_32): Likewise.
20211 (return_in_memory_32): Likewise.
20212 (function_arg_64): Remove OImode comment.
20213
a330630f 202142009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f65f962c 20215
20216 PR target/39261
20217 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
20218 ix86_expand_vector_set for V4DImode in 64bit mode only.
20219 (ix86_expand_vector_init_one_var): Likewise.
20220
c08b0c04 202212009-02-21 Sebastian Pop <sebastian.pop@amd.com>
20222
20223 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
20224
c0efe3c3 202252009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
20226
71cca459 20227 PR bootstrap/39257
c0efe3c3 20228 * loop-iv.c: Revert last change.
20229 * emit-rtl.c: Likewise.
20230
a330630f 202312009-02-21 H.J. Lu <hongjiu.lu@intel.com>
6c37e539 20232
20233 PR target/39256
20234 * config/i386/i386.c (type_natural_mode): Remove an extra
20235 space in the warning message.
20236 (function_value_32): Handle 32-byte vector modes.
20237 (return_in_memory_32): Likewise.
20238
c2c24c89 202392009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
20240
20241 * loop-iv.c (truncate_value): New function.
20242 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
20243 of lowpart_subreg.
20244 (lowpart_subreg): Move to...
20245 * emit-rtl.c: ...here.
20246
59c236cd 202472009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
09869175 20248
59c236cd 20249 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
20250 accidental and undocumented change at revision 140860.
20251
54ad443f 202522009-02-21 Joseph Myers <joseph@codesourcery.com>
20253
20254 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
20255 take gimple_seq * arguments.
20256 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
20257 types_compatible_p langhook.
20258
fb20d2ee 202592009-02-20 Mark Mitchell <mark@codesourcery.com>
09869175 20260 Joseph Myers <joseph@codesourcery.com>
fb20d2ee 20261
20262 * config/arm/arm.c (arm_builtin_va_list): New function.
20263 (arm_expand_builtin_va_start): Likewise.
20264 (arm_gimplify_va_arg_expr): Likewise.
20265 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
20266 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
20267 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
20268 (va_list_type): New variable.
20269 (arm_mangle_type): Mangle va_list_type appropriately.
20270
86482d6b 202712009-02-20 Jakub Jelinek <jakub@redhat.com>
20272
20273 PR middle-end/39157
20274 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
20275 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
20276 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
20277 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
20278 parameter to 1000 for -O1 by default.
20279 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
20280 parameter.
20281 * loop-invariant.c: Include params.h.
20282 (move_loop_invariants): Don't call move_single_loop_invariants on
20283 very large loops.
20284
9a0cf170 202852009-02-20 Jaka Mocnik <jaka@xlab.si>
20286
20287 * calls.c (emit_library_call_value_1): Use slot_offset instead of
20288 offset when calculating bounds for indexing stack_usage_map. Fixes
20289 a buffer overflow with certain target setups.
20290
4681dd41 202912009-02-20 Jakub Jelinek <jakub@redhat.com>
20292
20293 PR target/39240
20294 * calls.c (expand_call): Clear try_tail_call if caller and callee
20295 disagree in promotion of function return value.
20296
2d9d8740 202972009-02-19 Jakub Jelinek <jakub@redhat.com>
20298
20299 PR target/39175
20300 * c-common.c (c_determine_visibility): If visibility changed and
20301 DECL_RTL has been already set, call make_decl_rtl to update symbol
20302 flags.
20303
e3040053 203042009-02-19 H.J. Lu <hongjiu.lu@intel.com>
20305
20306 PR c++/39188
20307 * varasm.c (assemble_variable): Don't check DECL_NAME when
20308 globalizing a variable.
20309
ad0e7a06 203102009-02-19 Joseph Myers <joseph@codesourcery.com>
20311
20312 PR c/38483
20313 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
20314 expression before any __builtin_trap call.
20315 * c-typeck.c (build_function_call): Convert and check function
20316 arguments before generating a call to a trap. Evaluate the
20317 function arguments before the trap.
20318
a7a2dd08 203192009-02-19 Uros Bizjak <ubizjak@gmail.com>
20320
20321 PR target/39228
20322 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
20323 (UNSPEC_FXAM_MEM): New unspec.
20324 (fxam<mode>2_i387_with_temp): New insn and split pattern.
20325 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
20326 memory using fxam<mode>2_i387_with_temp to remove excess precision.
20327
c5168a9e 203282009-02-19 Richard Guenther <rguenther@suse.de>
20329
20330 PR tree-optimization/39207
20331 PR tree-optimization/39074
20332 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
20333 storedanything_tree): New.
20334 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
a7a2dd08 20335 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
c5168a9e 20336 (build_succ_graph): Add edges from STOREDANYTHING to all
20337 non-direct nodes.
20338 (init_base_vars): Initialize STOREDANYTHING.
20339 (compute_points_to_sets): Free substitution info after
20340 building the succ graph.
20341 (ipa_pta_execute): Likewise.
20342
20343 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
20344 field.
20345 (do_ds_constraint): Do not add to special var or non-pointer
20346 field solutions.
20347 (type_could_have_pointers): Split out from ...
20348 (could_have_pointers): ... here. For arrays use the element type.
20349 (create_variable_info_for): Initialize may_have_pointers.
20350 (new_var_info): Likewise.
20351 (handle_lhs_call): Make the HEAP variable unknown-sized.
20352 (intra_create_variable_infos): Use a type with pointers for
20353 PARM_NOALIAS, make it unknown-sized.
20354
f36b5ce0 203552009-02-18 H.J. Lu <hongjiu.lu@intel.com>
20356
20357 PR target/39224
a7a2dd08 20358 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
f36b5ce0 20359
807bf718 203602009-02-18 Jason Merrill <jason@redhat.com>
20361
20362 PR target/39179
20363 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
20364 value if DECL_EXTERNAL.
20365 * tree-sra.c (sra_walk_gimple_assign): Likewise.
20366 * target.h (gcc_target::binds_local_p): Clarify "module".
20367 * tree.h (TREE_PUBLIC): Clarify "module".
20368
f29980e5 203692009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
20370
20371 PR target/38891
20372 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
20373 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
20374
58beda63 203752009-02-17 H.J. Lu <hongjiu.lu@intel.com>
20376
20377 PR target/39082
20378 * c.opt (Wabi): Support C and ObjC.
20379 (Wpsabi): New.
20380
20381 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
20382
20383 * config/i386/i386.c (classify_argument): Warn once about the ABI
20384 change when passing union with long double.
20385
20386 * doc/invoke.texi: Update -Wabi for warning psABI changes.
20387
22d77a94 203882009-02-18 Joseph Myers <joseph@codesourcery.com>
20389
20390 PR c/35447
20391 * c-parser.c (c_parser_compound_statement): Always enter and leave
20392 a scope.
20393
492e3336 203942009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20395
20396 PR target/34587
20397 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
20398
b6eab06c 203992009-02-18 Jakub Jelinek <jakub@redhat.com>
20400
20401 PR tree-optimization/36922
20402 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
20403 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
20404 Likewise.
20405
4f0507c2 204062009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
20407
20408 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
20409 to 0 for EABI64.
20410
be83ab34 204112009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
20412
20413 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
20414
aa6a48b8 204152009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
20416
20417 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
20418 tree sharing.
20419
0f604f19 204202009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
20421 Richard Sandiford <rdsandiford@googlemail.com>
20422
20423 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
20424 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
20425 (loongson_biadd): ...this.
20426
1ab8a912 204272009-02-17 Richard Guenther <rguenther@suse.de>
20428
20429 PR tree-optimization/39202
20430 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
20431 a var make sure to follow existing collapses.
20432
aa03bd5e 204332009-02-17 Richard Guenther <rguenther@suse.de>
20434
20435 PR middle-end/39214
20436 * langhooks.c (lhd_print_error_function): Check for NULL block.
20437
f46bc821 204382009-02-17 Richard Guenther <rguenther@suse.de>
20439
20440 PR tree-optimization/39204
20441 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
20442 of the PHI arg.
20443
974645ce 204442009-02-17 Uros Bizjak <ubizjak@gmail.com>
20445
20446 * config/soft-fp/double.h: Update from glibc CVS.
20447
7197c469 204482009-02-17 Richard Guenther <rguenther@suse.de>
20449
20450 PR tree-optimization/39207
20451 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
20452 strict-aliasing warnings for pointers pointing to NULL.
20453
1646bf33 204542009-02-16 Joseph Myers <joseph@codesourcery.com>
20455
20456 PR c/35446
20457 * c-parser.c (c_parser_braced_init): Call pop_init_level when
20458 skipping until next close brace.
20459
0fb2a998 204602009-02-16 H.J. Lu <hongjiu.lu@intel.com>
20461
20462 PR target/37049
20463 * config/i386/i386.c (ix86_expand_push): Set memory alignment
20464 to function argument boundary.
20465
a1a75b07 204662009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
20467
20468 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
20469 in the lea_add. Reload eventually constraints it properly.
1cae7fd7 20470 * config/picochip/constraints.md: Remove the target constraint
a1a75b07 20471 "b", since it is not needed anymore.
20472
320084b9 204732009-02-16 Jakub Jelinek <jakub@redhat.com>
20474
20475 * gthr-dce.h: Uglify function parameter and local variable names.
20476 * gthr-gnat.h: Likewise.
20477 * gthr-mipssde.h: Likewise.
20478 * gthr-nks.h: Likewise.
20479 * gthr-posix95.h: Likewise.
20480 * gthr-posix.h: Likewise.
20481 * gthr-rtems.h: Likewise.
20482 * gthr-single.h: Likewise.
20483 * gthr-solaris.h: Likewise.
20484 * gthr-tpf.h: Likewise.
20485 * gthr-vxworks.h: Likewise.
20486 * gthr-win32.h: Likewise.
20487
fde73de8 204882009-02-15 H.J. Lu <hongjiu.lu@intel.com>
20489
20490 PR target/39196
20491 * config/i386/i386.md: Restrict the new peephole2 to move
20492 between MMX/SSE registers.
20493
b5c49426 204942009-02-15 Richard Guenther <rguenther@suse.de>
20495
20496 Revert
20497 2009-02-13 Richard Guenther <rguenther@suse.de>
20498
20499 * configure.ac: Enable LFS.
20500 * configure: Re-generate.
20501 * config.in: Likewise.
20502
70ca06f8 205032009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20504
20505 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
20506 spu_srqwbyte, spu_srqwbytebc): Define.
20507 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
20508 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
20509 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
20510 "shrqby_<mode>"): New insn-and-split patterns.
20511 * config/spu/spu.c (expand_builtin_args): Determine and return
20512 number of operands using spu_builtin_description data.
20513 (spu_expand_builtin_1): Use it.
20514
c49d20be 205152009-02-13 Steve Ellcey <sje@cup.hp.com>
20516
20517 PR target/38056
20518 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
20519 TARGET_CONST_GP.
20520
c81f43ee 205212009-02-13 H.J. Lu <hongjiu.lu@intel.com>
20522
20523 PR target/39149
20524 * config/i386/i386.c (override_options): Correct warning
a6ccab35 20525 messages for -malign-loops, -malign-jumps and -malign-functions.
c81f43ee 20526
bc0a240f 205272009-02-13 H.J. Lu <hongjiu.lu@intel.com>
20528
20529 PR target/39152
20530 * config/i386/i386.md: Restrict the new peephole2 to move
20531 between the general purpose registers.
20532
79a817bf 205332009-02-13 H.J. Lu <hongjiu.lu@intel.com>
20534
20535 PR target/39162
20536 * config/i386/i386.c (type_natural_mode): Add a new argument.
a7a2dd08 20537 Return the original mode and warn ABI change if vector size is 32byte.
79a817bf 20538 (function_arg_advance): Updated.
20539 (function_arg): Likewise.
20540 (ix86_function_value): Likewise.
20541 (ix86_return_in_memory): Likewise.
20542 (ix86_sol10_return_in_memory): Likewise.
20543 (ix86_gimplify_va_arg): Likewise.
20544 (function_arg_32): Don't warn ABX ABI change here.
20545 (function_arg_64): Likewise.
20546
a330630f 205472009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
27440859 20548
20549 * loop-iv.c (implies_p): In the final case, test that operands 0
20550 of the two comparisons match.
20551
462ce619 20552 * config/bfin/bfin.c (find_prev_insn_start): New function.
20553 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
20554 (find_next_insn_start): Move.
20555
76549266 205562009-02-13 Richard Guenther <rguenther@suse.de>
20557
20558 * configure.ac: Enable LFS.
20559 * configure: Re-generate.
20560 * config.in: Likewise.
20561
1bbf1c2f 205622009-02-13 Joseph Myers <joseph@codesourcery.com>
20563
20564 PR c/35444
20565 * c-parser.c (c_parser_parms_list_declarator): Discard pending
20566 sizes on syntax error after some arguments have been parsed.
20567
ce2801fe 205682009-02-12 Jakub Jelinek <jakub@redhat.com>
20569
20570 * doc/invoke.texi (-fira): Remove.
20571
ac502adf 205722009-02-12 H.J. Lu <hongjiu.lu@intel.com>
20573
20574 * caller-save.c: Replace regclass.c with reginfo.c in comments.
20575 * recog.c: Likewise.
20576 * rtl.h: Likewise.
20577
8b21beb2 205782009-02-12 Uros Bizjak <ubizjak@gmail.com>
20579
20580 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
20581 (umul_ppmm): Likewise.
20582 (count_leading_zeros): Likewise.
20583 (count_trailing_zeros): Likewise.
20584 (UMUL_TIME): Likewise.
20585
205862009-02-12 H.J. Lu <hongjiu.lu@intel.com>
20587
24200b28 20588 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
20589 soft-fp/t-softfp to tmake_file.
8b21beb2 20590
20591 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
24200b28 20592 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
20593 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
20594 IA64_BUILTIN_INFQ]: New.
8b21beb2 20595 (ia64_init_builtins): Initialize __builtin_infq,
20596 __builtin_fabsq and __builtin_copysignq if not HPUX.
20597 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
20598 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
20599
20600 * config/ia64/lib1funcs.asm (__divtf3): Define only if
20601 SHARED is defined.
20602 (__fixtfti): Likewise.
20603 (__fixunstfti): Likewise.
20604 (__floattitf): Likewise.
20605
20606 * config/ia64/libgcc-glibc.ver: New.
20607 * config/ia64/t-fprules-softfp: Likewise.
20608 * config/ia64/sfp-machine.h: Likewise.
20609
20610 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
20611 (LIBGCC2_TF_CEXT): Likewise.
20612 (TF_SIZE): Likewise.
20613 (TARGET_INIT_LIBFUNCS): Likewise.
20614
24200b28 20615 * config/ia64/t-glibc (SHLINB_MAPFILES):
a7a2dd08 20616 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8b21beb2 20617
cffe3086 206182009-02-12 H.J. Lu <hongjiu.lu@intel.com>
20619
20620 * config/i386/i386.c (construct_container): Rewrite processing
20621 BLKmode with X86_64_SSE_CLASS.
20622
fbfa3312 206232009-02-12 Paolo Bonzini <bonzini@gnu.org>
20624
20625 PR target/39152
20626 * config/i386/i386.md: Replace simplify_replace_rtx with
20627 replace_rtx in the new peephole2.
20628
38b64900 206292009-02-12 Nathan Sidwell <nathan@codesourcery.com>
20630
20631 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
20632 loop unrolling do not happen at -O2.
20633
674ca8bf 206342009-02-12 Michael Matz <matz@suse.de>
20635
20636 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
20637
e1b3cc49 206382009-02-12 Jakub Jelinek <jakub@redhat.com>
20639
20640 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
20641 for -g3.
20642
0fbcd2eb 206432009-02-12 Ben Elliston <bje@au.ibm.com>
20644
20645 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
20646 patterns when updating the back chain. Missed in the 2009-02-10
20647 change.
20648
0e86dff0 206492009-02-11 Janis Johnson <janis187@us.ibm.com>
20650
20651 * doc/extend.texi (Decimal Floating Types): Update identifier of
20652 draft TR and list of missing support.
20653
2a92826d 206542009-02-11 Jakub Jelinek <jakub@redhat.com>
20655
20656 PR middle-end/39154
20657 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
20658 bit to variable length decl's flags, add it also to its
20659 pointer replacement variable.
20660
73c5e2aa 206612009-02-11 Uros Bizjak <ubizjak@gmail.com>
20662 Jakub Jelinek <jakub@redhat.com>
20663
20664 PR target/39118
20665 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
20666 (memory_blockage): New expander.
20667 (*memory_blockage): New insn pattern.
20668 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
20669 instead of general blockage at the end of function prologue when
20670 frame pointer is used to access red zone area. Do not emit blockage
20671 when profiling, it is emitted in generic code.
20672 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
20673 function epilogue when frame pointer is used to access red zone area.
20674
486a1b16 206752009-02-11 Paolo Bonzini <bonzini@gnu.org>
20676
b899e808 20677 PR target/38824
486a1b16 20678 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
20679 by arithmetic with memory operands.
20680 * config/i386/predicates.md (commutative_operator): New.
20681
560db68e 206822009-02-10 Janis Johnson <janis187@us.ibm.com>
20683
20684 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
20685 bulleted lists.
20686
892fdb03 206872009-02-10 Eric Botcazou <ebotcazou@adacore.com>
20688
20689 * alias.h (record_alias_subset): Declare.
20690 * alias.c (record_alias_subset): Make global.
20691
4ef8346d 206922009-02-10 Nick Clifton <nickc@redhat.com>
20693
20694 * tree-parloops.c: Change license to GPLv3.
20695 * ipa-struct-reorg.c: Change license to GPLv3.
20696 * ipa-struct-reorg.h: Change license to GPLv3.
20697
fc92befb 206982009-02-10 Steve Ellcey <sje@cup.hp.com>
20699
20700 PR c/39084
20701 * c-decl.c (start_struct): Return NULL on error.
20702
e15deb4b 207032009-02-10 Jakub Jelinek <jakub@redhat.com>
20704
16ccc50c 20705 PR middle-end/39124
20706 * cfgloopmanip.c (remove_path): Call remove_bbs after
20707 cancel_loop_tree, not before it.
20708
e15deb4b 20709 PR target/39139
73c5e2aa 20710 * function.h (struct function): Add has_local_explicit_reg_vars bit.
e15deb4b 20711 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
20712 VAR_DECLs were seen.
20713 * tree-ssa-live.c (remove_unused_locals): Recompute
20714 cfun->has_local_explicit_reg_vars.
20715 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
20716 copies or clearings if cfun->has_local_explicit_reg_vars.
20717
a9c1f295 207182009-02-10 Uros Bizjak <ubizjak@gmail.com>
20719
20720 PR target/39118
20721 * config/i386/i386.c (expand_prologue): Emit blockage at the end
20722 of function prologue when frame pointer is used to access
20723 red zone area.
20724
c85b2faf 207252009-02-10 Richard Guenther <rguenther@suse.de>
20726
20727 PR middle-end/39127
20728 * gimplify.c (gimple_regimplify_operands): Always look if
20729 we need to create a temporary.
20730
8d093dba 207312009-02-10 Richard Guenther <rguenther@suse.de>
20732
20733 PR tree-optimization/39132
20734 * tree-loop-distribution.c (todo): New global var.
20735 (generate_memset_zero): Trigger TODO_rebuild_alias.
20736 (tree_loop_distribution): Return todo.
20737
edd93683 207382009-02-10 H.J. Lu <hongjiu.lu@intel.com>
20739
20740 PR target/39119
20741 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
20742 (x86_64_reg_class_name): Removed.
20743 (classify_argument): Return 0 if bytes > 32. Return 0 if the
20744 first one isn't X86_64_SSE_CLASS or any other ones aren't
20745 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
20746 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
20747 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
20748 and 3 X86_64_SSEUP_CLASS.
20749 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
20750 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
20751
2b6975a6 207522009-02-10 Ben Elliston <bje@au.ibm.com>
20753
20754 * config/rs6000/rs6000.md (allocate_stack): Always use an update
20755 form instruction to update the stack back chain word, even if the
20756 user has disabled the generation of update instructions.
20757 (movdi_<mode>_update_stack): New.
20758 (movsi_update_stack): Likewise.
20759 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
20760 always use an update form instruction to update the stack back
20761 chain word.
20762
a72d4b7d 207632009-02-09 Sebastian Pop <sebastian.pop@amd.com>
20764
20765 PR middle-end/38953
73c5e2aa 20766 * graphite.c (if_region_set_false_region): After moving a region in
20767 the false branch of a condition, remove the empty dummy basic block.
a72d4b7d 20768 (gloog): Remove wrong fix for PR38953.
20769
1f915911 207702009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20771
20772 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
20773 generation due to implicit sign extension.
20774
bbe1fc8f 207752009-02-09 Eric Botcazou <ebotcazou@adacore.com>
20776
20777 PR middle-end/38981
20778 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
20779 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
20780
fd494669 207812009-02-09 Richard Guenther <rguenther@suse.de>
20782
20783 PR middle-end/35202
20784 * convert.c (convert_to_real): Disable (float)fn((double)x)
20785 to fnf(x) conversion if errno differences may occur and
20786 -fmath-errno is set.
20787
a64bd5e4 207882009-02-07 Anatoly Sokolov <aesok@post.ru>
20789
20790 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
20791 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
20792 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
20793
9e830260 207942009-02-06 Joseph Myers <joseph@codesourcery.com>
20795
20796 PR c/35434
20797 * c-common.c (handle_alias_attribute): Disallow attribute for
20798 anything not a FUNCTION_DECL or VAR_DECL.
20799
42dc1cf5 208002009-02-06 Janis Johnson <janis187@us.ibm.com>
20801
20802 PR c/39035
20803 * real.c (do_compare): Special-case compare of zero against
20804 decimal float value.
20805
0af147a4 208062009-02-06 Joseph Myers <joseph@codesourcery.com>
20807
20808 PR c/36432
20809 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
20810 as indicating flexible array members unless the field itself is
20811 being declarared as the incomplete array.
20812
68b2f511 208132009-02-06 Jan Hubicka <jh@suse.cz>
20814
20815 PR tree-optimization/38844
20816 * ipa-inline.c (try_inline): Stop inlining recursion when edge
20817 is already inlined.
20818
dac59c04 208192009-02-06 Richard Guenther <rguenther@suse.de>
20820
20821 PR middle-end/38977
20822 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
20823 fork because we may expand it as __gcov_fork.
20824
2314f2ef 208252009-02-06 Nick Clifton <nickc@redhat.com>
20826
a9c1f295 20827 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
2314f2ef 20828
3d2d7de7 208292009-02-06 Paolo Bonzini <bonzini@gnu.org>
20830
20831 PR tree-optimization/35659
20832 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
20833 vn_phi_eq): Shortcut if hashcode does not match.
20834 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
20835 NULL operands.
20836 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
20837 and avoid iterative_hash_expr.
20838 (FOR_EACH_VALUE_ID_IN_SET): New.
20839 (value_id_compare): Remove.
20840 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
20841 sort expressions by value id.
20842
07d27c98 208432009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
20844
20845 PR target/38991
20846 * config/sh/predicates.md (general_movsrc_operand): Don't check
20847 the subreg of system registers here.
20848
f014e39d 208492009-02-05 Jakub Jelinek <jakub@redhat.com>
20850
20851 PR c++/39106
20852 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
20853 on the copied decl.
20854
99e9b19f 208552009-02-05 Paolo Bonzini <bonzini@gnu.org>
20856
20857 PR rtl-optimization/39110
20858 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
20859 addresses, not aligned ones.
20860
707dd2b0 208612009-02-05 Daniel Berlin <dberlin@dberlin.org>
20862 Richard Guenther <rguenther@suse.de>
20863
20864 PR tree-optimization/39100
20865 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
20866 comment says and add edges.
20867
c34f8a78 208682009-02-05 Joseph Myers <joseph@codesourcery.com>
20869
20870 PR c/35435
20871 * c-common.c (handle_tls_model_attribute): Ignore attribute for
20872 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
20873
89871bab 208742009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
7f28086c 20875
20876 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
20877 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
20878 register_bb_in_sese, new_sese, free_sese): Moved.
20879 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
20880 outermost_loop_in_scop, build_scop_iteration_domain,
20881 expand_scalar_variables_ssa_name, get_vdef_before_scop,
20882 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
20883 Use loop_in_sese_p instead of loop_in_scop_p.
20884 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
20885 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
20886 (scopdet_basic_block_info): Fix bug in scop detection.
20887 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
20888 eq_loop_to_cloog_loop): Remove.
20889 (nb_loops_around_loop_in_scop, nb_loop
20890 ref_nb_loops): Moved here...
20891 * graphite.h (ref_nb_loops): ... from here.
20892 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
20893 (loop_domain_dim, loop_iteration_vector_dim): Remove.
20894 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
20895 * testsuite/gcc.dg/graphite/scop-19.c: New
20896
0eee494e 208972009-02-04 Paolo Bonzini <bonzini@gnu.org>
20898 Hans-Peter Nilsson <hp@axis.com>
20899
20900 PR rtl-optimization/37889
20901 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
20902 Move offset handling from PLUS to before the switch. Use new
20903 arguments when considering SYMBOL_REFs too.
20904 (rtx_addr_can_trap_p): Pass dummy offset and size.
20905 (enum may_trap_p_flags): Remove.
20906 (may_trap_p_1): Pass size from MEM_SIZE.
20907
20908 PR rtl-optimization/38921
20909 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
20910 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
20911 * rtlanal.c (may_trap_after_code_motion_p): Delete.
20912 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
20913
810c9e65 209142009-02-04 H.J. Lu <hongjiu.lu@intel.com>
20915
20916 AVX Programming Reference (January, 2009)
20917 * config/i386/sse.md (*vpclmulqdq): New.
20918
73d3c8f2 209192009-02-04 Jakub Jelinek <jakub@redhat.com>
20920
20921 PR tree-optimization/38977
20922 PR gcov-profile/38292
6db00048 20923 * calls.c (special_function_p): Disregard __builtin_ prefix.
73d3c8f2 20924
fe898823 209252009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
20926
20927 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
20928 non-indexable addresses even before reload.
20929
51428eb1 209302009-02-03 Joseph Myers <joseph@codesourcery.com>
20931
20932 PR c/29129
20933 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
20934 as having variable size. Do not give an error for unnamed
20935 parameters with [*] declarators. Give a warning for type names
20936 with [*] declarators and mark them as variable size.
20937 * c-parser.c (c_parser_sizeof_expression): Do not give an error
20938 for sizeof applied to [*] type names.
20939
4f4106ef 209402009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
20941
20942 PR C++/36607
20943 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
20944
5a371c77 209452009-02-03 Jakub Jelinek <jakub@redhat.com>
20946
20947 * gcc.c (process_command): Update copyright notice dates.
20948 * gcov.c (print_version): Likewise.
20949 * gcov-dump.c (print_version): Likewise.
20950 * mips-tfile.c (main): Likewise.
20951 * mips-tdump.c (main): Likewise.
20952
e5d71db4 209532009-02-03 Joseph Myers <joseph@codesourcery.com>
20954
20955 PR c/35433
20956 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
20957 for composite type involving a zero-length array type.
20958
14e882ea 209592009-02-03 Jakub Jelinek <jakub@redhat.com>
20960
fbcb9be4 20961 PR target/35318
20962 * function.c (match_asm_constraints_1): Skip over
20963 initial optional % in the constraint.
20964
14e882ea 20965 PR inline-asm/39059
20966 * c-parser.c (c_parser_postfix_expression): If fixed point is not
20967 supported, don't accept FIXED_CSTs.
20968 * c-decl.c (finish_declspecs): Error if fixed point is not supported
20969 and _Sat is used without _Fract/_Accum. Set specs->type to
20970 integer_type_node for cts_fract/cts_accum if fixed point is not
20971 supported.
20972
f4b3ca46 209732009-02-02 Catherine Moore <clm@codesourcery.com>
20974
a9c1f295 20975 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
f4b3ca46 20976
0a959c1d 209772009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
20978
20979 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
20980 (ABI_HAS_64BIT_SYMBOLS): Use it.
20981 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
20982
2f02c19f 209832009-02-02 Paul Brook <paul@codesourcery.com>
20984
20985 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
20986
cde8f1c8 209872009-02-02 Jakub Jelinek <jakub@redhat.com>
20988
20989 PR inline-asm/39058
20990 * recog.h (asm_operand_ok): Add constraints argument.
20991 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
20992 recurse on matching constraint.
20993 (check_asm_operands): Pass constraints as 3rd argument to
20994 asm_operand_ok. Don't look up matching constraint here.
20995 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
20996 to asm_operand_ok.
20997
e366f125 209982009-02-02 Ben Elliston <bje@au.ibm.com>
20999
21000 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
21001 TARGET_NARROW_VOLATILE_BITFIELD macro names.
21002
a3caf955 210032009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21004
a2853397 21005 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
21006 information. Remove some obsolete information. Reorganize.
21007
a3caf955 21008 * config/pa/fptr.c: Revert license to GPL 2.
21009 * config/pa/milli64.S: Likewise.
21010
8cae609c 210112009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
21012
21013 PR target/38904
21014 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
21015 LIBRARY name in, instead of hard-coding it.
21016 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
21017 extra target make frag to tmake_files according to EH model.
21018 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
21019 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
21020 frags that define makefile variable EH_MODEL appropriately.
21021 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
21022 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
21023 to "-sjlj" according to type of EH configured.
21024 (LIBGCC_SONAME): Concatenate it to shared library base name.
21025 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
21026 to "_sjlj" according to type of EH configured.
21027 (LIBGCC_SONAME): Concatenate it to shared library base name.
21028 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
21029 (SHLIB_LINK): Add missing semicolon to if-else construct.
21030 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
21031 string value of "pe_dll" command-line option.
21032 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
21033 (SHLIB_SONAME): Use it when overriding t-cygming default.
21034 (SHLIB_IMPLIB): Override t-cygming default.
21035 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
21036 string value of "pe_dll" command-line option.
21037
27ed8c87 210382009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
21039
21040 PR target/38952
21041 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
6db00048 21042 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
27ed8c87 21043
98de8b69 210442009-01-31 Richard Guenther <rguenther@suse.de>
21045
21046 PR tree-optimization/38937
21047 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
21048 computing the transitive closure.
21049
c019af4d 210502009-01-30 Richard Guenther <rguenther@suse.de>
21051
21052 PR tree-optimization/39041
21053 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
21054 Propagate variable indices only if the types match for this stmt.
21055
709cdea6 210562009-01-30 Jakub Jelinek <jakub@redhat.com>
21057
21058 PR target/39013
21059 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
21060 inline but never defined.
21061
a7a2dd08 210622009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
26e8b800 21063
21064 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
21065 (*insv_h_di_reg_extimm): New insn.
21066 (*insv_l<mode>_reg_extimm): New insn.
21067
210682009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
3b31ea78 21069
21070 * config/picochip/picochip.c (flag_conserve_stack): set
21071 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
21072 fconserve-stack. Reduce call-overhead used by inliner.
21073
26e8b800 210742009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
c45dd88a 21075
21076 PR/38157
21077 * common.opt (flag_conserve_stack): Initialised to zero.
21078
dbc128e8 210792009-01-30 Kai Tietz <kai.tietz@onevision.com>
21080
21081 PR/39002
21082 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
21083 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
21084 method.
21085
ac50b6ef 210862009-01-29 H.J. Lu <hongjiu.lu@intel.com>
21087
21088 * ira-color.c (allocno_reload_assign): Update comments.
21089 * regmove.c (regmove_optimize): Likewise.
21090
21091 * ra.h: Removed.
21092
3bef4012 210932009-01-29 Robert Millan <rmh@aybabtu.com>
21094
943327c1 21095 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
21096 * config/i386/kopensolaris-gnu.h: New file. Undefine
3bef4012 21097 `MD_UNWIND_SUPPORT'.
943327c1 21098 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
3bef4012 21099
82b19557 211002009-01-29 Kazu Hirata <kazu@codesourcery.com>
21101
21102 PR tree-optimization/39007
21103 * tree-loop-distribution.c (generate_builtin): Use
21104 recompute_dominator to compute the immediate dominator of the
21105 basic block just after the loop.
21106
a330630f 211072009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
53ae77bf 21108
21109 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
21110 (ASM_OUTPUT_DWARF_PCREL): Define.
21111
a330630f 211122009-01-29 Vladimir Makarov <vmakarov@redhat.com>
cf709bf6 21113
21114 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
21115 * doc/passes.texi: Remove entries about regclass, local-alloc, and
21116 global. Modify entries about regmove and IRA.
21117
21118 * ra-conflict.c: Remove the file.
21119
21120 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
21121
21122 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
21123 (pass_regclass_init): Rename to pass_reginfo_init.
21124
21125 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
21126
21127 * toplev.h (flag_ira): Remove.
21128
21129 * caller-save.c (setup_save_areas): Remove flag_ira.
21130
6db00048 21131 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
cf709bf6 21132
21133 * global.c: Remove the file.
21134
aca60c7b 21135 * opts.c (decode_options): Remove flag_ira.
cf709bf6 21136
21137 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
21138
21139 * regmove.c: Modify file description.
21140 (find_use_as_address, try_auto_increment): Define them only if
21141 AUTO_INC_DEC is defined.
21142 (replacement_quality, replace_in_call_usage, fixup_match_1,
21143 stable_and_no_regs_but_for_p): Remove.
21144 (reg_set_in_bb): Make it static.
21145 (regmove_optimize): Remove flag_ira and code which worked for
21146 !flag_ira.
21147
21148 * local-alloc.c: Remove the file.
21149
21150 * common.opt (fira): Remove.
21151
21152 * ira.c: Include except.h.
21153 (eliminable_regset): Move from global.c.
21154 (mark_elimination): Ditto. Remove flag_ira.
21155 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
21156 equiv_mem_modified, validate_equiv_mem_from_store,
21157 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
21158 contains_replace_regs, memref_referenced_p, memref_used_between_p,
21159 no_equiv, recorded_label_ref): Move from local-alloc.c.
21160 (update_equiv_regs): Ditto. Make it static.
21161 (print_insn_chain, print_insn_chains): Move it from global.c.
6db00048 21162 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
cf709bf6 21163 (build_insn_chain): Ditto. Make it static.
21164 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
21165 Rename to init_live_subregs.
21166 (gate_ira): Remove flag_ira.
21167
21168 * regclass.c: Rename reginfo.c. Change file description.
21169 (FORBIDDEN_INC_DEC_CLASSES): Remove.
a9c1f295 21170 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
cf709bf6 21171 (init_reg_sets_1): Remove code for evaluation of
21172 reg_class_superclasses and losing_caller_save_reg_set.
21173 (init_regs): Remove init_reg_autoinc.
21174 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
21175 ok_for_base_p_nonstrict): Remove.
6db00048 21176 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
cf709bf6 21177 (pass_regclass_init): Rename to pass_reginfo_init. Modify
21178 corresponding entries.
21179 (dump_regclass, record_operand_costs, scan_one_insn,
21180 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
21181 record_address_regs, auto_inc_dec_reg_p): Remove.
21182 (gt-regclass.h): Rename to gt-reginfo.h.
21183
21184 * rtl.h (dump_global_regs, retry_global_alloc,
6db00048 21185 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
cf709bf6 21186
21187 * Makefile.in (RA_H): Remove.
21188 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
21189 Rename regclass.o to reginfo.o.
21190 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
21191 gt-reginfo.h.
21192 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
21193 (GTFILES): Rename regclass.c to reginfo.c.
21194
21195 * passes.c (init_optimization_passes): Remove pass_local_alloc and
6db00048 21196 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
cf709bf6 21197
21198 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
21199 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
21200 Remove flag_ira.
a7a2dd08 21201 (finish_spills): Ditto. Remove code for !flag_ira.
89871bab 21202
237805dd 212032009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
b85ccd2c 21204
21205 PR middle-end/35854
21206 * doc/invoke.texi (rtl debug options): Complete rewrite.
21207 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
21208 to auto_inc_dec".
21209 * mode-switching.c (pass_mode_switching): Rename pass from
21210 "mode-sw" to "mode_sw".
21211 * except.c (pass_convert_to_eh_ranges): Rename pass from
21212 "eh-ranges" to "eh_ranges".
21213 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
21214 to "subreg1".
89871bab 21215
21216
de353418 212172009-01-29 Andrey Belevantsev <abel@ispras.ru>
21218 Alexander Monakov <amonakov@ispras.ru>
21219
21220 PR middle-end/38857
21221 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
21222 register.
21223 (move_exprs_to_boundary): Change return type and pass through
21224 should_move from move_op. Relax assert. Update usage ...
21225 (schedule_expr_on_boundary): ... here. Use should_move instead of
21226 cant_move.
21227 (move_op_orig_expr_found): Indicate that insn was disconnected from
21228 stream.
21229 (code_motion_process_successors): Do not call after_merge_succs
21230 callback if original expression was not found when traversing any of
21231 the branches.
21232 (code_motion_path_driver): Change return type. Update prototype.
21233 (move_op): Update comment. Add a new parameter (should_move). Update
21234 prototype. Set *should_move based on indication provided by
21235 move_op_orig_expr_found.
21236
2fdf186f 212372009-01-28 Pat Haugen <pthaugen@us.ibm.com>
21238
21239 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
21240 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
21241 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
21242 * config/rs6000/rs6000.c (rs6000_override_options): Default
21243 avoid-indexed-addresses on for Power6, off for everything else.
21244 (avoiding_indexed_address_p): New function.
21245 (rs6000_legitimize_address): Use it.
21246 (rs6000_legitimate_address): Likewise.
21247 * config/rs6000/rs6000.md (movXX_updateX): Likewise
21248
c6b3a2da 212492009-01-28 Kazu Hirata <kazu@codesourcery.com>
21250
21251 PR tree-optimization/38997
21252 * tree-loop-distribution.c (generate_memset_zero): Use
21253 POINTER_PLUS_EXPR for a pointer addition.
21254
21676467 212552009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
21256
21257 * config/s390/s390.md (bswap<mode>2): New pattern added.
21258
d3bada4b 212592009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
21260
21261 * config/s390/s390.md (*tls_load_31): Added type attribute.
21262
9925e185 212632009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
21264
21265 * config/s390/s390.md: Fix a few comments.
21266
94ab3c8a 212672009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
21268
21269 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
21270 (*tm<mode>_full): Fixed z10prop attribute.
21271 (*tst<mode>_extimm): Fixed z10prop attribute.
21272 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
21273 (*tstqiCCT_cconly): Fixed z10prop attribute.
21274 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
21275 (*movsi_larl): Fixed z10prop attribute.
21276 (*movsi_zarch): Fixed z10prop attribute.
21277 (*movsi_eas): Fixed z10prop attribute.
21278 (*movhi): Fixed z10prop attribute.
21279 (*movqi): Fixed z10prop attribute.
21280 (*movstrictqi): Fixed z10prop attribute.
21281 (*mov<mode>): Fixed z10prop attribute.
21282 (*movcc): Fixed z10prop attribute.
21283 (*sethighpartdi_64): Fixed z10prop attribute.
21284 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
21285 (*negdi2_sign_cc): Fixed z10prop attribute.
21286 (*negdi2_sign): Fixed z10prop attribute.
21287 (*absdi2_sign_cc): Fixed z10prop attribute.
21288 (*absdi2_sign): Fixed z10prop attribute.
21289 (*negabsdi2_sign_cc): Fixed z10prop attribute.
21290 (*negabsdi2_sign): Fixed z10prop attribute.
21291 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
21292 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
21293 (doloop_si64): Fixed z10prop attribute.
21294 (doloop_si31): Fixed z10prop attribute.
21295 (doloop_long): Fixed z10prop attribute.
21296 (indirect_jump): Fixed z10prop attribute.
21297 (nop): Fixed z10prop attribute.
21298 (main_base_64): Fixed z10prop attribute.
21299 (reload_base_64): Fixed z10prop attribute.
21300
d1b5f73a 213012009-01-28 Jakub Jelinek <jakub@redhat.com>
21302
21303 PR rtl-optimization/38740
a7a2dd08 21304 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
21305 if !optimize.
d1b5f73a 21306 * config/mips/mips.c (mips_reorg): Likewise.
21307
3dc4c394 213082009-01-28 Richard Guenther <rguenther@suse.de>
21309
21310 PR tree-optimization/38926
21311 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
21312 with the correct value id to a value.
21313 (do_regular_insertion): Use the value number of edoubleprime
21314 for the value number of the expr.
21315
21316 Revert
21317 2008-08-21 Richard Guenther <rguenther@suse.de>
6db00048 21318
c9e47fec 21319 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
21320 a PHI ask VN if it is already available.
21321 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
21322 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
3dc4c394 21323
61349811 213242009-01-28 Jakub Jelinek <jakub@redhat.com>
21325
21326 PR middle-end/38934
21327 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
21328 set to varying whenever max has TREE_OVERFLOW set, similarly
21329 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
21330
a98de126 213312009-01-28 Richard Guenther <rguenther@suse.de>
21332
21333 PR middle-end/38908
21334 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
21335 uninitialized aggregate uses in call arguments.
21336
7f70ef19 213372009-01-28 Paolo Bonzini <bonzini@gnu.org>
21338
21339 PR tree-optimization/38984
21340 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
21341 the nothing_id variable if -fno-delete-null-pointer-checks.
21342
8d4c7d80 213432009-01-28 Uros Bizjak <ubizjak@gmail.com>
21344
21345 PR target/38988
21346 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
21347 (set_got_offset_rex64): Ditto.
21348
2687629f 213492009-01-27 H.J. Lu <hongjiu.lu@intel.com>
21350
21351 PR target/38941
21352 * doc/extend.texi: Improve local variable with asm reg.
21353
7a6a48c9 213542009-01-27 Adam Nemet <anemet@caviumnetworks.com>
21355
21356 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
21357 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
21358 was not supplied then set warn_packed_bitfield_compat to the
21359 default value of 1.
21360 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
21361 against 1.
21362
57a28426 213632009-01-27 Richard Guenther <rguenther@suse.de>
21364
21365 PR tree-optimization/38503
21366 * cfgexpand.c (expand_gimple_basic_block): Ignore
21367 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
21368 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
21369 variables that cannot have TBAA applied.
21370 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
21371 statements.
21372
c9e47fec 213732009-01-27 Uros Bizjak <ubizjak@gmail.com>
9a7965a1 21374
21375 PR middle-end/38969
21376 * calls.c (initialize_argument_information): Do not wrap complex
21377 arguments in SAVE_EXPR.
21378
f1d36ba6 213792009-01-26 Andreas Tobler <a.tobler@schweiz.org>
21380
21381 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
c3f75928 21382 (INSTALL_LIBGCC): Revert typo commit.
f1d36ba6 21383
234294b2 213842009-01-26 Richard Guenther <rguenther@suse.de>
21385
21386 PR tree-optimization/38745
21387 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
21388 from special handling.
21389
1fdf9a6c 213902009-01-26 Richard Guenther <rguenther@suse.de>
21391
21392 PR tree-optimization/38745
21393 * tree-ssa.c (execute_update_addresses_taken): Do not include
21394 variables that cannot possibly be a register in not_reg_needs.
21395 Do not clear TREE_ADDRESSABLE on vars that may not become
21396 registers.
21397 * tree-ssa.c (update_alias_info_1): Include those in the set
21398 of addressable vars.
21399
f0e4d727 214002009-01-26 Richard Guenther <rguenther@suse.de>
21401
21402 PR middle-end/38851
21403 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
21404 * tree-ssa-dse.c: Include langhooks.h
21405 (execute_simple_dse): Remove stores with zero size.
21406
e7e7c0fe 214072009-01-24 Jakub Jelinek <jakub@redhat.com>
21408
21409 PR c/38957
21410 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
21411 as PLUS_EXPR.
21412
e6d46e27 214132009-01-24 Julian Brown <julian@codesourcery.com>
21414
21415 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
21416 config/arm/linux-atomic.c.
21417 * config/arm/linux-atomic.c: New.
21418
9a6bab39 214192009-01-24 Eric Botcazou <ebotcazou@adacore.com>
21420
21421 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
21422 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
21423 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
21424
1d86d4d7 214252009-01-24 H.J. Lu <hongjiu.lu@intel.com>
21426
21427 PR c/38938
d83d28c1 21428 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
1d86d4d7 21429 properly.
21430
8db3fb7b 214312009-01-24 Sebastian Pop <sebastian.pop@amd.com>
21432
21433 PR tree-optimization/38953
21434 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
21435 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
21436 (gloog): Split the exit of the scop when the scop exit is a loop exit.
21437 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
21438 changed the CFG.
21439
c52acdd2 214402009-01-24 Paul Brook <paul@codesourcery.com>
21441
21442 * config/arm/neon.md (neon_type): Move to arm.md.
21443 (neon_mov<VSTRUCT>): Add neon_type attribute.
21444 * config/arm/arm.md (neon_type): Move to here.
21445 (conds): Add "unconditioal" and use as default for NEON insns.
21446
f3d84bf8 214472009-01-24 Ben Elliston <bje@au.ibm.com>
21448
21449 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
21450 void *' warning from -Wc++-compat.
21451 * Makefile.in (dominance.o-warn): Remove.
21452
a330630f 214532009-01-23 Paolo Bonzini <bonzini@gnu.org>
cd30b839 21454
21455 PR tree-optimization/38932
21456 * fold-const.c (fold_unary_ignore_overflow): New.
21457 * tree.h (fold_unary_ignore_overflow): Declare.
21458 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
21459 * tree-ssa-sccvn.c (visit_reference_op_load,
21460 simplify_unary_expression): Likewise.
21461
9fd767c5 214622009-01-22 Adam Nemet <anemet@caviumnetworks.com>
21463
21464 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
21465 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
21466 regardless of their type.
21467 * c-common.c (handle_packed_attribute): Don't ignore packed on
21468 bitfields.
21469 * c.opt (Wpacked-bitfield-compat): New warning option.
21470 * stor-layout.c (place_field): Warn if offset of a field changed.
21471 * doc/extend.texi (packed): Mention the ABI change.
21472 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
21473 (Warning Options): Add it to the list.
21474
71ee8477 214752009-01-22 H.J. Lu <hongjiu.lu@intel.com>
21476
21477 * c-opts.c (c_common_post_options): Fix a typo in comments.
21478
1a07ca64 214792009-01-22 Steve Ellcey <sje@cup.hp.com>
21480
21481 PR middle-end/38615
21482 * gimplify.c (gimplify_init_constructor): Fix promotion of const
21483 variables to static.
21484 * doc/invoke.texi (-fmerge-all-constants): Update description.
21485
a6f6ff30 214862009-01-22 Uros Bizjak <ubizjak@gmail.com>
21487
21488 PR target/38931
21489 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
21490 (*movdi_1_rex64): Use type "mmx" for alternative 5.
21491
93fa3baa 214922009-01-22 Richard Earnshaw <rearnsha@arm.com>
21493
21494 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
21495 a word boundary.
21496 (LOCAL_ALIGNMENT): Similarly.
21497
da941808 214982009-01-22 Mark Shinwell <shinwell@codesourcery.com>
a6f6ff30 21499 Joseph Myers <joseph@codesourcery.com>
da941808 21500
21501 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
21502 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
21503 * config/arm/arm-tune.md: Regenerate.
21504 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
21505 -march=iwmmxt2.
21506
00bd398c 215072009-01-22 Mark Shinwell <shinwell@codesourcery.com>
21508
21509 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
21510 version number to five.
21511
b2694749 215122009-01-22 Dodji Seketeli <dodji@redhat.com>
21513
21514 PR c++/38930
aca60c7b 21515 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
b2694749 21516 * c-common.c (set_underlying_type): Likewise.
21517 (is_typedef_decl ): Likewise
21518 * tree.h: Likewise
21519 (set_underlying_type): Likewise.
21520 (is_typedef_type): Likewise.
21521
8aad8efd 215222009-01-21 Vladimir Makarov <vmakarov@redhat.com>
21523
21524 PR middle-end/38587
21525 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
21526 crossing setjmps.
21527
8f057ffc 215282009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
21529
21530 PR bootstrap/37660
21531 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
21532 (LIBGCC_SPEC): Don't define.
21533 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
21534
f92492f7 215352009-01-21 Uros Bizjak <ubizjak@gmail.com>
21536
21537 PR rtl-optimization/38879
21538 * alias.c (base_alias_check): Unaligned access via AND address can
21539 alias all surrounding object types except those with sizes equal
21540 or wider than the size of unaligned access.
21541
c973dc47 215422009-01-21 Dodji Seketeli <dodji@redhat.com>
21543
21544 PR c++/26693
aca60c7b 21545 * c-decl.c (clone_underlying_type): Move this ...
c973dc47 21546 * c-common.c (set_underlying_type): ... here.
f92492f7 21547 Also, make sure the function properly sets TYPE_STUB_DECL() on
c973dc47 21548 the newly created typedef variant type.
21549 (is_typedef_decl ): New entry point.
21550 * tree.h: Added a new member member_types_needing_access_check to
21551 struct tree_decl_non_common.
21552 (set_underlying_type): New entry point.
21553 (is_typedef_type): Likewise.
21554
6e93a4c8 215552009-01-21 Bingfeng Mei <bmei@broadcom.com>
21556
21557 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
21558 Check whether two instructions have memory references that
21559 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
21560 are helper functions for traversing.
21561 * alias.h (insn_alias_sets_confilict_p): New prototypes.
21562 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
21563 not to draw dependency edge for instructions with non-conflicting
21564 alias sets.
21565
a698e1ec 215662009-01-20 Joseph Myers <joseph@codesourcery.com>
21567
21568 PR other/38758
a7a2dd08 21569 * longlong.h: Update copyright years. Use soft-fp license notice.
21570 Sync __clz_tab declaration with glibc.
a698e1ec 21571
b84fdfe2 215722009-01-20 Steve Ellcey <sje@cup.hp.com>
21573
21574 PR target/30687
21575 * doc/extend.texi (syscall_linkage): New.
21576 (version_id): Modify.
21577
c4d6ac81 215782009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
f92492f7 21579 Richard Guenther <rguenther@suse.de>
c4d6ac81 21580
21581 PR tree-optimization/38747
21582 PR tree-optimization/38748
21583 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
21584 conversion if the base address is an indirect reference and the
21585 aliasing sets could cause issues.
21586
d3399492 215872009-01-20 Sebastian Pop <sebastian.pop@amd.com>
21588
89871bab 21589 * common.opt (fgraphite, fgraphite-identity): Add comment for
d3399492 21590 explaining why these options are not documented.
21591
aa3f15b6 215922009-01-20 Sebastian Pop <sebastian.pop@amd.com>
21593
21594 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
21595 gimple_call_lhs is NULL.
21596
a330630f 215972009-01-20 Paolo Bonzini <bonzini@gnu.org>
e077413c 21598
21599 PR target/38868
21600 * emit-rtl.c (adjust_address_1): Make sure memref is never
21601 overwritten.
21602
8c2fa2f7 216032009-01-20 Ben Elliston <bje@au.ibm.com>
21604
21605 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
f92492f7 21606 const qualifier from arg parameter. Remove unnecessary cast to char *.
8c2fa2f7 21607 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
21608 const qualifier from arg 2.
21609
94cd11b9 216102009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
21611
f92492f7 21612 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
94cd11b9 21613
c950adc6 216142009-01-19 Vladimir Makarov <vmakarov@redhat.com>
21615
21616 PR c/38869
21617 * rtl.h (reinit_regs): New prototype.
21618 * regclass.c: Include ira.h.
21619 (reinit_regs): New.
21620 * Makefile.in (regclass.o): Add ira.h.
21621 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
21622
02421213 216232009-01-18 H.J. Lu <hongjiu.lu@intel.com>
21624
21625 PR target/38736
21626 * c-common.c (handle_aligned_attribute): Use
21627 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
21628 default alignment value.
21629
21630 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
21631
21632 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
21633 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
21634
21635 * doc/extend.texi: Update __attribute__ ((aligned)). Document
21636 __BIGGEST_ALIGNMENT__.
21637
21638 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
21639
2ac47fdf 216402009-01-18 Richard Guenther <rguenther@suse.de>
21641
21642 PR tree-optimization/38819
21643 * tree-flow.h (operation_could_trap_helper_p): Declare.
21644 * tree-eh.c (operation_could_trap_helper_p): Export.
21645 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
21646 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
21647 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
21648 are about to insert a possibly trapping instruction and fail
21649 in this case.
21650
b338dafb 216512009-01-18 Andreas Schwab <schwab@suse.de>
21652
21653 * doc/install.texi (Configuration): Remove obsolete paragraph
21654 about use of --with-gnu-ld with --with-gnu-as.
21655
91f54ca3 216562009-01-18 Kazu Hirata <kazu@codesourcery.com>
21657
21658 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
21659 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
21660 Follow spelling conventions.
21661
76cd80c7 216622009-01-18 Ben Elliston <bje@au.ibm.com>
21663
21664 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
21665 C++ warning about implicit conversion from void * to struct
21666 bitmap_head_def *.
21667 (bitmap_obstack_free): Likewise for bitmap_element *.
df1573c4 21668 * Makefile.in (bitmap.o-warn): Remove.
76cd80c7 21669
89bcc083 216702009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
21671
21672 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
21673
3c560c26 216742009-01-17 Sebastian Pop <sebastian.pop@amd.com>
21675 Tobias Grosser <tobi.grosser@amd.com>
21676
21677 * graphite.c (graphite_trans_scop_block): Do not block single
21678 nested loops.
21679
e106fc2e 216802009-01-16 Alexandre Oliva <aoliva@redhat.com>
21681
21682 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
21683 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
21684 test with assertion.
21685
cd6342bd 216862009-01-16 Richard Guenther <rguenther@suse.de>
21687
21688 PR tree-optimization/38835
21689 PR middle-end/36227
21690 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
21691 and INT + PTR -> (INT)(PTR p+ INT) folding.
21692 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
21693
298bbd8d 216942009-01-16 Adam Nemet <anemet@caviumnetworks.com>
21695
21696 PR target/38554
21697 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
21698 the subreg from a lowpart subreg if it is also casting the value.
21699
9e5f07d3 217002009-01-16 Sebastian Pop <sebastian.pop@amd.com>
21701 Tobias Grosser <tobi.grosser@amd.com>
21702
21703 * graphite.c (compare_prefix_loops): New.
21704 (build_scop_canonical_schedules): Rewritten.
21705 (graphite_transform_loops): Move build_scop_canonical_schedules
21706 after build_scop_iteration_domain.
21707
35fb1eb0 217082009-01-16 Sebastian Pop <sebastian.pop@amd.com>
21709 Tobias Grosser <tobi.grosser@amd.com>
21710
89871bab 21711 * graphite.c (add_conditions_to_domain): Add the loops to
35fb1eb0 21712 the dimension of the iteration domain. Do copy the domain
21713 only when it exists.
21714 (build_scop_conditions_1): Do not call add_conditions_to_domain.
21715 (add_conditions_to_constraints): New.
21716 (can_generate_code_stmt, can_generate_code): Removed.
21717 (gloog): Do not call can_generate_code.
21718 (graphite_transform_loops): Call add_conditions_to_constraints
21719 after building the iteration domain.
21720
99e2edfd 217212009-01-16 Jakub Jelinek <jakub@redhat.com>
21722
21723 PR tree-optimization/38789
21724 * tree-ssa-threadedge.c
21725 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
21726 __builtin_constant_p.
21727
237805dd 217282009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cff725a2 21729
21730 * dce.c (delete_unmarked_insns): Reversed the order that insns are
21731 examined before deleting them.
89871bab 21732
daaa06b2 217332009-01-16 Richard Earnshaw <rearnsha@arm.com>
21734
21735 * function.c (aggregate_value_p): Correctly extract the function
21736 type from CALL_EXPR_FN lookup.
21737
237805dd 217382009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
e262db7d 21739
21740 * config/picochip/picochip.c (picochip_override_options): Revert
21741 CFI asm flag disable commited previously.
21742
d635c475 217432009-01-15 Sebastian Pop <sebastian.pop@amd.com>
21744 Tobias Grosser <tobi.grosser@amd.com>
21745 Jan Sjodin <jan.sjodin@amd.com>
21746
21747 * graphite.c (scan_tree_for_params): On substractions negate
21748 all the coefficients of the term.
21749 (clast_to_gcc_expression_red): New. Handle reduction expressions
21750 of more than two operands.
21751 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
21752 (get_vdef_before_scop): Handle also the case of default definitions.
21753
f5b7c8a5 217542009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
21755
21756 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
21757 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
21758 Also use them when walking CALL_INSN_FUNCTION_USAGE.
21759
9e1c1bf0 217602009-01-15 H.J. Lu <hongjiu.lu@intel.com>
21761 Joey Ye <joey.ye@intel.com>
21762
21763 PR middle-end/37843
21764 * cfgexpand.c (expand_stack_alignment): Don't update stack
21765 boundary nor check incoming stack boundary here.
21766 (gimple_expand_cfg): Update stack boundary and check incoming
21767 stack boundary here.
21768
237805dd 217692009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
66aca59d 21770
f92492f7 21771 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
89871bab 21772
eb940a48 217732009-01-14 Jakub Jelinek <jakub@redhat.com>
21774
21775 PR rtl-optimization/38245
21776 * calls.c (expand_call): Add stack arguments to
21777 CALL_INSN_FUNCTION_USAGE even for pure calls (when
21778 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
21779 in regs and partially in memory or BLKmode arguments.
21780 (emit_library_call_value_1): Add stack arguments to
21781 CALL_INSN_FUNCTION_USAGE even for pure calls (when
21782 ACCUMULATE_OUTGOING_ARGS).
21783 * dce.c: Include tm_p.h.
21784 (find_call_stack_args): New function.
21785 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
21786 argument.
21787 (mark_insn): Call find_call_stack_args for CALL_Ps.
21788 (prescan_insns_for_dce): Walk insns backwards in bb rather than
21789 forwards. Allocate and free arg_stores bitmap if needed, pass it
21790 down to deletable_insn_p, don't mark stores set in arg_stores
21791 bitmap, clear the bitmap at the beginning of each bb.
21792 * Makefile.in (dce.o): Depend on $(TM_P_H).
21793
26f62ff4 217942009-01-14 Michael Meissner <gnu@the-meissners.org>
21795
21796 PR target/22599
f92492f7 21797 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
21798 to make sure the insn is a conditional test (bug 22599). Reformat a
21799 few long lines.
26f62ff4 21800
87736b69 218012009-01-14 Sebastian Pop <sebastian.pop@amd.com>
21802
21803 PR middle-end/38431
21804 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
21805 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
21806 (gloog): Do not call cleanup_tree_cfg.
89871bab 21807 (graphite_transform_loops): Call cleanup_tree_cfg after all
87736b69 21808 scops have been code generated.
21809
4dbb1e0c 218102009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
21811 * doc/gty.texi (Invoking the garbage collector): Added new node
21812 and section documenting ggc_collect.
21813
48d49ced 218142009-01-14 Richard Guenther <rguenther@suse.de>
21815
21816 PR tree-optimization/38826
21817 PR middle-end/38477
21818 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
21819 initialization notes only if we actually emitted a warning.
21820 (intra_create_variable_infos): Add constraints for a result decl
21821 that is passed by hidden reference.
21822 (build_pred_graph): Mark all related variables non-direct on
21823 address-taking.
21824
bef7b1de 218252009-01-14 Nick Clifton <nickc@redhat.com>
21826
21827 * ira-conflicts.c: Include addresses.h for the definition of
21828 base_reg_class.
f92492f7 21829 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
21830 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
bef7b1de 21831
cab55469 218322009-01-13 Vladimir Makarov <vmakarov@redhat.com>
21833
21834 PR target/38811
21835 * Makefile.in (ira-lives.o): Add except.h.
21836
21837 * ira-lives.c: Include except.h.
21838 (process_bb_node_lives): Process can_throw_internal.
21839
cac5cd08 218402009-01-13 Jakub Jelinek <jakub@redhat.com>
21841
21842 PR rtl-optimization/38774
21843 * combine.c (simplify_set): When undoing cc_use change, don't do
21844 PUT_CODE on the newly created comparison, but instead put back the
21845 old comparison.
21846
309ef6b4 218472009-01-13 Joseph Myers <joseph@codesourcery.com>
21848
21849 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
21850 values. Remove duplicate arm8 entry.
21851
1ffa850c 218522009-01-13 Sebastian Pop <sebastian.pop@amd.com>
21853
21854 PR tree-optimization/38786
21855 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
21856 the SSA_NAME case of expand_scalar_variables_expr.
21857 Set the type of an expression to the type of its assign statement.
21858 (expand_scalar_variables_expr): Also gather the scalar computation
21859 used to index the memory access. Do not pass loop_p.
21860 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
21861 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
8d4c7d80 21862 the gimple_stmt_iterator where it inserts new code.
21863 Do not pass loop_p.
1ffa850c 21864 (copy_bb_and_scalar_dependences): Do not pass loop_p.
21865 (translate_clast): Update call to copy_bb_and_scalar_dependences.
21866
de540910 218672009-01-13 Sebastian Pop <sebastian.pop@amd.com>
21868
21869 * graphite.h (debug_value): Removed.
21870 * graphite.c (debug_value): Removed.
21871
3d1f6e40 218722009-01-13 Richard Earnshaw <rearnsha@arm.com>
21873
f92492f7 21874 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
21875 ldrd/strd with two 32-bit instructions.
3d1f6e40 21876
0f978633 218772009-01-13 Richard Earnshaw <rearnsha@arm.com>
21878
f92492f7 21879 * config/arm/arm.c (struct processors): Pass for speed down into
21880 cost helper functions.
0f978633 21881 (const_ok_for_op): Handle COMPARE and inequality nodes.
21882 (arm_rtx_costs_1): Rewrite.
21883 (arm_size_rtx_costs): Update prototype.
21884 (arm_rtx_costs): Pass speed down to helper functions.
21885 (arm_slowmul_rtx_costs): Rework cost calculations.
21886 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
21887 (arm_9e_rtx_costs): Likewise.
21888
d6c48eee 218892009-01-13 Uros Bizjak <ubizjak@gmail.com>
21890
21891 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
f92492f7 21892 relocations of local symbols wider than UNITS_PER_WORD are not valid.
d6c48eee 21893 (alpha_legitimize_address): Do not split local symbols wider than
21894 UNITS_PER_WORD into HIGH/LO_SUM parts.
21895
91e64380 218962009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
21897
21898 PR bootstrap/38580
21899 * gcc.c (process_command): Replace call to execvp with calls
21900 to pex_one and exit.
21901
4addc9bf 219022009-01-03 Anatoly Sokolov <aesok@post.ru>
21903
21904 PR target/29141
21905 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
21906 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
21907 variant for devices with 3-byte PC.
aca60c7b 21908 (__tablejump_elpm__): New.
4addc9bf 21909
f0d0d842 219102009-01-12 Jakub Jelinek <jakub@redhat.com>
21911
21912 PR c/32041
21913 * c-parser.c (c_parser_postfix_expression): Allow `->' in
21914 offsetof member-designator, handle it as `[0].'.
21915
55e0e460 219162009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21917
21918 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
21919 function when not using named sections on targets with named sections
21920 if branch distance is less than 262132.
21921
afb33771 219222009-01-12 Richard Earnshaw <rearnsha@arm.com>
21923
21924 * combine.c (combine_instructions): Recompute
21925 optimize_this_for_speed_p for each BB in the main combine loop.
21926
a6c1b5f0 219272009-01-12 Tomas Bily <tbily@suse.cz>
21928
21929 PR middlend/38385
d6c48eee 21930 * tree-loop-distribution.c (prop_phis): New function.
21931 (generate_builtin): Call prop_phis.
21932 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
a6c1b5f0 21933
3a43bfe9 219342009-01-12 Jakub Jelinek <jakub@redhat.com>
21935
21936 PR tree-optimization/38807
21937 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
21938 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
21939
95fb59aa 219402009-01-11 Adam Nemet <anemet@caviumnetworks.com>
21941
21942 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
21943 subreg of op0 to the original op0.
21944
237805dd 219452009-01-11 Laurent GUERBY <laurent@guerby.net>
e0b61fdb 21946
21947 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
89871bab 21948
a32384d7 219492009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
21950
21951 PR debug/7055
943327c1 21952 * mips-tfile.c (parse_def): Fix parsing of def strings
a32384d7 21953 starting with digits.
21954
a9467ac5 219552009-01-10 Jakub Jelinek <jakub@redhat.com>
21956
21957 PR target/38695
21958 * config/arm/arm.c (arm_is_long_call_p): Don't call
21959 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
21960
100329af 219612009-01-09 Steven Bosscher <steven@gcc.gnu.org>
21962
21963 * regrename.c (regrename_optimize): Fix dumping.
21964 (find_oldest_value_reg): Preserve REG_POINTER.
21965 (copy_hardreg_forward_1): Likewise.
21966
51e52fe3 219672009-01-09 Diego Novillo <dnovillo@google.com>
21968
6db00048 21969 * gimple.h (struct gimple_statement_base) <uid>: Document
51e52fe3 21970 the restrictions on its use.
21971 (gimple_uid): Tidy.
21972 (gimple_set_uid): Tidy.
21973
e1e05028 219742009-01-09 Jakub Jelinek <jakub@redhat.com>
21975
21976 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
21977 zero guard even if align_bytes != 0 and count is smaller than
21978 size_needed.
21979
a330630f 219802009-01-09 Vladimir Makarov <vmakarov@redhat.com>
0c42b4f4 21981
21982 PR rtl-optimization/38495
d6c48eee 21983 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
0c42b4f4 21984 (add_range_and_copies_from_move_list): Print all added ranges.
21985 Add ranges to memory optimized destination.
21986
8f538fc3 219872009-01-09 Jakub Jelinek <jakub@redhat.com>
21988
ede11ffa 21989 PR target/38686
21990 PR target/38708
21991 * config/i386/i386.c (override_options): Reject
21992 -mstringop-strategy=rep_8byte with -m32.
21993 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
21994 to 1. Do count comparison against epilogue_size_needed at compile
21995 time even when count_exp was constant forced into register. For
21996 size_needed don't jump to epilogue, instead just avoid aligning
21997 and invoke the body algorithm. If need_zero_guard, add zero guard
21998 even if count is non-zero, but smaller than size_needed + number of
21999 bytes that could be stored for alignment.
22000 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
22001 to 1. If need_zero_guard, add zero guard even if count is non-zero,
22002 but smaller than size_needed + number of bytes that could be stored
22003 for alignment. Compare size_needed with epilogue_size_needed instead
22004 of desired_align - align, don't adjust size_needed, pass
22005 epilogue_size_needed to the epilogue expanders.
22006
8f538fc3 22007 PR c/35742
d6c48eee 22008 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
8f538fc3 22009
21a47bc9 220102009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22011
22012 * pa.c (last_address): Change to unsigned.
22013 (update_total_code_bytes): Change argument to unsigned. Don't
22014 check if insn addresses are set.
22015 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
22016 addresses are not set.
22017 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
22018
ce090c51 220192009-01-09 Nick Clifton <nickc@redhat.com>
22020
22021 * config/sh/symbian.c: Replace uses of DECL_INLINE with
22022 DECL_DECLARED_INLINE_P.
22023
4e7cb1c5 220242009-01-09 Jakub Jelinek <jakub@redhat.com>
22025
70b6a6e8 22026 PR middle-end/38347
22027 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
22028 GET_MODE (op0) in operand_subword_force calls.
22029
4e7cb1c5 22030 PR middle-end/38771
22031 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
22032 fold_convert arg0 operands to TREE_TYPE (op0) first.
22033
d0388252 220342009-01-08 Vladimir Makarov <vmakarov@redhat.com>
22035
22036 * params.def (ira-max-conflict-table-size): Decrease default value
22037 to 1000.
22038
12c697cd 220392009-01-08 Jakub Jelinek <jakub@redhat.com>
22040
22041 PR tree-optimization/37031
22042 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
22043 on parameter_set.
22044 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
22045 allocate it using gc instead of heap, use VEC_quick_push instead of
22046 VEC_safe_push.
22047 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
22048 instead of heap, use VEC_quick_push instead of VEC_safe_push.
22049 * tree-data-ref.h (struct access_matrix): Change matrix to gc
22050 allocated vector from heap allocated.
22051 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
22052 * tree-loop-linear.c (linear_transform_loops): Allocate nest
22053 vector only after perfect_loop_nest_depth call.
22054
59835a90 220552009-01-08 Sebastian Pop <sebastian.pop@amd.com>
22056 Jan Sjodin <jan.sjodin@amd.com>
22057
22058 PR tree-optimization/38559
22059 * graphite.c (debug_value, copy_constraint,
22060 swap_constraint_variables, scale_constraint_variable, ): New.
22061 (get_lower_bound, get_upper_bound): Removed.
22062 (graphite_trans_bb_strip_mine): Clean up this code that works
22063 only for constant number of iterations. Fully copy upper and
22064 lower bound constraints, not only the constant part of them.
22065 * graphite.h (debug_value): Declared.
22066
1c48f190 220672009-01-08 Ira Rosen <irar@il.ibm.com>
22068
22069 PR tree-optimization/37194
22070 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
89871bab 22071 Don't add the cost of cost model guard in prologue to scalar
1c48f190 22072 outside cost in case of known number of iterations.
22073
9538c1d1 220742009-01-07 Nathan Froyd <froydnj@codesourcery.com>
22075 Alan Modra <amodra@bigpond.net.au>
22076
22077 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
22078 non-word-aligned REG+CONST addressing.
22079
292add68 220802009-01-07 Uros Bizjak <ubizjak@gmail.com>
22081
22082 PR target/38706
22083 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
22084 free_after_compilation when outputting a thunk.
22085 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
22086 Do not call free_after_compilation here.
22087
bbc3ff90 220882009-01-07 Uros Bizjak <ubizjak@gmail.com>
22089
22090 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
bbc3ff90 22091 (ix86_valid_target_attribute_inner_p): Ditto.
22092
145bdf6a 220932009-01-07 Jan Sjodin <jan.sjodin@amd.com>
22094
22095 PR tree-optimization/38492
22096 PR tree-optimization/38498
22097 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
22098 * tree-chrec.h (scev_is_linear_expression): Declared.
22099 * graphite.c (graphite_cannot_represent_loop_niter): New.
22100 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
22101 (graphite_loop_normal_form): Use gcc_assert.
22102 (scan_tree_for_params): Use CASE_CONVERT.
22103 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
22104 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
22105 Use gcc_assert. Discard scops that contain unhandled cases.
22106 (build_scop_conditions): Return a boolean status for unhandled cases.
22107 (strip_mine_profitable_p): Print the loop number, not its depth.
22108 (is_interchange_valid): Pass the depth of the loop nest, don't
22109 recompute it wrongly.
22110 (graphite_trans_bb_block): Same.
22111 (graphite_trans_bb_block): Print tentative of loop blocking.
22112 (graphite_trans_scop_block): Do not print that the loop has been
22113 blocked.
22114 (graphite_transform_loops): Do not handle scops that contain condition
22115 scalar phi nodes.
22116
b49a1e34 221172009-01-07 H.J. Lu <hongjiu.lu@intel.com>
22118
22119 AVX Programming Reference (December, 2008)
22120 * config/i386/avxintrin.h (_mm256_stream_si256): New.
22121 (_mm256_stream_pd): Likewise.
22122 (_mm256_stream_ps): Likewise.
22123
22124 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
22125 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
22126 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
22127 (bdesc_special_args): Add __builtin_ia32_movntdq256,
22128 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
22129 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
22130 (ix86_expand_special_args_builtin): Likewise.
22131
22132 * config/i386/sse.md (AVXMODEDI): New.
22133 (avx_movnt<mode>): Likewise.
22134 (avx_movnt<mode>): Likewise.
22135 (<sse>_movnt<mode>): Remove AVX support.
22136 (sse2_movntv2di): Likewise.
22137
4f1351a2 221382009-01-07 Richard Guenther <rguenther@suse.de>
22139
22140 PR middle-end/38751
22141 * fold-const.c (extract_muldiv): Remove obsolete comment.
22142 (fold_plusminus_mult_expr): Undo MINUS_EXPR
22143 to PLUS_EXPR canonicalization for the canonicalization.
22144
aad359a1 221452009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
22146
22147 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
22148 hosted cross-compilers generating less efficient code.
22149
2061be83 221502009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22151
22152 * function.h (rtl_data): Add a dbr_scheduled_p field.
22153 * reorg.c (dbr_schedule): Set it.
22154 (gate_handle_delay_slots): Check it.
22155 * config/mips/mips.c (mips_base_delayed_branch): Delete.
22156 (mips_reorg): Check flag_delayed_branch instead of
22157 mips_base_delayed_branch.
22158 (mips_override_options): Don't set mips_base_delayed_branch
22159 or flag_delayed_branch.
22160
6b806743 221612009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22162
22163 PR rtl-optimization/38426.
22164 * ira.c (ira): Set current_function_is_leaf earlier.
22165
095050fc 221662009-01-06 Jakub Jelinek <jakub@redhat.com>
22167
22168 PR rtl-optimization/38722
22169 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
22170 too early, only set a flag and modify after last possible
22171 undo_all point.
22172
0c87fb2b 221732009-01-06 Janis Johnson <janis187@us.ibm.com>
22174
22175 PR c/34252
22176 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
22177 * real.c (decimal_single_format): Correct values of emin and emax.
22178 (decimal_double_format): Ditto.
22179 (decimal_quad_format): Ditto.
22180 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
22181 computation of DECnn_MIN and DECnn_MAX for corrected values of
22182 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
22183 __DECnn_MIN__, and adjust its computation for the corrected value
22184 of emin.
22185
710ab45a 221862009-01-06 Jan Hubicka <jh@suse.cz>
22187
22188 PR target/38744
f92492f7 22189 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
710ab45a 22190
0a46e111 221912009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
22192
22193 * doc/contrib.texi (Contributors): Slightly adjust the end note.
22194 Add Robert Clark to the list of testers.
22195
30095c10 221962009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 22197 Kai Tietz <kai.tietz@onevision.com>
30095c10 22198
f92492f7 22199 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
22200 * config/i386/i386.c (ix86_expand_call): Add clobbers.
30095c10 22201
acb79b5c 222022009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 22203 Kai Tietz <kai.tietz@onevision.com>
acb79b5c 22204
f92492f7 22205 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
22206 for w64 ABI.
22207 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
acb79b5c 22208 (ix86_nsaved_regs): Count only general purpose regs.
22209 (ix86_nsaved_sseregs): New.
22210 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
22211 to 16 for w64; compute padding and size of sse reg save area.
bbc3ff90 22212 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
22213 general purpose regs.
acb79b5c 22214 (ix86_emit_save_sse_regs_using_mov): New.
22215 (ix86_expand_prologue): Save SSE regs if needed.
22216 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
22217 (ix86_emit_restore_sse_regs_using_mov): New.
22218 (ix86_expand_epilogue): Save SSE regs if needed.
22219
90a81a4b 222202009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 22221 Kai Tietz <kai.tietz@onevision.com>
90a81a4b 22222
f92492f7 22223 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
22224 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
22225 functions when accumulate outgoing args is off.
90a81a4b 22226
7521b07f 222272009-01-06 H.J. Lu <hongjiu.lu@intel.com>
22228
22229 PR bootstrap/38742
22230 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
22231 before using pseudos_have_intersected_live_ranges_p.
22232
22233 * ira-int.h (ira_assert): Always define.
22234
dbd61cd0 222352009-01-06 H.J. Lu <hongjiu.lu@intel.com>
22236
22237 AVX Programming Reference (December, 2008)
22238 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
22239 (_mm256_permute2_pd): Likewise.
22240 (_mm_permute2_ps): Likewise.
22241 (_mm256_permute2_ps): Likewise.
22242 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
22243 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
22244
22245 * config/i386/i386.c (ix86_builtins): Remove
22246 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
22247 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
22248 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
22249 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
22250 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
22251 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
22252 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
22253 __builtin_ia32_vpermil2ps256.
22254 (ix86_init_mmx_sse_builtins): Updated.
22255 (ix86_expand_args_builtin): Likewise.
22256
c4b36071 222572009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22258
dbd61cd0 22259 * pa.c (output_call): Relocate non-jump insns in the delay slot of
22260 long absolute calls when generating PA 2.0 code.
c4b36071 22261
95c83f01 222622009-01-05 Vladimir Makarov <vmakarov@redhat.com>
22263
22264 PR rtl-optimization/38583
22265 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
22266
22267 * params.def (ira-max-conflict-table-size): New.
22268
22269 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
89871bab 22270
95c83f01 22271 * ira.h (ira_conflicts_p): New external definition.
89871bab 22272
95c83f01 22273 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
22274 table. Report this. Return result of building.
22275 (ira_build_conflicts): Use ira_conflicts_p. Check result of
22276 building conflict table.
22277
bbc3ff90 22278 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
95c83f01 22279 (ira_color): Use ira_conflicts_p.
89871bab 22280
95c83f01 22281 * global.c: Include ira.h.
22282 (pseudo_for_reload_consideration_p, build_insn_chain): Use
22283 ira_conflicts_p.
22284
22285 * Makefile.in (global.o): Add ira.h.
89871bab 22286
95c83f01 22287 * ira-build.c (mark_all_loops_for_removal,
22288 propagate_some_info_from_allocno): New.
22289 (remove_unnecessary_allocnos): Call
22290 propagate_some_info_from_allocno.
22291 (remove_low_level_allocnos): New.
22292 (remove_unnecessary_regions): Add parameter. Call
22293 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
22294 parameter to remove_unnecessary_regions.
22295 (ira_build): Remove all regions but root if the conflict table was
22296 not built. Update conflict hard regs for allocnos crossing calls.
22297
22298 * ira.c (ira_conflicts_p): New global.
22299 (ira): Define and use ira_conflicts_p.
22300
22301 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
22302 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
bbc3ff90 22303 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
89871bab 22304
da279129 223052009-01-06 Ben Elliston <bje@au.ibm.com>
22306
22307 * gengtype-lex.l (YY_NO_INPUT): Define.
22308
7ec31215 223092009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
22310
22311 PR c/34911
da279129 22312 * c-common.c (handle_vector_size_attribute): Also reject
22313 BOOLEAN_TYPE types.
7ec31215 22314
d51c4d4c 223152009-01-05 Sebastian Pop <sebastian.pop@amd.com>
22316
22317 PR tree-optimization/38492
22318 * graphite.c (rename_map_elt, debug_rename_elt,
bbc3ff90 22319 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
22320 rename_map_elt_info, eq_rename_map_elts,
22321 get_new_name_from_old_name, bb_in_sese_p): Moved around.
d51c4d4c 22322 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
22323 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
22324 (sese_build_livein_liveouts): New.
22325 (new_sese, free_sese): New.
22326 (new_scop): Call new_sese.
22327 (free_scop): Call free_sese.
22328 (rename_variables_from_edge, rename_phis_end_scop): Removed.
22329 (register_old_new_names): Renamed register_old_and_new_names.
22330 (register_scop_liveout_renames, add_loop_exit_phis,
22331 insert_loop_close_phis, struct igp,
22332 default_liveout_before_guard, add_guard_exit_phis,
22333 insert_guard_phis, copy_renames): New.
22334 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
22335 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
22336 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
22337 (scop_adjust_phis_for_liveouts): New.
22338 (gloog): Call scop_adjust_phis_for_liveouts.
22339
22340 * graphite.h (struct sese): Documented. Added fields liveout,
bbc3ff90 22341 num_ver and livein.
d51c4d4c 22342 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
22343 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
22344 (struct scop): Added field liveout_renames.
22345 (SCOP_LIVEOUT_RENAMES): New.
22346
57c0fd3c 223472009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
22348
22349 PR tree-optimization/38510
22350 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
22351 (translate_clast): Call recompute_all_dominators before
22352 graphite_verify.
22353 (gloog): Call recompute_all_dominators before graphite_verify.
22354
223552009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
237805dd 22356 Jan Sjodin <jan.sjodin@amd.com>
57c0fd3c 22357
22358 PR tree-optimization/38500
22359 * graphite.c (create_sese_edges): Call fix_loop_structure after
22360 splitting blocks.
22361
237805dd 223622009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
e4c85211 22363
22364 * config.gcc: Add m32r*-*-rtems*.
22365 * config/m32r/rtems.h: New file.
22366
e7ae053d 223672009-01-05 Ben Elliston <bje@au.ibm.com>
22368
22369 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
22370 (.po.pox): Likewise.
22371 (po/gcc.pot): Likewise.
22372
aad5aaaf 223732009-01-04 David S. Miller <davem@davemloft.net>
22374
22375 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
22376 (STARTING_FRAME_OFFSET): Always set to zero.
22377
f323bb78 223782009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
22379
22380 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
22381 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
22382 fixed-point types, and vectors of the same.
22383
b73796fa 223842009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
22385
22386 * config/mips/sync.md (*mb_barrier): Rename to...
22387 (*memory_barrier): ...this.
22388
c17add59 223892009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
22390
22391 * doc/extend.texi (Function Attributes): Move @cindex after @item
6c6bce65 22392 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
c17add59 22393 and put in alphabetical order. Fix 'target' name and put in order.
22394 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
22395 typos.
22396
dc178856 223972009-01-04 Uros Bizjak <ubizjak@gmail.com>
22398
22399 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
22400 (memory_barrier): Expand as unspec instead of unspec_volatile.
22401 Remove mem:BLK from insn operands. Use Pmode scratch register.
22402 (*memory_barrier): Define as unspec instead of unspec_volatile.
22403 Use (match_dup 0) as input operand.
22404
22405 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
22406 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
22407 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
22408 scratch register. Remove operand 1.
22409 (*stbar): Define as unspec instead of unspec_volatile.
22410 Use (match_dup 0) as input operand, remove (const_int 8).
22411 (*membar): Define as unspec instead of unspec_volatile.
22412 Use (match_dup 0) as input operand, remove input operand 2.
22413
22414 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
22415 (memory_barrier): Expand as unspec instead of unspec_volatile.
22416 Remove mem:BLK from insn operands. Use Pmode scratch register.
22417 (*memory_barrier): Define as unspec instead of unspec_volatile.
22418 Use (match_dup 0) as input operand.
22419
22420 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
22421 Remove mem:BLK from insn operands. Use Pmode scratch register.
22422 Set volatile flag on operand 0.
22423 (*memory_barrier): New insn pattern.
22424
22425 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
22426 insn operands.
22427 (*memory_barrier): Use (match_dup 0) as input operand.
22428
22429 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
22430 Remove mem:BLK from insn operands. Use Pmode scratch register.
22431 Set volatile flag on operand 0.
bbc3ff90 22432 (*mb_internal): New insn pattern.
dc178856 22433
22434 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
22435
fef299ce 224362009-01-04 Steven Bosscher <steven@gcc.gnu.org>
22437
22438 PR middle-end/38586
22439 * function.c (struct temp_slot): Move to the section of the file
22440 that deals with temp slots. Remove field 'address'.
22441 (temp_slot_address_table): New hash table of address -> temp slot.
22442 (struct temp_slot_address_entry): New struct, items for the table.
22443 (temp_slot_address_compute_hash, temp_slot_address_hash,
22444 temp_slot_address_eq, insert_temp_slot_address): Support functions
22445 for the new table.
22446 (find_temp_slot_from_address): Rewrite to use the new hash table.
22447 (remove_unused_temp_slot_addresses): Remove addresses of temp
22448 slots that have been made available.
22449 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
22450 worker function for remove_unused_temp_slot_addresses.
22451 (assign_stack_temp_for_type): Don't clear the temp slot address list.
22452 Add the temp slot address to the address -> temp slot map.
22453 (update_temp_slot_address): Update via insert_temp_slot_address.
22454 (free_temp_slots): Call remove_unused_temp_slot_addresses.
22455 (pop_temp_slots): Likewise.
22456 (init_temp_slots): Allocate the address -> temp slot map, or empty
22457 the map if it is already allocated.
22458 (prepare_function_start): Initialize temp slot processing.
22459
961c8f72 224602009-01-04 Steven Bosscher <steven@gcc.gnu.org>
22461
22462 PR middle-end/38584
22463 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
22464 Calculate the size of all stack vars assuming no packing of stack
22465 vars will happen, replacing a quadratic algorithm with a linear one.
22466
c2ef487a 224672009-01-03 Jakub Jelinek <jakub@redhat.com>
22468
22469 PR target/38707
22470 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
22471 can't be used.
22472
d2472193 224732009-01-03 Diego Novillo <dnovillo@google.com>
22474
22475 * doc/contrib.texi: Update contributions.
22476
062b4460 224772009-01-03 Jakub Jelinek <jakub@redhat.com>
22478
6f52ebeb 22479 PR c++/38705
22480 * builtins.c (fold_builtin_memory_op): Give up if either operand
22481 is volatile. Set srctype or desttype to non-qualified version
22482 of the other type.
22483
062b4460 22484 PR c/38700
22485 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
22486 and FUNCTION_DECLs.
22487
237805dd 224882009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
7e009ff5 22489
22490 PR rtl-optimization/35805
22491 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
22492 problem if fast dce is able to remove any instructions.
22493 * dce.c (dce_process_block): Fix dump message.
89871bab 22494
c9f77b30 224952009-01-02 Mark Mitchell <mark@codesourcery.com>
22496
22497 PR 33649
22498 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
22499
e70f5f27 225002009-01-02 Jakub Jelinek <jakub@redhat.com>
22501
22502 PR middle-end/38690
22503 * tree-flow.h (op_code_prio, op_prio): New prototypes.
22504 * tree-pretty-print.c (op_code_prio): New function.
22505 (op_prio): No longer static. Use op_code_prio.
22506 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
22507 Use op_prio and op_code_prio to determine if () should be
22508 printed around operand(s) or not.
22509
22510 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
22511 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
22512 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
22513 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
22514 pp_character instead of pp_string for single letter printing.
22515
db8edef0 225162009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22517
22518 * doc/extend.texi: Fix '#pragma GCC option' typo.
22519
237805dd 225202009-01-02 Richard Guenther <rguenther@suse.de>
6d37614e 22521
e6f4e61f 22522 * doc/install.texi (--enable-checking): Mention different
22523 default for stage1.
22524 (--enable-stage1-checking): Document.
6d37614e 22525
d3a42176 225262009-01-01 Andrew Pinski <pinskia@gmail.com>
22527
22528 PR middle-end/30142
22529 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
22530 case to be an error.
22531
5c8520a4 225322009-01-02 Ben Elliston <bje@au.ibm.com>
22533
22534 * config/fp-bit.h (pack_d): Constify argument.
22535 * config/fp-bit.c (makenan): Constify return type. Remove casts.
22536 (isnan): Constify argument.
22537 (isinf): Likewise.
22538 (iszero): Likewise.
22539 (pack_d): Likewise.
22540 (_fpadd_parts): Constify return type.
22541 (_fpmul_parts): Likewise.
22542 (_fpdiv_parts): Likewise.
22543
d241bf0d 225442009-01-01 Jakub Jelinek <jakub@redhat.com>
22545
22546 PR c/36489
22547 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
22548 warn about overwriting initializer with side-effects or
22549 -Woverride-init if !IMPLICIT.
22550 (output_init_element): Likewise. Pass IMPLICIT down to
22551 add_pending_init.
22552 (process_init_element): Add IMPLICIT argument. Pass it down
22553 to output_init_element.
22554 (push_init_element, pop_init_level, set_designator): Adjust
22555 process_init_element callers.
22556 (set_nonincremental_init, set_nonincremental_init_from_string):
22557 Adjust add_pending_init callers.
22558 (output_pending_init_elements): Adjust output_init_element callers.
22559 * c-tree.h (process_init_element): Adjust prototype.
22560 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
22561 process_init_element callers.
7dfbd804 22562
22563\f
22564Copyright (C) 2009 Free Software Foundation, Inc.
22565
22566Copying and distribution of this file, with or without modification,
22567are permitted in any medium without royalty provided the copyright
22568notice and this notice are preserved.