]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* gcc-interface/misc.c (gnat_get_subrange_bounds): Fix thinko.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
92bffc14
DC
12009-05-23 Denis Chertykov <chertykov@gmail.com>
2
3 * config/avr/avr.c: Change my email address.
4 * config/avr/avr.h: Likewise.
5 * config/avr/avr.md: Likewise.
6 * config/avr/avr-protos.h: Likewise.
7 * config/avr/libgcc.S: Likewise.
8
eec9405e
TS
92009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
10
11 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
12 (spu_split_load, spu_split_store): Change return type to int.
13 (spu_split_convert): Declare.
14 * config/spu/predicates.md (spu_mem_operand): Remove.
15 (spu_mov_operand): Update.
16 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
17 * config/spu/spu.c (regno_aligned_for_load): Remove.
18 (reg_aligned_for_addr, spu_expand_load): Define.
19 (spu_expand_extv): Reimplement and handle MEM.
20 (spu_expand_insv): Handle MEM.
21 (spu_sched_reorder): Handle insn's with length 0.
22 (spu_legitimate_address_p): Reimplement.
23 (store_with_one_insn_p): Return TRUE for any mode with size
24 larger than 16 bytes.
25 (address_needs_split): Define.
26 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
27 operands.
28 (spu_convert_move): Define.
29 (spu_split_load): Use spu_expand_load and change all MEM's to
30 TImode.
31 (spu_split_store): Change all MEM's to TImode.
32 (spu_init_expanders): Preallocate registers that correspond to
33 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
34 mark_reg_pointer.
35 (spu_split_convert): Define.
36 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
37 (_move<mode>, _movdi, _movti): Update predicate and condition.
38 (load, store): Change to define_split.
39 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
40 extend<mode>ti2.
41 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
42 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
43 define_insn_and_split of lshr<mode>3.
44 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
45 (<v>ashr<mode>3_imm): Define.
46 (extv, extzv, insv): Allow MEM operands.
47 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
48 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
49 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
50 (_spu_convert2): Change to define_insn_and_split and remove the
51 corresponding define_peephole2.
52 (stack_protect_set, stack_protect_test, stack_protect_test_si):
53 Change predicates to memory_operand.
54
7d31a807
MM
552009-05-22 Mark Mitchell <mark@codesourcery.com>
56
57 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 58
d021d274
MM
592009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
60
61 PR tree-optimization/40219
62 * tree.c (iterative_hash_expr): Make sure the builtin function is
63 a normal builtin function and not a front end or back end builtin
64 before indexing into the built_in_decls array.
65
4d7a65ea
RG
662009-05-22 Richard Guenther <rguenther@suse.de>
67
68 PR middle-end/38964
69 * alias.c (write_dependence_p): Do not use TBAA for answering
70 anti-dependence or output-dependence.
71 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning
72 code.
73 (emit_pointer_definition): Remove.
74 (emit_alias_warning): Likewise.
75 (find_what_var_points_to): Remove TBAA pruning code.
76 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
77 violations.
78 (compute_points_to_sets): Remove code computing the set of
79 dereferenced pointers.
80 * tree-data-ref.c (dr_may_alias_p): Properly use the split
81 oracle for querying anti and output dependencies.
82 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
83 if TBAA may be applied.
84 (refs_anti_dependent_p): New function.
85 (refs_output_dependent_p): Likewise.
86 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
87 (refs_output_dependent_p): Likewise.
88 * doc/tree-ssa.texi (Memory model): New section.
89 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
90 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
91 * cfgexpand.c (expand_gimple_basic_block): Do not handle
92 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
93 * expr.c (expand_expr_real_1): Likewise.
94 * gimple-low.c (lower_stmt): Likewise.
95 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
96 (dump_gimple_cdt): Remove.
97 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
98 (gimple_size): Likewise.
99 (walk_gimple_op): Likewise.
100 (is_gimple_stmt): Likewise.
101 (walk_stmt_load_store_addr_ops): Likewise.
102 (gimple_build_cdt): Remove.
103 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
104 * gimple.h (gimple_cdt_new_type): Remove.
105 (gimple_cdt_new_type_ptr): Likewise.
106 (gimple_cdt_set_new_type): Likewise.
107 (gimple_cdt_location): Likewise.
108 (gimple_cdt_location_ptr): Likewise.
109 (gimple_cdt_set_location): Likewise.
110 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
111 * tree-cfg.c (remove_useless_stmts_1): Do not handle
112 GIMPLE_CHANGE_DYNAMIC_TYPE.
113 (verify_types_in_gimple_stmt): Likewise.
114 * tree-inline.c (estimate_num_insns): Likewise.
115 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
116 (copy_decl_to_var): Likewise.
117 (copy_result_decl_to_var): Likewise.
118 * tree-pretty-print.c (dump_generic_node): Do not handle
119 CHANGE_DYNAMIC_TYPE_EXPR.
120 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
121 * tree-ssa-operands.c (get_expr_operands): Likewise.
122 * tree-ssa-structalias.c (struct variable_info): Remove
123 no_tbaa_pruning member.
124 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
125 (unify_nodes): Do not copy it.
126 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
127 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
128 (set_uids_in_ptset): Do not check it.
129 (find_what_var_points_to): Likewise.
130 (compute_tbaa_pruning): Remove.
131 (compute_points_to_sets): Do not call it.
132 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
133 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
134 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
135 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
136 (DECL_NO_TBAA_P): Likewise.
137 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
138 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
139 (expand_omp_atomic_pipeline): Do not set it.
140 * print-tree.c (print_node): Do not dump it.
141 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
142 redundant check.
143
83a6ac60
VM
1442009-05-22 Vladimir Makarov <vmakarov@redhat.com>
145
146 PR target/39856
147 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
148 for clobber.
149
fe2978fb
MM
1502009-05-22 Mark Mitchell <mark@codesourcery.com>
151
152 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
153 non-external.
154
134ef638
BE
1552009-05-22 Ben Elliston <bje@au.ibm.com>
156
157 * Makefile.in (bversion.h, s-bversion): New targets.
158 (TOPLEV_H): Add bversion.h.
159 * toplev.h: Include "bversion.h".
160 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
161 the __format__ attribute only if compiling with the same version
162 of GCC as the sources (the "build version").
163
52fc669d
BE
1642009-05-22 Ben Elliston <bje@au.ibm.com>
165
166 * c-format.c (handle_format_attribute): Fix comment typo.
167
583ca921
SE
1682009-05-21 Steve Ellcey <sje@cup.hp.com>
169
170 PR target/37846
171 * config/ia64/ia64.opt (mfused-madd): New.
172 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
173 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
174 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
175 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
176 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
177 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
178 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
179 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
180 instruction if !TARGET_FUSED_MADD.
181 (fpma, fpms): Remove colon from name.
182
150e3929
RG
1832009-05-22 Richard Guenther <rguenther@suse.de>
184
185 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
186 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
187 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
188 TARGET_MEM_REF.
189 (create_expression_by_pieces): Only convert if necessary.
190 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
191 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
192
9a2b090c
AN
1932009-05-21 Adam Nemet <anemet@caviumnetworks.com>
194
195 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
196 regular pattern from a template and rename it ...
197 (*extzv_truncsi_exts): ... to this.
198
33b92c9d
RG
1992009-05-21 Richard Guenther <rguenther@suse.de>
200
201 * cgraph.h (struct cgraph_node): Remove inline_decl member.
202 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
203 (cgraph_default_inline_p): Likewise.
204 (cgraph_decide_inlining_incrementally): Likewise.
205
cabf85c3
L
2062009-05-21 H.J. Lu <hongjiu.lu@intel.com>
207 Uros Bizjak <ubizjak@gmail.com>
208
209 * config/i386/cpuid.h (bit_MOVBE): New.
210
211 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
212
213 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
214 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
215 (ix86_handle_option): Handle OPT_mmovbe.
216 (ix86_target_string): Add -mmovbe.
217 (pta_flags): Add PTA_MOVBE.
218 (processor_alias_table): Add PTA_MOVBE to "atom".
219 (override_options): Handle PTA_MOVBE.
220
221 * config/i386/i386.h (TARGET_MOVBE): New.
222
223 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
224 (*bswapsi_movbe): New.
225 (*bswapdi_movbe): Likewise.
226 (bswapdi2): Renamed to ...
227 (*bswapdi_1): This.
228 (bswapdi2): New expander.
229
230 * config/i386/i386.opt (mmovbe): New.
231
232 * doc/invoke.texi: Document -mmovbe.
233
9fefa0aa
TG
2342009-05-21 Taras Glek <tglek@mozilla.com>
235
236 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
237 * gcc-plugin.h (plugin_init): Updated signature.
238 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
239 * doc/plugins.texi (plugin_init): Updated documention to reflect
240 API change.
9fefa0aa
TG
241 * doc/plugins.texi (plugin_name_args): Added to documention.
242
1ea9fe56
MM
2432009-05-21 Mark Mitchell <mark@codesourcery.com>
244
245 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
246 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
247
52f84254
SZ
2482009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
249
250 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
251 JUMP_TABLE_DATA_P predicates where applicable.
252 * config/i386/predicates.md: Ditto.
253 * config/i386/sse.md: Ditto.
254
a952487c
JJ
2552009-05-21 Jakub Jelinek <jakub@redhat.com>
256
93cac287
JJ
257 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
258 operand2 -128 override length_immediate attribute to 1.
259 * config/i386/predicates.md (constm128_operand): New predicate.
260
a952487c
JJ
261 * config/i386/i386.c (memory_address_length): Handle %r12
262 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
263 also check REGNO.
264 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
265 mode look through optional ZERO_EXTEND and SUBREG.
266 * config/i386/i386.md (R12_REG): New define_constant.
267 (prefix_data16): For sse unit set also for MODE_TI insns.
268 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
269 insns set if operand 1 is ext_QIreg_operand.
270 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
271 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
272 immediate.
273 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
274 mode from MODE_DI to MODE_SI.
275 (movdi_1_rex64): Override modrm and length_immediate attributes
276 only for movabs (TYPE_IMOV, alternative 2).
277 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
278 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
279 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
280 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
281 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
282 prefix_rex attribute if DImode.
283 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
284 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
285 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
286 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
287 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
288 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
289 Likewise. For TYPE_IMOV clear length_immediate attribute.
290 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
291 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
292 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
293 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
294 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
295 or one operand TYPE_ISHIFT.
296 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
297 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
298 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
299 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
300 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
301 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
302 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
303 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
304 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
305 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
306 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
307 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
308 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
309 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
310 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
311 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
312 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
313 set mode attribute, don't override length attribute.
314 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
315 to 1.
316 (return_internal_long): Set length attribute to 2 instead of 1.
317 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
318 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
319 prefix_rex attribute.
320 * config/i386/predicates.md (ext_QIreg_operand,
321 const128_operand): New predicates.
322 (memory_displacement_only_operand): Always return 0 for
323 TARGET_64BIT.
324
64af62c2
RR
3252009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
326
327 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
328
c166b898
ILT
3292009-05-20 Ian Lance Taylor <iant@google.com>
330
331 * tree.c (build_tree_list_vec_stat): New function.
332 (ctor_to_vec): New function.
333 (build_nt_call_vec): New function.
334 (build_call_array): Change args to be a const pointer.
335 (build_call_vec): New function.
336 * tree.h (build_nt_call_vec): Declare.
337 (build_tree_list_vec_stat): Declare.
338 (build_tree_list_vec): Define.
339 (build_call_array): Update declaration.
340 (build_call_vec): Declare.
341 (ctor_to_vec): Declare.
342 * c-common.c (tree_vector_cache): New static variable.
343 (make_tree_vector): New function.
344 (release_tree_vector): New function.
345 (make_tree_vector_single): New function.
346 (make_tree_vector_copy): New function.
347 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
348 (make_tree_vector_single, make_tree_vector_copy): Declare.
349 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
350 (c_parser_expr_list): Don't manage cache here, instead call
351 make_tree_vector.
352 (c_parser_release_expr_list): Remove static function.
353 (c_parser_vec_to_tree_list): Remove static function.
354 (c_parser_attributes): Call build_tree_list_vec instead of
355 c_parser_vec_to_tree_list. Call release_tree_vector instead of
356 c_parser_release_expr_list.
357 (c_parser_postfix_expression_after_primary): Likewise.
358 (c_parser_objc_keywordexpr): Likewise.
359
40449a90
SL
3602009-05-20 Sandra Loosemore <sandra@codesourcery.com>
361
362 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
363 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
364 TARGET_CONVERT_TO_TYPE.
365 * hooks.c (hook_tree_const_tree_null): Define.
366 * hooks.h (hook_tree_const_tree_null): Declare.
367 * target.h (struct gcc_target): Add invalid_parameter_type,
368 invalid_return_type, promoted_type, and convert_to_type fields.
369 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
370 (TARGET_INVALID_RETURN_TYPE): Define.
371 (TARGET_PROMOTED_TYPE): Define.
372 (TARGET_CONVERT_TO_TYPE): Define.
373 (TARGET_INITIALIZER): Update for new fields.
374 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
375 (grokparms): Check targetm.invalid_parameter_type.
376 * c-typeck.c (default_conversion): Check targetm.promoted_type.
377 * c-convert.c (convert): Check targetm.convert_to_type.
378
642d97ff
AN
3792009-05-20 Adam Nemet <anemet@caviumnetworks.com>
380
381 * config/mips/mips.md (*extenddi_truncate<mode>,
382 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
383 defintions.
384 (*extendhi_truncateqi): New define_insn_and_sptit.
385
776248b8
JJ
3862009-05-20 Jakub Jelinek <jakub@redhat.com>
387
388 PR middle-end/40204
389 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
390 recursion if build_int_cst_type returns the same INTEGER_CST as
391 arg1.
392
d98e8686
EB
3932009-05-20 Eric Botcazou <ebotcazou@adacore.com>
394
395 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
396 the operand of VIEW_CONVERT_EXPR.
397
37c50435
L
3982009-05-20 H.J. Lu <hongjiu.lu@intel.com>
399
400 * config/i386/driver-i386.c (host_detect_local_cpu): Check
401 extended family and model for Intel processors. Support Intel
402 Atom.
403
dbb6088f
OH
4042009-05-20 Olivier Hainque <hainque@adacore.com>
405
406 * gstab.h (stab_code_type): Define, to be used instead of the
407 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
408 notice.
409 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
410 occurrences by stab_code_type.
411 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
412
7ec49257
MJ
4132009-05-20 Martin Jambor <mjambor@suse.cz>
414
415 * tree-flow.h (insert_edge_copies_seq): Undeclare.
416 (sra_insert_before): Likewise.
417 (sra_insert_after): Likewise.
418 (sra_init_cache): Likewise.
419 (sra_type_can_be_decomposed_p): Likewise.
420 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
421 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
422 (sra_insert_before): Likewise.
423 (sra_insert_after): Likewise.
424 (sra_init_cache): Likewise.
425 (insert_edge_copies_seq): Made static and moved upwards.
426
427 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
428 case.
429
430 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
431
432 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
433 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
434 simple copies.
435
0328ae4d
RG
4362009-05-20 Richard Guenther <rguenther@suse.de>
437
438 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
439 with mismatched comparison modes.
440
a7994a57
RR
4412009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
442
443 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
444 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
445 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
446 with shifts for Thumb2.
447 (orsi_notsi): New for orn.
448 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
449 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
450 * config/arm/arm.c (const_ok_for_op): Split case for IOR for
451 Thumb2.
452 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add
453 comments. Don't invert remainder for IOR.
454
e36dc339
ZD
4552009-05-19 Zdenek Dvorak <ook@ucw.cz>
456
457 PR tree-optimization/40087
458 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
459 number_of_iterations_ne): Rename never_infinite argument.
460 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
461 number_of_iterations_le): Handle pointer-type ivs when
462 exit_must_be_taken is false.
463 (number_of_iterations_cond): Do not always assume that
464 exit_must_be_taken if the control variable is a pointer.
465
5cfd5d9b
AP
4662009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
467
468 * c-typeck.c (build_binary_op): Allow % on integal vectors.
469 * doc/extend.texi (Vector Extension): Document that % is allowed too.
470
2f1c7156
L
4712009-05-19 H.J. Lu <hongjiu.lu@intel.com>
472
473 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
474 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
475
7bb27074
MLI
4762009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
477
478 PR c/40172
479 * c.opt (Wlogical-op): Disabled by default.
480 * c-opt (c_common_post_options): Do not enable Wlogical-op with
481 Wextra.
482 * doc/invoke.texi (Wlogical-op): Likewise.
483
5aefc6a0
EB
4842009-05-19 Eric Botcazou <ebotcazou@adacore.com>
485
486 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
487 into CASE_CONVERT.
488 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
489 Propagate the type of the first operand.
490 <ASSERT_EXPR>: Simplify.
491 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
492 Rewrite using the RHS code as discriminant.
493 <NOP_EXPR>: Turn into CASE_CONVERT.
494 <PLUS_EXPR>: Propagate the type of the first operand.
495
f3a83111
SE
4962009-05-19 Steve Ellcey <sje@cup.hp.com>
497
498 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
499 (ia64_dconst_0_375): New.
500 * config/ia64/ia64.c (ia64_override_options): Remove
501 -minline-sqrt-min-latency warning.
502 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
503 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
504 * config/ia64/ia64.md (*sqrt_approx): Remove.
505 (sqrtsf2): Remove #if 0.
506 (sqrtsf2_internal_thr): Rewrite and move to div.md.
507 (sqrtdf): Remove assert.
508 (sqrtdf2_internal_thr): Rewrite and move to div.md.
509 (sqrtxf2): Remove #if 0.
510 (sqrtxf2_internal_thr): Rewrite and move to div.md.
511 * div.md (sqrt_approx_rf): New.
512 (sqrtsf2_internal_thr): New implementation.
513 (sqrtsf2_internal_lat): New.
514 (sqrtdf2_internal_thr: New implementation.
515 (sqrtxf2_internal): New implementation.
516
1ffc7157
FXC
5172009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
518 Hans-Peter Nilsson <hp@axis.com>
519
520 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
521 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
522 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
523 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
524 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
525 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
526 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
527 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
528 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
529 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
530 * c-common.c: ...from here.
531
db91d9ef
MLI
5322009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
533
534 * c-common.c (warn_logical_operator): Remove unnecessary
535 conditionals.
536
bbb9d91f
KG
5372009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
538
539 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
540
ce883f54
BE
5412009-05-19 Ben Elliston <bje@au.ibm.com>
542
543 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
544 assignments with memcpy calls.
545 (add_fdes): Likewise.
546 (binary_search_unencoded_fdes): Likewise.
547 (linear_search_fdes): Eliminate type puns.
548
377f099a
RG
5492009-05-19 Richard Guenther <rguenther@suse.de>
550
551 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
552 not falsely claim to have propagated into all uses.
553
848bc769
BE
5542009-05-19 Ben Elliston <bje@au.ibm.com>
555
556 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
557 version to v3.0.
558
1bb99877
KK
5592009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
560
561 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
562 * config/sh/sh.c (sh_legitimate_address_p): Make static.
563 (TARGET_LEGITIMATE_ADDRESS_P): New.
564 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
565 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
566
82725547
DS
5672009-05-18 Dodji Seketeli <dodji@redhat.com>
568
569 PR debug/40109
570 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
571 child of the containing namespace's DIE.
572
f6a1e430
AN
5732009-05-18 Adam Nemet <anemet@caviumnetworks.com>
574
575 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
576 *zero_extendhi_truncqi): Move after the zero_extend patterns.
577 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
578 extend patterns.
579
6a90d232
L
5802009-05-18 H.J. Lu <hongjiu.lu@intel.com>
581
582 PR target/39942
583 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
584 gen_align with gen_pad.
585 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
586 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
587
588 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
589 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
590
591 * config/i386/i386.md (align): Renamed to ...
592 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
593 ASM_OUTPUT_MAX_SKIP_PAD.
594
c4406f74
AS
5952009-05-18 Andreas Schwab <schwab@linux-m68k.org>
596
06555043
AS
597 * config.gcc: Fix variable syntax.
598
c4406f74
AS
599 PR target/39531
600 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
601 before calling exact_log2.
602 (output_iorsi3): Likewise.
603 (output_xorsi3): Likewise.
604
99052692
KK
6052009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
606
607 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
608 for the none zero constant operand except for EQ and NE
609 comprisons even when the first operand is R0.
610
f4aa3848
AK
6112009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
612
613 * config/s390/2064.md: Remove trailing whitespaces.
614 * config/s390/2084.md: Likewise.
615 * config/s390/constraints.md: Likewise.
616 * config/s390/fixdfdi.h: Likewise.
617 * config/s390/libgcc-glibc.ver: Likewise.
618 * config/s390/s390-modes.def: Likewise.
619 * config/s390/s390-protos.h: Likewise.
620 * config/s390/s390.c: Likewise.
621 * config/s390/s390.h: Likewise.
622 * config/s390/s390.md: Likewise.
623 * config/s390/tpf-unwind.h: Likewise.
624
ab7256e4
MK
6252009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
626
627 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
628
75df395f
MK
6292009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
630
631 M68K TLS support.
632 * configure.ac (m68k-*-*): Check if binutils support TLS.
633 * configure: Regenerate.
634 * config/m68k/predicates.md (symbolic_operand): Extend comment.
635 * config/m68k/constraints.md (Cu): New constraint.
636 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
637 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
638 (movsi): Handle TLS symbols.
639 (addsi3_5200): Handle XTLS symbols, indent.
640 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
641 (m68k_tls_reference_p): Declare.
642 (m68k_legitimize_address): Declare.
643 (m68k_unwrap_symbol): Declare.
644 * config/m68k/m68k.opt (mxtls): New option.
645 * config/m68k/m68k.c (ggc.h): Include.
646 (m68k_output_dwarf_dtprel): Implement hook.
647 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
648 (m68k_expand_prologue): Load GOT pointer when function needs it.
649 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
650 (m68k_legitimate_constant_address_p): Same.
651 (m68k_decompose_address): Handle TLS references.
652 (m68k_get_gp): New static function.
653 (enum m68k_reloc): New contants.
654 (TLS_RELOC_P): New macro.
655 (m68k_wrap_symbol): New static function.
656 (m68k_unwrap_symbol): New function.
657 (m68k_final_prescan_insn_1): New static function.
658 (m68k_final_prescan_insn): New function.
659 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
660 functions.
661 (legitimize_pic_address): Handle TLS references..
662 (m68k_tls_get_addr, m68k_get_tls_get_addr)
663 (m68k_libcall_value_in_a0_p)
664 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
665 (m68k_call_m68k_read_tp): Helper variables and functions for ...
666 (m68k_legitimize_tls_address): Handle TLS references.
667 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
668 New functions.
669 (m68k_legitimize_address): Handle TLS symbols.
670 (m68k_get_reloc_decoration): New static function.
671 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
672 UNSPEC_RELOC32.
673 (m68k_output_dwarf_dtprel): Implement hook.
674 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
675 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
676 m68k_call_* routines.
677 (sched_attr_op_type): Handle TLS symbols.
678 (gt-m68k.h): Include.
679 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
680 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
681
8b75fc9b
MJ
6822009-05-18 Martin Jambor <mjambor@suse.cz>
683
684 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
685 (visit_store_addr_for_mod_analysis): New function.
686 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
687 (determine_cst_member_ptr): Use gimple_assign_single_p.
688 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
689 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
690 operands. Don't check number of operands of a NOP_EXPR.
691
f133d4a2
EF
6922009-05-18 Eric Fisher <joefoxreal@gmail.com>
693
694 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
695
ae8af500
L
6962009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
697
698 PR c/40172
699 * c-common.c (warn_logical_operator): Don't warn if one of
700 expression isn't always true or false.
701
25e8fde8
KT
7022009-05-17 Kai Tietz <kai.tietz@onevision.com>
703
ae8af500
L
704 * config/i386/biarch32.h: New file.
705 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 706
ef67af22
AN
7072009-05-17 Adam Nemet <anemet@caviumnetworks.com>
708
709 * config/mips/mips.md (*zero_extend<mode>_trunchi,
710 *zero_extend<mode>_truncqi): Merge these into ...
711 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
712 Name the pattern following this as *zero_extendhi_truncqi.
713
e2d87023
BL
7142009-05-16 Brad Lucier <lucier@math.purdue.edu>
715
716 PR middle-end/39301
717 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
718 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
719 (output_info): Make field HOST_WIDEST_INT.
720 (print_statistics): Use HOST_WIDEST_INT_PRINT.
721 (dump_bitmat_statistics): Same.
722
428ddbf0
FXC
7232009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
724
725 * config.gcc (use_gcc_stdint): Set to wrap.
726 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
727 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
728 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
729 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
730 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
731 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
732 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
733 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
734
1ab8a8c2
JM
7352009-05-16 Joseph Myers <joseph@codesourcery.com>
736
737 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
738 tune_64.
739 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
740 Move definitions earlier.
741 (OPT_ARCH64, OPT_ARCH32): Define.
742 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
743 and tune_64.
744
70544f44
RE
7452009-05-16 Richard Earnshaw <rearnsha@arm.com>
746
747 PR target/40153
748 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
749 implies.
750
6241ded1
RE
7512009-05-16 Richard Earnshaw <rearnsha@arm.com>
752
753 * arm.md (movdi2): Copy non-reg values to DImode registers.
754
a99c6711
JJ
7552009-05-16 Jakub Jelinek <jakub@redhat.com>
756
40a8f07a
JJ
757 PR target/39942
758 * final.c (label_to_max_skip): New function.
759 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
760 CODE_LABEL_NUMBER <= max_labelno.
761 * output.h (label_to_max_skip): New prototype.
762 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
763 (ix86_avoid_jump_mispredicts): ... this. Don't define if
764 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
765 Handle CODE_LABELs with >= 16 byte alignment or with
766 max_skip == (1 << align) - 1.
767 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
768 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
769
a99c6711
JJ
770 PR target/39942
771 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
772 .p2align 3 if MAX_SKIP is smaller than 7.
773 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
774
7e5487a2
ILT
7752009-05-15 Ian Lance Taylor <iant@google.com>
776
777 * alias.c (struct alias_set_entry_d): Rename from struct
778 alias_set_entry. Change all uses.
779 * except.c (struct call_site_record_d): Rename from struct
780 call_site_record. Change all uses.
781 * except.h (struct eh_region_d): Rename from struct eh_region.
782 Change all uses.
783 * gcse.c (struct hash_table_d): Rename from struct hash_table.
784 Change all uses.
785 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
786 ivtype_map_elt. Change all uses.
787 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
788 Change all uses.
789 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
790 * graphite.h (struct name_tree_d): Rename from struct name_tree.
791 Change all uses.
792 (struct sese_d): Rename from struct sese. Change all uses.
793 * omega.h (struct eqn_d): Rename from struct eqn. Change all
794 uses.
795 (struct omega_pb_d): Rename from struct omega_pb. Change all
796 uses.
797 * optabs.h (struct optab_d): Rename from struct optab. Change all
798 uses.
799 (struct convert_optab_d): Rename from struct convert_optab.
800 Change all uses.
801 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
802 ipa_opt_pass. Change all uses.
803 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
804 all uses.
805
806 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
807 defined as a typedef.
808 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
809 defined as a tag.
810
a243fb4a
MLI
8112009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
812
813 PR 16302
814 * fold-const.c (make_range,build_range_check,merge_ranges): Move
815 declaration to...
816 (merge_ranges): Returns bool.
817 * tree.h (make_range): .. to here.
818 (build_range_check): Likewise.
819 (merge_ranges): Likewise. Renamed from merge_ranges.
820 * c-typeck.c (parser_build_binary_op): Update calls to
821 warn_logical_operator.
822 * c-common.c (warn_logical_operator): Add new warning.
823 * c-common.h (warn_logical_operator): Update declaration.
824
1b53c5f3
MLI
8252009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
826
827 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong
828 conditional.
829
c128599a
KG
8302009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
831
f9bab007
KG
832 * doc/install.texi: Document MPC requirements, flags etc.
833
c128599a
KG
834 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
835 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
836 Evaluate constant arguments.
837 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
838 (fold_builtin_1): Likewise, also evaluate constant arguments.
839 Remove superfluous break.
840 (do_mpc_ckconv): New.
841 * real.h: Include mpc.h.
842 * toplev.c (print_version): Output MPC version info if available.
843
d33e4b70
SL
8442009-05-15 Sandra Loosemore <sandra@codesourcery.com>
845
846 * fold-const.c (fold_convert_const_real_from_real): Check for
847 overflow.
848
a02ab464
L
8492009-05-15 H.J. Lu <hongjiu.lu@intel.com>
850
851 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
852 only once.
853
796bda22
JH
8542009-05-15 Jan Hubicka <jh@suse.cz>
855
856 * doc/invoke.texi (max-early-inliner-iterations): New flag.
857 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
858 (try_inline): Fix return value.
859 (cgraph_decide_inlining_incrementally): Honor new value.
860 (cgraph_early_inlining): Handle indirect inlining.
861 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
862
d88e5c37
JH
8632009-05-15 Jan Hubicka <jh@suse.cz>
864
865 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
866 * cgraphunit.c (cgraph_finalize_function): Set it.
867 (cgraph_expand_function): Use it.
868
ae63687c
SL
8692009-05-15 Sandra Loosemore <sandra@codesourcery.com>
870
871 * real.c (encode_ieee_half): Define.
872 (decode_ieee_half): Define.
873 (ieee_half_format): Define.
874 (arm_half_format): Define.
875 * real.h (ieee_half_format): Declare.
876 (arm_half_format): Declare.
877
1bd74ad9
SL
8782009-05-15 Sandra Loosemore <sandra@codesourcery.com>
879
880 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
881 swapped, and reversed optabs exist before trying to use them.
882
dc34db56
PB
8832009-05-15 Paul Brook <paul@codesourcery.com>
884 Sandra Loosemore <sandra@codesourcery.com>
885
dc34db56
PB
886 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
887 loads. Allow PRE_DEC.
888 (output_move_neon): Handle PRE_DEC.
889 (arm_print_operand): Add 'A' for neon structure loads.
890 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
891 * config/arm/neon.md (neon_mov): Update comment.
892 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
893 calls.
894 (Um): New constraint.
895
1d405d7b
JH
8962009-05-15 Jan Hubicka <jh@suse.cz>
897
898 Revert the following patch until testsuite fallout is fixed:
899 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
900 * cgraph.h (struct inline_summary): New filed self_wize,
901 size_inlining_benefit, self_time and time_inlining_benefit.
902 (struct cgraph_global_info): Replace insns by time ans size fields.
903 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
904 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
905 (ipcp_update_callgraph): Do not touch function bodies.
906 * ipa-inline.c: Include except.h
907 MAX_TIME: New constant.
908 (overall_insns): Remove
909 (overall_size, max_benefit): New static variables.
910 (cgraph_estimate_time_after_inlining): New function.
911 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
912 (cgraph_clone_inlined_nodes): Update size.
913 (cgraph_mark_inline_edge): Update size.
914 (cgraph_estimate_growth): Use size info.
915 (cgraph_check_inline_limits): Check size.
916 (cgraph_default_inline_p): Likewise.
917 (cgraph_edge_badness): Compute badness based on benefit and size cost.
918 (cgraph_decide_recursive_inlining): Check size.
00c5fa1b
EB
919 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
920 times.
1d405d7b 921 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
922 (cgraph_decide_inlining_incrementally): Likewise; honor
923 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
924 (likely_eliminated_by_inlining_p): New predicate.
925 (estimate_function_body_sizes): New function.
926 (compute_inline_parameters): Use it.
927 * except.c (must_not_throw_labels): New function.
928 * except.h (must_not_throw_labels): Declare.
929 * tree-inline.c (init_inline_once): Kill inlining_weigths
930 * tree-ssa-structalias.c: Avoid uninitialized warning.
931 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
932 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
933 (PARAM_INLINE_CALL_COST): Remove.
934 (PARAM_EARLY_INLINING_INSNS): New.
935
7ffa47ca
RG
9362009-05-15 Richard Guenther <rguenther@suse.de>
937
938 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
939 not TODO_update_ssa.
940
828552ed
RG
9412009-05-15 Richard Guenther <rguenther@suse.de>
942
943 PR tree-optimization/39999
944 * gimple.h (gimple_expr_type): Use the expression type looking
945 through useless conversions.
946 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
947 (vn_nary_op_insert_stmt): Likewise.
948 (simplify_binary_expression): Likewise.
949
248fc9f3
RG
9502009-05-15 Richard Guenther <rguenther@suse.de>
951
952 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
953 New options, enabled by default.
954 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
955 Document.
956 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
957 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
958 * tree-ssa-structalias.c (gate_tree_pta): New function.
959 (pass_build_alias): Use it.
960
16b29cc4
JM
9612009-05-15 Joseph Myers <joseph@codesourcery.com>
962
963 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
964 recurse on an invariant address if a conversion from a pointer
965 type to a wider integer type is involved.
966
125cae84
JH
9672009-05-15 Jan Hubicka <jh@suse.cz>
968
969 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
970 * cgraph.h (struct inline_summary): New filed self_wize,
971 size_inlining_benefit, self_time and time_inlining_benefit.
972 (struct cgraph_global_info): Replace insns by time ans size fields.
973 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
974 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
975 (ipcp_update_callgraph): Do not touch function bodies.
976 * ipa-inline.c: Include except.h
977 MAX_TIME: New constant.
978 (overall_insns): Remove
979 (overall_size, max_benefit): New static variables.
980 (cgraph_estimate_time_after_inlining): New function.
981 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
982 (cgraph_clone_inlined_nodes): Update size.
983 (cgraph_mark_inline_edge): Update size.
984 (cgraph_estimate_growth): Use size info.
985 (cgraph_check_inline_limits): Check size.
986 (cgraph_default_inline_p): Likewise.
987 (cgraph_edge_badness): Compute badness based on benefit and size cost.
988 (cgraph_decide_recursive_inlining): Check size.
00c5fa1b
EB
989 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
990 times.
125cae84 991 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
992 (cgraph_decide_inlining_incrementally): Likewise; honor
993 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
994 (likely_eliminated_by_inlining_p): New predicate.
995 (estimate_function_body_sizes): New function.
996 (compute_inline_parameters): Use it.
997 * except.c (must_not_throw_labels): New function.
998 * except.h (must_not_throw_labels): Declare.
999 * tree-inline.c (init_inline_once): Kill inlining_weigths
1000 * tree-ssa-structalias.c: Avoid uninitialized warning.
1001 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1002 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1003 (PARAM_INLINE_CALL_COST): Remove.
1004 (PARAM_EARLY_INLINING_INSNS): New.
1005 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
1006 (inline-call-cost): Remove.
1007 (early-inlining-insns): New.
1008
84fb43a1
EB
10092009-05-15 Eric Botcazou <ebotcazou@adacore.com>
1010
1011 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
1012 for bounds.
1013 (print_int_cst_bounds_in_octal_p): Likewise.
1014 (dbxout_type): Adjust calls to above functions. Be prepared to deal
1015 with subtypes.
1016 * dwarf2out.c (base_type_die): Likewise.
1017 (is_subrange_type): Delete.
1018 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
1019 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
1020 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
1021 the destination type is boolean.
1022 (build_range_check): Do not special-case subtypes.
1023 (fold_sign_changed_comparison): Likewise.
1024 (fold_unary): Likewise.
1025 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
1026 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
1027 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
1028 * tree.c (subrange_type_for_debug_p): New predicate based on the former
1029 is_subrange_type.
1030 * tree.h (subrange_type_for_debug_p): Declare.
1031 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
1032 (convert_affine_scev): Remove call to above function.
1033 (chrec_convert_aggressive): Likewise.
1034 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
1035 false for conversions involving subtypes.
1036 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
1037 (vrp_val_min): Likewise.
1038 (needs_overflow_infinity): Likewise.
1039 (extract_range_from_unary_expr): Likewise.
1040
331d9186
PB
10412009-05-15 Paolo Bonzini <bonzini@gnu.org>
1042
e9351712
L
1043 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1044 * config/frv/frv.c: Likewise.
1045 * config/s390/s390.c: Likewise.
1046 * config/sparc/sparc.h: Likewise.
1047 * config/i386/i386.h: Likewise.
1048 * config/i386/i386.c: Likewise.
1049 * config/crx/crx.c: Likewise.
1050 * config/m68hc11/m68hc11.h: Likewise.
1051 * config/iq2000/iq2000.c: Likewise.
1052 * config/mn10300/mn10300.h: Likewise.
1053 * config/mn10300/mn10300.c: Likewise.
1054 * config/m68k/m68k.c: Likewise.
1055 * config/rs6000/rs6000.c: Likewise.
1056 * config/rs6000/xcoff.h: Likewise.
1057 * config/rs6000/linux64.h: Likewise.
1058 * config/rs6000/sysv4.h: Likewise.
1059 * config/score/score3.c: Likewise.
1060 * config/score/score7.c: Likewise.
1061 * config/score/score.c: Likewise.
1062 * config/arm/arm.md: Likewise.
1063 * config/mips/mips.c: Likewise.
1064 * config/mips/mips.md: Likewise.
1065 * config/bfin/bfin.h: Likewise.
1066 * config/pa/pa.c: Likewise.
1067 * config/pa/constraints.md: Likewise.
1068
1069 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
1070 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
1071 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 1072
09639a83
ILT
10732009-05-14 Ian Lance Taylor <iant@google.com>
1074
1075 * passes.c (finish_optimization_passes): Change i to int.
1076 * plugin.c (plugins_active_p): Change event to int.
1077 (dump_active_plugins): Likewise.
1078 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
1079 Add cast.
1080 * tree.c (tree_range_check_failed): Change c to unsigned int.
1081 (omp_clause_range_check_failed): Likewise.
1082 (build_common_builtin_nodes): Change mode to int. Add cast.
1083 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
1084 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
1085
1086 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
1087 ++ or -- with a variable of enum type.
1088
c04a56bf
SB
10892009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1090
1091 PR driver/40144
1092 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
1093
237ee620
SB
10942009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1095
1096 * store-motion.c: Do not include params.h
1097 * Makefile.in: Fix dependencies for various files.
1098
1154c4fa
SB
10992009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1100
1101 * auto-inc-dec.c: Fix pass description, remove apparent
1102 accidental duplication.
1103
61c27353
L
11042009-05-14 H.J. Lu <hongjiu.lu@intel.com>
1105
1106 PR middle-end/40147
1107 * ipa-utils.h (memory_identifier_string): Moved to ...
1108 * tree.h (memory_identifier_string): Here. Add GTY(()).
1109
c6c3dba9
PB
11102009-05-14 Paolo Bonzini <bonzini@gnu.org>
1111
1112 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
1113 in the former documentation of...
1114 (GO_IF_LEGITIMATE_ADDRESS): ... this.
1115 * ira-conflicts.c (get_dup_num): Use address_operand.
1116 * targhooks.c (default_legitimate_address_p): New.
1117 * targhooks.h (default_legitimate_address_p): New.
1118 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
1119 Call hook.
1120 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
1121 * target.h (struct target): Add legitimate_address_p.
1122 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
1123 (TARGET_INITIALIZER): Include it.
1124
1125 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1126 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
1127 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
1128 (TARGET_LEGITIMATE_ADDRESS_P): New.
1129
1130 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1131 (REG_OK_STRICT_P): Delete.
1132 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
1133 (frv_legitimate_address_p_1): ... this.
1134 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
1135 (frv_legitimate_address_p_1): ... the renamed old
1136 frv_legitimate_address_p.
1137 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
1138 (TARGET_LEGITIMATE_ADDRESS_P): New.
1139
1140 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1141 * config/s390/s390-protos.h (legitimate_address_p): Remove.
1142 * config/s390/s390.c (legitimate_address_p): Rename to...
1143 (s390_legitimate_address_p): ... this, make static.
1144 (legitimize_address): Adjust call.
1145 (TARGET_LEGITIMATE_ADDRESS_P): New.
1146 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
1147
1148 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1149 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
1150 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
1151 (TARGET_LEGITIMATE_ADDRESS_P): New.
1152
1153 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1154 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
1155 * config/spu/spu.c (spu_legitimate_address): Rename to...
1156 (spu_legitimate_address_p): ... this, make static.
1157 (TARGET_LEGITIMATE_ADDRESS_P): New.
1158
1159 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1160 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
1161 * config/sparc/sparc.c (legitimate_address_p): Rename to...
1162 (sparc_legitimate_address_p): ... this, make static and return bool.
1163 (legitimize_address): Adjust call.
1164 (TARGET_LEGITIMATE_ADDRESS_P): New.
1165
1166 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1167 * config/i386/i386-protos.h (legitimate_address_p): Remove.
1168 * config/i386/i386.c (legitimate_address_p): Rename to...
1169 (ix86_legitimate_address_p): ... this, make static.
1170 (constant_address_p): Move after it, adjust call.
1171 (TARGET_LEGITIMATE_ADDRESS_P): New.
1172
1173 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1174 * config/avr/avr-protos.h (legitimate_address_p): Remove.
1175 * config/avr/avr.c (legitimate_address_p): Rename to...
1176 (avr_legitimate_address_p): ... this, make static.
1177 (legitimize_address): Adjust call.
1178 (TARGET_LEGITIMATE_ADDRESS_P): New.
1179
1180 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1181 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
1182 * config/crx/crx.c (crx_legitimate_address_p): Make static.
1183 (TARGET_LEGITIMATE_ADDRESS_P): New.
1184
1185 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1186 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
1187 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
1188 (TARGET_LEGITIMATE_ADDRESS_P): New.
1189
1190 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1191 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
1192 Remove.
1193 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
1194 Make static.
1195 (TARGET_LEGITIMATE_ADDRESS_P): New.
1196
1197 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1198 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
1199 Remove.
1200 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
1201 Rename to...
1202 (m68hc11_legitimate_address_p): ... this, make static.
1203 (go_if_legitimate_address_internal): Rename to...
1204 (m68hc11_legitimate_address_p_1): ... this.
1205 (legitimize_address): Adjust call.
1206 (TARGET_LEGITIMATE_ADDRESS_P): New.
1207
1208 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1209 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
1210 Remove.
1211 * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
1212 Make static.
1213 (TARGET_LEGITIMATE_ADDRESS_P): New.
1214
1215 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1216 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
1217 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
1218 (mn10300_legitimate_address_p): ... this, make static.
1219 (TARGET_LEGITIMATE_ADDRESS_P): New.
1220
1221 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1222 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
1223 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
1224 (TARGET_LEGITIMATE_ADDRESS_P): New.
1225
1226 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1227 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
1228 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
1229 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1230 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
1231 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
1232 (rs6000_legitimate_address_p): ... this, make static.
1233 (TARGET_LEGITIMATE_ADDRESS_P): New.
1234 (REG_MODE_OK_FOR_BASE_P): Delete.
1235 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
1236
1237 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1238 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
1239 Delete.
1240 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
1241 static, adjust types.
1242 (TARGET_LEGITIMATE_ADDRESS_P): New.
1243
1244 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1245 * config/score/score.c (score_address_p): Rename to...
1246 (score_legitimate_address_p): ... this.
1247 (TARGET_LEGITIMATE_ADDRESS_P): New.
1248 * config/score/score3.c (score3_address_p): Rename to...
1249 (score3_legitimate_address_p): ... this.
1250 * config/score/score7.c (score7_address_p): Rename to...
1251 (score7_legitimate_address_p): ... this.
1252
1253 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
1254 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
1255 GO_IF_LEGITIMATE_ADDRESS): Delete.
1256 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
1257 thumb2_legitimate_address_p): Delete.
1258 (arm_legitimate_address_p): Rename to...
1259 (arm_legitimate_address_outer_p): ... this.
1260 * config/arm/constraints.md ("Uq"): Adjust call.
1261 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
1262 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
1263 (arm_legitimate_address_outer_p): ... this.
1264 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
1265 (TARGET_LEGITIMATE_ADDRESS_P): New.
1266
1267 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1268 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
1269 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
1270 (TARGET_LEGITIMATE_ADDRESS_P): New.
1271
1272 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1273 * config/vax/vax-protos.h (legitimate_address_p): Remove.
1274 * config/vax/vax.c (legitimate_address_p): Rename to...
1275 (vax_legitimate_address_p): ... this, make static.
1276 (TARGET_LEGITIMATE_ADDRESS_P): New.
1277
1278 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1279 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
1280 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
1281 (TARGET_LEGITIMATE_ADDRESS_P): New.
1282
1283 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1284 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
1285 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
1286 (mmix_legitimate_address_p): ... this, make static.
1287 (TARGET_LEGITIMATE_ADDRESS_P): New.
1288
1289 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1290 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
1291 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
1292 (TARGET_LEGITIMATE_ADDRESS_P): New.
1293
3bd0d9c8
PB
12942009-05-14 Paolo Bonzini <bonzini@gnu.org>
1295
1296 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
1297 of MODE_COMPLEX_INT.
1298
fe049033
RO
12992009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1300
1301 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
1302 LCT_NORMAL in function call.
1303 * mips-tdump.c (print_file_desc): Add cast to enum type.
1304 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
1305 (mark_stabs): Add casts to enum types.
1306 (parse_stabs_common): Add casts to enum types.
16f7ad42 1307
b0907a6c
AN
13082009-05-13 Adam Nemet <anemet@caviumnetworks.com>
1309
1310 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
1311 Check for invalid values of LETTER.
1312
d1c8e08a
TG
13132009-05-13 Taras Glek <tglek@mozilla.com>
1314
16f7ad42
TG
1315 * attribs.c (register_attribute): moved out attribute registration into
1316 register_attribute.
1317 * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
1318 * gcc-plugin.h: Added forward decl for register_attribute.
1319 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
1320 * plugin.c (register_callback, invoke_plugin_callbacks): Added
1321 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 1322
4ed7f970
DK
13232009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
1324
1325 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
1326 values even in sentinel and empty entries.
1327 (ms_printf_flag_specs): Likewise.
1328 (ms_scanf_flag_specs): Likewise.
1329 (ms_strftime_flag_specs): Likewise.
1330 (ms_print_char_table): Likewise.
1331 (ms_scan_char_table): Likewise.
1332 (ms_time_char_table): Likewise.
1333
3d8fa148
DK
13342009-05-13 Doug Kwan <dougkwan@google.com>
1335
1336 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
1337
f06257d3
AN
13382009-05-13 Adam Nemet <anemet@caviumnetworks.com>
1339
1340 * config/mips/mips.md (store): Add attributes for QI and HI.
1341 Update comment.
1342 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
1343 (truncdi<mode>2): ... this new pattern.
1344
fb201767
BH
13452009-05-13 Brad Hards <bradh@kde.org>
1346
1347 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
1348
c7bda60e 13492009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
1350 Ben Elliston <bje@au.ibm.com>
1351
1352 PR middle-end/40035
1353 * dse.c (check_mem_read_rtx): Guard against width == -1.
1354
ce985b43
MM
13552009-05-13 Michael Matz <matz@suse.de>
1356
1357 PR middle-end/39976
1358 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
1359 (trivially_conflicts_p): New function.
1360 (insert_backedge_copies): Use it.
1361
7de1d221
JJ
13622009-05-13 Janis Johnson <janis187@us.ibm.com>
1363
1364 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
1365 (handle_stdc_pragma): Use new enum constant names.
1366 (handle_pragma_float_const_decimal64): Ditto.
1367
bfefafc6
ILT
13682009-05-13 Ian Lance Taylor <iant@google.com>
1369
1370 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
1371 tree.def.
1372
286c4fcb
NS
13732009-05-13 Nathan Sidwell <nathan@codesourcery.com>
1374
1375 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
1376 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
1377 multilibs.
1378 * config/m68k/m68k.h (FL_UCLINUX): Define.
1379
ebaa6ea7
JH
13802009-05-13 Jan Hubicka <jh@suse.cz>
1381
1382 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
1383
2b703e1a
KK
13842009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1385
1386 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
1387 unless -fschedule-insns is specified.
1388
c3537723
KK
13892009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1390
1391 PR target/39561
1392 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
1393 TARGET_EXPAND_CBRANCHDI4.
1394 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
1395 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
1396 (cmpeqdi): Fix comment.
1397
cdeed45a
KK
13982009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1399
1400 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
1401 (sh_legitimate_address_p): Likewise.
1402 * config/sh/sh.c (sh_legitimate_index_p): New.
1403 (sh_legitimate_address_p): Likewise.
1404 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
1405 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
1406 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
1407 (MAYBE_BASE_REGISTER_RTX_P): New macro.
1408 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
1409 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
1410 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
1411 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
1412 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
1413
02f0b13a
JH
14142009-05-12 Jan Hubicka <jh@suse.cz>
1415
1416 * tree-inline.c (estimate_operator_cost): Add operands;
1417 when division happens by constant, it is cheap.
1418 (estimate_num_insns): Loads and stores are not having cost of 0;
1419 EH magic stuff is cheap; when computing runtime cost of switch,
1420 use log2 base of amount of its cases; builtin_expect has cost of 0;
1421 compute cost for moving return value of call.
1422 (init_inline_once): Initialize time_based flags.
1423 * tree-inline.h (eni_weights_d): Add time_based flag.
1424
ecb7f6de
PB
14252009-05-12 Paolo Bonzini <bonzini@gnu.org>
1426
1427 * df-core.c: Update head documentation.
1428
c24151ce
MM
14292009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1430
1431 PR bootstrap/40118
1432 * rs6000.c (rs6000_generate_compare): Use op1b instead of
1433 shadowing exisiting variable op1.
1434
fbdf817d
UB
14352009-05-12 Uros Bizjak <ubizjak@gmail.com>
1436
704bf7c8 1437 PR target/37179
fbdf817d
UB
1438 * config/i386/driver-i386.c (processor_signatures): New enum.
1439 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
1440 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
1441 processor signature to detect geode processor.
1442
5e8d1826
PB
14432009-05-12 Paolo Bonzini <bonzini@gnu.org>
1444
1445 Revert:
1446
1447 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1448
1449 * optabs.c (prepare_cmp_insn): Temporarily disable test that
1450 causes spurious differences between trunk and cond-optab branch.
1451
f90b7a5a
PB
14522009-05-12 Paolo Bonzini <bonzini@gnu.org>
1453
fbdf817d
UB
1454 * dojump.c (compare_from_rtx): Delete.
1455 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
1456 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
1457 if the comparison does not satisfy the predicate; test predicates for
1458 operands 2 and 3 of a cstore pattern. Don't try cstore optab
1459 further if one existing pattern fails.
fbdf817d 1460 * expr.h (compare_from_rtx): Delete.
f90b7a5a 1461 (prepare_operand): Declare it.
fbdf817d 1462 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 1463 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
1464 HAVE_conditional_trap, emit_cmp_insn): Delete.
1465 (can_compare_p): Delete cmp_optab case.
f90b7a5a 1466 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
1467 Accept other parameters by value.
1468 (prepare_operand): Make non-static.
1469 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
1470 other parameters by value. Try to widen operands here based on
1471 an optab_methods argument and looking at cbranch_optab.
1472 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
1473 loop. Use cbranch_optab directly.
1474 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
1475 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
1476 assertion.
1477 (emit_conditional_move, emit_conditional_add): Inline what's needed
1478 of compare_from_rtx, using new prepare_cmp_insn for the rest.
1479 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
1480 with COMPARE. Move cmov_optab and cstore_optab above
1481 with cbranch_optab, move cmp_optab down with ucmp_optab,
1482 remove tst_otpab. Do not initialize trap_rtx.
1483 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
1484 for trap code. Do not check HAVE_conditional_trap. Use
1485 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
1486 * optabs.h (OTI_cmp): Mark as used only for libcalls.
1487 (OTI_ctrap, ctrap_optab): New.
1488 (tst_optab): Delete.
1489 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
1490 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
1491 with lookup of ctrap_optab.
1492 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
1493 setcc_gen_code): Delete.
1494 (ctrap_optab): New.
1495
1496 * combine.c (combine_simplify_rtx, simplify_set): Do not
1497 special case comparing against zero for cc0 machines.
f90b7a5a
PB
1498 * simplify-rtx.c (simplify_binary_operation_1): Never remove
1499 COMPARE on cc0 machines.
1500 (simplify_relational_operation): Return a new expression when
1501 a COMPARE could be removed.
fbdf817d
UB
1502 * final.c (final_scan_insn): Compare cc_status values
1503 against LHS of a (compare FOO (const_int 0)) cc0 source.
1504 Also check if cc_status.value is the full compare.
f90b7a5a 1505
fbdf817d
UB
1506 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
1507 (cstoreMM4): Document.
f90b7a5a 1508 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 1509 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
1510 (Dependent Patterns): Eliminate obsolete information referring to
1511 the old jump optimization phase.
fbdf817d 1512 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
1513 of compares with 0 on cc0 machines.
1514 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
1515 avoiding references to cc0. Remove text about storing operands
1516 in cmpMM.
1517 * doc/tm.texi (Condition Codes): Include blurb on different
1518 condition code representations, separate into subsections for
1519 CC0, MODE_CC and conditional execution.
1520
fbdf817d
UB
1521 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
1522 alpha_emit_setcc): Accept operands and a machine mode.
1523 * config/alpha/alpha.c (alpha_emit_conditional_branch):
1524 Get code/op0/op1 from operands, use machine mode argument
1525 instead of alpha_compare.fp_p. Emit the branch here.
1526 (alpha_emit_setcc): Likewise, and return boolean.
1527 (alpha_emit_conditional_move): Likewise. Assert that
1528 cmp_op_mode == cmp_mode, and simplify accordingly.
1529 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
1530 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
1531 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
1532 Delete.
1533 (stack probe test): Use cbranchdi4.
1534 * config/alpha/predicates.md (alpha_cbranch_operator): New.
1535
1536 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
1537 * config/arc/arc.h (movsicc, movsfcc): Use it.
1538 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
1539 (cbranchsi4, cstoresi4): New.
1540 (cmpsi, bCC and sCC expanders): Remove.
1541
1542 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
1543 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
1544 * config/arm/predicates.md (arm_comparison_operator): Only include
1545 floating-point operators if there is a hardware floating-point unit.
1546 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
1547 deferring to cbranch_cc and cstore_cc respectively.
1548 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
1549 cbranch_cc, cstore_cc): New.
1550 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 1551 arm_compare_op1.
fbdf817d
UB
1552 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
1553
1554 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
1555 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
1556 as an argument.
1557 (adjust_insn_length): Adjust calls.
1558 (avr_reorg): Handle (compare (foo) (const_int 0)).
1559 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
1560 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
1561 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
1562 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
1563 (bCC): Remove.
1564 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
1565 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
1566
fbdf817d
UB
1567 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
1568 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 1569 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
1570 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
1571 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
1572 (bfin_optimize_loop): Use cbranch expander.
1573 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
1574 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
1575 (bfin_bimode_comparison_operator): ... this.
1576 (bfin_direct_comparison_operator): New.
f90b7a5a 1577
fbdf817d
UB
1578 * config/cris/cris.c (cris_normal_notice_update_cc): Look
1579 inside (compare FOO (const_int 0)).
1580 (cris_rtx_costs): Handle ZERO_EXTRACT.
1581 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
1582 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
1583 (*tstdi_v32): Delete.
1584 (*cmpdi_non_v32): Add M alternative for operand 1.
1585 (cmpsi, cmp<mode>): Make private.
1586 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
1587 with COMPARE.
1588 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
1589
1590 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
1591 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
1592 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
1593 (cc_reg_operand): New.
1594 (any_cond): Delete.
fbdf817d
UB
1595 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
1596 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
1597 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
1598 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
1599 crx_expand_scond): Delete.
1600
1601 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
1602 (cbranchsi4): New.
1603 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
1604 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
1605
1606 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
1607 cstoresi4, cstoresf4, cstoredf4): New.
1608 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
1609 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
1610 Receive the entire operands array.
1611 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
1612 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
1613 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
1614 Get test/op0/op1 from the operands array.
1615 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
1616
1617 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
1618 (h8300_expand_store): New.
1619 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
1620 (const_int 0)).
1621 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
1622 (h8300_expand_store): New.
1623 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
1624 or do not try to produce (set (cc0) REG).
1625 (peepholes): Wrap arguments with COMPARE. Add a peephole to
1626 change a compare into a move to a scratch register. Disable some
1627 peepholes when comparing with zero.
1628 (tstsi, tsthi, tstsi, cmpqi): Make private.
1629 (cmphi): Delete.
1630 (bCC, sCC): Delete.
1631 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
1632 cstoresi4): New.
f90b7a5a
PB
1633
1634 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
1635 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
1636 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
1637 (ix86_emit_i387_log1p): Use cbranchxf2.
1638 (ix86_expand_setcc): Return void.
1639 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
1640 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
1641 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
1642 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
1643 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
1644 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
1645 (sCC and bCC expanders): Remove.
1646 (stack_protect_test): Use cbranchcc4.
1647
fbdf817d
UB
1648 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
1649 Delete.
1650 (ia64_expand_compare): Accept three rtx by reference and return void.
1651 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
1652 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
1653 from *expr. Update *expr with the BImode comparison to do.
1654 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
1655 cmptf, bCC, sCC, conditional_trap): Delete.
1656 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
1657 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
1658 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
1659 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
1660 * config/ia64/predicates.md (ia64_cbranch_operator): New.
1661
1662 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
1663 type of last argument.
1664 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
1665 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
1666 use machine mode argument instead of branch_type. Remove dead
1667 code for floating-point comparisons.
1668 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
1669 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
1670 Remove.
1671 (cbranchsi4, cstoresi4): New.
1672 * config/iq2000/predicates.md (reg_or_const_operand): New.
1673
1674 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
1675 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
1676 (b<code>_op): Rewrite to...
1677 (bcc_op): ... this, using match_operator.
1678 (s<code>_op): Rewrite to...
1679 (scc_op): ... this, using match_operator.
1680 (s<code>_24_op): Rewrite to...
1681 (scc_op_24): ... this, using match_operator.
1682 (s<code>_<mode>): Rewrite to...
1683 (cstore<mode>4): ... this, using match_operator.
1684 (s<code>_<mode>_24): Rewrite to...
1685 (cstore<mode>4_24): ... this, using match_operator.
1686 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
1687 m32c_unpend_compare, m32c_expand_scc): Delete.
1688 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
1689 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
1690 (m32c_expand_movcc): Change NE to EQ if necessary.
1691 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
1692
1693 * config/m32r/m32r-protos.h (gen_cond_store): New.
1694 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
1695 (gen_cond_store): New, from sCC patterns.
1696 (m32r_expand_block_move): Use cbranchsi4.
1697 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
1698 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
1699 (cbranchsi4, cstoresi4): New.
1700
1701 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
1702 Delete.
1703 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 1704 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
1705 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
1706 Delete.
1707 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
1708 cmphi, cmpqi, bCC): Delete.
1709 (cbranchsi4, cbranchhi4, cbranchqi4): New.
1710 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
1711 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
1712 sets with COMPARE.
1713
1714 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
1715 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
1716 * config/m68k/constraints.md (H): New.
1717 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
1718 the define_insn below.
1719 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
1720 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
1721 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
1722 patterns): Wrap RHS with COMPARE.
1723 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
1724 (*cmpdi_internal): Name this pattern.
1725 (cmpdi): Change to define_insn.
1726 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
1727 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
1728 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
1729 predicate.
1730 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
1731 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
1732 (conditional_trap): Change to...
1733 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
1734 (*conditional_trap): Use the ordered_comparison_operator and
1735 const1_operand predicates.
1736 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
1737 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
1738 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
1739 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
1740
1741 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
1742 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
1743 (mcore_gen_compare): New.
1744 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
1745 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
1746 (mcore_gen_compare): ... this.
1747 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
1748 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
1749 (stack probe pattern): Use cbranchsi4.
1750
1751 * config/mips/predicates.md (mips_cstore_operator): New.
1752 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
1753 * config/mips/mips.md (any_cond): Delete.
1754 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
1755 always succeed.
1756 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
1757 fixuns_truncsfdi2): Use cbranch patterns.
1758 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
1759 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
1760 Adjust call to mips_expand_conditional_branch.
1761 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
1762 cstore<GPR:mode>4.
1763 * config/mips/mips-protos.h (mips_expand_conditional_branch,
1764 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
1765 * config/mips/mips.c (cmp_operands): Delete.
1766 (mips_emit_compare): Get comparison operands from *op0/*op1.
1767 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
1768 that it succeeds. Use op0/op1 instead of cmp_operands.
1769 (mips_expand_conditional_branch, mips_expand_conditional_move,
1770 mips_expand_conditional_trap): Likewise.
1771 (mips_block_move_loop): Use cbranch patterns.
1772 * config/mips/mips.h (cmp_operands): Delete.
1773
1774 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
1775 (mmix_gen_compare_reg): Just return a register in the right CC mode.
1776 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
1777 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
1778 (*cmpcc_folded): Rename to...
1779 (*cmpdi_folded): this.
1780 (*cmpcc): Rename to...
1781 (*cmps): ... this.
1782 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
1783 (bCC): Remove.
1784 (cbranchdi4): New.
1785 (cbranchdf4): New. Handle invalid comparisons here.
1786 * config/mmix/predicates.md (float_comparison_operator): New.
1787
1788 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
1789 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
1790 * config/mn10300/mn10300.md (tst): Delete.
1791 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
1792 Name these patterns and wrap RHS in a compare.
1793 (*cmpsi): Make this pattern private. Include tst.
1794 (*cmpsf): Make this pattern private.
1795 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
1796 (compare with zero peepholes): Likewise.
1797 (bCC): Remove.
1798 (cbranchsi4, cbranchsf4): New.
1799 (casesi): Use cbranchsi4.
1800
1801 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
1802 hppa_branch_type): Delete.
1803 (return_addr_rtx): Use cbranchsi4.
1804 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
1805 Emit CCFPmode comparison here.
1806 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
1807 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
1808 hppa_branch_type): Delete.
1809 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
1810 (movsicc, movdicc): Remove references to hppa_compare_op0,
1811 hppa_compare_op1 and compare_from_rtx.
1812 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
1813 (casesi): Use cbranchsi4.
1814
1815 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
1816 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
1817 * config/pdp11/pdp11.md (register_or_const0_operand): New.
1818 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
1819 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
1820 (bCC): Delete.
1821 (cbranchdf4, cbranchhi4, cbranchqi4): New.
1822 (*branch, *branch_inverted): New.
1823
1824 * config/picochip/picochip.md (cbranchhi4): Use
1825 ordered_comparison_operator.
1826 (cmphi, bCC): Remove.
1827
1828 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
1829 (trap_comparison_operator): Delete.
1830 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
1831 rs6000_emit_cbranch): Accept mode and operands.
1832 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
1833 rs6000_compare_fp_p): Delete.
1834 (rs6000_generate_compare): Accept mode and comparison. Extract code
1835 and op0/op1 from there. Replace references to rs6000_compare_op0
1836 and rs6000_compare_op1.
1837 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
1838 extract result from passed operands.
1839 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
1840 extract loc from passed operands.
1841 (rs6000_emit_cmove): Likewise.
1842 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
1843 rs6000_compare_fp_p): Delete.
1844 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
1845 (cbranch<GPR>4, cbranch<FP>4): New.
1846 (cstore<mode>4): New. Consolidate here all choices about when to use
1847 portable or specialized sCC sequences.
1848 (stack_protect_test): Use cbranchsi4.
1849 (conditional_trap): Replace with ctrap<GPR>4.
1850 (conditional trap insn): Replace trap_comparison_operator with
1851 ordered_comparison_operator.
1852
1853 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
1854 (s390_emit_prologue): Use ctrap.
1855 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
1856 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
1857 New predicates replacing...
1858 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
1859 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
1860 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
1861 (add<mode>cc): Do not use s390_compare_op0/op1.
1862 (s<code>): Change to...
1863 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
1864 (seq): Change to...
1865 (cstorecc4): ... this. Handle EQ or NE equally.
1866 (*sne): Un-privatize for use in cstorecc4.
1867 (b<code>): Change to...
1868 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
1869 (conditional_trap): Replace with...
1870 (ctrap<GPR>4, ctrap<FP>4): ... these.
1871 (stack_protect): Use cbranchcc4.
1872
1873 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
1874 * config/score/score-protos.h (score_gen_cmp): Delete.
1875 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
1876 (score_block_move-loop): Use cbranchsi4.
1877 * config/score/score.md (cbranchsi4): New.
1878 (cmpsi, bCC): Delete.
1879 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
1880 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1881 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
1882 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1883 * config/score/score3.h (score3_gen_cmp): Delete.
1884 * config/score/score7.h (score7_gen_cmp): Delete.
1885
1886 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
1887 (sh_emit_scc_to_t): ... this. Return void.
1888 (from_compare): Rename to...
1889 (sh_emit_compare_and_branch): ... this.
1890 (sh_emit_compare_and_set): New.
1891 (sh_expand_t_scc): Accept operands.
1892 * config/sh/predicates.md (sh_float_comparison_operator): New.
1893 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
1894 (prepare_scc_operands): Rename to...
1895 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
1896 arguments.
1897 (sh_emit_cheap_store_flag): New.
f90b7a5a 1898 (sh_emit_set_t_insn): New.
fbdf817d
UB
1899 (from_compare): Rename to...
1900 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
1901 handling of TARGET_SH2E floating point to avoid recursive call.
1902 Generate branch here.
1903 (sh_emit_compare_and_set): New.
1904 (sh_expand_t_scc): Get op0/op1 from arguments.
1905 (sh_emit_cheap_store_flag): New.
1906 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
1907 cases.
f90b7a5a 1908 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
1909 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
1910 (movsicc, movdicc): Do nothing when it recreated operands from
1911 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
1912 prepare_scc_operands (now sh_emit_scc_to_t).
1913 (udivdi3): Use cstoresi4.
1914 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
1915 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
1916 (cbranchint4_media, cbranchfp4_media): New.
1917 (casesi): Use cbranchdi4.
1918 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
1919 Delete.
1920 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
1921 (movnegt): Remove second operand.
1922 (cbranchsf4, cbranchdf4): New.
1923 (stack_protect): Use cbranchdi4/cbranchsi4.
1924
1925 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
1926 (gen_compare_reg): Accept comparison, extract part of it to...
1927 (gen_compare_reg_1): ... this.
1928 (gen_compare_operator): Delete.
1929 (gen_v9_scc): Accept separate destination, comparison code and arms.
1930 Do not use sparc_compare_op0/sparc_compare_op1.
1931 (emit_scc_insn, emit_conditional_branch_insn): New.
1932 (emit_v9_brxx): Make static. Remove useless assertion.
1933 (sparc_emit_float_lib_cmp): Return RTL instead of calling
1934 emit_cmp_insn.
1935 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
1936 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
1937 sparc_emit_float_lib_cmp): Adjust prototype.
1938 (emit_scc_insn, emit_conditional_branch_insn): New.
1939 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
1940 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
1941 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
1942 iterators to the top.
1943 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
1944 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 1945 snedi_special_trunc): Delete.
fbdf817d 1946 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 1947 and snedi_special_trunc.
fbdf817d
UB
1948 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
1949 cbranchdi4, cbranch<F:mode>4): New.
1950 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
1951 here. Use gen_compare_reg instead of gen_compare_operator.
1952 (conditional_trap): Replace with...
1953 (ctrapsi4, ctrapdi4): ... this.
1954 (stack_protect_test): Use cbranchcc4.
1955
1956 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
1957 argument to rtx.
1958 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
1959 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
1960 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
1961 from operands[0] or operands[3] depending on is_set.
1962 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
1963 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
1964 cmpdf, bCC), sCC: Remove.
1965 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
1966 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
1967 cstoredf4): New.
1968 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
1969 spu_emit_branch_or_set.
1970
1971 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
1972 Add two arguments.
1973 * config/stormy16/stormy16.h (xstormy16_compare_op0,
1974 xstormy16_compare_op1): Delete.
1975 * config/stormy16/stormy16.c (xstormy16_compare_op0,
1976 xstormy16_compare_op1): Delete.
1977 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
1978 Adjust calls.
1979 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
1980 (cmphi, cmpsi, bCC): Remove.
1981
1982 * config/v850/v850.md (tstsi, cmpsi): Fold into...
1983 (*cmpsi): ... this one.
1984 (cbranchsi4, cstoresi4): New.
1985 (bCC expanders): Delete.
1986 (sCC insns): Fold into...
1987 (*setcc): ... this one.
1988 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
1989 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
1990 (movsicc): Simplify.
1991 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
1992
fbdf817d
UB
1993 * config/vax/vax-protos.h (cond_name): New.
1994 (vax_output_conditional_branch): Remove.
1995 * config/vax/vax.c (cond_name): New.
1996 (vax_output_conditional_branch): Remove.
1997 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
1998 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
1999 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
2000 (bit<VAXint>): Wrap source with (compare).
2001 (b<code> and following unnamed pattern): Rename to *branch and
2002 *branch_reversed. Change macroization to match_operator.
2003 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
2004
2005 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
2006 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
2007 Change last argument to machine_mode.
2008 (xtensa_expand_scc): Add machine_mode argument.
2009 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
2010 (gen_conditional_move, xtensa_expand_conditional_branch,
2011 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
2012 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
2013 Adjust operand numbers.
2014 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
2015 Delete.
2016 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
2017 (cmpsi, cmpsf, b<code>, s<code>): Delete.
2018 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 2019
16670495
PB
20202009-05-12 Paolo Bonzini <bonzini@gnu.org>
2021
2022 * optabs.c (prepare_cmp_insn): Temporarily disable test that
2023 causes spurious differences between trunk and cond-optab branch.
2024
4a4a4e99
AO
20252009-05-12 Alexandre Oliva <aoliva@redhat.com>
2026
2027 PR target/37137
2028 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
2029
72b9acff
AO
20302009-05-12 Alexandre Oliva <aoliva@redhat.com>
2031
2032 * tree.c (iterative_hash_pointer): Delete.
2033 (iterative_hash_expr): Short-circuit handling of NULL pointer.
2034 Hash UIDs and versions of SSA names. Don't special-case built-in
2035 function declarations.
2036
b7dd69ac
ILT
20372009-05-11 Ian Lance Taylor <iant@google.com>
2038
2039 PR bootstrap/40103
2040 * graphite.c: Force -Wc++-compat to only be a warning before
2041 #including "cloog/cloog.h".
2042
ed102b70
MJ
20432009-05-11 Martin Jambor <mjambor@suse.cz>
2044
2045 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
2046
08f1af2e
JH
20472009-05-11 Jan Hubicka <jh@suse.cz>
2048
2049 * tree-ssa-loop-ivcanon.c: Include target.h
2050 (struct loop_size): new structure.
2051 (constant_after_peeling): New predicate.
2052 (tree_estimate_loop_size): New function.
2053 (estimated_unrolled_size): Rewrite for new estimates.
2054 (try_unroll_loop_completely): Use new estimates.
2055 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
2056
a7d39bd3
AP
20572009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
2058
2059 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
2060 libcpp interface change.
2061 (spu_macro_to_expand): Likewise.
2062
f5a1f0d0
PB
20632009-05-11 Paolo Bonzini <bonzini@gnu.org>
2064
2065 PR tree-optimization/40026
2066 * gimplify.c (gimplify_init_constructor): Change initial conditional
2067 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
2068 optimize_compound_literals_in_ctor.
2069
c260f01f
NS
20702009-05-11 Nathan Sidwell <nathan@codesourcery.com>
2071
2072 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
2073 New devices.
2074 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
2075
df398a37
L
20762009-05-11 H.J. Lu <hongjiu.lu@intel.com>
2077
2078 * tree-vect-data-refs.c (vect_analyze_group_access): Use
2079 HOST_WIDE_INT for gap.
2080
4da39468
IR
20812009-05-11 Ira Rosen <irar@il.ibm.com>
2082
2083 PR tree-optimization/40074
2084 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
2085 account in group size and step comparison.
2086
4effdf02
RG
20872009-05-11 Richard Guenther <rguenther@suse.de>
2088
2089 * passes.c (init_optimization_passes): Strip now incorrect comment.
2090 (execute_function_todo): Do not set PROP_alias.
2091 * tree-pass.h (PROP_alias): Remove.
2092 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
2093 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
2094 * tree-nrv.c (pass_return_slot): Likewise.
2095 * tree-object-size.c (pass_object_sizes): Likewise.
2096 * tree-ssa-dom.c (pass_dominator): Likewise.
2097 (pass_phi_only_cprop): Likewise.
2098 * tree-ssa-dse.c (pass_dse): Likewise.
2099 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
2100 (pass_cselim): Likewise.
2101 * tree-ssa-pre.c (pass_pre): Likewise.
2102 (pass_fre): Likewise.
2103 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
2104 * tree-ssa-sink.c (pass_sink_code): Likewise.
2105 * tree-stdarg.c (pass_stdarg): Likewise.
2106 * tree-tailcall.c (pass_tail_calls): Likewise.
2107 * tree-vrp.c (pass_vrp): Likewise.
2108
24b97832
ILT
21092009-05-10 Ian Lance Taylor <iant@google.com>
2110
2111 * basic-block.h (enum profile_status): Break out of struct
2112 control_flow_graph.
2113 * cgraph.h (struct inline_summary): Break out of struct
2114 cgraph_local_info.
2115 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
2116 of struct cgraph_order_sort.
fbdf817d 2117 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
2118 * cse.c (struct branch_path): Break out of struct
2119 cse_basic_block_data.
2120 * except.h (enum eh_region_type): Break out of struct eh_region.
2121 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 2122 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
2123 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
2124 ggc_pch_data.
fbdf817d
UB
2125 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
2126 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
2127 * sched-int.h (enum post_call_group): New enum, broken out of
2128 struct deps.
2129 (struct deps_reg): Break out of struct deps.
2130 * target.h (struct asm_int_op): Break out of struct gcc_target.
2131 * tree-eh.c (struct goto_queue_node): Break out of struct
2132 leh_tf_state.
2133 * tree-inline.h (enum copy_body_cge_which): Break out of
2134 copy_body_data.
2135 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
2136
2137 * c-decl.c (in_struct, struct_types): New static variables.
2138 (pushtag): Add loc parameter. Change all callers.
2139 (lookup_tag): Add ploc parameter. Change all callers.
2140 (check_compound_literal_type): New function.
2141 (parser_xref_tag): Add loc parameter. Change all callers. If
2142 -Wc++-compat, warn about struct/union/enum types defined within a
2143 struct or union.
2144 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
2145 and loc parameters. Change all callers. Change error calls to
2146 error_at, using loc. For a redefinition, if the location of the
2147 original definition is known, report it. Set in_struct and
fbdf817d 2148 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
2149 (finish_struct): Add new parameters enclosing_in_struct and
2150 enclosing_struct_types. Change all callers. Set
2151 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
2152 in the struct. If in a struct, add this struct to struct_types.
2153 (start_enum): Add loc parameter. Change all callers. Use
2154 error_at for errors, using loc. For a redefinition, if the
2155 location of the original definition is known, report it. If in a
2156 struct, add this enum type to struct_types. If -Wc++-compat warn
2157 if in sizeof, typeof, or alignof.
fbdf817d
UB
2158 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
2159 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
2160 (c_parser_enum_specifier): Get enum location for start_enum.
2161 (c_parser_struct_or_union_specifier): Get struct location for
2162 start_struct. Save in_struct and struct_types status between
2163 start_struct and finish_struct.
2164 (c_parser_cast_expression): Get location of cast.
2165 (c_parser_alignof_expression): Get location of type.
2166 (c_parser_postfix_expression): Likewise.
2167 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
2168 parameter. Change all callers. Call check_compound_literal_type.
2169 Use type_loc for error about variable size type.
2170 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
2171 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
2172 (c_cast_expr): Add loc parameter. Change all callers. If
2173 -Wc++-compat, warn about defining a type in a cast.
2174 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
2175 (start_enum, start_struct, finish_struct): Update declarations.
2176 (parser_xref_tag, c_cast_expr): Update declarations.
2177 (check_compound_literal_type): Declare.
2178
7a2738fa
BE
21792009-05-11 Ben Elliston <bje@au.ibm.com>
2180
2181 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
2182 for recent libcpp interface change.
2183 (rs6000_macro_to_expand): Likewise.
2184
af618949
MM
21852009-05-10 Michael Matz <matz@suse.de>
2186
2187 PR target/40031
2188 * config/arm/arm.c (require_pic_register): Emit on entry edge,
2189 not at entry of function.
2190
b7d7a473
RG
21912009-05-10 Richard Guenther <rguenther@suse.de>
2192
2193 PR tree-optimization/40081
2194 Revert
2195 * tree-sra.c (instantiate_element): Instantiate scalar replacements
2196 using the main variant of the element type. Do not fiddle with
2197 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
2198
2199 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
2200 structs with volatile fields.
2201
078c3644
JH
22022009-05-10 Jan Hubicka <jh@suse.cz>
2203
2204 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
2205 (estimate_move_cost): Assert that it does not get called for
2206 VOID_TYPE_P.
078c3644
JH
2207 (estimate_num_insns): Skip VOID types in argument handling.
2208 (optimize_inline_calls): Delete unreachable blocks and verify that
2209 callgraph is valid.
2210
39ff5a96
JH
22112009-05-10 Jan Hubicka <jh@suse.cz>
2212
2213 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
2214 * cgraph.c (cgraph_mark_address_taken_node): New function.
2215 (dump_cgraph_node): Dump new flag.
2216 * cgraph.h (struct cgraph_node): Add address_taken.
2217 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
2218 * ipa.c (cgraph_postorder): Prioritize functions with address taken
2219 since new direct calls can be born.
2220
9a0c6187
JM
22212009-05-10 Joseph Myers <joseph@codesourcery.com>
2222
2223 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
2224 tok->val.node.node.
2225
4b685e14
JH
22262009-05-10 Jan Hubicka <jh@suse.cz>
2227
2228 PR middle-end/40084
fb0be169
EB
2229 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
2230 argument; rewrite.
4b685e14
JH
2231 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
2232 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
2233 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
2234 (fold_marked_statements): Update call to
2235 cgraph_update_edges_for_call_stmt.
4b685e14 2236
29d08eba
JM
22372009-05-10 Joseph Myers <joseph@codesourcery.com>
2238
2239 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
2240 identifiers in diagnostics.
2241 * config/arm/arm.c (arm_handle_fndecl_attribute,
2242 arm_handle_isr_attribute): Likewise.
2243 * config/avr/avr.c (avr_handle_progmem_attribute,
2244 avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
2245 Likewise.
2246 * config/bfin/bfin.c (handle_int_attribute,
2247 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
2248 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
2249 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
2250 Likewise.
2251 * config/darwin.c (darwin_handle_kext_attribute,
2252 darwin_handle_weak_import_attribute): Likewise.
2253 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
2254 h8300_handle_eightbit_data_attribute,
2255 h8300_handle_tiny_data_attribute): Likewise.
2256 * config/i386/i386.c (ix86_handle_cconv_attribute,
2257 ix86_handle_abi_attribute, ix86_handle_struct_attribute):
2258 Likewise.
2259 * config/i386/winnt.c (ix86_handle_shared_attribute,
2260 ix86_handle_selectany_attribute): Likewise.
2261 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
2262 * config/m32c/m32c.c (function_vector_handler): Likewise.
2263 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
2264 m68hc11_handle_fntype_attribute): Likewise.
2265 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
2266 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
2267 * config/mips/mips.c (mips_insert_attributes,
2268 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
2269 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
2270 rs6000_handle_struct_attribute): Likewise.
2271 * config/sh/sh.c (sh_insert_attributes,
2272 sh_handle_resbank_handler_attribute,
2273 sh_handle_interrupt_handler_attribute,
2274 sh2a_handle_function_vector_handler_attribute,
2275 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
2276 Likewise.
2277 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
2278 * config/spu/spu.c (spu_handle_fndecl_attribute,
2279 spu_handle_vector_attribute): Likewise.
2280 * config/stormy16/stormy16.c
2281 (xstormy16_handle_interrupt_attribute): Likewise.
2282 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
2283 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
2284
f41c4af3
JM
22852009-05-10 Joseph Myers <joseph@codesourcery.com>
2286
2287 * pretty-print.h (struct pretty_print_info): Add
2288 translate_identifiers.
2289 (pp_translate_identifiers): New.
2290 (pp_identifier): Only conditionally translate identifier to locale
2291 character set.
2292 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
2293 (pp_base_tree_identifier): Only conditionally translate identifier
2294 to locale character set.
2295 * c-pretty-print.c (M_): Define.
2296 (pp_c_type_specifier, pp_c_primary_expression): Mark English
2297 fragments for conditional translation with M_.
2298 * tree-pretty-print.c (maybe_init_pretty_print): Disable
2299 identifier translation.
2300
896d7dbd
RG
23012009-05-10 Richard Guenther <rguenther@suse.de>
2302
2303 PR tree-optimization/40081
2304 * tree-sra.c (instantiate_element): Instantiate scalar replacements
2305 using the main variant of the element type. Do not fiddle with
2306 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
2307
9a23acef
JH
23082009-05-09 Jan Hubicka <jh@suse.cz>
2309
2310 PR middle-end/40080
2311 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
2312 indirect calls; verify cgraph afterwards.
2313
d563610d
JH
23142009-05-09 Jan Hubicka <jh@suse.cz>
2315
2316 PR bootstrap/40082
2317 * ipa.c (update_inlined_to_pointer): New function.
2318 (cgraph_remove_unreachable_nodes): Use it.
2319
f08a18d0
JH
23202009-05-09 Jan Hubicka <jh@suse.cz>
2321
2322 * tree-eh.c (struct leh_state): Remove prev_try.
2323 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
2324 not track prev_try.
2325 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
2326 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
2327 remove_eh_handler_and_replace, foreach_reachable_handler,
2328 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
2329 * except.h (struct eh_region): Remove eh_region_u_cleanup.
2330 (gen_eh_region_cleanup): Update prototype.
2331
0afd7219
JH
23322009-05-09 Jan Hubicka <jh@suse.cz>
2333
2334 PR middle-end/40043
2335 * except.c (copy_eh_region): Always set prev_try.
2336 (redirect_eh_edge_to_label): Find outer try.
2337 (foreach_reachable_handler): When looking for prev try
2338 handle case where previous try is not going to be taken.
2339
ad6c0864
MM
23402009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
2341
2342 PR tree-optimization/40049
2343 * tree-vect-stmts.c (vectorizable_operation): If the machine has
2344 only vector/vector shifts, convert the type of the constant to the
2345 appropriate type to avoid building incorrect trees, which
2346 eventually have problems with garbage collection.
2347
c94f9067
JM
23482009-05-08 Joseph Myers <joseph@codesourcery.com>
2349
2350 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
2351 -1 for complex floating-point types if honoring signed zeros.
2352
9187e02d
JH
23532009-05-08 Jan Hubicka <jh@suse.cz>
2354
20acb8a2
EB
2355 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
2356 argument; handle correctly when profile is absent.
9187e02d
JH
2357 (build_cgraph_edges): Update.
2358 (rebuild_cgraph_edges): Update.
20acb8a2
EB
2359 * cgraph.c: Do not include varray.h.
2360 (cgraph_set_call_stmt_including_clones): New function.
2361 (cgraph_create_edge_including_clones): Likewise
2362 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
2363 (cgraph_update_edges_for_call_stmt): Handle clones.
2364 (cgraph_remove_node): Handle clone tree.
2365 (cgraph_remove_node_and_inline_clones): New function.
2366 (dump_cgraph_node): Dump clone tree.
2367 (cgraph_clone_node): Handle clone tree.
20acb8a2 2368 (clone_function_name): Bring here from tree-inline.c.
9187e02d 2369 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
2370 * cgraph.h (ipa_replace_map): Move here from ipa.h.
2371 (cgraph_clone_info): New function.
9187e02d 2372 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
2373 (cgraph_remove_node_and_inline_clones,
2374 cgraph_set_call_stmt_including_clones,
2375 cgraph_create_edge_including_clones,
2376 cgraph_create_virtual_clone): Declare.
9187e02d
JH
2377 (cgraph_function_versioning): Use VEC argument.
2378 (compute_call_stmt_bb_frequency): Update prototype.
2379 (cgraph_materialize_all_clones): New function.
2380 * ipa-cp.c (ipcp_update_cloned_node): Remove.
2381 (ipcp_create_replace_map): Update to VECtors.
2382 (ipcp_update_callgraph): Use virtual clones.
2383 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
2384 (ipcp_update_profiling): Do not update local profiling.
2385 (ipcp_insert_stage): Use VECtors and virtual clones.
2386 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
2387 (clone_of_p): New function.
2388 (cgraph_preserve_function_body_p): Use clone tree.
2389 (cgraph_optimize): Materialize clones.
2390 (cgraph_function_versioning): Update for VECtors.
2391 (save_inline_function_body): Use clone tree.
20acb8a2
EB
2392 (cgraph_materialize_clone): New function.
2393 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
2394 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
2395 * ipa.c: Include gimple.h.
2396 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
2397 * ipa-prop.c (ipa_note_param_call): Update call to
2398 compute_call_stmt_bb_frequencycall.
9187e02d 2399 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 2400 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
2401 (copy_bb): Handle updating of clone tree; add new edge when new call
2402 appears.
2403 (expand_call_inline): Be strict about every call having edge.
2404 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
2405 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
2406 (tree_function_versioning): Use VECtors; always remove unreachable
2407 blocks and fold conditionals.
2408 * tree-inline.h: Do not include varray.h.
9187e02d
JH
2409 (tree_function_versioning): Remove.
2410 * Makefile.in (GTFILES): Remove tree-inline.c
2411 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
2412 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
2413 tree.
9187e02d 2414
9b86d6bb
L
24152009-05-08 H.J. Lu <hongjiu.lu@intel.com>
2416 Andrew Morrow <acm@google.com>
2417
2418 PR c/36892
2419 * c-common.c (c_common_attribute_table): Permit deprecated
2420 attribute to take an optional argument.
2421 (handle_deprecated_attribute): If the optional argument to
2422 __attribute__((deprecated)) is not a string ignore the attribute
2423 and emit a warning.
2424
2425 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
2426 * c-typeck.c (build_component_ref): Likewise.
2427 (build_external_ref): Likewise.
2428
2429 * toplev.c (warn_deprecated_use): Add an attribute argument.
2430 Emit the message associated with __attribute__((deprecated)).
2431
2432 * toplev.h (warn_deprecated_use): Updated.
2433
2434 * doc/extend.texi: Document new optional parameter to
2435 __attribute__((deprecated))
2436
82ad047f
ME
24372009-05-08 Michael Eager <eager@eagercon.com>
2438
2439 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
2440 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
2441
788d3075
RG
24422009-05-08 Richard Guenther <rguenther@suse.de>
2443
2444 PR tree-optimization/40062
2445 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
2446 Avoid exponential behavior.
2447
00952e97
PB
24482009-05-08 Paolo Bonzini <bonzini@gnu.org>
2449
2450 PR rtl-optimization/33928
2451 PR 26854
2452 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
2453 process_uses, build_single_def_use_links): New.
2454 (update_df): Update use_def_ref.
2455 (forward_propagate_into): Use get_def_for_use instead of use-def
2456 chains.
2457 (fwprop_init): Call build_single_def_use_links and let it initialize
2458 dataflow.
2459 (fwprop_done): Free use_def_ref.
2460 (fwprop_addr): Eliminate duplicate call to df_set_flags.
2461 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
2462 df_rd_simulate_one_insn): New.
2463 (df_rd_bb_local_compute_process_def): Update head comment.
2464 (df_chain_create_bb): Use the new RD simulation functions.
2465 * df.h (df_rd_simulate_artificial_defs_at_top,
2466 df_rd_simulate_one_insn): New.
2467 * opts.c (decode_options): Enable fwprop at -O1.
2468 * doc/invoke.texi (-fforward-propagate): Document this.
2469
2ca862e9
JM
24702009-05-08 Joseph Myers <joseph@codesourcery.com>
2471
2472 PR c/24581
2473 * c-typeck.c (build_binary_op): Handle arithmetic between one real
2474 and one complex operand specially.
2475 * tree-complex.c (some_nonzerop): Do not identify a real value as
2476 zero if flag_signed_zeros.
2477
3e807ffc
PB
24782009-05-08 Paolo Bonzini <bonzini@gnu.org>
2479
2480 PR rtl-optimization/33928
7925c06c 2481 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 2482
1bfdbb29
PB
24832009-05-08 Paolo Bonzini <bonzini@gnu.org>
2484
2485 PR rtl-optimization/33928
e913423f
EB
2486 * loop-invariant.c (struct use): Add addr_use_p.
2487 (struct def): Add n_addr_uses.
2488 (struct invariant): Add cheap_address.
2489 (create_new_invariant): Set cheap_address.
2490 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
2491 (record_uses): Pass df_ref to record_use.
2492 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
2493 used only as such.
1bfdbb29 2494
702cb2a0
KK
24952009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
2496
2497 * config/sh/sh.c: Do not include c-pragma.h.
2498
5e8df753
AP
24992009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
2500
2501 * config/spu/spu.c: Remove include of c-common.h.
2502
6ec637a4
JJ
25032009-05-07 Janis Johnson <janis187@us.ibm.com>
2504
2505 PR c/39037
2506 * c-common.h (mark_valid_location_for_stdc_pragma,
2507 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
2508 clear_float_const_decimal64, float_const_decimal64_p): New.
2509 * c.opt (Wunsuffixed-float-constants): New.
2510 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
2511 unsuffixed float constant, handle new warning.
2512 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
2513 * c-decl.c (c_scope): New flag float_const_decimal64.
2514 (set_float_const_decimal64, clear_float_const_decimal64,
2515 float_const_decimal64_p): New.
2516 (push_scope): Set new flag.
2517 * c-parser.c (c_parser_translation_unit): Mark when it's valid
2518 to use STDC pragmas.
2519 (c_parser_external_declaration): Ditto.
2520 (c_parser_compound_statement_nostart): Ditto.
2521 * c-pragma.c (valid_location_for_stdc_pragma,
2522 mark_valid_location_for_stdc_pragma,
2523 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
2524 handle_pragma_float_const_decimal64): New.
2525 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
2526 * cp/semantics.c (valid_location_for_stdc_pragma_p,
2527 set_float_const_decimal64, clear_float_const_decimal64,
2528 float_const_decimal64_p): New dummy functions.
2529 * doc/extend.texi (Decimal Float): Remove statement that the
2530 pragma, and suffix for double constants, are not supported.
2531 * doc/invoke.texi (Warning Options): List new option.
2532 (-Wunsuffixed-float-constants): New.
2533
45b9b2e9
SB
25342009-05-08 Steven Bosscher <steven@gcc.gnu.org>
2535
2536 * config/i386/i386.c: Do not include c-common.h.
2537
e71da632
MH
25382009-05-07 Mark Heffernan <meheff@google.com>
2539
2540 * doc/invoke.texi (Debugging Options): Document change of debugging
2541 dump location.
e913423f 2542 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
2543 aux_base_name directory.
2544
fe4c7bc6
HS
25452009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2546
2547 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
2548 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
2549
3b3e44eb
RAE
25502009-05-07 Rafael Avila de Espindola <espindola@google.com>
2551
2552 * Makefile.in (install-plugin): Simplify a bit.
2553
fac41238
PB
25542009-05-07 Paolo Bonzini <bonzini@gnu.org>
2555
2556 * Makefile.in (OBJS-common): Add regcprop.o.
2557 (regcprop.o): New.
2558 * timevar.def (TV_CPROP_REGISTERS): New.
2559 * regrename.c (regrename_optimize): Return 0.
2560 (rest_of_handle_regrename): Delete.
2561 (pass_rename_registers): Point to regrename_optimize.
2562 (struct value_data_entry, struct value_data,
2563 kill_value_one_regno, kill_value_regno, kill_value,
2564 set_value_regno, init_value_data, kill_clobbered_value,
2565 kill_set_value, kill_autoinc_value, copy_value,
2566 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
2567 replace_oldest_value_reg, replace_oldest_value_addr,
2568 replace_oldest_value_mem, copyprop_hardreg_forward_1,
2569 debug_value_data, validate_value_data): Move...
2570 * regcprop.c: ... here.
2571 (rest_of_handle_cprop): Delete.
2572 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
2573
472e0df9
JJ
25742009-05-07 Jakub Jelinek <jakub@redhat.com>
2575
2576 PR middle-end/40057
2577 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
2578 GEN_INT for 1 << bitnum.
2579 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
2580 build_int_cst_type.
2581
0d50d55a
UB
25822009-05-07 Uros Bizjak <ubizjak@gmail.com>
2583
2584 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 2585 Remove wrong description of "nand" operation.
0d50d55a 2586
22f597f1
RG
25872009-05-06 Richard Guenther <rguenther@suse.de>
2588 Adam Nemet <anemet@caviumnetworks.com>
2589
2590 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
2591 comment. Add that if LHS is not a gimple register, then RHS1 has
2592 to be a single object (GIMPLE_SINGLE_RHS).
2593
641cac0b
AN
25942009-05-06 Adam Nemet <anemet@caviumnetworks.com>
2595
2596 * expr.c (get_def_for_expr): Move it up in the file.
2597 (store_field): When expanding a bit-field store, look at the
2598 defining gimple stmt for the masking conversion.
2599
5a5c6435
JJ
26002009-05-06 Janis Johnson <janis187@us.ibm.com>
2601
2602 PR middle-end/39986
2603 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
2604 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
2605 32-bit memcpy into long.
2606
96474f36
JJ
26072009-05-06 Jakub Jelinek <jakub@redhat.com>
2608
2609 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
2610 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
2611 new_reg_loc_descr.
2612 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
2613 instead of appending DW_OP_deref*.
2614
529ff441
MM
26152009-05-06 Michael Matz <matz@suse.de>
2616
2617 PR middle-end/40021
2618 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
2619 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
2620
9419a9fd
RAE
26212009-05-06 Rafael Avila de Espindola <espindola@google.com>
2622
2623 * Makefile.in (install-plugin): Fix srcdir handling.
2624
fff1894c
AB
26252009-05-06 Andrey Belevantsev <abel@ispras.ru>
2626
2627 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
2628 when processing for not_regs_needed bitmap.
2629 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
2630 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
2631 handling it for rhs.
2632
700ae70c
L
26332009-05-06 H.J. Lu <hongjiu.lu@intel.com>
2634
ab3426a7 2635 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 2636 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
2637 * config/i386/predicates.md (incdec_operand): Likewise.
2638 (aligned_operand): Likewise.
2639 * config/i386/sse.md (divv8sf3): Likewise.
2640 (sqrtv8sf2): Likewise.
2641
67341fb5
L
26422009-05-06 H.J. Lu <hongjiu.lu@intel.com>
2643
2644 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
2645
2646 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
2647
87946f42
L
26482009-05-06 H.J. Lu <hongjiu.lu@intel.com>
2649
2650 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
2651 ssemodesuffixf2c with avxmodesuffixf2c.
2652
1202aec1
JM
26532009-05-06 Joseph Myers <joseph@codesourcery.com>
2654
2655 PR c/40032
aa016ff7 2656 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 2657
6e57a01d
JJ
26582009-05-05 Jakub Jelinek <jakub@redhat.com>
2659
2660 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
2661 (struct tree_base): Adjust spacing for 8 bit boundaries.
2662 (struct tree_decl_common): Add decl_by_reference_flag bit.
2663 (DECL_BY_REFERENCE): Adjust.
2664 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
2665 print DECL_BY_REFERENCE bit.
2666 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
2667 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
2668 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
2669 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
2670 unconditionally.
2671
32f579f6
JJ
2672 PR middle-end/39666
2673 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
2674 range of the type, but default label is missing, add it with one
2675 of the existing labels instead of adding a new label for it.
2676
617ab743
JM
26772009-05-05 Joseph Myers <joseph@codesourcery.com>
2678
2679 * dwarf.h: Remove.
2680
bf016de8
RAE
26812009-05-05 Rafael Avila de Espindola <espindola@google.com>
2682
2683 * Makefile.in (enable_plugin, plugin_includedir): New.
2684 (install): Depend on install-plugin.
2685 (PLUGIN_HEADERS): New.
2686 (install-plugin): New.
2687 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
2688
7f8fdb9f
RG
26892009-05-05 Richard Guenther <rguenther@suse.de>
2690
2691 PR tree-optimization/40022
2692 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
2693 the only vuse.
2694 (phivn_valid_p): Fix tuplification error, simplify.
2695 (phiprop_insert_phi): Add dumps.
2696 (propagate_with_phi): Simplify.
2697
8d972839
RG
26982009-05-05 Richard Guenther <rguenther@suse.de>
2699
2700 PR middle-end/40023
aa016ff7 2701 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 2702
66ba9b0b
SZ
27032009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
2704
2705 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
2706 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
2707 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
2708 block_ultimate_origin): Rearrange the declarations line to match the
2709 comment that indicates the .c file which the functions are defined.
2710 (dwarf2out_*, set_decl_rtl): Add comment.
2711 (get_base_address): Adjust comment.
2712 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
2713 declarations line and add comment.
2714 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 2715
4f1e4960
JM
27162009-05-04 Joseph Myers <joseph@codesourcery.com>
2717
2718 * attribs.c (decl_attributes): Use %qE for identifiers in
2719 diagnostics.
2720 * cgraphunit.c (verify_cgraph_node): Translate function names to
2721 locale character set in diagnostics.
2722 * coverage.c (get_coverage_counts): Use %qE for identifiers in
2723 diagnostics.
2724 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
2725 Document that functions are named in UTF-8.
2726 * expr.c (expand_expr_real_1): Translate function names to locale
2727 character set in diagnostics.
2728 * gimplify.c (omp_notice_variable, omp_is_private,
2729 gimplify_scan_omp_clauses): Use %qE for identifiers in
2730 diagnostics.
2731 * langhooks.c (lhd_print_error_function): Translate function names
2732 to locale character set.
2733 * langhooks.h (decl_printable_name): Document that return value is
2734 in internal character set.
2735 * stmt.c: Include pretty-print.h
2736 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
2737 diagnostics.
2738 (resolve_operand_name_1): Translate named operand name to locale
2739 character set.
2740 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
2741 diagnostics.
2742 * toplev.c (announce_function): Translate function names to locale
2743 character set.
2744 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
2745 (default_tree_printer): Use pp_identifier or translate identifiers
2746 to locale character set. Mark "<anonymous>" for translation.
2747 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
2748 for identifiers in diagnostics.
2749 * tree.c (handle_dll_attribute): Use %qE for identifiers in
2750 diagnostics.
2751 * varasm.c (output_constructor): Use %qE for identifiers in
2752 diagnostics.
2753
40540e68
RAE
27542009-05-04 Rafael Avila de Espindola <espindola@google.com>
2755
2756 * configure.ac: use ` ` instead of $()
2757 * configure: Regenerate.
2758
33fc884c
BE
27592009-05-05 Ben Elliston <bje@au.ibm.com>
2760
2761 * config/pa/linux-atomic.c: Eliminate conditional include of
2762 errno.h on non-LP64 systems to simplify build requirements.
2763
88388a52
JM
27642009-05-04 Joseph Myers <joseph@codesourcery.com>
2765
2766 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
2767 diagnostics.
2768 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
2769 and pass value to identifier_to_locale.
2770 (warn_variable_length_array): Make name a tree.
2771 (grokdeclarator): Separate diagnostic texts for named and unnamed
2772 declarators. Use %qE for named declarators.
2773 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
2774 diagnostics.
2775 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
2776 identifiers in diagnostics.
2777 * c-typeck.c (push_member_name, start_init): Pass identifiers to
2778 identifier_to_locale. Mark "anonymous" strings for translation.
2779
960c5c79
ME
27802009-05-04 Michael Eager <eager@eagercon.com>
2781
2782 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 2783 address for DImode/DFmode only if double-precision FP regs.
960c5c79 2784
d083fbba
ME
27852009-05-04 Michael Eager <eager@eagercon.com>
2786
2787 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
2788 TARGET_SINGLE_FLOAT check.
2789
c3ba8d32
ME
27902009-05-04 Michael Eager <eager@eagercon.com>
2791
2792 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
2793
edce9f18
ME
27942009-05-04 Michael Eager <eager@eagercon.com>
2795
2796 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
2797 * config/rs6000/t-xilinx: New
2798
506d7b68
PB
27992009-05-04 Paolo Bonzini <bonzini@gnu.org>
2800
e913423f 2801 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
2802 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
2803 * gcc/explow.c (memory_address): Use target hook.
2804 * gcc/targhooks.c (default_legitimize_address): New.
2805 * gcc/targhooks.h (default_legitimize_address): New.
2806 * gcc/target.h (legitimize_address): New.
2807 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
2808 (TARGET_INITIALIZER): Include it.
2809 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
2810
2811 * config/bfin/bfin-protos.h (legitimize_address): Remove.
2812 * config/bfin/bfin.c (legitimize_address): Remove.
2813 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
2814 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
2815 Remove.
506d7b68
PB
2816 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
2817 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
2818
2819 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
2820 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
2821 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
2822 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
2823 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
2824 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
2825 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
2826 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
2827 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
2828 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
2829 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
2830 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
2831 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
2832 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
2833 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
2834 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
2835 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
2836 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
2837 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
2838 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
2839 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
2840 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
2841 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
2842
2843 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
2844 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
2845 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
2846 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
2847 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
2848 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
2849 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
2850 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
2851 (thumb_legitimize_address): Delete.
2852 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
2853 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
2854 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
2855 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
2856 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
2857 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
2858 Delete.
2859 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
2860 Delete.
506d7b68
PB
2861
2862 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
2863 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
2864 * config/m32r/m32r.c (m32r_legitimize_address): New.
2865 * config/m68k/m68k.c (m68k_legitimize_address): New.
2866 * config/score/score.c (score_legitimize_address): Standardize.
2867 * config/score/score3.c (score3_legitimize_address): Standardize.
2868 * config/score/score3.h (score3_legitimize_address): Adjust.
2869 * config/score/score7.c (score7_legitimize_address): Standardize.
2870 * config/score/score7.h (score7_legitimize_address): Adjust.
2871 * config/sh/sh.c (sh_legitimize_address): New.
2872 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
2873
2874 * gcc/config/s390/s390.c (legitimize_address): Rename to...
2875 (s390_legitimize_address): ... this.
2876 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
2877 (sparc_legitimize_address): ... this.
2878 * gcc/config/i386/i386.c (legitimize_address): Rename to...
2879 (ix86_legitimize_address): ... this.
2880 * gcc/config/avr/avr.c (legitimize_address): Rename to...
2881 (avr_legitimize_address): ... this.
2882 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
2883 (mn10300_legitimize_address): ... this.
2884 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
2885 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
2886 (alpha_expand_mov): Adjust call.
2887
2888 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
2889 * config/spu/spu.c (spu_legitimize_address): Likewise.
2890 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
2891 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
2892
a3af5087
JM
28932009-05-04 Joseph Myers <joseph@codesourcery.com>
2894
2895 * intl.c (locale_encoding, locale_utf8): New.
2896 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
2897 * intl.h (locale_encoding, locale_utf8): Declare.
2898 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
2899 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
2900 New.
2901 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
2902 argument.
2903 (pp_tree_identifier): Define to call pp_base_tree_identifier.
2904 (pp_base_tree_identifier): Declare as function.
2905 (identifier_to_locale): Declare.
2906 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 2907 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 2908
ea5cd5f1
RG
29092009-05-04 Richard Guenther <rguenther@suse.de>
2910
2911 PR middle-end/40015
2912 * builtins.c (fold_builtin_memory_op): Do not decay to element
2913 type if the size matches the whole array.
2914
ddc2690a
KH
29152009-05-04 Kazu Hirata <kazu@codesourcery.com>
2916
2917 * expmed.c (synth_mult): When trying out a shift, pass the result
2918 of a signed shift.
2919
ef268d34
KH
29202009-05-04 Kazu Hirata <kazu@codesourcery.com>
2921
2922 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
2923 (shiftsub1_cost): New.
2924 (init_expmed): Compute shiftsub1_cost.
2925 (synth_mult): Optimize multiplications by constants of the form
2926 -(2^^m-1) for some constant positive integer m.
2927
255d3827
RG
29282009-05-03 Richard Guenther <rguenther@suse.de>
2929
2930 PR c/39983
2931 * c-typeck.c (array_to_pointer_conversion): Do not built
2932 ADDR_EXPRs of arrays of pointer-to-element type.
2933 * c-gimplify.c (c_gimplify_expr): Revert change fixing
2934 up wrong ADDR_EXPRs after-the-fact.
2935 * c-common.c (strict_aliasing_warning): Strip pointer
2936 conversions for obtaining the original type.
2937 * builtins.c (fold_builtin_memset): Handle array types.
2938 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
2939 and array types
2940
16c33770
RG
29412009-05-03 Richard Guenther <rguenther@suse.de>
2942
2943 PR middle-end/23329
2944 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
2945 Do not lose casts from array types with unknown extent to array
2946 types with known extent.
2947 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
2948 alias set compatibility.
2949
62a67c94
MLI
29502009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
2951
2952 * flags.h (extra_warnings): Delete.
2953 * toplev.c (process_options): Handle Wuninitialized here.
2954 * opts.c (extra_warnings): Delete.
2955 (set_Wextra): Delete.
2956 (common_handle_option): -Wextra can be handled automatically.
2957 * c-opts.c (c_common_handle_option): Delete obsolete code.
2958 (c_common_post_options): Simplify comment.
2959 * common.opt (W): Add Var.
2960 (Wextra): Add Var.
2961 (Wuninitialized): Initialize to -1.
2962
8c7926c4
AN
29632009-05-03 Adam Nemet <anemet@caviumnetworks.com>
2964 Richard Guenther <rguenther@suse.de>
2965
2966 * expr.c (get_def_for_expr): New function.
2967 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
2968 SSA rather than trees.
2969 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
2970 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
2971
fa5da7de
JM
29722009-05-03 Joseph Myers <joseph@codesourcery.com>
2973
2974 * c-common.c (reswords): Add _Imaginary.
2975 * c-common.c (enum rid): Add RID_IMAGINARY.
2976
2ddd5020
PB
29772009-05-03 Paolo Bonzini <bonzini@gnu.org>
2978
2979 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
2980 Patch by Richard Guenther.
2981
aea88c05
AS
29822009-05-03 Anatoly Sokolov <aesok@post.ru>
2983
2984 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
2985 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
2986 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
2987 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
2988 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
2989 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
2990 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
2991 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
2992 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
2993 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
2994 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
2995 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
2996 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
2997 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
2998 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
2999 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
3000 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
3001 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
3002
85e59f3a
RG
30032009-05-02 Richard Guenther <rguenther@suse.de>
3004
3005 PR tree-optimization/39940
3006 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
3007 doing so.
3008
4636b850
RG
30092009-05-02 Richard Guenther <rguenther@suse.de>
3010
3011 PR middle-end/40001
3012 * tree-ssa.c (execute_update_addresses_taken): Properly check
3013 if we can mark a variable DECL_GIMPLE_REG_P.
3014 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
3015 back to the end of the function.
3016 (is_gimple_reg_type): Remove complex type special casing.
3017 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
3018 if not optimizing.
3019
5e10cb5a
BE
30202009-05-02 Ben Elliston <bje@au.ibm.com>
3021
3022 * doc/collect2.texi (Collect2): Document search path behaviour
3023 when configured with --with-ld.
3024
048bf48b
JH
30252009-05-02 Jan Hubicka <jh@suse.cz>
3026
3027 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
3028 parameter; update callers.
aa016ff7
UB
3029 (coalesce_cost_edge): EH edges are costier because they needs
3030 splitting even if not critical and even more costier when there are
3031 multiple EH predecestors.
048bf48b 3032
d5c5f9ab
JH
30332009-05-02 Jan Hubicka <jh@suse.cz>
3034
3035 * except.c (remove_eh_handler_and_replace): Handle updating after
3036 removing TRY blocks.
3037
2ed1959a
EB
30382009-05-02 Eric Botcazou <ebotcazou@adacore.com>
3039
3040 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
3041
d363a7e7
SB
30422009-05-02 Steven Bosscher <steven@gcc.gnu.org>
3043
3044 * varasm.c: Do not include c-pragma.h.
3045 * attribs.c: Do not incude c-common.h.
3046
9c3d55b4
MM
30472009-05-01 Michael Matz <matz@suse.de>
3048
3049 * calls.c (initialize_argument_information): Handle SSA names like
3050 decls with a non MEM_P DECL_RTL.
3051
ea264ca5
SB
30522009-05-01 Steven Bosscher <steven@gcc.gnu.org>
3053
3054 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
3055 * ipa-utils.c: Likewise.
3056 * ipa-type-escape.c: Likewise.
3057 * cgraphunit.c Do not include c-common.h.
3058 * ipa-pure-const.c: Likewise.
3059 * tree-if-conv.c: Likewise.
3060 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
3061 * ipa-struct-reorg.c: Likewise.
3062 * tree-nomudflap.c: Likewise.
3063 * tree-ssa-structalias.c: Likewise.
3064
6c5d4d1a
SB
30652009-05-01 Steven Bosscher <steven@gcc.gnu.org>
3066
3067 * store-motion.c: Many cleanups to make this pass a first-class
3068 citizen instead of an appendix to gcse load motion. Add TODO list
3069 to make this pass faster/cleaner/better.
3070
3071 (struct ls_expr): Post gcse.c-split cleanups.
3072 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
3073 "stores" field to "avail_stores".
3074 (pre_ldst_mems): Rename to store_motion_mems.
3075 (pre_ldst_table): Rename to store_motion_mems_table.
3076 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
3077 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
3078 (ldst_entry): Rename to st_expr_entry, update users.
3079 (free_ldst_entry): Rename to free_st_expr_entry, update users.
3080 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
3081 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
3082 update caller.
6c5d4d1a
SB
3083 (first_ls_expr): Rename to first_st_expr, update users.
3084 (next_ls_expr): Rename to next_st_expr, update users.
3085 (print_ldst_list): Rename to print_store_motion_mems. Print names of
3086 fields properly for store motion instead of names inherited from load
3087 motion in gcse.c.
3088 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
3089 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
3090 are done with it.
3091
3092 (ae_kill): Rename to st_kill, update users.
3093 (ae_gen): Rename to st_avloc, update users.
3094 (transp): Rename to st_transp, update users.
3095 (pre_insert_map): Rename to st_insert_map, update users.
3096 (pre_delete_map): Rename to st_delete_map, update users.
3097 (insert_store, build_store_vectors, free_store_memory,
3098 one_store_motion_pass): Update for abovementioned changes.
3099
3100 (gcse_subst_count, gcse_create_count): Remove.
3101 (one_store_motion_pass): New statistics counters "n_stores_deleted"
3102 and "n_stores_created", local variables.
3103
3104 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
3105 use for_each_rtx.
3106
3107 (regvec, compute_store_table_current_insn): Remove.
3108 (reg_set_info, reg_clear_last_set): Remove.
3109 (compute_store_table): Use DF caches instead of local dataflow
3110 solvers.
3111
b02cec6e
JM
31122009-05-01 Joseph Myers <joseph@codesourcery.com>
3113
3114 * c-objc-common.c (c_tree_printer): Print identifiers with
3115 pp_identifier, not pp_string. Mark "({anonymous})" for
3116 translation.
3117 * c-pretty-print.c (pp_c_ws_string): New.
3118 (pp_c_cv_qualifier, pp_c_type_specifier,
3119 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
3120 pp_c_storage_class_specifier, pp_c_function_specifier,
3121 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
3122 pp_c_primary_expression, pp_c_postfix_expression,
3123 pp_c_unary_expression, pp_c_shift_expression,
3124 pp_c_relational_expression, pp_c_equality_expression,
3125 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
3126 use pp_string and pp_c_ws_string in place of pp_identifier and
3127 pp_c_identifier for non-identifiers. Mark English strings for
3128 translation.
3129 * c-pretty-print.h (pp_c_ws_string): Declare.
3130
cd533689
PP
31312009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
3132 Roland McGrath <roland@redhat.com>
3133
aa016ff7 3134 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
3135 (ENABLE_LD_BUILDID): New configuration option.
3136 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
3137 (LINK_BUILDID_SPEC): New macro.
3138 (init_spec): If defined, prepend it between LINK_EH_SPEC and
3139 link_spec.
3140 * doc/install.texi: Document --enable-linker-build-id option.
3141 * configure: Rebuild.
3142 * config.in: Rebuild.
3143
ba6adec4
AN
31442009-04-30 Adam Nemet <anemet@caviumnetworks.com>
3145
3146 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
3147 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
3148 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
3149 MIPS_GP_SAVE_AREA_SIZE.
3150 * config/mips/mips.c (struct mips_frame_info): Update comment
3151 before arg_pointer_offset and hard_frame_pointer_offset.
3152 (mips_compute_frame_info): Update diagram before function: to
3153 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
3154 indicate the position of frame_pointer_rtx with -fstack-protector and
3155 to show args_size. Don't allocate cprestore area for leaf functions
3156 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
3157 cprestore_size.
3158 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
3159
48f5b722
MM
31602009-04-30 Michael Matz <matz@suse.de>
3161
ba6adec4
AN
3162 PR tree-optimization/39955
3163 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 3164
b65d6744
DK
31652009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
3166
3167 * ira.c (setup_cover_and_important_classes): Use safe macro
3168 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
3169 directly.
3170 * genpreds.c (write_tm_preds_h): Output suitable definition of
3171 REG_CLASS_FOR_CONSTRAINT.
3172
f136c8ae
RAE
31732009-04-30 Rafael Avila de Espindola <espindola@google.com>
3174
3175 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
3176 instead of an int.
3177 * bitmap.c (bitmap_descriptor): Likewise.
3178 * ggc-common.c (loc_descriptor): Likewise.
3179 * varray.c (varray_descriptor): Likewise.
3180 * vec.c (vec_descriptor): Likewise.
3181
43fcece8 31822009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
3183
3184 * Makefile.in (dce.o): Add $(EXCEPT_H).
3185 * dce.c: Include except.h and delete redundant vector definitions.
3186 (deletable_insn_p): Return false for non-call insns that can throw
3187 if DF is running.
3188
df35c271
SB
31892009-04-30 Steven Bosscher <steven@gcc.gnu.org>
3190
3191 * gcse.c (ae_gen): Remove.
3192 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
3193 and make non-static function to make it available in store-motion.c.
3194 Update call sites with search-and-replace.
3195 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
3196 extract_mentioned_regs, extract_mentioned_regs_helper,
3197 find_moveable_store, compute_store_table, load_kills_store, find_loads,
3198 store_killed_in_insn, store_killed_after, store_killed_before,
3199 build_store_vectors, insert_insn_start_basic_block, insert-store,
3200 remove_reachable_equiv_notes, replace_store_insn, delete_store,
3201 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
3202 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
3203 * store-motion.c: ...new file. Also copy data structures from gcse.c
3204 and clean up to remove parts not used by store motion.
3205 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
3206 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
3207
f711a87a
RR
32082009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3209
3210 PR target/38571
3211 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
3212 when optimizing for size.
3213
fa5ed76e
HPN
32142009-04-30 Hans-Peter Nilsson <hp@axis.com>
3215
3216 * gcse.c (gcse_constant_p): Fix typo in last change.
3217
0acbbdb0
RAE
32182009-04-30 Rafael Avila de Espindola <espindola@google.com>
3219
3220 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
3221
82f5c05d
AK
32222009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
3223
3224 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
3225
6d8f135b
JW
32262009-04-29 James E. Wilson <wilson@codesourcery.com>
3227
3228 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
3229 CONST_HIGH_PART result.
3230
c21ca196
AS
32312009-04-29 Anatoly Sokolov <aesok@post.ru>
3232
3233 * config/avr/avr.c (initial_elimination_offset): Rename to
3234 avr_initial_elimination_offset.
3235 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
3236 change return type to bool.
3237 (avr_can_eliminate): New function.
3238 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
3239 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
3240 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 3241 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
3242 avr_initial_elimination_offset.
3243 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
3244 (avr_initial_elimination_offset): Define.
3245
2a34bece 32462009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 3247 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
3248
3249 PR rtl-optimization/39938
3250 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
3251 * cfgrtl.c: Include insn-attr.h.
3252 (rest_of_pass_free_cfg): New function.
3253 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
3254 * resource.c (init_resource_info): Remove call to df_analyze.
3255
5dc7911e
RG
32562009-04-29 Richard Guenther <rguenther@suse.de>
3257
3258 PR target/39943
3259 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
3260 allow conversion to signed integers.
3261
1fe479fd
RG
32622009-04-29 Richard Guenther <rguenther@suse.de>
3263
3264 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
3265 shifts of floating point vectors if the shift amount is
3266 a constant multiple of the element size.
3267
8e001680
AK
32682009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
3269 Michael Matz <matz@suse.de>
3270
3271 PR middle-end/39927
3272 PR bootstrap/39929
3273 * tree-outof-ssa.c (emit_partition_copy): New function.
3274 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
3275 insert_part_to_rtx_on_edge): Perform the partition base var
3276 copy using emit_partition_copy.
3277 (insert_value_copy_on_edge): Convert constants to the right mode.
3278 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
3279 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
3280
e50e3081
BS
32812009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3282
3283 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
3284 scan backwards to try to find a constant to initialize it.
3285
4e5d521b
BS
3286 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
3287 insn before the loop_end instruction, don't look past labels.
3288
7c90021d
RG
32892009-04-29 Richard Guenther <rguenther@suse.de>
3290
3291 PR middle-end/39937
3292 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
3293 loose type conversions.
3294 (forward_propagate_addr_expr): Fix tuplification bug. Remove
3295 stmts only if there are no uses of its definition.
3296
97a988bc
BS
32972009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3298
3299 * config/bfin/bfin.h (splitting_loops): Declare.
3300 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
3301 Reorder bit definitions to be ascending.
3302 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
3303 * config/bfin/bfin.c (splitting_loops): New variable.
3304 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
3305 (struct loop_info): Remove members INIT and LOOP_INIT.
3306 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
3307 the LSETUP sequence. Allow LC to be loaded from any register, but
3308 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
3309 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
3310 set to 1.
3311 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
3312 of reload_completed.
aa016ff7 3313
97a988bc
BS
3314 From Jie Zhang:
3315 * config/bfin/bfin.md (movsi_insn): Refine constraints.
3316
0c463e16
RAE
33172009-04-29 Rafael Avila de Espindola <espindola@google.com>
3318
3319 * Makefile.in (PLUGIN_VERSION_H): New.
3320 (OBJS-common): Remove plugin-version.o.
3321 (plugin.o): Depend on (PLUGIN_VERSION_H).
3322 (plugin-version.o): Remove.
3323 * configure: Regenerate
3324 * configure.ac: Create plugin-version.h.
3325 * gcc-plugin.h (plugin_gcc_version): Remove.
3326 (plugin_default_version_check): Change signature.
3327 * plugin-version.c: Remove.
3328 * plugin.c: Include plugin-version.h.
3329 (str_plugin_gcc_version_name): Remove.
3330 (try_init_one_plugin): Pass gcc version to plugin_init.
3331 (plugin_default_version_check): Both gcc and plugin versions are now
3332 arguments.
3333
307e7eab
BS
33342009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3335
3336 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
3337 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
3338 Remove special case testing for last insn of inner loops. Don't fail
3339 if the loop ends with a jump, emit an extra nop instead.
307e7eab 3340
c5d96723
BS
3341 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
3342 DREGS rather than comparing directly. Remove code that tries to
3343 account for latencies.
3344
de0b4ad5
RG
33452009-04-29 Richard Guenther <rguenther@suse.de>
3346
3347 PR tree-optimization/39941
3348 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
3349 eliminating an indirect call.
3350
3a19701a
RG
33512009-04-29 Richard Guenther <rguenther@suse.de>
3352
3353 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
3354 parameter. Allow invariants as base if !require_lvalue.
3355 (verify_gimple_assign_single): Adjust.
3356
a0a31d1e
BS
33572009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3358
3359 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
3360 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
3361 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
3362 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
3363 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
3364 a VEC_SELECT.
aa016ff7
UB
3365 * config/bfin/bfin.c (bfin_expand_builtin,
3366 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 3367
795bd26a
RG
33682009-04-28 Richard Guenther <rguenther@suse.de>
3369
3370 * tree-vect-loop.c (get_initial_def_for_induction): Use
3371 correct types for pointer increment.
3372
04be270f
KG
33732009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3374
3375 * toplev.c (print_version): Update GMP version string calculation.
3376
e1a3b85c
EB
33772009-04-28 Eric Botcazou <ebotcazou@adacore.com>
3378
3379 PR rtl-optimization/39938
3380 * resource.c (init_resource_info): Add call to df_analyze.
3381
8224166e
UB
33822009-04-28 Uros Bizjak <ubizjak@gmail.com>
3383
3384 * config/alpha/alpha.md (usegp): Cast the result of
3385 alpha_find_lo_sum_using_gp to enum attr_usegp.
3386 * config/alpha/alpha.c (override_options): Remove end-of-structure
3387 marker element from cpu_table. Use array size of cpu_table to handle
3388 -mcpu and -mtune options.
3389 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
3390
c5f0fe67
JM
33912009-04-28 Joseph Myers <joseph@codesourcery.com>
3392
3393 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
3394 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
3395 tune_32 and tune_64.
3396 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3397 support on PowerPC.
3398 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
3399 * config/rs6000/option-defaults.h: ... here. New file.
3400 (OPT_64, OPT_32): Define.
3401 (MASK_64BIT): Define to 0 if not already defined.
3402 (OPT_ARCH64, OPT_ARCH32): Define.
3403 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
3404 and tune_64.
3405
0c48a567
RR
34062009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3407
3408 * config/arm/arm.c (arm_override_options): Emit error on using
3409 fpa with AAPCS.
3410
f1028b9d
UB
34112009-04-28 Uros Bizjak <ubizjak@gmail.com>
3412
3413 PR rtl-optimization/39914
3414 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3415 registers for allocnos created from user-defined variables only
3416 when not optimizing.
3417
e0dd989a
RG
34182009-04-28 Richard Guenther <rguenther@suse.de>
3419
3420 PR middle-end/39937
3421 * fold-const.c (fold_binary): Use distribute_real_division only
3422 on float types.
3423
9a17c91d
SE
34242009-04-28 Steve Ellcey <sje@cup.hp.com>
3425
3426 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
3427 add hpux-stdint.h to tm_file.
3428 (hppa[12]*-*-hpux11*): Ditto.
3429 (ia64*-*-hpux*): Ditto.
3430 * config/hpux-stdint.h: New.
60839f5d 3431 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 3432 __STDC_EXT__ for all compiles.
60839f5d
EB
3433 * config/pa/pa-hpux.h: Ditto.
3434 * config/pa/pa-hpux10.h: Ditto.
3435 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 3436
af04e659
CM
34372009-04-28 Catherine Moore <clm@codesourcery.com>
3438
3439 * debug.h (set_name): Add comment.
3440
04ef80ce
AP
34412009-04-28 Andrew Pinski <pinskia@gmail.com>
3442
3443 PR target/39929
3444 * config/darwin.c (machopic_gen_offset): Check
3445 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
3446 * config/arm/arm.c (require_pic_register): Likewise.
3447
65ad77af
PB
34482009-04-28 Paolo Bonzini <bonzini@gnu.org>
3449
8224166e
UB
3450 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
3451 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
3452 m32c_promote_prototypes): Delete.
65ad77af 3453
1b15a008
MM
34542009-04-28 Michael Matz <matz@suse.de>
3455
3456 PR middle-end/39922
3457 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
3458 constants.
3459
7569a6cc
RG
34602009-04-28 Richard Guenther <rguenther@suse.de>
3461
f1028b9d 3462 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 3463
ead204d9
RR
34642009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3465
3466 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
3467 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
3468 * config/arm/arm-tune.md: Regenerate.
3469
f2c45f08 34702009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 3471
f2c45f08
AM
3472 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
3473 block if there are complex incoming edges.
3474 (sel_merge_blocks): Remove useless assert.
3475 (sel_redirect_edge_and_branch): Check that edge was redirected.
3476 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
3477 (sel_find_rgns): Delete declaration.
3478 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
3479 the region when it is not a preheader.
3480
7a00d767
UB
34812009-04-28 Uros Bizjak <ubizjak@gmail.com>
3482
3483 PR c/39323
3484 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
3485
448ee662
RG
34862009-04-28 Richard Guenther <rguenther@suse.de>
3487
3488 * tree.h (SSA_NAME_VALUE): Remove.
3489 (struct tree_ssa_name): Remove value_handle member.
3490 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
3491 array for jump threading.
3492 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
3493 SSA_NAME_VALUEs.
3494 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
3495 * tree-flow.h (threadedge_initialize_values): Declare.
3496 (threadedge_finalize_values): Likewise.
3497 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
3498 (SSA_NAME_VALUE): Define.
3499 (threadedge_initialize_values): New function.
3500 (threadedge_finalize_values): Likewise.
3501 * tree-ssa-dom.c (ssa_name_values): New global variable.
3502 (SSA_NAME_VALUE): Define.
f1028b9d 3503 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 3504
8644a673
IR
35052009-04-28 Ira Rosen <irar@il.ibm.com>
3506
3507 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
3508 Use REPORT_VECTORIZED_LOCATIONS instead
3509 REPORT_VECTORIZED_LOOPS.
3510 * tree-vectorizer.c (vect_verbosity_level): Make static.
3511 (vect_loop_location): Rename to vect_location.
3512 (vect_set_verbosity_level): Update comment.
3513 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
3514 and vect_location.
3515 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
3516 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
3517 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
3518 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
3519 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 3520 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 3521 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
3522 REPORT_UNVECTORIZED_LOCATIONS.
3523 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
3524 and vect_used_in_loop and to vect_unused_in_scope and
3525 vect_used_in_scope.
3526 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
3527 (vect_verbosity_level): Remove declaration.
3528 (vect_analyze_operations): Likewise.
3529 (vect_analyze_stmt): Declare.
3530 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
3531 REPORT_UNVECTORIZED_LOCATIONS.
3532 (vect_get_loop_niters): Fix indentation.
3533 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
3534 (vect_analyze_loop_operations): New function.
3535 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
3536 vect_analyze_operations.
3537 (vect_is_simple_reduction): Use new names.
3538 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
3539 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
3540 to specify whether the data references can be a part of interleaving
3541 chain.
8644a673
IR
3542 (vect_analyze_data_ref_dependence): Use new names.
3543 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
3544 (vect_create_addr_base_for_vector_ref): Remove redundant code.
3545 * tree-vect-patterns.c (widened_name_p): Use new names.
3546 (vect_recog_dot_prod_pattern): Likewise.
3547 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
3548 (process_use, vect_mark_stmts_to_be_vectorized,
3549 vect_model_simple_cost, vect_model_store_cost,
3550 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
3551 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
3552 vectorizable_operation, vectorizable_type_demotion,
3553 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
3554 vectorizable_condition): Likewise.
3555 (vect_analyze_operations): Split into vect_analyze_loop_operations
3556 and ...
3557 (vect_analyze_stmt): ... new function.
3558 (new_stmt_vec_info): Use new names.
3559 (vect_is_simple_use): Use new names and fix comment.
3560 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
3561 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
3562
b91322f2
UB
35632009-04-28 Uros Bizjak <ubizjak@gmail.com>
3564
3565 PR target/39911
3566 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
3567 and integer modes for x87 operands. Do not ICE for unsupported size,
3568 generate error instead. Generate error for unsupported operand types.
3569 ['z']: Do not handle HImode memory operands specially. Warning
3570 for floating-point operands. Fallthru to 'Z' for unsupported operand
3571 types. Do not ICE for unsupported size, generate error instead.
3572 (output_387_binary_op): Use %Z to output operands.
3573 (output_fp_compare): Ditto.
3574 (output_387_reg_move): Ditto.
3575
b2ed71b6
BE
35762009-04-28 Ben Elliston <bje@au.ibm.com>
3577
3578 PR c++/35652
3579 Revert:
3580
3581 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3582
3583 * builtins.c (c_strlen): Do not warn here.
3584 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
3585 * c-common.c (pointer_int_sum): Take an explicit location.
3586 Warn about offsets out of bounds.
3587 * c-common.h (pointer_int_sum): Adjust declaration.
3588
81f40b79
ILT
35892009-04-27 Ian Lance Taylor <iant@google.com>
3590
3591 * collect2.c (is_ctor_dtor): Change type of ret field in struct
3592 names to symkind.
3593 * dce.c (run_fast_df_dce): Change type of old_flags to int.
3594 * df-core.c (df_set_flags): Change return type to int. Change
3595 type of old_flags to int.
3596 (df_clear_flags): Likewise.
3597 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
3598 (df_get_conditional_uses): Likewise.
3599 * df.h (df_set_flags, df_clear_flags): Update declarations.
3600 * dwarf2out.c (struct indirect_string_node): Change type of form
3601 field to enum dwarf_form.
3602 (AT_string_form): Change return type to enum dwarf_form.
3603 * fixed-value.c (fixed_compare): Add cast to enum type.
3604 * fwprop.c (update_df): Change 0 to VOIDmode.
3605 * gensupport.c: Change 0 to UNKNOWN.
3606 * gimple.h (gimple_cond_code): Add cast to enum type.
3607 * haifa-sched.c (reemit_notes): Add cast to enum type.
3608 * hooks.c (hook_int_void_no_regs): Remove function.
3609 * hooks.h (hook_int_void_no_regs): Remove declaration.
3610 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 3611 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
3612 * real.c (real_arithmetic): Add cast to enum type.
3613 (real_compare): Likewise.
3614 * target.h (struct gcc_target): Change return type of
3615 branch_target_register_class to enum reg_class.
3616 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
3617 default_branch_target_register_class.
7a00d767 3618 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 3619 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 3620 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
3621 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
3622 cast to int.
3623 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
3624 ERROR_MARK.
3625 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
3626 vect_uninitialized_def. Change 0 to ERROR_MARK.
3627 * tree-vect-stmts.c (supportable_widening_operation): Don't
3628 initialize icode1 and icode2.
7a00d767 3629 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
3630 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
3631 and to STD_C89.
3632 (cmn_err_flag_specs): Change 0 to STD_C89.
3633 (cmn_err_char_table): Likewise.
3634 * config/arm/arm.c (get_arm_condition_code): Change type of code
3635 to enum arm_cond_code.
3636 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
3637 (IWMMXT_BUILTIN2): Likewise.
3638 (neon_builtin_type_bits): Don't define typedef.
3639 (neon_builtin_datum): Change type of bits field to int.
3640 (arm_expand_neon_args): Add cast to enum type.
3641 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
3642 TLS_MODEL_NONE.
3643 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
3644 casts to enum type.
3645 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
3646 MIPS_FP_COND_f.
3647 * config/mips/mips.md (jal_macro): Return enum constant.
3648 (single_insn): Likewise.
3649 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
3650 CODE_FOR_nothing.
3651 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3652 casts to enum type.
3653 * config/s390/s390.c (s390_tune_flags): Change type to int.
3654 (s390_arch_flags): Likewise.
7a00d767 3655 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
3656 * config/s390/s390.h (s390_tune_flags): Update declaration.
3657 (s390_arch_flags): Likewise.
3658 * config/sh/sh.c (prepare_move_operands): Compare
3659 tls_symbolic_operand result with enum constant.
3660 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
3661 (sh_expand_prologue): Add cast to enum type.
3662 (sh_expand_epilogue): Likewise.
3663 (tls_symbolic_operand): Change return type to enum tls_model.
3664 (fpscr_set_from_mem): Add cast to enum type.
3665 (legitimize_pic_address): Compare tls_symbolic_operand result with
3666 enum constant.
3667 (sh_target_reg_class): Change return type to enum reg_class.
3668 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
3669 PROCESSOR_xxx.
7a00d767
UB
3670 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
3671 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
3672 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
3673 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
3674 (delayed_branch, tls_call_delay): Likewise.
3675 (eligible_for_sibcall_delay): Likewise.
3676 (eligible_for_return_delay): Likewise.
3677 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
3678 (spu_expand_builtin_1): Likewise.
3679
3680 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
3681 for all types of conversions.
3682 (output_init_element): Issue -Wc++-compat warning if needed when
3683 initializing a bitfield with enum type.
3684 * c-parser.c (c_parser_expression): Set original_type to
3685 original_type of right hand operand of comman operator.
3686
e4ae5e77
RW
36872009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3688
3689 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
3690 grammar nits.
7a00d767 3691 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
3692 * doc/cpp.texi (Standard Predefined Macros)
3693 (Implementation-defined behavior): Likewise.
7a00d767 3694 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
3695 * doc/gimple.texi (GIMPLE Exception Handling)
3696 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 3697 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
3698 * doc/invoke.texi (Warning Options, Optimize Options)
3699 (AVR Options, Darwin Options): Likewise.
3700 (Optimize Options): Reformulate -fwhole-program description.
3701 * doc/loop.texi (Lambda): Likewise.
3702 * doc/md.texi (Output Template, Define Constraints)
3703 (Standard Names, Insn Splitting): Likewise.
3704 * doc/options.texi (Option properties): Likewise.
3705 * doc/passes.texi (Tree-SSA passes): Likewise.
3706 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
3707 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
3708 (File Names and DBX): Likewise.
3709 * doc/trouble.texi (Incompatibilities): Likewise.
3710
1883802f 37112009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
3712
3713 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
3714 instruction is correct.
3715
1883802f 37162009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
3717
3718 Allow non-constant arguments to conversion intrinsics.
3719 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
3720 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
3721 * spu.c (print_operand): Handle 'v' and 'w'.
3722 (exp2_immediate_p, spu_gen_exp2): Define.
3723 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
3724 spu_convtf_1): Update parameter descriptions.
7a00d767 3725 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
3726 * constraints.md ('v', 'w'): New.
3727 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
3728 Remove.
3729 (i2f, I2F): New define_mode_attr.
3730 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
3731 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
3732 fixuns_truncv4sfv4si2): Update to use mode attribute.
3733 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
3734 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
3735 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
3736 patterns for combine.
3737
5f39ad47
SB
37382009-04-27 Steven Bosscher <steven@gcc.gnu.org>
3739
3740 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
3741 (cprop, hoist, pre, store_motion): New debug counters.
3742 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
3743 is not an RTL pass anymore.
3744 (pass_profiling): Remove extern decl for pass removed in 2005.
3745 (pass_gcse, pass_jump_bypass): Remove.
3746 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
3747 to 0 for clean state.
3748 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
3749 * cse.c (gate_handle_cse_after_global_opts,
3750 rest_of_handle_cse_after_global_opts): New functions.
3751 (pass_cse_after_global_opts): New pass, does local CSE.
3752 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
3753 (TV_CPROP): New timevar.
3754 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
3755 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
3756 (gcse_main, recompute_all_luids): Remove.
3757 (compute_hash_table_work): Call max_reg_num instead of reading
3758 max_gcse_regno.
3759 (cprop_jump): Don't set run_jump_opt_after_gcse.
3760 (constprop_register): Always allow to alter jumps.
3761 (cprop_insn): Likewise.
3762 (do_local_cprop): Likewise.
3763 (local_cprop_pass): Likewise. Return non-zero if something changed.
3764 (cprop): Remove function, fold interesting bits into one_cprop_pass.
3765 (find_implicit_sets): Add note about missed optimization opportunity.
3766 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
3767 pass_rtl_cprop execute function.
3768 Don't bother tracking the pass number, each pass gets its own dumpfile
3769 now anyway.
3770 Always allow to alter jumpsand bypass jumps.
3771 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
3772 will just find no suitable set.
3773 (pre_edge_insert): Fix dumping, this function is for PRE only.
3774 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
3775 pass_rtl_pre execute function.
3776 (hoist_code): Return non-zero if something changed. Keep track of
3777 substitutions and insertions for statistics gathering similar to PRE.
3778 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
3779 called from the pass_rtl_hoist execute function. Show pass statistics.
3780 (compute_store_table): Use max_reg_num directly instead of using the
3781 formerly global max_gcse_regno.
3782 (build_store_vectors): Likewise.
3783 (replace_store_insn): Fix dumping.
3784 (store_motion): Rename to ...
3785 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
3786 pass, called from the pass_rtl_store_motion execute function. Keep
3787 track of substitutions and insertions for statistics gathering similar
3788 to PRE.
3789 (bypass_jumps): Remove, fold interesting bits into ...
3790 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
3791 from the pass_rtl_cprop execute function.
3792 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
3793 pass_jump_bypass): Remove.
3794 (gate_handle_gcse, rest_of_handle_gcse): Remove.
3795 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
3796 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
3797 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
3798 (gate_rtl_store_motion, execute_rtl_store_motion,
3799 pass_rtl_store_motion): New.
3800 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
3801 make it clear that -fcse-skip-blocks is a no-op for backward compat.
3802 * passes.c (init_optimization_passes): Remove pass_gcse and
3803 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
3804 and cse_after_global_opts in place of pass_gcse. Schedule cprop
3805 instead of pass_jump_bypass.
3806
c685de4a
RG
38072009-04-27 Richard Guenther <rguenther@suse.de>
3808
3809 PR middle-end/39928
3810 * gimplify.c (gimplify_expr): If we are required to create
3811 a temporary make sure it ends up as register.
3812
72d41f29
L
38132009-04-27 H.J. Lu <hongjiu.lu@intel.com>
3814
3815 PR target/39903
3816 * config/i386/i386.c (construct_container): Don't call
3817 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
3818 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
3819
e97809c6
MM
38202009-04-27 Michael Matz <matz@suse.de>
3821
3822 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
3823 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
3824 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
3825 (dump_replaceable_exprs): Take a bitmap.
3826 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
3827 array.
3828 (expand_gimple_basic_block): Likewise.
3829 * tree-ssa-ter.c (struct temp_expr_table_d): Make
3830 replaceable_expressions member a bitmap.
3831 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
3832 (mark_replaceable): Likewise.
3833 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
3834 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
3835
211ca15c
RG
38362009-04-27 Richard Guenther <rguenther@suse.de>
3837
3838 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
3839 (verify_stmts): Dispatch to gimple/type verification code.
3840 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
3841 issue with call argument types.
3842
fca5f3d1
MM
38432009-04-27 Michael Matz <matz@suse.de>
3844
3845 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
3846 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
3847 to above.
3848
a1fa3e79 38492009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 3850 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
3851
3852 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
3853 a label's basic block.
3854 (mark_target_live_regs): Tidy and rework obsolete comments.
3855 Change back DF problem to LIVE. If a label starts a basic block,
3856 assume that all registers that used to be live then still are.
3857 (init_resource_info): If a label starts a basic block, set its
3858 BLOCK_FOR_INSN accordingly.
3859 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
3860
33b223c0
RG
38612009-04-27 Richard Guenther <rguenther@suse.de>
3862
3863 * tree-flow-inline.h (function_ann): Remove.
3864 (get_function_ann): Likewise.
3865 * tree-dfa.c (create_function_ann): Remove.
3866 * tree-flow.h (struct static_var_ann_d): Remove.
3867 (struct function_ann_d): Likewise.
3868 (union tree_ann_d): Remove fdecl member.
3869 (function_ann_t): Remove.
3870 (function_ann, get_function_ann, create_function_ann): Remove
3871 declarations.
3872
e3136fa2
UB
38732009-04-27 Uros Bizjak <ubizjak@gmail.com>
3874
3875 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
3876
f87c9042
JH
38772009-04-27 Jan Hubicka <jh@suse.cz>
3878
3879 * ipa-pure-const.c (struct funct_state_d): New fields
3880 state_previously_known, looping_previously_known; remove
3881 state_set_in_source.
3882 (analyze_function): Use new fields.
3883 (propagate): Avoid assumption that state_set_in_source imply
3884 nonlooping.
3885
3886 * tree-ssa-loop-niter.c (finite_loop_p): New function.
3887 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
3888 * cfgloop.h (finite_loop_p): Declare.
3889
33abd718
MM
38902009-04-26 Michael Matz <matz@suse.de>
3891
e3136fa2 3892 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 3893
ddc34084
MM
38942009-04-26 Michael Matz <matz@suse.de>
3895
3896 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
3897 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
3898 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
3899 pass_mark_used_blocks): Remove.
3900 * tree-optimize.c (pass_free_datastructures,
3901 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
3902 * passes.c (init_optimization_passes): Don't call
3903 pass_mark_used_blocks, remove dead code.
3904
1fec7ed4
L
39052009-04-26 H.J. Lu <hongjiu.lu@intel.com>
3906
3907 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
3908 * tree-ssa-live.h (register_ssa_partition): Likewise.
3909
4e3825db
MM
39102009-04-26 Michael Matz <matz@suse.de>
3911
3912 Expand from SSA.
3913 * builtins.c (fold_builtin_next_arg): Handle SSA names.
3914 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
3915 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
3916 SSA names.
3917 (compare_pairs): Swap cost comparison.
3918 (coalesce_ssa_name): Don't use change_partition_var.
3919 * tree-nrv.c (struct nrv_data): Add modified member.
3920 (finalize_nrv_r): Set it.
3921 (tree_nrv): Use it to update statements.
3922 (pass_nrv): Require PROP_ssa.
3923 * tree-mudflap.c (mf_decl_cache_locals,
3924 mf_build_check_statement_for): Use make_rename_temp.
3925 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
3926 * alias.c (find_base_decl): Handle SSA names.
3927 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
3928 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
3929 * rtl.h (set_reg_attrs_for_parm): Declare.
3930 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
3931 to "optimized", remove unused locals at finish.
3932 (execute_free_datastructures): Make global, call
3933 delete_tree_cfg_annotations.
3934 (execute_free_cfg_annotations): Don't call
3935 delete_tree_cfg_annotations.
3936
3937 * ssaexpand.h: New file.
3938 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 3939 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
3940 (expand_expr_real_1): Expand SSA names.
3941 * cfgexpand.c (toplevel): Include ssaexpand.h.
3942 (SA): New global variable.
3943 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
3944 (SSAVAR): New macro.
3945 (set_rtl): New helper function.
3946 (add_stack_var): Deal with SSA names, use set_rtl.
3947 (expand_one_stack_var_at): Likewise.
3948 (expand_one_stack_var): Deal with SSA names.
3949 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
3950 before unique numbers.
3951 (expand_stack_vars): Use set_rtl.
3952 (expand_one_var): Accept SSA names, add asserts for them, feed them
3953 to above subroutines.
3954 (expand_used_vars): Expand all partitions (without default defs),
3955 then only the local decls (ignoring those expanded already).
3956 (expand_gimple_cond): Remove edges when jumpif() expands an
3957 unconditional jump.
3958 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
3959 or remove abnormal edges. Ignore insns setting the LHS of a TERed
3960 SSA name.
3961 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
3962 members of SA; deal with PARM_DECL partitions here; expand
3963 all PHI nodes, free tree datastructures and SA. Commit instructions
3964 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
3965 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
3966 info and statements at start, collect garbage at finish.
3967 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
3968 (VAR_ANN_PARTITION) Remove.
3969 (change_partition_var): Don't declare.
3970 (partition_to_var): Always return SSA names.
3971 (var_to_partition): Only accept SSA names.
3972 (register_ssa_partition): Only check argument.
3973 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
3974 member.
3975 (delete_var_map): Don't free it.
3976 (var_union): Only accept SSA names, simplify.
3977 (partition_view_init): Mark only useful SSA names as used.
3978 (partition_view_fini): Only deal with SSA names.
3979 (change_partition_var): Remove.
3980 (dump_var_map): Use ssa_name instead of partition_to_var member.
3981 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
3982 basic blocks.
3983 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
3984 (struct _elim_graph): New member const_dests; nodes member vector of
3985 ints.
3986 (set_location_for_edge): New static helper.
3987 (create_temp): Remove.
3988 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 3989 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
3990 (new_elim_graph): Allocate const_dests member.
3991 (clean_elim_graph): Truncate const_dests member.
3992 (delete_elim_graph): Free const_dests member.
3993 (elim_graph_size): Adapt to new type of nodes member.
3994 (elim_graph_add_node): Likewise.
3995 (eliminate_name): Likewise.
3996 (eliminate_build): Don't take basic block argument, deal only with
3997 partition numbers, not variables.
3998 (get_temp_reg): New static helper.
3999 (elim_create): Use it, deal with RTL temporaries instead of trees.
4000 (eliminate_phi): Adjust all calls to new signature.
4001 (assign_vars, replace_use_variable, replace_def_variable): Remove.
4002 (rewrite_trees): Only do checking.
4003 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
4004 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
4005 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
4006 contains_tree_r, MAX_STMTS_IN_LATCH,
4007 process_single_block_loop_latch, analyze_edges_for_bb,
4008 perform_edge_inserts): Remove.
4009 (expand_phi_nodes): New global function.
4010 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
4011 functions, initialize new parameter, remember partitions having a
4012 default def.
4013 (finish_out_of_ssa): New global function.
4014 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
4015 don't reset in_ssa_p here, don't disable TER when mudflap.
4016 (pass_del_ssa): Remove.
4017 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
4018 partition members.
4019 (execute_free_datastructures): Declare.
4020 * Makefile.in (SSAEXPAND_H): New variable.
4021 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
4022 * basic-block.h (commit_one_edge_insertion): Declare.
4023 * passes.c (init_optimization_passes): Move pass_nrv and
4024 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
4025 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
4026 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
4027 (redirect_branch_edge): Deal with super block when expanding, split
4028 out jump patching itself into ...
4029 (patch_jump_insn): ... here, new static helper.
4030
17c665a9
MM
40312009-04-26 Michael Matz <matz@suse.de>
4032
4033 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
4034 beyond num_ssa_names.
4035 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
4036 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
4037
92061771
JJ
40382009-04-26 Jakub Jelinek <jakub@redhat.com>
4039
ce372372
JJ
4040 PR inline-asm/39543
4041 * fwprop.c (forward_propagate_asm): New function.
4042 (forward_propagate_and_simplify): Propagate also into __asm, if it
4043 doesn't increase the number of referenced registers.
4044
92061771
JJ
4045 PR c/39889
4046 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
4047
40482009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
4049
4050 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
4051 note_nonlocal_vla_type for nonlocal VLAs.
4052 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
4053 contains_remapped_vars, remap_vla_decls): New functions.
4054 (convert_nonlocal_reference_stmt): If not optimizing, call
4055 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
4056 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
4057 if it wasn't found in var_map.
4058 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
4059 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
4060 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
4061 declare_vars.
4062 * gimplify.c (nonlocal_vlas): New variable.
4063 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
4064 referenced VLAs.
4065 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 4066
4561e242
JJ
4067 * dwarf2out.c (loc_descr_plus_const): New function.
4068 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
4069 mem_loc_descriptor, loc_descriptor_from_tree_1,
4070 descr_info_loc, gen_variable_die): Use it.
4071
a9548ddf
JJ
4072 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
4073 !TREE_STATIC VAR_DECLs.
4074 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
4075 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
4076 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
4077 DECL_BY_REFERENCE is valid.
4078 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
4079 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
4080 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
4081 Copy DECL_BY_REFERENCE.
4082 (struct nesting_copy_body_data): New type.
4083 (nesting_copy_decl): New function.
4084 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
4085 if they have variable length.
4086
10555d08
MM
40872009-04-26 Michael Matz <matz@suse.de>
4088
4089 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
4090 mark new temporaries for renaming.
4091
e11187cc
JM
40922009-04-26 Joseph Myers <joseph@codesourcery.com>
4093
4094 PR c/39581
4095 * c-decl.c (global_bindings_p): Return negative value.
4096 (c_variable_size): New. Based on variable_size from
4097 stor-layout.c.
4098 (grokdeclarator): Call c_variable_size not variable_size.
4099
f6a51d31
UB
41002009-04-26 Uros Bizjak <ubizjak@gmail.com>
4101
4102 * config/i386/i386.c (print_operand) ['z']: Fix typo.
4103
4b97723d
KT
41042009-04-26 Kai Tietz <kai.tietz@onevision.com>
4105
4106 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
4107 Redefine it to just use mingw/include.
4108 (ASM_SPEC): Rules for -m32 and -m64.
4109 (LINK_SPEC): Use Likewise.
4110 (SPEC_32): New define.
4111 (SPEC_64): Likewise.
4112 (SUB_LINK_SPEC): Likewise.
4113 (MULTILIB_DEFAULTS): New define.
4114 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
4115 Add multilib options.
4116 (MULTILIB_DIRNAMES): Likewise.
4117 (MULTILIB_OSDIRNAMES): Likewise.
4118 (LIBGCC): Likewise.
4119 (INSTALL_LIBGCC): Likewise.
4120
991d6621
JM
41212009-04-26 Joseph Myers <joseph@codesourcery.com>
4122
4123 PR c/39556
4124 * c-tree.h (enum c_inline_static_type): New.
4125 (record_inline_static): Declare.
4126 * c-decl.c (struct c_inline_static, c_inline_statics,
4127 record_inline_static, check_inline_statics): New.
4128 (pop_file_scope): Call check_inline_statics.
4129 (start_decl): Call record_inline_static instead of pedwarning
4130 directly for static in inline function.
4131 * c-typeck.c (build_external_ref): Call record_inline_static
4132 instead of pedwarning directly for static referenced in inline
4133 function.
4134
4a81774c
SB
41352009-04-26 Steven Bosscher <steven@gcc.gnu.org>
4136
4137 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
4138 not new but only being rescanned.
4139 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
4140 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
4141 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
4142 record_set_info, compute_set, grealloc): Remove.
4143 (recompute_all_luids): New function.
4144 (gcse_main): Don't compute sets, and don't do related memory
4145 allocations/free-ing. If something changed before the end of the
4146 pass, update LUIDs using recompute_all_luids.
4147 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
4148 (free_gcse_mem): Don't free it either.
4149 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
4150 Use the df insn LUIDs.
4151 (load_killed_in_block): Likewise.
4152 (compute_hash_table_work): Don't compute reg_set_in_block.
4153 (compute_transp): Use DF_REG_DEF_CHAINs.
4154 (local_cprop_pass): Don't use compute_sets and related functions.
4155 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
4156 Use get_max_uid() instead of max_cuid.
4157 (insert_insn_end_basic_block, pre_insert_copy_insn,
4158 update_ld_motion_stores): Don't try to
4159 keep reg_set tables up to date.
4160 (pre_insert_copies): Use df insn LUIDs.
4161 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
4162 (reg_set_info): Don't use extra bitmap argument.
4163 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
4164 information to compute regs_set_in_block.
4165 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
4166 (bypass_jumps): Don't use compute_sets and friends.
4167
e8f99a9d
RW
41682009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4169
4170 PR testsuite/39710
4171 * opts.c (undocumented_msg): Do not leave blank even with
4172 ENABLE_CHECKING.
4173
6895bac8
JM
41742009-04-25 Joseph Myers <joseph@codesourcery.com>
4175
4176 * c-decl.c (build_enumerator): Allow values folding to integer
4177 constants but not integer constant expressions with a pedwarn if
4178 pedantic.
4179
24070fcb
JM
41802009-04-25 Joseph Myers <joseph@codesourcery.com>
4181
4182 PR c/39582
4183 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
4184 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
4185 type is an integer constant.
4186
d6d89aa1
UB
41872009-04-25 Uros Bizjak <ubizjak@gmail.com>
4188
4189 PR target/39897
4190 * config/i386/i386.c (print_operand) ['z']: Revert handling of
4191 HImode operands.
4192
92f6fd0b
JM
41932009-04-25 Joseph Myers <joseph@codesourcery.com>
4194
4195 PR c/39564
4196 * c-decl.c (grokdeclarator): Diagnose declarations of functions
4197 with variably modified return type and no storage class
4198 specifiers, except for the case of nested functions. Distinguish
4199 extern declarations of functions with variably modified return
4200 types from those of objects with variably modified types.
4201
a3710436
JH
42022009-04-25 Jan Hubicka <jh@suse.cz>
4203
4204 * tree.c (list_equal_p): New function.
4205 * tree.h (list_equal_p): Declare.
4206 * coretypes.h (edge_def, edge, const_edge, basic_block_def
4207 basic_block_def, basic_block, const_basic_block): New.
4208 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
4209 (redirect_eh_edge): New function.
4210 (make_eh_edge_update_phi): EH edges are not abnormal.
4211 * except.c: Include tree-flow.h.
4212 (list_match): New function.
4213 (eh_region_replaceable_by_p): New function.
4214 (replace_region): New function.
4215 (hash_type_list): New function.
4216 (hash_eh_region): New function.
4217 (eh_regions_equal_p): New function.
4218 (merge_peers): New function.
4219 (remove_unreachable_regions): Verify EH tree when checking;
4220 merge peers.
4221 (copy_eh_region_1): New function.
4222 (copy_eh_region): New function.
4223 (push_reachable_handler): New function.
4224 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
4225 regions without label but with live RESX.
4226 * except.h (redirect_eh_edge_to_label): New.
4227 * tree-flow.h (redirect_eh_edge): New.
4228 * coretypes.h (edge_def, edge, const_edge, basic_block_def
4229 basic_block_def, basic_block, const_basic_block): Remove.
4230 * Makefile.in (except.o): Add dependency on tree-flow.h
4231 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
4232 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
4233 Remove.
4234
3764d512
EB
42352009-04-25 Eric Botcazou <ebotcazou@adacore.com>
4236
4237 PR bootstrap/39645
4238 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
4239 on the destination of memcpy.
4240
1c62e8f2
PB
42412009-04-25 Paolo Bonzini <bonzini@gnu.org>
4242
4243 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4244 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
4245 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
4246
496a4ef5
JH
42472009-04-25 Jan Hubicka <jh@suse.cz>
4248
4249 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
4250 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
4251 to be reached by different label than left.
4252 (update_eh_edges): Update comment; remove edge_to_remove if possible
4253 and return true if suceeded.
4254 (cleanup_empty_eh): Accept sharing map; handle shared regions.
4255 (cleanup_eh): Compute sharing map.
4256 * except.c (remove_eh_handler_and_replace): Add argument if we should
4257 update regions.
4258 (remove_unreachable_regions): Update for label sharing.
4259 (label_to_region_map): Likewise.
4260 (get_next_region_sharing_label): New function.
4261 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
4262 prev_try pointers.
4263 (remove_eh_handler): Update.
4264 (remove_eh_region_and_replace_by_outer_of): New function.
4265 * except.h (struct eh_region): Add next_region_sharing_label.
4266 (remove_eh_region_and_replace_by_outer_of,
4267 get_next_region_sharing_label): Declare.
4268 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
4269
42702009-04-25 Jan Hubicka <jh@suse.cz>
4271
4272 * tree-cfg.c (split_critical_edges): Split also edges where we can't
4273 insert code even if they are not critical.
4274
42752009-04-25 Jan Hubicka <jh@suse.cz>
4276
4277 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
4278 (gimple_can_remove_branch_p): EH edges won't remove branch by
4279 redirection.
4280 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
4281 updating of non-abnormal EH edges.
4282 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
4283 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
4284 (split_critical_edges): Split also edges where emitting code on them
4285 will lead to splitting later.
4286
a3a5e3d1
UB
42872009-04-25 Uros Bizjak <ubizjak@gmail.com>
4288 H.J. Lu <hongjiu.lu@intel.com>
4289
4290 PR target/39590
4291 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
4292 the configured assembler supports fildq and fistpq mnemonics.
4293 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
4294 * configure: Regenerated.
4295 * config.in: Ditto.
4296
4297 * config/i386/i386.c (print_operand): Handle 'Z'.
4298 ['z']: Remove handling of special fild/fist suffixes.
4299 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
4300 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
4301 suffix of fild insn.
4302 (*floatsi<mode>2_vector_mixed): Ditto.
4303 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
4304 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
4305 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4306 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
4307 * config/i386/gas.h (GAS_MNEMONICS): Remove.
4308
23750d7f
BE
43092009-04-25 Ben Elliston <bje@au.ibm.com>
4310
4311 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
4312 the source of a set operation.
4313
e6ff3083
AS
43142009-04-25 Anatoly Sokolov <aesok@post.ru>
4315
4316 * target.h (struct gcc_target): Add case_values_threshold field.
4317 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
4318 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
4319 * targhooks.c (default_case_values_threshold): New function.
4320 * targhooks.h (default_case_values_threshold): Declare function.
4321 * stmt.c (expand_case): Use case_values_threshold target hook.
4322 * expr.h (case_values_threshold): Remove declartation.
4323 * expr.c (case_values_threshold): Remove function.
4324 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
4325
4326 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
4327 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
4328 (avr_case_values_threshold): Declare as static.
4329 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
4330
4331 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
4332 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
4333 (mn10300_case_values_threshold): New function.
4334
569c72fc
L
43352009-04-24 H.J. Lu <hongjiu.lu@intel.com>
4336
4337 * ira.c (setup_cover_and_important_classes): Add enum cast.
4338
ff3cb468
VM
43392009-04-24 Vladimir Makarov <vmakarov@redhat.com>
4340
4341 * genpreds.c (write_enum_constraint_num): Output definition of
4342 CONSTRAINT_NUM_DEFINED_P macro.
4343 * ira.c (setup_cover_and_important_classes): Use
4344 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
4345
4f7be849
DD
43462009-04-24 DJ Delorie <dj@redhat.com>
4347
4348 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
4349 __SH2A_SINGLE_ONLY__ also.
4350
735b94a7
SE
43512009-04-24 Steve Ellcey <sje@cup.hp.com>
4352
4353 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
4354 (movdf_internal): Ditto.
4355 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
4356 SFmode and DFmode constants.
4357 (ia64_print_operand): Add 'G' format for printing
4358 floating point constants.
4359
77a30264
RG
43602009-04-24 Richard Guenther <rguenther@suse.de>
4361
4362 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
4363 from unsigned additions.
4364
2b6da65c
JM
43652009-04-24 Joseph Myers <joseph@codesourcery.com>
4366
4367 * c-typeck.c (set_init_index): Allow array designators that are
4368 not integer constant expressions with a pedwarn if pedantic.
4369
f5a17c43
BS
43702009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
4371
4372 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
4373 zero if no overlap in nonzero bits between the operands.
4374
32e8bb8e
ILT
43752009-04-24 Ian Lance Taylor <iant@google.com>
4376
4377 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
4378 (record_dead_and_set_regs): Likewise.
4379 * df.h (struct df_mw_hardreg): Change flags field to int.
4380 (struct df_base_ref): Likewise.
4381 (struct df): Change changeable_flags field to int.
4382 * df-scan.c (df_defs_record): Change clobber_flags to int.
4383 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
4384 constants rather than #define macros.
4385 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
4386 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
4387 (enum dwarf_calling_convention): Likewise.
4388 (enum dwarf_line_number_x_ops): Likewise.
4389 (enum dwarf_call_frame_info): Likewise.
4390 (enum dwarf_source_language): Likewise.
4391 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
4392 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
4393 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
4394 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
4395 * genrecog.c (maybe_both_true_2): Change c to int.
4396 (write_switch): Likewise. Add cast to enum type.
4397 * gimplify.c (gimplify_omp_for): Handle return values from
4398 gimplify_expr using MIN rather than bitwise or.
4399 (gimplify_expr): Add cast to enum type.
4400 * ipa-prop.c (update_jump_functions_after_inlining): Change
4401 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
4402 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
4403 Add casts to enum type.
32e8bb8e
ILT
4404 (setup_cover_and_important_classes): Change cl to int. Add casts
4405 to enum type.
4406 (setup_class_translate): Change cl and mode to int.
4407 (ira_init_once): Change mode to int.
4408 (free_register_move_costs): Likewise.
4409 (setup_prohibited_mode_move_regs): Add casts to enum type.
4410 * langhooks.c (add_builtin_function_common): Rework assertion that
4411 value fits bitfield.
4412 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
4413 * omega.c (omega_do_elimination): Avoid math on enum types.
4414 * optabs.c (expand_vec_shift_expr): Remove casts to int.
4415 * opts.c (set_debug_level): Change 2 to enum constant. Use new
4416 int local to handle integral_argment value.
4417 * regmove.c (try_auto_increment): Change PUT_MODE to
4418 PUT_REG_NOTE_KIND.
4419 * reload.c (push_secondary_reload): Add casts to enum type.
4420 (secondary_reload_class, find_valid_class): Likewise.
4421 * reload1.c (emit_input_reload_insns): Likewise.
4422 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
4423 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
4424 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
4425 constant.
4426 * tree.c (build_common_builtin_nodes): Add casts to enum type.
4427 * tree-complex.c (complex_lattice_t): Typedef to int rather than
4428 enum type.
4429 (expand_complex_libcall): Add casts to enum type.
4430 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
4431 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
4432 with ERROR_MARK, not NUM_TREE_CODES.
4433 (vect_create_epilog_for_reduction): Likewise.
4434 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 4435 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
4436 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
4437 enum machine_mode.
4438 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
4439 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 4440 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
4441 * var-tracking.c (get_init_value): Change return type to enum
4442 var_init_status.
4443 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
4444 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
4445 arm_fp_model.
4446 (arm_override_options): Add casts to enum type.
4447 (arm_emit_tls_decoration): Likewise.
4448 * config/i386/i386.c (ix86_function_specific_restore): Add casts
4449 to enum type.
4450 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
4451 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
4452 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
4453 enum type.
4454 * config/s390/s390.c (code_for_builtin_64): Change to array of
4455 enum insn_code.
4456 (code_for_builtin_31): Likewise.
4457 (s390_expand_builtin): Change code_for_builtin to enum insn_code
4458 const *.
4459 * config/sparc/sparc.c (sparc_override_options): Change value
4460 field in struct code_model to enum cmodel. In initializer change
4461 0 to NULL and add cast to enum type.
4462
4463 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
4464 Change all callers. Issue a -Wc++-compat warning using
4465 lhs_origtype if necessary.
4466 (convert_for_assignment): Issue -Wc++-compat warnings about
4467 invalid conversions to enum type on assignment.
4468 * c-common.h (build_modify_expr): Update declaration.
4469
ac4fc08a
NC
44702009-04-24 Nick Clifton <nickc@redhat.com>
4471
4472 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
4473 (function_arg_advance): Likewise.
4474 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
4475 5th alternative.
4476
f22e891a
AK
44772009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
4478
4479 * config/s390/constraints.md ('I', 'J'): Fix condition.
4480
ad58aabe
DN
44812009-04-24 Diego Novillo <dnovillo@google.com>
4482
4483 * gengtype-parse.c (parse_error): Add newline after message.
4484
879a4a01
L
44852009-04-24 H.J. Lu <hongjiu.lu@intel.com>
4486
4487 * config/i386/sse.md (avxmodesuffixs): Removed.
4488 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
4489 (*avx_pinsr<ssevecsize>): This.
4490
f63426af
BS
44912009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
4492
4493 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
4494 follow chains of regs with a single definition, and allow expressions
4495 that are function_invariant_p.
ce72fe6c 4496 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 4497
30349c74
PB
44982009-04-24 Paolo Bonzini <bonzini@gnu.org>
4499
4500 PR middle-end/39867
4501 * fold-const.c (fold_cond_expr_with_comparison): When folding
4502 > and >= to MAX, make sure the MAX uses the same type as the
4503 comparison's operands.
4504
8d8256c1
NC
45052009-04-24 Nick Clifton <nickc@redhat.com>
4506
4507 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
4508 addressing for DImode accesses.
4509 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 4510 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 4511
6216f94e
JJ
45122009-04-24 Jakub Jelinek <jakub@redhat.com>
4513
4514 PR rtl-optimization/39794
4515 * alias.c (canon_true_dependence): Add x_addr argument.
4516 * rtl.h (canon_true_dependence): Adjust prototype.
4517 * cse.c (check_dependence): Adjust canon_true_dependence callers.
4518 * cselib.c (cselib_invalidate_mem): Likewise.
4519 * gcse.c (compute_transp): Likewise.
4520 * dse.c (scan_reads_nospill): Likewise.
4521 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
4522 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
4523 canon_base_addr of the group, plus optional offset.
4524 (struct group_info): Rename canon_base_mem to
4525 canon_base_addr.
4526 (get_group_info): Set canon_base_addr to canon_rtx of base, not
4527 canon_rtx of base_mem.
4528
6de7a512
PB
45292009-04-23 Paolo Bonzini <bonzini@gnu.org>
4530
4531 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
4532 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
4533
4a3a2376
UW
45342009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4535
4536 * config/spu/spu-builtins.h: Delete file.
4537
4538 * config/spu/spu.h (enum spu_builtin_type): Move here from
4539 spu-builtins.h.
4540 (struct spu_builtin_description): Likewise. Add GTY marker.
4541 Do not use enum spu_function_code or enum insn_code.
4542 (spu_builtins): Add extern declaration.
4543
4544 * config/spu/spu.c: Do not include "spu-builtins.h".
4545 (enum spu_function_code, enum spu_builtin_type_index,
4546 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
4547 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
4548 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
4549 unsigned_V2DI_type_node): Move here from spu-builtins.h.
4550 (spu_builtin_types): Make static. Add GTY marker.
4551 (spu_builtins): Add extern declaration with GTY marker.
4552 Include "gt-spu.h".
4553
4554 * config/spu/spu-c.c: Do not include "spu-builtins.h".
4555 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
4556 Check programmatically whether all parameters are scalar.
4557
4558 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
4559
bbaba73f
EB
45602009-04-23 Eric Botcazou <ebotcazou@adacore.com>
4561
4562 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
4563 assignment from the constructor either if the target is volatile.
4564
ee93c1c6
DJ
45652009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
4566
4567 * config/arm/arm.md (insv): Do not share operands[0].
4568
b2f21330
NS
45692009-04-23 Nathan Sidwell <nathan@codesourcery.com>
4570
4571 * config/vxlib-tls.c (active_tls_threads): Delete.
4572 (delete_hook_installed): New.
4573 (tls_delete_hook): Don't delete the delete hook.
4574 (tls_destructor): Delete it here.
4575 (__gthread_set_specific): Adjust installing the delete hook.
4576 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
4577 __gthread_leave_tsd_dtor_context.
4578
4782dfa7
RAE
45792009-04-23 Rafael Avila de Espindola <espindola@google.com>
4580
4581 * c-format.c (gcc_tdiag_char_table): Add support for %E.
4582
bf758008
UB
45832009-04-23 Uros Bizjak <ubizjak@gmail.com>
4584
4585 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
4586 enum type.
4587 (alpha_rtx_costs): Ditto.
4588 (emit_unlikely_jump): Use add_reg_note.
4589 (emit_frame_store_1): Ditto.
4590 (alpha_expand_prologue): Ditto.
4591 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4592 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
4593
7323a100
NC
45942009-04-23 Nick Clifton <nickc@redhat.com>
4595
4596 * config/v850/v850.md (epilogue): Remove suppressed code.
4597 (return): Rename to return_simple and remove test of frame size.
4598 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
4599 to gen_return_simple.
4600
360032ba
JY
46012009-04-22 Jing Yu <jingyu@google.com>
4602
4603 PR testsuite/39781
4604 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
4605
53650abe
AP
46062009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
4607
4608 PR C/31499
4609 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
4610 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
4611 value is a VECTOR_CST, the element type is the element type of the
4612 vector.
4613
89043e8a
DD
46142009-04-22 DJ Delorie <dj@redhat.com>
4615
4616 * config/m32c/m32c.h: Update GTY annotations to new syntax.
4617
023f059b
JJ
46182009-04-22 Jakub Jelinek <jakub@redhat.com>
4619
4620 * alias.c (find_base_term): Move around LO_SUM case, so that
4621 CONST falls through into PLUS/MINUS handling.
4622
2c0eba5a
JJ
4623 PR c/39855
4624 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
4625 into 0, use omit_one_operand.
4626
9a461028
BE
46272009-04-23 Ben Elliston <bje@au.ibm.com>
4628
4629 * config/rs6000/linux-unwind.h (get_regs): Remove type
4630 puns. Change the type of `pc' to an array of unsigned ints and
4631 update all users. Constify frame24.
4632
653e2568
DD
46332009-04-22 DJ Delorie <dj@redhat.com>
4634
4635 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
4636 declarations before code.
4637 (current_function_special_page_vector): Likewise.
4638 (m32c_expand_insv): Silence a warning.
4639
60839f5d 46402009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
4641
4642 * alias.c: Update GTY annotations to new syntax.
4643 * basic-block.h: Likewise.
4644 * bitmap.h: Likewise.
4645 * c-common.h: Likewise.
4646 * c-decl.c: Likewise.
4647 * c-parser.c: Likewise.
4648 * c-pragma.c: Likewise.
4649 * c-tree.h: Likewise.
4650 * cfgloop.h: Likewise.
4651 * cgraph.h: Likewise.
4652 * config/alpha/alpha.c: Likewise.
4653 * config/arm/arm.h: Likewise.
4654 * config/avr/avr.h: Likewise.
4655 * config/bfin/bfin.c: Likewise.
4656 * config/cris/cris.c: Likewise.
4657 * config/darwin.c: Likewise.
4658 * config/frv/frv.c: Likewise.
4659 * config/i386/i386.c: Likewise.
4660 * config/i386/i386.h: Likewise.
4661 * config/i386/winnt.c: Likewise.
4662 * config/ia64/ia64.h: Likewise.
4663 * config/iq2000/iq2000.c: Likewise.
4664 * config/mips/mips.c: Likewise.
4665 * config/mmix/mmix.h: Likewise.
4666 * config/pa/pa.c: Likewise.
4667 * config/pa/pa.h: Likewise.
4668 * config/rs6000/rs6000.c: Likewise.
4669 * config/s390/s390.c: Likewise.
4670 * config/sparc/sparc.c: Likewise.
4671 * config/xtensa/xtensa.c: Likewise.
4672 * cselib.h: Likewise.
4673 * dbxout.c: Likewise.
4674 * dwarf2out.c: Likewise.
4675 * except.c: Likewise.
4676 * except.h: Likewise.
4677 * fixed-value.h: Likewise.
4678 * function.c: Likewise.
4679 * function.h: Likewise.
4680 * gimple.h: Likewise.
4681 * integrate.c: Likewise.
4682 * optabs.c: Likewise.
4683 * output.h: Likewise.
4684 * real.h: Likewise.
4685 * rtl.h: Likewise.
4686 * stringpool.c: Likewise.
4687 * tree-data-ref.c: Likewise.
4688 * tree-flow.h: Likewise.
4689 * tree-scalar-evolution.c: Likewise.
4690 * tree-ssa-address.c: Likewise.
4691 * tree-ssa-alias.h: Likewise.
4692 * tree-ssa-operands.h: Likewise.
4693 * tree.c: Likewise.
4694 * tree.h: Likewise.
4695 * varasm.c: Likewise.
4696 * varray.h: Likewise.
4697 * vec.h: Likewise.
bf758008 4698 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
4699 * doc/gty.texi: Update GTY documentation to new syntax.
4700 * gengtype-lex.l: Enforce attribute-like syntax for GTY
4701 annotations on structs.
4702 * gengtype-parse.c: Likewise.
4703
a123d175
MH
47042009-04-22 Mark Heffernan <meheff@google.com>
4705
bf758008 4706 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 4707
4c7c486a
KH
47082009-04-22 Kazu Hirata <kazu@codesourcery.com>
4709
4710 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
4711 where appropriate.
4712
6e782a29
KH
47132009-04-22 Kazu Hirata <kazu@codesourcery.com>
4714
4715 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
4716 the same as a PLUS without a shift. Increase the cost of a
4717 CONST_INT in MULT.
4718
38d2336a
MLI
47192009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4720
4721 * Makefile.in: Update dependencies.
bf758008 4722 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
4723 * errors.h: Remove bogus comment about compatibility.
4724 (warning): Update declaration.
4725 * genautomata.c: Update all calls to warning.
4726 * gimple.c: Do not include errors.h. Include toplev.h.
4727 * tree-ssa-structalias.c: Do not include errors.h.
4728 * omega.c: Likewise.
4729 * tree-ssa-reassoc.c: Likewise.
4730 * config/spu/spu-c.c: Likewise.
4731 * config/spu/t-spu-elf: Update dependencies.
4732
aea4deba
RG
47332009-04-22 Richard Guenther <rguenther@suse.de>
4734
4735 PR tree-optimization/39824
4736 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
4737 make sure the types are compatible.
4738
cfc93532
MLI
47392009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4740
4741 PR c++/14875
4742 * c-common.c (c_parse_error): Take a token_flags parameter.
4743 Use token_type for the token type instead.
4744 Pass token_flags to cpp_type2name.
4745 * c-common.h (c_parse_error): Update declaration.
4746 * c-parser.c (c_parser_error): Pass 0 as token flags.
4747
8632d02a
AB
47482009-04-22 Andrey Belevantsev <abel@ispras.ru>
4749
4750 PR rtl-optimization/39580
4751 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
4752
4c33221c
UW
47532009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4754
4755 * function.c (expand_function_end): Do not emit a jump to the "naked"
4756 return label for fall-through returns.
4757 * except.c (sjlj_emit_function_exit): Always place the call to the
4758 unregister function at the location installed by expand_function_end.
4759
9925bce0
RG
47602009-04-22 Richard Guenther <rguenther@suse.de>
4761
4762 PR tree-optimization/39845
4763 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
4764 (gen_inbound_check): Likewise.
4765
24a40b35
NS
47662009-04-22 Nathan Sidwell <nathan@codesourcery.com>
4767
4768 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
4769 padding for PPC.
4770 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
4771 * config/vxlib.c (__gthread_once): Add race guard for PPC.
4772
6c34a092
PB
47732009-04-22 Paolo Bonzini <bonzini@gnu.org>
4774
4775 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
4776 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
4777 shift counts to avoid out-of-bounds array accesses.
4778
baa48dfa
PB
47792009-04-22 Paolo Bonzini <bonzini@gnu.org>
4780
4781 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
4782 (Pmode): Move above.
4783
7d83f4f5
UB
47842009-04-22 Uros Bizjak <ubizjak@gmail.com>
4785
4786 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
4787 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
4788 GET_CODE macro. Use IN_RANGE macro where appropriate.
4789 * config/alpha/alpha.h: Ditto.
4790 * config/alpha/alpha.md: Ditto.
4791 * config/alpha/constraints.md: Ditto.
4792 * config/alpha/predicates.md: Ditto.
4793
3ad606bc
PB
47942009-04-22 Paolo Bonzini <bonzini@gnu.org>
4795
4796 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
4797 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4798 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4799 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4800 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4801 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4802 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4803 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4804 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4805 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4806 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4807 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4808 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4809 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4810 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4811 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4812 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4813 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4814 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4815 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4816 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4817 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4818 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4819 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4820 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4821 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4822 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4823
3cabd6d1
LB
48242009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4825
4826 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
4827 references from comments.
4828 * cfgbuild.c: (count_basic_blocks): Delete.
4829 (find_basic_blocks_1): Delete.
4830 (find_basic_blocks): Delete.
4831 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 4832 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
4833 * except.h (finish_eh_generation): Delete.
4834 * basic-block.h (find_basic_blocks): Delete.
4835 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
4836
270d1bcd
DK
48372009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
4838
4839 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
4840 (sdbout_parms): Likewise.
4841
b757d36f
KK
48422009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
4843
4844 * config/sh/sh.c (prepare_cbranch_operands): Use
4845 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
4846 (expand_cbranchdi4): Likewise.
4847 (from_compare): Add cast to enum type.
4848 (expand_cbranchsi4): Use add_reg_note.
4849 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
4850 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
4851 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
4852 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4853 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
4854 instead of CODE_FOR_nothing.
4855 (cbranchdi4): Likewise. Fix the order of arguments for
4856 gen_rtx_fmt_ee.
4857 (push_fpscr): Use add_reg_note.
4858 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
4859 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
4860
ad41bd84
JM
48612009-04-21 Joseph Myers <joseph@codesourcery.com>
4862
4863 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
4864 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4865 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4866 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
4867 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
4868 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
4869 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
4870 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
4871 config/alpha/x-vms, config/arc/t-arc,
4872 config/arm/README-interworking, config/arm/arm-c.c,
4873 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
4874 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
4875 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
4876 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
4877 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
4878 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
4879 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
4880 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
4881 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
4882 config/cris/t-elfmulti, config/crx/t-crx,
4883 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
4884 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
4885 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
4886 config/h8300/t-h8300, config/i386/athlon.md,
4887 config/i386/darwin-libgcc.10.4.ver,
4888 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
4889 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
4890 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
4891 config/i386/t-linux64, config/i386/t-nwld,
4892 config/i386/t-rtems-i386, config/i386/t-sol2-10,
4893 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
4894 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
4895 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
4896 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
4897 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
4898 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
4899 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
4900 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
4901 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
4902 config/m68k/t-uclinux, config/mcore/t-mcore,
4903 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
4904 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
4905 config/mips/crtn.asm, config/mips/irix-crti.asm,
4906 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
4907 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
4908 config/mips/mips-fixed.md, config/mips/sb1.md,
4909 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
4910 config/mips/t-iris6, config/mips/t-isa3264,
4911 config/mips/t-libgcc-mips16, config/mips/t-linux64,
4912 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
4913 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
4914 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
4915 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
4916 config/mn10300/t-linux, config/mn10300/t-mn10300,
4917 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
4918 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
4919 config/picochip/libgccExtras/clzsi2.asm,
4920 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
4921 config/rs6000/darwin-libgcc.10.4.ver,
4922 config/rs6000/darwin-libgcc.10.5.ver,
4923 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
4924 config/rs6000/t-aix43, config/rs6000/t-aix52,
4925 config/rs6000/t-darwin, config/rs6000/t-fprules,
4926 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
4927 config/rs6000/t-lynx, config/rs6000/t-netbsd,
4928 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
4929 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
4930 config/rs6000/t-rtems, config/rs6000/t-spe,
4931 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
4932 config/score/t-score-elf, config/sh/divcost-analysis,
4933 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
4934 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
4935 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
4936 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
4937 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
4938 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
4939 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
4940 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
4941 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
4942 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
4943 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
4944 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
4945 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
4946 limitx.h, version.c, xcoff.h: Add copyright and license notices.
4947 * config/h8300/genmova.sh: Include copyright and license notices
4948 in generated output.
4949 * config/h8300/mova.md: Regenerate.
4950 * doc/install.texi2html: Include word "Copyright" in copyright
4951 notice and use name "Free Software Foundation, Inc.".
4952 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4953 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4954 ChangeLog-2007, ChangeLog-2008: Correct dates.
4955
ca80e52b
EB
49562009-04-21 Eric Botcazou <ebotcazou@adacore.com>
4957
4958 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
4959 NE_EXPR operations as well.
4960 * c-parser.c (c_parser_condition): Do not set location information on
4961 the condition.
4962 (c_parser_conditional_expression): Likewise.
4963 (c_parser_binary_expression): Set location information on operators.
4964 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
4965 TRUTH_NOT_EXPR has been folded.
4966 * fold-const.c (fold_truth_not_expr): Copy location information from
4967 the incoming expression to the outgoing one.
4968 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
4969 recursive calls on the LHS of the operator but pass that of the
4970 operator to recursive calls on the RHS of the operator. Set it
4971 on the COND_EXPR.
4972 (shortcut_cond_expr): Set the locus of the operator on the second
4973 COND_EXPR and that of the expression on the first in degenerate cases.
4974 Pass the locus of the expression to calls to shortcut_cond_r.
4975 Set the locus of the 'then' block on the associated jump, if any.
4976 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
4977 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
4978 expression to call to gimplify_boolean_expr.
4979
35091630
KT
49802009-04-21 Kai Tietz <kai.tietz@onevision.com>
4981
4982 * config.gcc: Add additional configuration for
4983 i686-w64-mingw* and x86_64-w64-mingw* triplet.
4984 * config/i386/mingw-w64.h: New mingw-w64 specific header.
4985 (CPP_SPEC): Redefine for allowing -municode option.
4986 (STARTFILE_SPEC): Likewise.
4987 * config/i386/t-mingw-w64: New.
4988 * config/i386/mingw-w64.opt: New.
4989 (municode): Add new target option.
4990 * doc/invoke.texi (municode): Add documentation for new option.
4991
0267afc4
ILT
49922009-04-21 Ian Lance Taylor <iant@google.com>
4993
4994 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4995 Correct test for number of arguments.
4996 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
4997
2ba9daa7
AS
49982009-04-21 Andreas Schwab <schwab@linux-m68k.org>
4999
5000 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
5001 argument of emit_library_call.
5002
ad8a1ac0
RG
50032009-04-21 Richard Guenther <rguenther@suse.de>
5004
5005 PR middle-end/39829
5006 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
5007 inside VIEW_CONVERT_EXPRs.
5008
7156c8ab
MJ
50092009-04-21 Martin Jambor <mjambor@suse.cz>
5010
5011 * tree-switch-conversion.c (build_constructors): Split a long line.
5012 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
5013 (build_one_array): Create assigns of constants if possible, do not
5014 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
5015 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
5016 make_rename_temp. Do not call mark_symbols_for_renaming, call
5017 update_stmt.
5018 (gen_def_assigns): Do not call mark_symbols_for_renaming or
5019 find_new_referenced_vars, call update_stmt.
5020 (gen_inbound_check): Use create_tmp_var and create ssa names manually
5021 instead of calling make_rename_temp. Do not call
5022 find_new_referenced_vars or mark_symbols_for_renaming, call
5023 update_stmt.
5024
2970ccb3
RG
50252009-04-21 Richard Guenther <rguenther@suse.de>
5026
5027 PR tree-optimization/39827
7d83f4f5 5028 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
5029 (tree_ssa_phiprop): Pass the correct array size.
5030
47f402d1
UB
50312009-04-21 Uros Bizjak <ubizjak@gmail.com>
5032
5033 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
5034
1e4ae551
MLI
50352009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
5036
5037 PR 16202
5038 * c-typeck.c (lvalue_p): Move declaration ...
5039 * c-common.h (lvalue_p): ... to here.
5040 * c-common.c (candidate_equal_p): New.
5041 (add_tlist): Use it.
5042 (merge_tlist): Use it.
5043 (warn_for_collisions_1): Likewise.
5044 (warning_candidate_p): Accept more candidates.
5045 (verify_tree): A warning candidate can be an expression. Use
5046 candidate_equal_p.
5047
244609a6
BE
50482009-04-21 Ben Elliston <bje@au.ibm.com>
5049
5050 PR target/5267
5051 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
5052 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
5053 options. Remove -mcall-solaris documentation.
5054
9c650d90
MLI
50552009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5056
5057 PR c++/13358
5058 * doc/invoke.texi (-Wlong-long): Update description.
5059 * c-lex (interpret_integer): Only warn if there was no previous
5060 overflow and -Wlong-long is enabled.
5061 * c-decl.c (declspecs_add_type): Drop redundant flags.
5062 * c.opt (Wlong-long): Init to -1.
5063 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
5064 and front-end warn_long_long. Wlong-long only depends on other
5065 flags if it is uninitialized.
5066 * c-parser.c (disable_extension_diagnostics): warn_long_long is
5067 the same for CPP and FE.
5068 (restore_extension_diagnostics): Likewise.
5069
bbbbb16a
ILT
50702009-04-20 Ian Lance Taylor <iant@google.com>
5071
5072 Fix enum conversions which are invalid in C++:
47f402d1
UB
5073 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
5074 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
5075 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
5076 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 5077 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 5078 (dbxout_parms): Likewise.
47f402d1 5079 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
5080 (df_clear_flags): Likewise.
5081 * df-problems.c (df_rd_bb_local_compute_process_def): Change
5082 top_flag parameter to int.
5083 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
5084 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
5085 Remove cast.
bbbbb16a
ILT
5086 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
5087 (df_ref_create_structure, df_def_record_1): Likewise.
5088 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
5089 (df_notes_rescan): Change 0 to VOIDmode in function call.
5090 (df_get_call_refs, df_insn_refs_collect): Likewise.
5091 (df_bb_regs_collect): Likewise.
5092 (df_entry_block_defs_collect): Likewise.
5093 (df_exit_block_uses_collect): Likewise.
5094 * df.h: Update declarations.
5095 * double-int.c (double_int_divmod): Add cast to enum type.
5096 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
5097 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
5098 (based_loc_descr): Likewise.
5099 (loc_descriptor_from_tree_1): Change first_op and second_op to
5100 enum dwarf_location_atom. Add cast to enum type.
5101 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 5102 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
5103 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
5104 (do_store_flag): Likewise.
5105 * fixed-value.h (struct fixed_value): Change mode to enum
5106 machine_mode.
47f402d1 5107 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
5108 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
5109 function call.
5110 (insert_insn_decl, insert_decl, insert_state): Likewise.
5111 (automata_list_finish): Likewise.
5112 * genrecog.c (process_define_predicate): Add cast to enum type.
5113 * gensupport.c (init_predicate_table): Add cast to enum type.
5114 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
5115 function call.
5116 (gimple_build_call_1, gimple_build_label): Likewise.
5117 (gimple_build_goto, gimple_build_asm_1): Likewise.
5118 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 5119 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
5120 (enum fallback): Rename from enum fallback_t.
5121 (fallback_t): Typedef as int.
5122 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
5123 GSI_SAME_STMT in function call.
5124 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
5125 enum type.
5126 (setup_reg_class_relations): Likewise.
47f402d1 5127 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
5128 (setup_prohibited_class_mode_regs): Add cast to enum type.
5129 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 5130 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
5131 (record_address_regs): Change i to enum reg_class.
5132 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
5133 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
5134 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
5135 (GET_MODE_2XWIDER_MODE): Likewise.
5136 (GET_CLASS_NARROWEST_MODE): Likewise.
5137 * omp-low.c (expand_omp_for): Add cast to enum type.
5138 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
5139 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
5140 * postreload.c (reload_cse_simplify_operands): Change rclass local
5141 to enum reg_class.
5142 * predict.c (combine_predictions_for_insn): Change best_predictor
5143 and predictor to enum br_predictor.
5144 (combine_predictions_for_bb): Likewise.
5145 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
5146 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 5147 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
5148 * reginfo.c (init_move_cost): Add casts to enum type.
5149 (init_reg_sets_1, init_fake_stack_mems): Likewise.
5150 * regmove.c (regclass_compatible_p): Change class0 and class1 to
5151 enum reg_class.
5152 * reload.c (find_valid_class): Add casts to enum type.
5153 (push_reload): Change 0 to NO_REGS in function call.
5154 (find_reloads): Change this_alternative to array of enum
5155 reg_class. Remove some now-unnecessary casts.
5156 (make_memloc): Change 0 to VOIDmode in function call.
5157 * reload1.c (reload): Change 0 to VOIDmode in function call.
5158 (eliminate_regs_1, elimination_effects): Likewise.
5159 (eliminate_regs_in_insn): Likewise.
5160 (emit_input_reload_insns): Add cast to enum type.
5161 (delete_output_reload): Change 0 to VOIDmode in function call.
5162 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
5163 to enum type in function call.
5164 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
5165 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 5166 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
5167 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
5168 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
5169 (dump_function): Likewise.
5170 * tree-dump.h: Update declarations.
5171 * tree-pass.h: Update declarations.
5172 * varasm.c (assemble_integer): Change mclass to enum mode_class.
5173 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
5174 enum type.
5175 (arm_rtx_costs_1): Correct parenthesization.
5176 (arm_rtx_costs): Add casts to enum type.
5177 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
5178 (vfp_emit_fstmd): Use add_rg_note.
5179 (emit_multi_reg_push, emit_sfm): Likewise.
5180 (thumb_set_frame_pointer): Likewise.
5181 (arm_expand_prologue): Likewise.
5182 (arm_regno_class): Change return type to enum reg_class.
5183 (thumb1_expand_prologue): Use add_reg_note.
5184 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
5185 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
5186 in function call.
5187 * config/arm/gentune.sh: Add cast to enum type.
5188 * config/arm/arm-tune.md: Rebuild.
5189 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
5190 (ix86_split_fp_branch, predict_jump): Likewise.
5191 (ix86_expand_multi_arg_builtin): Change sub_code from enum
5192 insn_code to enum rtx_code.
5193 (ix86_builtin_vectorized_function): Add cast to enum type.
5194 * config/i386/i386.md (truncdfsf2): Change slot to enum
5195 ix86_stack_slot.
5196 (truncxf<mode>2, isinf<mode>2): Likewise.
5197 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
5198 enum type.
5199 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
5200 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
5201 (insert_bundle_state): Change 1 to INSERT in function call.
5202 (ia64_add_bundle_selector_before): Likewise.
5203 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
5204 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
5205 (restore_stack_nonlocal): Likewise.
5206 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
5207 function call.
5208 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
5209 function call.
5210 (mips_rtx_costs): Likewise.
5211 (mips_override_options): Add casts to enum type.
5212 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
5213 in function call.
5214 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
5215 (store_reg, set_reg_plus_d): Likewise.
5216 (hppa_expand_prologue, hppa_profile_hook): Likewise.
5217 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
5218 cast to enum type.
5219 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
5220 function call.
5221 (emit_unlikely_jump): Use add_reg_note.
5222 (rs6000_emit_allocate_stack): Likewise.
5223 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
5224 (output_toc): Change 1 to INSERT in function call.
5225 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
5226 (rs6000_initialize_trampoline): Likewise.
5227 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
5228 function call.
5229 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
5230 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
5231 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
5232 (save_gprs): Use add_reg_note.
5233 (s390_emit_prologue): Likewise.
47f402d1 5234 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
5235 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
5236 (sparc_fold_builtin): Add cast to enum type.
5237 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
5238 enum insn_code.
5239 (spu_expand_prologue): Use add_reg_note.
47f402d1 5240 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
5241
52422009-04-20 Ian Lance Taylor <iant@google.com>
5243
5244 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
5245 (c_parser_postfix_expression_after_primary): Get VEC for list of
5246 arguments. Get original types of arguments. Call
5247 build_function_call_vec.
5248 (cached_expr_list_1, cached_expr_list_2): New static variables.
5249 (c_parser_expr_list): Change return type to VEC *. Add
5250 p_orig_types parameter. Change all callers.
5251 (c_parser_release_expr): New static function.
5252 (c_parser_vec_to_tree_list): New static function.
5253 * c-typeck.c (build_function_call): Rewrite to build a VEC and
5254 call build_function_call_vec.
5255 (build_function_call_vec): New function, based on old
5256 build_function_call.
5257 (convert_arguments): Remove nargs and argarray parameters. Change
5258 values to a VEC. Add origtypes parameter.
47f402d1 5259 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
5260 (convert_for_assignment): Add origtype parameter. Change all
5261 callers. If warn_cxx_compat, check for conversion to an enum
5262 type when calling a function.
5263 (store_init_value): Add origtype parameter. Change all callers.
5264 (digest_init): Likewise.
5265 (struct init_node): Add origtype field.
5266 (add_pending_init): Add origtype parameter. Change all callers.
5267 (output_init_element): Likewise.
5268 (output_pending_init_elements): Pass origtype from init_node to
5269 output_init_element.
f28a61ab 5270 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
5271 output_init_element.
5272 (c_finish_return): Add origtype parameter. Change all callers.
5273 * c-common.c (sync_resolve_size): Change params to VEC *. Change
5274 caller.
5275 (sync_resolve_params): Likewise.
47f402d1 5276 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 5277 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 5278 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
5279 * c-decl.c (finish_decl): Add origtype parameter. Change all
5280 callers. Call build_function_call_vec rather than
5281 build_function_call for cleanup.
5282 * c-tree.h: Update declarations.
5283 * c-common.h: Update declarations.
5284 * stub-objc.c (objc_rewrite_function_call): Change parameter from
5285 params to first_param.
5286 * target.h (struct gcc_target): Change resolve_overloaded_builtin
5287 params parameter from tree to void *.
5288 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5289 Change arglist parameter to have type void *, and to be a pointer
5290 to a VEC.
5291 * config/rs6000/rs6000-protos.h
5292 (altivec_resolve_overloaded_builtin): Update declaration.
5293 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
5294 fnargs parameter to have type void *, and to be a pointer to a
5295 VEC. Call build_function_call_vec instead of
5296 build_function_call.
47f402d1 5297 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 5298
6ff078d4 52992009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 5300 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
5301 H.J. Lu <hongjiu.lu@intel.com>
5302
5303 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
5304
5305 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
5306 (IX86_LEA_PRIORITY): Likewise.
5307 (distance_non_agu_define): New function.
5308 (distance_agu_use): Likewise.
5309 (ix86_lea_for_add_ok): Likewise.
5310 (ix86_dep_by_shift_count): Likewise.
5311
5312 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
5313 should split for LEA.
5314
5315 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
5316 function.
5317 (ix86_dep_by_shift_count): Likewise.
5318
87a5b4cc
RG
53192009-04-20 Richard Guenther <rguenther@suse.de>
5320
5321 * expr.c (handled_component_p): Move ...
5322 * tree.h (handled_component_p): ... here.
5323 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
5324 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
5325 and REALPART_EXPR to be in one group.
5326
438c239d
RG
53272009-04-20 Richard Guenther <rguenther@suse.de>
5328
5329 * basic-block.h (get_all_dominated_blocks): Declare.
5330 * dominance.c (get_all_dominated_blocks): New function.
5331 * tree-cfg.c (get_all_dominated_blocks): Remove.
5332 (remove_edge_and_dominated_blocks): Adjust.
5333 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
5334 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
5335 instead of recursing.
5336
fed5ae11
DK
53372009-04-20 Doug Kwan <dougkwan@google.com>
5338
5339 * cgraph.h (cgraph_node_ptr): New type for vector functions.
5340 (struct cgraph_node_set_def): New type.
5341 (cgraph_node_set) New type. Also declare vector functions.
5342 (struct cgraph_node_set_element_def): New type.
5343 (cgraph_node_set_element): Ditto.
5344 (cgraph_node_set_iterator): New iterator type.
5345 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
5346 cgraph_node_set_remove, dump_cgraph_node_set,
5347 debug_cgraph_node_set): New prototypes.
5348 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
5349 cgraph_node_set_size): New inlines.
5350 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
5351 including cgraph.h.
5352 (struct ipa_opt_pass): Add struct cgraph_node_set_def
5353 argument to function 'write_summary'.
5354 * ipa.c: Include ggc.h.
5355 (hash_cgraph_node_set_element,
5356 eq_cgraph_node_set_element, cgraph_node_set_new,
5357 cgraph_node_set_add, cgraph_node_set_remove,
5358 cgraph_node_set_find, dump_cgraph_node_set,
5359 debug_cgraph_node_set): New functions.
5360 * Makefile.in (ipa.o): Add dependency on GGC_H.
5361
c4551b28
IR
53622009-04-20 Ira Rosen <irar@il.ibm.com>
5363
5364 PR tree-optimization/39675
2ba9daa7 5365 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
5366 check of the return code of vect_schedule_slp. Check that
5367 stmt_vec_info still exists for the statement, before checking its
5368 vectorization type.
c4551b28 5369
21a495fb
MM
53702009-04-20 Michael Matz <matz@suse.de>
5371
5372 * Makefile.in (generated_files): Take out $(simple_generated_c).
5373
8e208874
DK
53742009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
5375
5376 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
5377 (UINTPTR_TYPE): Likewise.
5378
a45e580b
JM
53792009-04-19 Joseph Myers <joseph@codesourcery.com>
5380
5381 PR c/37481
5382 * c-typeck.c (digest_init): Check for initializing an array with a
5383 string literal.
5384
20845d35
JM
53852009-04-19 Joseph Myers <joseph@codesourcery.com>
5386
5387 PR c/19771
5388 * c-semantics.c (pop_stmt_list): Propagate
5389 STATEMENT_LIST_HAS_LABEL to parent statement list.
5390
28143fdd
AN
53912009-04-19 Adam Nemet <anemet@caviumnetworks.com>
5392
5393 * config/mips/mips.h (mips_tune_attr): New macro.
5394 * config/mips/mips.md (cpu): Use it.
5395
da377db9
JM
53962009-04-19 Joseph Myers <joseph@codesourcery.com>
5397
5398 PR c/38243
5399 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
5400 declaring a tag.
5401
3baf459d
DN
54022009-04-19 Diego Novillo <dnovillo@google.com>
5403
5404 * toplev.c (compile_file): Move call to coverage_finish ...
5405 * cgraphunit.c (ipa_passes): ... here.
5406 Call cgraph_process_new_functions.
5407 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
5408 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
5409
b6fa5b01
JH
54102009-04-19 Jan Hubicka <jh@suse.cz>
5411
47f402d1
UB
5412 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
5413 cfun.
b6fa5b01
JH
5414 (dump_cgraph_node): Dump can throw external flag.
5415 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
5416
ca409efd
MLI
54172009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
5418
5419 PR c/32061
5420 PR c++/36954
5421 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
5422 * common.opt (Wlogical-op): Move from here...
5423 * c.opt (Wlogical-op): ... to here.
5424 * c-typeck.c (parser_build_binary_op): Update call to
5425 warn_logical_operator.
5426 * c-opts.c (c_common_post_options): Enable warn_logical_op with
5427 extra_warnings.
5428 * c-common.c (warn_logical_op): Update.
5429 * c-common.h (warn_logical_op): Update declaration.
5430
9db4cdd3
EB
54312009-04-19 Eric Botcazou <ebotcazou@adacore.com>
5432
5433 * tree.c (protected_set_expr_location): Fix formatting.
5434
f37acdf9
JM
54352009-04-18 Joseph Myers <joseph@codesourcery.com>
5436
5437 PR c/27676
5438 * c-typeck.c (readonly_warning): new.
5439 (build_unary_op, build_modify_expr): Use readonly_warning for
5440 storing into something readonly but not const-qualified.
5441
2b4b7036
JM
54422009-04-18 Joseph Myers <joseph@codesourcery.com>
5443
5444 PR c/22367
5445 * c-typeck.c (build_unary_op): Check for taking address of
5446 expression of type void.
5447
3ce62965
JM
54482009-04-18 Joseph Myers <joseph@codesourcery.com>
5449
5450 PR c/35210
5451 * c-typeck.c (build_function_call): Check for calling a function
5452 with qualified void return types. Call require_complete_type when
5453 generating a trap.
5454
2505c5ed
JH
54552009-04-18 Jan Hubicka <jh@suse.cz>
5456
5457 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
5458 Set nothrow flag.
5459 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
5460 can_throw_external flag.
5461 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
5462 * ipa-pure-const.c (ignore_edge): New function.
5463 (propagate): Compute order for NOTHROW computation; set NOTHROWs
5464 only over can_throw_external edges.
5465 (local_pure_const): Add nothrow flag.
5466 * ipa-utils.c (searchc): Add ignore_edge callback.
5467 (ipa_utils_reduced_inorder): Add ignore_edge callback.
5468 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
5469 (set_nothrow_function_flags): Update cgraph.
5470 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
5471
2586ba4b
RG
54722009-04-18 Richard Guenther <rguenther@suse.de>
5473
5474 PR middle-end/39804
5475 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
5476 (fold_stmt): ... this and ...
5477 (fold_stmt_inplace): ... this.
5478 (fold_stmt_1): Fold references in calls and asms.
5479 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
5480
1eefab17
KH
54812009-04-18 Kazu Hirata <kazu@codesourcery.com>
5482
5483 * tree-vrp.c (ssa_name_nonzero_p): Remove.
5484 * tree.h: Remove the prototype for ssa_name_nonzero_p.
5485
aa424b01
KH
54862009-04-18 Kazu Hirata <kazu@codesourcery.com>
5487
5488 * tree.c (function_args_count): Remove.
5489 * tree.h: Remove the prototype for function_args_count.
5490
613a896b
KH
54912009-04-18 Kazu Hirata <kazu@codesourcery.com>
5492
5493 * tree-iterator.c (expr_only): Remove.
5494 * tree.h: Remove the prototype for expr_only.
5495
579e694c
KH
54962009-04-18 Kazu Hirata <kazu@codesourcery.com>
5497
5498 * reginfo.c (cannot_change_mode_set_regs): Remove.
5499 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
5500
ee7e3ad3
AS
55012009-04-08 Anatoly Sokolov <aesok@post.ru>
5502
5503 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
5504 whether operands 0 and 1 overlaps.
5505
92ef7fb1
MLI
55062009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
5507
5508 PR middle-end/36902
5509 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
5510 pointer. Use warning_at instead of warning.
5511 (search_for_addr_array): Likewise.
5512 (check_array_bounds): Likewise.
5513 (check_all_array_refs): Check that the incoming edge is not in the
5514 list of edges to be removed.
5515 (check_all_array_refs): Avoid the temporal pointer.
5516 (vrp_visit_cond_stmt): Fix typo.
5517 (simplify_switch_using_ranges): Handle the case where the switch
5518 index is an integer constant.
5519
0e097268
AN
55202009-04-18 Adam Nemet <anemet@caviumnetworks.com>
5521
5522 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
5523
c782f1dd
KH
55242009-04-18 Kazu Hirata <kazu@codesourcery.com>
5525
5526 * doc/extend.texi, doc/invoke.texi: Fix typos.
5527
668fb0e8
CC
55282009-04-17 Cary Coutant <ccoutant@google.com>
5529
5530 * tree-flow-inline.h (get_lineno): Fix inverted test.
5531
4d4014c1
DN
55322009-04-17 Diego Novillo <dnovillo@google.com>
5533
5534 * tree-ssa-pre.c (create_expression_by_pieces): Remove
5535 assertion for AVAIL_OUT.
5536
2984e1b6
MF
55372009-04-17 Mike Frysinger <vapier@gentoo.org>
5538
5539 PR target/38627
5540 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
5541 * config/sh/linux-atomic.asm: Likewise.
5542
9994a182
DN
55432009-04-17 Diego Novillo <dnovillo@google.com>
5544
5545 * except.c (debug_eh_tree): New.
5546 (struct eh_region, struct eh_status): Move ...
5547 * except.h: ... here.
5548 (add_type_for_runtime): Declare extern.
5549 (lookup_type_for_runtime): Likewise.
5550 (debug_eh_tree): Declare.
5551 * Makefile.in (GTFILES): List except.h before except.c
5552
07485407
DN
55532009-04-17 Diego Novillo <dnovillo@google.com>
5554
47f402d1 5555 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
5556 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
5557 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
5558 (find_vars_r): ... here.
5559 * tree-flow.h (find_referenced_vars_in): Declare.
5560 * tree-ssa-pre.c (create_expression_by_pieces): Assert
5561 that AVAIL_OUT exists for BLOCK.
5562 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
5563 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
5564 (tree-parloops.o): Likewise.
5565
4e53d196
SB
55662009-04-17 Simon Baldwin <simonb@google.com>
5567
5568 * toplev.c (default_tree_printer): Add handling for %E format.
5569
413d3aa8
DN
55702009-04-17 Diego Novillo <dnovillo@google.com>
5571
47f402d1
UB
5572 * tree-pretty-print.c (dump_generic_node): Add break after
5573 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
5574 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
5575 FUNCTION_TYPE together. Call print_struct_decl when printing
5576 structures and TDF_SLIM is not given.
413d3aa8
DN
5577 (print_struct_decl): Fix logic for detecting recursion.
5578
5a691e98
RAE
55792009-04-17 Rafael Avila de Espindola <espindola@google.com>
5580
5581 PR 31567
5582 * gcc.c (create_at_file): New.
5583 (compile_input_file_p): New.
5584 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
5585 * main.c (main): Update call to toplev_main.
5586 * toplev.c (toplev_main): Change signature. Call expandargv.
5587 * toplev.h (toplev_main): Change signature.
5588
9eacf7a6
EB
55892009-04-17 Eric Botcazou <ebotcazou@adacore.com>
5590
5591 * dwarf2out.c (field_byte_offset): Use the type size as the field size
5592 if the latter is not constant.
5593
58298177
DE
55942009-04-17 David Edelsohn <edelsohn@gnu.org>
5595
5596 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
5597
5b4c43d7
EB
55982009-04-17 Eric Botcazou <ebotcazou@adacore.com>
5599
5600 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
5601 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
5602
b51605c4
RG
56032009-04-17 Richard Guenther <rguenther@suse.de>
5604
5605 * tree-ssa-structalias.c (get_constraint_for_component_ref):
5606 Handle component references view-converting an invariant address.
5607
9e3be889
AN
56082009-04-17 Adam Nemet <anemet@caviumnetworks.com>
5609
5610 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
5611 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
5612 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
5613 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
5614 Use @deftypevr rather than @deftypevar.
5615
7c3e9dc3
RG
56162009-04-17 Richard Guenther <rguenther@suse.de>
5617
47f402d1 5618 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
5619 (get_prop_source_stmt): Likewise.
5620 (can_propagate_from): Likewise.
5621
aca600aa
AS
56222009-04-17 Andrew Stubbs <ams@codesourcery.com>
5623
5624 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
5625 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
5626 (--with-multilib-list): Add default value.
5627 * configure: Regenerate.
5628 * Makefile.in (TM_ENDIAN_CONFIG): Define.
5629 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
5630 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
5631 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
5632 Don't add default cpu to multilib list unnecessarily, but do enable
5633 the relevant compiler option..
5634 Add support for --with-multilib-list=<blank> and
5635 --with-multilib-list=!<somelib> to supress unwanted multilibs.
5636 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
5637 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
5638 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
5639 TM_MULTILIB_CONFIG.
5640 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
5641 (MULTILIB_OSDIRNAMES): New variable.
5642 * config/sh/t-1e: Delete file.
5643 * config/sh/t-mlib-sh1: Delete file.
5644 * config/sh/t-mlib-sh2: Delete file.
5645 * config/sh/t-mlib-sh2a: Delete file.
5646 * config/sh/t-mlib-sh2a-nofpu: Delete file.
5647 * config/sh/t-mlib-sh2a-single: Delete file.
5648 * config/sh/t-mlib-sh2a-single-only: Delete file.
5649 * config/sh/t-mlib-sh2e: Delete file.
5650 * config/sh/t-mlib-sh3e: Delete file.
5651 * config/sh/t-mlib-sh4: Delete file.
5652 * config/sh/t-mlib-sh4-nofpu: Delete file.
5653 * config/sh/t-mlib-sh4-single: Delete file.
5654 * config/sh/t-mlib-sh4-single-only: Delete file.
5655 * config/sh/t-mlib-sh4a: Delete file.
5656 * config/sh/t-mlib-sh4a-nofpu: Delete file.
5657 * config/sh/t-mlib-sh4a-single: Delete file.
5658 * config/sh/t-mlib-sh4a-single-only: Delete file.
5659 * config/sh/t-mlib-sh4al: Delete file.
5660 * config/sh/t-mlib-sh5-32media: Delete file.
5661 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
5662 * config/sh/t-mlib-sh5-64media: Delete file.
5663 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
5664 * config/sh/t-mlib-sh5-compact: Delete file.
5665 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
5666 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
5667 * doc/install.texi (Options specification): Add
5668 --with-multilib-list and --with-endian.
5669
cf8aba7f
RAE
56702009-04-17 Rafael Avila de Espindola <espindola@google.com>
5671
5672 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
5673 REVISION_c.
5674 (OBJS-common): Add plugin-version.o.
5675 (plugin-version.o): New.
5676 * gcc-plugin.h (plugin_gcc_version): New.
5677 (plugin_default_version_check): New.
5678 (plugin_init_func, plugin_init): Add version argument.
5679 * plugin-version.c: New.
5680 * plugin.c (str_plugin_gcc_version_name): New.
5681 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
5682 pass it to the init function.
5683 (plugin_default_version_check): New.
5684
61e20b90
RG
56852009-04-17 Richard Guenther <rguenther@suse.de>
5686
5687 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
5688 for decl-vs-decl disambiguation.
5689
90c6fd8a
AK
56902009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
5691
5692 * config/s390/s390.h (s390_tune_attr): New macro definition.
5693 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
5694
9fe9fe04
RG
56952009-04-17 Richard Guenther <rguenther@suse.de>
5696
5697 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
5698 (fold_stmt_r): Likewise.
5699 (maybe_fold_reference): New function.
5700 (fold_gimple_assign): Handle cases fold_stmt_r did.
5701 (fold_stmt): Do not use fold_stmt_r.
5702 (fold_stmt_inplace): Likewise.
5703
7e673273
RG
57042009-04-17 Richard Guenther <rguenther@suse.de>
5705
5706 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
5707 (record_equivalences_from_stmt): Remove useless checks and
5708 simplifications.
5709 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
5710 the type is already suitable.
5711
fabf2749
PB
57122009-04-17 Paolo Bonzini <bonzini@gnu.org>
5713
5714 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
5715
68f7b061
UB
57162009-04-17 Uros Bizjak <ubizjak@gmail.com>
5717
5718 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
5719 (CMPtype): Define as __gcc_CMPtype.
5720
532bfb0a
AJ
57212009-04-17 Aurelien Jarno <aurelien@aurel32.net>
5722
5723 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
5724 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
5725
e3ac77ff
RG
57262009-04-17 Richard Guenther <rguenther@suse.de>
5727
5728 PR tree-optimization/39746
5729 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
5730 special-casing for builtins and static variable use/def.
5731 (call_may_clobber_ref_p_1): Likewise.
5732
7072a650
ILT
57332009-04-16 Ian Lance Taylor <iant@google.com>
5734
5735 * df.h: Include "timevar.h".
5736 (struct df_problem): Change tv_id field to timevar_id_t.
5737 * tree-pass.h: Include "timevar.h".
5738 (struct opt_pass): Change tv_id field to timevar_id_t.
5739 * timevar.h (timevar_id_t): Define TV_NONE.
5740 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
5741 TV_NONE rather than tv_id != 0.
5742 (execute_one_pass): Likewise.
5743 * Makefile.in (DF_H): Add $(TIMEVAR_H).
5744 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
5745 dependencies to $(TREE_PASS_H).
5746 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
5747 to TV_NONE.
5748 (pass_branch_target_load_optimize2): Likewise.
5749 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
5750 (pass_outof_cfg_layout_mode): Likewise.
5751 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
5752 (pass_rebuild_cgraph_edges): Likewise.
5753 (pass_remove_cgraph_callee_edges): Likewise.
5754 * df-core.c (pass_df_initialize_opt): Likewise.
5755 (pass_df_initialize_no_opt): Likewise.
5756 (pass_df_finish): Likewise.
5757 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
5758 * except.c (pass_set_nothrow_function_flags): Likewise.
5759 (pass_convert_to_eh_region_ranges): Likewise.
5760 * final.c (pass_compute_alignments): Likewise.
5761 * function.c (pass_instantiate_virtual_regs): Likewise.
5762 (pass_init_function): Likewise.
5763 (pass_leaf_regs): Likewise.
5764 (pass_match_asm_constraints): Likewise.
5765 * gimple-low.c (pass_lower_cf): Likewise.
5766 (pass_mark_used_blocks): Likewise.
5767 * init-regs.c (pass_initialize_regs): Likewise.
5768 * integrate.c (pass_initial_value_sets): Likewise.
5769 * ira.c (pass_ira): Likewise.
5770 * jump.c (pass_cleanup_barriers): Likewise.
5771 * omp-low.c (pass_expand_omp): Likewise.
5772 (pass_lower_omp): Likewise.
5773 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
5774 * recog.c (pass_split_all_insns): Likewise.
5775 (pass_split_after_reload): Likewise.
5776 (pass_split_before_regstack): Likewise.
5777 (pass_split_before_sched2): Likewise.
5778 (pass_split_for_shorten_branches): Likewise.
5779 * reginfo.c (pass_reginfo_init): Likewise.
5780 (pass_subregs_of_mode_init): Likewise.
5781 (pass_subregs_of_mode_finish): Likewise.
5782 * passes.c (pass_postreload): Likewise.
5783 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
5784 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
5785 (pass_warn_function_return): Likewise.
5786 (pass_warn_function_noreturn): Likewise.
5787 * tree-complex.c (pass_lower_complex): Likewise.
5788 (pass_lower_complex_O0): Likewise.
5789 * tree-if-conv.c (pass_if_conversion): Likewise.
5790 * tree-into-ssa.c (pass_build_ssa): Likewise.
5791 * tree-mudflap.c (pass_mudflap_1): Likewise.
5792 (pass_mudflap_2): Likewise.
5793 * tree-nomudflap.c (pass_mudflap_1): Likewise.
5794 (pass_mudflap_2): Likewise.
5795 * tree-nrv.c (pass_return_slot): Likewise.
5796 * tree-object-size.c (pass_object_sizes): Likewise.
5797 * tree-optimize.c (pass_all_optimizations): Likewise.
5798 (pass_early_local_passes): Likewise.
5799 (pass_all_early_optimizations): Likewise.
5800 (pass_cleanup_cfg): Likewise.
5801 (pass_cleanup_cfg_post_optimizing): Likewise.
5802 (pass_free_datastructures): Likewise.
5803 (pass_free_cfg_annotations): Likewise.
5804 (pass_fixup_cfg): Likewise.
5805 (pass_init_datastructures): Likewise.
5806 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
5807 (pass_late_warn_uninitialized): Likewise.
5808 (pass_update_address_taken): Likewise.
5809 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
5810 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
5811 (pass_cse_sincos): Likewise.
5812 (pass_convert_to_rsqrt): Likewise.
5813 * tree-ssa-structalias.c (pass_build_alias): Likewise.
5814 * tree-stdarg.c (pass_stdarg): Likewise.
5815 * tree-tailcall.c (pass_tail_recursion): Likewise.
5816 (pass_tail_calls): Likewise.
5817 * tree-vect-generic.c (pass_lower_vector): Likewise.
5818 (pass_lower_vector_ssa): Likewise.
5819 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
5820
0051ef59
JM
58212009-04-16 Joseph Myers <joseph@codesourcery.com>
5822
5823 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
5824 XLR entry.
5825 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
5826 Handle -march=xlr.
5827 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
5828 logical and signext.
5829
b3f8558a
KK
58302009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
5831
5832 PR target/39767
5833 * config/sh/predicates.md (arith_operand): Check if the operand
5834 of TRUNCATE is a REG.
5835
f57597d9
KH
58362009-04-16 Kazu Hirata <kazu@codesourcery.com>
5837
5838 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
5839 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
5840
b172d063
KH
58412009-04-16 Kazu Hirata <kazu@codesourcery.com>
5842
5843 * tree-iterator.c (tsi_split_statement_list_after,
5844 tsi_split_statement_list_before): Remove.
5845 * tree-iterator.h: Remove the prototypes for
532bfb0a 5846 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 5847
78fe4f1f
KH
58482009-04-16 Kazu Hirata <kazu@codesourcery.com>
5849
5850 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
5851 * tree-ssa-propagate.h: Remove the prototype for
5852 stmt_makes_single_load.
5853
43dd3201
KH
58542009-04-16 Kazu Hirata <kazu@codesourcery.com>
5855
5856 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
5857 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
5858
4252a4aa
KH
58592009-04-16 Kazu Hirata <kazu@codesourcery.com>
5860
5861 * tree-iterator.c (EXPR_LAST_BODY): Remove.
5862
bfb69968
KH
58632009-04-16 Kazu Hirata <kazu@codesourcery.com>
5864
5865 * except.c (eh_region_outer_p): Remove.
5866 * except.h: Remove the prototype for eh_region_outer_p.
5867
c7db7fa5
KH
58682009-04-16 Kazu Hirata <kazu@codesourcery.com>
5869
5870 * function.c (current_function_assembler_name): Remove.
5871 * function.h: Remove the prototype for
5872 current_function_assembler_name.
5873
efc0b2bd
ILT
58742009-04-16 Ian Lance Taylor <iant@google.com>
5875
532bfb0a 5876 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
5877 (add_reg_note): Call alloc_reg_note.
5878 * rtl.h (alloc_reg_note): Declare.
5879 * combine.c (try_combine): Use alloc_reg_note.
5880 (recog_for_combine, move_deaths): Likewise.
5881 (distribute_notes): Use alloc_reg_note and add_reg_note.
5882 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
5883 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
5884 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
5885
6080348f
VM
58862009-04-16 Vladimir Makarov <vmakarov@redhat.com>
5887
5888 PR rtl-optimization/39762
5889 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
5890 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 5891 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 5892
6080348f
VM
5893 * ira-conflicts.c (process_regs_for_copy): Use function
5894 ira_get_register_move_cost instead of global
5895 ira_register_move_cost.
5896
5897 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
5898 color_pass, move_spill_restore, update_curr_costs): Ditto.
5899
5900 * ira-lives.c (process_single_reg_class_operands): Ditto.
5901
5902 * ira-emit.c (emit_move_list): Ditto.
5903
5904 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
5905 (record_reg_classes): Ditto. Use functions
5906 ira_get_register_move_cost and ira_get_may_move_cost instead of
5907 global vars ira_register_move_cost, ira_may_move_out_cost and
5908 ira_may_move_in_cost.
5909 (record_address_regs): Don't call ira_init_register_move_cost.
5910 Use function ira_get_may_move_cost instead of global
5911 ira_may_move_in_cost.
5912 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 5913 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 5914 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 5915
646bea10
RG
59162009-04-16 Richard Guenther <rguenther@suse.de>
5917
5918 * tree-cfg.c (verify_gimple_assign_binary):
5919 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
5920 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
5921 (create_general_new_stmt): Note that this function is broken.
5922
02e819ff
RAE
59232009-04-16 Rafael Avila de Espindola <espindola@google.com>
5924
5925 * common.opt (fhelp): Add Var(help_flag).
5926 * gcc-plugin.h (plugin_info): Add help.
5927 * plugin.c (plugin_name_args): Add help.
5928 (register_plugin_info): Set plugin->help.
5929 (print_help_one_plugin): New.
5930 (print_plugins_help): New.
5931 * plugin.h (print_plugins_help): New.
5932 * toplev.c (toplev_main): Call print_plugins_help if needed.
5933
ccacdf06
RG
59342009-04-16 Richard Guenther <rguenther@suse.de>
5935
5936 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
5937 (gimple_ior_addresses_taken_1): New function.
5938 (gimple_ior_addresses_taken): Likewise.
5939 * gimple.h (struct gimple_statement_with_ops_base): Remove
5940 addresses_taken member.
5941 (gimple_ior_addresses_taken): Declare.
5942 (gimple_addresses_taken, gimple_addresses_taken_ptr,
5943 gimple_set_addresses_taken): Remove.
5944 * ipa-reference.c (mark_address): New function.
5945 (scan_stmt_for_static_refs): Use it for marking addresses taken.
5946 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
5947 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
5948 (gimple_add_to_addresses_taken): Remove.
5949 (get_tmr_operands): Call mark_address_taken.
5950 (get_asm_expr_operands): Likewise.
5951 (get_expr_operands): Likewise.
5952 (build_ssa_operands): Do not clear the addresses_taken bitmap.
5953 (free_stmt_operands): Do not free it.
5954 * tree-ssa.c (delete_tree_ssa): Likewise.
5955 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
5956
346ef3fa
RG
59572009-04-16 Richard Guenther <rguenther@suse.de>
5958
5959 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
5960 (walk_stmt_load_store_ops): Likewise.
5961 * gimple.c (get_base_loadstore): New function.
5962 (walk_stmt_load_store_addr_ops): Likewise.
5963 (walk_stmt_load_store_ops): Likewise.
5964 * ipa-pure-const.c (check_op): Simplify.
5965 (check_load, check_store): New functions.
5966 (check_stmt): Use walk_stmt_load_store_ops.
5967 * ipa-reference.c (mark_load): Adjust signature.
5968 (mark_store): Likewise.
5969 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
5970
44e9f006
RAE
59712009-04-16 Rafael Avila de Espindola <espindola@google.com>
5972
5973 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
5974 (plugin_info): New.
5975 * opts.c (common_handle_option): Don't call print_version.
5976 * plugin.c (plugin_name_args): Add version.
5977 (register_plugin_info): New.
5978 (register_callback): Handle PLUGIN_INFO.
5979 (try_init_one_plugin): New.
5980 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
5981 if failed to init.
5982 (finalize_one_plugin): New.
5983 (finalize_plugins): New.
5984 (print_one_plugin): New.
5985 (print_plugins_versions): New.
5986 * plugin.h (print_plugins_versions): New.
5987 (finalize_plugins): New.
5988 * toplev.c (compile_file): Don't call initialize_plugins.
5989 (print_version): Call print_plugins_versions.
5990 (toplev_main): Call initialize_plugins. Print version if needed.
5991 Call finalize_plugins.
5992
41fd0f9b
RAE
59932009-04-16 Rafael Avila de Espindola <espindola@google.com>
5994
5995 * common.opt (fversion): New.
5996 * gcc.c (print_version): New.
5997 (process_command): Don't print the version. Just set print_version.
5998 (main): Print version. Call subprocesses if print_version and
5999 verbose_flag are set.
6000 * opts.c (common_handle_option): Handle OPT_fversion.
6001
550918ca 60022009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 6003 Ira Rosen <irar@il.ibm.com>
550918ca
RG
6004
6005 PR tree-optimization/39698
6006 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
6007 type of the reduction variable. Only generate the def if
6008 it is needed.
6009
6010 * omp-low.c (expand_omp_for_generic): When converting to a pointer
6011 make sure to first convert to an integer of the same precision.
6012 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
6013 the type of the evolution correctly in computing the new
6014 induction variable base.
6015
54634841
RG
60162009-04-16 Richard Guenther <rguenther@suse.de>
6017
6018 PR middle-end/39625
6019 * tree-cfg.c (make_blocks): Split statements with to-be
6020 abnormal SSA names on the lhs.
6021
b6fc2cdb
PB
60222009-04-16 Paolo Bonzini <bonzini@gnu.org>
6023
6024 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
6025 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
6026 * c-typeck.c (really_start_incremental_init): Likewise.
6027 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
6028 (TARGET_INITIALIZER): Remove it.
6029 * target.h (struct target): Remove vector_opaque_p.
6030 * tree.c (build_opaque_vector_type): New.
6031 * tree.h (TYPE_VECTOR_OPAQUE): New.
6032 (build_opaque_vector_type): Declare.
6033 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
6034 * config/rs6000/rs6000.c (build_opaque_vector_type,
6035 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
6036 (rs6000_init_builtins): Use build_opaque_vector_type for
6037 opaque_V4SI_type_node.
6038
a417cdd9
CM
60392009-04-15 Catherine Moore <clm@codesourcery.com>
6040
532bfb0a
AJ
6041 * debug.h (set_name): Declare.
6042 * dwarf2out.c (dwarf2out_set_name): Declare.
6043 (dwarf2_debug_hooks): Add set_name.
6044 (find_AT_string): New.
6045 (add_AT_string): Call find_AT_string.
6046 (dwarf2out_set_name): New.
6047 * cp/decl.c (grokdeclarator): Call set_name.
6048 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
6049 * debug.c (do_nothing_debug_hooks): Likewise.
6050 * dbxout.c (dbx_debug_hooks): Likewise.
6051 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 6052
60839f5d 60532009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 6054
532bfb0a
AJ
6055 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
6056 reg for single-precision FPU.
6057 * config/rs6000/rs6000.md (movsi_internal1): Only for
6058 !TARGET_SINGLE_FPU.
6059 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
6060 single-precision FP regs.
6061
ada39f0b
RG
60622009-04-15 Richard Guenther <rguenther@suse.de>
6063
6064 * omp-low.c (lower_rec_input_clauses): Build correct address
6065 expressions.
6066 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 6067 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
6068 (generate_memset_zero): Fix types.
6069 * tree-profile.c (prepare_instrumented_value): Correctly
6070 widen a pointer.
6071
6866c6e8
ILT
60722009-04-15 Ian Lance Taylor <iant@google.com>
6073
6074 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
6075 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
6076 for -Wall and for -Wc++-compat.
6077 (c_common_post_options): For C++, set warn_enum_compare if not
6078 already set.
6079 * c-tree.h (struct c_expr): Add field original_type.
6080 (build_external_ref): Update declaration.
6081 * c-parser.c (c_parser_braced_init): Set original_type.
6082 (c_parser_initelt): Likewise.
6083 (c_parser_expr_no_commas): Likewise.
6084 (c_parser_conditional_expression): Likewise.
6085 (c_parser_cast_expression): Likewise.
6086 (c_parser_unary_expression): Likewise. Pull setting of
6087 original_code to top of function.
6088 (c_parser_sizeof_expression): Set original_type.
6089 (c_parser_alignof_expression): Likewise.
6090 (c_parser_postfix_expression): Likewise. Pull setting of
6091 original_code to top of function.
532bfb0a 6092 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
6093 (c_parser_postfix_expression_after_primary): Likewise.
6094 (c_parser_expression): Likewise.
6095 * c-typeck.c (build_external_ref): Add type parameter. Change all
6096 callers.
6097 (c_expr_sizeof_expr): Set original_type field.
6098 (parser_build_unary_op): Likewise.
6099 (parser_build_binary_op): Likewise. Optionally warn about
6100 comparisons of enums of different types.
6101 (digest_init): Set original_type field.
6102 (really_start_incremental_init): Likewise.
6103 (push_init_level, pop_init_level): Likewise.
6104 * doc/invoke.texi (Warning Options): -Wenum-compare now
6105 supported in C.
6106
f116fecf
RG
61072009-04-15 Richard Guenther <rguenther@suse.de>
6108
6109 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
6110 out a necessary conversion.
6111 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
6112 names we didn't value number.
6113 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
6114
25e20805
RG
61152009-04-15 Richard Guenther <rguenther@suse.de>
6116
6117 PR tree-optimization/39764
6118 * tree-ssa-ccp.c (get_value): Canonicalize value with
6119 canonicalize_float_value.
6120
90cc3676
JH
61212009-04-15 Jan Hubicka <jh@suse.cz>
6122
6123 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
6124 Wrong version of patch.
6125
6d14c006
JH
61262009-04-15 Jan Hubicka <jh@suse.cz>
6127
6128 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
6129
5afaa917
NS
61302009-04-15 Nathan Sidwell <nathan@codesourcery.com>
6131
6132 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
6133 our distinct integral and vector types.
6134
3b482fca
RAE
61352009-04-15 Rafael Avila de Espindola <espindola@google.com>
6136
6137 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
6138 * init.c (build_vtbl_address): Remove call to assemble_external.
6139
6cd1d2e2
DJ
61402009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
6141
6142 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
6143 output for other floating point modes.
6144
dab71827
DN
61452009-04-14 Diego Novillo <dnovillo@google.com>
6146
6147 * diagnostic.c (diagnostic_report_diagnostic): Do not
6148 warn about loaded plugins for DK_ERROR and DK_WARNING.
6149 * c-decl.c (declspecs_add_type): Move call to
6150 invoke_plugin_callbacks ...
6151 * c-parser.c (c_parser_declspecs): ... here.
6152 * plugin.c (dump_active_plugins): Tidy output.
6153
68a607d8
DN
61542009-04-14 Diego Novillo <dnovillo@google.com>
6155 Le-Chun Wu <lcwu@google.com>
6156
6157 * configure.ac: Add --enable-plugin support.
6158 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
6159 * Makefile.in (PLUGIN_H): Define.
6160 Export ENABLE_PLUGIN and GMPINC to site.exp.
6161 Add PLUGINLIBS to link command.
6162 Add/modify dependencies for plugin.o and files including plugin.h.
6163 (plugin.o): New.
6164 * config.in: Regenerate.
2ba9daa7 6165
68a607d8
DN
6166 * opts.c (common_handle_option): Handle OPT_fplugin_ and
6167 OPT_fplugin_arg_.
6168
61692009-04-14 Le-Chun Wu <lcwu@google.com>
6170
6171 * tree-pass.h (register_one_dump_file): Add a prototype for
6172 register_one_dump_file.
6173 * toplev.c (compile_file): Call initialize_plugins.
6174 (do_compile): Call invoke_plugin_callbacks.
6175 (toplev_main): Call invoke_plugin_callbacks.
6176 * common.opt: Add -fplugin= and -fplugin-arg-.
6177 * gcc-plugin.h: New public header file for plugins to include.
6178 * plugin.c: New source file.
6179 * plugin.h: New internal header file.
6180 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 6181
68a607d8
DN
6182 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
6183
61842009-04-14 Diego Novillo <dnovillo@google.com>
6185
6186 * doc/plugins.texi: New.
6187 * doc/gccint.texi: Add reference to Plugins chapter.
6188 * doc/invoke.texi: Document -fplugin and -fplugin-arg
6189 * diagnostic.c (diagnostic_report_diagnostic): Warn about
6190 loaded plugins, if any.
6191 * timevar.def (TV_PLUGIN_INIT): Define.
6192 (TV_PLUGIN_RUN): Define.
6193 * plugin.c: Include timevar.h
6194 (plugins_active_p): New.
6195 (dump_active_plugins): New.
6196 (debug_active_plugins): New.
6197
50617257
JM
61982009-04-14 Joseph Myers <joseph@codesourcery.com>
6199
6200 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
6201 library paths.
6202 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
6203
b32f6fff
KH
62042009-04-14 Kazu Hirata <kazu@codesourcery.com>
6205
6206 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
6207 the same as a minus without a shift.
6208
85d04fa2
NC
62092009-04-14 Nick Clifton <nickc@redhat.com>
6210
6211 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
6212 comparisons with small integers will always produce a short
6213 branch.
6214
e495a0c8
RAE
62152009-04-14 Rafael Avila de Espindola <espindola@google.com>
6216
6217 Merge:
e495a0c8
RAE
6218 2008-12-19 Diego Novillo <dnovillo@google.com>
6219
532bfb0a 6220 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 6221
ad41bd84 62222009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
6223
6224 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
6225 verification.
6226 (verify_gimple_assign_binary): Likewise. Handle shifts and
6227 rotates correctly.
6228 (verify_gimple_phi): Print the mismatched argument position.
6229 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6230 Fix types.
6231 (vect_update_init_of_dr): Likewise.
6232 * matrix-reorg.c (transform_access_sites): Do what the
6233 comment suggests.
6234 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
6235
60839f5d 62362009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
6237
6238 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
6239 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
6240 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 6241 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
6242 remove duplicate config
6243
b0e2d008
DR
62442009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6245
6246 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
6247 file_name:line_number type locator of the call site.
2ba9daa7 6248
1244a8b7
VM
62492009-04-13 Vladimir Makarov <vmakarov@redhat.com>
6250
6251 * genautomata.c: Put blank after comma.
6252 (automaton_decls): New.
6253 (struct unit_usage): Add comments to member next.
6254 (store_alt_unit_usage): Keep the list ordered.
6255 (unit_present_on_list_p, equal_alternatives_p): New.
6256 (check_regexp_units_distribution): Check units distribution
6257 correctness correctly.
6258 (main): Don't write automata if error is found. Return correct
6259 exit code.
2ba9daa7 6260
1244a8b7
VM
6261 * config/m68k/cf.md (cfv4_ds): Remove.
6262 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
6263 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
6264
6265 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
6266 power4-load-ext, power4-store, power4-store-update,
6267 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
6268 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
6269 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
6270 power4-sqrt, power4-isync): Modify reservation to make correct
6271 unit distribution to automata.
6272
6273 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
6274 power5-store-update, power5-two, power5-three, power5-lmul,
6275 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 6276
f7dd1864
AN
62772009-04-13 Adam Nemet <anemet@caviumnetworks.com>
6278
6279 * except.c (pass_set_nothrow_function_flags): Set name and add
6280 TODO_dump_func.
6281 (set_nothrow_function_flags): Mention in the dump file when
6282 changing a function to nothrow.
6283
59a1171f
OS
62842009-04-13 Ozkan Sezer <sezeroz@gmail.com>
6285
6286 PR/39066
6287 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
6288 instead of unsigned long.
6289
934c2060
RR
62902009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6291
f7dd1864
AN
6292 * config/arm/arm.c (return_used_this_function): Remove.
6293 (arm_output_function_prologue): Remove use of
934c2060 6294 return_used_this_function.
f7dd1864 6295 (output_return_instruction): Replace use of
934c2060
RR
6296 return_used_this_function
6297 by cfun->machine->return_used_this_function.
f7dd1864
AN
6298 (arm_output_epilogue): Likewise.
6299 (arm_output_function_epilogue): Likewise.
6300 (thumb_unexpanded_epilogue): Likewise.
6301 * config/arm/arm.h (struct machine_function):
934c2060 6302 New member return_used_this_function.
f7dd1864 6303
ae5cc016
MM
63042009-04-12 Mark Mitchell <mark@codesourcery.com>
6305
6306 * doc/install.texi: Correct description of default directory for
6307 --with-gxx-include-dir.
6308
a0ce68df 63092009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
6310
6311 * fold-const.c (build_range_check): Properly deal with enumeral and
6312 boolean base types.
6313
3906a4a1
SB
63142009-04-12 Steven Bosscher <steven@gcc.gnu.org>
6315
6316 * doc/invoke.texi (max_gcse_passes): Remove documentation.
6317 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
6318 * params.h (MAX_GCSE_PASSES): Remove.
6319 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
6320 in sequence. Remove ability to run multiple passes.
6321 (bypass_jumps): Report run as third CPROP pass.
6322
efaadb93
AN
63232009-04-12 Adam Nemet <anemet@caviumnetworks.com>
6324
6325 PR middle-end/39651
6326 * except.c (can_throw_external): Look at each insn in a SEQUENCE
6327 when deciding whether the whole SEQUENCE can throw.
6328
4c48007b
UB
63292009-04-12 Uros Bizjak <ubizjak@gmail.com>
6330
6331 PR target/39740
6332 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
6333 offseted label references.
6334
b4104018
JH
63352009-04-11 Jan Hubicka <jh@suse.cz>
6336
6337 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
6338
32848948
RG
63392009-04-11 Richard Guenther <rguenther@suse.de>
6340
6341 PR middle-end/39732
6342 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
6343 return variables as TREE_ADDRESSABLE.
6344
8810712e
RG
63452009-04-11 Richard Guenther <rguenther@suse.de>
6346
6347 PR tree-optimization/39713
6348 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
6349 reference trees have SSA_NAME operands.
6350
fa78c0c1
RG
63512009-04-11 Richard Guenther <rguenther@suse.de>
6352
6353 PR c/39712
6354 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
6355 address expressions.
6356
4d722130
DK
63572009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
6358
6359 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
6360 match changes in Cygwin 1.7
6361 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
6362 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
6363
567a90f5
PB
63642009-04-10 Paolo Bonzini <bonzini@gnu.org>
6365
6366 PR tree-optimization/39701
6367 * doc/invoke.texi (Optimization Options): Document change in
6368 meaning and initialization of -fdelete-null-pointer-checks.
6369
1ad2f450
L
63702009-04-10 H.J. Lu <hongjiu.lu@intel.com>
6371
6372 PR middle-end/39701
6373 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
6374
6375 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
6376 here.
6377
6378 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
6379
1afc5373
CF
63802009-04-10 Chao-ying Fu <fu@mips.com>
6381
6382 * doc/tm.texi (Instruction Output): Document
6383 TARGET_ASM_FINAL_POSTSCAN_INSN.
6384 * target.h (final_postscan_insn): New field in asm_out.
6385 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
6386 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
6387 * final.c (final_scan_insn): Call
6388 targetm.asm_out.final_postscan_insn after outputting
6389 an asm macro and a normal instruction.
6390
6391 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
6392 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
6393 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
6394 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
6395 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
6396
4d35e75c
PB
63972009-04-10 Paolo Bonzini <bonzini@gnu.org>
6398
6399 PR middle-end/39701
1ad2f450
L
6400 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
6401 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 6402
62c49b83
L
64032009-04-10 H.J. Lu <hongjiu.lu@intel.com>
6404
6405 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
6406
80558628
L
64072009-04-09 H.J. Lu <hongjiu.lu@intel.com>
6408
6409 PR target/39678
6410 * config/i386/i386.c (classify_argument): Handle SCmode with
6411 (bit_offset % 64) != 0.
6412
8c70d28b
SL
64132009-04-09 Sandra Loosemore <sandra@codesourcery.com>
6414
6415 * doc/invoke.texi (Optimize Options): Add cross-reference to
6416 -Q --help=optimizers examples.
6417
e1ff19bf
BE
64182009-04-10 Ben Elliston <bje@au.ibm.com>
6419
6420 PR target/36800
6421 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
6422 regalign for the reg == fpr and TDmode case.
6423
52daca75
DA
64242009-04-09 David Ayers <ayers@fsfe.org>
6425
6426 PR objc/29200
6427 * objc/objc-act.c (warn_with_method): Remove helper function.
6428 (check_duplicates): Call warning and inform directly.
6429 (really_start_method): Likewise.
6430
b45f0e58
PB
64312009-04-09 Paolo Bonzini <bonzini@gnu.org>
6432
6433 * expmed.c (expand_divmod): Always use a comparison for a division
6434 by a large unsigned integer.
6435
1ad2f450
L
6436 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
6437 for things others than variables or functions as nonzero.
b45f0e58 6438
748086b7
JJ
64392009-04-09 Nick Clifton <nickc@redhat.com>
6440
6441 * unwind-compat.c: Change copyright header to refer to version
6442 3 of the GNU General Public License with version 3.1 of the
6443 GCC Runtime Library Exception and to point readers at the
7a715bba 6444 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
6445 * config/alpha/crtfastmath.c: Likewise.
6446 * config/alpha/linux-unwind.h: Likewise.
6447 * config/alpha/qrnnd.asm: Likewise.
6448 * config/alpha/vms-crt0-64.c: Likewise.
6449 * config/alpha/vms-crt0.c: Likewise.
6450 * config/alpha/vms-dwarf2.asm: Likewise.
6451 * config/alpha/vms-dwarf2eh.asm: Likewise.
6452 * config/alpha/vms-psxcrt0-64.c: Likewise.
6453 * config/alpha/vms-psxcrt0.c: Likewise.
6454 * config/alpha/vms_tramp.asm: Likewise.
6455 * config/arc/initfini.c: Likewise.
6456 * config/arc/lib1funcs.asm: Likewise.
6457 * config/arm/bpabi-v6m.S: Likewise.
6458 * config/arm/bpabi.S: Likewise.
6459 * config/arm/bpabi.c: Likewise.
6460 * config/arm/crti.asm: Likewise.
6461 * config/arm/crtn.asm: Likewise.
6462 * config/arm/ieee754-df.S: Likewise.
6463 * config/arm/ieee754-sf.S: Likewise.
6464 * config/arm/lib1funcs.asm: Likewise.
6465 * config/arm/libunwind.S: Likewise.
6466 * config/arm/linux-atomic.c: Likewise.
6467 * config/arm/mmintrin.h: Likewise.
6468 * config/arm/pr-support.c: Likewise.
6469 * config/arm/unaligned-funcs.c: Likewise.
6470 * config/arm/unwind-arm.c: Likewise.
6471 * config/arm/unwind-arm.h: Likewise.
6472 * config/avr/libgcc.S: Likewise.
6473 * config/bfin/crti.s: Likewise.
6474 * config/bfin/crtlibid.s: Likewise.
6475 * config/bfin/crtn.s: Likewise.
6476 * config/bfin/lib1funcs.asm: Likewise.
6477 * config/bfin/linux-unwind.h: Likewise.
6478 * config/cris/arit.c: Likewise.
6479 * config/cris/cris_abi_symbol.c: Likewise.
6480 * config/darwin-64.c: Likewise.
6481 * config/darwin-crt2.c: Likewise.
6482 * config/darwin-crt3.c: Likewise.
6483 * config/darwin.h: Likewise.
6484 * config/dbxelf.h: Likewise.
6485 * config/dfp-bit.c: Likewise.
6486 * config/dfp-bit.h: Likewise.
6487 * config/elfos.h: Likewise.
6488 * config/fixed-bit.c: Likewise.
6489 * config/fixed-bit.h: Likewise.
6490 * config/fp-bit.c: Likewise.
6491 * config/fp-bit.h: Likewise.
6492 * config/fr30/crti.asm: Likewise.
6493 * config/fr30/crtn.asm: Likewise.
6494 * config/fr30/lib1funcs.asm: Likewise.
6495 * config/freebsd-spec.h: Likewise.
6496 * config/frv/cmovd.c: Likewise.
6497 * config/frv/cmovh.c: Likewise.
6498 * config/frv/cmovw.c: Likewise.
6499 * config/frv/frvbegin.c: Likewise.
6500 * config/frv/frvend.c: Likewise.
6501 * config/frv/lib1funcs.asm: Likewise.
6502 * config/glibc-stdint.h: Likewise.
6503 * config/h8300/clzhi2.c: Likewise.
6504 * config/h8300/crti.asm: Likewise.
6505 * config/h8300/crtn.asm: Likewise.
6506 * config/h8300/ctzhi2.c: Likewise.
6507 * config/h8300/fixunssfsi.c: Likewise.
6508 * config/h8300/lib1funcs.asm: Likewise.
6509 * config/h8300/parityhi2.c: Likewise.
6510 * config/h8300/popcounthi2.c: Likewise.
6511 * config/i386/ammintrin.h: Likewise.
6512 * config/i386/att.h: Likewise.
6513 * config/i386/avxintrin.h: Likewise.
6514 * config/i386/biarch64.h: Likewise.
6515 * config/i386/bmmintrin.h: Likewise.
6516 * config/i386/cpuid.h: Likewise.
6517 * config/i386/cross-stdarg.h: Likewise.
6518 * config/i386/crtfastmath.c: Likewise.
6519 * config/i386/crtprec.c: Likewise.
6520 * config/i386/cygming-crtbegin.c: Likewise.
6521 * config/i386/cygming-crtend.c: Likewise.
6522 * config/i386/cygwin.asm: Likewise.
6523 * config/i386/emmintrin.h: Likewise.
6524 * config/i386/gmm_malloc.h: Likewise.
6525 * config/i386/gthr-win32.c: Likewise.
6526 * config/i386/i386.h: Likewise.
6527 * config/i386/immintrin.h: Likewise.
6528 * config/i386/linux-unwind.h: Likewise.
6529 * config/i386/linux64.h: Likewise.
6530 * config/i386/mm3dnow.h: Likewise.
6531 * config/i386/mmintrin-common.h: Likewise.
6532 * config/i386/mmintrin.h: Likewise.
6533 * config/i386/nmmintrin.h: Likewise.
6534 * config/i386/pmm_malloc.h: Likewise.
6535 * config/i386/pmmintrin.h: Likewise.
6536 * config/i386/smmintrin.h: Likewise.
6537 * config/i386/sol2-c1.asm: Likewise.
6538 * config/i386/sol2-ci.asm: Likewise.
6539 * config/i386/sol2-cn.asm: Likewise.
6540 * config/i386/sol2-gc1.asm: Likewise.
6541 * config/i386/tmmintrin.h: Likewise.
6542 * config/i386/unix.h: Likewise.
6543 * config/i386/w32-unwind.h: Likewise.
6544 * config/i386/wmmintrin.h: Likewise.
6545 * config/i386/x86-64.h: Likewise.
6546 * config/i386/x86intrin.h: Likewise.
6547 * config/i386/xmmintrin.h: Likewise.
6548 * config/ia64/crtbegin.asm: Likewise.
6549 * config/ia64/crtend.asm: Likewise.
6550 * config/ia64/crtfastmath.c: Likewise.
6551 * config/ia64/crti.asm: Likewise.
6552 * config/ia64/crtn.asm: Likewise.
6553 * config/ia64/fde-glibc.c: Likewise.
6554 * config/ia64/lib1funcs.asm: Likewise.
6555 * config/ia64/linux-unwind.h: Likewise.
6556 * config/ia64/quadlib.c: Likewise.
6557 * config/ia64/unwind-ia64.c: Likewise.
6558 * config/linux.h: Likewise.
6559 * config/m32c/m32c-lib1.S: Likewise.
6560 * config/m32c/m32c-lib2-trapv.c: Likewise.
6561 * config/m32c/m32c-lib2.c: Likewise.
6562 * config/m32r/initfini.c: Likewise.
6563 * config/m68hc11/larith.asm: Likewise.
6564 * config/m68hc11/m68hc11-crt0.S: Likewise.
6565 * config/m68k/cf.md: Likewise.
6566 * config/m68k/crti.s: Likewise.
6567 * config/m68k/crtn.s: Likewise.
6568 * config/m68k/lb1sf68.asm: Likewise.
6569 * config/m68k/linux-unwind.h: Likewise.
6570 * config/mcore/crti.asm: Likewise.
6571 * config/mcore/crtn.asm: Likewise.
6572 * config/mcore/lib1.asm: Likewise.
6573 * config/mips/linux-unwind.h: Likewise.
6574 * config/mips/loongson.h: Likewise.
6575 * config/mips/mips16.S: Likewise.
6576 * config/mmix/crti.asm: Likewise.
6577 * config/mmix/crtn.asm: Likewise.
6578 * config/pa/fptr.c: Likewise.
6579 * config/pa/hpux-unwind.h: Likewise.
6580 * config/pa/lib2funcs.asm: Likewise.
6581 * config/pa/linux-atomic.c: Likewise.
6582 * config/pa/linux-unwind.h: Likewise.
6583 * config/pa/milli64.S: Likewise.
6584 * config/pa/quadlib.c: Likewise.
6585 * config/pa/stublib.c: Likewise.
6586 * config/picochip/libgccExtras/adddi3.asm: Likewise.
6587 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
6588 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
6589 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
6590 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
6591 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
6592 * config/picochip/libgccExtras/divmod15.asm: Likewise.
6593 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
6594 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
6595 * config/picochip/libgccExtras/longjmp.asm: Likewise.
6596 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
6597 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
6598 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
6599 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
6600 * config/picochip/libgccExtras/setjmp.asm: Likewise.
6601 * config/picochip/libgccExtras/subdi3.asm: Likewise.
6602 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
6603 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
6604 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
6605 * config/rs6000/750cl.h: Likewise.
6606 * config/rs6000/altivec.h: Likewise.
6607 * config/rs6000/biarch64.h: Likewise.
6608 * config/rs6000/crtresfpr.asm: Likewise.
6609 * config/rs6000/crtresgpr.asm: Likewise.
6610 * config/rs6000/crtresxfpr.asm: Likewise.
6611 * config/rs6000/crtresxgpr.asm: Likewise.
6612 * config/rs6000/crtsavfpr.asm: Likewise.
6613 * config/rs6000/crtsavgpr.asm: Likewise.
6614 * config/rs6000/darwin-asm.h: Likewise.
6615 * config/rs6000/darwin-fallback.c: Likewise.
6616 * config/rs6000/darwin-fpsave.asm: Likewise.
6617 * config/rs6000/darwin-ldouble.c: Likewise.
6618 * config/rs6000/darwin-tramp.asm: Likewise.
6619 * config/rs6000/darwin-unwind.h: Likewise.
6620 * config/rs6000/darwin-vecsave.asm: Likewise.
6621 * config/rs6000/darwin-world.asm: Likewise.
6622 * config/rs6000/e500crtres32gpr.asm: Likewise.
6623 * config/rs6000/e500crtres64gpr.asm: Likewise.
6624 * config/rs6000/e500crtres64gprctr.asm: Likewise.
6625 * config/rs6000/e500crtrest32gpr.asm: Likewise.
6626 * config/rs6000/e500crtrest64gpr.asm: Likewise.
6627 * config/rs6000/e500crtresx32gpr.asm: Likewise.
6628 * config/rs6000/e500crtresx64gpr.asm: Likewise.
6629 * config/rs6000/e500crtsav32gpr.asm: Likewise.
6630 * config/rs6000/e500crtsav64gpr.asm: Likewise.
6631 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
6632 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
6633 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
6634 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
6635 * config/rs6000/eabi-ci.asm: Likewise.
6636 * config/rs6000/eabi-cn.asm: Likewise.
6637 * config/rs6000/eabi.asm: Likewise.
6638 * config/rs6000/linux-unwind.h: Likewise.
6639 * config/rs6000/linux64.h: Likewise.
6640 * config/rs6000/paired.h: Likewise.
6641 * config/rs6000/paired.md: Likewise.
6642 * config/rs6000/ppc64-fp.c: Likewise.
6643 * config/rs6000/ppu_intrinsics.h: Likewise.
6644 * config/rs6000/rs6000.h: Likewise.
6645 * config/rs6000/si2vmx.h: Likewise.
6646 * config/rs6000/sol-ci.asm: Likewise.
6647 * config/rs6000/sol-cn.asm: Likewise.
6648 * config/rs6000/spe.h: Likewise.
6649 * config/rs6000/spu2vmx.h: Likewise.
6650 * config/rs6000/sysv4.h: Likewise.
6651 * config/rs6000/tramp.asm: Likewise.
6652 * config/rs6000/vec_types.h: Likewise.
6653 * config/s390/linux-unwind.h: Likewise.
6654 * config/s390/tpf-unwind.h: Likewise.
6655 * config/score/crti.asm: Likewise.
6656 * config/score/crtn.asm: Likewise.
6657 * config/sh/crt1.asm: Likewise.
6658 * config/sh/crti.asm: Likewise.
6659 * config/sh/crtn.asm: Likewise.
6660 * config/sh/divtab-sh4-300.c: Likewise.
6661 * config/sh/divtab-sh4.c: Likewise.
6662 * config/sh/divtab.c: Likewise.
6663 * config/sh/lib1funcs-4-300.asm: Likewise.
6664 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
6665 * config/sh/lib1funcs.asm: Likewise.
6666 * config/sh/lib1funcs.h: Likewise.
6667 * config/sh/linux-atomic.asm: Likewise.
6668 * config/sh/linux-unwind.h: Likewise.
6669 * config/sh/shmedia.h: Likewise.
6670 * config/sh/sshmedia.h: Likewise.
6671 * config/sh/ushmedia.h: Likewise.
6672 * config/sparc/crtfastmath.c: Likewise.
6673 * config/sparc/linux-unwind.h: Likewise.
6674 * config/sparc/sol2-c1.asm: Likewise.
6675 * config/sparc/sol2-ci.asm: Likewise.
6676 * config/sparc/sol2-cn.asm: Likewise.
6677 * config/spu/divmodti4.c: Likewise.
6678 * config/spu/divv2df3.c: Likewise.
6679 * config/spu/float_disf.c: Likewise.
6680 * config/spu/float_unsdidf.c: Likewise.
6681 * config/spu/float_unsdisf.c: Likewise.
6682 * config/spu/float_unssidf.c: Likewise.
6683 * config/spu/mfc_multi_tag_release.c: Likewise.
6684 * config/spu/mfc_multi_tag_reserve.c: Likewise.
6685 * config/spu/mfc_tag_release.c: Likewise.
6686 * config/spu/mfc_tag_reserve.c: Likewise.
6687 * config/spu/mfc_tag_table.c: Likewise.
6688 * config/spu/multi3.c: Likewise.
6689 * config/spu/spu_internals.h: Likewise.
6690 * config/spu/spu_intrinsics.h: Likewise.
6691 * config/spu/spu_mfcio.h: Likewise.
6692 * config/spu/vec_types.h: Likewise.
6693 * config/spu/vmx2spu.h: Likewise.
6694 * config/stormy16/stormy16-lib2.c: Likewise.
6695 * config/svr4.h: Likewise.
6696 * config/sync.c: Likewise.
6697 * config/v850/lib1funcs.asm: Likewise.
6698 * config/vxlib-tls.c: Likewise.
6699 * config/vxlib.c: Likewise.
6700 * config/vxworks-dummy.h: Likewise.
6701 * config/xtensa/crti.asm: Likewise.
6702 * config/xtensa/crtn.asm: Likewise.
6703 * config/xtensa/ieee754-df.S: Likewise.
6704 * config/xtensa/ieee754-sf.S: Likewise.
6705 * config/xtensa/lib1funcs.asm: Likewise.
6706 * config/xtensa/lib2funcs.S: Likewise.
6707 * config/xtensa/linux-unwind.h: Likewise.
6708 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
6709 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
6710 * coretypes.h: Likewise.
6711 * crtstuff.c: Likewise.
6712 * defaults.h: Likewise.
6713 * dwarf2.h: Likewise.
6714 * emutls.c: Likewise.
6715 * gbl-ctors.h: Likewise.
6716 * gcov-io.h: Likewise.
6717 * ginclude/float.h: Likewise.
6718 * ginclude/iso646.h: Likewise.
6719 * ginclude/stdarg.h: Likewise.
6720 * ginclude/stdbool.h: Likewise.
6721 * ginclude/stddef.h: Likewise.
6722 * ginclude/stdfix.h: Likewise.
6723 * ginclude/stdint-gcc.h: Likewise.
6724 * ginclude/tgmath.h: Likewise.
6725 * gthr-aix.h: Likewise.
6726 * gthr-dce.h: Likewise.
6727 * gthr-gnat.c: Likewise.
6728 * gthr-gnat.h: Likewise.
6729 * gthr-lynx.h: Likewise.
6730 * gthr-mipssde.h: Likewise.
6731 * gthr-nks.h: Likewise.
6732 * gthr-posix.c: Likewise.
6733 * gthr-posix.h: Likewise.
6734 * gthr-posix95.h: Likewise.
6735 * gthr-rtems.h: Likewise.
6736 * gthr-single.h: Likewise.
6737 * gthr-solaris.h: Likewise.
6738 * gthr-tpf.h: Likewise.
6739 * gthr-vxworks.h: Likewise.
6740 * gthr-win32.h: Likewise.
6741 * gthr.h: Likewise.
6742 * libgcc2.c: Likewise.
6743 * libgcc2.h: Likewise.
6744 * libgcov.c: Likewise.
6745 * tsystem.h: Likewise.
6746 * typeclass.h: Likewise.
6747 * unwind-c.c: Likewise.
6748 * unwind-compat.h: Likewise.
6749 * unwind-dw2-fde-compat.c: Likewise.
6750 * unwind-dw2-fde-darwin.c: Likewise.
6751 * unwind-dw2-fde-glibc.c: Likewise.
6752 * unwind-dw2-fde.c: Likewise.
6753 * unwind-dw2-fde.h: Likewise.
6754 * unwind-dw2.c: Likewise.
6755 * unwind-dw2.h: Likewise.
6756 * unwind-generic.h: Likewise.
6757 * unwind-pe.h: Likewise.
6758 * unwind-sjlj.c: Likewise.
6759 * unwind.inc: Likewise.
6760 * config/arm/neon-gen.ml: Change generated copyright header to
6761 refer to version 3 of the GNU General Public License with
6762 version 3.1 of the GCC Runtime Library Exception and to point
6763 readers at the COPYING3 and COPYING3.RUNTIME files and the
6764 FSF's license web page.
6765 * config/arm/arm_neon.h: Regenerate.
6766
67672009-04-09 Jakub Jelinek <jakub@redhat.com>
6768
6769 * config/cris/cris.md: Change copyright header to refer to version
6770 3 of the GNU General Public License.
6771 * doc/install.texi2html: Change copyright header to refer to version
6772 3 of the GNU General Public License and to point readers at the
6773 COPYING3 file and the FSF's license web page.
6774 * config/vax/linux.h: Likewise.
6775
4a77c72b
PB
67762009-04-09 Paolo Bonzini <bonzini@gnu.org>
6777
1ad2f450
L
6778 * config/i386/i386.md (cmpcc): New.
6779 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
6780 (sync_compare_and_swap_cc*): Delete.
6781
6782 * config/s390/s390.c (s390_compare_emitted): Remove.
6783 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
6784 s390_compare_emitted used to be handled. Assert that modes match.
6785 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
6786 refer to sync_compare_and_swap_ccsi.
6787 * config/s390/s390.h (s390_compare_emitted): Remove.
6788 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
6789 instead of s390_compare_emitted.
6790 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
6791 instead of s390_compare_emitted.
6792 * config/s390/s390.md (cmpcc): New.
6793 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
6794 CC_REGNUM, do not pretend it's set.
6795 (sync_compare_and_swap_cc*): Delete.
6796 * config/s390/predicates.md (cc_reg_operand): New.
6797
6798 * expr.c (sync_compare_and_swap_cc): Delete.
6799 * optabs.h (sync_compare_and_swap_cc): Delete.
6800 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
6801 is being used with can_compare_p.
6802 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
6803 (find_cc_set): New.
6804 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
6805 look for a MODE_CC set instead. Use emit_store_flag.
6806 (expand_compare_and_swap_loop): Likewise, with some additional
6807 complication to avoid a force_reg when useless. Use
6808 emit_cmp_and_jump_insns.
6809 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
6810 * doc/md.texi (sync_compare_and_swap_cc): Merge with
6811 sync_compare_and_swap documentation.
4a77c72b 6812
0c0efb33
JH
68132009-04-09 Jan Hubicka <jh@suse.cz>
6814
6815 * except.c (find_prev_try): Break out from ....
6816 (duplicate_eh_regions): ... here; properly update prev_try pointers
6817 when duplication part of tree.
6818 (dump_eh_tree): Improve dumping.
6819 (verify_eh_region): New.
6820 (verify_eh_tree): Use it.
6821
22a65a54
RG
68222009-04-06 Richard Guenther <rguenther@suse.de>
6823
6824 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
6825 &ARRAY addresses by adjusting their types and prepending
6826 a conversion.
6827 * tree-cfg.c (verify_gimple_assign_single): Verify that
6828 addresses are correct.
6829
f76968e6
RG
68302009-04-09 Richard Guenther <rguenther@suse.de>
6831
6832 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
6833 indices into an array reference if possible.
6834 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6835 Fold POINTER_PLUS_EXPR statements with invariant address.
6836
c90c5fb5
AM
68372009-04-09 Alan Modra <amodra@bigpond.net.au>
6838
6839 PR target/39634
6840 * config.gcc (powerpc64-*-linux*): Always build biarch.
6841
17cede2e
JM
68422009-04-09 Joseph Myers <joseph@codesourcery.com>
6843
6844 PR c/39613
6845 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
6846 it and pedwarn if this results in an INTEGER_CST.
6847
a3337ea2
KG
68482009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6849
6850 * doc/install.texi: Update minimum GMP version. Remove obsolete
6851 text in MPFR section.
6852
ce9ba79b
JJ
68532009-04-08 Jakub Jelinek <jakub@redhat.com>
6854
6855 * dwarf2out.c (class_scope_p): New static inline.
6856 (class_or_namespace_scope_p): Use it.
6857 (gen_variable_die): Use DW_TAG_member tag for static data member
6858 declarations instead of DW_TAG_variable.
6859
4f0ae266
JJ
6860 PR middle-end/39573
6861 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
6862 variables.
6863
d27f0ddc
RG
68642009-04-08 Richard Guenther <rguenther@suse.de>
6865
6866 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
6867 valueize random data.
6868
557cc596
DE
68692009-04-08 David Edelsohn <edelsohn@gnu.org>
6870
6871 * config.gcc (aix tm_file): Add aix-stdint.h.
6872 (aix tm clause use_gcc_stdint): Set to wrap.
6873 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 6874
75ccc1e7
RG
68752009-04-08 Richard Guenther <rguenther@suse.de>
6876
6877 PR middle-end/36291
6878 * tree-dfa.c (add_referenced_var): Do not recurse into
6879 global initializers.
6880 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
6881 exposed variables.
6882 (fold_const_aggregate_ref): Likewise.
6883
c6963675
PB
68842009-04-08 Paolo Bonzini <bonzini@gnu.org>
6885
6c44cf79
L
6886 * recog.c (ordered_comparison_operator): New.
6887 * gensupport.c (std_preds): Add it.
c6963675
PB
6888 * doc/md.texi (Machine-Independent Predicates): Document it.
6889
6d07ad98
JH
68902009-04-08 Jan Hubicka <jh@suse.cz>
6891
6892 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
6893 * function.h (rtl_eh): Remove exception_handler_label_map.
6894 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
6895 remove_exception_handler_label, for_each_eh_label_1): Remove.
6896 (rtl_remove_unreachable_regions): Remove.
6897 (convert_from_eh_region_ranges): Do not remove unreachable regions.
6898 (find_exception_handler_labels): Don't build the hashtable.
6899 (maybe_remove_eh_handler): Remove.
6900 (for_each_eh_label): Rewrite to walk the tree.
6901 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
6902 * except.h (maybe_remove_eh_handler): Remove.
6903 * passes.c (init_optimization_passes): Schedule second EH cleanup
6904 before out-of-ssa.
6905 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
6906 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
6907
7ddf71e3
PB
69082009-04-08 Paolo Bonzini <bonzini@gnu.org>
6909
6910 * genoutput.c (validate_optab_operands): New.
6911 (gen_insn, gen_expand): Call it.
6912
6913 * genflags.c (gen_insn): Detect misused iterators.
6914 (main): Pass line_no to gen_insn, exit with status 1 on error.
6915
6916 * genextract.c (line_no): Make global.
6917 (VEC_safe_set_locstr): Change assertion to error message.
6918 (main): Exit with status 1 on error.
6919
4d84fe7c
JM
69202009-04-08 Joseph Myers <joseph@codesourcery.com>
6921
6922 PR c/39614
6923 PR c/39673
6924 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6925 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6926 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
6927 * c-convert.c (convert): Do not call fold on results of conversion
6928 functions when the result is a C_MAYBE_CONST_EXPR.
6929 * c-parser.c (c_parser_postfix_expression): Do not fold condition
6930 of __builtin_choose_expr.
6931 * c-typeck.c (remove_c_maybe_const_expr): New.
6932 (build_unary_op, build_conditional_expr, build_compound_expr,
6933 build_binary_op, c_objc_common_truthvalue_conversion): Call
6934 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
6935 integer operands.
6936
60839f5d 69372009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 6938
2ba9daa7 6939 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 6940 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 6941
8e481a2c
DS
69422009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
6943
6944 PR bootstrap/39660
6945 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
6946 mix declarations and code.
6947
ee618c17
BE
69482009-04-08 Ben Elliston <bje@au.ibm.com>
6949
6950 * gcc.c: Replace `CC' with `GCC' throughout.
6951
f2a758a2
L
69522009-04-07 H.J. Lu <hongjiu.lu@intel.com>
6953
6954 * doc/invoke.texi: Document Atom support.
6955
6ea2bd47
JM
69562009-04-07 Jason Merrill <jason@redhat.com>
6957
6958 PR c++/25185
6959 * c-common.h, c-common.c: Add flag_pretty_templates.
6960 * c-opts.c (c_common_handle_option): Set it.
6961 * c.opt: Add -fno-pretty-templates.
6962 * doc/invoke.texi (C++ Dialect Options): Likewise.
6963
fcb82ab0
UB
69642009-04-07 Uros Bizjak <ubizjak@gmail.com>
6965
6966 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
6967 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
6968 (ia64_expand_builtin): Likewise.
6969
dc5e7298
MJ
69702009-04-07 Martin Jambor <mjambor@suse.cz>
6971
6972 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
6973 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
6974 ADDR_EXPRS are include too.
6975
0609b355
RG
69762009-04-07 Richard Guenther <rguenther@suse.de>
6977
6978 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
6979 decls are only used if passes as parameters or if they are
6980 local statics and the call is not to a builtin.
6981 (call_may_clobber_ref_p_1): Likewise.
6982
d8e535fa
PB
69832009-04-07 Paolo Bonzini <bonzini@gnu.org>
6984
6985 * expr.c (do_store_flag): Remove last argument. Simplify code
6986 to avoid duplication of tests already done by can_compare_p.
6987 (expand_expr_real_1): Adjust caller.
6988
c3c64f50
PB
69892009-04-07 Paolo Bonzini <bonzini@gnu.org>
6990
fcb82ab0
UB
6991 * optabs.c (can_compare_p): Test the predicate of a
6992 cbranch and cstore pattern.
c3c64f50 6993
9a53bc17
PB
69942009-04-07 Paolo Bonzini <bonzini@gnu.org>
6995
fcb82ab0
UB
6996 * expr.c (convert_move): Use emit_store_flag instead of
6997 "emulating" it.
9a53bc17 6998
67b8f1c1
PB
69992009-04-07 Paolo Bonzini <bonzini@gnu.org>
7000
fcb82ab0
UB
7001 * config/i386/i386.c (ix86_compare_emitted): Remove.
7002 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
7003 ix86_compare_op0 like ix86_compare_emitted used to be handled.
7004 * config/i386/i386.h (ix86_compare_emitted): Remove.
7005 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
7006 instead of ix86_compare_emitted.
7007 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 7008
44509946
AS
70092009-04-07 Andrew Stubbs <ams@codesourcery.com>
7010
7011 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
7012 Add t-sysroot-suffix to tmake_file.
7013 * config/print-sysroot-suffix.sh: New file.
7014 * config/t-sysroot-suffix: New file.
7015
ca22d882
BE
70162009-04-07 Ben Elliston <bje@au.ibm.com>
7017
7018 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
7019 as the latter produces a warning when the target does not support
7020 infinity.
7021
95aac11b
BE
70222009-04-07 Ben Elliston <bje@au.ibm.com>
7023
7024 * dfp.c: Replace type punning assignments with memcpy throughout.
7025 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 7026
633dd061
AM
70272009-04-07 Alan Modra <amodra@bigpond.net.au>
7028
7029 PR target/39634
7030 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
7031 Include soft-fp/t-softfp after rs6000/t-linux64.
7032
fe0a25ec
EB
70332009-04-06 Eric Botcazou <ebotcazou@adacore.com>
7034
7035 * stor-layout.c (set_sizetype): Use the full precision of their
7036 machine mode for bitsize types.
7037
0c011bc3
L
70382009-04-06 H.J. Lu <hongjiu.lu@intel.com>
7039
7040 * config/i386/i386.md: Revert 2 accidental checkins.
7041
b6837b94 70422009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 7043 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
7044 H.J. Lu <hongjiu.lu@intel.com>
7045
7046 Atom pipeline model, tuning and insn selection.
7047 * config.gcc (atom): Add atom config options and target.
7048
7049 * config/i386/atom.md: New.
7050
7051 * config/i386/i386.c (atom_cost): New cost.
7052 (m_ATOM): New macro flag.
7053 (initial_ix86_tune_features): Set m_ATOM.
7054 (x86_accumulate_outgoing_args): Likewise.
7055 (x86_arch_always_fancy_math_387): Likewise.
7056 (processor_target): Add Atom cost.
7057 (cpu_names): Add Atom cpu name.
7058 (override_options): Set Atom ISA.
7059 (ix86_issue_rate): New case PROCESSOR_ATOM.
7060 (ix86_adjust_cost): Likewise.
7061
7062 * config/i386/i386.h (TARGET_ATOM): New target macro.
7063 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
7064 (TARGET_OPT_AGU): New target option.
7065 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
7066 (processor_type): Add PROCESSOR_ATOM.
7067
7068 * config/i386/i386.md (cpu): Add new value "atom".
7069 (use_carry, movu): New attr.
7070 (atom.md): Include atom.md.
7071 (adddi3_carry_rex64): Set attr "use_carry".
7072 (addqi3_carry): Likewise.
7073 (addhi3_carry): Likewise.
7074 (addsi3_carry): Likewise.
7075 (*addsi3_carry_zext): Likewise.
7076 (subdi3_carry_rex64): Likewise.
7077 (subqi3_carry): Likewise.
7078 (subhi3_carry): Likewise.
7079 (subsi3_carry): Likewise.
7080 (x86_movdicc_0_m1_rex64): Likewise.
7081 (*x86_movdicc_0_m1_se): Likewise.
7082 (x86_movsicc_0_m1): Likewise.
7083 (*x86_movsicc_0_m1_se): Likewise.
7084 (*adddi_1_rex64): Emit add insn as much as possible.
7085 (*addsi_1): Likewise.
7086 (return_internal): Set atom_unit.
7087 (return_internal_long): Likewise.
7088 (return_pop_internal): Likewise.
7089 (*rcpsf2_sse): Set atom_sse_attr attr.
7090 (*qrt<mode>2_sse): Likewise.
7091 (*prefetch_sse): Likewise.
7092
7093 * config/i386/i386-c.c (ix86_target_macros_internal): New case
7094 PROCESSOR_ATOM.
7095 (ix86_target_macros_internal): Likewise.
7096
7097 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
7098 (*prefetch_sse_rex): Likewise.
7099 (sse_rcpv4sf2): Likewise.
7100 (sse_vmrcpv4sf2): Likewise.
7101 (sse_sqrtv4sf2): Likewise.
7102 (<sse>_vmsqrt<mode>2): Likewise.
7103 (sse_ldmxcsr): Likewise.
7104 (sse_stmxcsr): Likewise.
7105 (*sse_sfence): Likewise.
7106 (sse2_clflush): Likewise.
7107 (*sse2_mfence): Likewise.
7108 (*sse2_lfence): Likewise.
7109 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
7110 (<sse>_movup<ssemodesuffixf2c>): Likewise.
7111 (avx_movdqu<avxmodesuffix>): Likewise.
7112 (avx_lddqu<avxmodesuffix>): Likewise.
7113 (sse2_movntv2di): Change attr "type" to "ssemov".
7114 (sse2_movntsi): Likewise.
7115 (rsqrtv8sf2): Change attr "type" to "sseadd".
7116 (sse3_addsubv2df3): Set attr "atom_unit".
7117 (sse3_h<plusminus_insn>v4sf3): Likewise.
7118 (*sse2_pmaddwd): Likewise.
7119 (*vec_extractv2di_1_rex64): Likewise.
7120 (*vec_extractv2di_1_avx): Likewise.
7121 (sse2_psadbw): Likewise.
7122 (ssse3_phaddwv8hi3): Likewise.
7123 (ssse3_phaddwv4hi3): Likewise.
7124 (ssse3_phadddv4si3): Likewise.
7125 (ssse3_phadddv2si3): Likewise.
7126 (ssse3_phaddswv8hi3): Likewise.
7127 (ssse3_phaddswv4hi3): Likewise.
7128 (ssse3_phsubwv8hi3): Likewise.
7129 (ssse3_phsubwv4hi3): Likewise.
7130 (ssse3_phsubdv4si3): Likewise.
7131 (ssse3_phsubdv2si3): Likewise.
7132 (ssse3_phsubswv8hi3): Likewise.
7133 (ssse3_phsubswv4hi3): Likewise.
7134 (ssse3_pmaddubsw128): Likewise.
7135 (sse3_pmaddubsw: Likewise.
7136 (ssse3_palignrti): Likewise.
7137 (ssse3_palignrdi): Likewise.
7138
53e350d3
GP
71392009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
7140
7141 * doc/install.texi (Specific): Fix two cross-references to MinGW.
7142
439ef907
RG
71432009-04-06 Richard Guenther <rguenther@suse.de>
7144
7145 PR tree-optimization/28868
7146 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
7147 of which PHI results we inserted.
7148 (insert_into_preds_of_block): Record inserted PHIs.
7149 (eliminate): Eliminate redundant PHI nodes.
7150 (init_pre): Init inserted_phi_names.
7151
4bad83f5
RG
71522009-04-06 Richard Guenther <rguenther@suse.de>
7153
7154 PR tree-optimization/39643
7155 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
7156 IMAGPART_EXPRs of complex constants.
7157 (execute_fold_all_builtins): If we folded a call queue
7158 TODO_update_address_taken.
7159
570c4247
JH
71602009-04-06 Jan Hubicka <jh@suse.cz>
7161
7162 PR middle-end/39659
7163 * except.c (remove_unreachable_regions): Propagate may_contain_throw
7164 flag.
7165
a460d7a1
AS
71662009-04-06 Andrew Stubbs <ams@codesourcery.com>
7167
7168 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
7169 delay slot.
7170 (ic_invalidate_array): Likewise.
7171
60839f5d 71722009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
7173
7174 * calls.c (emit_library_call_value_1): Fix a problem with parameter
7175 alignment for library calls.
7176
7d253f6e
DS
71772009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
7178
7179 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
7180 (mingw32 tm clause use_gcc_stdint): Set to wrap.
7181 * config/i386/mingw-stdint.h: New file.
7182
941c3614
RB
71832009-04-05 Richard Guenther <rguenther@suse.de>
7184
7185 PR tree-optimization/39648
7186 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
7187 our &A vs. &A[0] IL deficiencies.
7188
12633413
JH
71892009-04-04 Jan Hubicka <jh@suse.cz>
7190
941c3614
RB
7191 * except.c (sjlj_find_directly_reachable_regions): Be ready for
7192 removed toplevel regions.
12633413
JH
7193 (sjlj_mark_call_sites): Likewise.
7194
bb2aaded
DK
71952009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
7196
7197 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
7198 (cygwin tm clause use_gcc_stdint): Set to wrap.
7199 * config/i386/cygwin-stdint.h: New file.
7200
86290011
RG
72012009-04-04 Richard Guenther <rguenther@suse.de>
7202
7203 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
7204 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
7205 single-argument PHIs if we are in loop-closed SSA form.
7206 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
7207 for the pre-condition.
7208 (slpeel_tree_peel_loop_to_edge): Likewise.
7209 (vect_build_loop_niters): Take an optional sequence to append stmts.
7210 (vect_generate_tmps_on_preheader): Likewise.
7211 (vect_do_peeling_for_loop_bound): Take extra guards for the
7212 pre-condition.
7213 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
7214 the cost model check.
7215 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 7216 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
7217 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
7218 (vect_do_peeling_for_loop_bound): Likewise.
7219 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
7220 loop bound only record extra pre-conditions, do not apply loop
7221 versioning.
7222
5eeeac64
RG
72232009-04-04 Richard Guenther <rguenther@suse.de>
7224
7225 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
7226 renaming code.
7227
1ff7d06b
JH
72282009-04-04 Jan Hubicka <jh@suse.cz>
7229
7230 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
7231 last_basic_block for size of bb->index indexed array.
7232 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
7233 compute_out, link_btr_uses, build_btr_def_use_webs,
7234 build_btr_def_use_webs, migrate_btr_defs): Likewise.
7235
14925fcd
JH
72362009-04-04 Jan Hubicka <jh@suse.cz>
7237
7238 * except.c (remove_eh_handler_and_replace): Break out from ...
7239 (remove_eh_handler): ... here.
7240 (bring_to_root): New function.
7241 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
7242 handled ones, bring others to root of tree.
7243
4e6d1743
JH
72442009-04-04 Jan Hubicka <jh@suse.cz>
7245
4cb735f7
JH
7246 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
7247 (all_phis_safe_to_merge): New function.
7248 (update_info): New structure.
7249 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
7250 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 7251
c6803d43
RG
72522009-04-04 Richard Guenther <rguenther@suse.de>
7253
7254 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
7255 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
7256 (append_vuse): Likewise.
7257
54f5943c
JJ
72582009-04-04 Jakub Jelinek <jakub@redhat.com>
7259
7260 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
7261 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
7262 instead of REG_UNSAVED for DW_CFA_undefined.
7263 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
7264 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
7265 outermost frame.
7266
aad2bccb
RE
72672009-04-04 Richard Earnshaw <rearnsha@arm.com>
7268
7269 PR target/39501
7270 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
7271 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
7272 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
7273
aa7069aa
RG
72742009-04-04 Richard Guenther <rguenther@suse.de>
7275
7276 PR tree-optimization/8781
7277 PR tree-optimization/37892
7278 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
7279 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
7280 (valueize_refs): Call it for *& valueizations.
7281 (shared_reference_ops_from_ref): Rename to ...
7282 (valueize_shared_reference_ops_from_ref): ... this and valueize.
7283 (shared_reference_ops_from_call): Rename to ...
7284 (valueize_shared_reference_ops_from_call): ... this and valueize.
7285 (vn_reference_lookup): Update.
7286 (visit_reference_op_call): Likewise.
7287 * tree-ssa-pre.c (phi_translate_1): Fold *&.
7288 (eliminate): Value-replace the call address in call statements.
7289
cd15ad3e
RG
72902009-04-04 Richard Guenther <rguenther@suse.de>
7291
7292 PR tree-optimization/39636
7293 * tree-ssa-forwprop.c
7294 (forward_propagate_addr_into_variable_array_index): Check for
7295 GIMPLE_ASSIGN before accessing the rhs code.
7296
462f3262
JM
72972009-04-03 Jason Merrill <jason@redhat.com>
7298
7299 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
7300
6adb807e
SE
73012009-04-03 Steve Ellcey <sje@cup.hp.com>
7302
7303 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
7304 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
7305 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
7306 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
7307 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
7308 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
7309 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
7310 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
7311 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
7312 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
7313 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
7314 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
7315 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
7316 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
7317 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
7318 Use fr_reg_or_fp01_operand instead of fr_register_operand
7319
7320 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
7321 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
7322 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
7323
174b3107
VM
73242009-04-03 Vladimir Makarov <vmakarov@redhat.com>
7325
b844e5d8
L
7326 PR rtl-optimization/39607
7327 PR rtl-optimization/39631
7a715bba
UB
7328
7329 Revert:
2ba9daa7 7330
174b3107
VM
7331 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7332 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7333 instead of DF_LR_OUT.
7334 * ira-lives.c (process_bb_node_lives): Ditto.
7335 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7336 instead of DF_LR_{OUT,IN}.
7337 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7338 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7339
535b544a
SB
73402009-04-03 Steven Bosscher <steven@gcc.gnu.org>
7341
7342 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
7343 (execute_lower_omp): Always run but take the short way out if -fopenmp
7344 is not given.
7345 (gate_lower_omp): Remove, forcing the pass manager to always run the
7346 pass and always set PROP_gimple_lomp.
7347 (pass_lower_omp): Remove gate function.
7348 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
7349 PROP_trees. Instead, require it.
7350 * ipa-cp.c (pass_ipa_cp): Likewise.
7351 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
7352 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
7353 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
7354 and PROP_gimple_leh.
7355
5006671f
RG
73562009-04-03 Richard Guenther <rguenther@suse.de>
7357
7358 PR middle-end/13146
7359 PR tree-optimization/23940
7360 PR tree-optimization/33237
7361 PR middle-end/33974
7362 PR middle-end/34093
7363 PR tree-optimization/36201
7364 PR tree-optimization/36230
7365 PR tree-optimization/38049
7366 PR tree-optimization/38207
7367 PR tree-optimization/38230
7368 PR tree-optimization/38301
7369 PR tree-optimization/38585
7370 PR middle-end/38895
7371 PR tree-optimization/38985
7372 PR tree-optimization/39299
7373 * tree-ssa-structalias.h: Remove.
7374 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
7375 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
7376 (struct vuse_element_d): Remove.
7377 (struct vuse_vec_d): Likewise.
7378 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
7379 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
7380 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
7381 VUSE_ELEMENT_VAR): Likewise.
7382 (struct voptype_d): Likewise.
7383 (NUM_VOP_FREE_BUCKETS): Likewise.
7384 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
7385 (struct stmt_operands_d): Remove.
7386 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
7387 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
7388 VDEF_NUM, VDEF_VECT): Likewise.
7389 (copy_virtual_operands): Remove.
7390 (operand_build_cmp): Likewise.
7391 (create_ssa_artificial_load_stmt): Likewise.
7392 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
7393 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
7394 vuse_index and mayuse_index members. Pack and move done and iter_type
7395 members to the front.
7396 (SSA_OP_VMAYUSE): Remove.
7397 (SSA_OP_VIRTUAL_USES): Adjust.
7398 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
7399 (unlink_stmt_vdef): Declare.
7400 (add_to_addressable_set): Remove.
7401 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
7402 (vrp_visit_stmt): Likewise.
7403 * doc/tree-ssa.texi (Alias analysis): Update.
7404 * doc/invoke.texi (max-aliased-vops): Remove docs.
7405 (avg-aliased-vops): Likewise.
7406 * tree-into-ssa.c (syms_to_rename): Remove.
7407 (need_to_update_vops_p): Likewise.
7408 (need_to_initialize_update_ssa_p): Rename to ...
7409 (update_ssa_initialized_fn): ... this. Track function we are
7410 initialized for.
7411 (symbol_marked_for_renaming): Simplify.
7412 (add_new_name_mapping): Do not set need_to_update_vops_p.
7413 (dump_currdefs): Use SYMS_TO_RENAME.
7414 (rewrite_update_stmt): Always walk all uses/defs.
7415 (dump_update_ssa): Adjust.
7416 (init_update_ssa): Take function argument. Track what we are
7417 initialized for.
7418 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
7419 (create_new_def_for): Initialize for cfun, assert we are initialized
7420 for cfun.
7421 (mark_sym_for_renaming): Simplify.
7422 (mark_set_for_renaming): Do not initialize update-ssa.
7423 (need_ssa_update_p): Simplify. Take function argument.
7424 (name_mappings_registered_p): Assert we ask for the correct function.
7425 (name_registered_for_update_p): Likewise.
7426 (ssa_names_to_replace): Likewise.
7427 (release_ssa_name_after_update_ssa): Likewise.
7428 (update_ssa): Likewise. Use SYMS_TO_RENAME.
7429 (dump_decl_set): Do not print a newline.
7430 (debug_decl_set): Do it here.
7431 (dump_update_ssa): And here.
7432 * tree-ssa-loop-im.c (move_computations): Adjust.
7433 (movement_possibility): Likewise.
7434 (determine_max_movement): Likewise.
7435 (gather_mem_refs_stmt): Likewise.
7436 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
7437 or NAME_MEMORY_TAG.
7438 * tree-complex.c (update_all_vops): Remove.
7439 (expand_complex_move): Adjust.
7440 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
7441 Simplify test for memory referencing statement. Exclude
7442 non-invariant ADDR_EXPRs.
7443 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
7444 * tree-loop-distribution.c (generate_memset_zero): Adjust.
7445 (rdg_flag_uses): Likewise.
7446 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
7447 related code.
7448 (tree_optimize_tail_calls_1): Also split the
7449 edge from the entry block if we have degenerate PHI nodes in
7450 the first basic block.
7451 * tree.c (init_ttree): Remove memory-tag related code.
7452 (tree_code_size): Likewise.
7453 (tree_node_structure): Likewise.
7454 (build7_stat): Re-write to be build6_stat.
7455 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
7456 (SSA_VAR_P): Adjust.
7457 (struct tree_memory_tag): Remove.
7458 (struct tree_memory_partition_tag): Likewise.
7459 (union tree_node): Adjust.
7460 (build7): Re-write to be build6.
7461 * tree-pass.h (pass_reset_cc_flags): Remove.
7462 (TODO_update_address_taken): New flag.
7463 (pass_simple_dse): Remove.
7464 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
7465 * params.h (MAX_ALIASED_VOPS): Remove.
7466 (AVG_ALIASED_VOPS): Likewise.
7467 * omp-low.c (expand_omp_taskreg): Update SSA form.
7468 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
7469 aliases the lhs in a copy stmt.
7470 * tree-ssa-dse.c (struct address_walk_data): Remove.
7471 (memory_ssa_name_same): Likewise.
7472 (memory_address_same): Likewise.
7473 (get_kill_of_stmt_lhs): Likewise.
7474 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
7475 unused stores. Look through PHI nodes into post-dominated regions.
7476 (dse_optimize_stmt): Simplify. Properly remove stores.
7477 (tree_ssa_dse): Compute dominators.
7478 (execute_simple_dse): Remove.
7479 (pass_simple_dse): Likewise.
7480 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
7481 gimple_loaded_syms and gimple_stored_syms computation.
7482 * toplev.c (dump_memory_report): Dump alias and pta stats.
7483 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
7484 (vn_reference_eq): Likewise.
7485 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
7486 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
7487 valueize_vuses): Remove.
7488 (get_def_ref_stmt_vuses): Simplify. Rename to ...
7489 (get_def_ref_stmt_vuse): ... this.
7490 (vn_reference_lookup_2): New function.
7491 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
7492 walking equivalent vuses. Simplify.
7493 (vn_reference_lookup): Likewise.
7494 (vn_reference_insert): Likewise.
7495 (vn_reference_insert_pieces): Likewise.
7496 (visit_reference_op_call): Simplify.
7497 (visit_reference_op_load): Likewise.
7498 (visit_reference_op_store): Likewise.
7499 (init_scc_vn): Remove shared_lookup_vuses initialization.
7500 (free_scc_vn): Remove shared_lookup_vuses freeing.
7501 (sort_vuses, sort_vuses_heap): Remove.
7502 (get_ref_from_reference_ops): Export.
7503 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
7504 vector with single vuse pointer.
7505 (vn_reference_lookup_pieces, vn_reference_lookup,
7506 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
7507 (shared_vuses_from_stmt): Remove.
7508 (get_ref_from_reference_ops): Declare.
7509 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
7510 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
7511 memory-tag related code.
7512 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
7513 (likely_value): Add comment, skip static-chain of call statements.
7514 (surely_varying_stmt_p): Adjust.
7515 (gimplify_and_update_call_from_tree): Likewise.
7516 (execute_fold_all_builtins): Do not rebuild alias info.
7517 (gimplify_and_update_call_from_tree): Properly update VOPs.
7518 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
7519 (copy_ref_info): Remove memory-tag related code.
7520 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
7521 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
7522 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
7523 computation.
7524 * tree-ssa-dom.c (gimple_p): Remove typedef.
7525 (eliminate_redundant_computations): Adjust.
7526 (record_equivalences_from_stmt): Likewise.
7527 (avail_expr_hash): Likewise.
7528 (avail_expr_eq): Likewise.
7a715bba 7529 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
7530 (stmt_makes_single_load): Likewise.
7531 (stmt_makes_single_store): Likewise.
7532 * tree-ssa-alias.c: Rewrite completely.
7533 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
7534 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
7535 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
7536 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
7537 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
7538 Remove public functions.
7539 (pass_reset_cc_flags): Remove.
7540 (pass_build_alias): Move ...
7541 * tree-ssa-structalias.c (pass_build_alias): ... here.
7542 * tree-ssa-alias.c (may_be_aliased): Move ...
7543 * tree-flow-inline.h (may_be_aliased): ... here.
7544 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
7545 count_uses_and_derefs): Move ...
7546 * gimple.c: ... here.
7547 * gimple.h (count_uses_and_derefs): Declare.
7548 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
7549 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
7550 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
7551 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
7552 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
7553 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
7554 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
7555 New functions.
7556 * tree-dfa.c (refs_may_alias_p): Move ...
7557 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
7558 * tree-ssa-alias.h: New file.
7559 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
7560 (statement_sink_location): Likewise.
7561 * opts.c (decode_options): Do not adjust max-aliased-vops or
7562 avg-aliased-vops values.
7563 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
7564 (TV_CALL_CLOBBER): Likewise.
7565 (TV_FLOW_SENSITIVE): Likewise.
7566 (TV_FLOW_INSENSITIVE): Likewise.
7567 (TV_MEMORY_PARTITIONING): Likewise.
7568 (TV_ALIAS_STMT_WALK): New timevar.
7569 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
7570 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
7571 (get_address_description): Remove memory-tag related code.
7572 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
7573 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
7574 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
7575 and immediate uses in statements. Document.
7576 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
7577 (dump_symbols): Remove.
7578 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
7579 * alias.c (get_deref_alias_set): New function split out from ...
7580 (get_alias_set): ... here.
7581 * alias.h (get_deref_alias_set): Declare.
7582 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
7583 type parameter. Remove restrict pointer handling. Create a
7584 ref-all pointer in case type-based alias sets do not conflict.
7585 (vect_analyze_data_refs): Remove SMT related code.
7586 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
7587 (vectorizable_load): Likewise.
7588 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
7589 (DR_SYMBOL_TAG, DR_VOPS): Remove.
7590 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
7591 Ignore vops and SMTs.
7592 (dr_analyze_alias): Likewise..
7593 (free_data_ref): Likewise.
7594 (create_data_ref): Likewise.
7595 (analyze_all_data_dependences): Likewise.
7596 (get_references_in_stmt): Adjust.
7597 * tree-flow-inline.h (gimple_aliases_computed_p,
7598 gimple_addressable_vars, gimple_call_clobbered_vars,
7599 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
7600 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
7601 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
7602 gimple_mem_ref_stats): Remove.
7603 (gimple_vop): New function.
7604 (op_iter_next_use): Remove vuses and mayuses cases.
7605 (op_iter_next_def): Remove vdefs case.
7606 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
7607 (clear_and_done_ssa_iter): Do not set removed fields.
7608 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
7609 Assert we are not iterating over vuses or vdefs if not also
7610 iterating over uses or defs.
7611 (op_iter_init_use): Likewise.
7612 (op_iter_init_def): Likewise.
7613 (op_iter_next_vdef): Remove.
7614 (op_iter_next_mustdef): Likewise.
7615 (op_iter_init_vdef): Likewise.
7616 (compare_ssa_operands_equal): Likewise.
7617 (link_use_stmts_after): Handle vuse operand.
7618 (is_call_used): Use is_call_clobbered.
7619 (is_call_clobbered): Global variables are always call clobbered,
7620 query the call-clobbers bitmap.
7621 (mark_call_clobbered): Ignore global variables.
7622 (clear_call_clobbered): Likewise.
7623 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
7624 virtual operands sanity check.
7625 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
7626 Remove.
7627 (TARGET_MEM_REF): Remove TMR_TAG operand.
7628 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
7629 Remove call-clobber related code.
7630 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
7631 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
7632 partitions or escape reason.
7633 (get_single_def_stmt, get_single_def_stmt_from_phi,
7634 get_single_def_stmt_with_phi): Remove.
7635 (dump_referenced_vars): Tidy.
7636 (get_ref_base_and_extent): Allow bare decls.
7637 (collect_dfa_stats): Adjust.
7638 * graphite.c (rename_variables_in_stmt): Adjust.
7639 (graphite_copy_stmts_from_block): Likewise.
7640 (translate_clast): Likewise.
7641 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
7642 (EXPR_DIES): New.
7643 (translate_vuse_through_block): Use the oracle.
7644 (phi_translate_1): Adjust.
7645 (value_dies_in_block_x): Use the oracle. Cache the outcome
7646 in EXPR_DIES.
7647 (valid_in_sets): Check if the VUSE for
7648 a REFERENCE is available.
7649 (eliminate): Do not remove stmts during elimination,
7650 instead queue and remove them afterwards.
7651 (do_pre): Do not rebuild alias info.
7652 (pass_pre): Run TODO_rebuild_alias before PRE.
7653 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
7654 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
7655 (mark_all_v_defs_stmt): Remove.
7656 (mark_all_v_defs_seq): Adjust.
7657 (sra_replace): Likewise.
7658 (scalarize_use): Likewise.
7659 (scalarize_copy): Likewise.
7660 (scalarize_init): Likewise.
7661 (scalarize_ldst): Likewise.
7662 (todoflags): Remove.
7663 (tree_sra): Do not rebuild alias info.
7664 (tree_sra_early): Adjust.
7665 (pass_sra): Run TODO_update_address_taken before SRA.
7666 * tree-predcom.c (set_alias_info): Remove.
7667 (prepare_initializers_chain): Do not call it.
7668 (mark_virtual_ops_for_renaming): Adjust.
7669 (mark_virtual_ops_for_renaming_list): Remove.
7670 (initialize_root_vars): Adjust.
7671 (initialize_root_vars_lm): Likewise.
7672 (prepare_initializers_chain): Likewise.
7673 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
7674 (may_propagate_copy_into_stmt): Likewise.
7675 (merge_alias_info): Do nothing for now.
7676 (propagate_tree_value_into_stmt): Adjust.
7677 (stmt_may_generate_copy): Likewise.
7678 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
7679 not mark symbols for renaming.
7680 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
7681 with the same statement, make sure to update the new pointed-to one.
7682 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
7683 call statements, do not mark symbols for renaming.
7684 (mark_operand_necessary): Dump something.
7685 (ref_may_be_aliased): New function.
7686 (mark_aliased_reaching_defs_necessary_1): New helper function.
7687 (mark_aliased_reaching_defs_necessary): Likewise.
7688 (mark_all_reaching_defs_necessary_1): Likewise.
7689 (mark_all_reaching_defs_necessary): Likewise.
7690 (propagate_necessity): Do not process virtual PHIs. For
7691 non-aliased loads mark all reaching definitions as necessary.
7692 For aliased loads and stores mark the immediate dominating
7693 aliased clobbers as necessary.
7694 (visited): New global static.
7695 (perform_tree_ssa_dce): Free visited bitmap after propagating
7696 necessity.
7697 (remove_dead_phis): Perform simple dead virtual PHI removal.
7698 (remove_dead_stmt): Properly unlink virtual operands when
7699 removing stores.
7700 (eliminate_unnecessary_stmts): Schedule PHI removal after
7701 stmt removal.
7702 * tree-ssa-ter.c (is_replaceable_p): Adjust.
7703 (process_replaceable): Likewise.
7704 (find_replaceable_in_bb): Likewise.
7705 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
7706 based on the single gimple vop.
7707 (verify_flow_insensitive_alias_info): Remove.
7708 (verify_flow_sensitive_alias_info): Likewise.
7709 (verify_call_clobbering): Likewise.
7710 (verify_memory_partitions): Likewise.
7711 (verify_alias_info): Likewise.
7712 (verify_ssa): Adjust..
7713 (execute_update_addresses_taken): Export. Update SSA
7714 manually. Optimize only when optimizing. Use a local bitmap.
7715 (pass_update_address_taken): Remove TODO_update_ssa, add
7716 TODO_dump_func.
7717 (pass_update_address_taken): Just use TODO_update_address_taken.
7718 (init_tree_ssa): Do not initialize addressable_vars.
7719 (verify_ssa): Verify new VUSE / VDEF properties.
7720 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
7721 Do not call verify_alias_info.
7722 (delete_tree_ssa): Clear the VUSE, VDEF operands.
7723 Do not free the loaded and stored syms bitmaps. Reset the escaped
7724 and callused solutions. Do not free addressable_vars.
7725 Remove memory-tag related code.
7726 (warn_uninitialized_var): Aliases are always available.
7727 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
7728 * lambda-code.c (can_put_in_inner_loop): Adjust.
7729 (can_put_after_inner_loop): Likewise.
7730 (perfect_nestify): Likewise.
7731 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
7732 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
7733 (vectorizable_conversion): Do not mark symbols for renaming.
7734 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
7735 (expand_call_inline): Unlink the calls virtual operands before
7736 replacing it.
7737 (tree_function_versioning): Do not call update_ssa if we are not
7738 updating clones. Simplify.
7739 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
7740 (propagate_with_phi): Likewise..
7741 * tree-outof-ssa.c (create_temp): Remove memory tag and call
7742 clobber code. Assert we are not aliased or global.
7743 * tree-flow.h: Include tree-ssa-alias.h
7744 (enum escape_type): Remove.
7745 (struct mem_sym_stats_d): Likewise.
7746 (struct mem_ref_stats_d): Likewise.
7747 (struct gimple_df): Add vop member. Remove global_var,
7748 call_clobbered_vars, call_used_vars, addressable_vars,
7749 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
7750 escaped and callused members.
7751 (struct ptr_info_def): Remove all members, add points-to solution
7752 member pt.
7753 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
7754 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
7755 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
7756 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
7757 (tree-ssa-alias.o): Likewise.
7758 (toplev.o): Add tree-ssa-alias.h
7759 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
7760 * gimple.c (gimple_set_bb): Fix off-by-one error.
7761 (is_gimple_reg): Do not handle memory tags.
7762 (gimple_copy): Also copy virtual operands.
7763 Delay updating the statement. Do not reset loaded and stored syms.
7764 (gimple_set_stored_syms): Remove.
7765 (gimple_set_loaded_syms): Likewise.
7766 (gimple_call_copy_skip_args): Copy the virtual operands
7767 and mark the new statement modified.
7768 * tree-ssa-structalias.c (may_alias_p): Remove.
7769 (set_uids_in_ptset): Take the alias set to prune with as
7770 parameter. Fold in the alias test of may_alias_p.
7771 (compute_points_to_sets): Compute whether a ptr is dereferenced
7772 in a local sbitmap.
7773 (process_constraint): Deal with &ANYTHING on the lhs, reject all
7774 other ADDRESSOF constraints on the lhs.
7775 (get_constraint_for_component_ref): Assert that we don't get
7776 ADDRESSOF constraints from the base of the reference.
7777 Properly generate UNKNOWN_OFFSET for DEREF if needed.
7778 (struct variable_info): Remove collapsed_to member.
7779 (get_varinfo_fc): Remove.
7780 (new_var_info): Do not set collapsed_to.
7781 (dump_constraint): Do not follow cycles.
7782 (dump_constraint_graph): Likewise.
7783 (build_pred_graph): Likewise.
7784 (build_succ_graph): Likewise.
7785 (rewrite_constraints): Likewise.
7786 (do_simple_structure_copy): Remove.
7787 (do_rhs_deref_structure_copy): Remove.
7788 (do_lhs_deref_structure_copy): Remove.
7789 (collapse_rest_of_var): Remove.
7790 (do_structure_copy): Re-implement.
7791 (pta_stats): New global variable.
7792 (dump_pta_stats): New function.
7793 (struct constraint_expr): Make offset signed.
7794 (UNKNOWN_OFFSET): Define special value.
7795 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
7796 (solution_set_expand): New helper function split out from ...
7797 (do_sd_constraint): ... here.
7798 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
7799 (do_ds_constraint): Likewise.
7800 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
7801 and CALLUSED = *CALLUSED.
7802 (set_union_with_increment): Make inc argument signed.
7803 (type_safe): Remove.
7804 (get_constraint_for_ptr_offset): Handle unknown and negative
7805 constant offsets.
7806 (first_vi_for_offset): Handle offsets before start. Bail
7807 out early for offsets beyond the variable extent.
7808 (first_or_preceding_vi_for_offset): New function.
7809 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
7810 Together with ESCAPED = *ESCAPED this properly computes reachability.
7811 (find_what_var_points_to): New function.
7812 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
7813 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
7814 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
7815 pt_solutions_intersect): New functions.
7816 (compute_call_used_vars): Remove.
7817 (compute_may_aliases): New main entry into PTA computation.
7818 * gimple.h (gimple_p): New typedef.
7819 (struct gimple_statement_base): Remove references_memory_p.
7820 (struct gimple_statement_with_memory_ops_base): Remove
7821 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
7822 members.
7823 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
7824 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
7825 gimple_set_references_memory): Remove.
7826 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
7827 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
7828 New functions.
7829 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
7830 (verify_expr): Allow RESULT_DECL.
7831 (gimple_duplicate_bb): Do not copy virtual operands.
7832 (gimple_duplicate_sese_region): Adjust.
7833 (gimple_duplicate_sese_tail): Likewise.
7834 (mark_virtual_ops_in_region): Remove.
7835 (move_sese_region_to_fn): Do not call it.
7836 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
7837 and pass_simple_dse.
7838 (execute_function_todo): Handle TODO_update_address_taken,
7839 call execute_update_addresses_taken for TODO_rebuild_alias.
7840 (execute_todo): Adjust.
7841 (execute_one_pass): Init dump files early.
7842 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
7843 call-clobbered.
7844 (create_general_new_stmt): Clear vops.
7845 * tree-ssa-reassoc.c (get_rank): Adjust.
7846 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
7847 symbols for renaming.
7848 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
7849 (PARAM_AVG_ALIASED_VOPS): Likewise.
7850 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
7851 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 7852 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
7853 (operand_build_cmp, copy_virtual_operands,
7854 create_ssa_artificial_load_stmt, add_to_addressable_set,
7855 gimple_add_to_addresses_taken): Remove public functions.
7856 (unlink_stmt_vdef): New function.
7857
457d1d00
AM
78582009-04-03 Alan Modra <amodra@bigpond.net.au>
7859
7860 * config.gcc (powerpc-*-linux*): Merge variants.
7861
e19da24c 78622009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 7863 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
7864
7865 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
7866 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
7867 cop0_sp_offset.
7868 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
7869 keep_interrupts_masked_p, use_debug_exception_return_p.
7870 (mips_attribute_table): Add interrupt, use_shadow_register_set,
7871 keep_interrupts_masked, use_debug_exception_return.
7872 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
7873 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
7874 New functions.
7875 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
7876 (mips_print_operand): Process COP0 registers to print $0 .. $31
7877 correctly for GAS to process.
7878 (mips_interrupt_extra_call_saved_reg_p): New function.
7879 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
7880 extra registers.
7881 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
7882 (mips_compute_frame_info): Add supports for interrupt context that
7883 includes doubleword accumulators and COP0 registers.
7884 (mips_for_each_saved_acc): New function.
7885 (mips_for_each_saved_gpr_and_fpr): Change the function name from
7886 mips_for_each_saved_reg.
7887 (mips_save_reg): Save accumulators.
7888 (mips_kernel_reg_p): A new for_each_rtx callback.
7889 (mips_expand_prologue): Support interrupt handlers.
7890 (mips_restore_reg): Restore accumulators.
7891 (mips_expand_epilogue): Support interrupt handlers.
7892 (mips_can_use_return_insn): Return false for interrupt handlers.
7893 (mips_epilogue_uses): New function.
7894 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
7895 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
7896 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
7897 cop0_move): New instructions.
7898 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
7899 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
7900 defines.
7901 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
7902 New defines.
7903 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
7904 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
7905 interrupt handlers, we use K0 as the temporary register.
7906 (EPILOGUE_USES): Change to a function call.
7907 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
7908 handlers, we use K0 as the temporary register.
2ba9daa7 7909
e19da24c
CF
7910 * doc/extend.texi (Function Attributes): Document interrupt,
7911 use_shadow_register_set, keep_interrupts_masked,
7912 use_debug_exception_return for MIPS attributes.
7913
aa1ca044
AM
79142009-04-03 Alan Modra <amodra@bigpond.net.au>
7915
7916 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
7917 Remove a number of t-files from tmake_file.
7918 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
7919 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
7920 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7921 target_prototype, not TARGET_PROTOTYPE.
7922 (LINK_OS_GNU_SPEC): Define.
7923 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
7924 and darwin-ldoubdle.c.
7925
14fdc613
MM
79262009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
7927
7928 PR driver/39293
7929 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
7930 (cpp_options): Ditto.
7931 (default_compilers): Ditto.
7932 (display_help): Ditto.
7933 (process_command): Ditto.
7934 (do_spec_1): Ditto.
7935 (set_input): Use lbasename instead of duplicate code.
7936 (save_temps_prefix): New static for -save-temps=obj.
7937 (save_temps_length): Ditto.
2ba9daa7 7938
14fdc613
MM
7939 * doc/invoke.texi (-save-temps=obj): Document new variant to
7940 -save-temps switch.
7941
d3aa398e
JL
79422009-04-02 Jeff Law <law@redhat.com>
7943
7944 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
7945 variable.
7946
83f0ccb8
L
79472009-04-02 H.J. Lu <hongjiu.lu@intel.com>
7948
7949 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
7950 * configure: Regenerated.
7951
dcb6e951
RAE
79522009-04-02 Rafael Avila de Espindola <espindola@google.com>
7953
7954 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
7955 share the argument list.
7956
d85478c2
RAE
79572009-04-02 Rafael Avila de Espindola <espindola@google.com>
7958
7959 Merge
7960
7961 2009-02-12 Diego Novillo <dnovillo@google.com>
7962
83f0ccb8
L
7963 * varpool.c (debug_varpool): New.
7964 * cgraph.h (debug_varpool): Declare.
d85478c2 7965
34f42a49
JH
79662009-04-02 Jan Hubicka <jh@suse.cz>
7967
7968 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
7969 pass.
7970
a4747b4a
L
79712009-04-02 H.J. Lu <hongjiu.lu@intel.com>
7972
7973 * config/i386/i386.c (ix86_abi): Move initialization to ...
7974 (override_options): Here.
7975
63a9de54
CB
79762009-04-02 Christian Bruel <christian.bruel@st.com>
7977
7978 * config/sh/sh.c (sh_dwarf_register_span): New function.
7979 (TARGET_DWARF_REGISTER_SPAN): Define.
7980 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 7981
2f0fa28e
IR
79822009-04-02 Ira Rosen <irar@il.ibm.com>
7983
7984 PR tree-optimization/39595
2ba9daa7 7985 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
7986 interleaved loads group is not greater than the SLP group size.
7987
bbf7ce11
RAE
79882009-04-02 Rafael Avila de Espindola <espindola@google.com>
7989
7990 * builtins.c (is_builtin_name): New.
7991 (called_as_built_in): Use is_builtin_name.
7992 * tree.h (is_builtin_name): New.
7993 * varasm.c (incorporeal_function_p): Use is_builtin_name
7994
47e4dfcf
AS
79952009-04-02 Andrew Stubbs <ams@codesourcery.com>
7996
7997 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
7998
d0940d56
DS
79992009-04-02 Dodji Seketeli <dodji@redhat.com>
8000
8001 PR c++/26693
532bfb0a 8002 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
8003 * c-common.c (set_underlying_type): ... here.
8004 Also, make sure the function properly sets TYPE_STUB_DECL() on
8005 the newly created typedef variant type.
8006 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
8007 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
8008 points.
d0940d56 8009
bf1cbdc6
RG
80102009-04-02 Richard Guenther <rguenther@suse.de>
8011
8012 PR tree-optimization/37221
8013 * tree-flow.h (degenerate_phi_result): Declare.
8014 * tree-ssa-dom.c (degenerate_phi_result): Export.
8015 * tree-scalar-evolution.c (analyze_initial_condition): If
8016 the initial condition is defined by a degenerate PHI node
8017 use the degenerate value.
8018
87cfb32c
EB
80192009-04-01 Eric Botcazou <ebotcazou@adacore.com>
8020
8021 PR rtl-optimization/39588
8022 * combine.c (merge_outer_ops): Do not set the constant when this
8023 is not necessary.
8024 (simplify_shift_const_1): Do not modify it either in this case.
8025
bbb6eae8
SB
80262009-04-01 Steven Bosscher <steven@gcc.gnu.org>
8027
8028 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
8029 tuning is deprecated if -mtune value is set to an Itanium1 variant.
8030
839a3b8a
JJ
80312009-04-01 Janis Johnson <janis187@us.ibm.com>
8032
8033 PR c/29027
8034 * c-lex.c (interpret_float): Default (no suffix) is double.
8035
667e8acb
XDL
80362009-04-1 Xinliang David Li <davidxl@google.com>
8037
8038 * config/i386/i386.c (legitimate_constant_p): Recognize
8039 all one vector constant.
8040
60839f5d 80412009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8042
60839f5d 8043 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
8044 Change #include order to silence two warnings.
8045
60839f5d 80462009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8047
60839f5d 8048 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
8049 (ASM_SPEC): Pass -k to the assembler for PIC code.
8050
60839f5d 80512009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8052
60839f5d
EB
8053 * config.gcc: Add vax-*-linux* to the switch.
8054 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
8055 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
8056
60839f5d 80572009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8058
60839f5d 8059 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 8060 Use predicate macros instead of GET_CODE() == foo.
60839f5d 8061 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
8062 ashlsi3, rotrsi3, <unnamed>): Likewise.
8063
60839f5d 80642009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8065
60839f5d 8066 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 8067 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
8068 * config/vax/constraints.md: Likewise.
8069 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8070 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
8071 * config/vax/predicates.md: Likewise.
8072 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 8073 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
8074 * config/vax/vax.h: Likewise.
8075 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 8076
60839f5d 80772009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8078
60839f5d 8079 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
8080 (indirectable_address_p, adjacent_operands_p): Add spaces around
8081 braces.
60839f5d 8082 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 8083
60839f5d 80842009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8085
60839f5d 8086 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
8087 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
8088 index_term_p, reg_plus_index_p, legitimate_address_p,
8089 vax_mode_dependent_address_p): Update comments to match functions
8090 modified by the recent int->bool conversion.
8091
60839f5d 80922009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8093
60839f5d
EB
8094 * config/vax/builtins.md: Update copyright message.
8095 * config/vax/constraints.md: Likewise.
8096 * config/vax/netbsd-elf.h: Likewise.
8097 * config/vax/predicates.md: Likewise.
8098 * config/vax/vax-protos.h: Likewise.
8099 * config/vax/vax.c: Likewise.
8100 * config/vax/vax.h: Likewise.
8101 * config/vax/vax.md: Likewise.
8102 * config/vax/vax.opt: Likewise.
c4e75102 8103
60839f5d 81042009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8105
60839f5d 8106 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 8107 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
8108 * config/vax/constraints.md (B, R): Likewise.
8109 * config/vax/predicates.md (external_memory_operand,
c4e75102 8110 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
8111 * config/vax/vax.c (vax_output_int_add): Likewise.
8112 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
8113 untyped_call): Likewise.
8114
60839f5d 81152009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 8116
7a715bba
UB
8117 * config/vax/predicates.md: New file.
8118 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
8119 external_const_operand, nonsymbolic_operand, external_memory_operand,
8120 indirect_memory_operand, indexed_memory_operand,
8121 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
8122 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
8123 predicate.
7a715bba
UB
8124 * config/vax/constraints.md: New file.
8125 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
8126 New constraint.
8127 * config/vax/builtins.md: New file.
8128 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
8129 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
8130 jbbccisi): Define.
c4e75102
MT
8131 * config/vax/vax.opt (mqmath): Add option.
8132 * config/vax/vax.md (isfx): Extend with DI.
8133 (VAXintQH, VAXintQHSD): Define.
8134 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
8135 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
8136 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
8137 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
8138 (movdi): Update constraints and use vax_output_int_move().
8139 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
8140 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
8141 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
8142 nonlocal_goto): New.
8143 (mov<mode>): Extend accepted operand types.
8144 (subdi3_old): Rename from subdi3, change update constraints and use
8145 a new implementation.
60839f5d 8146 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
8147 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
8148 MOVE_RATIO, CLEAR_RATIO): Define.
8149 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
8150 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
8151 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 8152 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
8153 (split_quadword_operands): Make static and really allow variable
8154 splitting.
8155 (print_operand_address): Update for PIC generation.
8156 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
8157 indexable_address_p, fixup_mathdi_operand,
8158 vax_expand_addsub_di_operands, adjacent_operands_p): New.
8159 (vax_float_literal, legitimate_constant_p,
8160 indirectable_constant_address_p, index_term_p,
8161 reg_plus_index_p): Return bool instead of int.
8162 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
8163 where needed.
8164 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
8165 generation.
8166 (vax_output_conditional_branch): Indent.
8167 (legitimate_constant_address_p, indirectable_constant_address_p,
8168 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
8169 vax_mode_dependent_address_p): Return bool instead of int, update for
8170 PIC generation.
8171 * config/vax/vax-protos.h (legitimate_constant_address_p,
8172 legitimate_constant_p, legitimate_address_p,
8173 vax_mode_dependent_address_p): Change declaration to bool.
8174 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
8175 vax_expand_addsub_di_operands, vax_output_int_subtract,
8176 vax_output_movmemsi): Declare.
8177 (split_quadword_operands, vax_float_literal): Delete declaration.
8178 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
8179 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
8180 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
8181 ASM_OUTPUT_DWARF_PCREL): Define.
8182 (ASM_SPEC): Change definition to allow PIC generation.
8183
9332c6eb
L
81842009-04-01 Steve Ellcey <sje@cup.hp.com>
8185
8186 * doc/sourcebuild.texi: Update front-end requirements.
8187
d93e052c
JJ
81882009-04-01 Jakub Jelinek <jakub@redhat.com>
8189
8190 PR target/39226
8191 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
8192 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
8193 (booldi3_internal3): Use boolean_or_operator instead of
8194 boolean_operator.
8195
6ccb2a4a
JM
81962009-04-01 Joseph Myers <joseph@codesourcery.com>
8197
8198 PR c/39605
8199 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
8200 declarator whose size is not an integer constant expression but
8201 folds to an integer constant, then treat it as a constant
8202 subsequently.
8203
299b87f8
RG
82042009-04-01 Richard Guenther <rguenther@suse.de>
8205
8206 * fold-const.c (fold_plusminus_mult_expr): Do not fold
8207 i * 4 + 2 to (i * 2 + 1) * 2.
8208
b85eb797
JJ
82092009-04-01 Jakub Jelinek <jakub@redhat.com>
8210
8211 PR c/37772
8212 * c-parser.c (c_parser_asm_statement): Skip until close paren and
8213 return if c_parser_asm_string_literal returned NULL.
8214
235e1fe8
NC
82152009-04-01 Nick Clifton <nickc@redhat.com>
8216
8217 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
8218 already defined.
8219 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
8220 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
8221 other typedefs to avoid conflicts with libgcc2.c. Define labels
8222 to gain 16-bit bit-manipulation functions from libgcc2.c and then
8223 include it.
8224 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
8225 to gain 16-bit trapping arithmetic functions from libgcc2.c and
8226 then include it.
8227
d6868399
RAE
82282009-04-01 Rafael Avila de Espindola <espindola@google.com>
8229
7a715bba
UB
8230 * varasm.c (default_function_rodata_section): Declare DOT as
8231 const char*.
d6868399 8232
73d21f56 82332009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 8234 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
8235
8236 PR/39492
8237 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
8238 Make object_name unique for each process.
8239
03742a9b
JJ
82402009-04-01 Jakub Jelinek <jakub@redhat.com>
8241
8242 PR other/39591
8243 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
8244 addressable variables in the parallel that could go out of scope while
8245 running queued tasks.
8246
4223ff5f
AS
82472009-04-01 Anatoly Sokolov <aesok@post.ru>
8248
8249 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
8250 (CASE_VALUES_THRESHOLD): Redefine.
8251 * config/avr/avr.c (avr_override_options): Remove initialization of
8252 avr_case_values_threshold variable.
8253 (avr_case_values_threshold): Remove variable. Add new function.
8254 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
8255 * config/avr/avr.opt (mno-tablejump): Remove option.
8256 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
8257
e893f6f3
DD
82582009-04-01 DJ Delorie <dj@redhat.com>
8259
8260 * varasm.c (default_function_rodata_section): Don't assume
8261 anything about where the first '.' in the section name is.
8262
b246d100
AM
82632009-04-01 Alan Modra <amodra@bigpond.net.au>
8264
8265 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
8266 rs6000_emit_stack_tie.
8267
d3e37a9e
ILT
82682009-03-31 Ian Lance Taylor <iant@google.com>
8269
8270 * tree-eh.c (tree_remove_unreachable_handlers): Compare
8271 gimple_code with GIMPLE_RESX, not RESX.
8272
c1b61fca
JM
82732009-03-31 Joseph Myers <joseph@codesourcery.com>
8274
8275 * c-common.c (c_get_ident): New.
7a715bba 8276 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 8277
c2d2ad48
BE
82782009-04-01 Ben Elliston <bje@au.ibm.com>
8279
8280 * config/rs6000/sysv4.opt (msdata): Improve option description.
8281
13d1a6e7
SE
82822009-03-31 Steve Ellcey <sje@cup.hp.com>
8283
8284 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
8285 (divdf3_internal_lat): Remove.
8286 (divxf3_internal_lat): Remove.
8287 (divxf3_internal_thr): Remove.
8288 (divxf): Use divxf3_internal.
8289 * config/ia64/div.md (divsf3_internal_lat): New.
8290 (divdf3_internal_lat): New.
8291 (divxf3_internal): New.
8292
207bf79d
JM
82932009-03-31 Joseph Myers <joseph@codesourcery.com>
8294
8295 PR c/448
8296 * Makefile.in (USE_GCC_STDINT): Define.
8297 (stmp-int-hdrs): Install stdint.h if applicable.
8298 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
8299 if known.
8300 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
8301 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
8302 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
8303 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8304 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8305 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8306 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8307 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8308 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8309 (c_common_nodes_and_builtins): Initialize
8310 underlying_wchar_type_node. Do not initialize
8311 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
8312 nodes for new types.
8313 (c_stddef_cpp_builtins): Define macros for new types.
8314 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
8315 Remove.
8316 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
8317 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
8318 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
8319 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
8320 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
8321 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
8322 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
8323 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
8324 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
8325 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
8326 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
8327 int16_type_node, int32_type_node, int64_type_node,
8328 uint8_type_node, uint16_type_node, c_uint32_type_node,
8329 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
8330 int_least32_type_node, int_least64_type_node,
8331 uint_least8_type_node, uint_least16_type_node,
8332 uint_least32_type_node, uint_least64_type_node,
8333 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
8334 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
8335 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
8336 uintptr_type_node): Define.
8337 * c-cppbuiltin.c (builtin_define_constants,
8338 builtin_define_type_minmax): New.
8339 (builtin_define_stdint_macros): Define more macros.
8340 (c_cpp_builtins): Define more limit macros.
8341 (type_suffix): New.
8342 (builtin_define_type_max): Define in terms of
8343 builtin_define_type_minmax. Remove is_long parameter. All
8344 callers changed.
8345 * config.gcc (use_gcc_stdint): Define.
8346 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
8347 Add newlib-stdint.h for generic targets.
8348 * config/glibc-stdint.h, config/newlib-stdint.h,
8349 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
8350 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
8351 * config/score/score.h (UINTPTR_TYPE): Define.
8352 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
8353 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
8354 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8355 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8356 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8357 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8358 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8359 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8360 * config/spu/spu.h (STDINT_LONG32): Define.
8361 * configure.ac (use_gcc_stdint): Substitute.
8362 * configure: Regenerate.
8363 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
8364 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
8365 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
8366 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
8367 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
8368 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
8369 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
8370 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
8371 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
8372 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
8373 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
8374 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
8375 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
8376 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
8377 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
8378 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
8379 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
8380 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
8381 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
8382 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
8383 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
8384 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
8385 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
8386 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8387 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8388 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8389 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8390 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8391 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
8392
ed853664
BS
83932009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
8394
8395 * loop-iv.c (suitable_set_for_replacement): Renamed from
8396 simplify_using_assignment; changed to return bool and to accept new
8397 args DEST and SRC. Return true iff we find a source/destination pair
8398 that can be used to make a replacement, and fill SRC and DEST if so.
8399 Remove arg ALTERED. Don't deal with altered regs here. All callers
8400 changed.
8401 (simplify_using_initial_values): Deal with altered regs here and track
8402 more precisely the effect they have on the validity of our expression.
8403
1569e190
BS
8404 * loop-iv.c (simplify_using_condition): A condition of the form
8405 (EQ REG CONST) can be used to simply make a substitution.
8406 (simplify_using_initial_values): Keep track of conditions we have seen
8407 and keep using them to simplify new expressions, while applying the
8408 same substitutions to them as to the expression.
8409
1d1eb80c
BS
8410 * simplify-rtx.c (simplify_relational_operation_1): Simplify
8411 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
8412 GEU/LTU reversed.
8413
28af33b0
BS
8414 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
8415 changed. Use this when trying to improve the upper bound.
8416 Generate the comparison by using simplify_gen_relational.
8417
b30321cd
BS
8418 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
8419
60081874
BS
8420 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
8421 functions.
2ba9daa7 8422 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
8423 replace_in_expr to make replacements. Call replace_single_def_regs
8424 once on the initial version of the expression.
8425
bebc6e07
RR
84262009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8427
fcb82ab0 8428 PR target/27237
bebc6e07 8429 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 8430
6b12efe9
RG
84312009-03-31 Richard Guenther <rguenther@suse.de>
8432
8433 PR middle-end/31029
8434 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
8435 equality comparisons. Fold C - X CMP X if C % 2 == 1.
8436
108f6c2f
RG
84372009-03-31 Richard Guenther <rguenther@suse.de>
8438
8439 * tree.h (div_if_zero_remainder): Declare.
8440 * fold-const.c (div_if_zero_remainder): Export.
8441 * tree-ssa-forwprop.c
8442 (forward_propagate_addr_into_variable_array_index): Handle
8443 constant array index addition outside of the variable index.
8444
8f612190
JM
84452009-03-31 Joseph Myers <joseph@codesourcery.com>
8446
8447 PR target/39592
8448 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
8449 define_splits, floatunssi<mode>2): Require x87 conversions from
8450 DImode to be permitted.
8451
47580d22
JM
84522009-03-31 Joseph Myers <joseph@codesourcery.com>
8453
8454 PR preprocessor/15638
8455 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
8456
ba4d8f9d
RG
84572009-03-31 Richard Guenther <rguenther@suse.de>
8458
8459 PR middle-end/23401
8460 PR middle-end/27810
8461 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
8462 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
8463 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
8464 a separate statement.
8465 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
8466 (lookup_tmp_var): Likewise.
8467 (is_gimple_formal_tmp_or_call_rhs): Remove.
8468 (is_gimple_reg_or_call_rhs): Rename to ...
8469 (is_gimple_reg_rhs_or_call): ... this.
8470 (is_gimple_mem_or_call_rhs): Rename to ...
8471 (is_gimple_mem_rhs_or_call): ... this.
8472 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
8473 DECL_GIMPLE_REG_P only if is_formal is true.
8474 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
8475 for non-proper post-modify expression gimplification.
8476 (gimplify_self_mod_expr): For post-modify expressions gimplify
8477 the lvalue to a minimal lvalue.
8478 (rhs_predicate_for): Remove formal temp case.
8479 (gimplify_modify_expr_rhs): Likewise.
8480 (gimplify_addr_expr): Use is_gimple_reg.
8481 (gimplify_expr): Remove formal temp cases.
8482 (gimple_regimplify_operands): Likewise.
8483 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
8484 and FILTER_EXPR like constants.
8485 * gimple.c (walk_gimple_op): Fix val_only initialization, use
8486 is_gimple_reg.
8487 (is_gimple_formal_tmp_rhs): Remove.
8488 (is_gimple_reg_rhs): Remove special casing.
8489 (is_gimple_mem_rhs): Fix.
8490 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
8491 (is_gimple_formal_tmp_var): Remove.
8492 (is_gimple_formal_tmp_reg): Likewise.
8493 (is_gimple_min_lval): Allow invariant component ref parts.
8494 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
8495 is_gimple_formal_tmp_reg): Remove declarations.
8496 * tree-cfg.c (verify_expr): Verify that variables with address
8497 taken do not have DECL_GIMPLE_REG_P set.
8498 * tree-mudflap.c (mf_build_check_statement_for): Use
8499 force_gimple_operand instead of gimplify_expr.
8500
8de9b877
AZ
85012009-03-31 Ayal Zaks <zaks@il.ibm.com>
8502
8503 * modulo-sched.c (sms_schedule_by_order): Pass the actual
8504 schedulable rows to compute_split_row.
8505
b5e3caf2
BE
85062009-03-31 Ben Elliston <bje@au.ibm.com>
8507
8508 PR target/31635
8509 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
8510 OPT_mvrsave.
8511
9752c4ad
AM
85122009-03-31 Alan Modra <amodra@bigpond.net.au>
8513
8514 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
8515 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
8516 * configure: Regenerate.
8517 * config.in: Regenerate.
8518 * config/rs6000/rs6000.opt (mtls-markers): Add.
8519 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
8520 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
8521 (tls_ld_aix, tls_ld_sysv): Likewise.
8522 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
8523 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
8524
b597d1b6
AM
85252009-03-31 Alan Modra <amodra@bigpond.net.au>
8526
8527 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
8528
a203a221
JH
85292009-03-30 Jan Hubicka <jh@suse.cz>
8530
b597d1b6
AM
8531 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
8532 out of RESX.
8533 (tree_remove_unreachable_handlers): Cleanup EH predecestor
8534 detection and label handling.
a203a221 8535
5b0c0b2c
VM
85362009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8537
8538 * ira-int.h (ira_allocno): Rename left_conflicts_num to
8539 left_conflicts_size.
8540 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
8541 ALLOCNO_LEFT_CONFLICTS_SIZE.
8542
8543 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
8544 remove_allocno_from_bucket_and_push,
8545 allocno_spill_priority_compare, push_allocnos_to_stack,
8546 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
8547 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
8548 (setup_allocno_left_conflicts_num): Ditto. Rename to
8549 setup_allocno_left_conflicts_size.
8550 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
8551 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
8552 setup_allocno_left_conflicts_size instead of
8553 setup_allocno_left_conflicts_num.
8554
8555 * ira-build.c (ira_create_allocno): Use
8556 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
8557 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 8558
9a48a93f
VM
85592009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8560
8561 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8562 instead of DF_LR_OUT.
8563
8564 * ira-lives.c (process_bb_node_lives): Ditto.
8565
8566 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8567 instead of DF_LR_{OUT,IN}.
8568
8569 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8570
8571 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8572
4c936d4f
JH
85732009-03-30 Jan Hubicka <jh@suse.cz>
8574
8575 * except.c (label_to_region_map): Fix thinko.
8576
f4d9f129
SE
85772009-03-30 Steve Ellcey <sje@cup.hp.com>
8578
8579 PR middle-end/38237
8580 * tree.h (tree_find_value): New declaration.
8581 * tree.c (tree_find_value): New function.
8582 * varasm.c (assemble_external): Avoid duplicate entries on lists.
8583
b3f27c15
JJ
85842009-03-30 Jakub Jelinek <jakub@redhat.com>
8585
8586 PR debug/39563
8587 * c-decl.c (struct c_binding): Add locus field.
8588 (bind): Add locus argument, set locus field from it.
8589 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
8590 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
8591 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
8592 implicitly_declare, undeclared_variable, lookup_label,
8593 declare_label, c_make_fname_decl, c_builtin_function,
8594 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
8595 bind callers.
8596
ad41bd84 85972009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
8598
8599 PR target/38781
8600 * config/i386/i386.c (classify_argument): Check total size of
8601 structure.
8602
133f9369
MJ
86032009-03-30 Martin Jambor <mjambor@suse.cz>
8604
8605 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
8606 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
8607 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
8608 respectively.
8609
8610 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
8611 seen_variable_array_ref while also traversing a union.
8612
8613 * tree-inline.c (optimize_inline_calls): Do not call
8614 cgraph_node_remove_callees.
8615 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
8616 (pass_remove_cgraph_callee_edges): New variable.
8617 * passes.c (init_optimization_passes): Add
8618 pass_remove_cgraph_callee_edges after early inlining and before all
8619 late intraprocedural passes.
8620
8621 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
8622
1190f2eb
PB
86232009-03-30 Paolo Bonzini <bonzini@gnu.org>
8624
8625 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
8626 Fix typos in names.
8627
fedc1775
PB
86282009-03-30 Paolo Bonzini <bonzini@gnu.org>
8629
fcb82ab0
UB
8630 * combine.c (simplify_comparison): Use have_insn_for.
8631 * dojump.c (do_jump): Likewise.
fedc1775 8632
65c5ae8b
PB
86332009-03-30 Paolo Bonzini <bonzini@gnu.org>
8634
8635 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
8636 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
8637 sparc_compare_op0 like sparc_compare_emitted used to be handled.
8638 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
8639 instead of sparc_compare_emitted.
8640 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
8641 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
8642 instead of sparc_compare_emitted.
8643
d25aa7ab
PB
86442009-03-30 Paolo Bonzini <bonzini@gnu.org>
8645
8646 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
8647 enter/exit cfglayout mode.
8648 (pass_partition_block): Require it.
8649 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
8650 (combine_instructions): Track basic blocks instead of labels.
8651 (update_cfg_for_uncondjump): New.
8652 (try_combine): Use it. Update jumps after rescanning.
8653 (pass_combine): Require PROP_cfglayout.
8654 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
8655
9c9e26f5
PB
86562009-03-30 Paolo Bonzini <bonzini@gnu.org>
8657
fcb82ab0
UB
8658 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
8659 Provide/destroy PROP_cfglayout respectively.
8660 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
8661 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 8662
28ddeea1
PB
86632009-03-30 Paolo Bonzini <bonzini@gnu.org>
8664
8665 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
8666 fold_convert_const_fixed_from_fixed,
8667 fold_convert_const_fixed_from_int,
8668 fold_convert_const_fixed_from_real, fold_negate_const): Do not
8669 set TREE_CONSTANT_OVERFLOW.
8670 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
8671 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
8672
ebfd146a
IR
86732009-03-30 Ira Rosen <irar@il.ibm.com>
8674
8675 * tree-vect-loop-manip.c: New file.
8676 * tree-vectorizer.c: Update documentation and included files.
8677 (vect_loop_location): Make extern.
8678 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
8679 (rename_variables_in_bb, rename_variables_in_loop,
8680 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
8681 slpeel_update_phi_nodes_for_guard1,
8682 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
8683 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
8684 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 8685 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
8686 find_loop_location): Likewise.
8687 (new_stmt_vec_info): Move to tree-vect-stmts.c.
8688 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
8689 get_vectype_for_scalar_type, vect_is_simple_use,
8690 supportable_widening_operation, supportable_narrowing_operation):
8691 Likewise.
8692 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
8693 (new_loop_vec_info, destroy_loop_vec_info,
8694 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
8695 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
8696 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
8697 (vect_supportable_dr_alignment): Likewise.
8698 * tree-vectorizer.h (tree-data-ref.h): Include.
8699 (vect_loop_location): Declare.
8700 Reorganize function declarations according to the new file structure.
8701 * tree-vect-loop.c: New file.
2ba9daa7 8702 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
8703 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
8704 * tree-vect-data-refs.c: New file.
8705 * tree-vect-patterns.c (timevar.h): Don't include.
8706 * tree-vect-stmts.c: New file.
2ba9daa7 8707 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 8708 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
8709 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
8710 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
8711 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
8712 (tree-vect-analyze.o): Remove.
8713 (tree-vect-transform.o): Likewise.
8714 (tree-vect-data-refs.o): Add rule.
2ba9daa7 8715 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
8716 tree-vect-slp.o): Likewise.
8717 (tree-vect-patterns.o): Remove redundant dependencies.
8718 (tree-vectorizer.o): Likewise.
8719 * tree-vect-slp.c: New file.
8720
40a1cfba
RW
87212009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8722
8723 * optc-gen.awk: Warn if an option flag has multiple different
8724 help strings.
8725
a9a7a9a2
SP
87262009-03-30 Sebastian Pop <sebastian.pop@amd.com>
8727
8728 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
8729 -floop-block): Document dependences on PPL, CLooG and Graphite.
8730
8ce94e44
JM
87312009-03-30 Joseph Myers <joseph@codesourcery.com>
8732
8733 PR rtl-optimization/323
8734 * c-common.c (c_fully_fold, convert_and_check,
8735 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
8736 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
8737 * c-common.def (EXCESS_PRECISION_EXPR): New.
8738 * c-cppbuiltin.c (builtin_define_float_constants): Define
8739 constants with enough digits for long double.
8740 * c-lex.c (interpret_float): Interpret constant with excess
8741 precision where appropriate.
8742 * c-opts.c (c_common_post_options): Set
8743 flag_excess_precision_cmdline. Give an error for
8744 -fexcess-precision=standard for C++ for processors where the
8745 option is significant.
8746 * c-parser.c (c_parser_conditional_expression): Handle excess
8747 precision in condition.
8748 * c-typeck.c (convert_arguments): Handle arguments with excess
8749 precision.
8750 (build_unary_op): Move excess precision outside operation.
8751 (build_conditional_expr): Likewise.
8752 (build_compound_expr): Likewise.
8753 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
8754 (build_modify_expr): Handle excess precision in RHS.
8755 (convert_for_assignment): Handle excess precision in converted
8756 value.
8757 (digest_init, output_init_element, process_init_element): Handle
8758 excess precision in initializer.
8759 (c_finish_return): Handle excess precision in return value.
8760 (build_binary_op): Handle excess precision in operands and add
8761 excess precision as needed for operation.
8762 * common.opt (-fexcess-precision=): New option.
8763 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
8764 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
8765 For standard excess precision, output explicit conversion to and
8766 truncation from XFmode.
8767 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
8768 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
8769 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
8770 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
8771 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
8772 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
8773 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
8774 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
8775 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
8776 define_splits, sqrt<mode>2): Disable where appropriate for
8777 standard excess precision.
8778 * convert.c (convert_to_real): Do not shorten arithmetic to type
8779 for which excess precision would be used.
8780 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
8781 * doc/invoke.texi (-fexcess-precision=): Document option.
8782 (-mfpmath=): Correct index entry.
8783 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
8784 flag_excess_precision): New.
8785 * langhooks.c (lhd_post_options): Set
8786 flag_excess_precision_cmdline.
8787 * opts.c (common_handle_option): Handle -fexcess-precision=.
8788 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
8789 init_excess_precision): New.
8790 (lang_dependent_init_target): Call init_excess_precision.
8791 * tree.c (excess_precision_type): New.
8792 * tree.h (excess_precision_type): Declare.
8793
1e57bf47
JM
87942009-03-30 Joseph Myers <joseph@codesourcery.com>
8795
8796 PR c/35235
8797 * c-typeck.c (build_component_ref): Do not copy qualifiers from
8798 non-lvalue to component.
8799
148e4216
JM
88002009-03-29 Joseph Myers <joseph@codesourcery.com>
8801
8802 PR preprocessor/34695
8803 * Makefile.in (c-opts.o): Depend on c-tree.h.
8804 * c-common.c: Move down include of diagnostic.h.
8805 (done_lexing, c_cpp_error): New.
8806 * c-common.h (done_lexing): Declare.
8807 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
8808 (parse_in).
8809 * c-opts.c: Include c-tree.h.
8810 (c_common_init_options): Set preprocessor error callback.
8811 (c_common_handle_option): Do not set preprocessor
8812 inhibit_warnings, warnings_are_errors, warn_system_headers,
8813 pedantic_errors or inhibit_warnings flags.
8814 (c_common_post_options): Do not check cpp_errors (parse_in).
8815 (c_common_finish): Do not output dependencies if there were
8816 errors. Do not check return value of cpp_finish.
8817 * c-ppoutput.c (pp_file_change): Set input_location.
8818 * c-tree.h (c_cpp_error): Declare.
8819 * diagnostic.c (diagnostic_set_info_translated): Also initialize
8820 override_column.
8821 (diagnostic_build_prefix): Check override_column.
8822 * diagnostic.h (diagnostic_info): Add override_column field.
8823 (diagnostic_override_column): Define.
8824
2ec5deb5
PB
88252009-03-28 Paolo Bonzini <bonzini@gnu.org>
8826
ba20e309
UB
8827 * c-common.c (c_expand_expr, c_staticp): Remove.
8828 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
8829 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
8830 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
8831 * c-gimplify.c (gimplify_compound_literal_expr,
8832 optimize_compound_literals_in_ctor): Remove.
8833 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
8834 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
8835 * c-semantics.c (emit_local_var): Remove.
8836
8837 * langhooks-def.h (lhd_expand_expr): Remove.
8838 * langhooks.c (lhd_expand_expr): Remove.
8839 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
8840
8841 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
8842 handling from c-semantics.c; don't call into langhook.
8843 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
8844 * gimplify.c (gimplify_compound_literal_expr,
8845 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
8846 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
8847 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
8848 as was done in c-gimplify.c.
8849 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
8850 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
8851 Move from c-common.h.
8852 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
8853
8854 * tree.c (staticp): Do not call langhook.
8855 * langhooks.c (lhd_staticp): Delete.
8856 * langhooks-def.h (lhd_staticp): Delete prototype.
8857 (LANG_HOOKS_STATICP): Delete.
8858 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
8859
ba20e309
UB
8860 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
8861 instead of DECL_STMTs.
2ec5deb5 8862
928c19bb
JM
88632009-03-29 Joseph Myers <joseph@codesourcery.com>
8864
8865 PR c/456
8866 PR c/5675
8867 PR c/19976
8868 PR c/29116
8869 PR c/31871
8870 PR c/35198
8871 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
8872 void_type_node.
8873 (fold_call_expr): Return a NOP_EXPR from folding rather than the
8874 contained expression.
ba20e309 8875 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
8876 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
8877 conditional expressions for C.
8878 (decl_constant_value_for_optimization): Move from
ba20e309 8879 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
8880 whether optimizing and that the expression is a VAR_DECL not of
8881 array type instead of doing such checks in the caller. Do not
8882 check pedantic. Call gcc_unreachable for C++.
8883 * c-common.def (C_MAYBE_CONST_EXPR): New.
8884 * c-common.h (c_fully_fold, c_save_expr,
8885 decl_constant_value_for_optimization): New prototypes.
8886 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8887 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8888 EXPR_INT_CONST_OPERANDS): Define.
8889 * c-convert.c (convert): Strip nops from expression.
8890 * c-decl.c (groktypename): Take extra parameters expr and
8891 expr_const_operands. Update call to grokdeclarator.
8892 (start_decl): Update call to grokdeclarator. Add statement for
8893 expressions used in type of decl.
8894 (grokparm): Update call to grokdeclarator.
8895 (push_parm_decl): Update call to grokdeclarator.
8896 (build_compound_literal): Add parameter non_const and build a
8897 C_MAYBE_COSNT_EXPR if applicable.
8898 (grokdeclarator): Take extra parameters expr and
8899 expr_const_operands. Track expressions used in declaration
8900 specifiers and declarators. Fold array sizes and track whether
8901 they are constant expressions and whether they are integer
8902 constant expressions.
8903 (parser_xref_tag): Set expr and expr_const_operands fields in
8904 return value.
8905 (grokfield): Update call to grokdeclarator.
8906 (start_function): Update call to grokdeclarator.
8907 (build_null_declspecs): Set expr and expr_const_operands fields in
8908 return value.
8909 (declspecs_add_type): Handle expressions in typeof specifiers.
8910 * c-parser.c (c_parser_declspecs): Set expr and
8911 expr_const_operands fields for declaration specifiers.
8912 (c_parser_enum_specifier): Likewise.
8913 (c_parser_struct_or_union_specifier): Likewise.
8914 (c_parser_typeof_specifier): Likewise. Update call to
8915 groktypename. Fold expression as needed. Return expressions with
8916 type instead of adding statements.
8917 (c_parser_attributes): Update calls to c_parser_expr_list.
8918 (c_parser_statement_after_labels): Fold expression before passing
8919 to objc_build_throw_stmt.
8920 (c_parser_condition): Fold expression.
8921 (c_parser_asm_operands): Fold expression.
8922 (c_parser_conditional_expression): Use c_save_expr. Update call
8923 to build_conditional_expr.
8924 (c_parser_alignof_expression): Update call to groktypename.
8925 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
8926 original_code. Fold expression argument of va_arg. Create
8927 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
8928 argument to va_arg. Update calls to groktypename. Fold array
8929 index for offsetof. Verify that first argument to
8930 __builtin_choose_expr has integer type.
8931 (c_parser_postfix_expression_after_paren_type): Update calls to
8932 groktypename and build_compound_literal. Handle expressions with
8933 side effects in type name.
8934 (c_parser_postfix_expression_after_primary): Update call to
8935 c_parser_expr_list. Set original_code for calls to
8936 __builtin_constant_p.
8937 (c_parser_expr_list): Take extra parameter fold_p. Fold
8938 expressions if requested.
8939 (c_parser_objc_type_name): Update call to groktypename.
8940 (c_parser_objc_synchronized_statement): Fold expression.
8941 (c_parser_objc_receiver): Fold expression.
8942 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
8943 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
8944 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
8945 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
8946 (struct c_typespec): Add elements expr and expr_const_operands.
8947 (struct c_declspecs): Add elements expr and expr_const_operands.
8948 (groktypename, build_conditional_expr, build_compound_literal):
8949 Update prototypes.
8950 (in_late_binary_op): Declare.
8951 * c-typeck.c (note_integer_operands): New function.
8952 (in_late_binary_op): New variable.
8953 (decl_constant_value_for_broken_optimization): Move to c-common.c
8954 and rename to decl_constant_value_for_optimization.
8955 (default_function_array_conversion): Do not strip nops.
8956 (default_conversion): Do not call
8957 decl_constant_value_for_broken_optimization.
8958 (build_array_ref): Do not fold result.
8959 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
8960 result when operand is a VLA.
8961 (c_expr_sizeof_type): Update call to groktypename. Handle
8962 expressions included in type name. Use C_MAYBE_CONST_EXPR for
8963 result when operand names a VLA type.
8964 (build_function_call): Update call to build_compound_literal.
8965 Only fold result for calls to __builtin_* functions. Strip
8966 NOP_EXPR from INTEGER_CST returned from such functions. Fold
8967 the function designator.
8968 (convert_arguments): Fold arguments. Update call to
8969 convert_for_assignment.
8970 (build_unary_op): Handle increment and decrement of
8971 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
8972 decrement earlier. Fold operand of increment and decrement.
8973 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
8974 built for integer operand. Wrap returns that are INTEGER_CSTs
8975 without being integer constant expressions or that have integer
8976 constant operands without being INTEGER_CSTs.
8977 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
8978 (build_conditional_expr): Add operand ifexp_bcp. Track whether
8979 result is an integer constant expression or can be used in
8980 unevaluated parts of one and avoid folding and wrap as
8981 appropriate. Fold operands before possibly doing -Wsign-compare
8982 warnings.
8983 (build_compound_expr): Wrap result for C99 if operands can be used
8984 in integer constant expressions.
8985 (build_c_cast): Update call to digest_init. Do not ignore
8986 overflow from casting floating-point constants to integers. Wrap
8987 results that could be confused with integer constant expressions,
8988 null pointer constants or floating-point constants.
8989 (c_cast_expr): Update call to groktypename. Handle expressions
8990 included in type name.
8991 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
8992 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
8993 Update calls to convert_for_assignment.
8994 (convert_for_assignment): Take new parameter
8995 null_pointer_constant. Do not strip nops or call
8996 decl_constant_value_for_broken_optimization. Set
8997 in_late_binary_op for conversions to boolean.
8998 (store_init_value): Update call to digest_init.
8999 (digest_init): Take new parameter null_pointer_constant. Do not
9000 call decl_constant_value_for_broken_optimization. pedwarn for
9001 initializers not constant expressions. Update calls to
9002 convert_for_assignment.
9003 (constructor_nonconst): New.
9004 (struct constructor_stack): Add nonconst element.
9005 (really_start_incremental_init, push_init_level, pop_init_level):
9006 Handle constructor_nonconst and nonconst element.
9007 (set_init_index): Call constant_expression_warning for array
9008 designators.
9009 (output_init_element): Fold value. Set constructor_nonconst as
9010 applicable. pedwarn for initializers not constant expressions.
9011 Update call to digest_init. Call constant_expression_warning
9012 where constant initializers are required.
9013 (process_init_element): Use c_save_expr.
9014 (c_finish_goto_ptr): Fold expression.
9015 (c_finish_return): Fold return value. Update call to
9016 convert_for_assignment.
9017 (c_start_case): Fold switch expression.
9018 (c_process_expr_stmt): Fold expression.
9019 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 9020 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
9021 (build_binary_op): Track whether results are integer constant
9022 expressions or may occur in such, disable folding and wrap results
9023 as applicable. Fold operands for -Wsign-compare warnings unless
9024 in_late_binary_op.
9025 (c_objc_common_truthvalue_conversion): Handle results folded to
9026 integer constants that are not integer constant expressions.
9027 * doc/extend.texi: Document when typeof operands are evaluated,
9028 that condition of __builtin_choose_expr is an integer constant
9029 expression, and more about use of __builtin_constant_p in
9030 initializers.
9031
5babbcc0
RG
90322009-03-29 Richard Guenther <rguenther@suse.de>
9033
9034 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
9035 propagate addresses of array references.
9036
0340f2ba
SB
90372009-03-29 Steven Bosscher <steven@gcc.gnu.org>
9038
9039 * regmove.c (perhaps_ends_bb_p): Remove.
9040 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
9041 from INSN and check that the main loop stays within that basic block.
9042 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
9043 (regmove_forward_pass): Split out from regmove_optimize. Use
9044 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
9045 (regmove_backward_pass): Split out from regmove_optimize. Use
9046 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
9047 (regmove_optimize): Simplify.
9048
eeae74a1
L
90492009-03-29 H.J. Lu <hongjiu.lu@intel.com>
9050
9051 PR target/39545
9052 * config/i386/i386.c (classify_argument): Ignore flexible array
9053 member in struct and warn ABI change.
9054
a24078b2
L
90552009-03-29 H.J. Lu <hongjiu.lu@intel.com>
9056
9057 * config/i386/i386-protos.h (ix86_agi_dependent): New.
9058
9059 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
9060 (ix86_adjust_cost): Updated.
9061
a8da523f
JH
90622009-03-29 Jan Hubicka <jh@suse.cz>
9063
9064 PR middle-end/28850
9065 * tree-pass.h (pass_cleanup_eh): New function.
9066 (remove_unreachable_regions): Break code handling RTL
9067 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
9068 that can not be reached by runtime.
9069 (can_be_reached_by_runtime): New function.
9070 (label_to_region_map): New function.
9071 (num_eh_regions): New function.
9072 (rtl_remove_unreachable_regions): New function.
9073 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
9074 (remove_eh_region): New function.
9075 * except.h: Include sbitmap and vecprim.
9076 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
9077 num_eh_regions): Declare.
9078 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 9079 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
9080 * tree-eh.c (tree_remove_unreachable_handlers): New function.
9081 (tree_empty_eh_handler_p): New function.
9082 (cleanup_empty_eh): New function.
9083 (cleanup_eh): New function.
9084 (pass_cleanup_eh): New function.
9085
98f358e5
JH
90862009-03-29 Jan Hubicka <jh@suse.cz>
9087
9088 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
9089 for removed regions.
9090
13a9fa44
JH
90912009-03-29 Jan Hubicka <jh@suse.cz>
9092
9093 * except.c (dump_eh_tree): Dump all datastructures.
9094
e38cf733
JH
90952009-03-29 Jan Hubicka <jh@suse.cz>
9096
9097 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
9098 (duplicate_eh_regions_1): Likewise.
9099 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
9100 vector; call EH verification.
9101 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
9102 Be ready for region being removed.
9103
12802c2b
JH
91042009-03-29 Jan Hubicka <jh@suse.cz>
9105
9106 * bitmap.c (bitmap_last_set_bit): New function.
9107 * bitmap.h (bitmap_last_set_bit): Declare.
9108
4ea80a41
DA
91092009-03-29 David Ayers <ayers@fsfe.org>
9110
9111 PR objc/27377
9112 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
9113 by calling objc_compare_types and surpress warnings about
9114 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 9115
4ea80a41 91162009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
9117
9118 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
9119 call initialize_inline_failed.
9120 (initialize_inline_failed): Move it from here ...
9121 * cgraph.c (initialize_inline_failed): ... to here.
9122 (cgraph_create_edge): Call initialize_inline_failed rather than
9123 setting inline_failed directly.
9124
7fb0ee07
BE
91252009-03-29 Ben Elliston <bje@au.ibm.com>
9126
9127 PR target/32542
9128 * sysv4.opt (msdata): Improve comment.
9129 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
9130 * sysv4.h (SVR4_ASM_SPEC): Likewise.
9131
0be77bf2
BE
91322009-03-29 Ben Elliston <bje@au.ibm.com>
9133
9134 PR target/30451
9135 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
9136 load and store attributes.
9137
593812b6
BE
91382009-03-29 Ben Elliston <bje@au.ibm.com>
9139
9140 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
9141 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
9142 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
9143 * doc/extend.texi (X86 Built-in Functions): Add index entries for
9144 __builtin_infq and __builtin_huge_valq.
9145
8272d11d
AS
91462009-03-28 Anatoly Sokolov <aesok@post.ru>
9147
9148 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
9149 atmega8m1 devices.
9150 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9151 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
9152
74fe548b
XDL
91532009-03-28 Xinliang David Li <davidxl@google.com>
9154
2ba9daa7 9155 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
9156 (do_dbg_cnt): New function.
9157
33977f81
JH
91582009-03-28 Jan Hubicka <jh@suse.cz>
9159
9160 Merge from pretty-ipa:
9161
9162 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 9163
33977f81
JH
9164 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
9165 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
9166 * passes.c (function_called_by_processed_nodes_p): New.
9167 * ipa-pure-const.c (check_call): Fix handling of operands.
9168 (analyze_function): Dump debug output for skipped bodies.
9169 (local_pure_const): Use function_called_by_processed_nodes_p.
9170 * dwarf2out.c (reference_to_unused): Use output.
9171 * passes.c (do_per_function_toporder): Likewise.
9172
9173 2008-11-12 Jan Hubicka <jh@suse.cz>
9174
9175 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
9176 * ipa-pure-const.c (funct_state_d): Add can throw field; make
9177 state_set_in_source enum
9178 (check_decl): Ignore memory tags; do not set fake looping flags;
9179 dump diagnostics.
9180 (check_operand, check_tree, check_rhs_var, check_lhs_var,
9181 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
9182 (check_call, analyze_function): Rewrite.
9183 (check_stmt): New.
9184 (add_new_function): Update call of analyze_function.
9185 (generate_summary): Add call of analyze_function.
9186 (propagate): Propagate can_throw; handle state_set_in_source correctly.
9187 (local_pure_const): New function.
9188 (pass_local_pure_const): New pass.
9189 * ipa-inline.c (inline_transform): Set after_inlining.
9190 * tree-eh.c (stmt_can_throw_external): New.
9191 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
9192 work with aliasing built.
9193 * tree-flow.h (stmt_can_throw_external): New.
9194 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
9195 and local pure/const pass in early and late optimization queue.
ba20e309 9196
617f3897
MJ
91972009-03-28 Martin Jambor <mjambor@suse.cz>
9198
9199 * fold-const.c (get_pointer_modulus_and_residue): New parameter
9200 allow_func_align.
9201 (fold_binary): Allow function decl aligment consideration is the
9202 second argument is integer constant one.
9203 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
9204 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
9205 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
9206
fe89fbc5
JH
92072009-03-28 Jan Hubicka <jh@suse.cz>
9208
9209 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
9210 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
9211 * function.h (rtl_data): Add nothrow flag.
9212 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
9213 set DECL_NOTHROW for AVAILABLE functions.
9214
574872ff
JJ
92152009-03-28 Jakub Jelinek <jakub@redhat.com>
9216
b3bf8855
JJ
9217 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
9218 following vector keyword has expansion starting with pixel or bool
9219 keyword, expand vector to __vector and pixel or bool to __pixel or
9220 __bool.
9221
574872ff
JJ
9222 PR c++/39554
9223 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
9224 warn_if_disallowed_function_p): Removed.
9225 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
9226 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
9227 warning_if_disallowed_function_p.
9228 * flags.h (warn_if_disallowed_function_p,
9229 warn_disallowed_functions): Removed.
9230 * common.opt (Wdisallowed-function-list=): Removed.
9231 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
9232
b005da11
RG
92332009-03-28 Richard Guenther <rguenther@suse.de>
9234
9235 PR tree-optimization/38723
9236 * tree-ssa-pre.c (compute_avail): Add all default definitions to
9237 the entry block.
9238
1de812a6
JH
92392009-03-28 Jan Hubicka <jh@suse.cz>
9240
9241 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
9242 test introduced by my previous patch.
9243
fbb789d4
RG
92442009-03-28 Richard Guenther <rguenther@suse.de>
9245
9246 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
9247 the PHIs value undefined.
9248
6f1873a1
JH
92492009-03-28 Jan Hubicka <jh@suse.cz>
9250
9251 * tree-pass.h (pass_fixup_cfg): New pass.
9252 * ipa-inline.c (inline_transform): Set
9253 always_inline_functions_inlined/after_inlining.
9254 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
9255 (pass_fixup_cfg): New pass.
9256 * passes.c (init_optimization_passes): Add fixup_cfg.
9257
17021bc8
RG
92582009-03-28 Richard Guenther <rguenther@suse.de>
9259
9260 PR tree-optimization/38458
9261 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
9262 argument use the arguments copy-of value.
9263
e8114fba
RG
92642009-03-28 Richard Guenther <rguenther@suse.de>
9265
9266 PR tree-optimization/38180
9267 * tree-ssa-ccp.c (get_default_value): Simplify.
9268 (likely_value): Likewise.
9269 (surely_varying_stmt_p): Properly handle VOP case.
9270 (ccp_initialize): Likewise.
9271 (ccp_fold): Handle propagating through *&.
9272 (fold_const_aggregate_ref): Also handle decls.
9273
257eb6e3
JH
92742009-03-28 Jan Hubicka <jh@suse.cz>
9275
9276 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
9277 * cgraph.h (cgraph_node): Likewise.
9278 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
9279 (cgraph_reset_node): Use process flag.
9280 (cgraph_mark_functions_to_output): Likewise.
9281 (cgraph_expand_function): Likewise.
9282 (cgraph_expand_all_functions): Likewise.
9283 (cgraph_output_in_order): Likewise.
9284 * dwarf2out.c (reference_to_unused): Likewise.
9285 * passes.c do_per_function_toporder): Likewise.
9286
61a05df1
JH
92872009-03-28 Jan Hubicka <jh@suse.cz>
9288
9289 Bring from lto-branch:
ba20e309 9290
61a05df1
JH
9291 2008-09-03 Doug Kwan <dougkwan@google.com>
9292
9293 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
9294 enums instead of reason strings.
9295 * cgraph.c (cgraph_create_edge): Same.
9296 (cgraph_inline_failed_string): New function.
9297 * cgraph.h (cgraph_inline_failed_t): New enum type.
9298 (cgraph_inline_failed_string): New prototype.
9299 (struct cgraph_edge): Change type of INLINED_FAILED from constant
9300 char pointer to cgraph_inline_failed_t.
9301 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
9302 (cgraph_default_inline_p): Ditto.
60839f5d 9303 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
9304 to cgraph_inline_failed_t pointer.
9305 * cif-code.def: New file.
9306 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
9307 reason string.
9308 (cgraph_check_inline_limits): Change type of REASON to pointer to
9309 cgraph_inline_failed_t. Replace reason strings with enums.
9310 (cgraph_default_inline_p): Ditto.
9311 (cgraph_recursive_inlining_p): Ditto.
9312 (update_caller_keys): Change type of FAILED_REASON to
9313 cgraph_inline_failed_t.
9314 (cgraph_set_inline_failed): Change type of REASON to pointer to
9315 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
9316 convert enums to strings for text output.
9317 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
9318 to be of type cgraph_inline_failed_t. Replace reason strings with
9319 enums. Call cgraph_inline_failed_string to covert enums
9320 to strings for text output.
9321 (cgraph_decide_inlining): Replace reason strings with enums.
9322 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
9323 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
9324 for text output.
9325 * tree-inline.c (expand_call_inline): Change type of REASON
9326 to cgraph_inline_failed_t. Replace reason strings with enums.
9327 Call cgraph_inline_failed_string for text output.
9328 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
9329 (cgraph.o): Ditto.
9330
144e8aac
JH
93312009-03-28 Jan Hubicka <jh@suse.cz>
9332
9333 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
9334 cgraph_clone_node): Remove master clone handling.
9335 (cgraph_is_master_clone, cgraph_master_clone): Remove.
9336 * cgraph.h (master_clone): Remove.
9337 (cgraph_is_master_clone, cgraph_master_clone): Remove.
9338 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
9339 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
9340
4a371c8d
JH
93412009-03-28 Jan Hubicka <jh@suse.cz>
9342
9343 * cgraph.c (cgraph_function_body_availability): Functions declared
9344 inline are always safe to assume that it is not going to be replaced.
9345
6cdb0ee3
RG
93462009-03-28 Richard Guenther <rguenther@suse.de>
9347
9348 PR tree-optimization/38513
9349 * tree-ssa-pre.c (eliminate): Remove redundant stores.
9350 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
9351 EXC_PTR_EXPR and FILTER_EXPR.
9352 (get_ref_from_reference_ops): Likewise.
9353
8ca1fd76
RG
93542009-03-28 Richard Guenther <rguenther@suse.de>
9355
9356 PR tree-optimization/38968
9357 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
9358 Use FLOOR_MOD_EXPR to compute misalignment.
9359
a254e44d
RG
93602009-03-28 Richard Guenther <rguenther@suse.de>
9361
9362 PR tree-optimization/37795
9363 * tree.h (combine_comparisons): Declare.
9364 * fold-const.c (combine_comparisons): Export.
9365 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
9366 comparisons.
9367 (ifcombine_iforif): Use combine_comparisons.
9368
a8ee227c
JH
93692009-03-28 Jan Hubicka <jh@suse.cz>
9370
9371 * tree-eh.c (inlinable_call_p): New function.
9372 (make_eh_edges): Use it.
9373 (verify_eh_edges): Use it.
9374 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
9375 * except.c (reachable_next_level): Add inlinable_function argument
9376 (sjlj_find_directly_reachable_regions): Update.
9377 (add_reachable_handler): Do not set saw_any_handlers.
9378 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
9379 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
9380 Add new inlinable call parameter.
9381 (can_throw_internal, can_throw_external): Update.
9382 * except.h (can_throw_internal_1, can_throw_external_1,
9383 foreach_reachable_handler): Update declaration.
9384
52c0e446
JM
93852009-03-28 Joseph Myers <joseph@codesourcery.com>
9386
9387 * config/arm/t-arm-coff, config/h8300/coff.h,
9388 config/i386/i386-aout.h, config/i386/i386-coff.h,
9389 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
9390 config/pdp11/2bsd.h, config/rs6000/aix41.h,
9391 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
9392 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
9393 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
9394 sys-types.h: Remove.
9395 * Makefile.in: Remove protoize and fixproto support and references
9396 in comments.
9397 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
9398 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
9399 Remove.
9400 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
9401 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
9402 unprotoize$(exeext).
9403 (rest.encap): Don't depend on $(STMP_FIXPROTO)
9404 (.PHONY): Don't depend on proto.
9405 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
9406 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
9407 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
9408 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
9409 build/gen-protos.o, build/scan.o, xsys-protos.h,
9410 build/fix-header$(build_exeext), build/fix-header.o,
9411 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
9412 stmp-install-fixproto): Remove.
9413 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
9414 SYSCALLS.c or fixproto files.
9415 (install-common): Don't install protoize.
9416 (install-headers-tar, install-headers-cpio, install-headers-cp):
9417 Don't depend on $(STMP_FIXPROTO).
9418 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
9419 install fixproto files or write out fixproto settings.
9420 (uninstall): Don't uninstall protoize.
9421 * config.gcc (use_fixproto): Remove.
9422 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
9423 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
9424 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
9425 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
9426 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
9427 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
9428 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
9429 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
9430 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
9431 * config/t-vxworks (STMP_FIXPROTO): Remove.
9432 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
9433 STMP_FIXPROTO): Remove.
9434 * config.in, configure: Regenerate.
9435 * crtstuff.c (gid_t, uid_t): Don't undefine.
9436 * doc/install.texi: Change m68k-coff to m68k-elf in example.
9437 (arm-*-coff, arm-*-aout: Remove target entries.
9438 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
9439 Remove mention of AIX 4.1.
9440 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
9441 * doc/invoke.texi (Running Protoize): Remove.
9442 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
9443 (Protoize Caveats): Remove.
9444 * tsystem.h: Update comments on headers assumed to exist.
9445
20a07f44
VM
94462009-03-27 Vladimir Makarov <vmakarov@redhat.com>
9447
9448 * genautomata.c: Add a new year to the copyright. Add a new
9449 reference.
9450 (struct insn_reserv_decl): Add comments for member bypass_list.
9451 (find_bypass): Remove.
9452 (insert_bypass): New.
9453 (process_decls): Use insert_bypass.
9454 (output_internal_insn_latency_func): Output all bypasses with the
9455 same input insn in one switch case.
9456
9457 * rtl.def (define_bypass): Describe bypass choice.
9458 * doc/md.texi (define_bypass): Ditto.
9459
3a0d06c1
RB
94602009-03-27 Richard Guenther <rguenther@suse.de>
9461
9462 * gimplify.c (mark_addressable): Export.
9463 * tree-flow.h (mark_addressable): Declare.
9464 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
9465 * tree-ssa.c (verify_phi_args): Verify that address taken
9466 variables have TREE_ADDRESSABLE set.
9467
94682009-03-27 Richard Guenther <rguenther@suse.de>
9469
9470 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
9471 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
9472 Do not mark decls TREE_ADDRESSABLE.
9473 (build_fold_addr_expr): Adjust.
9474 (fold_addr_expr): Remove.
9475 (fold_unary): Use build_fold_addr_expr.
9476 (fold_comparison): Likewise.
9477 (split_address_to_core_and_offset): Likewise.
9478 * coverage.c (tree_coverage_counter_addr): Mark the array decl
9479 TREE_ADDRESSABLE.
9480 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
9481 (gimplify_modify_expr_to_memcpy): Mark source and destination
9482 addressable.
9483 * omp-low.c (create_omp_child_function): Mark the object decl
9484 TREE_ADDRESSABLE.
9485 (lower_rec_input_clauses): Mark the var we take the address of
9486 TREE_ADDRESSABLE.
9487 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
9488
2ac26e15
L
94892009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9490
9491 PR middle-end/39315
9492 * cfgexpand.c (expand_one_stack_var_at): Change alignment
9493 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
9494
472c7fbd
RG
94952009-03-27 Richard Guenther <rguenther@suse.de>
9496
9497 PR tree-optimization/39120
9498 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
9499 constraints.
9500 (handle_lhs_call): Process return constraints. Add escape
9501 constraints if necessary.
9502 (handle_const_call): Fill out return constraints. Make nested
9503 case more precise. Avoid consttmp if possible.
9504 (handle_pure_call): Fill out return constraints. Avoid
9505 callused if possible.
9506 (find_func_aliases): Simplify call handling.
9507
95082009-03-27 Richard Guenther <rguenther@suse.de>
9509
9510 PR tree-optimization/39120
9511 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
9512 as a representative.
9513 (solve_graph): Do propagate CALLUSED.
9514 (handle_pure_call): Use a scalar constraint from CALLUSED for
9515 the return value.
9516 (find_what_p_points_to): CALLUSED shall not appear in poins-to
9517 solutions.
9518
d9223014
L
95192009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9520
9521 PR c/39323
9522 * c-common.c (handle_aligned_attribute): Properly check alignment
9523 overflow. Use (1U << i) instead of (1 << i).
9524
ba20e309 9525 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
9526
9527 * expr.h (get_mem_align_offset): Updated.
9528
9529 * tree.h (tree_decl_common): Change align to "unsigned int" and
9530 move it before pointer_alias_set.
9531
689b689c
L
95322009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9533 Jakub Jelinek <jakub@redhat.com>
9534
9535 PR target/38034
9536 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
9537 gr_register_operand with gr_reg_or_0_operand.
9538 (cmpxchg_rel_di): Likewise.
9539 (sync_lock_test_and_set<mode>): Likewise.
9540
c619e982
L
95412009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9542
9543 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
9544 (true_regnum): Likewise.
9545
9546 * rtlanal.c (subreg_info): Moved to ...
9547 * rtl.h (subreg_info): Here. New.
9548 (subreg_get_info): New.
9549
9550 * rtlanal.c (subreg_get_info): Make it extern.
9551
51212b32
L
95522009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9553
9554 PR target/39472
9555 * config/i386/i386.c (ix86_abi): New.
9556 (override_options): Handle -mabi=.
ba20e309 9557 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
9558 (ix86_call_abi_override): Likewise.
9559 (init_cumulative_args): Likewise.
9560 (function_arg_advance): Likewise.
9561 (function_arg_64): Likewise.
9562 (function_arg): Likewise.
9563 (ix86_pass_by_reference): Likewise.
9564 (ix86_function_value_regno_p): Likewise.
9565 (ix86_build_builtin_va_list_abi): Likewise.
9566 (setup_incoming_varargs_64): Likewise.
9567 (is_va_list_char_pointer): Likewise.
9568 (ix86_init_machine_status): Likewise.
ba20e309 9569 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
9570 (ix86_function_type_abi): Return enum calling_abi. Rewrite
9571 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 9572 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
9573 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
9574 with ix86_abi.
9575 (ix86_fn_abi_va_list): Updated.
9576
9577 * config/i386/i386.h (ix86_abi): New.
9578 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
9579 (CONDITIONAL_REGISTER_USAGE): Likewise.
9580 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
9581 (machine_function): Likewise.
9582
9583 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
9584 with ix86_abi.
9585 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
9586 (STACK_BOUNDARY): Likewise.
9587 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
9588
9589 * config/i386/i386.opt (mabi=): New.
9590
9591 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
9592 return enum calling_abi.
9593 (ix86_function_type_abi): Likewise.
9594 (ix86_function_abi): Removed.
9595
9596 * doc/invoke.texi: Document -mabi= option for x86.
9597
7338ea63
KG
95982009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9599
9600 * builtins.c (real_dconstp): Delete.
9601 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
9602
68599f33
DS
96032009-03-27 Dodji Seketeli <dodji@redhat.com>
9604 Jakub Jelinek <jakub@redhat.com>
9605
9606 PR debug/37959
9607 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
9608 (gen_subprogram_die): When a function is explicit, generate the
9609 DW_AT_explicit attribute.
9610 * langhooks.h (struct lang_hooks_for_decls): Add
9611 function_decl_explicit_p langhook.
9612 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
9613 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
9614
9f5e9983
JJ
96152009-03-27 Jakub Jelinek <jakub@redhat.com>
9616
64d7685c
JJ
9617 * builtins.c (fold_builtin_memory_op): Optimize memmove
9618 into memcpy if we can prove source and destination don't overlap.
9619
9f5e9983
JJ
9620 * tree-inline.c: Include gt-tree-inline.h.
9621 (clone_fn_id_num): New variable.
9622 (clone_function_name): New function.
9623 (tree_function_versioning): Use it.
9624 * Makefile.in (GTFILES): Add tree-inline.c.
9625
e54d52a8
MM
96262009-03-27 Mark Mitchell <mark@codesourcery.com>
9627
9628 * BASE-VER: Change to 4.5.0.
9629
e9d51dc6
XDL
96302009-03-27 Xinliang David Li <davidxl@google.com>
9631
9632 PR tree-optimization/39557
9633 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
9634
4577cea1
XDL
96352009-03-27 Xinliang David Li <davidxl@google.com>
9636
9637 PR tree-optimization/39548
2ba9daa7 9638 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
9639 candidate check.
9640
0f7464f4
L
96412009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9642
9643 * c-common.c (pointer_int_sum): Use %wd on return from
9644 tree_low_cst.
9645
a8847a7f
L
96462009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9647
9648 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
9649 on return from tree_low_cst.
9650
b0957daf
AP
96512009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
9652
9653 PR c++/36799
ba20e309
UB
9654 * ginclude/stdarg.h (va_copy): Define also for
9655 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 9656
a5f805df
MLI
96572009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9658
9659 PR c++/35652
9660 * builtins.h (c_strlen): Do not warn here.
9661 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
9662 * c-common.c (pointer_int_sum): Take an explicit location.
9663 Warn about offsets out of bounds.
9664 * c-common.h (pointer_int_sum): Adjust declaration.
9665
6f401211
RW
96662009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9667
a5f805df
MLI
9668 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
9669 markup glitch.
6f401211 9670
5a59b39e
JJ
96712009-03-26 Jakub Jelinek <jakub@redhat.com>
9672
9673 PR c++/39554
9674 * opts.c (warn_if_disallowed_function_p): Don't assume
9675 get_callee_fndecl must return non-NULL.
9676
d5f89b53
VM
96772009-03-26 Vladimir Makarov <vmakarov@redhat.com>
9678
9679 PR rtl-optimization/39522
9680 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
9681 when reg_reloaded_valid is set.
9682
61238a79
UW
96832009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9684
9685 * config/spu/divv2df3.c: New file.
9686 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
9687 (DPBIT_FUNCS): Filter out _div_df.
9688
03f8829b
BS
96892009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
9690
9691 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
9692 a jump insn, count that jump in the distance to the loop start.
9693
9fdcdc74
KK
96942009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
9695
9696 PR target/39523
9697 * config/sh/sh.c (calc_live_regs): Fix condition for global
9698 registers except PIC_OFFSET_TABLE_REGNUM.
9699
46994828
KT
97002009-03-25 Kai Tietz <kai.tietz@onevision.com>
9701
9702 PR/39518
9703 * doc/invoke.texi (-mconsole): New.
9704 (-mcygwin): New.
9705 (-mno-cygwin): New.
9706 (-mdll): New.
9707 (-mnop-fun-dllimport): New.
9708 (-mthread): New.
9709 (-mwin32): New.
9710 (-mwindows): New.
9711 (sub section "i386 and x86-64 Windows Options"): New.
9712
60839f5d 97132009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
9714
9715 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
9716 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
9717
ae560440
RG
97182009-03-25 Richard Guenther <rguenther@suse.de>
9719
9720 PR middle-end/39497
9721 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
9722 of -Wno-error.
9723
cd510f15
AM
97242009-03-25 Andrey Belevantsev <abel@ispras.ru>
9725
9726 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
9727 neither of haifa/selective schedulers are working.
9728
44ab0f0e
RW
97292009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9730
9731 * doc/invoke.texi (Debugging Options): Fix description of
9732 -fno-merge-debug-strings.
9733
ad9646c7
HPN
97342009-03-24 Hans-Peter Nilsson <hp@axis.com>
9735
e6142656
HPN
9736 * config/cris/libgcc.ver: New version-script.
9737 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
9738
ad9646c7
HPN
9739 * configure.ac <GAS features, nop mnemonic>: Add pattern
9740 crisv32-*-* for "nop".
ba20e309 9741 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
9742 * configure: Regenerate.
9743
09ac4473
IR
97442009-03-24 Ira Rosen <irar@il.ibm.com>
9745
9746 PR tree-optimization/39529
9747 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
9748 mark_sym_for_renaming for the tag copied to the new vector
9749 pointer.
9750
d94a427e
AL
97512009-03-24 Arthur Loiret <aloiret@debian.org>
9752
ba20e309 9753 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
9754 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
9755 EXTRA_SPEC_FUNCTIONS.
9756 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
9757 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
9758 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
9759 -march and -mtune options.
9760
60839f5d 97612009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
9762
9763 * config/m68k/t-rtems: Add m5329 multilib.
9764
603f5959
DS
97652009-03-24 Dodji Seketeli <dodji@redhat.com>
9766 Jakub Jelinek <jakub@redhat.com>
9767
9768 PR debug/39524
9769 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
9770 nodes.
9771
c5cdb03f
JJ
97722009-03-23 Jakub Jelinek <jakub@redhat.com>
9773
9774 PR c/39495
9775 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
9776 instead of c_parser_expression_conv, if original_code isn't one of the
9777 4 allowed comparison codes, fail.
9778
3691626c
RG
97792009-03-23 Richard Guenther <rguenther@suse.de>
9780
9781 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
9782 * tree.h (struct tree_type): Likewise.
9783 * reload.h (struct insn_chain): Likewise.
9784 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
9785 * function.h (struct function): Likewise.
9786 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
9787
88ccb72a
JJ
97882009-03-23 Jakub Jelinek <jakub@redhat.com>
9789
9790 PR tree-optimization/39516
9791 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
9792
60839f5d 97932009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 9794
2ba9daa7 9795 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
9796 should be set true if BITS_PER_WORD of target is bigger than 32
9797
f82162f8
HPN
97982009-03-22 Hans-Peter Nilsson <hp@axis.com>
9799
9800 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
9801 Translate -B-options to -rpath-link. Correct existing
9802 rpath-link and conditionalize on !nostdlib.
9803
048fd785
RW
98042009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9805
9806 * doc/extend.texi (Function Attributes, Variable Attributes):
9807 Fix typos.
9808 * doc/invoke.texi (Debugging Options, Optimize Options)
9809 (i386 and x86-64 Options, MCore Options): Likewise.
9810
6e75c1a9
JJ
98112009-03-20 Jakub Jelinek <jakub@redhat.com>
9812
9813 PR debug/37890
9814 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
9815 it for block local namespace aliases.
9816 (gen_decl_die): Pass context_die to gen_namespace_die.
9817
ea1199ee
JJ
98182009-03-19 Jakub Jelinek <jakub@redhat.com>
9819
9820 PR c/39495
9821 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
9822 minimum or maximum value.
9823
58929c10
AO
98242009-03-19 Alexandre Oliva <aoliva@redhat.com>
9825
9826 * reginfo.c (globalize_reg): Recompute derived reg sets.
9827
60839f5d 98282009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
9829
9830 PR target/39063
9831 * libgcc2.c (mprotect): Do not use signed arguments for
9832 VirtualProtect, use DWORD arguments. Also fix the 'may
9833 be used uninitialized' warning for the np variable.
9834
f57c2f04
JJ
98352009-03-19 Jakub Jelinek <jakub@redhat.com>
9836
9837 PR target/39496
9838 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
9839 functions using regparm calling conventions when not optimizing.
9840 (ix86_function_sseregparm): Similarly for sseregparm calling
9841 conventions.
9842
9e517d61
LF
98432009-03-19 Li Feng <nemokingdom@gmail.com>
9844
9845 PR middle-end/39500
9846 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
9847 dependence if the first conflict is after niter iterations.
9848
8ef20026
HPN
98492009-03-19 Hans-Peter Nilsson <hp@axis.com>
9850
9851 PR middle-end/38609
9852 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
9853 functions with dynamic stack-pointer adjustments.
9854
64e4a1a6
BE
98552009-03-19 Ben Elliston <bje@au.ibm.com>
9856
9857 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
9858 option; change to -msdata=data.
9859
9a0f3e86
RW
98602009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9861
9862 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
9863 and -fopenmp.
9864
09bc5979
EB
98652009-03-18 Eric Botcazou <ebotcazou@adacore.com>
9866
9867 PR target/35180
9868 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
9869
332459cd
SL
98702009-03-18 Sandra Loosemore <sandra@codesourcery.com>
9871
9872 * doc/invoke.texi (Code Gen Options): Expand discussion of
9873 -fno-common.
9874
8f5929e1
JJ
98752009-03-18 Jakub Jelinek <jakub@redhat.com>
9876
9877 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
9878 * matrix-reorg.c (struct matrix_info): Likewise.
9879 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
9880 * rtl.h (struct mem_attrs): Likewise.
9881 * df.h (struct df): Likewise.
9882 * tree-data-ref.h (struct data_dependence_relation): Likewise.
9883 * ira-int.h (struct ira_allocno): Likewise.
9884 * df-scan.c (struct df_collection_rec): Likewise.
9885 * ira.c (struct equivalence): Likewise.
9886 * function.c (struct temp_slot): Likewise.
9887 * cfgloop.h (struct loop): Likewise.
9888
d130d647
JJ
9889 PR debug/39485
9890 * function.c (use_register_for_decl): When not optimizing, disregard
9891 register keyword for variables with types containing methods.
9892
9968d233
SP
98932009-03-18 Sebastian Pop <sebastian.pop@amd.com>
9894
9895 PR middle-end/39447
9896 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
9897 (is_simple_operand): Call contains_component_ref_p before calling data
9898 reference analysis that would fail on COMPONENT_REFs.
9899
9900 * tree-vrp.c (search_for_addr_array): Fix formatting.
9901
69484bfd
RG
99022009-03-18 Richard Guenther <rguenther@suse.de>
9903
9904 * tree-vect-transform.c (vect_loop_versioning): Fold the
9905 generated comparisons.
9906 * tree-vectorizer.c (set_prologue_iterations): Likewise.
9907 (slpeel_tree_peel_loop_to_edge): Likewise.
9908
66811228
RW
99092009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9910
0631b69f
RW
9911 PR middle-end/37805
9912 * opts.c (print_specific_help): In addition to `undocumented',
9913 accept `separate' and `joined' flags if passed alone. Describe
9914 output by the first matched one of those.
9915 (common_handle_option): Skip over empty strings.
9916 * gcc.c (display_help): Fix help string for `--help='.
9917 * doc/invoke.texi (Option Summary, Overall Options): With
9918 `--help=', classes and qualifiers can both be repeated, but
9919 only the latter can be negated. One should not pass only
9920 negated qualifiers. Fix markup and examples.
9921
66811228
RW
9922 Revert
9923 2008-10-14 Jakub Jelinek <jakub@redhat.com>
9924 PR middle-end/37805
9925 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
9926 and -fhelp=separate.
9927
3c072c6b
JY
99282009-03-17 Jing Yu <jingyu@google.com>
9929
9930 PR middle-end/39378
80c65208
JY
9931 * function.h (struct rtl_data): Move is_thunk from here...
9932 (struct function): ...to here.
9933 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
9934 * varasm.c (assemble_start_function): Change is_thunk from crtl to
9935 cfun.
80c65208
JY
9936 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
9937 cfun.
9938 (alpha_does_function_need_gp, alpha_start_function): Likewise.
9939 (alpha_output_function_end_prologue): Likewise.
9940 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
9941 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
9942 (rs6000_output_function_epilogue): Likewise.
9943 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 9944
9ade279b
UB
99452009-03-17 Uros Bizjak <ubizjak@gmail.com>
9946
9947 PR target/39482
9948 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
9949 from different units in a single alternative.
9950 (*truncdfsf_i387): Ditto.
9951 (*truncxfsf2_mixed): Ditto.
9952 (*truncxfdf2_mixed): Ditto.
9953
16e60c17
JJ
99542009-03-17 Jakub Jelinek <jakub@redhat.com>
9955
98381eb4
JJ
9956 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
9957 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
9958
df5deb18
JJ
9959 PR debug/39474
9960 * tree-ssa-live.c (remove_unused_locals): Don't remove local
9961 unused non-artificial variables when not optimizing.
9962
a3f596ba
JJ
9963 PR debug/39471
9964 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
9965 DW_TAG_imported_module even if decl is IMPORTED_DECL with
9966 NAMESPACE_DECL in its DECL_INITIAL.
9967
6b2b8871
JJ
9968 PR middle-end/39443
9969 * optabs.c (set_user_assembler_libfunc): New function.
9970 * expr.h (set_user_assembler_libfunc): New prototype.
9971 * c-common.c: Include libfuncs.h.
9972 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
9973 for memcmp, memset, memcpy, memmove and abort.
9974 * Makefile.in (c-common.o): Depend on libfuncs.h.
9975
16e60c17
JJ
9976 PR debug/39412
9977 * dwarf2out.c (gen_inlined_enumeration_type_die,
9978 gen_inlined_structure_type_die, gen_inlined_union_type_die,
9979 gen_tagged_type_instantiation_die): Removed.
9980 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
9981 do nothing.
9982
4d936aca
JJ
99832009-03-17 Janis Johnson <janis187@us.ibm.com>
9984
9985 PR testsuite/38526
9986 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
9987 its use.
9988 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
9989 (check-parallel-%): Ditto.
9990 (check-consistency): Ditto.
9991
4e9b2e50
KT
99922009-03-17 Kai Tietz <kai.tietz@onevision.com>
9993
9994 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
9995 local variable rhs by NULL_TREE.
9996
21440b2d
L
99972009-03-17 H.J. Lu <hongjiu.lu@intel.com>
9998
9999 PR target/39477
9ade279b 10000 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 10001
d8905c6a
L
100022009-03-17 H.J. Lu <hongjiu.lu@intel.com>
10003
10004 PR target/39476
9ade279b 10005 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
10006
100072009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
10008
10009 PR target/39473
10010 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
10011 for ms->sysv ABI calls only in 64bit mode.
10012
10013 * config/i386/i386.md (untyped_call): Support 32bit.
10014
cdcabece
L
100152009-03-16 H.J. Lu <hongjiu.lu@intel.com>
10016
10017 * doc/extend.texi: Replace x86_65 with x86_64.
10018
97b4ba9f
JJ
100192009-03-16 Jakub Jelinek <jakub@redhat.com>
10020
10021 PR tree-optimization/39455
10022 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
10023 mismatches for POINTER_TYPE_P (type).
10024 (number_of_iterations_le): Likewise.
10025
60839f5d 100262009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
10027
10028 * config/picochip/picochip.c: Removed profiling support.
10029 * config/picochip/picochip.md: Removed profiling instruction.
10030 * config/picochip/picochip.h: Removed profiling builtin.
10031
f38095f3
JM
100322009-03-16 Joseph Myers <joseph@codesourcery.com>
10033
10034 * doc/install.texi (--with-host-libstdcxx): Document.
10035
2cb4817b
AS
100362009-03-14 Anatoly Sokolov <aesok@post.ru>
10037
10038 PR target/34299
10039 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
10040 generate a warning if the function name does not begin with
10041 "__vector" and the function has either the 'signal' or 'interrupt'
10042 attribute, from here to ...
10043 (avr_declare_function_name): ...here. New function.
10044 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
10045 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
10046
39b2ac74
JJ
100472009-03-14 Jakub Jelinek <jakub@redhat.com>
10048
10049 PR bootstrap/39454
10050 * cse.c (fold_rtx): Don't modify original const_arg1 when
10051 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
10052 separate variable instead.
10053 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
10054 from out of range shift counts.
10055 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
10056
ad41bd84 100572009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 10058
60839f5d 10059 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
10060 diagnostic.h with $(DIAGNOSTIC_H).
10061
ad41bd84 100622009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
10063
10064 PR target/39431
10065 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
10066 predicate.
10067 * config/i386/sync.md (sync_compare_and_swap<mode>,
10068 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
10069 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
10070 into a register.
10071 (sync_double_compare_and_swapdi_pic,
10072 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
10073 cmpxchg8b_pic_memory_operand instead of just memory_operand.
10074
122c59c7
L
100752009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10076
10077 PR target/39445
9ade279b 10078 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 10079
cec8874f
L
100802009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10081
10082 PR target/39327
10083 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
10084 (avx_addsubv4df3): Likewise.
10085 (*avx_addsubv4sf3): Likewise.
10086 (sse3_addsubv4sf3): Likewise.
10087
bbb52802
L
100882009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10089
10090 PR target/38824
9ade279b 10091 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 10092
a812fb07
VM
100932009-03-12 Vladimir Makarov <vmakarov@redhat.com>
10094
10095 PR debug/39432
10096 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
10097 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
10098 registers for allocnos created from user-defined variables.
10099
4caab5ba
UW
101002009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10101
10102 PR target/39181
10103 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
10104 of non-integer mode as well.
10105
498e51ca
AN
101062009-03-11 Adam Nemet <anemet@caviumnetworks.com>
10107
10108 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
10109 for functions for which the parameter types are unknown.
10110
9bfaf89d
JJ
101112009-03-11 Jakub Jelinek <jakub@redhat.com>
10112
10113 PR target/39137
9ade279b 10114 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
10115 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
10116 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
10117 * config/i386/i386.c (ix86_local_alignment): For
10118 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
10119 long long variables on the stack to avoid dynamic realignment.
10120 Allow the first argument to be a decl rather than type.
10121 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
10122
18a3bdcb
NC
101232009-03-11 Nick Clifton <nickc@redhat.com>
10124
10125 PR target/5362
40190a76
NC
10126 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
10127 options.
10128 Add description to mno-lsim option.
10129 * config/mcore/mcore.h: Remove comment about deprecated m4align
10130 option.
10131 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
10132 * doc/invoke.texi: Add description of mno-lsim and
10133 mstack-increment options.
10134
18a3bdcb
NC
10135 * config/fr30/fr30.opt: Document the -mno-lsim option.
10136 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
10137 and -mno-lsim options.
10138
dc215785
UW
101392009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10140
10141 * fold-const.c (fold_comparison): Only call fold_inf_compare
10142 if the mode supports infinities.
10143
7716876b
JM
101442009-03-11 Jason Merrill <jason@redhat.com>
10145
10146 PR debug/39086
10147 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
10148 end already did. Notice GIMPLE_CALL modifications of the result.
10149 Don't copy debug information from an ignored decl or a decl from
10150 another function.
10151
ddef83d2
RG
101522009-03-10 Richard Guenther <rguenther@suse.de>
10153 Nathan Froyd <froydnj@codesourcery.com>
10154
10155 PR middle-end/37850
9ade279b 10156 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
10157 (__divMODE3): Likewise.
10158
9a9ba8d9
JJ
101592009-03-09 Jakub Jelinek <jakub@redhat.com>
10160
10161 PR tree-optimization/39394
10162 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
10163 DECL_SIZE_UNIT of variable length FIELD_DECLs.
10164
929b7fc3
AK
101652009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10166
10167 * recog.c (verfiy_changes): Disallow renaming of hard regs in
10168 inline asms for register asm ("") declarations.
10169
1803581d
EB
101702009-03-09 Eric Botcazou <ebotcazou@adacore.com>
10171
10172 * fold-const.c (fold_unary): Fix comment.
10173
8454d27e
JH
101742009-03-07 Jan Hubicka <jh@suse.cz>
10175
10176 PR target/39361
969a5433
JJ
10177 * tree-inline.c (setup_one_parameter): Do replacement of const
10178 argument by constant in SSA form.
8454d27e 10179
3a695389
UW
101802009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10181
10182 PR middle-end/38028
10183 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
10184 determine alignment passed to assign_stack_local.
10185 (assign_parms_unsplit_complex): Likewise.
10186 * except.c (sjlj_build_landing_pads): Likewise.
10187
9f0e7885
JJ
101882009-03-06 Jakub Jelinek <jakub@redhat.com>
10189
65401a0b
JJ
10190 PR middle-end/39360
10191 * tree-flow.h (add_referenced_var): Return bool instead of void.
10192 * tree-dfa.c (add_referenced_var): Return result of
10193 referenced_var_check_and_insert call.
10194 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
10195 of referenced_var_check_and_insert.
10196
9f0e7885 10197 PR debug/39372
9ade279b 10198 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
10199 (gen_variable_die): Emit DW_AT_location on abstract static variable's
10200 DIE, don't emit it if abstract origin already has it.
10201 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
10202 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
10203
3b664bd1
JBG
102042009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10205
ba20e309 10206 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
10207 detection.
10208 (write_tm_constrs_h): Indent generated code.
10209
d8f8ca80
RR
102102009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10211
10212 * doc/extend.texi (Function Attributes): Add documentation
10213 for isr attributes.
10214
6c3d550c
JJ
102152009-03-06 Jakub Jelinek <jakub@redhat.com>
10216
10217 PR debug/39387
10218 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
10219 take locus from its DECL_SOURCE_LOCATION instead of input_location.
10220
f9e96751
BS
102212009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
10222
10223 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
10224 the loop as bad.
10225
ee0ee7e2
JJ
102262009-03-05 Jakub Jelinek <jakub@redhat.com>
10227
10228 PR debug/39379
10229 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
10230 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
10231
6c6094f1
UB
102322009-03-05 Uros Bizjak <ubizjak@gmail.com>
10233
10234 * config/i386/i386.md (R8_REG, R9_REG): New constants.
10235 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
10236 constants instead of magic numbers.
10237 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
10238 (QI_REG_P): Ditto.
10239 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
10240 (x86_64_ms_abi_int_parameter_registers): Ditto.
10241 (x86_64_int_return_registers): Ditto.
09f8a8d3 10242 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
10243 (ix86_expand_call): Ditto for clobbered_registers array.
10244 (ix86_hard_regno_mode_ok): Ditto.
10245 (x86_extended_QIreg_mentioned_p): Ditto.
10246
b267bd41
R
102472009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
10248
6c6094f1 10249 PR tree-optimization/39349
1f3ad3f0
R
10250 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
10251
b267bd41
R
10252 * combine.c (gen_lowpart_for_combine): Use omode when generating
10253 clobber.
10254
1242bc9d
R
102552009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
10256
6c6094f1 10257 PR rtl-optimization/39235
1242bc9d
R
10258 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
10259
48f03606
ZD
102602009-03-04 Zdenek Dvorak <ook@ucw.cz>
10261
10262 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
10263
b505e785
RG
102642009-03-04 Richard Guenther <rguenther@suse.de>
10265
10266 PR tree-optimization/39362
10267 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
10268 that occur in abnormal PHIs should be varying.
10269
f017bf5e
ZD
102702009-03-04 Zdenek Dvorak <ook@ucw.cz>
10271
10272 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
10273 Extend comments.
10274 (simple_iv): Take loop as an argument instead of statement.
10275 * tree-scalar-evolution.h (simple_iv): Declaration changed.
10276 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
10277 to simple_iv.
10278 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
10279 Ditto.
10280 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
10281 * matrix-reorg.c (analyze_transpose): Ditto.
10282 * tree-data-ref.c (dr_analyze_innermost): Ditto.
10283 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
10284 * tree-predcom.c (ref_at_iteration): Ditto.
10285 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
10286
6a66f28e
RG
102872009-03-04 Richard Guenther <rguenther@suse.de>
10288
10289 PR tree-optimization/39358
10290 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
10291 escaped_id and callused_id.
10292 (solve_graph): Likewise.
10293
57e454ee
RG
102942009-03-04 Richard Guenther <rguenther@suse.de>
10295
10296 PR tree-optimization/39339
10297 * tree-sra.c (try_instantiate_multiple_fields): Make it
10298 no longer ICE on the above.
10299
a6fe9ed4
JM
103002009-03-03 Joseph Myers <joseph@codesourcery.com>
10301
10302 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
10303 that fits within Pmode.
10304
dc672951
SE
103052009-03-03 Steve Ellcey <sje@cup.hp.com>
10306
10307 PR middle-end/10109
10308 * tm.texi (LIBCALL_VALUE): Update description.
10309
8b9d598f
SE
103102009-03-03 Steve Ellcey <sje@cup.hp.com>
10311
10312 PR middle-end/34443
10313 * doc/extend.texi (section): Update description.
10314
13e4e36e
L
103152009-03-03 H.J. Lu <hongjiu.lu@intel.com>
10316
10317 PR middle-end/39345
10318 * tree-inline.c (remapped_type): New.
10319 (can_be_nonlocal): Call remapped_type instead of remap_type.
10320
067dd3c9
JJ
103212009-03-03 Jakub Jelinek <jakub@redhat.com>
10322
10323 PR fortran/39354
10324 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
10325 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
10326
9bd9f738
RG
103272009-03-03 Richard Guenther <rguenther@suse.de>
10328
10329 PR middle-end/39272
10330 * tree.c (tree_nonartificial_location): New function.
10331 * tree.h (tree_nonartificial_location): Declare.
10332 * builtins.c (expand_builtin_memory_chk): Provide location
10333 of the call location for artificial function pieces.
10334 (maybe_emit_chk_warning): Likewise.
10335 (maybe_emit_sprintf_chk_warning): Likewise.
10336 (maybe_emit_free_warning): Likewise.
10337 * expr.c (expand_expr_real_1): Likewise.
10338
f07049c8
JJ
103392009-03-03 Jakub Jelinek <jakub@redhat.com>
10340
10341 PR tree-optimization/39343
10342 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
10343 COMPONENT_REF t has ARRAY_TYPE.
10344
7d4fba4a
SP
103452009-03-02 Sebastian Pop <sebastian.pop@amd.com>
10346
10347 PR middle-end/39335
10348 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
10349 when the type precision of the induction variable should be
10350 larger than the type precision of nit.
10351 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
10352 * graphite.c (graphite_loop_normal_form): Same.
10353 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
10354
78168632
UB
103552009-03-02 Uros Bizjak <ubizjak@gmail.com>
10356
10357 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
10358 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 10359 numbers to describe clobbered registers.
78168632 10360 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
10361 * config/i386/mmx.md (mmx_emms): Ditto.
10362 (mmx_femms): Ditto.
78168632 10363
63553059
RS
103642009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
10365
10366 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
10367 of ABI_64.
10368
500a1f85
UW
103692009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10370
10371 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
10372 (spu_section_type_flags): New function.
10373
962aae34
UB
103742009-03-02 Uros Bizjak <ubizjak@gmail.com>
10375
10376 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
10377 reg_class_contents of FLOAT_REGS into a temporary.
10378
6dfb529c 103792009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 10380 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
10381
10382 PR tree-optimization/39318
10383 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
10384 information to the vectorized statement.
10385
6b5629db
UB
103862009-03-01 Uros Bizjak <ubizjak@gmail.com>
10387
434426d2
UB
10388 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
10389 variable. Use defined names instead of magic constants for REX SSE
10390 registers.
6b5629db 10391
14e5b285
RG
103922009-03-01 Richard Guenther <rguenther@suse.de>
10393
10394 PR tree-optimization/39331
10395 * omp-low.c (lower_send_shared_vars): Do not receive new
10396 values for the reference of DECL_BY_REFERENCE parms or results.
10397
526d73ab
JH
103982009-03-01 Jan Hubicka <jh@suse.cz>
10399
10400 PR debug/39267
10401 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
10402 BLOCK_NONLOCALIZED_VAR): New macros.
10403 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
10404 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
10405 gen_decl_die): Add origin argument. Allow generation of die with
10406 origin at hand only.
526d73ab 10407 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
10408 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
10409 of gen_*.
526d73ab
JH
10410 (gen_block_die): Fix checking for unused blocks.
10411 (process_scope_var): Break out from .... ; work with origins only.
10412 (decls_for_scope) ... here; process nonlocalized list.
10413 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
10414 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
10415 vars.
526d73ab
JH
10416 (dump_scope_block): Dump them.
10417 * tree-inline.c (remap_decls): Handle nonlocalized vars.
10418 (remap_block): Likewise.
10419 (can_be_nonlocal): New predicate.
10420 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
10421
7a9d3fe8
RW
104222009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10423
10424 * configure: Regenerate.
10425
b3cdf3cb
RW
104262009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10427
a16d1645 10428 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 10429 Reuse help texts for duplicate options which do not have any.
a16d1645 10430
1156c176
RW
10431 * gcc.c (display_help): Document --version.
10432
033505fc
RW
10433 * gcc.c (main): If print_help_list and verbose_flag, ensure
10434 driver output comes before subprocess output.
10435
4d077054
RW
10436 * optc-gen.awk: Assign all remaining fields to help string,
10437 space-separated, for multi-line help in *.opt.
10438
a072f1cf
RW
10439 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
10440 -Wno-pedantic-ms-format is for MinGW targets only.
10441
b3cdf3cb
RW
10442 * doc/options.texi (Option file format): Fix bad indentation,
10443 restoring dropped sentence.
10444
a3aadcc5
JH
104452009-02-28 Jan Hubicka <jh@suse.cz>
10446
10447 * tree-inline.c (tree_function_versioning): Output debug info.
10448
1cf5abb3
JH
104492009-02-28 Jan Hubicka <jh@suse.cz>
10450
10451 PR debug/39267
10452 * tree-inline.c (setup_one_parameter): Do not copy propagate
10453 arguments when not optimizing.
10454
c4d3f42f
L
104552009-02-28 H.J. Lu <hongjiu.lu@intel.com>
10456
10457 PR target/39327
10458 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
10459 (avx_addsubv4df3): Likewise.
10460 (*avx_addsubv4sf3): Likewise.
10461 (sse3_addsubv4sf3): Likewise.
10462 (*avx_addsubv2df3): Likewise.
10463 (sse3_addsubv2df3): Likewise.
10464 (avx_unpckhps256): Correct item selectors.
10465 (avx_unpcklps256): Likewise.
10466 (avx_unpckhpd256): Likewise.
10467 (avx_unpcklpd256): Likewise.
10468
eb50f5f4
JH
104692009-02-28 Jan Hubicka <jh@suse.cz>
10470
10471 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
10472 static vars.
10473 (copy_arguments_for_versioning): If var is declared don't declare it.
10474 (tree_function_versioning): First setup substitutions and then copy
10475 args.
10476
26140130
JH
104772009-02-27 Jan Hubicka <jh@suse.cz>
10478
10479 PR debug/39267
10480 * cgraph.h (varpool_output_debug_info): Remove.
10481 * cgraphunit.c (varpool_output_debug_info): Remove.
10482 * dwarf2out.c (deferred_locations_struct): New struct
10483 (deferred_locations): New type.
10484 (deferred_locations_list): New static var.
10485 (deffer_location): New function.
10486 (gen_variable_die): Use it.
10487 (decls_for_scope): Output info on local static vars.
10488 (dwarf2out_finish): Process deferred locations.
10489 * varpool.c (varpool_output_debug_info): Remove.
10490
cff7525f
JH
104912009-02-27 Jan Hubicka <jh@suse.cz>
10492
10493 PR debug/39267
10494 * tree.h (TREE_PROTECTED): Fix comment.
10495 (BLOCK_HANDLER_BLOCK): Remove.
10496 (struct tree_block): Remove handler_block add body_block.
10497 (inlined_function_outer_scope_p): New.
10498 (is_body_block): Remove.
10499 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
10500 * dwarf2out.c (is_inlined_entry_point): Remove.
10501 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
10502 (gen_block_die): Use is_inlined_entry_point check. Remove body block
10503 code.
cff7525f
JH
10504 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
10505 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
10506 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
10507 block with multiple subblocks.
cff7525f
JH
10508 (dump_scope_block): Prettier output; dump more flags and info.
10509 (dump_scope_blocks): New.
10510 (remove_unused_locals): Use dump_scope_blocks.
10511 * tree-flow.h (dump_scope_blocks): Declare.
10512 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
10513 * stmt.c (is_body_block): Remove.
10514 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
10515 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
10516
c20993b9
SP
105172009-02-27 Sebastian Pop <sebastian.pop@amd.com>
10518
10519 PR middle-end/39308
2ba9daa7 10520 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
10521 number_of_iterations_exit from a gcc_assert.
10522
e3cba5e5
AK
105232009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10524
60839f5d 10525 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
10526 jumps if COND is NULL.
10527 (find_cond_jump): New function.
10528 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 10529 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 10530
9dadeeb8
UB
105312009-02-26 Uros Bizjak <ubizjak@gmail.com>
10532
10533 * config/alpha/alpha.h (alpha_expand_mov): Return false if
10534 force_const_mem returns NULL_RTX.
10535
625d3251
EB
105362009-02-26 Jan Hubicka <jh@suse.cz>
10537
10538 PR debug/39267
10539 * cgraph.h (varpool_output_debug_info): Remove.
10540 * cgraphunit.c (varpool_output_debug_info): Remove.
10541 * dwarf2out.c (deferred_locations_struct): New struct
10542 (deferred_locations): New type.
10543 (deferred_locations_list): New static var.
10544 (deffer_location): New function.
10545 (gen_variable_die): Use it.
10546 (decls_for_scope): Output info on local static vars.
10547 (dwarf2out_finish): Process deferred locations.
10548 * varpool.c (varpool_output_debug_info): Remove.
10549
38432148 105502009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
10551
10552 PR rtl-optimization/39241
10553 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
10554 to subreg_offset_representable_p.
10555
62d049cf
PB
105562009-02-25 Paolo Bonzini <bonzini@gnu.org>
10557
10558 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
10559 execute function prototype. Get f and nregs from max_reg_num
10560 and get_insns. Remove the first backward pass as it's dead,
10561 guard the forward pass by flag_expensive_optimizations.
10562 (rest_of_handle_regmove): Delete.
10563 (pass_regmove): Replace it with regmove_optimize.
10564
f618d33e
MJ
105652009-02-25 Martin Jambor <mjambor@suse.cz>
10566
10567 PR tree-optimization/39259
10568 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 10569 calls_alloca function flags.
f618d33e
MJ
10570 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
10571 calls are detected.
10572
c8a05f7c
PB
105732009-02-25 Paolo Bonzini <bonzini@gnu.org>
10574
10575 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
10576 flags_set_1_rtx, flags_set_1_set): Delete.
10577 (regmove_optimize): Do not call mark_flags_life_zones.
10578
6d2538f5
JB
105792009-02-24 Julian Brown <julian@codesourcery.com>
10580
10581 PR target/35965
10582 * config/arm/arm.c (require_pic_register): Only set
10583 cfun->machine->pic_reg once per function.
10584
a2fa6772
SL
105852009-02-24 Sandra Loosemore <sandra@codesourcery.com>
10586
10587 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 10588 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 10589
5472de36
SE
105902009-02-24 Steve Ellcey <sje@cup.hp.com>
10591
10592 PR target/33785
10593 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
10594
844216f3
RG
105952009-02-24 Richard Guenther <rguenther@suse.de>
10596
10597 PR debug/39285
10598 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
10599
71adbef3 106002009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 10601 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
10602
10603 PR tree-optimization/39233
10604 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
10605 from converting them to a generic type.
10606
f1a558e0
SP
106072009-02-23 Sebastian Pop <sebastian.pop@amd.com>
10608
10609 PR tree-optimization/39260
10610 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
10611 contains a condition with a real type.
10612 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
10613
d8028f2c
JM
106142009-02-23 Jason Merrill <jason@redhat.com>
10615
10616 PR c++/38880
10617 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
10618 narrowing_initializer_constant_valid_p.
2ba9daa7 10619 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
10620 null_pointer_node for adding a pointer to itself.
10621
9283b513
JH
106222009-02-23 Jan Hubicka <jh@suse.cz>
10623
10624 PR c/12245
9dadeeb8
UB
10625 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
10626 resizing.
9283b513 10627
61e04322
JH
106282009-02-23 Jan Hubicka <jh@suse.cz>
10629
9dadeeb8
UB
10630 PR tree-optimization/37709
10631 * tree.c (block_ultimate_origin): Move here from dwarf2out.
10632 * tree.h (block_ultimate_origin): Declare.
10633 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
10634 * tree-ssa-live.c (remove_unused_scope_block_p):
10635 Eliminate blocks containig no instructions nor live variables nor
10636 nested blocks.
10637 (dump_scope_block): New function.
10638 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 10639 enable dumping at TDF_DETAILS.
61e04322 10640
38432148 106412009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
10642
10643 * config/i386/i386.c (classify_argument): Don't allow COImode
10644 and OImode.
10645 (function_arg_advance_32): Don't allow OImode.
10646 (function_arg_32): Likewise.
10647 (function_value_32): Likewise.
10648 (return_in_memory_32): Likewise.
10649 (function_arg_64): Remove OImode comment.
10650
38432148 106512009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
10652
10653 PR target/39261
10654 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
10655 ix86_expand_vector_set for V4DImode in 64bit mode only.
10656 (ix86_expand_vector_init_one_var): Likewise.
10657
dcd739a6
SP
106582009-02-21 Sebastian Pop <sebastian.pop@amd.com>
10659
10660 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
10661
6c3b938d
RS
106622009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
10663
8e361f23 10664 PR bootstrap/39257
6c3b938d
RS
10665 * loop-iv.c: Revert last change.
10666 * emit-rtl.c: Likewise.
10667
38432148 106682009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
10669
10670 PR target/39256
10671 * config/i386/i386.c (type_natural_mode): Remove an extra
10672 space in the warning message.
10673 (function_value_32): Handle 32-byte vector modes.
10674 (return_in_memory_32): Likewise.
10675
2ec62529
RS
106762009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
10677
10678 * loop-iv.c (truncate_value): New function.
10679 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
10680 of lowpart_subreg.
10681 (lowpart_subreg): Move to...
10682 * emit-rtl.c: ...here.
10683
ecb8c3cc 106842009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 10685
ecb8c3cc
DS
10686 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
10687 accidental and undocumented change at revision 140860.
10688
ae46a823
JM
106892009-02-21 Joseph Myers <joseph@codesourcery.com>
10690
10691 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
10692 take gimple_seq * arguments.
10693 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
10694 types_compatible_p langhook.
10695
07d8efe3 106962009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 10697 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
10698
10699 * config/arm/arm.c (arm_builtin_va_list): New function.
10700 (arm_expand_builtin_va_start): Likewise.
10701 (arm_gimplify_va_arg_expr): Likewise.
10702 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
10703 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
10704 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
10705 (va_list_type): New variable.
10706 (arm_mangle_type): Mangle va_list_type appropriately.
10707
b1fb9f56
JJ
107082009-02-20 Jakub Jelinek <jakub@redhat.com>
10709
10710 PR middle-end/39157
10711 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
10712 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
10713 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
10714 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
10715 parameter to 1000 for -O1 by default.
10716 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
10717 parameter.
10718 * loop-invariant.c: Include params.h.
10719 (move_loop_invariants): Don't call move_single_loop_invariants on
10720 very large loops.
10721
5bc0807c
JM
107222009-02-20 Jaka Mocnik <jaka@xlab.si>
10723
10724 * calls.c (emit_library_call_value_1): Use slot_offset instead of
10725 offset when calculating bounds for indexing stack_usage_map. Fixes
10726 a buffer overflow with certain target setups.
10727
c69cd1f5
JJ
107282009-02-20 Jakub Jelinek <jakub@redhat.com>
10729
10730 PR target/39240
10731 * calls.c (expand_call): Clear try_tail_call if caller and callee
10732 disagree in promotion of function return value.
10733
09812622
JJ
107342009-02-19 Jakub Jelinek <jakub@redhat.com>
10735
10736 PR target/39175
10737 * c-common.c (c_determine_visibility): If visibility changed and
10738 DECL_RTL has been already set, call make_decl_rtl to update symbol
10739 flags.
10740
68017cb4
L
107412009-02-19 H.J. Lu <hongjiu.lu@intel.com>
10742
10743 PR c++/39188
10744 * varasm.c (assemble_variable): Don't check DECL_NAME when
10745 globalizing a variable.
10746
ab4194da
JM
107472009-02-19 Joseph Myers <joseph@codesourcery.com>
10748
10749 PR c/38483
10750 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
10751 expression before any __builtin_trap call.
10752 * c-typeck.c (build_function_call): Convert and check function
10753 arguments before generating a call to a trap. Evaluate the
10754 function arguments before the trap.
10755
6b67572e
UB
107562009-02-19 Uros Bizjak <ubizjak@gmail.com>
10757
10758 PR target/39228
10759 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
10760 (UNSPEC_FXAM_MEM): New unspec.
10761 (fxam<mode>2_i387_with_temp): New insn and split pattern.
10762 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
10763 memory using fxam<mode>2_i387_with_temp to remove excess precision.
10764
9e39dba6
RG
107652009-02-19 Richard Guenther <rguenther@suse.de>
10766
10767 PR tree-optimization/39207
10768 PR tree-optimization/39074
10769 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
10770 storedanything_tree): New.
10771 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 10772 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
10773 (build_succ_graph): Add edges from STOREDANYTHING to all
10774 non-direct nodes.
10775 (init_base_vars): Initialize STOREDANYTHING.
10776 (compute_points_to_sets): Free substitution info after
10777 building the succ graph.
10778 (ipa_pta_execute): Likewise.
10779
10780 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
10781 field.
10782 (do_ds_constraint): Do not add to special var or non-pointer
10783 field solutions.
10784 (type_could_have_pointers): Split out from ...
10785 (could_have_pointers): ... here. For arrays use the element type.
10786 (create_variable_info_for): Initialize may_have_pointers.
10787 (new_var_info): Likewise.
10788 (handle_lhs_call): Make the HEAP variable unknown-sized.
10789 (intra_create_variable_infos): Use a type with pointers for
10790 PARM_NOALIAS, make it unknown-sized.
10791
fd7b2603
L
107922009-02-18 H.J. Lu <hongjiu.lu@intel.com>
10793
10794 PR target/39224
6b67572e 10795 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 10796
98b80692
JM
107972009-02-18 Jason Merrill <jason@redhat.com>
10798
10799 PR target/39179
10800 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
10801 value if DECL_EXTERNAL.
10802 * tree-sra.c (sra_walk_gimple_assign): Likewise.
10803 * target.h (gcc_target::binds_local_p): Clarify "module".
10804 * tree.h (TREE_PUBLIC): Clarify "module".
10805
0705d3f4
L
108062009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
10807
10808 PR target/38891
10809 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
10810 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
10811
bce08d50
L
108122009-02-17 H.J. Lu <hongjiu.lu@intel.com>
10813
10814 PR target/39082
10815 * c.opt (Wabi): Support C and ObjC.
10816 (Wpsabi): New.
10817
10818 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
10819
10820 * config/i386/i386.c (classify_argument): Warn once about the ABI
10821 change when passing union with long double.
10822
10823 * doc/invoke.texi: Update -Wabi for warning psABI changes.
10824
5600f233
JM
108252009-02-18 Joseph Myers <joseph@codesourcery.com>
10826
10827 PR c/35447
10828 * c-parser.c (c_parser_compound_statement): Always enter and leave
10829 a scope.
10830
8cd01fe6
JDA
108312009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10832
10833 PR target/34587
10834 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
10835
418df9d7
JJ
108362009-02-18 Jakub Jelinek <jakub@redhat.com>
10837
10838 PR tree-optimization/36922
10839 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
10840 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
10841 Likewise.
10842
082d2ebb
RS
108432009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
10844
10845 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
10846 to 0 for EABI64.
10847
17de576c
RS
108482009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
10849
10850 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
10851
6d8d5435
RS
108522009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
10853
10854 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
10855 tree sharing.
10856
e69ff910
RB
108572009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
10858 Richard Sandiford <rdsandiford@googlemail.com>
10859
10860 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
10861 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
10862 (loongson_biadd): ...this.
10863
6b24ee26
RG
108642009-02-17 Richard Guenther <rguenther@suse.de>
10865
10866 PR tree-optimization/39202
10867 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
10868 a var make sure to follow existing collapses.
10869
91ab2c86
RG
108702009-02-17 Richard Guenther <rguenther@suse.de>
10871
10872 PR middle-end/39214
10873 * langhooks.c (lhd_print_error_function): Check for NULL block.
10874
73a63870
RG
108752009-02-17 Richard Guenther <rguenther@suse.de>
10876
10877 PR tree-optimization/39204
10878 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
10879 of the PHI arg.
10880
0e08f686
UB
108812009-02-17 Uros Bizjak <ubizjak@gmail.com>
10882
10883 * config/soft-fp/double.h: Update from glibc CVS.
10884
a60b7ddb
RG
108852009-02-17 Richard Guenther <rguenther@suse.de>
10886
10887 PR tree-optimization/39207
10888 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
10889 strict-aliasing warnings for pointers pointing to NULL.
10890
a47e20fd
JM
108912009-02-16 Joseph Myers <joseph@codesourcery.com>
10892
10893 PR c/35446
10894 * c-parser.c (c_parser_braced_init): Call pop_init_level when
10895 skipping until next close brace.
10896
50aab7dc
L
108972009-02-16 H.J. Lu <hongjiu.lu@intel.com>
10898
10899 PR target/37049
10900 * config/i386/i386.c (ix86_expand_push): Set memory alignment
10901 to function argument boundary.
10902
68e53db0
HS
109032009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
10904
10905 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
10906 in the lea_add. Reload eventually constraints it properly.
0d50d55a 10907 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
10908 "b", since it is not needed anymore.
10909
09e361bb
JJ
109102009-02-16 Jakub Jelinek <jakub@redhat.com>
10911
10912 * gthr-dce.h: Uglify function parameter and local variable names.
10913 * gthr-gnat.h: Likewise.
10914 * gthr-mipssde.h: Likewise.
10915 * gthr-nks.h: Likewise.
10916 * gthr-posix95.h: Likewise.
10917 * gthr-posix.h: Likewise.
10918 * gthr-rtems.h: Likewise.
10919 * gthr-single.h: Likewise.
10920 * gthr-solaris.h: Likewise.
10921 * gthr-tpf.h: Likewise.
10922 * gthr-vxworks.h: Likewise.
10923 * gthr-win32.h: Likewise.
10924
47f5a48f
L
109252009-02-15 H.J. Lu <hongjiu.lu@intel.com>
10926
10927 PR target/39196
10928 * config/i386/i386.md: Restrict the new peephole2 to move
10929 between MMX/SSE registers.
10930
68c9ab45
RG
109312009-02-15 Richard Guenther <rguenther@suse.de>
10932
10933 Revert
10934 2009-02-13 Richard Guenther <rguenther@suse.de>
10935
10936 * configure.ac: Enable LFS.
10937 * configure: Re-generate.
10938 * config.in: Likewise.
10939
d7815554
UW
109402009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10941
10942 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
10943 spu_srqwbyte, spu_srqwbytebc): Define.
10944 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
10945 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
10946 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
10947 "shrqby_<mode>"): New insn-and-split patterns.
10948 * config/spu/spu.c (expand_builtin_args): Determine and return
10949 number of operands using spu_builtin_description data.
10950 (spu_expand_builtin_1): Use it.
10951
c208436c
SE
109522009-02-13 Steve Ellcey <sje@cup.hp.com>
10953
10954 PR target/38056
10955 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
10956 TARGET_CONST_GP.
10957
c2e7ba7e
L
109582009-02-13 H.J. Lu <hongjiu.lu@intel.com>
10959
10960 PR target/39149
10961 * config/i386/i386.c (override_options): Correct warning
6c6094f1 10962 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 10963
72f4e3a7
L
109642009-02-13 H.J. Lu <hongjiu.lu@intel.com>
10965
10966 PR target/39152
10967 * config/i386/i386.md: Restrict the new peephole2 to move
10968 between the general purpose registers.
10969
53f648e2
L
109702009-02-13 H.J. Lu <hongjiu.lu@intel.com>
10971
10972 PR target/39162
10973 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 10974 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
10975 (function_arg_advance): Updated.
10976 (function_arg): Likewise.
10977 (ix86_function_value): Likewise.
10978 (ix86_return_in_memory): Likewise.
10979 (ix86_sol10_return_in_memory): Likewise.
10980 (ix86_gimplify_va_arg): Likewise.
10981 (function_arg_32): Don't warn ABX ABI change here.
10982 (function_arg_64): Likewise.
10983
38432148 109842009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
10985
10986 * loop-iv.c (implies_p): In the final case, test that operands 0
10987 of the two comparisons match.
10988
dd2139e7
BS
10989 * config/bfin/bfin.c (find_prev_insn_start): New function.
10990 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
10991 (find_next_insn_start): Move.
10992
601b3e1a
RG
109932009-02-13 Richard Guenther <rguenther@suse.de>
10994
10995 * configure.ac: Enable LFS.
10996 * configure: Re-generate.
10997 * config.in: Likewise.
10998
f007042e
JM
109992009-02-13 Joseph Myers <joseph@codesourcery.com>
11000
11001 PR c/35444
11002 * c-parser.c (c_parser_parms_list_declarator): Discard pending
11003 sizes on syntax error after some arguments have been parsed.
11004
3f238e8b
JJ
110052009-02-12 Jakub Jelinek <jakub@redhat.com>
11006
11007 * doc/invoke.texi (-fira): Remove.
11008
328e13b7
L
110092009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11010
11011 * caller-save.c: Replace regclass.c with reginfo.c in comments.
11012 * recog.c: Likewise.
11013 * rtl.h: Likewise.
11014
c252db20
L
110152009-02-12 Uros Bizjak <ubizjak@gmail.com>
11016
11017 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
11018 (umul_ppmm): Likewise.
11019 (count_leading_zeros): Likewise.
11020 (count_trailing_zeros): Likewise.
11021 (UMUL_TIME): Likewise.
11022
110232009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11024
ba181049
UB
11025 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
11026 soft-fp/t-softfp to tmake_file.
c252db20
L
11027
11028 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
11029 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
11030 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
11031 IA64_BUILTIN_INFQ]: New.
c252db20
L
11032 (ia64_init_builtins): Initialize __builtin_infq,
11033 __builtin_fabsq and __builtin_copysignq if not HPUX.
11034 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
11035 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
11036
11037 * config/ia64/lib1funcs.asm (__divtf3): Define only if
11038 SHARED is defined.
11039 (__fixtfti): Likewise.
11040 (__fixunstfti): Likewise.
11041 (__floattitf): Likewise.
11042
11043 * config/ia64/libgcc-glibc.ver: New.
11044 * config/ia64/t-fprules-softfp: Likewise.
11045 * config/ia64/sfp-machine.h: Likewise.
11046
11047 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
11048 (LIBGCC2_TF_CEXT): Likewise.
11049 (TF_SIZE): Likewise.
11050 (TARGET_INIT_LIBFUNCS): Likewise.
11051
ba181049 11052 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 11053 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 11054
f13eae6a
L
110552009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11056
11057 * config/i386/i386.c (construct_container): Rewrite processing
11058 BLKmode with X86_64_SSE_CLASS.
11059
12019aec
L
110602009-02-12 Paolo Bonzini <bonzini@gnu.org>
11061
11062 PR target/39152
11063 * config/i386/i386.md: Replace simplify_replace_rtx with
11064 replace_rtx in the new peephole2.
11065
28c11eb3
NS
110662009-02-12 Nathan Sidwell <nathan@codesourcery.com>
11067
11068 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
11069 loop unrolling do not happen at -O2.
11070
c7b94907
MM
110712009-02-12 Michael Matz <matz@suse.de>
11072
11073 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
11074
61e98967
JJ
110752009-02-12 Jakub Jelinek <jakub@redhat.com>
11076
11077 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
11078 for -g3.
11079
a2a237b5
BE
110802009-02-12 Ben Elliston <bje@au.ibm.com>
11081
11082 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
11083 patterns when updating the back chain. Missed in the 2009-02-10
11084 change.
11085
853eda8d
JJ
110862009-02-11 Janis Johnson <janis187@us.ibm.com>
11087
11088 * doc/extend.texi (Decimal Floating Types): Update identifier of
11089 draft TR and list of missing support.
11090
3ad6b266
JJ
110912009-02-11 Jakub Jelinek <jakub@redhat.com>
11092
11093 PR middle-end/39154
11094 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
11095 bit to variable length decl's flags, add it also to its
11096 pointer replacement variable.
11097
b058b753
UB
110982009-02-11 Uros Bizjak <ubizjak@gmail.com>
11099 Jakub Jelinek <jakub@redhat.com>
11100
11101 PR target/39118
11102 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
11103 (memory_blockage): New expander.
11104 (*memory_blockage): New insn pattern.
11105 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
11106 instead of general blockage at the end of function prologue when
11107 frame pointer is used to access red zone area. Do not emit blockage
11108 when profiling, it is emitted in generic code.
11109 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
11110 function epilogue when frame pointer is used to access red zone area.
11111
bab64f23
PB
111122009-02-11 Paolo Bonzini <bonzini@gnu.org>
11113
0ce6dcfa 11114 PR target/38824
bab64f23
PB
11115 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
11116 by arithmetic with memory operands.
11117 * config/i386/predicates.md (commutative_operator): New.
11118
8fd94bda
JJ
111192009-02-10 Janis Johnson <janis187@us.ibm.com>
11120
11121 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
11122 bulleted lists.
11123
794511d2
EB
111242009-02-10 Eric Botcazou <ebotcazou@adacore.com>
11125
11126 * alias.h (record_alias_subset): Declare.
11127 * alias.c (record_alias_subset): Make global.
11128
6da7fc87
NC
111292009-02-10 Nick Clifton <nickc@redhat.com>
11130
11131 * tree-parloops.c: Change license to GPLv3.
11132 * ipa-struct-reorg.c: Change license to GPLv3.
11133 * ipa-struct-reorg.h: Change license to GPLv3.
11134
a03813c8
SE
111352009-02-10 Steve Ellcey <sje@cup.hp.com>
11136
11137 PR c/39084
11138 * c-decl.c (start_struct): Return NULL on error.
11139
fc3103e7
JJ
111402009-02-10 Jakub Jelinek <jakub@redhat.com>
11141
9b43d37b
JJ
11142 PR middle-end/39124
11143 * cfgloopmanip.c (remove_path): Call remove_bbs after
11144 cancel_loop_tree, not before it.
11145
fc3103e7 11146 PR target/39139
b058b753 11147 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
11148 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
11149 VAR_DECLs were seen.
11150 * tree-ssa-live.c (remove_unused_locals): Recompute
11151 cfun->has_local_explicit_reg_vars.
11152 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
11153 copies or clearings if cfun->has_local_explicit_reg_vars.
11154
dbf9ee15
UB
111552009-02-10 Uros Bizjak <ubizjak@gmail.com>
11156
11157 PR target/39118
11158 * config/i386/i386.c (expand_prologue): Emit blockage at the end
11159 of function prologue when frame pointer is used to access
11160 red zone area.
11161
bdec4dc7
RG
111622009-02-10 Richard Guenther <rguenther@suse.de>
11163
11164 PR middle-end/39127
11165 * gimplify.c (gimple_regimplify_operands): Always look if
11166 we need to create a temporary.
11167
7cae94fc
RG
111682009-02-10 Richard Guenther <rguenther@suse.de>
11169
11170 PR tree-optimization/39132
11171 * tree-loop-distribution.c (todo): New global var.
11172 (generate_memset_zero): Trigger TODO_rebuild_alias.
11173 (tree_loop_distribution): Return todo.
11174
a8800687
L
111752009-02-10 H.J. Lu <hongjiu.lu@intel.com>
11176
11177 PR target/39119
11178 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
11179 (x86_64_reg_class_name): Removed.
11180 (classify_argument): Return 0 if bytes > 32. Return 0 if the
11181 first one isn't X86_64_SSE_CLASS or any other ones aren't
11182 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
11183 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
11184 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
11185 and 3 X86_64_SSEUP_CLASS.
11186 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
11187 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
11188
d4bacef0
BE
111892009-02-10 Ben Elliston <bje@au.ibm.com>
11190
11191 * config/rs6000/rs6000.md (allocate_stack): Always use an update
11192 form instruction to update the stack back chain word, even if the
11193 user has disabled the generation of update instructions.
11194 (movdi_<mode>_update_stack): New.
11195 (movsi_update_stack): Likewise.
11196 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
11197 always use an update form instruction to update the stack back
11198 chain word.
11199
01d7d2f3
SP
112002009-02-09 Sebastian Pop <sebastian.pop@amd.com>
11201
11202 PR middle-end/38953
b058b753
UB
11203 * graphite.c (if_region_set_false_region): After moving a region in
11204 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
11205 (gloog): Remove wrong fix for PR38953.
11206
e41e2ab4
UW
112072009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11208
11209 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
11210 generation due to implicit sign extension.
11211
4bb07c5d
EB
112122009-02-09 Eric Botcazou <ebotcazou@adacore.com>
11213
11214 PR middle-end/38981
11215 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
11216 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
11217
f060a261
RG
112182009-02-09 Richard Guenther <rguenther@suse.de>
11219
11220 PR middle-end/35202
11221 * convert.c (convert_to_real): Disable (float)fn((double)x)
11222 to fnf(x) conversion if errno differences may occur and
11223 -fmath-errno is set.
11224
5a7e237c
AS
112252009-02-07 Anatoly Sokolov <aesok@post.ru>
11226
11227 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
11228 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11229 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
11230
feab5a67
JM
112312009-02-06 Joseph Myers <joseph@codesourcery.com>
11232
11233 PR c/35434
11234 * c-common.c (handle_alias_attribute): Disallow attribute for
11235 anything not a FUNCTION_DECL or VAR_DECL.
11236
90ef2296
JJ
112372009-02-06 Janis Johnson <janis187@us.ibm.com>
11238
11239 PR c/39035
11240 * real.c (do_compare): Special-case compare of zero against
11241 decimal float value.
11242
1de2c900
JM
112432009-02-06 Joseph Myers <joseph@codesourcery.com>
11244
11245 PR c/36432
11246 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
11247 as indicating flexible array members unless the field itself is
11248 being declarared as the incomplete array.
11249
e901811a
JH
112502009-02-06 Jan Hubicka <jh@suse.cz>
11251
11252 PR tree-optimization/38844
11253 * ipa-inline.c (try_inline): Stop inlining recursion when edge
11254 is already inlined.
11255
3cfa762b
RG
112562009-02-06 Richard Guenther <rguenther@suse.de>
11257
11258 PR middle-end/38977
11259 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
11260 fork because we may expand it as __gcov_fork.
11261
8506528c
NC
112622009-02-06 Nick Clifton <nickc@redhat.com>
11263
dbf9ee15 11264 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 11265
85169114
PB
112662009-02-06 Paolo Bonzini <bonzini@gnu.org>
11267
11268 PR tree-optimization/35659
11269 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
11270 vn_phi_eq): Shortcut if hashcode does not match.
11271 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
11272 NULL operands.
11273 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
11274 and avoid iterative_hash_expr.
11275 (FOR_EACH_VALUE_ID_IN_SET): New.
11276 (value_id_compare): Remove.
11277 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
11278 sort expressions by value id.
11279
6d39673d
KK
112802009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
11281
11282 PR target/38991
11283 * config/sh/predicates.md (general_movsrc_operand): Don't check
11284 the subreg of system registers here.
11285
e6e1c050
JJ
112862009-02-05 Jakub Jelinek <jakub@redhat.com>
11287
11288 PR c++/39106
11289 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
11290 on the copied decl.
11291
65a74b5d
PB
112922009-02-05 Paolo Bonzini <bonzini@gnu.org>
11293
11294 PR rtl-optimization/39110
11295 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
11296 addresses, not aligned ones.
11297
08e14b2a
DB
112982009-02-05 Daniel Berlin <dberlin@dberlin.org>
11299 Richard Guenther <rguenther@suse.de>
11300
11301 PR tree-optimization/39100
11302 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
11303 comment says and add edges.
11304
5006381c
JM
113052009-02-05 Joseph Myers <joseph@codesourcery.com>
11306
11307 PR c/35435
11308 * c-common.c (handle_tls_model_attribute): Ignore attribute for
11309 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
11310
2ba9daa7 113112009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
11312
11313 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
11314 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
11315 register_bb_in_sese, new_sese, free_sese): Moved.
11316 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
11317 outermost_loop_in_scop, build_scop_iteration_domain,
11318 expand_scalar_variables_ssa_name, get_vdef_before_scop,
11319 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
11320 Use loop_in_sese_p instead of loop_in_scop_p.
11321 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
11322 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
11323 (scopdet_basic_block_info): Fix bug in scop detection.
11324 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
11325 eq_loop_to_cloog_loop): Remove.
11326 (nb_loops_around_loop_in_scop, nb_loop
11327 ref_nb_loops): Moved here...
11328 * graphite.h (ref_nb_loops): ... from here.
11329 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
11330 (loop_domain_dim, loop_iteration_vector_dim): Remove.
11331 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
11332 * testsuite/gcc.dg/graphite/scop-19.c: New
11333
48e8382e
PB
113342009-02-04 Paolo Bonzini <bonzini@gnu.org>
11335 Hans-Peter Nilsson <hp@axis.com>
11336
11337 PR rtl-optimization/37889
11338 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
11339 Move offset handling from PLUS to before the switch. Use new
11340 arguments when considering SYMBOL_REFs too.
11341 (rtx_addr_can_trap_p): Pass dummy offset and size.
11342 (enum may_trap_p_flags): Remove.
11343 (may_trap_p_1): Pass size from MEM_SIZE.
11344
11345 PR rtl-optimization/38921
11346 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
11347 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
11348 * rtlanal.c (may_trap_after_code_motion_p): Delete.
11349 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
11350
69349ea5
L
113512009-02-04 H.J. Lu <hongjiu.lu@intel.com>
11352
11353 AVX Programming Reference (January, 2009)
11354 * config/i386/sse.md (*vpclmulqdq): New.
11355
b545e411
JJ
113562009-02-04 Jakub Jelinek <jakub@redhat.com>
11357
11358 PR tree-optimization/38977
11359 PR gcov-profile/38292
bf9b2cc9 11360 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 11361
5b43bf05
HS
113622009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
11363
11364 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
11365 non-indexable addresses even before reload.
11366
062c4bb3
JM
113672009-02-03 Joseph Myers <joseph@codesourcery.com>
11368
11369 PR c/29129
11370 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
11371 as having variable size. Do not give an error for unnamed
11372 parameters with [*] declarators. Give a warning for type names
11373 with [*] declarators and mark them as variable size.
11374 * c-parser.c (c_parser_sizeof_expression): Do not give an error
11375 for sizeof applied to [*] type names.
11376
6175f578
AP
113772009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
11378
11379 PR C++/36607
11380 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
11381
d4f4bc84
JJ
113822009-02-03 Jakub Jelinek <jakub@redhat.com>
11383
11384 * gcc.c (process_command): Update copyright notice dates.
11385 * gcov.c (print_version): Likewise.
11386 * gcov-dump.c (print_version): Likewise.
11387 * mips-tfile.c (main): Likewise.
11388 * mips-tdump.c (main): Likewise.
11389
f6294de7
JM
113902009-02-03 Joseph Myers <joseph@codesourcery.com>
11391
11392 PR c/35433
11393 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
11394 for composite type involving a zero-length array type.
11395
754ccf7c
JJ
113962009-02-03 Jakub Jelinek <jakub@redhat.com>
11397
70f16287
JJ
11398 PR target/35318
11399 * function.c (match_asm_constraints_1): Skip over
11400 initial optional % in the constraint.
11401
754ccf7c
JJ
11402 PR inline-asm/39059
11403 * c-parser.c (c_parser_postfix_expression): If fixed point is not
11404 supported, don't accept FIXED_CSTs.
11405 * c-decl.c (finish_declspecs): Error if fixed point is not supported
11406 and _Sat is used without _Fract/_Accum. Set specs->type to
11407 integer_type_node for cts_fract/cts_accum if fixed point is not
11408 supported.
11409
965fdadf
CM
114102009-02-02 Catherine Moore <clm@codesourcery.com>
11411
dbf9ee15 11412 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 11413
2e8a796f
RS
114142009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
11415
11416 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
11417 (ABI_HAS_64BIT_SYMBOLS): Use it.
11418 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
11419
e0079468
PB
114202009-02-02 Paul Brook <paul@codesourcery.com>
11421
11422 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
11423
eca72963
JJ
114242009-02-02 Jakub Jelinek <jakub@redhat.com>
11425
11426 PR inline-asm/39058
11427 * recog.h (asm_operand_ok): Add constraints argument.
11428 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
11429 recurse on matching constraint.
11430 (check_asm_operands): Pass constraints as 3rd argument to
11431 asm_operand_ok. Don't look up matching constraint here.
11432 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
11433 to asm_operand_ok.
11434
b5bde9ff
BE
114352009-02-02 Ben Elliston <bje@au.ibm.com>
11436
11437 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
11438 TARGET_NARROW_VOLATILE_BITFIELD macro names.
11439
30f3e427
JDA
114402009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11441
be7659ba
JDA
11442 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
11443 information. Remove some obsolete information. Reorganize.
11444
30f3e427
JDA
11445 * config/pa/fptr.c: Revert license to GPL 2.
11446 * config/pa/milli64.S: Likewise.
11447
3cbfaf98
DK
114482009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
11449
11450 PR target/38904
11451 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
11452 LIBRARY name in, instead of hard-coding it.
11453 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
11454 extra target make frag to tmake_files according to EH model.
11455 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
11456 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
11457 frags that define makefile variable EH_MODEL appropriately.
11458 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
11459 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
11460 to "-sjlj" according to type of EH configured.
11461 (LIBGCC_SONAME): Concatenate it to shared library base name.
11462 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
11463 to "_sjlj" according to type of EH configured.
11464 (LIBGCC_SONAME): Concatenate it to shared library base name.
11465 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
11466 (SHLIB_LINK): Add missing semicolon to if-else construct.
11467 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
11468 string value of "pe_dll" command-line option.
11469 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
11470 (SHLIB_SONAME): Use it when overriding t-cygming default.
11471 (SHLIB_IMPLIB): Override t-cygming default.
11472 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
11473 string value of "pe_dll" command-line option.
11474
8d0b6068
DK
114752009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
11476
11477 PR target/38952
11478 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 11479 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 11480
14c28276
RG
114812009-01-31 Richard Guenther <rguenther@suse.de>
11482
11483 PR tree-optimization/38937
11484 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
11485 computing the transitive closure.
11486
5f4d82c2
RG
114872009-01-30 Richard Guenther <rguenther@suse.de>
11488
11489 PR tree-optimization/39041
11490 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
11491 Propagate variable indices only if the types match for this stmt.
11492
d0728ae0
JJ
114932009-01-30 Jakub Jelinek <jakub@redhat.com>
11494
11495 PR target/39013
11496 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
11497 inline but never defined.
11498
6b67572e 114992009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
11500
11501 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
11502 (*insv_h_di_reg_extimm): New insn.
11503 (*insv_l<mode>_reg_extimm): New insn.
11504
115052009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
11506
11507 * config/picochip/picochip.c (flag_conserve_stack): set
11508 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
11509 fconserve-stack. Reduce call-overhead used by inliner.
11510
9fec758d 115112009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
11512
11513 PR/38157
11514 * common.opt (flag_conserve_stack): Initialised to zero.
11515
7f1c539c
KT
115162009-01-30 Kai Tietz <kai.tietz@onevision.com>
11517
11518 PR/39002
11519 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
11520 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
11521 method.
11522
3631be48
L
115232009-01-29 H.J. Lu <hongjiu.lu@intel.com>
11524
11525 * ira-color.c (allocno_reload_assign): Update comments.
11526 * regmove.c (regmove_optimize): Likewise.
11527
11528 * ra.h: Removed.
11529
416ac4d4
RM
115302009-01-29 Robert Millan <rmh@aybabtu.com>
11531
60839f5d
EB
11532 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
11533 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 11534 `MD_UNWIND_SUPPORT'.
60839f5d 11535 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 11536
d5e54bc1
KH
115372009-01-29 Kazu Hirata <kazu@codesourcery.com>
11538
11539 PR tree-optimization/39007
11540 * tree-loop-distribution.c (generate_builtin): Use
11541 recompute_dominator to compute the immediate dominator of the
11542 basic block just after the loop.
11543
38432148 115442009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
11545
11546 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
11547 (ASM_OUTPUT_DWARF_PCREL): Define.
11548
38432148 115492009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
11550
11551 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
11552 * doc/passes.texi: Remove entries about regclass, local-alloc, and
11553 global. Modify entries about regmove and IRA.
11554
11555 * ra-conflict.c: Remove the file.
11556
11557 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
11558
11559 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
11560 (pass_regclass_init): Rename to pass_reginfo_init.
11561
11562 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
11563
11564 * toplev.h (flag_ira): Remove.
11565
11566 * caller-save.c (setup_save_areas): Remove flag_ira.
11567
bf9b2cc9 11568 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
11569
11570 * global.c: Remove the file.
11571
ba20e309 11572 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
11573
11574 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
11575
11576 * regmove.c: Modify file description.
11577 (find_use_as_address, try_auto_increment): Define them only if
11578 AUTO_INC_DEC is defined.
11579 (replacement_quality, replace_in_call_usage, fixup_match_1,
11580 stable_and_no_regs_but_for_p): Remove.
11581 (reg_set_in_bb): Make it static.
11582 (regmove_optimize): Remove flag_ira and code which worked for
11583 !flag_ira.
11584
11585 * local-alloc.c: Remove the file.
11586
11587 * common.opt (fira): Remove.
11588
11589 * ira.c: Include except.h.
11590 (eliminable_regset): Move from global.c.
11591 (mark_elimination): Ditto. Remove flag_ira.
11592 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
11593 equiv_mem_modified, validate_equiv_mem_from_store,
11594 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
11595 contains_replace_regs, memref_referenced_p, memref_used_between_p,
11596 no_equiv, recorded_label_ref): Move from local-alloc.c.
11597 (update_equiv_regs): Ditto. Make it static.
11598 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 11599 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
11600 (build_insn_chain): Ditto. Make it static.
11601 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
11602 Rename to init_live_subregs.
11603 (gate_ira): Remove flag_ira.
11604
11605 * regclass.c: Rename reginfo.c. Change file description.
11606 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 11607 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
11608 (init_reg_sets_1): Remove code for evaluation of
11609 reg_class_superclasses and losing_caller_save_reg_set.
11610 (init_regs): Remove init_reg_autoinc.
11611 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
11612 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 11613 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
11614 (pass_regclass_init): Rename to pass_reginfo_init. Modify
11615 corresponding entries.
11616 (dump_regclass, record_operand_costs, scan_one_insn,
11617 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
11618 record_address_regs, auto_inc_dec_reg_p): Remove.
11619 (gt-regclass.h): Rename to gt-reginfo.h.
11620
11621 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 11622 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
11623
11624 * Makefile.in (RA_H): Remove.
11625 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
11626 Rename regclass.o to reginfo.o.
11627 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
11628 gt-reginfo.h.
11629 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
11630 (GTFILES): Rename regclass.c to reginfo.c.
11631
11632 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 11633 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
11634
11635 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11636 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
11637 Remove flag_ira.
6b67572e 11638 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 11639
c95b2534 116402009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
11641
11642 PR middle-end/35854
11643 * doc/invoke.texi (rtl debug options): Complete rewrite.
11644 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
11645 to auto_inc_dec".
11646 * mode-switching.c (pass_mode_switching): Rename pass from
11647 "mode-sw" to "mode_sw".
11648 * except.c (pass_convert_to_eh_ranges): Rename pass from
11649 "eh-ranges" to "eh_ranges".
11650 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
11651 to "subreg1".
2ba9daa7
AS
11652
11653
72a54528
AM
116542009-01-29 Andrey Belevantsev <abel@ispras.ru>
11655 Alexander Monakov <amonakov@ispras.ru>
11656
11657 PR middle-end/38857
11658 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
11659 register.
11660 (move_exprs_to_boundary): Change return type and pass through
11661 should_move from move_op. Relax assert. Update usage ...
11662 (schedule_expr_on_boundary): ... here. Use should_move instead of
11663 cant_move.
11664 (move_op_orig_expr_found): Indicate that insn was disconnected from
11665 stream.
11666 (code_motion_process_successors): Do not call after_merge_succs
11667 callback if original expression was not found when traversing any of
11668 the branches.
11669 (code_motion_path_driver): Change return type. Update prototype.
11670 (move_op): Update comment. Add a new parameter (should_move). Update
11671 prototype. Set *should_move based on indication provided by
11672 move_op_orig_expr_found.
11673
001b9eb6
PH
116742009-01-28 Pat Haugen <pthaugen@us.ibm.com>
11675
11676 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
11677 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
11678 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
11679 * config/rs6000/rs6000.c (rs6000_override_options): Default
11680 avoid-indexed-addresses on for Power6, off for everything else.
11681 (avoiding_indexed_address_p): New function.
11682 (rs6000_legitimize_address): Use it.
11683 (rs6000_legitimate_address): Likewise.
11684 * config/rs6000/rs6000.md (movXX_updateX): Likewise
11685
59dc4898
KH
116862009-01-28 Kazu Hirata <kazu@codesourcery.com>
11687
11688 PR tree-optimization/38997
11689 * tree-loop-distribution.c (generate_memset_zero): Use
11690 POINTER_PLUS_EXPR for a pointer addition.
11691
07da44ab
AK
116922009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
11693
11694 * config/s390/s390.md (bswap<mode>2): New pattern added.
11695
cdc15d23
WG
116962009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
11697
11698 * config/s390/s390.md (*tls_load_31): Added type attribute.
11699
d46f24b6
WG
117002009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
11701
11702 * config/s390/s390.md: Fix a few comments.
11703
729e750f
WG
117042009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
11705
11706 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
11707 (*tm<mode>_full): Fixed z10prop attribute.
11708 (*tst<mode>_extimm): Fixed z10prop attribute.
11709 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
11710 (*tstqiCCT_cconly): Fixed z10prop attribute.
11711 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
11712 (*movsi_larl): Fixed z10prop attribute.
11713 (*movsi_zarch): Fixed z10prop attribute.
11714 (*movsi_eas): Fixed z10prop attribute.
11715 (*movhi): Fixed z10prop attribute.
11716 (*movqi): Fixed z10prop attribute.
11717 (*movstrictqi): Fixed z10prop attribute.
11718 (*mov<mode>): Fixed z10prop attribute.
11719 (*movcc): Fixed z10prop attribute.
11720 (*sethighpartdi_64): Fixed z10prop attribute.
11721 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
11722 (*negdi2_sign_cc): Fixed z10prop attribute.
11723 (*negdi2_sign): Fixed z10prop attribute.
11724 (*absdi2_sign_cc): Fixed z10prop attribute.
11725 (*absdi2_sign): Fixed z10prop attribute.
11726 (*negabsdi2_sign_cc): Fixed z10prop attribute.
11727 (*negabsdi2_sign): Fixed z10prop attribute.
11728 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
11729 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
11730 (doloop_si64): Fixed z10prop attribute.
11731 (doloop_si31): Fixed z10prop attribute.
11732 (doloop_long): Fixed z10prop attribute.
11733 (indirect_jump): Fixed z10prop attribute.
11734 (nop): Fixed z10prop attribute.
11735 (main_base_64): Fixed z10prop attribute.
11736 (reload_base_64): Fixed z10prop attribute.
11737
c7789bfb
JJ
117382009-01-28 Jakub Jelinek <jakub@redhat.com>
11739
11740 PR rtl-optimization/38740
6b67572e
UB
11741 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
11742 if !optimize.
c7789bfb
JJ
11743 * config/mips/mips.c (mips_reorg): Likewise.
11744
de081cfd
RG
117452009-01-28 Richard Guenther <rguenther@suse.de>
11746
11747 PR tree-optimization/38926
11748 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
11749 with the correct value id to a value.
11750 (do_regular_insertion): Use the value number of edoubleprime
11751 for the value number of the expr.
11752
11753 Revert
11754 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 11755
d748c406
UB
11756 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
11757 a PHI ask VN if it is already available.
11758 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
11759 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 11760
a9d386a1
JJ
117612009-01-28 Jakub Jelinek <jakub@redhat.com>
11762
11763 PR middle-end/38934
11764 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
11765 set to varying whenever max has TREE_OVERFLOW set, similarly
11766 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
11767
97a170cd
RG
117682009-01-28 Richard Guenther <rguenther@suse.de>
11769
11770 PR middle-end/38908
11771 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
11772 uninitialized aggregate uses in call arguments.
11773
89ebafc6
PB
117742009-01-28 Paolo Bonzini <bonzini@gnu.org>
11775
11776 PR tree-optimization/38984
11777 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
11778 the nothing_id variable if -fno-delete-null-pointer-checks.
11779
bef3c57b
UB
117802009-01-28 Uros Bizjak <ubizjak@gmail.com>
11781
11782 PR target/38988
11783 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
11784 (set_got_offset_rex64): Ditto.
11785
0c6390fa
L
117862009-01-27 H.J. Lu <hongjiu.lu@intel.com>
11787
11788 PR target/38941
11789 * doc/extend.texi: Improve local variable with asm reg.
11790
bee6fa6d
AN
117912009-01-27 Adam Nemet <anemet@caviumnetworks.com>
11792
11793 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
11794 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
11795 was not supplied then set warn_packed_bitfield_compat to the
11796 default value of 1.
11797 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
11798 against 1.
11799
b5c3dfbb
RG
118002009-01-27 Richard Guenther <rguenther@suse.de>
11801
11802 PR tree-optimization/38503
11803 * cfgexpand.c (expand_gimple_basic_block): Ignore
11804 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
11805 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
11806 variables that cannot have TBAA applied.
11807 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
11808 statements.
11809
d748c406 118102009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
11811
11812 PR middle-end/38969
11813 * calls.c (initialize_argument_information): Do not wrap complex
11814 arguments in SAVE_EXPR.
11815
9112bb38
AT
118162009-01-26 Andreas Tobler <a.tobler@schweiz.org>
11817
11818 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 11819 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 11820
4757704f
RG
118212009-01-26 Richard Guenther <rguenther@suse.de>
11822
11823 PR tree-optimization/38745
11824 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
11825 from special handling.
11826
e3e6cff4
RG
118272009-01-26 Richard Guenther <rguenther@suse.de>
11828
11829 PR tree-optimization/38745
11830 * tree-ssa.c (execute_update_addresses_taken): Do not include
11831 variables that cannot possibly be a register in not_reg_needs.
11832 Do not clear TREE_ADDRESSABLE on vars that may not become
11833 registers.
11834 * tree-ssa.c (update_alias_info_1): Include those in the set
11835 of addressable vars.
11836
dc874b53
RG
118372009-01-26 Richard Guenther <rguenther@suse.de>
11838
11839 PR middle-end/38851
11840 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
11841 * tree-ssa-dse.c: Include langhooks.h
11842 (execute_simple_dse): Remove stores with zero size.
11843
849421a3
JJ
118442009-01-24 Jakub Jelinek <jakub@redhat.com>
11845
11846 PR c/38957
11847 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
11848 as PLUS_EXPR.
11849
82f70421
JB
118502009-01-24 Julian Brown <julian@codesourcery.com>
11851
11852 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
11853 config/arm/linux-atomic.c.
11854 * config/arm/linux-atomic.c: New.
11855
863412d6
EB
118562009-01-24 Eric Botcazou <ebotcazou@adacore.com>
11857
11858 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
11859 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
11860 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
11861
8c684300
L
118622009-01-24 H.J. Lu <hongjiu.lu@intel.com>
11863
11864 PR c/38938
93f1527a 11865 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
11866 properly.
11867
b840fb02
SP
118682009-01-24 Sebastian Pop <sebastian.pop@amd.com>
11869
11870 PR tree-optimization/38953
11871 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
11872 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
11873 (gloog): Split the exit of the scop when the scop exit is a loop exit.
11874 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
11875 changed the CFG.
11876
ecee559f
PB
118772009-01-24 Paul Brook <paul@codesourcery.com>
11878
11879 * config/arm/neon.md (neon_type): Move to arm.md.
11880 (neon_mov<VSTRUCT>): Add neon_type attribute.
11881 * config/arm/arm.md (neon_type): Move to here.
11882 (conds): Add "unconditioal" and use as default for NEON insns.
11883
61ad0914
BE
118842009-01-24 Ben Elliston <bje@au.ibm.com>
11885
11886 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
11887 void *' warning from -Wc++-compat.
11888 * Makefile.in (dominance.o-warn): Remove.
11889
38432148 118902009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
11891
11892 PR tree-optimization/38932
11893 * fold-const.c (fold_unary_ignore_overflow): New.
11894 * tree.h (fold_unary_ignore_overflow): Declare.
11895 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
11896 * tree-ssa-sccvn.c (visit_reference_op_load,
11897 simplify_unary_expression): Likewise.
11898
2cd36c22
AN
118992009-01-22 Adam Nemet <anemet@caviumnetworks.com>
11900
11901 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
11902 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
11903 regardless of their type.
11904 * c-common.c (handle_packed_attribute): Don't ignore packed on
11905 bitfields.
11906 * c.opt (Wpacked-bitfield-compat): New warning option.
11907 * stor-layout.c (place_field): Warn if offset of a field changed.
11908 * doc/extend.texi (packed): Mention the ABI change.
11909 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
11910 (Warning Options): Add it to the list.
11911
e4e624ab
L
119122009-01-22 H.J. Lu <hongjiu.lu@intel.com>
11913
11914 * c-opts.c (c_common_post_options): Fix a typo in comments.
11915
d0ea0759
SE
119162009-01-22 Steve Ellcey <sje@cup.hp.com>
11917
11918 PR middle-end/38615
11919 * gimplify.c (gimplify_init_constructor): Fix promotion of const
11920 variables to static.
11921 * doc/invoke.texi (-fmerge-all-constants): Update description.
11922
87673f84
UB
119232009-01-22 Uros Bizjak <ubizjak@gmail.com>
11924
11925 PR target/38931
11926 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
11927 (*movdi_1_rex64): Use type "mmx" for alternative 5.
11928
96339268
RE
119292009-01-22 Richard Earnshaw <rearnsha@arm.com>
11930
11931 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
11932 a word boundary.
11933 (LOCAL_ALIGNMENT): Similarly.
11934
442dc742 119352009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 11936 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
11937
11938 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
11939 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
11940 * config/arm/arm-tune.md: Regenerate.
11941 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
11942 -march=iwmmxt2.
11943
9b34732e
MS
119442009-01-22 Mark Shinwell <shinwell@codesourcery.com>
11945
11946 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
11947 version number to five.
11948
03c2a308
DS
119492009-01-22 Dodji Seketeli <dodji@redhat.com>
11950
11951 PR c++/38930
ba20e309 11952 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
11953 * c-common.c (set_underlying_type): Likewise.
11954 (is_typedef_decl ): Likewise
11955 * tree.h: Likewise
11956 (set_underlying_type): Likewise.
11957 (is_typedef_type): Likewise.
11958
1240d76e
VM
119592009-01-21 Vladimir Makarov <vmakarov@redhat.com>
11960
11961 PR middle-end/38587
11962 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
11963 crossing setjmps.
11964
b8a1087d
DK
119652009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
11966
11967 PR bootstrap/37660
11968 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
11969 (LIBGCC_SPEC): Don't define.
11970 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
11971
435da628
UB
119722009-01-21 Uros Bizjak <ubizjak@gmail.com>
11973
11974 PR rtl-optimization/38879
11975 * alias.c (base_alias_check): Unaligned access via AND address can
11976 alias all surrounding object types except those with sizes equal
11977 or wider than the size of unaligned access.
11978
d597b3ce
DS
119792009-01-21 Dodji Seketeli <dodji@redhat.com>
11980
11981 PR c++/26693
ba20e309 11982 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 11983 * c-common.c (set_underlying_type): ... here.
435da628 11984 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
11985 the newly created typedef variant type.
11986 (is_typedef_decl ): New entry point.
11987 * tree.h: Added a new member member_types_needing_access_check to
11988 struct tree_decl_non_common.
11989 (set_underlying_type): New entry point.
11990 (is_typedef_type): Likewise.
11991
71a6fe66
BM
119922009-01-21 Bingfeng Mei <bmei@broadcom.com>
11993
11994 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
11995 Check whether two instructions have memory references that
11996 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
11997 are helper functions for traversing.
11998 * alias.h (insn_alias_sets_confilict_p): New prototypes.
11999 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
12000 not to draw dependency edge for instructions with non-conflicting
12001 alias sets.
12002
5a248274
JM
120032009-01-20 Joseph Myers <joseph@codesourcery.com>
12004
12005 PR other/38758
6b67572e
UB
12006 * longlong.h: Update copyright years. Use soft-fp license notice.
12007 Sync __clz_tab declaration with glibc.
5a248274 12008
4b84f3de
SE
120092009-01-20 Steve Ellcey <sje@cup.hp.com>
12010
12011 PR target/30687
12012 * doc/extend.texi (syscall_linkage): New.
12013 (version_id): Modify.
12014
37348bf1 120152009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 12016 Richard Guenther <rguenther@suse.de>
37348bf1
AP
12017
12018 PR tree-optimization/38747
12019 PR tree-optimization/38748
12020 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
12021 conversion if the base address is an indirect reference and the
12022 aliasing sets could cause issues.
12023
d0a58904
SP
120242009-01-20 Sebastian Pop <sebastian.pop@amd.com>
12025
2ba9daa7 12026 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
12027 explaining why these options are not documented.
12028
71e7afb2
SP
120292009-01-20 Sebastian Pop <sebastian.pop@amd.com>
12030
12031 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
12032 gimple_call_lhs is NULL.
12033
38432148 120342009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
12035
12036 PR target/38868
12037 * emit-rtl.c (adjust_address_1): Make sure memref is never
12038 overwritten.
12039
cbb8dee3
BE
120402009-01-20 Ben Elliston <bje@au.ibm.com>
12041
12042 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 12043 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
12044 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
12045 const qualifier from arg 2.
12046
72c66596
IS
120472009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
12048
435da628 12049 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 12050
f68211cd
VM
120512009-01-19 Vladimir Makarov <vmakarov@redhat.com>
12052
12053 PR c/38869
12054 * rtl.h (reinit_regs): New prototype.
12055 * regclass.c: Include ira.h.
12056 (reinit_regs): New.
12057 * Makefile.in (regclass.o): Add ira.h.
12058 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
12059
6e4f1168
L
120602009-01-18 H.J. Lu <hongjiu.lu@intel.com>
12061
12062 PR target/38736
12063 * c-common.c (handle_aligned_attribute): Use
12064 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
12065 default alignment value.
12066
12067 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
12068
12069 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
12070 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
12071
12072 * doc/extend.texi: Update __attribute__ ((aligned)). Document
12073 __BIGGEST_ALIGNMENT__.
12074
12075 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
12076
890065bf
RG
120772009-01-18 Richard Guenther <rguenther@suse.de>
12078
12079 PR tree-optimization/38819
12080 * tree-flow.h (operation_could_trap_helper_p): Declare.
12081 * tree-eh.c (operation_could_trap_helper_p): Export.
12082 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
12083 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
12084 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
12085 are about to insert a possibly trapping instruction and fail
12086 in this case.
12087
a729d731
AS
120882009-01-18 Andreas Schwab <schwab@suse.de>
12089
12090 * doc/install.texi (Configuration): Remove obsolete paragraph
12091 about use of --with-gnu-ld with --with-gnu-as.
12092
a640c13b
KH
120932009-01-18 Kazu Hirata <kazu@codesourcery.com>
12094
12095 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
12096 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
12097 Follow spelling conventions.
12098
dba2cc0c
BE
120992009-01-18 Ben Elliston <bje@au.ibm.com>
12100
12101 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
12102 C++ warning about implicit conversion from void * to struct
12103 bitmap_head_def *.
12104 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 12105 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 12106
2207a498
DK
121072009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
12108
12109 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
12110
8137e465
SP
121112009-01-17 Sebastian Pop <sebastian.pop@amd.com>
12112 Tobias Grosser <tobi.grosser@amd.com>
12113
12114 * graphite.c (graphite_trans_scop_block): Do not block single
12115 nested loops.
12116
5be1c58c
AO
121172009-01-16 Alexandre Oliva <aoliva@redhat.com>
12118
12119 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
12120 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
12121 test with assertion.
12122
786ce82d
RG
121232009-01-16 Richard Guenther <rguenther@suse.de>
12124
12125 PR tree-optimization/38835
12126 PR middle-end/36227
12127 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
12128 and INT + PTR -> (INT)(PTR p+ INT) folding.
12129 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
12130
c1cb09ad
AN
121312009-01-16 Adam Nemet <anemet@caviumnetworks.com>
12132
12133 PR target/38554
12134 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
12135 the subreg from a lowpart subreg if it is also casting the value.
12136
bcab4e19
SP
121372009-01-16 Sebastian Pop <sebastian.pop@amd.com>
12138 Tobias Grosser <tobi.grosser@amd.com>
12139
12140 * graphite.c (compare_prefix_loops): New.
12141 (build_scop_canonical_schedules): Rewritten.
12142 (graphite_transform_loops): Move build_scop_canonical_schedules
12143 after build_scop_iteration_domain.
12144
0b040072
SP
121452009-01-16 Sebastian Pop <sebastian.pop@amd.com>
12146 Tobias Grosser <tobi.grosser@amd.com>
12147
2ba9daa7 12148 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
12149 the dimension of the iteration domain. Do copy the domain
12150 only when it exists.
12151 (build_scop_conditions_1): Do not call add_conditions_to_domain.
12152 (add_conditions_to_constraints): New.
12153 (can_generate_code_stmt, can_generate_code): Removed.
12154 (gloog): Do not call can_generate_code.
12155 (graphite_transform_loops): Call add_conditions_to_constraints
12156 after building the iteration domain.
12157
56c6a499
JJ
121582009-01-16 Jakub Jelinek <jakub@redhat.com>
12159
12160 PR tree-optimization/38789
12161 * tree-ssa-threadedge.c
12162 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
12163 __builtin_constant_p.
12164
c95b2534 121652009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
12166
12167 * dce.c (delete_unmarked_insns): Reversed the order that insns are
12168 examined before deleting them.
2ba9daa7 12169
c433cb14
RE
121702009-01-16 Richard Earnshaw <rearnsha@arm.com>
12171
12172 * function.c (aggregate_value_p): Correctly extract the function
12173 type from CALL_EXPR_FN lookup.
12174
c95b2534 121752009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
12176
12177 * config/picochip/picochip.c (picochip_override_options): Revert
12178 CFI asm flag disable commited previously.
12179
c77bb78f
SP
121802009-01-15 Sebastian Pop <sebastian.pop@amd.com>
12181 Tobias Grosser <tobi.grosser@amd.com>
12182 Jan Sjodin <jan.sjodin@amd.com>
12183
12184 * graphite.c (scan_tree_for_params): On substractions negate
12185 all the coefficients of the term.
12186 (clast_to_gcc_expression_red): New. Handle reduction expressions
12187 of more than two operands.
12188 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
12189 (get_vdef_before_scop): Handle also the case of default definitions.
12190
574af2d6
RS
121912009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
12192
12193 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
12194 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
12195 Also use them when walking CALL_INSN_FUNCTION_USAGE.
12196
e939805b
L
121972009-01-15 H.J. Lu <hongjiu.lu@intel.com>
12198 Joey Ye <joey.ye@intel.com>
12199
12200 PR middle-end/37843
12201 * cfgexpand.c (expand_stack_alignment): Don't update stack
12202 boundary nor check incoming stack boundary here.
12203 (gimple_expand_cfg): Update stack boundary and check incoming
12204 stack boundary here.
12205
c95b2534 122062009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 12207
435da628 12208 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 12209
0196c95e
JJ
122102009-01-14 Jakub Jelinek <jakub@redhat.com>
12211
12212 PR rtl-optimization/38245
12213 * calls.c (expand_call): Add stack arguments to
12214 CALL_INSN_FUNCTION_USAGE even for pure calls (when
12215 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
12216 in regs and partially in memory or BLKmode arguments.
12217 (emit_library_call_value_1): Add stack arguments to
12218 CALL_INSN_FUNCTION_USAGE even for pure calls (when
12219 ACCUMULATE_OUTGOING_ARGS).
12220 * dce.c: Include tm_p.h.
12221 (find_call_stack_args): New function.
12222 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
12223 argument.
12224 (mark_insn): Call find_call_stack_args for CALL_Ps.
12225 (prescan_insns_for_dce): Walk insns backwards in bb rather than
12226 forwards. Allocate and free arg_stores bitmap if needed, pass it
12227 down to deletable_insn_p, don't mark stores set in arg_stores
12228 bitmap, clear the bitmap at the beginning of each bb.
12229 * Makefile.in (dce.o): Depend on $(TM_P_H).
12230
6df6bcfa
MM
122312009-01-14 Michael Meissner <gnu@the-meissners.org>
12232
12233 PR target/22599
435da628
UB
12234 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
12235 to make sure the insn is a conditional test (bug 22599). Reformat a
12236 few long lines.
6df6bcfa 12237
765ec70c
SP
122382009-01-14 Sebastian Pop <sebastian.pop@amd.com>
12239
12240 PR middle-end/38431
12241 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
12242 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
12243 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 12244 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
12245 scops have been code generated.
12246
7de2b688
BS
122472009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
12248 * doc/gty.texi (Invoking the garbage collector): Added new node
12249 and section documenting ggc_collect.
12250
10bd6c5c
RG
122512009-01-14 Richard Guenther <rguenther@suse.de>
12252
12253 PR tree-optimization/38826
12254 PR middle-end/38477
12255 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
12256 initialization notes only if we actually emitted a warning.
12257 (intra_create_variable_infos): Add constraints for a result decl
12258 that is passed by hidden reference.
12259 (build_pred_graph): Mark all related variables non-direct on
12260 address-taking.
12261
9c7c70ee
NC
122622009-01-14 Nick Clifton <nickc@redhat.com>
12263
12264 * ira-conflicts.c: Include addresses.h for the definition of
12265 base_reg_class.
435da628
UB
12266 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
12267 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 12268
cf0c2a60
VM
122692009-01-13 Vladimir Makarov <vmakarov@redhat.com>
12270
12271 PR target/38811
12272 * Makefile.in (ira-lives.o): Add except.h.
12273
12274 * ira-lives.c: Include except.h.
12275 (process_bb_node_lives): Process can_throw_internal.
12276
d3302fd3
JJ
122772009-01-13 Jakub Jelinek <jakub@redhat.com>
12278
12279 PR rtl-optimization/38774
12280 * combine.c (simplify_set): When undoing cc_use change, don't do
12281 PUT_CODE on the newly created comparison, but instead put back the
12282 old comparison.
12283
7ab23fd0
JM
122842009-01-13 Joseph Myers <joseph@codesourcery.com>
12285
12286 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
12287 values. Remove duplicate arm8 entry.
12288
f9344488
SP
122892009-01-13 Sebastian Pop <sebastian.pop@amd.com>
12290
12291 PR tree-optimization/38786
12292 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
12293 the SSA_NAME case of expand_scalar_variables_expr.
12294 Set the type of an expression to the type of its assign statement.
12295 (expand_scalar_variables_expr): Also gather the scalar computation
12296 used to index the memory access. Do not pass loop_p.
12297 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
12298 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
12299 the gimple_stmt_iterator where it inserts new code.
12300 Do not pass loop_p.
f9344488
SP
12301 (copy_bb_and_scalar_dependences): Do not pass loop_p.
12302 (translate_clast): Update call to copy_bb_and_scalar_dependences.
12303
2d8bb84d
SP
123042009-01-13 Sebastian Pop <sebastian.pop@amd.com>
12305
12306 * graphite.h (debug_value): Removed.
12307 * graphite.c (debug_value): Removed.
12308
ff128632
RE
123092009-01-13 Richard Earnshaw <rearnsha@arm.com>
12310
435da628
UB
12311 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
12312 ldrd/strd with two 32-bit instructions.
ff128632 12313
d5a0a47b
RE
123142009-01-13 Richard Earnshaw <rearnsha@arm.com>
12315
435da628
UB
12316 * config/arm/arm.c (struct processors): Pass for speed down into
12317 cost helper functions.
d5a0a47b
RE
12318 (const_ok_for_op): Handle COMPARE and inequality nodes.
12319 (arm_rtx_costs_1): Rewrite.
12320 (arm_size_rtx_costs): Update prototype.
12321 (arm_rtx_costs): Pass speed down to helper functions.
12322 (arm_slowmul_rtx_costs): Rework cost calculations.
12323 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
12324 (arm_9e_rtx_costs): Likewise.
12325
26d5bf5b
UB
123262009-01-13 Uros Bizjak <ubizjak@gmail.com>
12327
12328 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 12329 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
12330 (alpha_legitimize_address): Do not split local symbols wider than
12331 UNITS_PER_WORD into HIGH/LO_SUM parts.
12332
5d14e3d5
DS
123332009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
12334
12335 PR bootstrap/38580
12336 * gcc.c (process_command): Replace call to execvp with calls
12337 to pex_one and exit.
12338
33faafca
AS
123392009-01-03 Anatoly Sokolov <aesok@post.ru>
12340
12341 PR target/29141
12342 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
12343 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
12344 variant for devices with 3-byte PC.
ba20e309 12345 (__tablejump_elpm__): New.
33faafca 12346
634b5df5
JJ
123472009-01-12 Jakub Jelinek <jakub@redhat.com>
12348
12349 PR c/32041
12350 * c-parser.c (c_parser_postfix_expression): Allow `->' in
12351 offsetof member-designator, handle it as `[0].'.
12352
2842bb86
JDA
123532009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12354
12355 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
12356 function when not using named sections on targets with named sections
12357 if branch distance is less than 262132.
12358
76ee70f6
RE
123592009-01-12 Richard Earnshaw <rearnsha@arm.com>
12360
12361 * combine.c (combine_instructions): Recompute
12362 optimize_this_for_speed_p for each BB in the main combine loop.
12363
f56e675d
TB
123642009-01-12 Tomas Bily <tbily@suse.cz>
12365
12366 PR middlend/38385
26d5bf5b
UB
12367 * tree-loop-distribution.c (prop_phis): New function.
12368 (generate_builtin): Call prop_phis.
12369 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 12370
c2152239
JJ
123712009-01-12 Jakub Jelinek <jakub@redhat.com>
12372
12373 PR tree-optimization/38807
12374 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
12375 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
12376
0e510b3e
AN
123772009-01-11 Adam Nemet <anemet@caviumnetworks.com>
12378
12379 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
12380 subreg of op0 to the original op0.
12381
c95b2534 123822009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
12383
12384 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 12385
53a7ff9a
MS
123862009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
12387
12388 PR debug/7055
60839f5d 12389 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
12390 starting with digits.
12391
b3a796bc
JJ
123922009-01-10 Jakub Jelinek <jakub@redhat.com>
12393
12394 PR target/38695
12395 * config/arm/arm.c (arm_is_long_call_p): Don't call
12396 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
12397
b21b850e
SB
123982009-01-09 Steven Bosscher <steven@gcc.gnu.org>
12399
12400 * regrename.c (regrename_optimize): Fix dumping.
12401 (find_oldest_value_reg): Preserve REG_POINTER.
12402 (copy_hardreg_forward_1): Likewise.
12403
e0e10d3a
DN
124042009-01-09 Diego Novillo <dnovillo@google.com>
12405
bf9b2cc9 12406 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
12407 the restrictions on its use.
12408 (gimple_uid): Tidy.
12409 (gimple_set_uid): Tidy.
12410
c9da2ae8
JJ
124112009-01-09 Jakub Jelinek <jakub@redhat.com>
12412
12413 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
12414 zero guard even if align_bytes != 0 and count is smaller than
12415 size_needed.
12416
38432148 124172009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
12418
12419 PR rtl-optimization/38495
26d5bf5b 12420 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
12421 (add_range_and_copies_from_move_list): Print all added ranges.
12422 Add ranges to memory optimized destination.
12423
260fda3d
JJ
124242009-01-09 Jakub Jelinek <jakub@redhat.com>
12425
6f6278ad
JJ
12426 PR target/38686
12427 PR target/38708
12428 * config/i386/i386.c (override_options): Reject
12429 -mstringop-strategy=rep_8byte with -m32.
12430 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
12431 to 1. Do count comparison against epilogue_size_needed at compile
12432 time even when count_exp was constant forced into register. For
12433 size_needed don't jump to epilogue, instead just avoid aligning
12434 and invoke the body algorithm. If need_zero_guard, add zero guard
12435 even if count is non-zero, but smaller than size_needed + number of
12436 bytes that could be stored for alignment.
12437 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
12438 to 1. If need_zero_guard, add zero guard even if count is non-zero,
12439 but smaller than size_needed + number of bytes that could be stored
12440 for alignment. Compare size_needed with epilogue_size_needed instead
12441 of desired_align - align, don't adjust size_needed, pass
12442 epilogue_size_needed to the epilogue expanders.
12443
260fda3d 12444 PR c/35742
26d5bf5b 12445 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 12446
67b846fa
JDA
124472009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12448
12449 * pa.c (last_address): Change to unsigned.
12450 (update_total_code_bytes): Change argument to unsigned. Don't
12451 check if insn addresses are set.
12452 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
12453 addresses are not set.
12454 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
12455
91c82473
NC
124562009-01-09 Nick Clifton <nickc@redhat.com>
12457
12458 * config/sh/symbian.c: Replace uses of DECL_INLINE with
12459 DECL_DECLARED_INLINE_P.
12460
4017e262
JJ
124612009-01-09 Jakub Jelinek <jakub@redhat.com>
12462
0a49e5c2
JJ
12463 PR middle-end/38347
12464 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
12465 GET_MODE (op0) in operand_subword_force calls.
12466
4017e262
JJ
12467 PR middle-end/38771
12468 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
12469 fold_convert arg0 operands to TREE_TYPE (op0) first.
12470
7cd06356
VM
124712009-01-08 Vladimir Makarov <vmakarov@redhat.com>
12472
12473 * params.def (ira-max-conflict-table-size): Decrease default value
12474 to 1000.
12475
96867bbd
JJ
124762009-01-08 Jakub Jelinek <jakub@redhat.com>
12477
12478 PR tree-optimization/37031
12479 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
12480 on parameter_set.
12481 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
12482 allocate it using gc instead of heap, use VEC_quick_push instead of
12483 VEC_safe_push.
12484 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
12485 instead of heap, use VEC_quick_push instead of VEC_safe_push.
12486 * tree-data-ref.h (struct access_matrix): Change matrix to gc
12487 allocated vector from heap allocated.
12488 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
12489 * tree-loop-linear.c (linear_transform_loops): Allocate nest
12490 vector only after perfect_loop_nest_depth call.
12491
68f61c3d
SP
124922009-01-08 Sebastian Pop <sebastian.pop@amd.com>
12493 Jan Sjodin <jan.sjodin@amd.com>
12494
12495 PR tree-optimization/38559
12496 * graphite.c (debug_value, copy_constraint,
12497 swap_constraint_variables, scale_constraint_variable, ): New.
12498 (get_lower_bound, get_upper_bound): Removed.
12499 (graphite_trans_bb_strip_mine): Clean up this code that works
12500 only for constant number of iterations. Fully copy upper and
12501 lower bound constraints, not only the constant part of them.
12502 * graphite.h (debug_value): Declared.
12503
82567e33
IR
125042009-01-08 Ira Rosen <irar@il.ibm.com>
12505
12506 PR tree-optimization/37194
12507 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 12508 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
12509 outside cost in case of known number of iterations.
12510
7da13f1d
NF
125112009-01-07 Nathan Froyd <froydnj@codesourcery.com>
12512 Alan Modra <amodra@bigpond.net.au>
12513
12514 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
12515 non-word-aligned REG+CONST addressing.
12516
c0f64575
UB
125172009-01-07 Uros Bizjak <ubizjak@gmail.com>
12518
12519 PR target/38706
12520 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
12521 free_after_compilation when outputting a thunk.
12522 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
12523 Do not call free_after_compilation here.
12524
301b6a4e
UB
125252009-01-07 Uros Bizjak <ubizjak@gmail.com>
12526
12527 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
12528 (ix86_valid_target_attribute_inner_p): Ditto.
12529
6a114766
JS
125302009-01-07 Jan Sjodin <jan.sjodin@amd.com>
12531
12532 PR tree-optimization/38492
12533 PR tree-optimization/38498
12534 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
12535 * tree-chrec.h (scev_is_linear_expression): Declared.
12536 * graphite.c (graphite_cannot_represent_loop_niter): New.
12537 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
12538 (graphite_loop_normal_form): Use gcc_assert.
12539 (scan_tree_for_params): Use CASE_CONVERT.
12540 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
12541 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
12542 Use gcc_assert. Discard scops that contain unhandled cases.
12543 (build_scop_conditions): Return a boolean status for unhandled cases.
12544 (strip_mine_profitable_p): Print the loop number, not its depth.
12545 (is_interchange_valid): Pass the depth of the loop nest, don't
12546 recompute it wrongly.
12547 (graphite_trans_bb_block): Same.
12548 (graphite_trans_bb_block): Print tentative of loop blocking.
12549 (graphite_trans_scop_block): Do not print that the loop has been
12550 blocked.
12551 (graphite_transform_loops): Do not handle scops that contain condition
12552 scalar phi nodes.
12553
65b82caa
L
125542009-01-07 H.J. Lu <hongjiu.lu@intel.com>
12555
12556 AVX Programming Reference (December, 2008)
12557 * config/i386/avxintrin.h (_mm256_stream_si256): New.
12558 (_mm256_stream_pd): Likewise.
12559 (_mm256_stream_ps): Likewise.
12560
12561 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
12562 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
12563 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
12564 (bdesc_special_args): Add __builtin_ia32_movntdq256,
12565 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
12566 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
12567 (ix86_expand_special_args_builtin): Likewise.
12568
12569 * config/i386/sse.md (AVXMODEDI): New.
12570 (avx_movnt<mode>): Likewise.
12571 (avx_movnt<mode>): Likewise.
12572 (<sse>_movnt<mode>): Remove AVX support.
12573 (sse2_movntv2di): Likewise.
12574
cef158f9
RG
125752009-01-07 Richard Guenther <rguenther@suse.de>
12576
12577 PR middle-end/38751
12578 * fold-const.c (extract_muldiv): Remove obsolete comment.
12579 (fold_plusminus_mult_expr): Undo MINUS_EXPR
12580 to PLUS_EXPR canonicalization for the canonicalization.
12581
246cb5be
GP
125822009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
12583
12584 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
12585 hosted cross-compilers generating less efficient code.
12586
84b9b872
RS
125872009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12588
12589 * function.h (rtl_data): Add a dbr_scheduled_p field.
12590 * reorg.c (dbr_schedule): Set it.
12591 (gate_handle_delay_slots): Check it.
12592 * config/mips/mips.c (mips_base_delayed_branch): Delete.
12593 (mips_reorg): Check flag_delayed_branch instead of
12594 mips_base_delayed_branch.
12595 (mips_override_options): Don't set mips_base_delayed_branch
12596 or flag_delayed_branch.
12597
ace984c8
RS
125982009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12599
12600 PR rtl-optimization/38426.
12601 * ira.c (ira): Set current_function_is_leaf earlier.
12602
7ad7809b
JJ
126032009-01-06 Jakub Jelinek <jakub@redhat.com>
12604
12605 PR rtl-optimization/38722
12606 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
12607 too early, only set a flag and modify after last possible
12608 undo_all point.
12609
c52ec948
JJ
126102009-01-06 Janis Johnson <janis187@us.ibm.com>
12611
12612 PR c/34252
12613 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
12614 * real.c (decimal_single_format): Correct values of emin and emax.
12615 (decimal_double_format): Ditto.
12616 (decimal_quad_format): Ditto.
12617 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
12618 computation of DECnn_MIN and DECnn_MAX for corrected values of
12619 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
12620 __DECnn_MIN__, and adjust its computation for the corrected value
12621 of emin.
12622
300240e1
JH
126232009-01-06 Jan Hubicka <jh@suse.cz>
12624
12625 PR target/38744
435da628 12626 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 12627
271c069e
GP
126282009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
12629
12630 * doc/contrib.texi (Contributors): Slightly adjust the end note.
12631 Add Robert Clark to the list of testers.
12632
64e4c301 126332009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 12634 Kai Tietz <kai.tietz@onevision.com>
64e4c301 12635
435da628
UB
12636 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
12637 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 12638
7650b83e 126392009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 12640 Kai Tietz <kai.tietz@onevision.com>
7650b83e 12641
435da628
UB
12642 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
12643 for w64 ABI.
12644 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
12645 (ix86_nsaved_regs): Count only general purpose regs.
12646 (ix86_nsaved_sseregs): New.
12647 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
12648 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
12649 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
12650 general purpose regs.
7650b83e
JH
12651 (ix86_emit_save_sse_regs_using_mov): New.
12652 (ix86_expand_prologue): Save SSE regs if needed.
12653 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
12654 (ix86_emit_restore_sse_regs_using_mov): New.
12655 (ix86_expand_epilogue): Save SSE regs if needed.
12656
9aa5c1b2 126572009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 12658 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 12659
435da628
UB
12660 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
12661 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
12662 functions when accumulate outgoing args is off.
9aa5c1b2 12663
f7556aae
L
126642009-01-06 H.J. Lu <hongjiu.lu@intel.com>
12665
12666 PR bootstrap/38742
12667 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
12668 before using pseudos_have_intersected_live_ranges_p.
12669
12670 * ira-int.h (ira_assert): Always define.
12671
e47b7d04
L
126722009-01-06 H.J. Lu <hongjiu.lu@intel.com>
12673
12674 AVX Programming Reference (December, 2008)
12675 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
12676 (_mm256_permute2_pd): Likewise.
12677 (_mm_permute2_ps): Likewise.
12678 (_mm256_permute2_ps): Likewise.
12679 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
12680 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
12681
12682 * config/i386/i386.c (ix86_builtins): Remove
12683 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
12684 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
12685 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
12686 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
12687 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
12688 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
12689 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
12690 __builtin_ia32_vpermil2ps256.
12691 (ix86_init_mmx_sse_builtins): Updated.
12692 (ix86_expand_args_builtin): Likewise.
12693
44b86471
JDA
126942009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12695
e47b7d04
L
12696 * pa.c (output_call): Relocate non-jump insns in the delay slot of
12697 long absolute calls when generating PA 2.0 code.
44b86471 12698
311aab06
VM
126992009-01-05 Vladimir Makarov <vmakarov@redhat.com>
12700
12701 PR rtl-optimization/38583
12702 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
12703
12704 * params.def (ira-max-conflict-table-size): New.
12705
12706 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 12707
311aab06 12708 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 12709
311aab06
VM
12710 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
12711 table. Report this. Return result of building.
12712 (ira_build_conflicts): Use ira_conflicts_p. Check result of
12713 building conflict table.
12714
301b6a4e 12715 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 12716 (ira_color): Use ira_conflicts_p.
2ba9daa7 12717
311aab06
VM
12718 * global.c: Include ira.h.
12719 (pseudo_for_reload_consideration_p, build_insn_chain): Use
12720 ira_conflicts_p.
12721
12722 * Makefile.in (global.o): Add ira.h.
2ba9daa7 12723
311aab06
VM
12724 * ira-build.c (mark_all_loops_for_removal,
12725 propagate_some_info_from_allocno): New.
12726 (remove_unnecessary_allocnos): Call
12727 propagate_some_info_from_allocno.
12728 (remove_low_level_allocnos): New.
12729 (remove_unnecessary_regions): Add parameter. Call
12730 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
12731 parameter to remove_unnecessary_regions.
12732 (ira_build): Remove all regions but root if the conflict table was
12733 not built. Update conflict hard regs for allocnos crossing calls.
12734
12735 * ira.c (ira_conflicts_p): New global.
12736 (ira): Define and use ira_conflicts_p.
12737
12738 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12739 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 12740 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 12741
5641785f
BE
127422009-01-06 Ben Elliston <bje@au.ibm.com>
12743
12744 * gengtype-lex.l (YY_NO_INPUT): Define.
12745
e4e5261f
AP
127462009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
12747
12748 PR c/34911
5641785f
BE
12749 * c-common.c (handle_vector_size_attribute): Also reject
12750 BOOLEAN_TYPE types.
e4e5261f 12751
7b10257f
SP
127522009-01-05 Sebastian Pop <sebastian.pop@amd.com>
12753
12754 PR tree-optimization/38492
12755 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
12756 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
12757 rename_map_elt_info, eq_rename_map_elts,
12758 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
12759 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
12760 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
12761 (sese_build_livein_liveouts): New.
12762 (new_sese, free_sese): New.
12763 (new_scop): Call new_sese.
12764 (free_scop): Call free_sese.
12765 (rename_variables_from_edge, rename_phis_end_scop): Removed.
12766 (register_old_new_names): Renamed register_old_and_new_names.
12767 (register_scop_liveout_renames, add_loop_exit_phis,
12768 insert_loop_close_phis, struct igp,
12769 default_liveout_before_guard, add_guard_exit_phis,
12770 insert_guard_phis, copy_renames): New.
12771 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
12772 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
12773 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
12774 (scop_adjust_phis_for_liveouts): New.
12775 (gloog): Call scop_adjust_phis_for_liveouts.
12776
12777 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 12778 num_ver and livein.
7b10257f
SP
12779 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
12780 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
12781 (struct scop): Added field liveout_renames.
12782 (SCOP_LIVEOUT_RENAMES): New.
12783
9761fcc7
HJ
127842009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
12785
12786 PR tree-optimization/38510
12787 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
12788 (translate_clast): Call recompute_all_dominators before
12789 graphite_verify.
12790 (gloog): Call recompute_all_dominators before graphite_verify.
12791
127922009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 12793 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
12794
12795 PR tree-optimization/38500
12796 * graphite.c (create_sese_edges): Call fix_loop_structure after
12797 splitting blocks.
12798
c95b2534 127992009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
12800
12801 * config.gcc: Add m32r*-*-rtems*.
12802 * config/m32r/rtems.h: New file.
12803
fc0cd180
BE
128042009-01-05 Ben Elliston <bje@au.ibm.com>
12805
12806 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
12807 (.po.pox): Likewise.
12808 (po/gcc.pot): Likewise.
12809
3106d8e5
DM
128102009-01-04 David S. Miller <davem@davemloft.net>
12811
12812 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
12813 (STARTING_FRAME_OFFSET): Always set to zero.
12814
0009b473
RS
128152009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
12816
12817 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
12818 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
12819 fixed-point types, and vectors of the same.
12820
4f24c6d6
RS
128212009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
12822
12823 * config/mips/sync.md (*mb_barrier): Rename to...
12824 (*memory_barrier): ...this.
12825
1df48f5c
JW
128262009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
12827
12828 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 12829 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
12830 and put in alphabetical order. Fix 'target' name and put in order.
12831 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
12832 typos.
12833
1a8c13b3
UB
128342009-01-04 Uros Bizjak <ubizjak@gmail.com>
12835
12836 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
12837 (memory_barrier): Expand as unspec instead of unspec_volatile.
12838 Remove mem:BLK from insn operands. Use Pmode scratch register.
12839 (*memory_barrier): Define as unspec instead of unspec_volatile.
12840 Use (match_dup 0) as input operand.
12841
12842 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
12843 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
12844 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
12845 scratch register. Remove operand 1.
12846 (*stbar): Define as unspec instead of unspec_volatile.
12847 Use (match_dup 0) as input operand, remove (const_int 8).
12848 (*membar): Define as unspec instead of unspec_volatile.
12849 Use (match_dup 0) as input operand, remove input operand 2.
12850
12851 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
12852 (memory_barrier): Expand as unspec instead of unspec_volatile.
12853 Remove mem:BLK from insn operands. Use Pmode scratch register.
12854 (*memory_barrier): Define as unspec instead of unspec_volatile.
12855 Use (match_dup 0) as input operand.
12856
12857 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
12858 Remove mem:BLK from insn operands. Use Pmode scratch register.
12859 Set volatile flag on operand 0.
12860 (*memory_barrier): New insn pattern.
12861
12862 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
12863 insn operands.
12864 (*memory_barrier): Use (match_dup 0) as input operand.
12865
12866 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
12867 Remove mem:BLK from insn operands. Use Pmode scratch register.
12868 Set volatile flag on operand 0.
301b6a4e 12869 (*mb_internal): New insn pattern.
1a8c13b3
UB
12870
12871 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
12872
fb0703f7
SB
128732009-01-04 Steven Bosscher <steven@gcc.gnu.org>
12874
12875 PR middle-end/38586
12876 * function.c (struct temp_slot): Move to the section of the file
12877 that deals with temp slots. Remove field 'address'.
12878 (temp_slot_address_table): New hash table of address -> temp slot.
12879 (struct temp_slot_address_entry): New struct, items for the table.
12880 (temp_slot_address_compute_hash, temp_slot_address_hash,
12881 temp_slot_address_eq, insert_temp_slot_address): Support functions
12882 for the new table.
12883 (find_temp_slot_from_address): Rewrite to use the new hash table.
12884 (remove_unused_temp_slot_addresses): Remove addresses of temp
12885 slots that have been made available.
12886 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
12887 worker function for remove_unused_temp_slot_addresses.
12888 (assign_stack_temp_for_type): Don't clear the temp slot address list.
12889 Add the temp slot address to the address -> temp slot map.
12890 (update_temp_slot_address): Update via insert_temp_slot_address.
12891 (free_temp_slots): Call remove_unused_temp_slot_addresses.
12892 (pop_temp_slots): Likewise.
12893 (init_temp_slots): Allocate the address -> temp slot map, or empty
12894 the map if it is already allocated.
12895 (prepare_function_start): Initialize temp slot processing.
12896
b5a430f3
SB
128972009-01-04 Steven Bosscher <steven@gcc.gnu.org>
12898
12899 PR middle-end/38584
12900 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
12901 Calculate the size of all stack vars assuming no packing of stack
12902 vars will happen, replacing a quadratic algorithm with a linear one.
12903
5d560619
JJ
129042009-01-03 Jakub Jelinek <jakub@redhat.com>
12905
12906 PR target/38707
12907 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
12908 can't be used.
12909
953a7caa
DN
129102009-01-03 Diego Novillo <dnovillo@google.com>
12911
12912 * doc/contrib.texi: Update contributions.
12913
5f26a230
JJ
129142009-01-03 Jakub Jelinek <jakub@redhat.com>
12915
493aa551
JJ
12916 PR c++/38705
12917 * builtins.c (fold_builtin_memory_op): Give up if either operand
12918 is volatile. Set srctype or desttype to non-qualified version
12919 of the other type.
12920
5f26a230
JJ
12921 PR c/38700
12922 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
12923 and FUNCTION_DECLs.
12924
c95b2534 129252009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
12926
12927 PR rtl-optimization/35805
12928 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
12929 problem if fast dce is able to remove any instructions.
12930 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 12931
0b355794
MM
129322009-01-02 Mark Mitchell <mark@codesourcery.com>
12933
12934 PR 33649
12935 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
12936
0cf0d02b
JJ
129372009-01-02 Jakub Jelinek <jakub@redhat.com>
12938
12939 PR middle-end/38690
12940 * tree-flow.h (op_code_prio, op_prio): New prototypes.
12941 * tree-pretty-print.c (op_code_prio): New function.
12942 (op_prio): No longer static. Use op_code_prio.
12943 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
12944 Use op_prio and op_code_prio to determine if () should be
12945 printed around operand(s) or not.
12946
12947 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
12948 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
12949 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
12950 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
12951 pp_character instead of pp_string for single letter printing.
12952
e3606f3b
RS
129532009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12954
12955 * doc/extend.texi: Fix '#pragma GCC option' typo.
12956
c95b2534 129572009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 12958
a5f061dc
RG
12959 * doc/install.texi (--enable-checking): Mention different
12960 default for stage1.
12961 (--enable-stage1-checking): Document.
00f39bd5 12962
26de0bcb
AP
129632009-01-01 Andrew Pinski <pinskia@gmail.com>
12964
12965 PR middle-end/30142
12966 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
12967 case to be an error.
12968
7a7d8fab
BE
129692009-01-02 Ben Elliston <bje@au.ibm.com>
12970
12971 * config/fp-bit.h (pack_d): Constify argument.
12972 * config/fp-bit.c (makenan): Constify return type. Remove casts.
12973 (isnan): Constify argument.
12974 (isinf): Likewise.
12975 (iszero): Likewise.
12976 (pack_d): Likewise.
12977 (_fpadd_parts): Constify return type.
12978 (_fpmul_parts): Likewise.
12979 (_fpdiv_parts): Likewise.
12980
b295aee2
JJ
129812009-01-01 Jakub Jelinek <jakub@redhat.com>
12982
12983 PR c/36489
12984 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
12985 warn about overwriting initializer with side-effects or
12986 -Woverride-init if !IMPLICIT.
12987 (output_init_element): Likewise. Pass IMPLICIT down to
12988 add_pending_init.
12989 (process_init_element): Add IMPLICIT argument. Pass it down
12990 to output_init_element.
12991 (push_init_element, pop_init_level, set_designator): Adjust
12992 process_init_element callers.
12993 (set_nonincremental_init, set_nonincremental_init_from_string):
12994 Adjust add_pending_init callers.
12995 (output_pending_init_elements): Adjust output_init_element callers.
12996 * c-tree.h (process_init_element): Adjust prototype.
12997 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
12998 process_init_element callers.
ad41bd84
JM
12999
13000\f
13001Copyright (C) 2009 Free Software Foundation, Inc.
13002
13003Copying and distribution of this file, with or without modification,
13004are permitted in any medium without royalty provided the copyright
13005notice and this notice are preserved.