]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
ecf52e84 12009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2
3 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
4 const char ** conversion.
5
598767c9 62009-07-25 David Daney <ddaney@caviumnetworks.com>
7
8 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
9 fancy_abort() if !ENABLE_ASSERT_CHECKING.
10 (gcc_unreachable): Invoke __builtin_unreachable() if
11 !ENABLE_ASSERT_CHECKING.
12
c4d13c5c 132009-07-25 David Daney <ddaney@caviumnetworks.com>
14
15 PR rtl-optimization/40445
16 * emit-rtl.c (next_nonnote_insn_bb): New function.
17 * rtl.h (next_nonnote_insn_bb): Declare new function.
18 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
19 with no successors that is the successor of the ENTRY_BLOCK.
20 Continue from the top after removing an empty fallthrough block.
21 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
22 of next_nonnote_insn.
23
616b875f 242009-07-25 David Daney <ddaney@caviumnetworks.com>
25
26 * cfgcleanup.c (old_insns_match_p): Handle the case of empty
27 blocks.
28
bdb1f0d1 292009-07-25 Martin Jambor <mjambor@suse.cz>
30
31 * c-common.c (c_common_attribute_table): New element for noclone.
32 (handle_noclone_attribute): New function. Forward-declare.
33 * tree-inline.c (tree_versionable_function_p): Check for noclone
34 attribute.
35 * doc/extend.texi (Labels as Values): Document need for noclone.
36 (Function Attributes): Document noclone attribute.
37
d4915beb 382009-07-25 Jakub Jelinek <jakub@redhat.com>
39
40 PR rtl-optimization/34999
41 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
42 and dw_fde_switched_cold_to_hot fields.
43 (output_cfi_p): New function.
44 (output_call_frame_info): If fde->dw_fde_switched_sections,
45 output 2 FDEs instead of one with corrupted header.
46 (dwarf2out_do_cfi_startproc): New function.
47 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi
48 and fde->dw_fde_switched_cold_to_hot.
49 (dwarf2out_switch_text_section): Compute
50 fde->dw_fde_switched_cold_to_hot. Switch to new text section here.
51 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
52 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
53 Otherwise, compute fde->dw_fde_switch_cfi.
54
15b7ca3a 552009-07-24 Cary Coutant <ccoutant@google.com>
56
57 * tree-cfg.c (assign_discriminator): Add explicit parentheses.
58
04953c08 592009-07-24 Cary Coutant <ccoutant@google.com>
60
61 * cfghooks.c (split_block): Copy discriminator to new block.
62 * tree-cfg.c (assign_discriminator): Check location of last
63 instruction in block as well as first.
64
bcfcac73 652009-07-24 Uros Bizjak <ubizjak@gmail.com>
66
67 * config/i386/linux.c: Use fputs or putc instead of fprintf
68 where appropriate.
69 * config/i386/gas.h: Ditto.
70 * config/i386/x86-64.h: Ditto.
71 * config/i386/att.h: Ditto.
72
39a4aea8 732009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
74
75 * expmed.c (emit_store_flag): Use a recursive call to optimize the
76 xor case.
77
e6098777 782009-07-24 Martin Jambor <mjambor@suse.cz>
79
80 * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
81 (ipa_push_func_to_list_1): Declare.
82 (ipa_push_func_to_list): New function.
83
84 * ipa-prop.c (ipa_push_func_to_list_1): New function.
85 (ipa_init_func_list): Call ipa_push_func_to_list_1.
86 (ipa_push_func_to_list): Removed.
87 (ipa_pop_func_from_list): Clear node_enqueued flag.
88
c0717306 892009-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
90
91 * config/s390/s390.c (override_options): Default
92 max-unrolled-insns to 100 for z10 tuning.
93
6215fc9e 942009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
95
96 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
97 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
98 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
99 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
100 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
101 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
102 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
103
1a4e7ef7 1042009-07-24 Kai Tietz <kai.tietz@onevision.com>
105
106 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
107 use default set in mingw32.h header.
108 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
109 64-bit /mingw/include path.
110 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
111 path.
112
c56a6318 1132009-07-23 Neil Vachharajani <nvachhar@google.com>
114
115 PR rtl-optimization/40209
116 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
117
bdf4452a 1182009-07-23 Uros Bizjak <ubizjak@gmail.com>
119
120 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate
121 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
122 with the rest of string where appropriate. Use fputs or putc
123 instead of fprintf where appropriate.
124
702c5d85 1252009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
126 Pat Haugen <pthaugen@us.ibm.com>
127 Revital Eres <ERES@il.ibm.com>
128
129 * config/rs6000/vector.md: New file. Move most of the vector
130 expander support here from altivec.md to allow for the VSX vector
131 unit in the future. Add support for secondary_reload patterns.
132 Rewrite the patterns for vector comparison, and vector comparison
133 predicate instructions so that the RTL expresses the desired
134 behavior, instead of using unspec.
135
136 * config/rs6000/constraints.md ("f" constraint): Use
137 rs6000_constraints to hold the precalculated register class.
138 ("d" constraint): Ditto.
139 ("wd" constraint): New constraint for VSX.
140 ("wf" constraint): Ditto.
141 ("ws" constraint): Ditto.
142 ("wa" constraint): Ditto.
143 ("wZ" constraint): Ditto.
144 ("j" constraint): Ditto.
145
146 * config/rs6000/predicates.md (vsx_register_operand): New
147 predicate for VSX.
148 (vfloat_operand): New predicate for vector.md.
149 (vint_operand): Ditto.
150 (vlogical_operand): Ditto.
151 (easy_fp_constant): If VSX, 0.0 is an easy constant.
152 (easy_vector_constant): Add VSX support.
153 (altivec_indexed_or_indirect_operand): New predicate for
154 recognizing Altivec style memory references with AND -16.
155
156 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
157 for vector secondary reload support.
bcfcac73 158 (rs6000_vector_reg_class): Delete, replacing it with
159 rs6000_constraints.
702c5d85 160 (rs6000_vsx_reg_class): Ditto.
161 (rs6000_constraints): New array to hold the register classes of
162 each of the register constraints that can vary at runtime.
163 (builtin_mode_to_type): New static array for builtin function type
164 creation.
165 (builtin_hash_table): New static hash table for builtin function
166 type creation.
167 (TARGET_SECONDARY_RELOAD): Define target hook.
168 (TARGET_IRA_COVER_CLASSES): Ditto.
169 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
bdf4452a 170 registers are 128 bits if VSX memory reference instructions are used.
702c5d85 171 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
172 unit is being used.
173 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
174 (rs6000_debug_reg_global): Move -mdebug=reg statements here.
175 Print several of the scheduling related parameters.
176 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
177 rs6000_constraints instead of rs6000_vector_reg_class. Move
178 -mdebug=reg code to rs6000_debug_reg_global. Add support for
179 -mvsx-align-128 debug switch. Drop testing float_p if VSX or
180 Altivec. Add VSX support. Setup for secondary reload support on
181 Altivec/VSX registers.
182 (rs6000_override_options): Make power7 set the scheduling groups
183 like the power5. Add support for new debug switches to override
184 the scheduling defaults. Temporarily disable -mcpu=power7 from
185 setting -mvsx. Add support for debug switches -malways-hint,
186 -msched-groups, and -malign-branch-targets.
187 (rs6000_buitlin_conversion): Add support for returning unsigned
188 vector conversion functions to fix regressions due to stricter
189 type checking.
190 (rs6000_builtin_mul_widen_even): Ditto.
191 (rs6000_builtin_mul_widen_odd): Ditto.
192 (rs6000_builtin_vec_perm): Ditto.
193 (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
194 (rs6000_expand_vector_init): Initial VSX support for using xxlxor
195 to zero a register.
196 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
197 generated upstream.
198 (bdesc_3arg): Add builtins for unsigned types. Add builtins for
199 VSX types for bit operations. Changes to accomidate vector.md.
200 (bdesc_2arg): Ditto.
201 (bdesc_1arg): Ditto.
202 (struct builtin_description_predicates): Rewrite predicate
203 handling so that RTL describes the operation, instead of passing
204 the instruction to be used as a string argument.
205 (bdesc_altivec_preds): Ditto.
206 (altivec_expand_predicate_builtin): Ditto.
207 (altivec_expand_builtin): Ditto.
208 (rs6000_expand_ternop_builtin): Use a switch instead of an if
209 statement for vsldoi support.
bdf4452a 210 (altivec_expand_ld_builtin): Change to use new names from vector.md.
702c5d85 211 (altivec_expand_st_builtin): Ditto.
212 (paired_expand_builtin): Whitespace changes.
213 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the
214 builtin_mode_to_type table for secondary reload. Call
215 builtin_function_type to build random builtin functions.
216 (altivec_init_builtins): Change to use builtin_function_type to
217 create builtin function types dynamically as we need them.
218 (builtin_hash_function): New support for hashing the tree types
219 for builtin function as we need it, rather than trying to build
bdf4452a 220 all of the trees that we need. Add initial preliminary VSX support.
702c5d85 221 (builtin_function_type): Ditto.
222 (builtin_function_eq): Ditto.
223 (builtin_hash_struct): Ditto.
224 (rs6000_init_builtins): Ditto.
225 (rs6000_common_init_builtins): Ditto.
226 (altivec_init_builtins): Ditto.
227 (rs6000_common_init_builtins): Ditto.
228 (enum reload_reg_type): New enum for simplifing reg classes.
229 (rs6000_reload_register_type): Simplify register classes into GPR,
bdf4452a 230 Vector, and other registers. Altivec and VSX addresses in reload.
702c5d85 231 (rs6000_secondary_reload_inner): Ditto.
232 (rs6000_ira_cover_classes): New target hook, that returns the
233 appropriate cover classes, based on -mvsx being used or not.
234 (rs6000_secondary_reload_class): Add VSX support.
235 (get_vec_cmp_insn): Delete, rewrite vector conditionals.
236 (get_vsel_insn): Ditto.
237 (rs6000_emit_vector_compare): Rewrite vector conditional support
238 so that where we can, we use RTL operators, instead of blindly use
239 UNSPEC.
240 (rs6000_emit_vector_select): Ditto.
241 (rs6000_emit_vector_cond_expr): Ditto.
bdf4452a 242 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
702c5d85 243 (create_TOC_reference): Add -mdebug=addr support.
bdf4452a 244 (emit_frame_save): VSX loads/stores need register indexed addressing.
702c5d85 245
246 * config/rs6000/rs6000.md: Include vector.md.
247
248 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
249
250 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
251 support for V2DI, V2DF in logical, permute, select operations.
252
253 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
254 switch for vsx/power7.
255 (-mvsx-scalar-memory): Ditto.
256 (-mvsx-align-128): Ditto.
257 (-mallow-movmisalign): Ditto.
258 (-mallow-df-permute): Ditto.
259 (-msched-groups): Ditto.
260 (-malways-hint): Ditto.
261 (-malign-branch-targets): Ditto.
262
263 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
264 hook instead.
265 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
266 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
267 (rs6000_vector_reg_class): Delete.
268 (rs6000_vsx_reg_class): Ditto.
269 (enum rs6000_reg_class_enum): New enum for the constraints that
270 vary based on target switches.
271 (rs6000_constraints): New array to hold the register class for all
272 of the register constraints that vary based on the switches used.
273 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
274 (enum rs6000_builtins): Add unsigned varients for the builtin
275 declarations returned by target hooks for expanding multiplies,
276 select, and permute operations. Add VSX builtins.
277 (enum rs6000_builtin_type_index): Add entries for VSX.
278 (V2DI_type_node): Ditto.
279 (V2DF_type_node): Ditto.
280 (unsigned_V2DI_type_node): Ditto.
281 (bool_long_type_node): Ditto.
282 (intDI_type_internal_node): Ditto.
283 (uintDI_type_internal_node): Ditto.
284 (double_type_internal_node): Ditto.
285
286 * config/rs6000/altivec.md (whole file): Move all expanders to
287 vector.md from altivec.md. Rename insn matching functions to be
288 altivec_foo.
289 (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
290 (altivec_vcmp*): Ditto.
291 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
292 (VM): New iterator for moves that includes the VSX types.
293 (altivec_vperm_<mode>): Add VSX types. Add unsigned types.
294 (altivec_vperm_<mode>_uns): New, for unsigned types.
bdf4452a 295 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
702c5d85 296 (altivec_eq<mode>): Ditto.
297 (altivec_gt<mode>): Ditto.
298 (altivec_gtu<mode>): Ditto.
299 (altivec_eqv4sf): Ditto.
300 (altivec_gev4sf): Ditto.
301 (altivec_gtv4sf): Ditto.
302 (altivec_vcmpbfp_p): Ditto.
303
63787642 3042009-07-23 Richard Earnshaw <rearnsha@arm.com>
305
73893bd6 306 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
63787642 307 unsigned HWI.
308
3ce93c03 3092009-07-23 Uros Bizjak <ubizjak@gmail.com>
310
311 PR target/40832
c8795808 312 * config/i386/i386.c (output_387_ffreep): Rewrite to use
3ce93c03 313 ASM_SHORT instead of .word.
314 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
315 instead of .word in asm template.
316
9f724a58 3172009-07-22 Vladimir Makarov <vmakarov@redhat.com>
318
319 PR target/37488
320 * ira-lives.c (bb_has_abnormal_call_pred): New function.
321 (process_bb_node_lives): Use it.
322
323 * ira.c (setup_cover_and_important_classes): Don't setup
324 ira_important_class_nums. Add cover classes to the end of
325 important classes.
c8795808 326 (cover_class_order, comp_reg_classes_func, reorder_important_classes):
327 New.
9f724a58 328 (find_reg_class_closure): Use reorder_important_classes.
329
330 * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
331
332 * config/i386/i386.c (i386_ira_cover_classes): New function.
333 (TARGET_IRA_COVER_CLASSES): Redefine.
334
335 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
336 importance of order of cover classes in the array.
337
d60ec13d 3382009-07-22 Diego Novillo <dnovillo@google.com>
339
340 * tree-pass.h (TDF_EH): Define.
341 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
342 contains TDF_EH, print the EH region number holding GS.
343 * tree-dump.c (dump_options): Add "eh".
344 * doc/invoke.texi: Document it.
345
5aa8c5f0 3462009-07-22 Doug Kwan <dougkwan@google.com>
347
348 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
349
38fcb532 3502009-07-22 Michael Matz <matz@suse.de>
351
352 PR tree-optimization/35229
353 PR tree-optimization/39300
354
355 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
356 (inhibit_phi_insertion): New function.
357 (insert_into_preds_of_block): Call it for REFERENCEs.
358 (init_pre): Initialize and finalize scalar evolutions.
359 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
360
686cc944 3612009-07-22 Uros Bizjak <ubizjak@gmail.com>
362
363 * config/i386/predicates.md (zero_extended_scalar_load_operand):
364 Use CONST_VECTOR_NUNITS to determine number of elements.
365
a7b49046 3662009-07-22 Andreas Krebbel <krebbel1@de.ibm.com>
367
368 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
369 (U, W): Constraints are now deprecated and will be removed if we
370 run out of letters.
371 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
372 the file.
373 ("prefetch"): Add the stcmh instruction for prefetching.
374 * config/s390/s390.c (s390_symref_operand_p): Function moved. No
375 changes.
376 (s390_short_displacement): Return always true if compiling for
377 machines not providing the long displacement facility.
378 (s390_mem_constraint): Support the new constraint letter Z.
379 (s390_check_qrst_address): New function.
380
829e79ce 3812009-07-21 DJ Delorie <dj@redhat.com>
382
383 * config/mep/mep.c (mep_legitimize_arg): Leave control registers
384 alone too.
385
9dcd0d49 3862009-07-21 Jason Merrill <jason@redhat.com>
387
388 * c-common.c (max_tinst_depth): Increase default to 1024.
389
ea3bb9f4 3902009-07-21 Uros Bizjak <ubizjak@gmail.com>
391
392 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
393 (vec_unpacku_float_lo_v4si): Ditto.
394
e42ab82a 3952009-07-21 Uros Bizjak <ubizjak@gmail.com>
396
397 PR target/40811
398 * config/i386/sse.md (sse2_cvtudq2ps): New expander.
399 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
400 (builtin_description): Add __builtin_ia32_cvtudq2ps.
401 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
402
567cd518 4032009-07-21 Jakub Jelinek <jakub@redhat.com>
404
405 PR tree-optimization/40813
406 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
407 it.
408
3c5bea87 4092009-07-21 Kaz Kojima <kkojima@gcc.gnu.org>
410
411 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
412 with a NOP_EXPR if needed.
413
41fba625 4142009-07-21 Paul Brook <paul@codesourcery.com>
415
416 * tree-vectorizer.c (increase_alignment): Handle nested arrays.
417 Terminate debug dump with newline.
418
eab96f1c 4192009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
420
421 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
422 Cast "1" to unsigned HOST_WIDE_INT.
423 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
424 deposit length to the maximum length - lsb. Extend length if
425 HOST_BITS_PER_WIDE_INT is 32.
426
9261e5d9 4272009-07-20 Olatunji Ruwase <tjruwase@google.com>
428
429 * cgraph.h (constant_pool_htab): New function.
430 (constant_descriptor_tree): Move from varasm.c.
431 * varasm.c (constant_pool_htab): New function.
432 (constant_descriptor_tree): Move to cgraph.h.
433
67a2b55a 4342009-07-20 Olatunji Ruwase <tjruwase@google.com>
435
ea3bb9f4 436 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
67a2b55a 437
124370fd 4382009-07-20 Shujing Zhao <pearly.zhao@oracle.com>
439
440 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
441 $(VARRAY_H).
442
5185084d 4432009-07-20 Xinliang David Li <davidxl@google.com>
444
445 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
446
d1cbb867 4472009-07-20 Adam Nemet <anemet@caviumnetworks.com>
448
449 * config/mips/mips.md (move_type): Add arith.
450 (type): Handle arith.
451 (zero_extendsidi2): Rename this into ...
452 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS.
453 (zero_extendsidi2): New expander.
454 (*zero_extendsidi2_dext): New pattern.
455
bfa627f8 4562009-07-20 Nick Clifton <nickc@redhat.com>
457
458 * config.gcc (mips64-*-*): Add definition of tm_defines in order
459 to set MIPS_ABI_DEFAULT.
460 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
461
f6d257e7 4622009-07-20 Jakub Jelinek <jakub@redhat.com>
463
ffbeca59 464 * tree-object-size.c (addr_object_size): Handle unions with
465 array in it as last field of structs in __bos (, 1) as __bos (, 0).
466
f6d257e7 467 PR tree-optimization/40792
468 * tree.c (build_function_type_skip_args): Remove bogus assert.
469
e20422ea 4702009-07-20 Jan Hubicka <jh@suse.cz>
ea3bb9f4 471 Martin Jambor <mjambor@suse.cz>
e20422ea 472
473 * cgraph.h (combined_args_to_skip): New field.
474 * cgraph.c (cgraph_create_virtual_clone): Properly handle
475 combined_args_to_skip and args_to_skip.
476 * tree-inline.c (update_clone_info): New function.
477 (tree_function_versioning): Call update_clone_info.
686cc944 478 * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
479 functions.
e20422ea 480 (cgraph_materialize_all_clones): More extensive dumping, working
481 with combined_args_to_skip rather than args_to_skip.
482
0df23b96 4832009-07-20 Ira Rosen <irar@il.ibm.com>
484
485 * tree-vectorizer.h (vectorizable_condition): Add parameters.
486 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
487 (get_initial_def_for_reduction): Likewise.
488 (vectorizable_reduction): Skip the check of first operand in case
489 of COND_EXPR. Add check that it is outer loop vectorization if
490 nested cycle was detected. Call vectorizable_condition() for
491 COND_EXPR. If reduction epilogue cannot be created do not fail for
492 nested cycles (if it is not double reduction). Assert that there
493 is only one type in the loop in case of COND_EXPR. Call
494 vectorizable_condition() to vectorize COND_EXPR.
495 * tree-vect-stmts.c (vectorizable_condition): Update comment.
496 Add parameters. Allow nested cycles if called from
497 vectorizable_reduction(). Use reduction vector variable if provided.
498 (vect_analyze_stmt): Call vectorizable_reduction() before
499 vectorizable_condition().
500 (vect_transform_stmt): Update call to vectorizable_condition().
501
0ce30983 5022009-07-20 Christian Bruel <christian.bruel@st.com>
503
504 * config/sh/sh.opt (-mfmovd): Resurrect and document.
505 * doc/invoke.texi (-mfmovd): Likewise.
506 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
507
c5269667 5082009-07-20 Jan Hubicka <jh@suse.cz>
509
510 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
511 when handling SSA name.
512
a5d536df 5132009-07-19 Jan Hubicka <jh@suse.cz>
514
515 PR tree-optimization/40676
516 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
517 virtual PHIs in empty BBs.
518
dce31f46 5192009-07-18 Adam Nemet <anemet@caviumnetworks.com>
520
521 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
522 re-expanded the compound use gen_lowpart instead to convert to the
523 desired mode.
524
4e0ce2fb 5252009-07-18 Adam Nemet <anemet@caviumnetworks.com>
526
527 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
528 OUTER_CONST arguments.
529 <LSHIFTRT>: Use them to allow widening if the bits shifted in from
530 the new wider mode will be masked off.
531 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
532
be26a489 5332009-07-18 Adam Nemet <anemet@caviumnetworks.com>
534
535 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
536 high-order bits are zero.
537
5b46cc62 5382009-07-18 Adam Nemet <anemet@caviumnetworks.com>
539
540 * combine.c (simplify_shift_const_1): Split code to determine
541 shift_mode into ...
542 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the
543 new bits shifted in are identical to the old sign bit.
544
a09ce826 5452009-07-18 Richard Guenther <rguenther@suse.de>
546
547 PR c/40787
548 * gimplify.c (gimplify_call_expr): Reject code using results from
549 functions returning void.
550
3e055d82 5512009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
552
553 * doc/md.texi: Document the new PowerPC "es" constraint.
554 Document that "m" can include automodified addresses on this target,
555 and explain how %U must be used. Extend the "Q" and "Z" documentation
556 to suggest "es" as well as "m".
557 * config/rs6000/constraints.md (es): New memory constraint.
558 (Q, Z): Update strings to match new documentation.
559
a3026c18 5602009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
561
562 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
563 offset from virtual_stack_vars_rtx and arg_pointer_rtx.
564 * config/rs6000/predicates.md (volatile_mem_operand): Use
565 offsettable_nonstrict_memref_p.
566 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
567 (*floatunssidf2_internal): Likewise.
568 (*fix_truncdfsi2_internal): Likewise.
569 (*fix_trunctfsi2_internal): Likewise.
570
970c146d 5712009-07-17 Anatoly Sokolov <aesok@post.ru>
572
573 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
574 atmega32u2 devices.
575 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
576
bfec3452 5772009-07-17 Richard Guenther <rguenther@suse.de>
578
579 PR c/40401
580 * tree-pass.h (pass_diagnose_omp_blocks): Declare.
581 (pass_warn_unused_result): Likewise.
582 (TODO_set_props): Remove.
583 * omp-low.c (diagnose_omp_structured_block_errors): Change to
584 run as a pass.
585 (pass_diagnose_omp_blocks): Define.
586 * c-decl.c (pop_file_scope): Do not finalize the CU here.
587 (c_gimple_diagnostics_recursively): Remove.
588 (finish_function): Do not call it.
589 (c_write_global_declarations): Continue after errors.
590 Finalize the CU here.
591 * c-gimplify.c (c_genericize): Do not gimplify here.
592 * c-common.c (c_warn_unused_result): Move ...
593 * tree-cfg.c (do_warn_unused_result): ... here.
594 (run_warn_unused_result): New function.
595 (gate_warn_unused_result): New function.
596 (pass_warn_unused_result): New pass.
597 * c-common.h (c_warn_unused_result): Remove.
598 * flags.h (flag_warn_unused_result): Declare.
599 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
600 * opts.c (flag_warn_unused_result): Initialize to false.
601 * toplev.c (compile_file): Add comment.
602 * omp-low.c (create_omp_child_function): Do not register
603 the function with the frontend.
604 (diagnose_omp_structured_block_errors): Prepare to be
605 called as optimization pass.
606 (gate_diagnose_omp_blocks): New function.
607 (pass_diagnose_omp_blocks): New pass.
608 * cgraph.h (cgraph_optimize): Remove.
609 (cgraph_analyze_function): Likewise.
610 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
611 * cgraphunit.c (cgraph_lower_function): Lower nested functions
612 before their parents here.
613 (cgraph_finalize_function): Not here.
614 (cgraph_analyze_function): Gimplify functions here.
615 (cgraph_finalize_compilation_unit): Continue after errors.
616 Optimize the callgraph from here.
617 (cgraph_optimize): Make static.
618 * langhooks.c (write_global_declarations): Finalize the CU.
619 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
620 (gimplify_function_tree): Assert we gimplify only once.
621 Set PROP_gimple_any property.
622 * tree-nested.c (gimplify_all_functions): New function.
623 (lower_nested_functions): Gimplify all nested functions.
624 * gimple.h (diagnose_omp_structured_block_errors): Remove.
625 * passes.c (init_optimization_passes): Add pass_warn_unused_result
626 and pass_diagnose_omp_blocks after gimplification. Do not
627 set TODO_set_props on all_lowering_passes.
628 (execute_one_pass): Do not handle TODO_set_props.
629 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
630 (gimplify.o): Add tree-pass.h dependency.
631 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
632 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
633 (unsave_r): Likewise.
634 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
635 temporary variable.
636
3c337d70 6372009-07-17 Sandra Loosemore <sandra@codesourcery.com>
638
639 * doc/service.texi (Service): Restore previously removed link,
640 which isn't broken after all.
641
142d8c77 6422009-07-17 Richard Guenther <rguenther@suse.de>
643
644 PR tree-optimization/40321
645 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
646 PHI nodes to the maximal set.
647 (make_values_for_phi): Add PHI arguments to the maximal set.
648 (execute_pre): Dump PHI_GEN and the maximal set.
649
39a1041d 6502009-07-17 Jakub Jelinek <jakub@redhat.com>
651
652 PR c++/40780
653 * gimplify.c (gimplify_conversion): Don't change non-conversions into
654 VIEW_CONVERT_EXPR.
655
3e8e7577 6562009-07-16 Sandra Loosemore <sandra@codesourcery.com>
657
658 * doc/extend.texi (Nested Functions): Replace broken link with
659 textual reference.
660 * doc/service.texi (Service): Remove broken link.
661
04700344 6622009-07-16 H.J. Lu <hongjiu.lu@intel.com>
663
664 PR bootstrap/40781
665 * builtins.c (expand_builtin_memcmp): Use loc instead of
666 EXPR_LOCATION (exp).
667 (expand_builtin_strncmp): Likewise.
668
389dd41b 6692009-07-17 Aldy Hernandez <aldyh@redhat.com>
670 Manuel López-Ibáñez <manu@gcc.gnu.org>
671
672 PR 40435
673 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
674 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
675 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
676 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
677 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
678 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
679 tree-inline.c, c-common.c, c-common.h, gimple.c,
680 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
681 convert.c: Add location argument to fold_{unary,binary,ternary},
682 fold_build[123], build_call_expr, build_size_arg,
683 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
684 fold_build1_initializer, fold_build2_initializer,
685 fold_build3_initializer, fold_build_call_array,
686 fold_build_call_array_initializer, fold_single_bit_test,
687 omit_one_operand, omit_two_operands, invert_truthvalue,
688 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
689 combine_comparisons, fold_builtin_*, fold_call_expr,
690 build_range_check, maybe_fold_offset_to_address, round_up,
691 round_down.
692
c1c67b4f 6932009-07-16 Jason Merrill <jason@redhat.com>
694
695 PR libstdc++/37907
696 * c-common.c (c_common_reswords): Add __is_standard_layout
697 and __is_trivial.
698 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
699 * doc/implement-cxx.texi: New.
700 * doc/gcc.texi: Include it.
701
f3269732 7022009-07-16 DJ Delorie <dj@redhat.com>
703
704 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
705 compares that may be indirectly affected by previous instructions.
706
c699fab8 7072009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
708
709 * builtins.c (do_mpc_arg2): New.
710 (fold_builtin_2): Fold builtin cpow.
711 * real.h (HAVE_mpc_pow): New.
712
c8798ca6 7132009-07-16 Bingfeng Mei <bmei@broadcom.com>
714
8097362b 715 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
716 comparison to skip unprofitable schedule
717
d05a1771 7182009-07-16 Simon Baldwin <simonb@google.com>
719
720 * gcc.c (option_map): New flag -no-canonical-prefixes.
721 * (display_help): Print help text for new flag.
722 * (process_command): Move options translation and language specifics
723 and handle new flag early. Use it to set a function pointer to a
724 prefix builder. Replace make_relative_prefix calls with calls to
725 the function pointed to. Ignore new flag in regular options handling.
726 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
727
91f16f16 7282009-07-15 DJ Delorie <dj@redhat.com>
729
730 * config/mep/mep.md (sibcall_internal): Change register to avoid
731 argument registers.
732 (sibcall_value_internal): Likewise.
733
705e8c40 7342009-07-15 Eric Botcazou <ebotcazou@adacore.com>
735
736 PR rtl-optimization/40710
737 * resource.c (mark_target_live_regs): Reset DF problem to LR.
738
4a02ea0c 7392009-07-15 Adam Nemet <anemet@caviumnetworks.com>
740
741 * config/mips/mips.md (*extenddi_truncate<mode>,
742 *extendsi_truncate<mode>): Change type attribute to move_type
743 with shift_shift. Split out code handling exts from here ...
744 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
745 pattern.
746 (*extendhi_truncateqi): Change type attribute to move_type with
747 shift_shift. Split out code handling exts from here ...
748 (*extendhi_truncateqi_exts): ... to this new pattern.
749
ddb24cdb 7502009-07-15 Uros Bizjak <ubizjak@gmail.com>
07ddf75c 751
ddb24cdb 752 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
753 instead of "and" with inverted sign bit mask value. Use
754 "nonimmediate_operand" for operand 1 and operand 2 predicate.
755 Allocate registers only for operand 4 and operand 5.
07ddf75c 756
0962300c 7572009-07-15 Jakub Jelinek <jakub@redhat.com>
758
759 PR middle-end/40747
760 * fold-const.c (fold_cond_expr_with_comparison): When folding
761 < and <= to MIN, make sure the MIN uses the same type as the
762 comparison's operands.
763
1c274529 7642009-07-15 Richard Earnshaw <rearnsha@arm.com>
765
766 * arm.md (ior_xor): New code iterator.
767 (split for ior/xor with shift and zero-extend): New split pattern.
768 * arm/predicates.md (subreg_lowpart_operator): New special predicate.
769
96803d15 7702009-07-15 Richard Guenther <rguenther@suse.de>
771
772 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
773 offset member.
774
0f2b32ac 7752009-07-15 Richard Guenther <rguenther@suse.de>
776
777 PR middle-end/40753
07ddf75c 778 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
0f2b32ac 779
d8758d91 7802009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com>
781
782 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
783 handle 2.6.30 kernel.
784
58443085 7852009-07-15 DJ Delorie <dj@redhat.com>
786
787 * config/mep/mep.md (sibcall_internal): Change register to allow
788 for 24-bit addresses.
789 (sibcall_value_internal): Likewise.
790
6298247a 7912009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com>
792
07ddf75c 793 * doc/invoke.texi: Added descriptions of the scheduling heuristics
794 that are enabled/disabled by the flags introduced by a previous patch.
6298247a 795
93608695 7962009-07-14 DJ Delorie <dj@redhat.com>
797
798 * config/mep/mep.md (sibcall_internal): Include non-toggling
799 non-jmp case.
800 (sibcall_value_internal): Likewise.
801
c02b6f4e 8022009-07-14 Taras Glek <tglek@mozilla.com>
803 Rafael Espindola <espindola@google.com>
804
805 * doc/sourcebuild.texi: Document install-plugin target.
806 * configure.ac: Added install-plugin target to language makefiles.
807 * configure: Regenerate.
808 * Makefile.in: (install-plugin): Install more headers,
809 depend on lang.install-plugin.
810
0aec0de8 8112009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
812
813 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
814 translation.
815
2053b71f 8162009-07-14 DJ Delorie <dj@redhat.com>
817
818 * config/mep/mep.c (mep_vliw_jmp_match): New function.
819 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
820 * config/mep/mep.md (sibcall_internal): Change test from
821 mep_vliw_mode_match to mep_vliw_jmp_match.
822 (sibcall_value_internal): Likewise.
823
3d86078b 8242009-07-14 Uros Bizjak <ubizjak@gmail.com>
825
826 * config/i386/sse.md (copysign<mode>3): New expander.
827 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
828 * config/i386/i386.c (ix86_build_signbit_mask): Make public.
829 Use ix86_build_const_vector.
830 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
831 IX86_BUILTIN_CPYSGNPD.
832 (builtin_description): Add __builtin_ia32_copysignps and
833 __builtin_ia32_copysignpd.
834 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
835 and BUILT_IN_COPYSIGNF.
836
7abca321 8372009-07-13 Jason Merrill <jason@redhat.com>
838
839 * builtins.c (can_trust_pointer_alignment): New fn.
840 (get_pointer_alignment): Factor it out from here.
841 * tree.h: Declare it.
842
519c9794 8432009-07-14 David Edelsohn <edelsohn@gnu.org>
844
845 * config/rs6000/predicates.md (offsettable_mem_operand): Test
846 RTX_AUTOINC class.
847
75c0b6e7 8482009-07-14 Dodji Seketeli <dodji@redhat.com>
849
850 PR debug/40705
851 PR c++/403057
852 * dwarf2.out.c (gen_type_die_with_usage): Added comment.
853
b6da67dc 8542009-07-14 Richard Guenther <rguenther@suse.de>
3d86078b 855 Andrey Belevantsev <abel@ispras.ru>
b6da67dc 856
857 PR middle-end/40745
858 * cfgexpand.c (partition_stack_vars): Do not bother to update
859 alias information when not optimizing.
860
3a443843 8612009-07-14 Richard Guenther <rguenther@suse.de>
ea3bb9f4 862 Andrey Belevantsev <abel@ispras.ru>
3a443843 863
864 * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
865 (pt_solution_set): Likewise.
866 * tree-ssa-alias.c (refs_may_alias_p_1): Export.
867 * tree-ssa-structalias.c (pt_solution_set): New function.
868 * final.c (rest_of_clean_state): Free SSA data structures.
869 * print-rtl.c (print_decl_name): Remove.
870 (print_mem_expr): Implement in terms of print_generic_expr.
871 * alias.c (ao_ref_from_mem): New function.
872 (rtx_refs_may_alias_p): Likewise.
873 (true_dependence): Query alias-export info.
874 (canon_true_dependence): Likewise.
875 (write_dependence_p): Likewise.
876 * tree-dfa.c (get_ref_base_and_extent): For void types leave
877 size unknown.
878 * emit-rtl.c (component_ref_for_mem_expr): Remove.
879 (mem_expr_equal_p): Use operand_equal_p.
880 (set_mem_attributes_minus_bitpos): Do not use
881 component_ref_for_mem_expr.
882 * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
883 (update_alias_info_with_stack_vars): Likewise.
884 (partition_stack_vars): Call update_alias_info_with_stack_vars.
885 * tree-ssa.c (delete_tree_ssa): Do not release SSA names
886 explicitly nor clear stmt operands.
887 Free the decl-to-pointer map.
888 * tree-optimize.c (execute_free_datastructures): Do not free
889 SSA data structures here.
890 * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
891 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
892 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
893 dependencies.
894 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
895
28767f83 8962009-07-13 DJ Delorie <dj@redhat.com>
897
dd20d2ca 898 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
899 unrolling at the right iteration count.
900
28767f83 901 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
902 calculations.
903
4d569386 9042009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
905
3d86078b 906 * haifa-sched.c (rank_for_schedule): Introduced flags to
907 enable/disable individual scheduling heuristics.
908 * common.opt: Introduced flags to enable/disable individual
909 heuristics in the scheduler.
910 * doc/invoke.texi: Introduced flags to enable/disable individual
911 heuristics in the scheduler.
4d569386 912
b20cb873 9132009-07-13 Kai Tietz <kai.tietz@onevision.com>
914
915 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
916 config/i386/mingw-tls.c.
917 * config/i386/mingw-tls.c: Removed.
918
c0a0357c 9192009-07-13 Ira Rosen <irar@il.ibm.com>
920
921 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
922 checks access only relevant statements.
923 (vectorizable_reduction): Likewise.
924
ce663cb5 9252009-07-12 Kai Tietz <kai.tietz@onevision.com>
926
927 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
928 just for 32-bit case.
929
504e084a 9302009-07-12 Jan Hubicka <jh@suse.cz>
931
932 PR tree-optimization/40585
933 * except.c (expand_resx_expr): When there already is resume
934 instruction, produce linked list.
935 (build_post_landing_pads): Assert that resume is empty.
936 (connect_post_landing_pads): Handle resume lists.
937 (dump_eh_tree): Dump resume list.
938
7aa0d350 9392009-07-12 Ira Rosen <irar@il.ibm.com>
940
941 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
942 with additional argument.
7c1037d2 943 * tree-vectorizer.h (enum vect_def_type): Add
7aa0d350 944 vect_double_reduction_def.
945 (vect_is_simple_reduction): Add argument.
7c1037d2 946 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
7aa0d350 947 indentation.
948 (vect_analyze_scalar_cycles_1): Detect double reduction. Call
949 vect_is_simple_reduction with additional argument.
950 (vect_analyze_loop_operations): Handle exit phi nodes in case of
951 double reduction.
952 (reduction_code_for_scalar_code): Handle additional codes by
953 returning ERROR_MARK for them. Fix comment and indentation.
954 (vect_is_simple_reduction): Fix comment, add argument to specify
955 double reduction. Detect double reduction.
956 (get_initial_def_for_induction): Fix indentation.
957 (get_initial_def_for_reduction): Fix comment and indentation.
958 Handle double reduction. Create initial definitions that do not
959 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
960 (vect_create_epilog_for_reduction): Fix comment, add argument to
961 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
962 epilogue result extraction. Create double reduction phi node and
963 replace relevant uses.
964 (vectorizable_reduction): Call vect_is_simple_reduction with
965 additional argument. Fix indentation. Update epilogue code treatment
7c1037d2 966 according to the changes in reduction_code_for_scalar_code. Check
7aa0d350 967 for double reduction. Call vect_create_epilog_for_reduction with
968 additional argument.
969 * tree-vect-stmts.c (process_use): Handle double reduction, update
970 documentation.
971 (vect_mark_stmts_to_be_vectorized): Handle double reduction.
972 (vect_get_vec_def_for_operand): Likewise.
973
24fb1d3f 9742009-07-12 Danny Smith <dansmister@gmail.com>
975
976 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
977 dllexport if !TREE_PUBLIC.
978 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
979
00abffbf 9802009-07-11 Anatoly Sokolov <aesok@post.ru>
981
982 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
983 (avr_extra_arch_macro) Remove declatation.
984 * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
985 (avr_extra_arch_macro) Declare as static.
986 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
987
6af7af33 9882009-07-11 Jan Hubicka <jh@suse.cz>
989
990 PR middle-end/48388
991 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
992
738ab6f5 9932009-07-11 Jakub Jelinek <jakub@redhat.com>
994
04ef4ca6 995 PR debug/40713
996 * dwarf2out.c (dw_fde_struct): Add in_std_section and
997 cold_in_std_section bits.
998 (dwarf2out_begin_prologue): Initialize them.
999 (dwarf2out_finish): Don't emit FDE range into .debug_ranges
1000 if already covered by text_section or cold_text_section range.
1001
8645d3e7 1002 PR rtl-optimization/40667
1003 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
1004 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
1005 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
1006 * config/i386/i386.c (ix86_minimum_alignment): New function.
1007 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
1008 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
1009 * emit-rtl.c (gen_reg_rtx): Likewise.
1010 * function.c (assign_parms): Likewise. If nominal_type needs
1011 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
1012 rather than passed_type's alignment.
1013
738ab6f5 1014 PR target/40668
1015 * function.c (assign_parm_setup_stack): Adjust
1016 MEM_OFFSET (data->stack_parm) if promoted_mode is different
1017 from nominal_mode on big endian.
1018
88e81a69 10192009-07-11 Paolo Bonzini <bonzini@gnu.org>
1020
1021 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
1022
1756c1fe 10232009-07-10 DJ Delorie <dj@redhat.com>
1024
1025 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
1026
6895d90f 10272009-07-10 Mark Mitchell <mark@codesourcery.com>
1028
1029 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
1030 attribute.
1031 (thumb2_cbnz): Likewise.
1032
1af9587c 10332009-07-10 David Daney <ddaney@caviumnetworks.com>
1034
1035 PR target/39079
1036 * config.gcc (supported_defaults): Add synci.
1037 (with_synci): Add validation.
1038 (all_defaults): Add synci.
1039 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
1040 ISA_HAS_SYNCI.
1041 (synci): Same.
1042 * config/mips/mips.opt (msynci): New option.
1043 * config/mips/mips.c (mips_override_options): Warn on use of
1044 -msynci for targets that do now support it.
1045 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
1046 msynci.
1047 * gcc/doc/invoke.texi (-msynci): Document the new option.
1048 * doc/install.texi (--with-synci): Document the new option.
1049
b34a77f7 10502009-07-10 Richard Guenther <rguenther@suse.de>
1051
1052 PR tree-optimization/40496
1053 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
1054 the PHI result with a compatible type.
1055
af5f5e79 10562009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
1057
1058 PR 25509
1059 PR 40614
1060 * c.opt (Wunused-result): New.
1061 * doc/invoke.texi: Document it.
1062 * c-common.c (c_warn_unused_result): Use it.
1063
48e9be89 10642009-07-09 DJ Delorie <dj@redhat.com>
1065
7c88e513 1066 * targhooks.c (default_target_can_inline_p): Rename from
1067 default_target_option_can_inline_p.
1068 * targhooks.h (default_target_can_inline_p): Likewise.
1069 * target-def.h (TARGET_CAN_INLINE_P): Rename from
1070 TARGET_OPTION_CAN_INLINE_P.
1071 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
1072 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
1073 (mep_target_can_inline_p): Rename from
1074 mep_target_option_can_inline_p.
1075
1076 PR target/40626
1f47850b 1077 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
1078 registers used to pass vectors.
1079
48e9be89 1080 * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
1081
bde36f4a 10822009-07-09 Tom Tromey <tromey@redhat.com>
1083
1084 * unwind-dw2-fde-darwin.c: Include dwarf2.h.
1085 * config/mmix/mmix.c: Include dwarf2.h.
1086 * config/rs6000/darwin-fallback.c: Include dwarf2.h.
1087 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
1088 * config/sh/sh.c: Include dwarf2.h.
1089 * config/i386/i386.c: Include dwarf2.h.
1090 * Makefile.in (DWARF2_H): Remove 'elf'.
1091 * except.c: Include dwarf2.h.
1092 * unwind-dw2.c: Include dwarf2.h.
1093 * dwarf2out.c: Include dwarf2.h.
1094 * unwind-dw2-fde-glibc.c: Include dwarf2.h.
1095 * unwind-dw2-fde.c: Include dwarf2.h.
1096 * dwarf2asm.c: Include dwarf2.h.
1097
4db82bc9 10982009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
7c1037d2 1099
4db82bc9 1100 * haifa-sched.c (insn_finishes_cycle_p): New static function.
7c1037d2 1101 (max_issue): Use it.
1102 * sched-int.h (struct sched_info: insn_finishes_block_p): New
1103 scheduler hook.
1104 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
1105 (region_sched_info): Update.
1106 * sched-ebb.c (ebb_sched_info): Update.
1107 * modulo-sched.c (sms_sched_info): Update.
4db82bc9 1108 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
1109
30b38676 11102009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
1111
1112 * varasm.c (build_constant_desc): Don't share RTL in pool entries.
75abcc2a 1113
11142009-07-09 Basile Starynkevitch <basile@starynkevitch.net>
1115
1116 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
1117
507d706c 11182009-07-09 Jakub Jelinek <jakub@redhat.com>
1119
1120 PR middle-end/40692
1121 * fold-const.c (fold_cond_expr_with_comparison): Don't replace
1122 arg1 with arg01 if arg1 is already INTEGER_CST.
1123
85ece28d 11242009-07-08 Adam Nemet <anemet@caviumnetworks.com>
1125
7c1037d2 1126 * simplify-rtx.c (simplify_binary_operation_1) <AND>:
1127 Transform (and (truncate)) into (truncate (and)).
85ece28d 1128
658e1523 11292009-07-08 Adam Nemet <anemet@caviumnetworks.com>
1130
1131 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
1132 creating LHS paradoxical subregs. Fix surrounding returns to
1133 use NULL_RTX rather than 0.
1134
a71ff2a7 11352009-07-08 DJ Delorie <dj@redhat.com>
1136
1137 * config/mep/mep.c: (mep_option_can_inline_p): New.
1138 (TARGET_OPTION_CAN_INLINE_P): Define.
1139
fbff7494 11402009-07-08 Mark Wielaard <mjw@redhat.com>
1141
1142 PR debug/40659
1143 * dwarf2out.c (add_data_member_location_attribute): When we have
1144 only a constant offset don't emit a new location description using
1145 DW_OP_plus_uconst, but just add the constant with add_AT_int, when
1146 dwarf_version > 2.
1147
fd0652b1 11482009-07-08 Richard Henderson <rth@redhat.com>
1149
1150 PR target/38900
1151 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
1152 (enum reg_class): Add CLOBBERED_REGS.
1153 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
1154 * config/i386/i386.c (ix86_conditional_register_usage): Moved
1155 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
1156 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls.
1157 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't
1158 force 64-bit sibcalls into R11.
1159 * config/i386/constraints.md (U): New constraint.
1160 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
1161 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
1162 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
1163
10230637 11642009-07-08 Shujing Zhao <pearly.zhao@oracle.com>
1165
1166 * basic-block.h (dump_regset, debug_regset): Remove duplicate
1167 prototypes.
1168 * c-objc-common.h (c_initialize_diagnostics): Ditto.
1169 * ebitmap.h (dump_ebitmap): Ditto.
1170 * optabs.h (optab_libfunc): Ditto.
1171 * tree.h (tree_expr_nonzero_warnv_p): Ditto.
1172 * tree-flow.h (vect_can_force_dr_alignment_p,
658e1523 1173 get_vectype_for_scalar_type): Ditto.
10230637 1174 (vectorize_loops): Move prototype to ...
658e1523 1175 * tree-vectorizer.h: ... here. Also, adjust comment.
10230637 1176 (vect_set_verbosity_level): Remove duplicate prototype.
1177 * tree-ssa-loop.c: Include tree-vectorizer.h.
1178 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
1179
3abce6d8 11802009-07-08 Nick Clifton <nickc@redhat.com>
1181
1182 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
1183 forward slash.
1184
aecef6a2 11852009-07-08 DJ Delorie <dj@redhat.com>
1186
1187 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
1188 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
1189 cpmovtocc_P0S_P1): Mark volatile. Note which registers are
1190 written to.
1191 * config/mep/intrinsics.md: Regenerated.
1192 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
1193 registers when asm() or calls are detected.
658e1523 1194
e627cda1 11952009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
1196
1197 PR c++/31246
1198 * gimplify.c (gimplify_expr): Propagate no_warning flag when
1199 gimplifying.
1200 * gimple (gimple_build_call_from_tree): Likewise.
1201 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
1202 no_warning flag before warning.
658e1523 1203
1cf1742e 12042009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1205
1206 * tree.c (set_expr_locus): Remove.
1207 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
1208 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by
1209 EXPR_LOCATION.
1210 * gimplify.c (internal_get_tmp_var): Likewise.
1211 (gimplify_call_expr): Likewise.
1212 (gimplify_one_sizepos): Likewise.
1213
75f6aa15 12142009-07-07 Eric Botcazou <ebotcazou@adacore.com>
1215
1216 PR debug/40666
1217 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
1218 to variables for debugging purposes.
1219
b475d084 12202009-06-23 Mark Loeser <mark@halcy0n.com>
1221
1222 PR build/40010
1223 * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
1224
11cd5422 12252009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1226
1227 * pretty-print.c (pp_base_format): Remove %J.
1228 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
1229 gcc_cxxdiag_char_table): Likewise.
1230 (init_dynamic_diag_info): Likewise.
b475d084 1231
a426d5d9 12322009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1233
1234 * pretty-print.c (pp_base_format): Remove %H.
1235 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
1236 gcc_cxxdiag_char_table): Likewise.
1237 (init_dynamic_diag_info): Likewise.
1238 * config/mep/mep.c (mep_select_section): Likewise.
1239
21486db3 12402009-07-07 Duncan Sands <baldrick@free.fr>
1241
7c1037d2 1242 * final.c (pass_clean_state): Give the pass a name.
1243 * passes.c (pass_rest_of_compilation): Likewise.
1244 * tree-optimize.c (pass_all_optimizations): Likewise.
21486db3 1245
8b52eeb5 12462009-07-07 H.J. Lu <hongjiu.lu@intel.com>
1247
1248 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
1249 an extra 'decl' for error_at.
1250
6ecef788 12512009-07-07 Jakub Jelinek <jakub@redhat.com>
1252
1253 PR middle-end/40669
1254 * tree-tailcall.c (adjust_return_value_with_ops,
1255 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
1256 if it has complex or vector type.
1257
6acfe4cd 12582009-07-07 Olivier Hainque <hainque@adacore.com>
1259
8b52eeb5 1260 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
1261 pthread symbols.
6acfe4cd 1262
a933e912 12632009-07-07 Basile Starynkevitch <basile@starynkevitch.net>
1264
1265 * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
1266
712d2297 12672009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1268
7c1037d2 1269 * cgraphunit.c: Replace %J by an explicit location. Update all calls.
712d2297 1270 * c-decl.c: Likewise.
1271 * function.c: Likewise.
1272 * varasm.c: Likewise.
1273 * tree-ssa.c: Likewise.
1274 * c-common.c: Likewise.
1275 * tree-cfg.c: Likewise.
1276 * config/spu/spu.c: Likewise.
1277 * config/ia64/ia64.c: Likewise.
1278 * config/v850/v850.c: Likewise.
1279
975b4396 12802009-07-06 DJ Delorie <dj@redhat.com>
1281
1282 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
1283 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
1284 unspecified accesses to control registers.
1285 * config/mep/intrinsics.md: Regenerate.
1286 * config/mep/intrinsics.h: Regenerate.
1287 * config/mep/mep-intrin.h: Regenerate.
658e1523 1288
5fb6a912 12892009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1290
1291 * c-lex.c: Replace %H by an explicit location. Update all calls.
1292 * c-common.c: Likewise.
1293 * c-decl.c: Likewise.
1294 * c-typeck.c: Likewise.
1295 * fold-const.c: Likewise.
1296 * gimplify.c: Likewise.
1297 * stmt.c: Likewise.
1298 * tree-cfg.c: Likewise.
1299 * tree-ssa-loop-niter.c: Likewise.
1300 * tree-vrp.c: Likewise.
1301 * value-prof.c: Likewise.
1302
241b2d37 13032009-07-06 Diego Novillo <dnovillo@google.com>
1304
1305 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
1306 if it has one. Handle cases where VAR does not have an
1307 annotation or cfun is NULL.
1308
8dfbefd8 13092009-07-06 Diego Novillo <dnovillo@google.com>
1310
1311 * tree.c: Include debug.h.
1312 (initialize_tree_contains_struct): New.
1313 (init_ttree): Call it.
1314 (tree_node_structure_for_code): Factor out of ...
1315 (tree_node_structure): ... here.
1316 * treestruct.def (TS_PHI_NODE): Remove.
1317 (TS_GIMPLE_STATEMENT): Remove.
1318
77c223c3 13192009-07-06 Diego Novillo <dnovillo@google.com>
1320
7c1037d2 1321 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
77c223c3 1322 (debug_tree_chain): Handle cycles.
1323
c4af075b 13242009-07-06 Nick Clifton <nickc@redhat.com>
1325 DJ Delorie <dj@redhat.com>
1326
1327 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
1328 __FMOVD_ENABLED__ is defined.
1329 * config/sh/sh.h
1330 (TARGET_FMOVD): Provide a default definition.
1331 (MASK_FMOVD): Likewise.
1332 (TARGET_CPU_CPP_BUILTINS): Define
1333 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
1334 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
7c1037d2 1335 two fmov instructions depending upon whether TARGET_FMOVD is enabled.
c4af075b 1336 (split for DF load from memory into register): Also handle
1337 MEMs which consist of REG+DISP addressing.
1338 (split for DF store from register to memory): Likewise.
1339 (movsf_ie): Always use single fp_mode.
1340 * config/sh/sh.c (sh_override_options): Do not automatically
1341 enable TARGET_MOVD for the SH2A when supporting doubles - leave
1342 that to the -mfmovd command line switch.
1343 (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
1344 (fldi_ok): Always allow.
1345 * config/sh/sh.opt (mfmovd): Remove this switch.
1346 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
1347
a3150208 13482009-07-06 J"orn Rennecke <joern.rennecke@arc.com>
1349 Kaz Kojima <kkojima@gcc.gnu.org>
1350
1351 PR rtl-optimization/30807
1352 * postreload.c (reload_combine): For every new use of REG_SUM,
1353 record the use of BASE.
1354
3e02d180 13552009-07-06 Jan Hubicka <jh@suse.cz>
1356
1357 * params.def: Revert my accidental commit at 2009-06-30.
1358
3535bad9 13592009-07-04 Ian Lance Taylor <iant@google.com>
1360
1361 PR target/40636
1362 * config/i386/msformat-c.c (mingw_format_attributes): Declare as
1363 EXPORTED_CONST.
1364 (mingw_format_attribute_overrides): Likewise.
1365
f3a4b1fb 13662009-07-04 Jakub Jelinek <jakub@redhat.com>
1367
1368 PR debug/40596
1369 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
1370 don't check cfa.reg. Instead of cfa.indirect use
1371 fde && fde->drap_reg != INVALID_REGNUM test.
1372
461ada8d 13732009-07-04 Eric Botcazou <ebotcazou@adacore.com>
1374
1375 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
1376
ccce8d98 13772009-07-03 Vladimir Makarov <vmakarov@redhat.com>
1378
1379 PR target/40587
7c1037d2 1380 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
658e1523 1381
42d9ffa5 13822009-07-03 Richard Guenther <rguenther@suse.de>
1383
1384 PR tree-optimization/40640
1385 * tree-switch-conversion.c (build_arrays): Perform arithmetic
1386 in original type.
1387
89c679bd 13882009-07-03 Jan Hubicka <jh@suse.cz>
1389
1390 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
1391 for size, reduce amount of inlining.
1392
b5a4c072 13932009-07-03 Richard Guenther <rguenther@suse.de>
1394
1395 PR middle-end/34163
7c1037d2 1396 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
1397 if t +- x is known to not overflow and the conversion widens the
1398 operation.
b5a4c072 1399 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
1400
b1887855 14012009-07-03 Jan Hubicka <jh@suse.cz>
1402
1403 * ipa-pure-const.c (analyze): Update loop optimizer init.
1404 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
1405 try_remove_empty_loop, remove_empty_loops): Remove.
1406 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
1407 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
1408 to mark regular loops as neccesary.
1409 (degenerate_phi_p): New function.
1410 (propagate_necessity, remove_dead_phis): Use it.
1411 (forward_edge_to_pdom): Likewise.
1412 (eliminate_unnecessary_stmts): Take care to remove uses of results of
1413 virtual PHI nodes that became unreachable.
1414 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
1415 * tree-flow.h (remove_empty_loops): Remove.
1416 * passes.c (init_optimization_passes): Remove.
1417
d0b2c064 14182009-07-03 Uros Bizjak <ubizjak@gmail.com>
1419
1420 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
1421 can_create_pseudo_p.
1422 (*fix_trunc<mode>_i387_1): Ditto.
1423 (*floathi<mode>2_1): Ditto.
1424 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
1425 (*fistdi2_1): Ditto.
1426 (*fist<mode>2_1): Ditto.
1427 (frndintxf2_floor): Ditto.
1428 (*fist<mode>2_floor_1): Ditto.
1429 (frndintxf2_ceil): Ditto.
1430 (*fist<mode>2_ceil_1): Ditto.
1431 (frndintxf2_trunc): Ditto.
1432 (frndintxf2_mask_pm): Ditto.
1433 (fxam<mode>2_i387_with_temp): Ditto.
1434 * config/i386/sse.md (mulv16qi3): Ditto.
1435 (*sse2_mulv4si3): Ditto.
1436 (mulv2di3): Ditto.
1437 (sse4_2_pcmpestr): Ditto.
1438 (sse4_2_pcmpistr): Ditto.
1439
a336775c 14402009-07-03 Jan Hubicka <jh@suse.cz>
1441
1442 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
1443 (mark_stmt_necessary): Set it.
1444 (mark_operand_necessary): Set it.
1445 (mark_control_dependent_edges_necessary): Set it.
1446 (mark_virtual_phi_result_for_renaming): New function.
1447 (get_live_post_dom): New function.
1448 (forward_edge_to_pdom): New function.
1449 (remove_dead_stmt): Fix handling of control dependences.
1450 (tree_dce_init): Init new bitmap.
1451 (tree_dce_done): Free it.
1452
86fd2723 14532009-07-02 Richard Guenther <rguenther@suse.de>
1454
1455 PR bootstrap/40617
1456 * tree-ssa-structalias.c (new_var_info): Initialize
1457 is_restrict_var.
1458
3ae61172 14592009-07-02 Jan Hubicka <jh@suse.cz>
1460
1461 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
1462 local.
1463
d68bc06a 14642009-07-02 Paolo Bonzini <bonzini@gnu.org>
1465
1466 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
1467 instead of recomputing it. Adjust calls.
1468 (emit_store_flag): Adjust recursive calls.
1469
9b68b56b 14702009-07-02 Richard Guenther <rguenther@suse.de>
1471
1472 * tree-ssa-live.c (remove_unused_locals): Do not remove
1473 heap variables.
1474 * tree-ssa-structalias.c (handle_lhs_call): Delay setting
1475 of DECL_EXTERNAL for HEAP variables.
1476 (compute_points_to_sets): Set DECL_EXTERNAL for escaped
1477 HEAP variables. Do not adjust RESTRICT vars.
1478 (find_what_var_points_to): Nobody cares if something
1479 points to READONLY.
1480
4ad2fc34 14812009-07-02 Ben Elliston <bje@au.ibm.com>
1482
1483 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
1484 pc_low and pc_high declarations to the top of the function.
1485
32a5f905 14862009-07-01 DJ Delorie <dj@redhat.com>
1487
1488 * config/mep/mep.c (mep_handle_option): Leave IVC2 control
1489 registers as fixed.
d0b2c064 1490 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
32a5f905 1491 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
1492 unspecified accesses to control registers.
1493 * config/mep/intrinsics.md: Regenerate.
1494 * config/mep/intrinsics.h: Regenerate.
1495 * config/mep/mep-intrin.h: Regenerate.
658e1523 1496
7da17dca 14972009-07-01 Anthony Green <green@moxielogic.com>
1498
1499 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
1500 instruction when possible.
1501 (moxie_expand_prologue): Ditto. Also, save an instruction and
658e1523 1502 some complexity by popping off of $r12 instead of $sp.
7da17dca 1503 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two
1504 operands.
658e1523 1505
c009a3ec 15062009-07-01 Richard Henderson <rth@redhat.com>
1507
1508 PR bootstrap/40347
1509 * function.c (reposition_prologue_and_epilogue_notes): If epilogue
1510 contained no insns, reposition note before last insn.
1511
8d2a8041 15122009-07-01 Richard Henderson <rth@redhat.com>
1513
1514 PR debug/40431
1515 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
1516 DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
1517
56df51d8 15182009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
1519
1520 PR bootstrap/40558
1521 * config/rs6000/rs6000.c (print_operand): Undo change that breaks
1522 darwin9 for printing reg addresses with %y.
1523
3f03d2db 15242009-07-01 Adam Nemet <anemet@caviumnetworks.com>
1525
1526 * combine.c (force_to_mode): Handle TRUNCATE. Factor out
1527 truncation from operands in binary operations.
1528
98e07982 15292009-07-01 Adam Nemet <anemet@caviumnetworks.com>
1530
1531 Revert:
1532 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
1533 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
1534 subreg of op0 to the original op0.
1535
1536 * expmed.c (store_bit_field_1): Use a temporary as the destination
1537 instead of a paradoxical subreg when we need to truncate the result.
1538
65232149 15392009-07-01 DJ Delorie <dj@redhat.com>
1540
d0b2c064 1541 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
1542 names to VLIW variants.
65232149 1543 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
1544 * config/mep/intrinsics.md: Regenerate.
1545 * config/mep/intrinsics.h: Regenerate.
1546 * config/mep/mep-intrin.h: Regenerate.
1547
92ae5ac1 15482009-07-01 Jakub Jelinek <jakub@redhat.com>
1549
1550 PR debug/40462
1551 * jump.c (returnjump_p): Revert last patch.
1552 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
1553
372b3fe2 15542009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1555
c7aa0bd1 1556 PR target/40575
1557 * pa.md (casesi32p): Use jump table label to determine the offset
1558 of the jump table.
1559 (casesi64p): Likewise.
1560
d0b2c064 1561 * pa.c (forward_branch_p): Return bool type. Use instruction
1562 addresses when available. Assert that INSN has a jump label.
372b3fe2 1563 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
1564 have a jump label.
1565
9df58cd1 15662009-07-01 Richard Guenther <rguenther@suse.de>
1567
1568 PR tree-optimization/19831
1569 * tree-ssa-dce.c (propagate_necessity): Calls to functions
d0b2c064 1570 that only act as barriers do not make any previous stores necessary.
9df58cd1 1571 * tree-ssa-structalias.c (handle_lhs_call): Delay making
1572 HEAP variables global, do not add a constraint from nonlocal.
1573 (find_func_aliases): Handle escapes through return statements.
1574 (compute_points_to_sets): Make escaped HEAP variables global.
1575
7d4098a0 15762009-07-01 Paolo Bonzini <bonzini@gnu.org>
1577
1578 PR bootstrap/40597
1579 * expmed.c (emit_store_flag): Perform a conversion if necessary,
1580 after reducing a DImode cstore to SImode.
1581
7dbdd983 15822009-07-01 Paolo Bonzini <bonzini@gnu.org>
1583
1584 * expr.c (expand_expr_real_1): Reinstate fallthrough to
1585 TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
1586
91ec62fb 15872009-07-01 Maciej W. Rozycki <macro@linux-mips.org>
1588
1589 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1.
1590 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the
1591 to 0.
1592 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
1593 and umod_optab if TARGET_BSD_DIVMOD.
1594 * config/vax/lib1funcs.asm: New file.
1595 * config/vax/t-linux: New file.
1596 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
1597
c899341f 15982009-06-30 Jakub Jelinek <jakub@redhat.com>
1599
57d0100f 1600 PR c++/40566
1601 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
1602 to type arguments that have void type.
1603
c899341f 1604 PR debug/40573
1605 * dwarf2out.c (gen_formal_parameter_die): Call
1606 equate_decl_number_to_die if node is different from origin.
1607
76bfc156 16082009-06-30 Anthony Green <green@moxielogic.com>
1609
1610 Clean up moxie port for --enable-build-with-cxx.
1611 * config/moxie/moxie.c (moxie_function_value): First two
1612 parameters are const_tree, not tree.
1613 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
1614 (REG_CLASS_NAMES): Ditto.
1615 (REGNO_REG_CLASS): Ditto.
1616 * config/moxie/moxie-protos.h (moxie_override_options): Declare.
1617 (moxie_function_value): Fix constyness of arguments.
1618
4189e677 16192009-06-30 Eric Botcazou <ebotcazou@adacore.com>
1620
1621 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
1622 finalize_size_functions before further processing.
1623 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
1624 (variable_size): Call self_referential_size on size expressions
1625 that contain a PLACEHOLDER_EXPR.
1626 (size_functions): New static variable.
1627 (copy_self_referential_tree_r): New static function.
1628 (self_referential_size): Likewise.
1629 (finalize_size_functions): New global function.
1630 * tree.c: Include tree-inline.h.
1631 (push_without_duplicates): New static function.
1632 (find_placeholder_in_expr): New global function.
1633 (substitute_in_expr) <tcc_declaration>: Return the replacement object
1634 on equality.
1635 <tcc_expression>: Likewise.
1636 <tcc_vl_exp>: If the replacement object is a constant, try to inline
1637 the call in the expression.
1638 * tree.h (finalize_size_functions): Declare.
1639 (find_placeholder_in_expr): Likewise.
1640 (FIND_PLACEHOLDER_IN_EXPR): New macro.
1641 (substitute_placeholder_in_expr): Update comment.
1642 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
1643 is true.
1644 (copy_tree_body_r): Likewise.
1645 (copy_tree_body): New static function.
1646 (maybe_inline_call_in_expr): New global function.
1647 * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
1648 (maybe_inline_call_in_expr): Declare.
1649 * Makefile.in (tree.o): Depend on TREE_INLINE_H.
1650 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
1651 GIMPLE_H.
1652
4bb5d312 16532009-06-30 Richard Guenther <rguenther@suse.de>
1654
1655 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
1656 continue walking.
1657 (propagate_necessity): Do not mark reaching defs of stores
1658 as necessary.
1659
c9263b6a 16602009-06-30 Jan Hubicka <jh@suse.cz>
1661
1662 * cfgloopanal.c (check_irred): Move into ...
1663 (mark_irreducible_loops): ... here; return true if ireducible
1664 loops was found.
1665 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
1666 (analyze_function): Try to prove loop finiteness.
1667 * cfgloop.h (mark_irreducible_loops): Update prototype.
1668 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
1669
2bda5ce3 16702009-06-30 Basile Starynkevitch <basile@starynkevitch.net>
1671
1672 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
1673
9908a112 16742009-06-30 Ira Rosen <irar@il.ibm.com>
1675
1676 PR tree-optimization/40542
1677 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
1678 types.
1679
e8803173 16802009-06-30 Martin Jambor <mjambor@suse.cz>
1681
1682 PR tree-optimization/40582
1683 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
1684 than useless_type_conversion_p.
1685 (generate_subtree_copies): Increment sra_stats.subtree_copies at a
1686 proper place.
1687
55a9bfa7 16882009-06-30 Martin Jambor <mjambor@suse.cz>
1689
1690 PR middle-end/40554
1691 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
1692
1daead67 16932009-06-30 Richard Guenther <rguenther@suse.de>
1694
1695 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
1696 use ao_ref references.
1697 (walk_aliased_vdefs): Likewise.
1698 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
1699 * tree-ssa-dce.c (struct ref_data): Remove.
1700 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
1701 (mark_aliased_reaching_defs_necessary): Adjust.
1702 (mark_all_reaching_defs_necessary_1): Likewise.
1703
cf564daf 17042009-06-30 Paolo Bonzini <bonzini@gnu.org>
1705
1706 PR boostrap/40597
1707 * expmed.c (emit_cstore): New name of emit_store_flag_1.
1708 (emit_store_flag_1): Extract from emit_store_flag, adjust
1709 calls to (what now is) emit_cstore.
1710 (emit_store_flag): Call emit_store_flag_1 and also use it
1711 for what used to be recursive calls.
1712
258b3d02 17132009-06-30 Wei Guozhi <carrot@google.com>
1714
1715 PR/40416
1716 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
1717 if the target bb post dominates from bb.
1718 * config/i386/i386.c (memory_address_length): Check existence of base
1719 register before using it.
1720
c4af075b 17212009-06-30 Nick Clifton <nickc@redhat.com>
1722 DJ Delorie <dj@redhat.com>
1723
1724 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
1725 __FMOVD_ENABLED__ is defined.
1726 * config/sh/sh.h
1727 (TARGET_FMOVD): Provide a default definition.
1728 (MASK_FMOVD): Likewise.
1729 (TARGET_CPU_CPP_BUILTINS): Define
1730 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
1731 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
1732 two fmov instructions depending upon whether TARGET_FMOVD is
1733 enabled.
1734 (split for DF load from memory into register): Also handle
1735 MEMs which consist of REG+DISP addressing.
1736 (split for DF store from register to memory): Likewise.
1737 * config/sh/sh.opt (mfmovd): Remove this switch.
1738 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
1739 * config/sh/sh.c (sh_override_options): Do not automatically
1740 enable TARGET_MOVD for the SH2A when supporting doubles - leave
1741 that to the -mfmovd command line switch.
1742
1743 * config/sh/sh.c (broken_move): Do not restrict fldi test to only
1744 the SH4 and SH4A.
1745 (fldi_ok): Always allow.
1746 * config/sh/sh.md (movsf_ie): Always use single fp_mode.
1747
760e1ed4 17482009-06-29 DJ Delorie <dj@redhat.com>
1749
1750 * doc/install.texi (mep-x-elf): Correct chip's full name.
1751
58c0b97e 17522009-06-29 H.J. Lu <hongjiu.lu@intel.com>
1753
1754 * doc/extend.texi: Fix typo.
1755
2452254d 17562009-06-29 Tom Tromey <tromey@redhat.com>
1757
1758 * dwarf2.h: Remove.
1759 * Makefile.in (DWARF2_H): New variable.
1760 (except.o): Use it.
1761 (dwarf2out.o): Likewise.
1762 (dwarf2asm.o): Likewise.
1763 * config/i386/t-i386: Use DWARF2_H.
1764 * except.c: Include elf/dwarf2.h.
1765 * unwind-dw2.c: Include elf/dwarf2.h.
1766 * dwarf2out.c: Include elf/dwarf2.h.
1767 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
1768 <dtprel>: New field.
1769 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
1770 (size_of_loc_descr): Likewise.
1771 (output_loc_operands_raw): Likewise.
1772 (output_loc_operands): Handle new dtprel field.
1773 (loc_checksum): Update.
1774 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
1775 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
1776 * unwind-dw2-fde.c: Include elf/dwarf2.h.
1777 * dwarf2asm.c: Include elf/dwarf2.h.
1778 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
1779 * config/mmix/mmix.c: Include elf/dwarf2.h.
1780 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
1781 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
1782 * config/sh/sh.c: Include elf/dwarf2.h.
1783 * config/i386/i386.c: Include elf/dwarf2.h.
1784
7c3116fb 17852009-06-29 DJ Delorie <dj@redhat.com>
1786
3a28fb14 1787 * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
1788
7c3116fb 1789 * doc/extend.texi: Add MeP attributes and pragmas.
1790 * doc/invoke.text: Add MeP Options.
1791 * doc/contrib.texi: Add MeP contribution.
1792 * doc/md.texi: Add MeP constraints.
1793 * doc/install.texi: Add MeP target.
1794
5a1c68c3 17952009-06-30 Anatoly Sokolov <aesok@post.ru>
1796
1797 * target.h (struct gcc_target): Add frame_pointer_required field.
1798 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
1799 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
1800 * ira.c (setup_eliminable_regset): Use frame_pointer_required target
1801 hook.
1802 * reload1.c (update_eliminables): (Ditto.).
1803 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
1804 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1805 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
1806
1807 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
1808
1809 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
1810 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1811 (arm_frame_pointer_required): New function.
1812
1813 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
1814 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1815 (avr_frame_pointer_required_p): Declare as static.
1816 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
1817
1818 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
1819 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1820 (bfin_frame_pointer_required): Make as static, change return type
1821 to bool.
1822 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
1823
1824 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
1825 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1826 (cris_frame_pointer_required): New function.
1827
1828 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
1829
1830 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
1831 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1832 (fr30_frame_pointer_required): New function.
1833
1834 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
1835 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1836 (frv_frame_pointer_required): Make as static, change return type
1837 to bool.
1838 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
1839
1840 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
1841 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1842 (ix86_frame_pointer_required): Make as static, change return type to
1843 bool.
1844 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
1845
1846 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
1847 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1848
1849 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
1850
1851 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
1852
1853 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
1854
1855 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
1856 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1857 (mips_frame_pointer_required): Make as static.
1858 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
1859
1860 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
1861 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1862 (mmix_frame_pointer_required): Mew function.
1863
1864 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
1865 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1866
1867 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
1868
1869 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
1870
1871 * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
1872
1873 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
1874 (CAN_ELIMINATE): Redefine.
1875 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1876 (sparc_frame_pointer_required): New function.
1877 (sparc_can_eliminate): New function.
1878 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
1879
1880 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
1881 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1882
1883 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
1884 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1885 (xtensa_frame_pointer_required): Make as static, change return type
1886 to bool.
1887 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
1888 Remove.
1889
d0b2c064 18902009-06-29 Olatunji Ruwase <tjruwase@google.com>
275b769b 1891
1892 * doc/plugins.texi: Document PLUGIN_START_UNIT.
1893 * toplev.c (compile_file): Call PLUGIN_START_UNIT.
1894 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
1895 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
1896 (register_callback): Handle PLUGIN_START_UNIT.
1897 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
1898
e0ca1cb5 18992009-06-29 Eric Botcazou <ebotcazou@adacore.com>
1900
1901 * tree.c (process_call_operands): Propagate TREE_READONLY from the
1902 operands.
1903 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
1904 (build3_stat): Propagate TREE_READONLY for COND_EXPR.
1905
d6d765b4 19062009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
1907
1908 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
1909 move cost.
1910
70a23968 19112009-06-29 Uros Bizjak <ubizjak@gmail.com>
1912
1913 * doc/extend.texi (Additional Floating Types): __float128 is also
1914 supported on i386 targets.
1915
1c1f1bc0 19162009-06-29 Richard Guenther <rguenther@suse.de>
1917
1918 PR middle-end/14187
1919 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1920 flag.
1921 (pt_solutions_same_restrict_base): Declare.
1922 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
1923 flag.
1924 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
1925 (make_constraint_from, make_copy_constraint): Move earlier.
1926 (make_constraint_from_heapvar): New function.
1927 (make_constraint_from_restrict): Likewise.
1928 (handle_lhs_call): Use it.
1929 (find_func_aliases): Use it to track conversions to restrict
1930 qualified pointers.
1931 (struct fieldoff): Add only_restrict_pointers flag.
1932 (push_fields_onto_fieldstack): Initialize it.
1933 (create_variable_info_for): Track global restrict qualified pointers.
1934 (intra_create_variable_infos): Use make_constraint_from_heapvar.
1935 Track restrict qualified pointer arguments.
1936 (set_uids_in_ptset): Use varinfo is_global_var flag.
1937 (find_what_var_points_to): Set the vars_contains_restrict flag.
1938 Always create the points-to solution for sets including restrict tags.
1939 (pt_solutions_same_restrict_base): New function.
1940 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
1941 qualified pointers use pt_solutions_same_restrict_base as
1942 additional source for disambiguation.
1943
8115f0af 19442009-06-29 Richard Guenther <rguenther@suse.de>
1945
1946 PR middle-end/38212
1947 * alias.c (find_base_decl): Remove.
1948 (get_deref_alias_set_1): Remove restrict handling.
1949 * c-common.c (c_apply_type_quals_to_decl): Do not set
1950 DECL_POINTER_ALIAS_SET.
1951 * gimplify.c (find_single_pointer_decl_1): Remove.
1952 (find_single_pointer_decl): Likewise.
1953 (internal_get_tmp_var): Remove restrict handling.
1954 (gimple_regimplify_operands): Likewise.
1955 * omp-low.c (expand_omp_atomic_pipeline): Do not set
1956 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
1957 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
1958 * tree.c (restrict_base_for_decl): Remove.
1959 (init_ttree): Do not allocate it.
1960 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
1961 LABEL_DECL_UID for label decls.
1962 (copy_node_stat): Do not copy restrict information.
1963 (decl_restrict_base_lookup): Remove.
1964 (decl_restrict_base_insert): Likewise.
1965 (print_restrict_base_statistics): Likewise.
1966 (dump_tree_statistics): Do not call print_restrict_base_statistics.
1967 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
1968 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
1969 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
1970 (LABEL_DECL_UID): Adjust.
1971 (DECL_BASED_ON_RESTRICT_P): Remove.
1972 (DECL_GET_RESTRICT_BASE): Likewise.
1973 (SET_DECL_RESTRICT_BASE): Likewise.
1974 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
1975
1976 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
1977 instead of DECL_POINTER_ALIAS_SET.
1978 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
1979 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
1980 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
1981
a000e0d1 19822009-06-29 Richard Guenther <rguenther@suse.de>
1983
1984 PR tree-optimization/40579
1985 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
1986 the IL to simplify has constants that overflowed.
1987
275b8285 19882009-06-28 Uros Bizjak <ubizjak@gmail.com>
1989
1990 PR tree-optimization/40550
1991 * tree-vect-generic.c (expand_vector_operations_1): Compute in
1992 vector_compute_type only when the size of vector_compute_type is
1993 less than the size of type.
1994
2ba5b763 19952009-06-28 Eric Botcazou <ebotcazou@adacore.com>
1996
1997 * fold-const.c (contains_label_1): Fix comments.
1998 (contains_label_p): Do not walk trees multiple time.
1999
e6a0a4a3 20002009-06-28 Paolo Bonzini <bonzini@gnu.org>
2001
70a23968 2002 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
2003 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
2004 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
2005 ix86_fp_comparison_operator.
2006 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
2007 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
2008 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
2009 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
2010 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
2011 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
2012 (related splits): Change predicate to ix86_fp_comparison_operator.
2013 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
2014 instead of ix86_fp_comparison_codes.
2015 (ix86_trivial_fp_comparison_operator,
2016 ix86_fp_comparison_operator): New.
2017 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
2018 (ix86_expand_compare): Eliminate last two parameters.
2019 (ix86_fp_jump_nontrivial_p): Kill.
2020 * config/i386/i386.c (put_condition_code): Eliminate call to
2021 ix86_fp_comparison_codes and subsequent assertion.
2022 (ix86_fp_comparison_codes): Eliminate.
2023 (ix86_fp_swap_condition): New.
2024 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
2025 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
2026 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
2027 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
2028 and ix86_fp_swap_condition.
2029 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
2030 Use ix86_fp_comparison_strategy.
2031 (ix86_expand_compare): Likewise. Eliminate last two arguments.
2032 (ix86_fp_jump_nontrivial_p): Eliminate.
2033 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
2034 call to ix86_expand_compare.
2035 (ix86_split_fp_branch, ix86_expand_setcc,
2036 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
2037 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
e6a0a4a3 2038
b0694be0 20392009-06-28 Paolo Bonzini <bonzini@gnu.org>
2040
70a23968 2041 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
2042 related to jump_clobbers.
2043 * config/arm/arm.md (conds): Remove jump_clob case.
2044 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
2045 splits): Change comparison_operator to arm_comparison_operator.
2046 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
2047 Eliminate.
b0694be0 2048
fb425e71 20492009-06-28 Paolo Bonzini <bonzini@gnu.org>
2050
70a23968 2051 * dojump.c (do_compare_rtx_and_jump): Try swapping the
2052 condition for floating point modes.
2053 * expmed.c (emit_store_flag_1): Move here a bigger part
2054 of emit_store_flag.
2055 (emit_store_flag): Try swapping the condition for floating point
2056 modes.
2057 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
fb425e71 2058
80e1bfa1 20592009-06-28 Paolo Bonzini <bonzini@gnu.org>
2060
70a23968 2061 * expr.c (expand_expr_real_1): Just use do_store_flag.
2062 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
2063 emit_store_flag_force.
2064 * expmed.c (emit_store_flag_force): Copy here trick
2065 previously in expand_expr_real_1. Try reversing the comparison.
2066 (emit_store_flag_1): Work if target is NULL.
2067 (emit_store_flag): Work if target is NULL, using the result mode
2068 from the comparison. Use split_comparison, restructure final part
2069 to simplify conditionals.
80e1bfa1 2070
3fcf767f 20712009-06-28 Paolo Bonzini <bonzini@gnu.org>
2072
70a23968 2073 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
2074 * dojump.c (do_jump): Change handling of floating-point
2075 ops to use just do_compare_and_jump.
2076 (split_comparison): New.
2077 (do_compare_rtx_and_jump): Add here logic coming previously
2078 in do_jump, using split_comparison.
3fcf767f 2079
025781a4 20802009-06-27 H.J. Lu <hongjiu.lu@intel.com>
2081
2082 PR target/40489
2083 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
2084
02c74b9b 20852009-06-27 Paolo Bonzini <bonzini@gnu.org>
2086
2087 * tree-ssa-alias.c: Fix unintentional commit.
2088
fa0ccb6b 20892009-06-27 Paolo Bonzini <bonzini@gnu.org>
2090
2091 * passes.c (execute_one_pass): Fix unintentional commit.
2092
44e66138 20932009-06-27 Paolo Bonzini <bonzini@gnu.org>
2094
025781a4 2095 * df-problems.c (df_set_seen, df_unset_seen): Delete.
2096 (df_rd_local_compute, df_md_local_compute): Inline them.
44e66138 2097
025781a4 2098 (df_md_scratch): New.
2099 (df_md_alloc, df_md_free): Allocate/free it.
2100 (df_md_local_compute): Only include live registers in init.
2101 (df_md_transfer_function): Prune the in-set computed by
2102 the confluence function, and the gen-set too.
44e66138 2103
21042009-06-27 Paolo Bonzini <bonzini@gnu.org>
2355a966 2105
2106 PR rtl-optimization/26854
025781a4 2107 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
2108 * df-problems.c (df_rd_add_problem): Fix comment.
2109 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
2110 df_md_simulate_artificial_defs_at_top,
2111 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
2112 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
2113 df_md_transfer_function, df_md_init, df_md_confluence_0,
2114 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
2115 problem_MD, df_md_add_problem): New.
2116 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
2117 df_md_get_bb_info): New.
275b8285 2118 (DF_LAST_PROBLEM_PLUS1): Adjust.
025781a4 2119
2120 * Makefile.in (fwprop.o): Include domwalk.h.
2121 * fwprop.c: Include domwalk.h.
2122 (reg_defs, reg_defs_stack): New.
2123 (bitmap_only_bit_between): Remove.
2124 (process_defs): New.
2125 (process_uses): Use reg_defs and local_md instead of
2126 bitmap_only_bit_between and local_rd.
2127 (single_def_use_enter_block): New, from build_single_def_use_links.
2128 (single_def_use_leave_block): New.
2129 (build_single_def_use_links): Remove code moved to
2130 single_def_use_enter_block, invoke domwalk.
2131 (use_killed_between): Adjust comment.
2355a966 2132
d7f2555b 21332009-06-27 Paolo Bonzini <bonzini@gnu.org>
2134
2135 * bitmap.h (bitmap_ior_and_into): New.
2136 * bitmap.c (bitmap_ior_and_into): New.
2137
6bf320fb 21382009-06-27 Paolo Bonzini <bonzini@gnu.org>
2139
025781a4 2140 * domwalk.h (struct dom_walk_data): Remove all callbacks except
2141 before_dom_children_before_stmts and after_dom_children_after_stmts.
2142 Rename the two remaining callbacks to just before_dom_children and
2143 after_dom_children. Remove other GIMPLE statement walking bits.
2144 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
2145 * graphite.c: Do not include domwalk.h.
2146 * tree-into-ssa.c (interesting_blocks): New global.
2147 (struct mark_def_sites_global_data): Remove it and names_to_rename.
2148 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
2149 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
2150 now that they're not domwalk callbacks.
2151 (rewrite_initialize_block): Rename to...
2152 (rewrite_enter_block): ... this, place after called functions. Test
2153 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
2154 (rewrite_finalize_block): Rename to...
2155 (rewrite_leave_block): ... this, place after called functions.
2156 (rewrite_update_init_block): Rename to...
2157 (rewrite_update_enter_block): ... this, place after called functions.
2158 Test interesting_blocks, call rewrite_update_stmt and
2159 rewrite_update_phi_arguments.
2160 (rewrite_update_fini_block): Rename to...
2161 (rewrite_leave_block): ... this, place after called functions.
2162 (rewrite_blocks): Remove last argument, simplify initialization of
2163 walk_data.
2164 (mark_def_sites_initialize_block): Rename to...
2165 (mark_def_sites_block): ... this, call mark_def_sites.
2166 (mark_def_sites_blocks): Remove argument, simplify initialization of
2167 walk_data.
2168 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
2169 (update_ssa): Likewise.
2170 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
2171 callback.
2172 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
2173 (dom_opt_initialize_block): Rename to...
2174 (dom_opt_enter_block): ... this, place after called functions. Walk
2175 statements here, inline propagate_to_outgoing_edges.
2176 (dom_opt_finalize_block): Rename to...
2177 (dom_opt_leave_block): ... this, place after called functions.
2178 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
2179 domwalk callback.
2180 (dse_enter_block, dse_record_phi): New.
2181 (dse_record_phis): Delete.
2182 (dse_finalize_block): Rename to...
2183 (dse_leave_block): ... this.
2184 (tree_ssa_dse): Simplify initialization of walk_data.
2185 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
2186 Adjust initialization of walk_data.
2187 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
2188 * tree-ssa-loop-phiopt.c (get_non_trapping):
2189 Adjust initialization of walk_data.
2190 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
2191 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
2192 it's not a domwalk callback.
2193 (uncprop_initialize_block): Rename to...
2194 (dse_enter_block): ... this, call uncprop_into_successor_phis.
2195 (dse_finalize_block): Rename to...
2196 (dse_leave_block): ... this.
2197 (tree_ssa_uncprop): Simplify initialization of walk_data.
2198 * Makefile.in: Adjust dependencies.
6bf320fb 2199
3db2019b 22002009-06-27 Richard Earnshaw <rearnsha@arm.com>
2201
2202 * arm.md (casesi): Fix test for Thumb1.
2203 (thumb1_casesi_internal_pic): Likewise.
2204 (thumb1_casesi_dispatch): Likewise.
2205
d7b91299 22062009-06-26 Daniel Gutson <dgutson@codesourcery.com>
2207
2208 * config/arm/arm-cores.def: Added core cortex-m0.
2209 * config/arm/arm-tune.md: Regenerated.
2210 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
2211
1f2d41ad 22122009-06-26 DJ Delorie <dj@redhat.com>
2213
2214 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
2215
2216 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
2217 the scheduler doesn't tag jump insns.
2218
da870dac 22192009-06-26 H.J. Lu <hongjiu.lu@intel.com>
2220
2221 * c-decl.c (merge_decls): Re-indent.
2222
fcd5ffce 22232009-06-26 Janis Johnson <janis187@us.ibm.com>
2224
2225 PR c/39902
2226 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
2227 Special-case decimal float constants.
2228
d747fdfb 22292009-06-26 Richard Henderson <rth@redhat.com>
2230
2231 * function.h (struct function): Add cannot_be_copied_reason,
2232 and cannot_be_copied_set.
2233 * tree-inline.c (has_label_address_in_static_1): Rename from
2234 inline_forbidden_p_2; don't set inline_forbidden_reason here.
2235 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
2236 don't set inline_forbidden_reason.
2237 (copy_forbidden): New function, split out of inline_forbidden_p.
2238 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
2239 (inline_forbidden_p): Use copy_forbidden.
2240 (tree_versionable_function_p): Likewise.
2241 (inlinable_function_p): Merge into tree_inlinable_function_p.
2242 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
2243 * ipa-cp.c (ipcp_versionable_function_p): New function.
2244 (ipcp_cloning_candidate_p): Use it.
2245 (ipcp_node_modifiable_p): Likewise.
2246
f9fa0459 22472009-06-26 Olatunji Ruwase <tjruwase@google.com>
2248
2249 * builtins.c (expand_builtin_alloca): Handle builtin alloca
2250 that is marked not to be inlined. Remove flag_mudflap use.
2251 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
2252 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
2253
9d4aeda2 22542009-06-26 Steve Ellcey <sje@cup.hp.com>
2255
2256 PR bootstrap/40338
2257 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
2258 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
2259
5ab8d1bf 22602009-06-26 Kai Tietz <kai.tietz@onevision.com>
2261
2262 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
2263 shared libgcc.
2264 (__mingwthr_remove_key_dtor): Likewise.
2265
636df1b1 22662009-06-26 Richard Guenther <rguenther@suse.de>
2267
275b8285 2268 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
636df1b1 2269
a27f5985 22702009-06-26 Steven Bosscher <steven@gcc.gnu.org>
2271
2272 PR middle-end/40525
2273 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
2274 try the non-cond_exec path also.
2275
317754f4 22762009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2277
2278 PR target/40468
2279 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
2280 (output_cbranch): Use new functions.
2281 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
2282 Likewise.
2283
6ff33500 22842009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
2285 Pat Haugen <pthaugen@us.ibm.com>
2286 Revital Eres <ERES@il.ibm.com>
2287
56df51d8 2288 * config/rs6000/rs6000.c (print_operand): Correct lossage message
2289 for %c error. Add %x support to print VSX registers as a unified
2290 register set, instead of separate float and altivec registers.
2291 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
2292 %y case, and add support for VSX pre-modify addresses.
2293 (output_toc): Add assert for CONST containing an integer constant
2294 in the PLUS case.
2295 (rs6000_adjust_cost): Add POWER7 support.
2296 (insn_must_be_first_in_group): Ditto.
2297 (insn_must_be_last_in_group): Ditto.
2298 (rs6000_emit_popcount): Ditto.
2299 (rs6000_vector_mode_supported_p): Ditto.
2300
6ff33500 2301 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
2302 Change some of the functions called by macros to being called
2303 through a pointer, so debug functions can be inserted if
2304 -mdebug=addr or -mdebug=cost.
2305 (rs6000_preferred_reload_class_ptr): Ditto.
2306 (rs6000_secondary_reload_class_ptr): Ditto.
2307 (rs6000_secondary_memory_needed_ptr): Ditto.
2308 (rs6000_cannot_change_mode_class_ptr): Ditto.
2309 (rs6000_secondary_reload_inner): Ditto.
2310 (rs6000_legitimize_reload_address): Ditto.
2311 (rs6000_legitimize_reload_address_ptr): Ditto.
2312 (rs6000_mode_dependent_address): Ditto.
2313 (rs6000_mode_dependent_address_ptr): Ditto.
2314
2315 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
2316 function to return true if the mode allows reg + integer
2317 addresses.
2318 (virtual_stack_registers_memory_p): New function to return true if
2319 the address refers to a virtual stack register.
2320 (rs6000_legitimate_offset_address_p): Move code to say whether a
2321 mode supports reg+int addressing to reg_offset_addressing_ok_p and
2322 call it.
2323 (rs6000_legitimate_address_p): Add checks for modes that only can
2324 do reg+reg addressing. Start adding VSX support.
2325 (rs6000_legitimize_reload_address): Ditto.
2326 (rs6000_legitimize_address): Ditto.
2327 (rs6000_debug_legitimate_address_p): New debug functions for
2328 -mdebug=addr and -mdebug=cost.
2329 (rs6000_debug_rtx_costs): Ditto.
2330 (rs6000_debug_address_costs): Ditto.
2331 (rs6000_debug_adjust_cost): Ditto.
2332 (rs6000_debug_legitimize_address): Ditto.
2333 (rs6000_legitimize_reload_address_ptr): Point to call normal
2334 function or debug function. Make functions called via pointer
2335 static.
2336 (rs6000_mode_dependent_address_ptr): Ditto.
2337 (rs6000_secondary_reload_class_ptr): Ditto.
2338 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
2339 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
2340 into a friendlier error.
2341 (rs6000_init_builtins): Add initial VSX support.
2342 (rs6000_adjust_cost): Fix some spacing issues.
2343
2344 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
2345 (REG_CLASS_NAMES): Ditto.
2346 (REG_CLASS_CONTENTS): Ditto.
2347 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
2348 pointer, to add -mdebug=addr support.
2349 (CANNOT_CHANGE_MODE_CLASS): Ditto.
2350 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
2351 -mdebug=addr support.
2352 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
2353 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
2354 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
2355
2356 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
2357 16-bit values.
2358 (bswapsi*): Set attribute types for load/store. Add combiner
2359 patterns to eliminate zero extend on 64-bit.
2360 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
2361 stdbrx if the hardware supports those instructions.
2362
0f32121e 23632009-06-25 Ian Lance Taylor <iant@google.com>
2364
2365 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
2366 (Link Options): Document -static-libstdc++.
2367
5260b939 23682009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
2369
2370 PR target/38731
2371 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
2372 DATA_ALIGNMENT instead.
2373
917f08fa 23742009-06-25 Richard Guenther <rguenther@suse.de>
2375
2376 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
2377 indirect references against the callused/escaped solutions.
2378 (call_may_clobber_ref_p_1): Likewise.
2379
eaadb0b5 23802009-06-25 Martin Jambor <mjambor@suse.cz>
2381
2382 PR tree-optimization/40493
2383 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
2384 (enum unscalarized_data_handling): New type.
2385 (handle_unscalarized_data_in_subtree): Return what has been done.
2386 (load_assign_lhs_subreplacements): Handle left flushes differently.
2387 (sra_modify_assign): Use unscalarized_data_handling, simplified
2388 condition determining whether to remove the statement.
2389
f5494808 23902009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
f26f4496 2391
2392 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
2393 excerpt - @ should be doubled for texinfo.
f5494808 2394
ef51d1e3 23952009-06-24 Ian Lance Taylor <iant@google.com>
2396
2397 * config/arc/arc.c: Include "df.h".
2398 (arc_attribute_table): Make static. Move higher in file.
2399 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
2400 (output_shift): Initialize n later to avoid warning.
2401 * config/arm/arm.c (arm_attribute_table): Make static. Move
2402 higher in file.
2403 * config/avr/avr.c (avr_attribute_table): Make static. Move
2404 higher in file.
2405 (reg_class_tab): Change array type from int to enum reg_class.
2406 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
2407 LABEL_REF.
2408 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
2409 (lshrhi3_out): Likewise.
2410 (class_likely_spilled_p): Change return type to bool.
2411 (avr_rtx_costs): Use local code variable with enum type.
2412 * config/avr/avr.md (movmemhi): Use add_reg_note.
2413 (andhi3, andsi3): Don't use AS2 with "and".
2414 (iorhi3, iorsi3): Don't use AS2 with "or".
275b8285 2415 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
ef51d1e3 2416 * config/crx/crx.c: Include "df.h".
2417 (crx_attribute_table): Make static.
2418 * config/m32r/m32r.c: Include "df.h".
2419 (m32r_attribute_table): Make static. Move higher in file.
2420 (pop): Use add_reg_note.
2421 (block_move_call): Change 0 to LCT_NORMAL in function call.
2422 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
2423 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
2424 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
2425 declare, not just when TREE_CODE is defined.
2426 * config/m68hc11/m68hc11.c: Include "expr.h".
2427 (m68hc11_attribute_table): Make static. Move higher in file.
2428 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
2429 function call.
2430 (m68hc11_register_indirect_p): Likewise.
2431 (m68hc11_function_arg_padding): Change return type to enum
2432 direction.
2433 (emit_move_after_reload): Use add_reg_note.
2434 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
2435 (m68hc11_split_logical): Likewise.
2436 (m68hc11_rtx_costs): Add local code_and outer_code variables with
2437 enum type.
2438 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
2439 to VOIDmode in function call.
2440 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
2441 tree is defined.
2442 (m68hc11_split_logical): Update declaration.
2443 (m68hc11_function_arg_padding): Update declaration.
2444 * config/mcore/mcore.c (regno_reg_class): Change form array of int
2445 to array of enum reg_class.
2446 (mcore_attribute_table): Make static. Move higher in file.
2447 (mcore_rtx_costs): Add cast to enum type.
2448 * config/mcore/mcore.h (regno_reg_class): Update declaration.
2449 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
2450 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
2451 in file.
2452 * config/sh/predicates.md (trapping_target_operand): Rename and to
2453 and_expr.
2454 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
2455 higher in file.
2456 * config/spu/spu.c (spu_attribute_table): Make static. Move
2457 higher in file.
2458 * config/v850/v850.c (v850_attribute_table): Make static. Move
2459 higher in file.
2460 (v850_rtx_costs): Use local code with enum type.
2461 (expand_epilogue): Add cast.
2462 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
2463
5b9c0169 24642009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
2465
2466 PR target/40515
2467 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
2468 -m2a-single-only and -m2a-nofpu.
2469 * config/sh/sh.opt: Document m2a generates FPU code.
2470
0e841940 24712009-06-24 Anatoly Sokolov <aesok@post.ru>
2472
2473 * defaults.h (CAN_ELIMINATE): Provide default.
2474 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
2475 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
2476 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
2477 * config/spu/spu.h (CAN_ELIMINATE): Delete.
2478 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
2479 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
2480 * config/cris/cris.h (CAN_ELIMINATE): Delete.
2481 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
2482 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
2483 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
2484
a239165a 24852009-06-24 DJ Delorie <dj@redhat.com>
2486
2487 * mep-ext-cop.cpu: Fix copyright notice.
2488 * mep-default: Fix copyright notice.
2489 * mep-core: Fix copyright notice.
2490 * mep: Fix copyright notice.
2491 * mep-ivc2: Fix copyright notice.
2492 * mep-c5: Fix copyright notice.
2493
c86a70e3 24942009-06-24 Denis Chertykov <chertykov@gmail.com>
2495
2496 * doc/contrib.texi (Contributors):
2497
0af25806 24982009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
2499
2500 PR middle-end/40501
2501 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
2502 src and dst operands if necessary.
2503
46222c18 25042009-06-23 DJ Delorie <dj@redhat.com>
2505
2506 Add MeP port.
2507 * config.gcc: Add mep support.
2508 * recog.c: Resurrect validate_replace_rtx_subexp().
2509 * recog.h: Likewise.
2510 * config/mep/: Add new port:
2511 * config/mep/constraints.md: New file.
2512 * config/mep/default.h: New file.
2513 * config/mep/intrinsics.h: New file.
2514 * config/mep/intrinsics.md: New file.
2515 * config/mep/ivc2-template.h: New file.
2516 * config/mep/mep-c5.cpu: New file.
2517 * config/mep/mep-core.cpu: New file.
2518 * config/mep/mep-default.cpu: New file.
2519 * config/mep/mep-ext-cop.cpu: New file.
2520 * config/mep/mep-intrin.h: New file.
2521 * config/mep/mep-ivc2.cpu: New file.
2522 * config/mep/mep-lib1.asm: New file.
2523 * config/mep/mep-lib2.c: New file.
2524 * config/mep/mep-pragma.c: New file.
2525 * config/mep/mep-protos.h: New file.
2526 * config/mep/mep-tramp.c: New file.
2527 * config/mep/mep.c: New file.
2528 * config/mep/mep.cpu: New file.
2529 * config/mep/mep.h: New file.
2530 * config/mep/mep.md: New file.
2531 * config/mep/mep.opt: New file.
2532 * config/mep/predicates.md: New file.
2533 * config/mep/t-mep: New file.
2534
7ab76cec 25352009-06-23 Ian Lance Taylor <iant@google.com>
2536
2537 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
2538 from loose_warn into c_loose_warn and from strict_warn into
2539 c_strict_warn. Set and substitute warn_cxxflags. Check for
2540 --enable-build-with-cxx. Set and substitute
2541 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
2542 * Makefile.in (CXXFLAGS): New variable.
2543 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
2544 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
2545 the default is the same as $(STRICT_WARN).
2546 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
2547 (CXX): New variable.
2548 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
2549 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
2550 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
2551 (HOST_LIBS): New variable.
2552 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
2553 (ALL_CXXFLAGS): New variable.
2554 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
2555 * doc/install.texi (Configuration): Document
2556 --enable-build-with-cxx, --with-stage1-ldflags,
2557 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
2558 * configure: Rebuild.
2559
f3a8f217 25602009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
cb41fde2 2561
f3a8f217 2562 * config/arm/arm.c (arm_override_options): Fix braces and formatting
2563 from previous commit.
cb41fde2 2564
988e7f78 25652009-06-23 Ian Lance Taylor <iant@google.com>
2566
2567 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
2568
6577bf6b 25692009-06-23 Ian Lance Taylor <iant@google.com>
2570
2571 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
2572 with ATTRIBUTE_UNUSED.
2573
9c878e1b 25742009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2575 Pat Haugen <pthaugen@us.ibm.com>
f3a8f217 2576 Revital Eres <eres@il.ibm.com>
9c878e1b 2577
2578 * config.in (HAVE_AS_POPCNTD): Add default definition.
2579 (HAVE_AS_LWSYNC): Ditto.
2580
2581 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
2582 release number.
2583 (gcc_cv_as_powerpc_cmpb): Ditto.
2584 (gcc_cv_as_powerpc_dfp): Ditto.
2585 (gcc_cv_as_powerpc_vsx): Ditto.
2586 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
2587 supporting the popcntd/lwsync instructions.
2588 (gcc_cv_as_powerpc_lwsync): Ditto.
2589 * configure: Regenerate.
2590
2591 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
2592 -mcpu=native and -mcpu=power7.
2593 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
2594
2595 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
2596 a variable instead of a mask to reduce the number of mask bits.
2597 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2598 (-mbit-word): Ditto.
2599 (-mregnames): Ditto.
2600 * config/rs6000/rs6000.opt (-mupdate): Ditto.
2601 (-mfused-madd): Ditto.
2602
2603 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
2604 2.06 instructions.
2605 (-mvsx): New switch for VSX instructions.
2606 (-misel): Move from a variable to a mask to allow it to be set by
2607 -mcpu=.
2608
2609 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
2610 function declaration to an array declaration.
2611 (rs6000_hard_regno_nregs): New external array declaration.
2612
2613 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
2614 files included by rs6000.md.
2615
2616 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2617 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
2618
2619 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
2620 a target mask.
2621 (rs6000_debug_reg): New -mdebug= variables.
2622 (rs6000_debug_addr): Ditto.
2623 (rs6000_debug_cost): Ditto.
2624 (rs6000_pmode): New variable to hold Pmode.
2625 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
2626 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
2627 calculated at compiler start.
2628 (rs6000_hard_regno_nregs): Change function to an array which holds
2629 HARD_REGNO_NREGS calculated at compiler start.
2630 (rs6000_explicit_options): Delete isel field.
2631 (rs6000_vector_unit): New array to hold which vector unit
2632 supports arithmetic options for a given type.
2633 (rs6000_vector_mem): New array to hold which vector unit supports
2634 memory reference operations for a given type.
2635 (rs6000_vector_align): New array to given the alignment of each
2636 vector type.
2637 (power7_cost): New basic costs for power7.
2638 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
2639 (rs6000_hard_regno_nregs_internal): New function, moved from
2640 HARD_REGNO_NREGS, to calculate the number of registers each hard
2641 register takes for each type.
2642 (rs6000_debug_reg_print): New function for -mdebug=reg support.
275b8285 2643 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
9c878e1b 2644 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
2645 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
2646 unit information here so it is calculated once at compiler startup
2647 time.
2648 (rs6000_override_options): Make -misel a target mask. Add more
2649 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
2650 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
2651 -mdebug=cost.
2652 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
2653 (rs6000_handle_option): Move -misel from variable to target mask.
2654 (rs6000_builtin_mask_for_load): Add VSX support.
2655 (rs6000_conditional_register_usage): Ditto.
2656 (USE_ALTIVEC_FOR_ARG_P): Ditto.
2657 (function_arg_boundary): Ditto.
2658 (rs6000_expand_builtin): Ditto.
2659 (def_builtin): Make abort message a little friendlier.
2660 (rs6000_emit_int_cmove): Add support for 64-bit isel.
2661
2662 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
2663 assembler support the popcntd instruction instead of a vsx
2664 instruction to enable power7 support.
2665 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
2666 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
2667 option to the assembler if -mcpu=native.
2668 (ASM_CPU_NATIVE_SPEC): Ditto.
2669 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
2670 ISA 2.06 features.
2671 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
2672 the lwsync instruction.
2673 (enum processor_type): Add PROCESSOR_POWER7.
2674 (rs6000_debug_reg): New -mdebug= options.
2675 (rs6000_debug_addr): Ditto.
2676 (rs6000_debug_cost): Ditto.
2677 (rs6000_isel): Delete.
2678 (enum rs6000_vector): New enum to say what vector unit we have.
2679 (VECTOR_UNIT_*): New macros to say which vector unit has
2680 arithmetic operations for a given type.
2681 (VECTOR_MEM_*): New macros to say which vector unit has memory
2682 operations for a given type.
2683 (TARGET_LDBRX): Whether the machine supports the ldbrx
2684 instruction.
2685 (TARGET_ISEL): Delete, -misel moved to be a mask.
2686 (TARGET_ISEL64): New macro for 64-bit isel support.
2687 (UNITS_PER_VSX_WORD): New macro.
2688 (POINTER_SIZE): Move to be an external variable, rather than
2689 calculating whether we are generating 32 ot 64-bit code.
2690 (Pmode): Ditto.
2691 (STACK_BOUNDARY): Add VSX support.
2692 (LOCAL_ALIGNMENT): Ditto.
2693 (SLOW_UNALIGNED_ACCESS): Ditto.
2694 (VSX_REGNO_P): New macro for VSX support.
2695 (VFLOAT_REGNO_P): Ditto.
2696 (VINT_REGNO_P): Ditto.
2697 (VLOGICAL_REGNO_P): Ditto.
2698 (VSX_VECTOR_MODE): Ditto.
2699 (VSX_SCALAR_MODE): Ditto.
2700 (VSX_MODE): Ditto.
2701 (VSX_MOVE_MODE): Ditto.
2702 (VSX_REG_CLASS_P): Ditto.
2703 (HARD_REGNO_NREGS): Instead of calling a function, use an array
2704 lookup.
2705 (UNITS_PER_SIMD_WORD): Add VSX support.
2706 (MODES_TIEABLE_P): Ditto.
2707 (STARTING_FRAME_OFFSET): Ditto.
2708 (STACK_DYNAMIC_OFFSET): Ditto.
2709 (EPILOGUE_USES): Ditto.
2710 (REGNO_REG_CLASS): Move to array lookup.
2711 (CLASS_MAX_NREGS): Ditto.
2712 (rs6000_vector_reg_class): Add declaration.
2713 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
2714 overlap with the floating point and Altivec registers.
2715
2716 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
2717
2718 * config/rs6000/driver-rs6000.c (asm_names): New static array to
2719 give the appropriate asm switches if -mcpu=native.
2720 (host_detect_local_cpu): Add support for "asm".
2721 (host_detect_local_cpu): Follow GNU code guidelines for name.
2722
2723 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
2724 -mbit-word to a variable instead of being a target mask.
2725
2726 * config/rs6000/sync.md (lwsync): If the assembler supports it,
2727 emit the lwsync instruction instead of emitting the instruction as
2728 an integer constant.
2729
2730 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
2731 fixuns_trundfsi2, move expander into rs6000.md.
2732
2733 * config/rs6000/rs6000.md (cpu): Add power7.
2734 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
2735 (logical predicate patterns): Change the single instruction
2736 primitives that set CR0 to be fast_compare instead of compare.
2737 (norsi*): Ditto.
2738 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
2739 (popcntddi2): Ditto.
2740 (popcount<mode>): Ditto.
2741 (floating multiply/add insns): Name the floating point
2742 multiply/add insns.
2743 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
2744 (isel_unsigned_<mode>): Ditto.
2745 (fixuns_trundfsi2): Move expander here from spe.md.
2746 (smindi3): Define if we have -misel on 64-bit systems.
2747 (smaxdi3): Ditto.
2748 (umindi3): Ditto.
2749 (umaxdi3): Ditto.
2750
795cff42 27512009-06-23 Anatoly Sokolov <aesok@post.ru>
2752
2753 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
2754 extra_objs.
2755 * config/avr/avr.c (avr_current_device): New variable.
2756 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
2757 (avr_arch, mcu_type_s): Move to avr.h.
2758 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
2759 default_data_section_start fields.
2760 (avr_arch): Moved from avr.c.
2761 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
2762 library_name fields.
2763 (avr_current_device, avr_mcu_types, avr_arch_types,
2764 avr_device_to_arch, avr_device_to_data_start,
2765 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
2766 (EXTRA_SPEC_FUNCTIONS): Define.
2767 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
2768 options mapping. Use device_to_arch and device_to_data_start insted.
2769 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
2770 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
2771 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
2772 * config/avr/driver-avr.c: New file.
2773 * config/avr/avr-devices.c: New file.
2774
5dc67ab1 27752009-06-23 Jakub Jelinek <jakub@redhat.com>
2776
331cf53a 2777 * var-tracking.c (unshare_variable): Force initialized to
2778 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
2779 (set_variable_part): Likewise.
2780 (struct variable_union_info): Remove pos_src field.
2781 (vui_vec, vui_allocated): New variables.
2782 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
2783 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
2784 == 1 use a simpler sorting algorithm. Compute pos field right
2785 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
2786 Avoid quadratic comparison if !flag_var_tracking_uninit.
2787 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
2788 unshare_variable unconditionally.
2789 (dataflow_set_different_2): Removed.
2790 (dataflow_set_different): Don't traverse second hash table.
2791 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
2792 unconditionally to var_reg_set or var_mem_set.
2793 (emit_notes_in_bb): Likewise.
2794 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
2795 unshare_variable.
2796 (emit_note_insn_var_location): Don't set initialized to
2797 VAR_INIT_STATUS_INITIALIZED early.
2798 (vt_finalize): Free vui_vec if needed, clear vui_vec and
2799 vui_allocated.
2800 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
2801
5dc67ab1 2802 * tree-object-size.c (addr_object_size): Instead of checking
2803 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
2804 are no FIELD_DECLs following it.
2805
9bc1852a 28062009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
2807
2808 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
2809 order to match bswaps with signed source operands.
2810
20167aff 28112009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2812
2813 * sdbout.c (sdbout_one_type): Fix braces in switch.
2814
97709d23 28152009-06-23 Richard Guenther <rguenther@suse.de>
2816
2817 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
2818 member.
2819 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
2820 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
2821 var_callused, callused_tree, var_storedanything, storedanything_tree,
2822 var_integer, integer_tree): Remove global variables.
2823 (new_var_info): Do not pass new id, append the new var to the
2824 global variable vector.
2825 (do_ds_constraint): Use is_global_var member of the variable-info.
2826 (new_scalar_tmp_constraint_exp): Adjust.
2827 (create_function_info_for): Likewise.
2828 (create_variable_info_for): Likewise.
2829 (find_what_var_points_to): Remove dead code.
2830 (init_base_vars): Simplify.
2831 (compute_points_to_sets): Adjust.
2832
731d1ca3 28332009-06-22 Adam Nemet <anemet@caviumnetworks.com>
2834
2835 * combine.c (try_combine): Dump information about the insns we're
2836 combining.
2837
af1b1eb5 28382009-06-22 Adam Nemet <anemet@caviumnetworks.com>
2839
2840 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
2841 check when calling force_to_mode on TRUNCATE's operand.
2842
d6cf890d 28432009-06-22 Ian Lance Taylor <iant@google.com>
2844
70a23968 2845 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
d6cf890d 2846
02cfc9c9 28472009-06-22 Steven Bosscher <steven@gcc.gnu.org>
2848
2849 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
2850
9ffe1a0b 28512009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2852
2853 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
2854 override library linkage flags such as -static-libgcc or
2855 -shared-libgcc.
2856
c74a692b 28572009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2858
2859 * config/m68k/m68k-devices.def: Add line for MCF5221x.
2860
b91bd472 28612009-06-22 Ian Lance Taylor <iant@google.com>
2862
2863 * config/linux.opt: Put mglibc ahead of muclibc.
2864
2865 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
2866 for duplicate decls.
2867
19b30c2a 28682009-06-22 Matthias Klose <doko@ubuntu.com>
2869
2870 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
2871
61a9d3ca 28722009-06-22 Steven Bosscher <steven@gcc.gnu.org>
2873
2874 PR objc/28050
2875 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
2876 instead of NULL if a parser error occurs.
2877
d87ccabd 28782009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2879
2880 * dwarf2out.c (dwarf2_debug_hooks): Initialize
2881 non-DWARF2_DEBUGGING_INFO version.
2882
13dc7657 28832009-06-22 Kai Tietz <kai.tietz@onevision.com>
2884
82a3cc73 2885 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
2886 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2887
2888 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
13dc7657 2889 (LIBGCC2_TF_CEXT): Define.
2890 (TF_SIZE): Define.
2891
e8bd8f68 28922009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2893
2894 PR target/40463
2895 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
2896
06e0f8b2 28972009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2898
82a3cc73 2899 * config/arm/arm.c (arm_override_options): Disable
2900 -mcaller-super-interworking and -mcallee-super-interworking.
2901 * doc/invoke.texi (ARM Options): Document this.
06e0f8b2 2902
110eae03 29032009-06-22 Nathan Sidwell <nathan@codesourcery.com>
2904
2905 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
2906 * config/arm/constraints.md (j): New constraint for movw operands.
2907 (N): Remove thumb2 meaning.
2908 * config/arm/arm.md (*arm_movw): Delete.
2909 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
2910 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
2911 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
2912
ec91c4af 29132009-06-22 Martin Jambor <mjambor@suse.cz>
2914
2915 PR tree-optimization/40492
2916 * tree-sra.c (sra_modify_assign): Pass zero offsets to
2917 build_ref_for_offset.
2918
971ba038 29192009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
2920
2921 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
2922 JUMP_TABLE_DATA_P predicates where applicable.
2923 * auto-inc-dec.c: Ditto.
2924 * builtins.c: Ditto.
2925 * caller-save.c: Ditto.
2926 * calls.c: Ditto.
2927 * cfgcleanup.c: Ditto.
2928 * cfglayout.c: Ditto.
2929 * cfgrtl.c: Ditto.
2930 * combine.c: Ditto.
2931 * combine-stack-adj.c: Ditto.
2932 * cse.c: Ditto.
2933 * cselib.c: Ditto.
2934 * dbxout.c: Ditto.
2935 * df-scan.c: Ditto.
2936 * dse.c: Ditto.
2937 * dwarf2asm.c: Ditto.
2938 * dwarf2out.c: Ditto.
2939 * emit-rtl.c: Ditto.
2940 * except.c: Ditto.
2941 * explow.c: Ditto.
2942 * expmed.c: Ditto.
2943 * expr.c: Ditto.
2944 * final.c: Ditto.
2945 * function.c: Ditto.
2946 * fwprop.c: Ditto.
2947 * gcse.c: Ditto.
2948 * genpreds.c: Ditto.
2949 * genrecog.c: Ditto.
2950 * ifcvt.c: Ditto.
2951 * ira-costs.c: Ditto.
2952 * ira-lives.c: Ditto.
2953 * jump.c: Ditto.
2954 * loop-iv.c: Ditto.
2955 * lower-subreg.c: Ditto.
2956 * modulo-sched.c: Ditto.
2957 * optabs.c: Ditto.
2958 * postreload.c: Ditto.
2959 * print-rtl.c: Ditto.
2960 * recog.c: Ditto.
2961 * reginfo.c: Ditto.
2962 * regmove.c: Ditto.
2963 * reload1.c: Ditto.
2964 * reload.c: Ditto.
2965 * reorg.c: Ditto.
2966 * rtlanal.c: Ditto.
2967 * rtl.c: Ditto.
2968 * sched-vis.c: Ditto.
2969 * sdbout.c: Ditto.
2970 * sel-sched-ir.c: Ditto.
2971 * simplify-rtx.c: Ditto.
2972 * targhooks.c: Ditto.
2973 * var-tracking.c: Ditto.
2974 * vmsdbgout.c: Ditto.
2975
74f3a0fa 29762009-06-22 Matthias Klose <doko@ubuntu.com>
2977
2978 * Makefile.in (install-plugin): Always use DESTDIR.
2979
1b448af3 29802009-06-22 Olivier Hainque <hainque@adacore.com>
2981
2982 * config/pa/pa.c (output_call): Don't optimize post call jumps
2983 into return address adjustments if the call may throw.
2984
e6ac8414 29852009-06-21 Richard Earnshaw <rearnsha@arm.com>
2986
2987 * arm.c (thumb1_output_casesi): New function.
2988 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
2989 optimizing for size or PIC.
2990 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
2991 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
2992 (casesi): Handle Thumb-1 when optimizing for size or PIC.
2993 (thumb1_casesi_internal_pic): New expand rule.
2994 (thumb1_casesi_dispatch): New pattern.
2995 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
2996 thumb-1 mode.
2997 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
2998 in the text seciton when PIC or optimizing for size.
2999 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
3000 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
3001 preservation properties of code.
3002 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
3003 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
3004 (__gnu_thumb1_case_si): New function.
3005 * t-arm (LIB1ASMSRC): Define here.
3006 (LIB1ASMFUNCS): Add some common functions.
3007 * t-arm-elf (LIB1ASMSRC): Delete.
3008 (LIB1ASMFUNCS): Append to existing set.
3009 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3010 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3011 * t-symbian (LIB1ASMFUNCS): Likewise.
3012 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3013 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3014
a974c7bc 30152009-06-21 Richard Guenther <rguenther@suse.de>
3016
3017 PR tree-optimization/38729
3018 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
3019 to loops with a single exit if -fno-expensive-optimizations.
3020
a8f6ad2b 30212009-06-21 Jakub Jelinek <jakub@redhat.com>
3022
3023 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
3024 (dataflow_set): Change vars type from htab_t to shared_hash.
3025 (shared_hash_pool, empty_shared_hash): New variables.
3026 (vars_clear): Removed.
3027 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
3028 shared_hash_find_slot_unshare, shared_hash_find_slot,
3029 shared_hash_find_slot_noinsert, shared_hash_find): New
3030 static inlines.
3031 (shared_hash_unshare, shared_hash_destroy): New functions.
3032 (unshare_variable): Unshare set->vars if shared, use
3033 shared_hash_htab.
3034 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
3035 (get_init_value, find_src_set_src, dump_dataflow_set,
3036 clobber_variable_part, emit_notes_for_differences): Use
3037 shared_hash_htab.
3038 (dataflow_set_init): Remove second argument, set vars to
3039 empty_shared_hash instead of creating a new htab.
3040 (dataflow_set_clear): Call shared_hash_destroy and set vars
3041 to empty_shared_hash instead of calling vars_clear.
3042 (dataflow_set_copy): Don't call vars_copy, instead just share
3043 the src htab with dst.
3044 (variable_union): Use shared_hash_*, use initially NO_INSERT
3045 lookup if set->vars is shared. Don't keep slot cleared before
3046 calling unshare_variable. Unshare set->vars if needed.
3047 Even ->refcount == 1 vars must be unshared if set->vars is shared
3048 and var needs to be modified.
3049 (variable_canonicalize): New function.
3050 (dataflow_set_union): If dst->vars is empty, just share src->vars
3051 with dst->vars and traverse with variable_canonicalize to canonicalize
3052 and unshare what is needed.
3053 (dataflow_set_different): If old_set and new_set use the same shared
3054 htab, they aren't different. If number of htab elements is different,
3055 htabs are different. Use shared_hash_*.
3056 (dataflow_set_destroy): Call shared_hash_destroy instead of
3057 htab_delete.
3058 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
3059 second argument to dataflow_set_init.
3060 (vt_initialize): Likewise. Initialize shared_hash_pool and
3061 empty_shared_hash, move bb in/out initialization afterwards.
3062 Use variable_htab_free instead of NULL as changed_variables del hook.
3063 (variable_was_changed): Change type of second argument to pointer to
3064 dataflow_set. When inserting var into changed_variables, bump
3065 refcount. Unshare set->vars if set is shared htab and slot needs to
3066 be cleared.
3067 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
3068 lookup if set->vars is shared. Unshare set->vars if needed.
3069 Even ->refcount == 1 vars must be unshared if set->vars is shared
3070 and var needs to be modified. Adjust variable_was_changed caller.
3071 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
3072 vars must be unshared if set->vars is shared and var needs to be
3073 modified. Adjust variable_was_changed caller.
3074 (emit_note_insn_var_location): Don't pool_free var.
3075 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
3076 instead of 1.
3077 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
3078 free_alloc_pool on shared_hash_pool.
3079
2eed1d69 30802009-06-20 Anthony Green <green@moxielogic.com>
3081
3082 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
3083 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
3084
09d9c774 30852009-06-20 Richard Guenther <rguenther@suse.de>
3086
3087 * tree-ssa-structalias.c (find_func_aliases): For memset use
3088 a constraint from NULL if we memset to zero.
3089 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
3090 we explicitly handle that do not read from memory.
3091 (call_may_clobber_ref_p_1): Properly handle builtins that may
3092 set errno.
3093
c2abd8e4 30942009-06-20 Richard Guenther <rguenther@suse.de>
3095
3096 PR tree-optimization/40495
3097 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
3098 (new_scalar_tmp_constraint_exp): New function.
3099 (process_constraint): Do not create temporary decls.
3100 (process_all_all_constraints): Likewise.
3101 (handle_const_call): Likewise.
3102 (create_function_info_for): Do not set decl.
3103
0a0a59fa 31042009-06-19 Ian Lance Taylor <iant@google.com>
3105
3106 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
3107 (rs6000_attribute_table): Make static; move before use.
3108
01d4d739 31092009-06-19 Eric Botcazou <ebotcazou@adacore.com>
3110
3111 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
3112 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
3113 Propagate the TREE_READONLY flag without overwriting it.
3114 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
3115 Propagate the TREE_READONLY flag onto the result.
3116 (process_call_operands): Move around. Use correct constant value.
3117
e4aeee53 31182009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3119
3120 PR target/40482
70a23968 3121 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
e4aeee53 3122 * config/arm/arm.md: Likewise.
3123
0f32121e 31242009-06-19 Ian Lance Taylor <iant@google.com>
6163a125 3125
3126 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
3127 to GIMPLE_ERROR_MARK.
3128
3129 * c-typeck.c (build_conditional_expr): Add op1_original_type and
70a23968 3130 op2_original_type parameters. Warn about using different enum types.
6163a125 3131 * c-parser.c (c_parser_conditional_expression): Pass original
3132 types to build_conditional_expr.
3133 * c-tree.h (build_conditional_expr): Update declaration.
3134
c451bee6 31352009-06-19 Ian Lance Taylor <iant@google.com>
3136
3137 * config/i386/i386.c (ix86_function_specific_save): Test that
3138 fields match values, rather than testing the values are in a
3139 certain range.
3140
047fdd47 31412009-06-19 Richard Guenther <rguenther@suse.de>
3142
3143 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3144 ADDR_EXPR pointers.
3145 (ptr_derefs_may_alias_p): Likewise.
3146 (ptr_deref_may_alias_ref_p_1): New function.
3147 (ptr_deref_may_alias_ref_p): Likewise.
3148 (ref_maybe_used_by_call_p_1): Handle builtins that are not
3149 covered by looking at the ESCAPED solution.
3150 (call_may_clobber_ref_p_1): Likewise.
3151 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
3152 Handle NULL_TREE offset. Do not produce redundant constraints.
3153 (process_all_all_constraints): New helper function.
3154 (do_structure_copy): Use it.
3155 (handle_lhs_call): Likewise.
3156 (find_func_aliases): Handle some builtins with pointer arguments
3157 and/or return values explicitly.
3158
8e7b72c4 31592009-06-19 Ian Lance Taylor <iant@google.com>
3160
3161 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
3162
d8708296 31632009-06-19 Ian Lance Taylor <iant@google.com>
3164
3165 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
3166
1a7c0ccb 31672009-06-19 Ian Lance Taylor <iant@google.com>
3168
3169 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
3170 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
3171 version.
3172
3173 * c-decl.c (finish_decl): If -Wc++-compat, warn about
3174 uninitialized const.
3175
843bd2fa 31762009-06-19 Ian Lance Taylor <iant@google.com>
3177
3178 * dse.c (struct store_info): Rename bitmap field to bmap. Change
3179 all uses.
3180
3181 * c-decl.c (in_struct, struct_types): Remove.
3182 (struct c_binding): Add in_struct field.
3183 (c_binding_ptr): Define type, along with VEC.
3184 (struct c_struct_parse_info): Define.
3185 (struct_parse_info): New static variable.
3186 (bind): Initialize in_struct field.
3187 (start_struct): Remove enclosing_in_struct and
3188 enclosing_struct_types parameters. Add
3189 enclosing_struct_parse_info parameter. Change all callers. Set
3190 struct_parse_info rather than in_struct and struct_types.
3191 (grokfield): If -Wc++-compat and there is a symbol binding for the
3192 field name, set the in_struct flag and push it on the
3193 struct_parse_info->fields vector.
3194 (warn_cxx_compat_finish_struct): New static function.
3195 (finish_struct): Remove enclosing_in_struct and
3196 enclosing_struct_types parameters. Add
3197 enclosing_struct_parse_info parameter. Change all callers. Don't
3198 set C_TYPE_DEFINED_IN_STRUCT here. Call
3199 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
3200 parameter. Only push on struct_types if warn_cxx_compat.
3201 (finish_enum): Only push on struct_types if warn_cxx_compat.
3202 (declspecs_add_type): Add loc parameter. Change all callers.
3203 Change all error calls to error_at. Pass loc, not input_location,
3204 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
3205 defined in a struct. If -Wc++-compat and parsing a struct, record
3206 that a typedef name was used.
3207 * c-parser.c (c_parser_declspecs): Get location to pass to
3208 declspecs_add_type.
3209 (c_parser_struct_or_union_specifier): Update calls to start_struct
3210 and finish_struct.
3211 * c-tree.h (struct c_struct_parse_info): Declare.
3212 (finish_struct, start_struct): Update declarations.
3213 (declspecs_add_type): Update declaration.
3214
4a76ab2a 32152009-06-19 Ian Lance Taylor <iant@google.com>
3216
3217 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
3218 variable with an anonymous type.
3219
1f853dda 32202009-06-19 Uros Bizjak <ubizjak@gmail.com>
3221
3222 * see.c: Remove for real.
3223
b3154a1f 32242009-06-19 Uros Bizjak <ubizjak@gmail.com>
3225
3226 * optabs.h (enum optab_index): Add new OTI_significand.
3227 (significand_optab): Define corresponding macro.
3228 * optabs.c (init_optabs): Initialize significand_optab.
3229 * genopinit.c (optabs): Implement significand_optab using
3230 significand?f2 patterns.
3231 * builtins.c (expand_builtin_mathfn): Handle
3232 BUILT_IN_SIGNIFICAND{,F,L}.
3233 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
3234 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3235
3236 * config/i386/i386.md (significandxf2, significand<mode>2): New
3237 expanders to implement significandf, significand and significandl
3238 built-ins as inline x87 intrinsics.
3239
b32505d2 32402009-06-18 Anatoly Sokolov <aesok@post.ru>
3241
3242 * config/avr/avr.c (avr_override_options): Remove setting value of
3243 PARAM_INLINE_CALL_COST.
3244
8c1f2562 32452009-06-18 Richard Henderson <rth@redhat.com>
3246
3247 PR 40488
3248 * tree-pass.h (TDF_ASMNAME): New.
3249 * tree-dump.c (dump_options): Add asmname.
3250 * doc/invoke.texi: Document it.
3251
3252 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
3253 (dump_decl_name): ...here.
3254 (dump_function_name): New flags arg; mind TDF_ASMNAME.
3255 (dump_generic_node): Update dump_function_name calls.
3256 (print_call_name): New flags arg; update all dump calls.
3257 * diagnostic.h (print_call_name): Update.
3258 * gimple-pretty-print.c (dump_gimple_call): Update.
3259
4b85d273 32602009-06-18 H.J. Lu <hongjiu.lu@intel.com>
3261
3262 PR target/40470
3263 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
3264
8e6de413 32652009-06-18 Diego Novillo <dnovillo@google.com>
3266
3267 * doc/plugins.texi: Document plugin_is_GPL_compatible.
3268 * plugin.c (str_license): Declare.
3269 (try_init_one_plugin): Assert that the symbol
3270 'plugin_is_GPL_compatible' exists.
3271
0b99ff3e 32722009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
3273
3274 * see.c: Remove.
3275 * Makefile.in (OBJS-common): Remove see.o.
3276 (see.o): Remove.
3277 * common.opt (fsee): Mark as preserved for backward compatibility.
3278 * opts.c (common_handle_option): Add OPT_fsee to the backward
3279 compatibility section.
3280 * passes.c (init_optimization_passes, pass_see): Remove pass.
3281 * timevar.def (TV_SEE): Remove.
3282 * tree-pass.h (pass_see): Remove declaration.
3283 * doc/invoke.texi (-fsee): Remove documentation.
0b99ff3e 3284
33c3560d 32852009-06-18 Martin Jambor <mjambor@suse.cz>
3286
3287 * tree-sra.c: Include statistics.h
3288 (sra_stats): New variable.
3289 (sra_initialize): Clear sra_stats.
3290 (create_access_replacement): Increment sra_stats.replacements.
3291 (get_access_replacement): Do not return twice.
3292 (analyze_all_variable_accesses): Increment statistics counter by the
3293 number of scalarized aggregates.
3294 (generate_subtree_copies): Increment sra_stats.subtree_copies.
3295 (sra_modify_expr): Increment sra_stats.exprs.
3296 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
3297 (sra_modify_assign): Increment sra_stats.exprs,
3298 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
3299 (perform_intra_sra): Update statistics counters.
3300 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
3301
546af3f3 33022009-06-18 Sandra Loosemore <sandra@codesourcery.com>
3303
3304 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
3305 (arm_scalar_mode_supported_p): New function.
3306
42746368 33072009-06-18 Paul Brook <paul@codesourcery.com>
3308 Sandra Loosemore <sandra@codesourcery.com>
3309
3310 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
3311 (__extendhfsf2, __truncsfhf2): Define.
3312 * config/arm/fp16.c: New file.
3313 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
3314 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
3315
9b8516be 33162009-06-18 Sandra Loosemore <sandra@codesourcery.com>
3317
3318 * doc/extend.texi (Half-Precision): New section.
3319 * doc/invoke.texi (Option Summary): List -mfp16-format.
3320 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
3321 * config/arm/arm.opt (mfp16-format=): New.
3322 * config/arm/arm.c: Include intl.h.
3323 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
3324 (TARGET_INVALID_RETURN_TYPE): Redefine.
3325 (TARGET_PROMOTED_TYPE): Redefine.
3326 (TARGET_CONVERT_TO_TYPE): Redefine.
3327 (arm_fp16_format): Define.
3328 (all_fpus): Add entry for neon-fp16.
3329 (fp_model_for_fpu): Likewise.
3330 (struct fp16_format): Declare.
3331 (all_fp16_formats): Define.
3332 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
3333 functions.
3334 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
3335 and no ldrh.
3336 (arm_legitimate_index_p): Treat HFmode like HImode.
3337 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
3338 (coproc_secondary_reload_class): Special-case HFmode.
3339 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
3340 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
3341 (arm_init_fp16_builtins): New.
3342 (arm_init_builtins): Call it.
3343 (arm_invalid_parameter_type): New.
3344 (arm_invalid_return_type): New.
3345 (arm_promoted_type): New.
3346 (arm_convert_to_type).
3347 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
3348 format.
3349 (arm_emit_fp16_const): New function.
3350 (arm_mangle_type): Mangle __fp16 as "Dh".
3351 * config/arm/arm.h (TARGET_VFPD32): Make it know about
3352 FPUTYPE_NEON_FP16.
3353 (TARGET_NEON_FP16): New.
3354 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
3355 (enum fputype): Add FPUTYPE_NEON_FP16.
3356 (enum arm_fp16_format_type): Declare.
3357 (arm_fp16_format): Declare.
3358 (LARGEST_EXPONENT_IS_NORMAL): Define.
3359 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
3360 * config/arm/arm-modes.def (HFmode): Define.
3361 * config/arm/vfp.md: (*movhf_vfp): New.
3362 (extendhfsf2): New.
3363 (truncsfhf2): New.
3364 * config/arm/arm.md: (fpu): Add neon_fp16.
3365 (floatsihf2, floatdihf2): New.
3366 (fix_trunchfsi2, fix_trunchfdi2): New.
3367 (truncdfhf2): New.
3368 (extendhfdf2): New.
3369 (movhf): New.
3370 (*arm32_movhf): New.
3371 (*thumb1_movhf): New.
3372 (consttable_2): Add check for HFmode constants.
3373 (consttable_4): Handle HFmode constants.
3374
ab60f474 33752009-06-18 Uros Bizjak <ubizjak@gmail.com>
3376
3377 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
3378
71a0b254 33792009-06-17 Olivier Hainque <hainque@adacore.com>
3380
3381 * collect2.c (main): Use CONST_CAST2 to perform char ** to
3382 const char ** conversion in AIX specific section.
3383
c119b8ad 33842009-06-17 H.J. Lu <hongjiu.lu@intel.com>
3385
3386 * config/i386/i386.c (ix86_special_builtin_type): Remove
3387 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
3388 (bdesc_special_args): Updated.
3389 (ix86_init_mmx_sse_builtins): Likewise.
3390 (ix86_expand_special_args_builtin): Likewise.
3391
7585370f 33922009-06-17 Richard Henderson <rth@redhat.com>
3393
3394 * tree-pretty-print.c (maybe_dump_asm_name): New.
3395 (dump_decl_name): Use it.
3396 (PRINT_FUNCTION_NAME): Merge into...
3397 (dump_function_name): ... here. Use maybe_dump_asm_name.
3398
1488fe24 33992009-06-17 Cary Coutant <ccoutant@google.com>
3400
3401 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
3402 Change caller.
3403 * debug.c (struct gcc_debug_hooks): Change placeholder for
3404 source_line hook.
3405 (debug_nothing_int_charstar_int): Replaced by...
3406 (debug_nothing_int_charstar_int_bool): ...this.
3407 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
3408 source_line prototype.
3409 (debug_nothing_int_charstar_int): Replaced by...
3410 (debug_nothing_int_charstar_int_bool): ...this.
3411 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
3412 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
3413 Output is_stmt operand when necessary.
cc85e995 3414 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1488fe24 3415 (notice_source_line): Add is_stmt parameter.
3416 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
3417 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
3418 Change callers.
3419 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
3420 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
3421
584511c1 34222009-06-17 Ian Lance Taylor <iant@google.com>
3423
3424 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
3425 Change all uses.
3426 (struct store_by_pieces_d): Rename from store_by_pieces. Change
3427 call uses.
3428
98112881 34292009-06-17 Adam Nemet <anemet@caviumnetworks.com>
3430
3431 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
3432 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
3433 tree_strip_sign_nop_conversions and
3434 tree_ssa_strip_useless_type_conversions rather than stripping
3435 the operations here.
3436 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
3437 Declare them.
3438 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
3439 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
3440 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
3441 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
3442 functions.
3443
40cbc433 34442009-06-17 Michael Eager <eager@eagercon.com>
3445
c6aaf951 3446 * config/rs6000/constraints.md (register_constraint "d"): New.
3447 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
3448 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
3449 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
3450 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
3451 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
3452 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
3453 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
3454 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
40cbc433 3455 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
3456 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c6aaf951 3457 __fctiwz): Same.
3458 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
40cbc433 3459 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
3460 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
3461 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c6aaf951 3462 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
3463 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
3464 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
3465 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
3466 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
3467 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
3468 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
3469 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
3470 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
40cbc433 3471 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
3472
c5bafa96 34732009-06-16 Ian Lance Taylor <iant@google.com>
3474
3475 * profile.c (total_num_never_executed): Don't define.
3476 (compute_branch_probabilities): Don't count or print
3477 num_never_executed.
3478 (init_branch_prob): Don't set total_num_never_executed.
3479 (end_branch_prob): Don't print total_num_never_executed.
3480
326fb3fd 34812009-06-17 David Daney <ddaney@caviumnetworks.com>
3482
c6aaf951 3483 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
326fb3fd 3484
bfe6deb6 34852009-06-17 David Edelsohn <edelsohn@gnu.org>
3486
3487 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
3488 (nabstd2_fpr): Same.
3489
aa7bb50e 34902009-06-17 Steve Ellcey <sje@cup.hp.com>
3491
3492 * expr.c (expand_assignment): Change complex type check.
3493
d4fcd9bc 34942009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
3495
3496 * doc/plugins.texi (Building GCC plugins): Added new section.
3497
019c559b 34982009-06-17 Ian Lance Taylor <iant@google.com>
3499
3500 * c-pch.c (get_ident): Don't set size of templ array.
3501 (pch_init): Don't set size of partial_pch array.
3502
3503 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
3504 string constant to intialize an array whose size is the length of
3505 the string.
3506
c7e30df8 35072009-06-17 Richard Guenther <rguenther@suse.de>
3508
3509 PR tree-optimization/40389
3510 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
3511 to addressable types.
3512 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
3513
0f0057aa 35142009-06-17 Richard Guenther <rguenther@suse.de>
3515
3516 PR middle-end/40460
3517 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
3518 if there is no evolution of left in the loop bail out.
3519 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
3520 chrec_fold_multiply.
3521
b1e84b78 35222009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
3523 Janis Johnson <janis187@us.ibm.com>
3524
3525 PR target/39254
3526 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
3527 for the symbol ref of a constant that is the source of a move
3528 - nor for any other not-obvious-label-ref constants.
3529
d5fa1515 35302009-06-16 Olatunji Ruwase <tjruwase@google.com>
3531
c5bafa96 3532 * plugin.c (position_pass): Skip newly inserted pass during list
d5fa1515 3533 traversal to avoid repeated insertion.
3534
3a61a8b9 35352009-06-16 Ian Lance Taylor <iant@google.com>
3536
3537 * vec.h (VEC_stack_alloc): Define different version if
3538 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
3539 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
3540 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
3541 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
3542
b2db647e 35432009-06-16 H.J. Lu <hongjiu.lu@intel.com>
3544
3545 * config.gcc (extra_headers): Add ia32intrin.h for x86.
3546
3547 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
3548 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
3549 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
3550 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
3551 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
3552 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c6aaf951 3553 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
b2db647e 3554 (bdesc_special_args): Add __builtin_ia32_rdtsc and
3555 __builtin_ia32_rdtscp.
3556 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
3557 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c6aaf951 3558 and __builtin_ia32_rorhi.
b2db647e 3559 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
3560 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c6aaf951 3561 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
b2db647e 3562 (ix86_expand_args_builtin): Likewise.
3563 (ix86_expand_special_args_builtin): Likewise.
3564
3565 * config/i386/i386.md (UNSPECV_RDTSCP): New.
3566 (UNSPECV_RDTSC): Likewise.
3567 (UNSPECV_RDPMC): Likewise.
c6aaf951 3568 (*bsr): Renamed to ...
b2db647e 3569 (bsr): This
c6aaf951 3570 (*bsr_rex64): Renamed to ...
b2db647e 3571 (bsr_rex64): This.
3572 (rdpmc): New.
3573 (*rdpmc): Likewise.
3574 (*rdpmc_rex64): Likewise.
3575 (rdtsc): Likewise.
3576 (*rdtsc): Likewise.
3577 (*rdtsc_rex64): Likewise.
3578 (rdtscp): Likewise.
3579 (*rdtscp): Likewise.
3580 (*rdtscp_rex64): Likewise.
3581
3582 * config/i386/ia32intrin.h: New.
3583
3584 * config/i386/x86intrin.h: Include <ia32intrin.h>.
3585
8efd2ddb 35862009-06-16 Ian Lance Taylor <iant@google.com>
3587
3588 * ira-build.c (copy_info_to_removed_store_destinations):
3589 Initialize parent_a.
3590
b99f3c92 35912009-06-16 Ian Lance Taylor <iant@google.com>
3592
3593 * c-decl.c (grokdeclarator): Change size_varies to bool.
3594
40b15760 35952009-06-16 Ian Lance Taylor <iant@google.com>
3596
3597 * sel-sched.c: Make forward declarations of move_op_hooks and
3598 fur_hooks explicitly extern.
3599
8dc2823a 36002009-06-16 Ian Lance Taylor <iant@google.com>
3601
c6aaf951 3602 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
8dc2823a 3603 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
3604
10a15ee4 36052009-06-16 Ian Lance Taylor <iant@google.com>
3606
3607 * resource.c (mark_referenced_resources): Change
3608 include_delayed_effects parameter to bool. Change all callers.
3609 (mark_end_of_function_resources): Likewise.
3610 * reorg.c (insn_references_resource_p): Likewise.
3611 (insn_sets_resource_p): Likewise.
3612 * resource.h (mark_referenced_resources): Update declaration.
3613 (mark_end_of_function_resources): Update declaration.
3614
c7e5ac45 36152009-06-16 David Edelsohn <edelsohn@gnu.org>
3616
3617 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
3618
bbe0f5ef 36192009-06-16 David Edelsohn <edelsohn@gnu.org>
3620
3621 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
3622 GCC can bootstrap on AIX with GNU Binutils 2.20.
3623
957d66f3 36242009-06-16 Ian Lance Taylor <iant@google.com>
3625
3626 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
3627
4345dfaa 36282009-06-16 Ian Lance Taylor <iant@google.com>
3629
3630 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
3631 inline, not extern inline.
3632 (exact_log2): Likewise.
3633 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
3634 test CLZ_HWI.
3635 (exact_log2): Likewise, but don't test CTZ_HWI.
3636
c623bf22 36372009-06-16 Ian Lance Taylor <iant@google.com>
3638
3639 * bitmap.c (bitmap_clear): Don't declare as inline.
3640 * gimple.c (gimplify_assign): Likewise.
3641 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
3642 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
3643 (sched_scan_info): Remove duplicate definition.
3644
48d94ede 36452009-06-16 Ian Lance Taylor <iant@google.com>
3646
3647 * c-common.c (skip_evaluation): Don't define.
3648 (c_inhibit_evaluation_warnings): Define global variable.
3649 (overflow_warning): Check c_inhibit_evaluation_warnings rather
3650 than skip_evaluation.
3651 (convert_and_check, warn_for_div_by_zero): Likewise.
3652 * c-common.h (skip_evaluation): Don't declare.
3653 (c_inhibit_evaluation_warnings): Declare.
3654 * c-parser.c (c_parser_typeof_specifier): Set
3655 c_inhibit_evaluation_warnings rather than skip_evaluation.
3656 (c_parser_conditional_expression): Likewise.
3657 (c_parser_binary_expression): Likewise.
3658 (c_parser_sizeof_expression): Likewise.
3659 (c_parser_alignof_expression): Likewise.
3660 * c-typeck.c (build_indirect_ref): Check
3661 c_inhibit_evaluation_warnings rather than skip_evaluation.
3662 (build_conditional_expr, build_binary_op): Likewise.
3663
e8146f09 36642009-06-16 Richard Guenther <rguenther@suse.de>
3665
3666 * tree-ssa-alias.c (is_escape_site): Remove.
3667 * tree-ssa-alias.h (enum escape_type): Remove.
3668 (is_escape_site): Likewise.
3669 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
3670 via casts and asms without deferring to is_escape_site.
3671
60a132a9 36722009-06-16 Jakub Jelinek <jakub@redhat.com>
3673
3674 PR middle-end/40446
3675 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
3676 use gen_lowpart if op0 has complex mode.
3677
c174c650 36782009-06-16 Richard Guenther <rguenther@suse.de>
3679
3680 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
3681 variables add them to ESCAPED.
c6aaf951 3682 (find_func_aliases): Do not make all indirectly stored values escaped.
c174c650 3683
929bec98 36842009-06-16 Rafael Avila de Espindola <espindola@google.com>
3685
3686 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
3687 make_decl_one_only.
3688
ea8ae162 36892009-06-16 Martin Jambor <mjambor@suse.cz>
3690
3691 PR tree-optimization/40432
3692 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
3693 check whether we need to force gimple register operand.
3694
f18b05a3 36952009-06-16 Martin Jambor <mjambor@suse.cz>
3696
3697 PR tree-optimization/40413
3698 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
3699 build_ref_for_offset.
3700 (propagate_subacesses_accross_link): Fix a typo in a comment.
3701
ade2ac53 37022009-06-16 Ira Rosen <irar@il.ibm.com>
3703
3704 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
3705 with additional parameter.
c6aaf951 3706 * tree-vectorizer.h (enum vect_def_type): Add new value
ade2ac53 3707 vect_nested_cycle.
3708 (enum vect_relevant): Add comments.
3709 (vect_is_simple_reduction): Add new argument.
3710 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
3711 Detect nested cycles.
3712 (vect_is_simple_reduction): Update documentation, add an argument to
3713 distinguish inner-loop reduction from nested cycle, detect nested
3714 cycles, fix printings and indentation, don't swap operands in case
3715 of nested cycle.
3716 (get_initial_def_for_reduction): Handle subtraction.
3717 (vect_create_epilog_for_reduction): Add new argument to specify
3718 reduction variable.
3719 (vect_finalize_reduction): Handle subtraction, fix comments.
c6aaf951 3720 (vectorizable_reduction): Handle nested cycles. In case of nested
3721 cycle keep track of the reduction variable position. Call
7c1037d2 3722 vect_is_simple_reduction with additional parameter. Use original
ade2ac53 3723 statement code in reduction epilogue for nested cycle. Call
3724 vect_create_epilog_for_reduction with additional parameter.
c6aaf951 3725 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
3726 inner-loop vectorization.
ade2ac53 3727 (vect_recog_widen_sum_pattern): Likewise.
3728 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
3729 and reductions.
3730 (vect_mark_stmts_to_be_vectorized): Likewise.
3731 (vect_get_vec_def_for_operand): Handle nested cycles.
3732
fb35baeb 37332009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3734
3735 * doc/invoke.texi (Debugging Options): Fix option index entries
3736 for -fdump-statistics, -frandom-seed add entries for
3737 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
3738 (FRV Options): Fix entries for -mTLS, -mtls.
3739 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
3740 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
3741 (M68hc1x Options): Fix @itemx for -mnominmax.
3742 (MCore Options): Fix entry for -mno-lsim.
3743 (MMIX Options): Fix entry for -mabi=mmixware.
3744 (PDP-11 Options): Fix entry for -mbcopy-builtin.
3745
9dc75945 37462009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
3747
3748 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
3749 Mention the plugin mode of gengtype.
c6aaf951 3750 * doc/gty.texi (Source Files Containing Type Information): Likewise.
9dc75945 3751 * gengtype.c: Updated copyright.
3752 (plugin_files, nb_plugin_files) Added new static variables.
3753 (measure_input_list) Care about plugin_files.
3754 (write_rtx_next): Added early return in plugin mode.
3755 (create_file): Updated copyright year in generated file. Added
3756 asserts.
3757 (oprintf): Added early return if NULL outf.
3758 (get_output_file_with_visibility): Care of plugin_files.
3759 (get_output_file_name): May return null.
3760 (write_local): Added early return.
3761 (put_mangled_filename): Ditto.
3762 (finish_root_table): Added check for base_files.
3763 (write_roots): Care about null when plugins.
3764 (main): Added plugin mode.
3765
f805d53d 37662009-06-15 Ian Lance Taylor <iant@google.com>
3767
c6aaf951 3768 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
f805d53d 3769 * gcov.c (read_count_file): Add braces around variables declared
3770 before label.
3771
3772 * c.opt (Wjump-misses-init): New warning.
3773 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
3774 -Wall and -Wc++-compat if not already set.
3775 (c_common_post_options): Clear warn_jump_misses_init if it was not
3776 set.
3777 * c-decl.c (struct c_binding): Change type field to a union with
3778 new label field. Make it the first field in the struct. Update
3779 references to type to use u.type instead.
3780 (struct c_spot_bindings): Define.
3781 (struct c_goto_bindings): Define.
3782 (c_goto_bindings_p): Define, along with VECs.
3783 (struct c_label_vars): Define.
3784 (struct c_scope): Add has_label_bindings field.
3785 (bind_label, set_spot_bindings): New static functions.
3786 (decl_jump_unsafe, update_spot_bindings): New static functions.
3787 (update_label_decls): New static function.
3788 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
3789 Update binding u.label field to shadowed field.
3790 (c_binding_start_stmt_expr): New function.
3791 (c_binding_end_stmt_expr): New function.
3792 (pushdecl): Don't call c_begin_vm_scope.
3793 (make_label): Add defining and p_label_vars parameters. Change
3794 all callers.
3795 (lookup_label): Correct test for whether a label has not yet been
3796 defined. Call bind_label rather than bind.
3797 (warn_about_goto): New static function.
3798 (lookup_label_for_goto): New function.
3799 (declare_label): Call bind_label rather than bind.
3800 (check_earlier_gotos): New static function.
3801 (define_label): Don't give errors about jumping into statement
3802 expressions or scopes of variably modified types. Call
3803 set_spot_bindings and check_earlier_gotos. Call bind_label
3804 instead of bind. Don't set label_context_stack_se or
3805 label_context_stack_vm.
3806 (c_get_switch_bindings): New function.
3807 (c_release_switch_bindings): New function.
3808 (c_check_switch_jump_warnings): New function.
3809 (start_function): Don't set label_context_stack_se or
3810 label_context_stack_vm.
3811 (finish_function): Likewise.
3812 * c-typeck.c (label_context_stack_se): Don't define.
3813 (label_context_stack_vm): Don't define.
3814 (c_finish_goto_label): Call lookup_label_for_goto rather than
3815 lookup_label. Don't give errors about jumping into a statement
3816 expression or the scope of a variably modified type. Don't set
3817 label_context_stack_se or label_context_stack_vm.
3818 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
3819 fields. Add bindings field.
3820 (c_start_case): Don't set deleted fields. Set bindings field.
3821 (do_case): Rework order of tests. Don't check blocked_stmt_expr
3822 or blocked_vm. Call c_check_switch_jump_warnings.
3823 (c_finish_case): Don't test blocked_stmt_expr field. Call
3824 c_release_switch_bindings.
3825 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
3826 c_switch_stack. Don't walk label_context_stack_se labels. Don't
3827 set label_context_stack_se. Call c_bindings_start_stmt_expr.
3828 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
3829 c_switch_stack. Don't walk label_context_stack_se labels. Don't
3830 set label_context_stack_se. Call c_bindings_end_stmt_expr.
3831 (c_begin_vm_scope, c_end_vm_scope): Don't define.
3832 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
3833 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
3834 (C_DECL_UNJUMPABLE_VM): Don't define.
3835 (C_DECL_UNDEFINABLE_VM): Don't define.
3836 (struct c_label_list): Don't define.
3837 (struct c_label_context_se): Don't define.
3838 (struct c_label_context_vm): Don't define.
3839 (struct c_spot_bindings): Declare.
3840 (c_bindings_start_stmt_expr): Declare.
3841 (c_bindings_end_stmt_expr): Declare.
3842 (lookup_label_for_goto): Declare.
3843 (c_get_switch_bindings, c_release_switch_bindings): Declare.
3844 (c_check_switch_jump_warnings): Declare.
3845 (label_context_stack_se, label_context_stack_vm): Don't declare.
3846 (c_finish_goto_label): Update declaration.
3847 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
3848 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
3849 (Warning Options): Document -Wjump-misses-init.
3850
56b5c963 38512009-06-15 Jakub Jelinek <jakub@redhat.com>
3852
3853 * tree-object-size.c (addr_object_size): Fix a pasto in the last
3854 change.
3855
02527fdb 38562009-06-15 Rafael Avila de Espindola <espindola@google.com>
3857
3858 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
3859
0b35068b 38602009-06-15 Aldy Hernandez <aldyh@redhat.com>
3861
3862 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
3863
38642009-06-15 Aldy Hernandez <aldyh@redhat.com>
3865
3866 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
3867
ecd88073 38682009-06-15 Rafael Avila de Espindola <espindola@google.com>
3869
3870 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
3871 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
3872 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
3873 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c6aaf951 3874 * dwarf2asm.c (dw2_force_const_mem): Update call to
3875 make_decl_one_only.
ecd88073 3876 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
3877 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
3878 * langhooks.c (lhd_comdat_group): Remove.
3879 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
3880 * tree.h (DECL_COMDAT_GROUP): New.
3881 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
3882 (tree_decl_with_vis): Add comdat_group. Remove one_only.
3883 (make_decl_one_only): Change signature.
3884 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
3885 make_decl_one_only.
3886 (make_decl_one_only): Change signature.
3887 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
3888
c6f3d74f 38892009-06-15 Richard Guenther <rguenther@suse.de>
3890
3891 PR middle-end/40439
3892 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
3893
92b84fc3 38942009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3895
3896 * tree-ssa-math-opts.c: Remove extra divide.
3897
497042b8 38982009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3899
3900 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
3901
84cc784c 39022009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3903
3904 * passes.c: Add bswap pass.
3905 * tree-pass.h: Add pass_optimize_bswap declaration.
3906 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
3907 Include rtl.h, expr.h and optabs.h for optab_handler check.
3908 (struct symbolic_number, pass_optimize_bswap): New definition.
3909 (do_shift_rotate, verify_symbolic_number_p): New functions.
3910 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
3911 (gate_optimize_bswap): New function.
3912 * tree.c (widest_int_cst_value): New function.
3913 * tree.h (widest_int_cst_value): Prototype added.
3914
d9beaaeb 39152009-06-14 Steven Bosscher <steven@gcc.gnu.org>
3916
3917 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
3918 REG_EQUAL/REG_EQUIV notes.
3919
60b9b3ae 39202009-06-14 Richard Guenther <rguenther@suse.de>
3921
3922 PR middle-end/40389
3923 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
3924 has its address taken if NRV was applied and it is addressable.
3925 * tree-ssa-structalias.c (get_constraint_for_address_of): New
3926 function split out from ...
3927 (get_constraint_for_1): ... here.
3928 (handle_rhs_call): Use it to mark the return slot escaped if
3929 it is addressable and NRV was applied.
3930
65edca84 39312009-06-13 Aldy Hernandez <aldyh@redhat.com>
3932
3933 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
3934 Change first argument type to location_t.
3935 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
3936 Do not set input_location.
3937 Use loc instead of input_location throughout.
3938
286fa508 39392009-06-13 Richard Guenther <rguenther@suse.de>
3940
60b9b3ae 3941 PR tree-optimization/40421
286fa508 3942 * tree-predcom.c (should_unroll_loop_p): Remove.
3943 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
3944
052a8489 39452009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
3946
3947 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3948 Add location argument.
3949
54e46243 39502009-06-13 Aldy Hernandez <aldyh@redhat.com>
3951
3952 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
3953 build_decl.
3954 * config/s390/s390.c (s390_build_builtin_va_list): Same.
3955 (s390_gimplify_va_arg): Pass location to create_artificial_label.
3956 * config/spu/spu-protos.h: Add location to
3957 spu_resolve_overloaded_builtin.
3958 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
3959 spu_build_builtin_va_list.
3960 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
3961 argument. Pass location to build_function_call_vec.
3962 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
3963 build_decl.
3964 (emit_fpu_switch): Same.
3965 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
3966 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
3967 to build_decl and create_artificial_label.
3968 (xtensa_gimplify_va_arg_expr): Same.
3969 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
3970 (xstormy16_gimplify_va_arg_expr): Same.
3971 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
3972 * config/arm/arm.c (arm_build_builtin_va_list): Same.
3973 * config/mips/mips.c (mips_build_builtin_va_list): Same.
3974 (mips16_build_function_stub): Same.
3975 (mips16_build_call_stub): Same.
3976
0bdb6455 39772009-06-13 Richard Earnshaw <rearnsha@arm.com>
3978
3979 PR target/40327
3980 * arm/constraints.md (Pa, Pb): New constraints.
3981 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
3982 split pattern to deal with them.
3983
a9077cc3 39842009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
3985
3986 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
3987 fix index entry for -Xpreprocessor.
3988
f69f268d 39892009-06-12 Aldy Hernandez <aldyh@redhat.com>
3990
3991 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3992 Add location argument to build_decl call.
3993 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
3994 (rs6000_init_builtins): Same.
3995 (spe_init_builtins): Same.
3996 (rs6000_gimplify_va_arg): Add location argument to
3997 create_artificial_label call.
3998
738c9748 39992009-06-12 Steven Bosscher <steven@gcc.gnu.org>
4000
4001 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
4002 * combine-stack-adj.c (pass_stack_adjustments): Use it.
4003 * Makefile.in: Fix GGC dependency for gcse.o.
4004
e60a6f7b 40052009-06-12 Aldy Hernandez <aldyh@redhat.com>
4006
4007 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
4008 * gimple-pretty-print.c (dump_gimple_stmt): Same.
4009 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
4010 created.
4011 * c-parser.c (c_parser_binary_expression): Use current column while
4012 building binary operations.
4013 * common.opt (fshow-column): Enable by default.
4014 * tree-vrp.c (check_array_ref): Use warning_at.
4015 (check_array_bounds): Use location from call back if expr has no
4016 location.
4017 * tree.h: Add location argument to maybe_fold_*.
4018 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
4019 (maybe_fold_offset_to_array_ref): Add location argument and use it.
4020 (maybe_fold_offset_to_component_ref): Same.
4021 (maybe_fold_offset_to_reference): Same.
4022 (maybe_fold_offset_to_address): Same.
4023 (maybe_fold_stmt_indirect): Same.
4024 (maybe_fold_stmt_addition): Same.
4025 (fold_stmt_r): Pass location to maybe_fold_*.
4026 (fold_gimple_assign): Same.
4027 * c-tree.h: Add location argument to finish_decl,
4028 default_function_array_conversion, store_init_value.
4029 * c-decl.c (define_label): Use error_at.
4030 (c_make_fname_decl): Pass location to finish_decl.
4031 (finish_decl): New location argument.
4032 (build_compound_literal): Pass location to store_init_value.
4033 (grokdeclarator): Pass location to finish_decl.
4034 (grokfield): Same.
4035 * c-typeck.c (array_to_pointer_conversion): New location argument.
4036 (function_to_pointer_conversion): Same.
4037 (default_function_array_conversion): Same.
4038 (parser_build_unary_op): Pass location to overflow_warning.
4039 (parser_build_binary_op): Same. Use warning_at.
4040 (build_unary_op): Pass location to array_to_pointer_conversion.
4041 (build_c_cast): Pass location to digest_init.
4042 (build_modify_expr): New location argument.
4043 (convert_for_assignment): Same.
4044 (store_init_value): Same.
4045 (digest_init): Same.
4046 (output_init_element): Pass location to digest_init and
4047 array_to_pointer_conversion.
4048 (c_finish_return): Pass location to convert_for_assignment.
4049 * gimplify.c (gimplify_conversion): Pass location to
4050 maybe_fold_offset_to_address.
4051 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
4052 to maybe_fold_stmt_addition.
4053 * c-omp.c (c_finish_omp_atomic): Pass new location to
4054 build_modify_expr.
4055 (c_finish_omp_for): Same.
4056 * c-common.c (overflow_warning): New argument.
4057 * c-common.h: New argument to build_modify_expr, overflow_warning.
4058 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
4059 finish_decl.
4060 (c_parser_initializer): Pass location to
4061 default_function_array_conversion.
4062 (c_parser_initelt): Same.
4063 (c_parser_initval): Same.
4064 (c_parser_asm_operands): Same.
4065 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
4066 (c_parser_conditional_expression): Same.
4067 (c_parser_binary_expression): Add location info to stack. Use it.
4068 (c_parser_unary_expression): Pass location to
4069 default_function_array_conversion, parser_build_unary_op,
4070 build_indirect_ref, c_parser_postfix_expression_after_primary.
4071 (c_parser_postfix_expression_after_primary): New location argument.
4072 Use it.
4073 (c_parser_expression_conv): Pass location to
4074 default_function_array_conversion.
4075 (c_parser_expr_list): Same.
4076 (c_parser_omp_atomic): Same.
4077 (c_parser_omp_for_loop): Same.
4078 * c-tree.h: (struct c_declarator): Add comment to id_loc.
4079 (build_array_declarator): New argument.
4080 * c-decl.c (build_array_declarator): Add location argument.
4081 (grokdeclarator): Set id_loc for cdk_array.
4082 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
4083 build_array_declarator.
4084 * tree.c (build_omp_clause): Add location argument.
4085 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
4086 (OMP_CLAUSE_LOCATION): New macro.
4087 (struct tree_omp_clause): Add location field.
4088 (build_omp_clause): Add argument.
4089 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
4090 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
4091 build_omp_clause.
4092 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
4093 (cp_parser_omp_clause_collapse): Same.
4094 (cp_parser_omp_clause_default): Same.
4095 (cp_parser_omp_clause_if): Same.
4096 (cp_parser_omp_clause_nowait): Same.
4097 (cp_parser_omp_clause_num_threads): Same.
4098 (cp_parser_omp_clause_ordered): Same.
4099 (cp_parser_omp_clause_schedule): Same.
4100 (cp_parser_omp_clause_untied): Same.
4101 (cp_parser_omp_for_loop): Same.
4102 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
4103 * c-tree.h (c_start_case): Add location argument.
4104 (c_process_expr_stmt): Same.
4105 (c_finish_goto_*): Same.
4106 * tree-parloops.c (initialize_reductions): Pass location to
4107 build_omp_clause.
4108 (create_parallel_loop): Same.
4109 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
4110 (gfc_trans_omp_reduction_list): Same.
4111 (gfc_trans_omp_clauses): Same.
4112 (gfc_trans_omp_do): Same.
4113 * c-typeck.c (c_finish_goto_label): Same.
4114 (c_finish_goto_ptr): New location argument.
4115 (c_start_case): Same.
4116 (emit_side_effect_warnings): Same.
4117 (c_process_expr_stmt): Same.
4118 (c_finish_stmt_expr): Same.
4119 (c_finish_omp_clauses): Use error_at instead of error.
4120 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
4121 build_omp_clause.
4122 * c-omp.c (c_split_parallel_clauses): New location argument.
4123 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
4124 to build_omp_clause.
4125 (convert_local_reference_stmt): Same.
4126 (convert_gimple_call): Same.
4127 * c-common.h (c_split_parallel_clauses): New argument.
4128 * c-parser.c (c_parser_statement_after_labels): Pass location to
4129 c_finish_goto_label.
4130 (c_parser_switch_statement): Pass location to c_start_case.
4131 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
4132 and c_process_expr_stmt.
4133 (c_parser_omp_variable_list): Add location argument.
c6aaf951 4134 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
e60a6f7b 4135 (c_parser_omp_clause_default): Same.
4136 (c_parser_omp_clause_if): Same.
4137 (c_parser_omp_clause_num_threads): Same.
4138 (-c_parser_omp_clause_ordered): Same.
4139 (c_parser_omp_clause_reduction): Pass location to
4140 c_parser_omp_variable_list.
4141 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
4142 (c_parser_omp_clause_untied): Same.
4143 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c6aaf951 4144 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
e60a6f7b 4145
4146 * c-tree.h (check_for_loop_decls, undeclared_variable,
4147 build_component_ref, build_array_ref, build_external_ref,
4148 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
4149 build_conditional_expr, build_compound_expr, c_cast_expr,
4150 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
4151 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
4152 argument.
4153 * c-semantics.c (build_stmt): Same.
4154 (build_case_label): Same.
4155 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
4156 (undeclared_variable): New argument.
4157 (make_label): Same.
4158 (lookup_label): Pass location on down.
4159 (define_label): Same.
4160 (finish_decl): Same.
4161 (build_compound_literal): Same.
4162 (finish_struct): Same.
4163 (finish_function): Do not set location here.
4164 (check_for_loop_decls): New argument.
4165 * tree.c (save_expr): Set location.
4166 (build_empty_stmt): New argument.
4167 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
4168 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
4169 * builtins.c (gimplify_va_arg_expr): Use locations.
4170 (expand_builtin_sync_operation): Same.
4171 * c-typeck.c (build_component_ref): New argument.
4172 (build_array_ref): Same.
4173 (build_external_ref): Same.
4174 (c_expr_sizeof_expr): Same.
4175 (c_expr_sizeof_type): Same.
4176 (parser_build_unary_op): Same.
4177 (build_conditional_expr): Same.
4178 (build_compound_expr): Pass location on down.
4179 (build_compound_expr): New argument.
4180 (build_c_cast): Same.
4181 (c_cast_expr): Same.
4182 (build_asm_expr): Same.
4183 (c_finish_return): Same.
4184 (c_process_expr_stmt): Pass location on down.
4185 (c_finish_stmt_expr): New argument.
4186 (push_clenaup): Same.
4187 (c_finish_omp_parallel): Same.
4188 (c_finish_omp_task): Same.
4189 * gimplify.c (gimplify_call_expr): Pass location on down.
4190 * c-omp.c (c_finish_omp_master): New argument.
4191 (c_finish_omp_critical): Same.
4192 (c_finish_omp_ordered): Same.
4193 (c_finish_omp_barrier): Same.
4194 (-c_finish_omp_taskwait): Same.
4195 (c_finish_omp_atomic): Same.
4196 (c_finish_omp_flush): Same.
4197 * tree-inline.c (copy_tree_body_r): Pass location on down.
4198 (inline_forbidden_p): Remove use of input_location.
4199 * c-gimplify.c (c_build_bind_expr): New argument.
4200 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
4201 (c_sizeof_or_alignof_type): New argument.
4202 (c_alignof_expr): Same.
4203 (build_va_arg): Same.
4204 (c_add_case_label): Same.
4205 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
4206 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
4207 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
4208 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
4209 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
4210 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
4211 New argument.
4212 * stub-objc.c (objc_build_selector_expr): Same.
4213 (objc_build_throw_stmt): Same.
4214 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
4215 (c_parser_initelt): Same.
4216 (c_parser_compound_statement): Same.
4217 (c_parser_compound_statement_nostart): Same.
4218 (c_parser_label): Same.
4219 (c_parser_statement_after_labels): Same.
4220 (c_parser_if_body): Same.
4221 (c_parser_else_body): Same.
4222 (c_parser_if_statement): Same.
4223 (c_parser_switch_statement): Same.
4224 (c_parser_while_statement): Same.
4225 (c_parser_do_statement): Same.
4226 (c_parser_for_statement): Same.
4227 (c_parser_asm_statement): Same.
4228 (c_parser_conditional_expression): Same.
4229 (c_parser_binary_expression): Same.
4230 (c_parser_cast_expression): Same.
4231 (c_parser_unary_expression): Same.
4232 (c_parser_sizeof_expression): Same.
4233 (c_parser_alignof_expression): Same.
4234 (c_parser_postfix_expression): Same.
4235 (c_parser_expression): Same.
4236 (c_parser_objc_receiver): Same.
4237 (c_parser_omp_variable_list): Same.
4238 (c_parser_omp_structured_block): Same.
4239 (c_parser_omp_atomic): New argument.
4240 (c_parser_omp_barrier): Same.
4241 (c_parser_omp_critical): Same.
4242 (c_parser_omp_flush): Pass location on down.
4243 (c_parser_omp_for_loop): New argument.
4244 (c_parser_omp_for): Same.
4245 (c_parser_omp_master): Same.
4246 (c_parser_omp_ordered): Same.
4247 (c_parser_omp_sections_scope): Same.
4248 (c_parser_omp_sections): Same.
4249 (c_parser_omp_parallel): Same.
4250 (c_parser_omp_single): Same.
4251 (c_parser_omp_task): Same.
4252 (c_parser_omp_taskwait): Pass location on down.
4253 (c_parser_omp_construct): Same.
4254 (c_parser_omp_threadprivate): Same.
4255 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
4256 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
4257 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
4258 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
4259 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
4260 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
4261 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
4262 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
4263 config/i386/i386.c, stmt.c:
4264 Add location argument to the following function definitions and/or
4265 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
4266 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
4267 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
4268 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
4269 do_case, c_finish_bc_stmt, build_compound_literal,
4270 build_function_call.
4271 * c-decl.c (build_compound_literal): Add location argument.
4272 Make all diagnostic calls use location.
4273 (start_struct): Same.
4274 (finish_struct): Same.
4275 (start_enum): Same.
4276 (build_enumerator): Same.
4277 (start_function): Same.
4278 (grokdeclarator): Make all diagnostic calls use location.
4279 (store_parm_decls_oldstyle): Same.
4280 * c-typeck.c (build_function_call): Add location argument.
4281 Make all diagnostic calls use location.
4282 (do_case): Same.
4283 (c_finish_bc_stmt): Same.
4284 * tree-nested.c (get_trampoline_type): Add argument.
4285 Pass location to build_decl.
4286 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
4287 * rtl.h (RTL_LOCATION): New.
4288 * c-common.c (c_add_case_label): Add location argument.
4289 Make all diagnostic calls use location.
4290 * c-common.h: Add location argument to make_fname_decl, do_case,
4291 c_add_case_label, build_function_call, resolve_overloaded_builtin.
4292 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
4293 Set it appropriately for every case. Pass enum_loc to start_enum
4294 call. Pass value_loc first to build_enumerator. Pass enum_loc to
4295 parser_xref_tag.
4296 (c_parser_struct_or_union_specifier): Save location. Use it for
4297 start_struct, finish_struct, and parser_xref_tag.
4298
2a6a6991 42992009-06-12 Ian Lance Taylor <iant@google.com>
4300
c6aaf951 4301 * fold-const.c (fold_unary): Rename local variable and to and_expr.
2a6a6991 4302
4303 * c-opts.c (c_common_handle_option): For -Wc++-compat set
4304 cpp_opts->warn_cxx_operator_names.
4305
380c5f61 43062009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
4307
4308 PR tree-opt/38865
4309 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
4310 is returns NULL and OP is a VCE, look through the VCE.
4311
754a9c6c 43122009-06-12 Ian Lance Taylor <iant@google.com>
4313
4314 PR bootstrap/40430
4315 * collect2.c (main): Use CONST_CAST2 in code inside #if
4316 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
4317
bd9c33a8 43182009-06-12 Joey Ye <joey.ye@intel.com>
4319
4320 PR middle-end/39146
4321 * cfgexpand.c (get_decl_align_unit): Update
4322 max_used_stack_slot_alignment with align instead of
4323 stack_alignment_needed.
4324
4325 * function.c (assign_stack_local_1): Update
4326 max_used_stack_slot_alignment with alignment_in_bits instead
4327 of stack_alignment_needed.
4328 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
4329 here.
4330
e59b3312 43312009-06-12 Jakub Jelinek <jakub@redhat.com>
4332
4333 * dwarf2out.c (last_var_location_insn): New variable.
4334 (dwarf2out_end_epilogue): Clear last_var_location_insn.
4335 (dwarf2out_var_location): Don't record anything after last real
4336 insn. Only change labels if there were any real instructions
4337 in between last note and this one, or if changed sections.
4338
eb0e7e5d 43392009-06-11 Richard Henderson <rth@redhat.com>
4340
bd9c33a8 4341 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
d30e4246 4342 note when storing the frame pointer in a register.
4343 (FRP): Don't redefine to nothing for epilogue.
4344 (alpha_expand_epilogue): Mark register and sp restores.
4345 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
4346
eb0e7e5d 4347 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
4348 when gen_lowpart is needed.
4349
a6f7c039 43502009-06-11 Richard Henderson <rth@redhat.com>
4351
750daa32 4352 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
4353
a6f7c039 4354 * dwarf2out.c (need_data_align_sf_opcode): New.
4355 (div_data_align): Move earlier.
4356 (def_cfa_1, reg_save): Use it.
4357
614b751e 43582009-06-11 H.J. Lu <hongjiu.lu@intel.com>
4359
4360 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
4361 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
4362 (ix86_handle_option): Handle OPT_mcrc32.
4363 (ix86_target_string): Add -mcrc32.
4364 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
4365
4366 * config/i386/i386.h (TARGET_CRC32): New.
4367
c6aaf951 4368 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
614b751e 4369 (sse4_2_crc32di): Likewise.
4370
c6aaf951 4371 * config/i386/i386.opt (mcrc32): New.
614b751e 4372
4373 * doc/invoke.texi: Document -mcrc32.
4374
4a631454 43752009-06-11 Richard Henderson <rth@redhat.com>
4376
614b751e 4377 * common.opt (gdwarf-): Accept a version number.
4a631454 4378 * doc/invoke.texi (gdwarf-): Update docs.
4379 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
4380 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
4381 version level, and record it.
4382
4383 * dwarf2.h (DW_CIE_VERSION): Remove.
4384 * dwarf2out.c (DWARF_VERSION): Remove.
4385 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
4386 (output_call_frame_info): Use CIE version 3 for dwarf3,
4387 or if the return register column is out of range for version 1.
4388 (dwarf_stack_op_name): Add all dwarf3 values.
4389 (DEBUG_PUBTYPES_SECTION): New.
4390 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
4391 encoding change for dwarf3.
4392 (output_die) [dw_val_class_die_ref]: Likewise.
4393 (output_compilation_unit_header): Emit correct version for dwarf3.
4394 (output_line_info): Likewise.
4395 (output_pubnames): Update for DWARF_VERSION removal.
4396 (output_aranges): Likewise.
4397 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
4398 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
4399 (dwarf2out_finish): Likewise.
4400
33a67b8d 44012009-06-11 David Daney <ddaney@caviumnetworks.com>
4402
4403 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
4404 in r148403.
4405
d2b48f0c 44062009-06-11 David Daney <ddaney@caviumnetworks.com>
4407
4408 PR c/39252
4409 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
4410 * builtins.c (expand_builtin_unreachable): New function.
4411 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
4412 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
4413 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
4414 successors.
4415 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
4416 searching for missing barriers.
4417
31bcb516 44182009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4419
4420 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
4421 when -fprofile-generate* was passed.
4422 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
4423
df3bfef4 44242009-06-11 Anthony Green <green@moxielogic.com>
4425
c6aaf951 4426 * config/moxie/moxie.md: Define length attribute for all instructions.
df3bfef4 4427 (rCC): Define.
4428 (*b<cond:code>): Support limited branch ranges for new PC-relative
4429 branch instructions.
4430 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
4431
d5257977 44322009-06-11 Jakub Jelinek <jakub@redhat.com>
4433
745ee33e 4434 * config/i386/i386.c (min_insn_size): Use get_attr_length
4435 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
4436 For __asm return 0.
4437
d5257977 4438 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
4439 instead of emit_insn_before.
4440
9448096b 44412009-06-10 Ian Lance Taylor <iant@google.com>
4442
4443 PR bootstrap/40408
4444 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
4445 GIMPLE_SWITCH.
4446
b50b1b69 44472009-06-10 Revital Eres <eres@il.ibm.com>
4448
4449 * passes.c (init_optimization_passes): Reschedule
4450 predictive-commoning pass before complete unroll pass.
4451
9967e578 44522009-06-10 Martin Jambor <mjambor@suse.cz>
4453
4454 * cgraph.c (cgraph_node_can_be_local_p): New function.
4455 (cgraph_make_node_local): New function.
4456 * cgraph.h (cgraph_node_can_be_local_p): Declare.
4457 (cgraph_make_node_local): Declare.
4458
33a0b99d 44592009-06-10 Nathan Froyd <froydnj@codesourcery.com>
4460
4461 * tree.h (tree_base): Add packed_flag and user_align fields.
4462 Decrease size of spare field.
4463 (TYPE_USER_ALIGN): Use user_align from tree_base.
4464 (DECL_USER_ALIGN): Likewise.
4465 (TYPE_PACKED): Use packed_flag from tree_base.
4466 (DECL_PACKED): Likewise.
4467 (tree_type): Delete packed_flag and user_align fields. Widen
4468 precision field. Widen mode field and shuffle fields to align
4469 mode on an 8-bit boundary.
4470 (tree_decl_common): Delete decl_flag_1 and user_align fields.
4471 Renumber decl_flag_* fields. Fix comments. Widen
4472 decl_common_unused field.
c6aaf951 4473 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
33a0b99d 4474 (DECL_EXTERNAL): Likewise.
4475 (DECL_BIT_FIELD): Likewise.
4476 (DECL_NONADDRESSABLE_P): Likewise.
4477 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
4478 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
4479
f7f05a07 44802009-06-10 Ian Lance Taylor <iant@google.com>
4481
4482 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
4483 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
4484 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
4485 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
4486 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
4487 DEF_VEC_ALLOC_FUNC_P.
4488 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
4489 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
4490 DEF_VEC_ALLOC_FUNC_O.
4491 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
4492 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
4493 DEF_VEC_ALLOC_FUNC_I.
4494 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
4495 (vec_stack_p_reserve_exact_1): Declare.
4496 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
4497 (vec_stack_free): Declare.
4498 (VEC_stack_alloc): Define.
4499 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
4500 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
4501 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
4502 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
4503 for void_p.
4504 (stack_vecs): New static variable.
4505 (vec_stack_p_reserve_exact_1): New function.
4506 (vec_stack_o_reserve_1): New static function.
4507 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
4508 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
4509 (vec_stack_free): New function.
4510 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
4511 (VEC_df_ref_stack_alloc): Define.
4512 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
4513 DEF_VEC_ALLOC_P_STACK.
4514 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
4515 (struct df_collection_rec): Change _vec fields to VEC. Remove
4516 _use fields.
4517 (df_free_collection_rec): Adjust for new fields.
4518 (df_insn_rescan): Use new df_collection_rec fields.
4519 (df_notes_rescan, df_canonize_collection_rec): Likewise.
4520 (df_ref_create_structure, df_ref_record): Likewise.
4521 (df_get_conditional_uses, df_get_call_refs): Likewise.
4522 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
4523 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
4524 (df_record_exit_block_uses, df_bb_verify): Likewise.
c6aaf951 4525 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
f7f05a07 4526 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
4527 Remove count parameter. Change return type to void. Change all
4528 callers.
4529 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
4530 Remove count parameter. Change return type to void. Change all
4531 callers.
4532 (df_install_refs): Change old_vec parameter to VEC. Remove count
4533 parameter. Change all callers.
4534 (df_install_mws): Change old_vec parameter to VEC. Remove count
4535 parameter. Change all callers.
4536 (df_refs_verify): Change new_rec parameter to VEC. Change call
4537 callers.
4538 (df_mws_verify): Likewise.
4539
7a63ab96 45402009-06-10 Alexandre Oliva <aoliva@redhat.com>
4541
4542 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
4543
9e26132e 45442009-06-10 H.J. Lu <hongjiu.lu@intel.com>
4545
4546 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
4547
be52b6d8 45482009-06-10 Anthony Green <green@moxielogic.com>
4549
4550 * config/moxie/crti.asm: New file.
4551 * config/moxie/crtn.asm: New file.
4552 * config/moxie/moxie.c: New file.
4553 * config/moxie/moxie.h: New file.
4554 * config/moxie/sfp-machine.h: New file.
4555 * config/moxie/moxie-protos.h: New file.
4556 * config/moxie/t-moxie: Created.
4557 * config/moxie/t-moxie-softfp: Created.
4558 * config/moxie/moxie.md: Created.
4559 * config/moxie/constraints.md: Created.
4560 * config.gcc: Add moxie support.
4561 * doc/md.texi (Machine Constraints): Add moxie constraints.
4562 * doc/contrib.texi (Contributors): Mention moxie port.
4563 * doc/install.texi (Specific): Mention the moxie port.
4564
423aab86 45652009-06-09 Ian Lance Taylor <iant@google.com>
4566
4567 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
4568 compiling with C++.
4569 * optabs.c (optab_table): Only use designated initializers if
4570 HAVE_DESIGNATED_INITIALIZERS is defined.
4571 (convert_optab_table): Likewise.
4572 (init_optabs): Always call init_insn_codes if
4573 HAVE_DESIGNATED_INITIALIZERS is not defined.
4574
d5b637fa 45752009-06-09 Ian Lance Taylor <iant@google.com>
4576
4577 * targhooks.c (default_builtin_vectorized_function): Change fn
4578 parameter to unsigned int.
4579 (default_builtin_vectorized_conversion): Change code parameter to
4580 unsigned int.
4581 (default_builtin_reciprocal): Change fn parameter to unsigned int.
4582 * targhooks.h: Update declarations.
4583 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
4584 parameter to unsigned int.
4585
4586 * c-typeck.c (comptypes_check_enum_int): New static function.
4587 (comptypes_internal): Add enum_and_int_p parameter. Change all
4588 callers.
4589 (comp_target_types): Add location parameter. Change all callers.
4590 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
4591 Change all callers.
4592 (function_types_compatible_p, type_lists_compatible_p): Likewise.
4593 (build_conditional_expr): Add colon_loc parameter. Change all
4594 callers.
c6aaf951 4595 (convert_for_assignment): Add location parameter. Change all callers.
d5b637fa 4596 * c-parser.c (c_parser_conditional_expression): Pass location of
4597 colon to build_conditional_expr.
4598 * c-tree.h (build_conditional_expr): Update declaration.
4599
d970c7fe 46002009-06-09 Sebastian Pop <sebastian.pop@amd.com>
4601
4602 * graphite.c: Revert previous patch.
4603
1aa098ae 46042009-06-09 Sebastian Pop <sebastian.pop@amd.com>
4605
4606 PR bootstrap/40103
4607 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
4608
f937ec59 46092009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
4610
614b751e 4611 * tree-ssa-loop-prefetch.c
4612 (loop_prefetch_arrays): Fixed a portability problem in printf format
4613 string.
f937ec59 4614
31000708 46152009-06-09 Martin Jambor <mjambor@suse.cz>
4616
4617 PR tree-optimization/40351
c6aaf951 4618 * tree-sra.c (propagate_subacesses_accross_link): Check that a
4619 refrence to a potential artifical subaccess can be constructed.
31000708 4620
9b8dc018 46212009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
4622
4623 * config/sh/sh-protos.h (sh_optimization_options): Declare.
4624 (sh_override_options): Likewise.
4625 * config/sh/sh.c: Include params.h.
4626 (sh_optimization_options): New.
4627 (sh_override_options): Likewise.
4628 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
4629 (OVERRIDE_OPTIONS): Use sh_override_options.
4630
dcec2982 46312009-06-08 Jakub Jelinek <jakub@redhat.com>
4632
4633 * dwarf2out.c (emit_cfa_remember): New variable.
4634 (add_fde_cfi): If emit_cfa_remember, recurse to add
4635 DW_CFA_remember_state first.
4636 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
4637 instead just set emit_cfa_remember.
4638
804f8485 46392009-06-08 Jan Hubicka <jh@suse.cz>
4640
4641 PR debug/40126
4642 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
4643
7fe9b425 46442009-06-08 Jan Hubicka <jh@suse.cz>
4645
4646 PR middle-end/39834
c6aaf951 4647 * cgraphunit.c (save_inline_function_body): Do not copy transform
4648 hooks for saved inline bodies.
7fe9b425 4649 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
4650 for given function.
4651
01e196ce 46522009-06-08 Adam Nemet <anemet@caviumnetworks.com>
4653
4654 * jump.c (returnjump_p): Handle delayed branches. Add missing
4655 function comment.
4656
b437daf4 46572009-06-08 Jan Hubicka <jh@suse.cz>
4658
4659 PR middle-end/40102
4660 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
4661 original node might've been modified.
4662 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
4663
fbc1ccbc 46642009-06-08 Jakub Jelinek <jakub@redhat.com>
4665
4666 * tree-object-size.c (addr_object_size): Add OSI argument.
4667 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
4668 (compute_builtin_object_size, expr_object_size): Adjust callers.
4669 (plus_stmt_object_size): Call addr_object_size instead of
4670 compute_builtin_object_size.
4671
0ab353e1 46722009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
614b751e 4673 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
0ab353e1 4674
4675 * tree-ssa-loop-prefetch.c
4676 (gather_memory_references): Introduced a counter for the number of
4677 memory references.
4678 (anything_to_prefetch_p): Introduced a counter for the number of
4679 prefetches.
4680 (is_loop_prefetching_profitable): New function with a cost model
4681 for prefetching.
4682 (loop_prefetch_arrays): Use the new cost model to determine if
4683 prefetching is profitable.
4684 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
4685 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4686 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
4687 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4688 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
4689 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4690
e32b531f 46912009-06-08 Michael Matz <matz@suse.de>
4692
4693 PR debug/40012
e32b531f 4694 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
4695 partitions use the same.
4696 (expand_one_var): Deal with DECL_RTL sometimes begin set also
4697 for basevars of SSA_NAMEs.
4698 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
4699 to not expand them twice.
4700 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
4701 multiple places.
4702
71278019 47032009-06-08 Alexandre Oliva <aoliva@redhat.com>
4704
4705 * common.opt (fcompare-debug=, fcompare-debug-second): New.
4706 (fdump-final-insns=, gtoggle): New.
4707 * doc/invoke.texi: Document them.
4708 * final.c (rest_of_clean_state): Dump final insn stream.
4709 * gcc.c (invoke_as): Hook in -fcompare-debug.
4710 (static_spec_functions): Add compare-debug-dump-opt,
4711 compare-debug-self-opt and compare-debug-auxbase-opt.
4712 (compare_debug, compare_debug_second, compare_debug_opt): New.
4713 (switches_debug_check, n_switches_debug_check): New.
4714 (debug_auxbase_opt, debug_check_temp_file): New.
4715 (process_command): Handle -fno-compare-debug, -fcompare-debug and
4716 -fcompare-debug=*.
4717 (do_self_spec): Handle arguments after switches.
4718 (do_spec_1): Add .gk extension to temp file basenames for compare.
4719 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
4720 (cc1_options): Use it instead of normal auxbase computation for
4721 the second compare-debug compilation.
4722 (compare_files): New.
4723 (main): Set up and implement compare debug mode.
4724 (compare_debug_dump_opt_spec_function): New.
4725 (compare_debug_self_opt_spec_function): New.
4726 (compare_debug_auxbase_opt_spec_function): New.
4727 * toplev.c (process_options): Handle flag_gtoggle,
4728 flag_dump_final_insns.
4729 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
4730 during -fcompare-debug-second compilation.
4731
561017b5 47322009-06-07 Ian Lance Taylor <iant@google.com>
4733
c6aaf951 4734 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
561017b5 4735 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
4736
4737 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
4738 with no default node. Change warning with %H to warning_at.
4739 Don't clear warn_switch around case checking.
4740 * doc/invoke.texi (Warning Options): Clarify distinction between
4741 -Wswitch and -Wswitch-enum.
4742
315a45ed 47432009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4744
4745 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
4746
18d8ad76 47472009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4748
4749 * gbl-ctors.h: Add header guard.
4750
d8eaff30 47512009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4752
4753 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
4754 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
4755 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
4756 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
4757 prototypes for removed functions.
4758 (expressions_equal_p): Move to ...
4759 * tree-ssa-sccvn.h: ... here and ...
4760 * matrix-reorg.c: ... adjust includes.
4761
de9d32d3 47622009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4763
4764 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
4765
9eba252e 47662009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4767
4768 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
4769 (finish_function): Remove erroneous whitespace.
4770
dd24d1a6 47712009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4772
2c2eb7fa 4773 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
4774 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
3d400f58 4775
47762009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4777
4778 * errors.c (internal_error): Commentary typo fix.
4779 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
4780 * tree-ssa-pre.c: Ditto.
dd24d1a6 4781
2c2eb7fa 47822009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4783
4784 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
4785 them is supposed to hold actual statements.
4786
e1c8f1c5 47872009-06-06 Ian Lance Taylor <iant@google.com>
4788
4789 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
4790 empty statements can now have attributes.
4791
e6408be9 47922009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
4793
4794 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
4795 * config/mips/mips.md: Ditto.
4796
253e1b4a 47972009-06-05 Nathan Froyd <froydnj@codesourcery.com>
4798
4799 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
4800 _RELOCATABLE.
4801 (__eabi_uconvert): Likewise.
4802
aef98aab 48032009-06-05 Nathan Froyd <froydnj@codesourcery.com>
4804
4805 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
4806 CFI_* definitions with IN_GCC.
4807
8cb0d379 48082009-06-05 David Edelsohn <edelsohn@gnu.org>
4809
4810 * xcoffout.h (xcoffout_source_line): Update prototype.
4811
c3cfad90 48122009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4813
4814 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
4815 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
4816
f63d3ecc 48172009-06-05 Jakub Jelinek <jakub@redhat.com>
4818
4819 PR middle-end/40340
4820 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
4821 inlined_function_outer_scope_p blocks for artificial inlines
4822 even at -g0/-g1.
4823 * tree.c (tree_nonartificial_location): Rewrite using
4824 block_nonartificial_location.
4825
454f25be 48262009-06-05 Revital Eres <eres@il.ibm.com>
4827 Leehod Baruch <leehod@il.ibm.com>
4828
4829 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
4830 (expand_expr_real_1): Remove comment.
4831 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4832 Vectorize misaligned access when the target supports it.
c6aaf951 4833 (vect_supportable_dr_alignment): Check for unaligned access support.
454f25be 4834 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
4835 and remove asset.
4836
be6a5df4 48372009-06-05 Julian Brown <julian@codesourcery.com>
4838
4839 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
4840 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
4841
75b9059b 48422009-06-05 Richard Guenther <rguenther@suse.de>
4843
4844 PR bootstrap/40350
4845 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
4846 as possibly unused.
4847
f63d3ecc 48482009-06-05 Jakub Jelinek <jakub@redhat.com>
a3cd0f6a 4849
4850 * config/s390/s390.c (global_not_special_regno_p): New static inline.
4851 (save_gprs): Don't tell unwinder when a global register is saved.
4852 (s390_emit_epilogue): Emit needed epilogue unwind info.
4853
55df8db3 48542009-06-05 Alexandre Oliva <aoliva@redhat.com>
4855
4856 * dwarf2out.c (deferred_asm_name): New.
4857 (add_name_and_src_coords_attributes): Defer creation of
4858 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
4859 computed yet.
4860 (move_linkage_attr): New.
4861 (dwarf2out_finish): Revisit deferrals and emit attributes at the
4862 right place.
4863
78e29a95 48642009-06-05 Alexandre Oliva <aoliva@redhat.com>
4865
4866 * tree-nested.c (finalize_nesting_tree_1): Declare the
4867 frame_decl in the binding tree.
4868
d01c707b 48692009-06-04 Cary Coutant <ccoutant@google.com>
4870
4871 * basic-block.h (struct basic_block_def): Add discriminator field.
4872 * dbxout.c (dbxout_source_line): Add new parameter. Change all
4873 callers.
4874 * debug.c (do_nothing_debug_hooks): Add additional entry.
4875 (debug_nothing_int_charstar_int): New function.
c6aaf951 4876 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
d01c707b 4877 (debug_nothing_int_charstar_int): New declaration.
4878 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
4879 discriminator value in .loc directive.
4880 * final.c (last_discriminator): New variable.
4881 (discriminator): New variable.
4882 (final_start_function): Initialize above variables, pass current
4883 discriminator to debug hook.
4884 (notice_source_line): Check for discriminator change.
4885 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
4886 * sdbout.c (sdbout_source_line): New parameter.
4887 * tree-cfg.c (struct locus_discrim_map): New structure type.
4888 (discriminator_per_locus): New hash table.
4889 (build_gimple_cfg): Allocate and free discriminator hash table.
4890 (make_edges): Call assign_discriminator.
4891 (locus_map_hash): New function.
4892 (locus_map_eq): New function.
4893 (next_discriminator_for_locus): New function.
4894 (same_line_p): New function.
4895 (assign_discriminator): New function.
4896 (make_cond_expr_edges): Call assign_discriminator.
4897 (make_gimple_switch_edges): Likewise.
4898 (first_non_label_stmt): New function.
4899 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
4900 all callers.
4901 * xcoffout.c (xcoffout_source_line): Add new parameter.
4902
4903 * configure.ac (gcc_cv_as_discriminator): New configury check for
4904 gas support for discriminator.
4905 * configure: Regenerate.
4906 * config.in: Regenerate.
4907
7430cad1 49082009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4909
4910 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
4911 val after checking for integers.
4912
b51058a6 49132009-06-04 Uros Bizjak <ubizjak@gmail.com>
4914
4915 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
4916 X64_REGPARM_MAX.
4917 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
4918 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
4919 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
4920 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
4921 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
4922 X64_SSE_REGPARM_MAX.
4923 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
4924 X64_SSE_REGPARM_MAX.
4925
4537c5d9 49262009-06-04 Alexandre Oliva <aoliva@redhat.com>
4927
4928 * gcc.c (report_times_to_file): New.
4929 (execute): Implement it.
4930 (process_command): Support -time=.
4931 * doc/invoke.texi: Document it.
4932
ee093c13 49332009-06-04 Alexandre Oliva <aoliva@redhat.com>
4934
4935 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
4936 that have value exprs.
4937
1e03a59b 49382009-06-04 Alexandre Oliva <aoliva@redhat.com>
4939
4940 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
4941 declarations for constants until...
4942 (dw2_output_indirect_constant_1): ... this point.
4943
a3ffc315 49442009-06-04 Richard Earnshaw <rearnsha@arm.com>
4945
4946 PR target/10242
4947 * arm.md (arm_addsi3): Don't try to split an add with an
4948 eliminable register until after reload has completed.
4949
cd819d2f 49502009-06-03 Ian Lance Taylor <iant@google.com>
4951
4952 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
4953 * genattrtab.c (write_length_unit_log): Likewise.
4954 * genchecksum.c (dosum): Likewise.
4955 * gengtype.c (write_rtx_next): Likewise.
4956 (finish_root_table, write_roots): Likewise.
4957 * gimple.c (gimple_ops_offset_): Likewise.
4958 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
4959 * config/arc/arc.c (arc_attribute_table): Likewise.
4960 * config/arm/arm.c (arm_attribute_table): Likewise.
4961 * config/avr/avr.c (avr_attribute_table): Likewise.
4962 * config/crx/crx.c (crx_attribute_table): Likewise.
4963 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
4964 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
4965 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
4966 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
4967 * config/sh/sh.c (sh_attribute_table): Likewise.
4968 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
4969 * config/spu/spu.c (spu_attribute_table): Likewise.
4970 * config/v850/v850.c (v850_attribute_table): Likewise.
4971
4972 * config/alpha/alpha.c (vms_attribute_table): Make static.
4973 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
4974 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
4975 * config/mips/mips.c (mips_attribute_table): Likewise.
4976
4977 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
4978 $(SYSTEM_H).
4979 (cc1-checksum.o): Likewise.
4980
9a4e1a73 49812009-06-03 Steve Ellcey <sje@cup.hp.com>
4982
4983 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
4984
a9cc13e1 49852009-06-03 Jakub Jelinek <jakub@redhat.com>
4986
5f59286d 4987 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
4988 insn if it is changing sp. Use gen_add3_insn instead of
4989 conditionally gen_addsi3 and gen_adddi3.
4990 (offset_below_red_zone_p): New static inline function.
4991 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
4992 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
4993 * config/rs6000/ppc-asm.h: Include auto-host.h.
4994 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
4995 CFI_RESTORE): Define.
4996 * config/rs6000/crtresxgpr.asm: Add unwind info.
4997 * config/rs6000/crtresxfpr.asm: Likewise.
4998 * config/rs6000/crtresgpr.asm: Likewise.
4999 * config/rs6000/crtresfpr.asm: Likewise.
5000 * config/rs6000/crtsavgpr.asm: Likewise.
5001 * config/rs6000/crtsavfpr.asm: Likewise.
5002
b3154a1f 5003 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
5004 argument of DWARF2_FRAME_REG_OUT macros.
a9cc13e1 5005
e5a8295a 50062009-06-03 Julian Brown <julian@codesourcery.com>
5007
5008 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
5009 words or less (including TImode) in core registers.
5010
261b246f 50112009-06-03 Richard Guenther <rguenther@suse.de>
5012
5013 PR middle-end/40328
5014 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
5015
2dfe9981 50162009-06-03 Andrey Belevantsev <abel@ispras.ru>
5017
5018 * statistics.c (statistics_counter_event): Do not record event
5019 in pass dump if its number == -1.
5020 (curr_statistics_hash): Add assert that we never get passes
5021 with static number == -1.
5022
9a60c3b9 50232009-06-03 Richard Guenther <rguenther@suse.de>
5024 Andrey Belevantsev <abel@ispras.ru>
5025
5026 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
5027 non-BLKmode arrays addressable.
5028
f539feff 50292009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
5030
5031 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
5032 * config/m68k/m68k.h: ... here.
5033 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
5034 m68k and fido.
5035
4ecddf77 50362009-06-03 Martin Jambor <mjambor@suse.cz>
5037
5038 PR tree-optimization/40323
5039 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
5040 assignment.
5041
831afe34 50422009-06-03 Richard Guenther <rguenther@suse.de>
5043
5044 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
5045 consistently.
5046
cb94f03c 50472009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
5048
5049 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
5050 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
5051 JUMP_TABLE_DATA_P where applicable.
5052 * config/sh/sh.c: Ditto.
5053 * config/sh/sh.h: Ditto.
5054 * config/sh/sh.md: Ditto.
5055 * config/sh/symbian.c: Ditto.
5056
faa14cce 50572009-06-03 Uros Bizjak <ubizjak@gmail.com>
5058
5059 * config/i386/driver-i386.c (describe_cache): Optimize
5060 concatenation of strings. Use snprintf instead of sprintf.
5061 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
5062 target when not compiling with GCC.
5063
2b0c9242 50642009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
5065
5066 * config/sh/sh.c: Revert last change.
5067 (sh_expand_epilogue): Emit a blockage insn before the frame
5068 pointer adjustment unconditionally.
5069
d4902064 50702009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
5071
5072 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
5073 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
5074 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
5075 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
5076 to COLLECT_GCC_OPTIONS.
5077
ef6fd54f 50782009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
5079
5080 * collect2.c (target_system_root): New variable.
5081 (main): Handle --sysroot=.
5082 (ignore_library): Strip the sysroot from the library path.
5083
cabc7147 50842009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
5085
5086 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
5087 (collect2.o): Depend on collect2-aix.h.
5088 (collect2-aix.o): New rule.
5089 * collect2-aix.h: New file.
5090 * collect2-aix.c: Likewise.
5091 * collect2.c: Include collect2-aix.h. Don't undefine
5092 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
5093 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
5094 Use TARGET_AIX_VERSION instead of _AIX51.
5095 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
5096 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
5097 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
5098 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
5099 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
5100
329cbab5 51012009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
5102
5103 * collect2.c (ignore_library): Avoid premature post-increment
5104 and null deference.
5105
5b69e2e1 51062009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
5107
5108 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
5109 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
5110 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
5111 CROSS_DIRECTORY_STRUCTURE too.
5112 (LINK_LIBG_SPEC): Likewise.
5113 (LIB_SPEC): Add %R to sysroot paths.
5114 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
5115 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
5116 * config/rs6000/aix51.h: As for aix43.h.
5117 * config/rs6000/aix52.h: Likewise.
5118 * config/rs6000/aix53.h: Likewise.
5119 * config/rs6000/aix61.h: Likewise.
5120 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
5121 to the beginning of sysroot paths.
5122
f86c2921 51232009-06-02 Alexandre Oliva <aoliva@redhat.com>
5124
5125 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
5126 INSN_LISTs that are out of the REG_NOTE range.
5127
b635a1a3 51282009-06-02 Alexandre Oliva <aoliva@redhat.com>
5129
5130 * loop-unroll.c (struct iv_to_split): Add pointer to next.
5131 (struct var_to_expand): Likewise.
5132 (struct opt_info): Add head and tail for linked lists of the above.
5133 (analyze_insn_to_expand_var): Initialize next.
5134 (analyze_iv_to_split_insn): Likewise.
5135 (analyze_insns_in_loop): Create linked lists.
5136 (allocate_basic_variable): Simplify for use without hash table.
5137 (insert_var_expansion_initialization): Likewise, make it type-safer.
5138 (combine_var_copies_in_loop_exit): Likewise.
5139 (apply_opt_in_copies): Walk lists rather than hash tables.
5140 (release_var_copies): Simplified and inlined by hand into...
5141 (free_opt_info): ... this function.
5142
07958fba 51432009-06-02 Richard Guenther <rguenther@suse.de>
5144
5145 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
5146 for field decls.
5147
c3771ec9 51482009-06-02 Alexandre Oliva <aoliva@redhat.com>
5149
5150 * cfgexpand.c (gimple_expand_cfg): Discard the source location
5151 only for builtins that are not overridden.
5152
d5b19135 51532009-06-02 Alexandre Oliva <aoliva@redhat.com>
5154
5155 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
5156 label string.
5157
44cb2148 51582009-06-02 Alexandre Oliva <aoliva@redhat.com>
5159
5160 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
5161
bc20fdd7 51622009-06-02 Alexandre Oliva <aoliva@redhat.com>
5163
5164 * combine.c (move_deaths): Compare LUIDs within the same BB only.
5165
0a59e439 51662009-06-02 Alexandre Oliva <aoliva@redhat.com>
5167
5168 * common.opt (fdump-unnumbered-links): New.
5169 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
5170 * print-rtl.c (flag_dump_unnumbered_links): New.
5171 (print_rtx): Test it.
5172
11417c43 51732009-06-02 Richard Earnshaw <rearnsha@arm.com>
5174
5175 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
5176 push/pop multiple to 8-byte alignment.
a3ffc315 5177
7737aadd 51782009-06-01 Jakub Jelinek <jakub@redhat.com>
5179
c42a6003 5180 * config/i386/i386.c (queued_cfa_restores): New static variable.
5181 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
5182 functions.
5183 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
5184 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
5185 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
5186 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
5187 note unconditionally.
5188 (ix86_emit_restore_regs_using_mov): Likewise.
5189 (ix86_emit_restore_sse_regs_using_mov): Likewise.
5190 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
5191 it through to ix86_emit_restore_reg_using_pop.
5192 (ix86_emit_leave): Add RED_OFFSET argument. Call
5193 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
5194 instead of adding REG_CFA_OFFSET note unconditionally.
5195 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
5196 the above functions. Call ix86_add_queued_cfa_restore_notes when
5197 needed.
5198
5199 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
5200 force output of the label even for dwarf2out_do_cfi_asm.
5201 (add_fde_cfi): If -g2 and above and cfi might change CFA,
5202 force creation of CFI label and chain DW_CFA_set_loc jumping to it
5203 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
5204 caller.
5205 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
5206 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
5207 dwarf2out_cfi_label callers.
5208 * tree.h (dwarf2out_cfi_label): Adjust prototype.
5209 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
5210 Adjust dwarf2out_cfi_label callers.
5211 * config/vax/vax.c (vax_output_function_prologue): Likewise.
5212
e3b9403e 5213 * config/i386/i386.h (struct machine_cfa_state,
5214 struct machine_function): Guard with ifndef USED_FOR_TARGET
5215 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
5216
b1fc924e 5217 PR other/40024
5218 * emutls.c (__emutls_get_address): Change arr->size to mean number
5219 of allocated arr->data entries instead of # of slots + 1.
5220
7737aadd 5221 PR middle-end/40316
5222 * recog.c (peep2_reinit_state): New function.
5223 (peephole2_init_state): Use it at the end of a basic block and also
5224 when seeing a RTX_FRAME_RELATED_P insn.
5225
a58127d5 52262009-06-01 Steve Ellcey <sje@cup.hp.com>
5227
5228 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
5229 fixuns_truncrfdi2): New.
5230 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
5231 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
5232 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
5233 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
5234 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
5235 *recip_approx): Remove.
5236 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
5237 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
5238 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
5239 move to div.md.
5240 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
5241 setf_exp_rf): New.
5242
402ba866 52432009-06-01 Ian Lance Taylor <iant@google.com>
5244
5245 * attribs.c (register_attribute): Use CONST_CAST.
5246 * collect2.c (main): Use CONST_CAST2.
5247 (scan_prog_file): Likewise.
5248 * gcc.c (process_command, main): Likewise.
5249 * toplev.c (toplev_main): Likewise.
5250
5251 * c-typeck.c (handle_warn_cast_qual): New static function,
5252 partially broken out of build_c_cast.
5253 (build_c_cast): Call handle_warn_cast_qual.
5254 * doc/invoke.texi (Warning Options): Document new effect of
5255 -Wcast-qual.
5256
b559b9e2 52572009-06-01 Aldy Hernandez <aldyh@redhat.com>
5258
5259 * diagnostic.c (diagnostic_build_prefix): Always print columns.
5260 (diagnostic_report_current_module): Print columns.
5261 * common.opt (flag_show_column): Enable by default.
5262
02b0d167 52632009-06-01 Luis Machado <luisgpm@br.ibm.com>
5264
5265 * alias.c (find_base_term): Check for NULL term before returning.
5266
a56c46d2 52672009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
5268
5269 Revert due to PR40320:
a56c46d2 5270 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
5271 * calls.c (emit_library_call_value_1): Don't force_operand for move
5272 and push insns.
5273
34a6a65d 52742009-06-01 Olivier Hainque <hainque@adacore.com>
afb7aecf 5275 Eric Botcazou <ebotcazou@adacore.com>
34a6a65d 5276
5277 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
5278 to be processed as a bitfield for constructor output purposes.
5279 * output.h (initializer_constant_valid_for_bitfield_p): Declare
5280 new function.
5281 * varasm.c (oc_local_state): New type, output_constructor
5282 local state to support communication with helpers.
5283 (oc_outer_state): New type, output_constructor outer state of
5284 relevance in recursive calls.
5285 (output_constructor_array_range): New output_constructor helper,
5286 extracted code for an array range element.
5287 (output_constructor_regular_field): New output_constructor helper,
5288 extracted code for an element that is not a bitfield.
5289 (output_constructor_bitfield): New output_constructor helper,
5290 extracted code for a bitfield element. Accept an OUTER state
5291 argument for recursive processing. Recurse on record or array
5292 CONSTRUCTOR values, possibly past noop conversions.
69e84e89 5293 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
34a6a65d 5294 VALUE is a valid constant-valued expression for use in a static
5295 bit-field initializer.
69e84e89 5296 (output_constructor): Rework to use helpers. Accept and honor an
5297 OUTER state argument for recursive calls. Return total size. Be
34a6a65d 5298 prepared for nested constructors initializing bitfields.
5299 (output_constant): Feed OUTER in calls to output_constructor.
5300
997988ca 53012009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
5302
5303 * calls.c (emit_library_call_value_1): Don't force_operand for move
5304 and push insns.
5305
7435242d 53062009-06-01 Nick Clifton <nickc@redhat.com>
5307
5308 * doc/invoke.texi (IA-64 Options): Fix typo.
5309
10095225 53102009-06-01 Ira Rosen <irar@il.ibm.com>
5311
5312 PR tree-optimization/39129
7c1037d2 5313 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
10095225 5314 printed message.
7c1037d2 5315 (vect_do_peeling_for_loop_bound): Use
10095225 5316 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
5317 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
5318 (vect_loop_versioning): Likewise.
5319 (vect_create_cond_for_alias_checks): Fix indentation.
7c1037d2 5320 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
10095225 5321 macros.
5322 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
5323 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
7c1037d2 5324 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
10095225 5325 "control flow in loop".
7c1037d2 5326 (vect_estimate_min_profitable_iters): Use
10095225 5327 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
5328 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
5329 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
5330 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
7c1037d2 5331 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
5332 statement belongs to a group of strided accesses with the exact code
10095225 5333 check.
5334 (vectorizable_load): Likewise.
5335 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
5336 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
5337
c4c8f6ce 53382009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
5339
5340 * config/freebsd-stdint.h: New file.
5341 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
5342 Add freebsd-stdint.h to tm_file.
5343
af29b1b3 53442009-06-01 Richard Earnshaw <rearnsha@arm.com>
5345
5346 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
5347 (thumb2_extendhidi2): Likewise.
5348
27d1bc52 53492009-05-31 Ian Lance Taylor <iant@google.com>
5350
faa14cce 5351 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
35a8b591 5352
53532009-05-31 Ian Lance Taylor <iant@google.com>
5354
faa14cce 5355 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
27d1bc52 5356 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
5357 (ipa-reference.o): Depend upon gt-ipa-reference.h.
5358
4437c3fe 53592009-05-31 Jason Merrill <jason@redhat.com>
5360
5361 * tree-pretty-print.c (print_call_name): Take the callee, not the
faa14cce 5362 call itself. Make non-static. Use dump_function_name for functions.
4437c3fe 5363 (dump_generic_node): Adjust.
5364 * diagnostic.h: Declare print_call_name.
5365 * gimple-pretty-print.c (dump_gimple_call): Use it.
5366
4f5ea781 53672009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
5368
5369 * config/sh/sh.md (ashldi3_std): New define_expand.
5370 (ashldi3): Use it.
5371
566998f1 53722009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
5373
5374 PR target/40313
5375 * config/sh/sh.c: Include debug.h.
5376 (sh_expand_epilogue): Emit a blockage insn before the frame
5377 pointer adjustment also when dwarf2out_do_frame returns true.
5378
409bc734 53792009-05-31 Richard Earnshaw <rearnsha@arm.com>
5380
5381 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
5382 (thumb2_extendqidi2): New pattern.
5383
f9e29128 53842009-05-31 Ira Rosen <irar@il.ibm.com>
5385
5386 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
5387 mark phis for renaming.
5388 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
5389 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
5390 Call mark_sym_for_renaming.
5391 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
faa14cce 5392 * tree-vect-loop.c (vect_transform_loop): Remove
5393 vect_memsyms_to_rename initialization and a call to
5394 mark_set_for_renaming.
f9e29128 5395
4872d196 53962009-05-31 Jakub Jelinek <jakub@redhat.com>
5397
5398 PR middle-end/40304
5399 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
5400 frame related even if !set_cfa && style < 0.
5401
d068eb52 54022009-05-30 Kai Tietz <kai.tietz@onevision.com>
5403
5404 * config/i386/mingw-tls.c: New file.
faa14cce 5405 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
5406 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
5407 defining _WIN32 but not __CYGWIN__.
d068eb52 5408
7601a55c 54092009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5410
5411 * configure.ac: Add MPC support.
5412
5413 * config.in, configure: Regenerate.
5414
25e880b1 54152009-05-29 Richard Henderson <rth@redhat.com>
5416
5417 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
5418 NOTE_INSN_BASIC_BLOCK.
5419 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
5420 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
5421 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
5422 to be deleted.
5423 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
5424 add in_use field.
5425 (add_cfi): Disable check redefining cfa away from drap.
5426 (lookup_cfa_1): Add remember argument; handle remember/restore.
5427 (lookup_cfa): Pass remember argument.
5428 (cfa_remember): New.
5429 (compute_barrier_args_size_1): Remove sibcall check.
5430 (dwarf2out_frame_debug_def_cfa): New.
5431 (dwarf2out_frame_debug_adjust_cfa): New.
5432 (dwarf2out_frame_debug_cfa_offset): New.
5433 (dwarf2out_frame_debug_cfa_register): New.
5434 (dwarf2out_frame_debug_cfa_restore): New.
5435 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
5436 (dwarf2out_begin_epilogue): New.
5437 (dwarf2out_frame_debug_restore_state): New.
5438 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
5439 DW_CFA_restore_state.
5440 (output_cfi_directive): Likewise.
5441 (convert_cfa_to_fb_loc_list): Likewise.
5442 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
5443 * dwarf2out.h: Update.
5444 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
5445 (copy_insn_1): Early out for null.
5446 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
5447 and dwarf2out_frame_debug_restore_state.
5448 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
5449 (prologue_insn_hash, epilogue_insn_hash): New.
5450 (free_after_compilation): Adjust freeing accordingly.
5451 (record_insns): Create hash table if needed; push insns into
5452 hash instead of array.
5453 (maybe_copy_epilogue_insn): New.
5454 (contains): Search hash table instead of array.
5455 (sibcall_epilogue_contains): Remove.
5456 (thread_prologue_and_epilogue_insns): Split eh_return insns
5457 and mark them as epilogues.
5458 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
5459 scanning in terms of basic blocks.
5460 * insn-notes.def (CFA_RESTORE_STATE): New.
5461 * jump.c (returnjump_p_1): Accept EH_RETURN.
5462 (eh_returnjump_p_1, eh_returnjump_p): New.
5463 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
5464 CFA_REGISTER, CFA_RESTORE): New.
5465 * rtl.def (EH_RETURN): New.
5466 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
5467
5468 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
5469 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
5470
5471 * config/i386/i386.c (gen_push): Update cfa state.
5472 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
5473 add a CFA_ADJUST_CFA note.
5474 (ix86_dwarf_handle_frame_unspec): Remove.
5475 (ix86_expand_prologue): Update cfa state.
5476 (ix86_emit_restore_reg_using_pop): New.
5477 (ix86_emit_restore_regs_using_pop): New.
5478 (ix86_emit_leave): New.
5479 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
5480 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
5481 * config/i386/i386.h (struct machine_cfa_state): New.
5482 (ix86_cfa_state): New.
5483 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
5484 (eh_return_internal): Merge from eh_return_<mode>,
5485 use eh_return rtx, split w/ epilogue.
5486
d62e827b 54872009-05-29 Ian Lance Taylor <iant@google.com>
5488
5489 * builtins.c (validate_gimple_arglist): Don't use va_arg with
5490 enum type.
5491 * calls.c (emit_library_call_value_1): Likewise.
5492
5493 * c-typeck.c (c_build_va_arg): New function.
5494 * c-tree.h (c_build_va_arg): Declare.
5495 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
5496 instead of build_va_arg.
5497
fe4600c9 54982009-05-29 Eric Botcazou <ebotcazou@adacore.com>
5499
5500 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
5501 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
5502 (ptr_difference_cost): Use affine combinations to compute it.
5503 (difference_cost): Likewise.
5504 (get_computation_cost_at): Compute more accurate cost for addresses
5505 if the ratio is a multiplier allowed in addresses.
5506 For non-addresses, consider that an additional offset or symbol is
5507 added only once.
5508
00a0e418 55092009-05-29 Jakub Jelinek <jakub@redhat.com>
5510
1f3db558 5511 * config/i386/i386.c (ix86_decompose_address): Avoid useless
5512 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
5513
00a0e418 5514 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
5515 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
5516 (prefix_rex): For UNIT_MMX don't imply the prefix by default
5517 if MODE_DI.
5518 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
5519 to 1 for TYPE_SSE{IADD1,CVT1}.
5520 (prefix_vex_imm8): Removed.
5521 (length_vex): Only pass 1 as second argument to
5522 ix86_attr_length_vex_default if prefix_extra is 0.
5523 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
5524 (length): For prefix vex computation use length_immediate
5525 attribute instead of prefix_vex_imm8.
5526 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
5527 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
5528 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
5529 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
5530 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
5531 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
5532 a space in between the operands.
5533 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
5534 if one operand is 0xff and the other one si, di, bp or sp.
5535 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
5536 other one si, di, bp or sp.
5537 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
5538 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
5539 type and mode attributes.
5540 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
5541 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
5542 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
5543 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
5544 prefix_data16 attribute iff MODE_DF.
5545 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
5546 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
5547 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
5548 constm128_operand in length_immediate computation.
5549 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
5550 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
5551 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
5552 length_immediate attribute to 1.
5553 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
5554 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
5555 for certain alternatives.
5556 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
5557 prefix_data16 attribute if MODE_V1DF.
5558 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
5559 length_immediate to 1.
5560 (set_got_rex64, set_rip_rex64): Remove length attribute, set
5561 length_address to 4, set mode attribute to MODE_DI.
5562 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
5563 (fxam<mode>2_i387): Set length attribute to 4.
5564 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
5565 *prefetch_3dnow_rex): Override length_address attribute.
5566 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
5567 attributes.
5568 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
5569 (constm128_operand): Removed.
5570 * config/i386/i386.c (memory_address_length): For
5571 disp && !index && !base in 64-bit mode account for SIB byte if
5572 print_operand_address can't optimize disp32 into disp32(%rip)
5573 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
5574 for fs: or gs: segment.
5575 (ix86_attr_length_immediate_default): When checking if shortform
5576 is possible, truncate immediate to the length of the non-shortened
5577 immediate.
5578 (ix86_attr_length_address_default): Ignore MEM_P operands
5579 with X constraint.
5580 (ix86_attr_length_vex_default): Only check for DImode on
5581 GENERAL_REG_P operands.
5582 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
5583 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
5584 (sse_cvttps2pi): Clear prefix_rep attribute.
5585 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
5586 attribute.
5587 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
5588 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
5589 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
5590 iff operand 2 is const_int_operand.
5591 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
5592 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
5593 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
5594 instead of vex.
5595 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
5596 prefix_data16.
5597 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
5598 prefix_data16 attribute for movlpd and movhpd instructions.
5599 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
5600 length_immediate for shufpd instruction.
5601 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
5602 (avx_cmpp<avxmodesuffixf2c><mode>3,
5603 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
5604 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
5605 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
faa14cce 5606 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
00a0e418 5607 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
5608 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
5609 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
5610 prefix_data16 attribute for the first alternative to 1.
5611 (*avx_loadlps): Override length_immediate for the first alternative.
5612 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
5613 attributes for second alternative.
5614 (*vec_concatv2sf_sse4_1): Override length_immediate and
5615 prefix_data16 attributes for second alternative.
5616 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
5617 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
5618 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
5619 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
5620 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
5621 prefix_data16 and length_immediate to 1.
5622 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
5623 to 1.
5624 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
faa14cce 5625 prefix_extra attribute for variants that don't have 0f prefix alone.
00a0e418 5626 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
5627 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
5628 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
5629 *sse4_1_pextrd): Set length_immediate to 1.
5630 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
5631 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
5632 to 1.
5633 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
5634 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
5635 length_immediate to 1 for second alternative.
5636 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
5637 prefix_extra and length_immediate attributes for the first
5638 alternative.
5639 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
5640 first alternative.
5641 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
5642 to 1 for the first and third alternative.
5643 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
5644 alternative.
5645 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
5646 attribute.
5647 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
5648 attribute to 0.
5649 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
5650 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
5651 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
5652 *avx_psign<mode>3): Set prefix_extra attribute to 1.
5653 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
5654 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
5655 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
5656 ssse3_psign<mode>3): Override prefix_rex attribute.
faa14cce 5657 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
00a0e418 5658 (ssse3_palignrti): Override length_immediate to 1.
5659 (ssse3_palignrdi): Override length_immediate to 1, override
5660 prefix_rex attribute.
faa14cce 5661 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
00a0e418 5662 (sse4a_extrqi): Override length_immediate to 2.
5663 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
5664 (sse4a_insertq): Override prefix_data16 to 0.
5665 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
5666 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
5667 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
5668 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
5669 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
5670 and length_immediate to 1.
5671 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
5672 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
5673 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
5674 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
5675 and length_immediate to 1.
5676 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
5677 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
5678 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
5679 avx_ptest256): Override prefix_extra to 1.
5680 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
5681 Override prefix_data16 and length_immediate to 1.
5682 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
5683 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
5684 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
5685 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
5686 prefix_data16 to 0 and prefix_extra to 2.
5687 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
5688 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
5689 attribute.
5690 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
5691 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
5692 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
5693 and prefix_extra to 2.
5694 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
5695 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
5696 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
5697 avx_vpermilvar<mode>3,
5698 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
5699 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
5700 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
5701 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
5702 Override prefix_extra to 1.
5703 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
5704 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
5705 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
5706 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
5707 prefix_extra and length_immediate to 1.
5708 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
5709 modrm to 0.
5710 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
5711 to 1 for the first alternative.
5712 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
5713 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
5714 cases.
5715 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
5716 *movv2sf_internal_avx, *movv2sf_internal): Override
5717 prefix_rep attribute for certain alternatives.
5718 (*mov<mode>_internal): Override prefix_rep or prefix_data16
5719 attributes for certain alternatives.
5720 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
5721 attributes for certain alternatives.
5722 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
5723 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
5724 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
5725 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
5726 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
5727 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
5728 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
5729 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
5730 length_immediate to 1 if operand 2 is const_int_operand.
5731 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
faa14cce 5732 *vec_extractv2si_1): Set length_immediate attribute to 1.
00a0e418 5733 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
5734 using old 3DNOW insn rather than SSE/3DNOW_A.
5735 (mmx_emms, mmx_femms): Clear modrm attribute.
5736
8d53b873 57372009-05-29 Martin Jambor <mjambor@suse.cz>
5738
5739 * tree-sra.c: New implementation of SRA.
5740
5741 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
5742 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
5743 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
5744 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
5745 (SRA_MAX_STRUCTURE_COUNT): Removed.
5746 (SRA_FIELD_STRUCTURE_RATIO): Removed.
5747 * doc/invoke.texi (sra-max-structure-size): Removed.
5748 (sra-field-structure-ratio): Removed.
5749
7c1ab261 57502009-05-29 Jakub Jelinek <jakub@redhat.com>
5751
5752 PR middle-end/40291
5753 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
5754 before expansion.
5755
961d3eb8 57562009-05-29 Andrey Belevantsev <abel@ispras.ru>
5757
5758 PR rtl-optimization/40101
5759 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
5760 seqno. Adjust comment.
5761 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
5762 inserting bookkeeping before a jump, the jump is not scheduled.
5763 When no positive seqno found, provide a value. Add comment.
5764
bc3c318e 57652009-05-29 Richard Guenther <rguenther@suse.de>
5766
5767 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
5768 short-cutting on the first component.
5769
7cf869dd 57702009-05-29 Jakub Jelinek <jakub@redhat.com>
5771
5772 PR middle-end/39958
5773 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
5774 for trees other than decls/types.
5775
2adb8813 57762009-05-29 Richard Guenther <rguenther@suse.de>
5777
5778 * tree-ssa-operands.c (get_expr_operands): Do not handle
5779 INDIRECT_REFs in the handled-component case. Remove
5780 unused get_ref_base_and_extent case.
5781 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
5782 tree_low_cst and host_integerp where possible.
5783 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
5784 codes for equivalence.
5785 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
5786
6471e33b 57872009-05-29 David Billinghurst <billingd@gcc.gnu.org>
5788
5789 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
5790 to tmake_file for i[34567]86-*-cygwin*.
5791
fd36071f 57922009-05-29 Jakub Jelinek <jakub@redhat.com>
5793
5794 PR target/40017
5795 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
5796 (altivec_categorize_keyword, init_vector_keywords,
5797 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
5798 similar to bool.
5799
de84ad02 58002009-05-29 Kai Tietz <kai.tietz@onevision.com>
5801
5802 * tree.c (handle_dll_attribute): Check if node is
5803 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
5804
4ce3945e 58052009-05-29 Richard Earnshaw <rearnsha@arm.com>
5806
5807 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
5808 component.
5809 (thumb2_zero_extendqidi2): Likewise.
5810
b0acfa02 58112009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
5812
5813 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
5814 instead of gen_movrt.
5815 * config/sh/sh.md (movrt): Remove.
5816
63945be2 58172009-05-28 Steve Ellcey <sje@cup.hp.com>
5818
faa14cce 5819 * doc/invoke.texi (IA-64 Options):
63945be2 5820 Add -msdata, -mfused-madd, -mno-inline-float-divide,
5821 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
5822 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
5823 -msched-prefer-non-control-spec-insns,
5824 -msched-stop-bits-after-every-cycle,
5825 -msched-count-spec-in-critical-path,
5826 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
faa14cce 5827 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
63945be2 5828 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
5829 and -msched-spec-verbose.
5830
92ecd908 58312009-05-28 Joseph Myers <joseph@codesourcery.com>
5832
faa14cce 5833 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
92ecd908 5834 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
5835 error if used.
5836 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
5837
3918bd18 58382009-05-28 Richard Guenther <rguenther@suse.de>
5839
5840 * tree-ssa-alias.c (ao_ref_init): New function.
5841 (ao_ref_base): Likewise.
5842 (ao_ref_base_alias_set): Likewise.
5843 (ao_ref_alias_set): Likewise.
5844 (refs_may_alias_p_1): Change signature.
5845 (refs_may_alias_p): Adjust.
5846 (refs_anti_dependent_p): Likewise.
5847 (refs_output_dependent_p): Likewise.
5848 (call_may_clobber_ref_p_1): Change signature.
5849 (call_may_clobber_ref_p): Adjust.
5850 (stmt_may_clobber_ref_p_1): New function split out from ...
5851 (stmt_may_clobber_ref_p): ... here.
5852 (maybe_skip_until): Adjust signature.
5853 (get_continuation_for_phi): Likewise.
5854 (walk_non_aliased_vuses): Likewise.
5855 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
5856 (ao_ref_init): Declare.
5857 (ao_ref_base): Likewise.
5858 (ao_ref_alias_set): Likewise.
5859 (stmt_may_clobber_ref_p_1): Likewise.
5860 (walk_non_aliased_vuses): Adjust.
5861 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
5862 (get_ref_from_reference_ops): remove.
5863 (vn_reference_lookup_2): Adjust signature.
5864 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
faa14cce 5865 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
3918bd18 5866 (vn_reference_lookup): Adjust.
5867 (vn_reference_insert): Likewise.
5868 (vn_reference_insert_pieces): Adjust signature.
5869 (visit_reference_op_call): Adjust.
5870 * tree-ssa-pre.c (get_expr_type): Simplify.
5871 (phi_translate_1): Adjust.
5872 (compute_avail): Likewise.
5873 (translate_vuse_through_block): Do not re-build trees.
5874 (value_dies_in_block_x): Likewise.
5875 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
5876 fields.
5877 (vn_reference_lookup_pieces): Adjust declaration.
5878 (vn_reference_insert_pieces): Likewise.
5879
f2e585c3 58802009-05-28 Benjamin Kosnik <bkoz@redhat.com>
5881
5882 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
5883 with checking disabled.
5884
7b897de3 58852009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
5886
5887 PR target/37216
5888
5889 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
5890 macro definition for support of three-operand format aligned
5891 .comm directive in assembler on cygwin/pe/mingw target OS.
5892 * configure: Regenerate.
5893 * config.h: Regenerate.
5894
5895 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
5896 aligned form of .comm directive if -mpe-aligned-commons is in effect.
5897 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
5898
5899 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
5900 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
5901
dd2644cf 59022009-05-28 Ira Rosen <irar@il.ibm.com>
5903
5904 PR tree-optimization/40254
5905 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
5906 in analysis of basic blocks.
5907
01c8e4c9 59082009-05-28 Adam Nemet <anemet@caviumnetworks.com>
5909
5910 PR middle-end/33699
faa14cce 5911 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
01c8e4c9 5912 * target-def.h (TARGET_CONST_ANCHOR): New macro.
5913 (TARGET_INITIALIZER): Use it.
5914 * cse.c (CHEAPER): Move it up to the other macros.
5915 (insert): Rename this ...
5916 (insert_with_costs): ... to this. Add cost parameters. Update
5917 function comment.
5918 (insert): New function. Call insert_with_costs.
5919 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
5920 find_reg_offset_for_const, try_const_anchors): New functions.
5921 (cse_insn): Call try_const_anchors. Adjust cost of src_related
5922 when using a const-anchor. Call insert_const_anchors.
faa14cce 5923 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
01c8e4c9 5924 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
5925
0c1c155a 59262009-05-28 Alexandre Oliva <aoliva@redhat.com>
5927
5928 * tree-inline.c (remap_decls): Enable nonlocalized variables
5929 when not optimizing.
5930
fe5c69b7 59312009-05-28 Alexandre Oliva <aoliva@redhat.com>
5932
5933 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
5934 Simplify other tests involving optimize.
5935
99385b4b 59362009-05-27 Tom Tromey <tromey@redhat.com>
5937
5938 * unwind-dw2.c (_Unwind_DebugHook): New function.
5939 (uw_install_context): Call _Unwind_DebugHook.
5940
2458dc30 59412009-05-27 Tom Tromey <tromey@redhat.com>
5942
5943 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
5944
40b6e20e 59452009-05-27 Ian Lance Taylor <iant@google.com>
5946
5947 * Makefile.in (LINKER, LINKER_FLAGS): Define.
5948 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
5949 (ALL_LINKERFLAGS): Define.
5950 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
5951 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5952 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
5953 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5954 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
5955 $(LINKER_FOR_BUILD).
5956 (build/gcov-iov$(build_exeext)): Likewise.
5957
2b86a75a 59582009-05-27 Julian Brown <julian@codesourcery.com>
5959
5960 * gcse.c (target.h): Include.
5961 (can_assign_to_reg_without_clobbers_p): Check that the target allows
5962 copy of argument to a pseudo register.
5963
b79917fd 59642009-05-27 Diego Novillo <dnovillo@google.com>
5965
5966 * tree-ssa-live.c (dump_scope_block): Document arguments.
5967 (dump_scope_blocks): Document.
5968 (debug_scope_blocks): New.
5969 * tree-flow.h (debug_scope_blocks): Declare.
5970
23c2749b 59712009-05-21 Denis Chertykov <denisc@overta.ru>
5972
faa14cce 5973 * doc/contrib.texi (Contributors): Add myself to the list.
23c2749b 5974
4c13df35 59752009-05-27 Olivier Hainque <hainque@adacore.com>
6cbeacbb 5976
5977 * expr.c (target_align): New function. Alignment the TARGET of an
5978 assignment may be assume to have.
5979 (highest_pow2_factor_for_target): Use it instead of relying on
5980 immediate tree attributes of TARGET, not necessarily honored when
5981 intermediate bitfields are involved.
5982
c2d2fbe7 59832009-05-27 H.J. Lu <hongjiu.lu@intel.com>
5984
5985 PR target/40266
5986 * config/i386/driver-i386.c (host_detect_local_cpu): Support
5987 AVX, SSE4, AES, PCLMUL and POPCNT.
5988
7aa082e5 59892009-05-27 Diego Novillo <dnovillo@google.com>
5990
5991 * tree-pretty-print.c (dump_location): New.
5992 (dump_generic_node): Call it.
5993 Factor code to handle BLOCK nodes ...
5994 (dump_block_node): ... here.
5995
a0b14cdf 59962009-05-27 Rafael Avila de Espindola <espindola@google.com>
5997
faa14cce 5998 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
5999 with it.
a0b14cdf 6000 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
6001 included.
6002 * gcc-plugin.h: Include config.h and system.h.
6003 (IN_GCC): Define if not defined.
6004
97903452 60052009-05-27 Hans-Peter Nilsson <hp@axis.com>
6006
6007 PR middle-end/40249
6008 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
6009 with -fno-inline.
6010
452bfb8b 60112009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
6012
6013 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
6014 applicable.
6015 * config/m32r/m32r.h: Ditto.
6016 * config/m32r/m32r.md: Ditto.
6017 * config/m32r/predicates.md: Ditto.
6018
75f1788a 60192009-05-27 Alexandre Oliva <aoliva@redhat.com>
6020
6021 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
6022
740cd0be 60232009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
6024
6025 * doc/plugins.texi
6026 (Loading plugins): typo.
6027 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
6028 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
6029 (Interacting with the GCC Garbage Collector): Added new section.
6030 (Giving information about a plugin): Added new section for
6031 PLUGIN_INFO.
740cd0be 6032 * ggc.h (ggc_register_root_tab): Added declaration.
6033 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
6034 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
6035 (register_callback): Improved comment in declaration.
faa14cce 6036 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
6037 (extra_root_vec) Added static variable for dynamic roots registration.
740cd0be 6038 (ggc_register_root_tab) Added new routine.
6039 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
6040 PLUGIN_GGC_MARKING event.
6041 * ggc-zone.c: Include plugin.h.
6042 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
6043 * ggc-page.c: Include plugin.h.
6044 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
6045 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
6046 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
6047 (register_callback): check lack of callbacks for
6048 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
6049 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
6050 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
6051 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
6052 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
6053 dependency on plugin.h.
6054 (plugin.o): Added dependency on ggc.h...
6055
79e662e5 60562009-05-26 Richard Guenther <rguenther@suse.de>
6057
6058 PR middle-end/40248
6059 Revert
6060 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
6061 with mismatched comparison modes.
6062
6063 * expr.c (expand_expr_real_1): Expand the operand of a
6064 VIEW_CONVERT_EXPR in its natural mode.
6065
585d4848 60662009-05-26 Ian Lance Taylor <iant@google.com>
6067
6068 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
6069 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
6070 (ALL_COMPILERFLAGS): Define.
6071 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
6072 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
6073 (collect2$(exeext), collect2.o): Likewise.
6074 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
6075 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
6076 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
6077 (libbackend.o, intl.o, cppdefault.o): Likewise.
6078 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
6079 (build/%.o): Use $(COMPILER_FOR_BUILD).
6080 (build/gen%$(build_exeext)): Likewise.
6081 (build/gcov-iov$(build_exeext)): LIkewise.
6082 * config/t-darwin (darwin.o): Use $(COMPILER).
6083 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
6084 * config/t-sol2 (sol2-c.o): Likewise.
6085 (sol2.o): Likewise.
6086 * config/t-vxworks (vxworks.o): Likewise.
6087 * config/x-darwin (host-darwin.o): Likewise.
6088 * config/x-hpux (host-hpux.o): Likewise.
6089 * config/x-linux (host-linux.o): Likewise.
6090 * config/x-solaris (host-solaris.o): Likewise.
6091 * config/alpha/x-alpha (driver-alpha.o): Likewise.
6092 * config/arm/t-arm (arm-c.o): Likewise.
6093 * config/arm/t-pe (pe.o): Likewise.
6094 * config/arm/t-wince-pe (pe.o): Likewise.
6095 * config/i386/t-cygming (winnt.o): Likewise.
6096 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
6097 * config/i386/t-cygwin (cygwin1.o): Likewise.
6098 (cygwin2.o): Likewise.
6099 * config/i386/t-i386 (i386-c.o): Likewise.
6100 * config/i386/t-interix (winnt.o): Likewise.
6101 * config/i386/t-netware (netware.o): Likewise.
6102 * config/i386/t-nwld (nwld.o): Likewise.
6103 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
6104 * config/i386/x-i386 (driver-i386.o): Likewise.
6105 * config/i386/x-cygwin (host-cygwin.o): Likewise.
6106 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
6107 * config/ia64/t-ia64 (ia64-c.o): Likewise.
6108 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
6109 * config/mips/x-native (driver-native.o): Likewise.
6110 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
6111 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
6112 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
6113 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
6114 * config/score/t-score-elf (score7.o): Likewise.
6115 (score3.o): Likewise.
6116 * config/sh/t-sh (sh-c.o): Likewise.
6117 * config/sh/t-symbian (sh-c.o): Likewise.
6118 (symbian.o): Likewise.
6119 * config/spu/t-spu-elf (spu-c.o): Likewise.
6120 * config/v850/t-v850 (v850-c.o): Likewise.
6121 * config/v850/t-v850e (v850-c.o): Likewise.
6122
388a0bc7 61232009-05-26 Richard Guenther <rguenther@suse.de>
6124
6125 PR tree-optimization/40122
6126 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
6127 VECTOR_CSTs if possible.
6128 (fold_gimple_assign): Likewise.
6129
f6d729b8 61302009-05-26 Richard Guenther <rguenther@suse.de>
6131
6132 PR middle-end/40252
6133 * fold-const.c (fold_binary): Use the correct types for building
6134 rotates.
6135
ba3f9c71 61362009-05-26 Richard Guenther <rguenther@suse.de>
6137
6138 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
6139 redundant calls to merge_alias_info.
6140 (bump_vector_ptr): Likewise.
6141 * tree-ssa-copy.c (merge_alias_info): Remove.
6142 (replace_exp_1): Remove call to merge_alias_info.
6143 (propagate_tree_value): Likewise.
6144 (fini_copy_prop): Propagate points-to info.
6145 * tree-flow.h (merge_alias_info): Remove.
6146
93829856 61472009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
6148
6149 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
6150
97343302 61512009-05-25 Jan Hubicka <jh@suse.cz>
6152
6153 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6154 * cgraph.h (struct inline_summary): New filed self_wize,
6155 size_inlining_benefit, self_time and time_inlining_benefit.
6156 (struct cgraph_global_info): Replace insns by time ans size fields.
6157 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6158 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6159 (ipcp_update_callgraph): Do not touch function bodies.
6160 * ipa-inline.c: Include except.h
6161 (MAX_TIME): New constant.
6162 (overall_insns): Remove.
6163 (leaf_node_p): New.
6164 (overall_size, max_benefit): New static variables.
6165 (cgraph_estimate_time_after_inlining): New function.
6166 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6167 (cgraph_clone_inlined_nodes): Update size.
6168 (cgraph_mark_inline_edge): Update size.
6169 (cgraph_estimate_growth): Use size info.
6170 (cgraph_check_inline_limits): Check size.
6171 (cgraph_default_inline_p): Likewise.
6172 (cgraph_edge_badness): Compute badness based on benefit and size cost.
6173 (cgraph_decide_recursive_inlining): Check size.
faa14cce 6174 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6175 and times.
97343302 6176 (cgraph_decide_inlining): Likewise.
6177 (cgraph_decide_inlining_incrementally): Likewise; honor
6178 PARAM_EARLY_INLINING_INSNS.
6179 (likely_eliminated_by_inlining_p): New predicate.
6180 (estimate_function_body_sizes): New function.
6181 (compute_inline_parameters): Use it.
6182 * except.c (must_not_throw_labels): New function.
6183 * except.h (must_not_throw_labels): Declare.
6184 * tree-inline.c (init_inline_once): Kill inlining_weigths
6185 * tree-ssa-structalias.c: Avoid uninitialized warning.
6186 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6187 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6188 (PARAM_INLINE_CALL_COST): Remove.
6189 (PARAM_EARLY_INLINING_INSNS): New.
6190
d8021dea 61912009-05-25 Richard Guenther <rguenther@suse.de>
6192
6193 PR tree-optimization/36327
6194 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
faa14cce 6195 callback for reference translation or lookup at the point of may-defs.
d8021dea 6196 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
6197 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
6198 for union COMPONENT_REFs.
6199 (vn_reference_lookup_3): New callback. Lookup from memset
6200 and CONSTRUCTOR assignment, translate through struct copies.
6201 (vn_reference_lookup_pieces): Make sure to not free the
6202 passed operands array. Adjust walk_non_aliased_vuses call.
6203 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
6204 make sure we do not leak memory.
6205
7f81b5ee 62062009-05-25 Richard Guenther <rguenther@suse.de>
6207
6208 * tree-ssa-alias.h (dump_points_to_solution): Declare.
6209 * tree-inline.c (expand_call_inline): Reset the escaped and
6210 callused solutions.
6211 * tree-ssa-structalias.c (pass_build_ealias): New.
6212 * tree-pass.h (pass_build_ealias): Declare.
6213 * passes.c (init_optimization_passes): Add PTA during
6214 early optimizations.
6215 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
6216 and CALLUSED solutions.
6217 (dump_points_to_solution): New function, split out from ...
6218 (dump_points_to_info_for): ... here.
6219 * tree-parloops.c (parallelize_loops): Reset the escaped and
6220 callused solutions.
6221
6a352190 62222009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6223
6224 PR bootstrap/40027
6225 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
6226 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
6227
765a637f 62282009-05-25 Ira Rosen <irar@il.ibm.com>
6229
6230 PR tree-optimization/40238
6231 * tree-vect-stmts.c (vect_init_vector): Insert initialization
6232 statements after basic block's labels.
6233 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
6234 to free the allocated memory.
6235
b4dce965 62362009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
6237
6238 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
6239 return address with a USE.
6240
3b32ccd7 62412009-05-24 Richard Guenther <rguenther@suse.de>
6242
6243 PR middle-end/40233
6244 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
6245 array type from the main variant of the inner type.
6246
98897d2c 62472009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6248
6249 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
6250 definition to bool (from int) to un-break build.
6251 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
6252
4c5fd53c 62532009-05-24 Paolo Bonzini <bonzini@gnu.org>
6254
6255 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
6256 discard_stmt_changes): Delete.
6257 * tree-ssa-operands.c (scb_stack): Delete.
6258 (init_ssa_operands): Do not initialize it.
6259 (fini_ssa_operands): Do not free it.
6260 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
6261
6262 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
6263 update_stmt, remove the others. Fix comments.
6264 * tree-dfa.c (optimize_stack_restore): Likewise.
6265 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
6266 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
6267 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
6268 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
6269 Likewise.
6270 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
6271 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
faa14cce 6272 (dom_opt_finalize_block): Likewise, adjusting access to
6273 stmts_to_rescan.
4c5fd53c 6274 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
6275 (stmts_to_rescan): Change item type to gimple.
6276 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
6277
37545e54 62782009-05-24 Ira Rosen <irar@il.ibm.com>
6279
6280 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
6281 * tree-pass.h (pass_slp_vectorize): New pass.
6282 * params.h (SLP_MAX_INSNS_IN_BB): Define.
6283 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
6284 * tree-vectorizer.c (timevar.h): Include.
6285 (user_vect_verbosity_level): Declare.
6286 (vect_location): Fix comment.
6287 (vect_set_verbosity_level): Update user_vect_verbosity_level
6288 instead of vect_verbosity_level.
6289 (vect_set_dump_settings): Add an argument. Ignore user defined
6290 verbosity if dump flags require higher level of verbosity. Print to
6291 stderr only for loop vectorization.
6292 (vectorize_loops): Update call to vect_set_dump_settings.
6293 (execute_vect_slp): New function.
6294 (gate_vect_slp): Likewise.
6295 (struct gimple_opt_pass pass_slp_vectorize): New.
6296 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
6297 access its members.
6298 (vec_info_for_bb): New function.
6299 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
6300 (VECTORIZATION_ENABLED): New macro.
6301 (SLP_ENABLED, SLP_DISABLED): Likewise.
6302 (vect_is_simple_use): Add bb_vec_info argument.
6303 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
6304 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
6305 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
6306 vect_schedule_slp, vect_analyze_slp): Likewise.
6307 (vect_analyze_stmt): Add slp_tree argument.
6308 (find_bb_location): Declare.
6309 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
6310 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
6311 (vect_analyze_loop_operations, vect_analyze_loop,
6312 get_initial_def_for_induction, vect_create_epilog_for_reduction,
6313 vect_finalize_reduction, vectorizable_reduction,
6314 vectorizable_live_operation, vect_transform_loop): Likewise.
6315 * tree-data-ref.c (dr_analyze_innermost): Update comment,
6316 skip evolution analysis if analyzing a basic block.
6317 (dr_analyze_indices): Likewise.
6318 (initialize_data_dependence_relation): Skip the test whether the
6319 object is invariant for basic blocks.
6320 (compute_all_dependences): Skip dependence analysis for data
6321 references in basic blocks.
6322 (find_data_references_in_stmt): Don't fail in case of invariant
6323 access in basic block.
6324 (find_data_references_in_bb): New function.
6325 (find_data_references_in_loop): Move code to
2377feea 6326 find_data_references_in_bb and add a call to it.
37545e54 6327 (compute_data_dependences_for_bb): New function.
6328 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
6329 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
6330 that STEP is 0.
6331 (vect_analyze_data_ref_dependence): Check for interleaving in case of
6332 unknown dependence in basic block and fail in case of dependence in
6333 basic block.
6334 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
6335 dependence instances from either loop or basic block vectorization
6336 info.
6337 (vect_compute_data_ref_alignment): Check if it is loop vectorization
6338 before calling nested_in_vect_loop_p.
6339 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
6340 dependence instances from either loop or basic block vectorization
6341 info.
6342 (vect_verify_datarefs_alignment): Likewise.
6343 (vect_enhance_data_refs_alignment): Adjust function calls.
6344 (vect_analyze_data_refs_alignment): Likewise.
6345 (vect_analyze_group_access): Fix printing. Skip different checks if
6346 DR_STEP is 0. Keep strided stores either in loop or basic block
6347 vectorization data structure. Fix indentation.
6348 (vect_analyze_data_ref_access): Fix comments, allow zero step in
6349 basic blocks.
6350 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
6351 dependence instances from either loop or basic block vectorization
6352 info.
6353 (vect_analyze_data_refs): Update comment. Call
6354 compute_data_dependences_for_bb to analyze basic blocks.
6355 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
6356 case of loop vectorization. In case of basic block vectorization use
2377feea 6357 data-ref itself as a base.
37545e54 6358 (vect_create_data_ref_ptr): In case of basic block vectorization:
6359 don't advance the pointer, add new statements before the current
6360 statement. Adjust function calls.
6361 (vect_supportable_dr_alignment): Support only aligned accesses in
6362 basic block vectorization.
6363 * common.opt (ftree-slp-vectorize): New flag.
6364 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
6365 (vect_pattern_recog_1): Likewise.
6366 * tree-vect-stmts.c (process_use): Likewise.
6367 (vect_init_vector): Add new statements in the beginning of the basic
6368 block in case of basic block SLP.
6369 (vect_get_vec_def_for_operand): Adjust function calls.
6370 (vect_finish_stmt_generation): Likewise.
6371 (vectorizable_call): Add assert that it is loop vectorization, adjust
6372 function calls.
6373 (vectorizable_conversion, vectorizable_assignment): Likewise.
6374 (vectorizable_operation): In case of basic block SLP, take
6375 vectorization factor from statement's type and skip the relevance
6376 check. Adjust function calls.
6377 (vectorizable_type_demotion): Add assert that it is loop
6378 vectorization, adjust function calls.
6379 (vectorizable_type_promotion): Likewise.
6380 (vectorizable_store): Check for outer loop only in case of loop
6381 vectorization. Adjust function calls. For basic blocks, skip the
6382 relevance check and don't advance pointers.
6383 (vectorizable_load): Likewise.
6384 (vectorizable_condition): Add assert that it is loop vectorization,
6385 adjust function calls.
6386 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
6387 that it is not reduction, get vector type, call only supported
2377feea 6388 functions, skip loop specific parts.
37545e54 6389 (vect_transform_stmt): Check for outer loop only in case of loop
6390 vectorization.
6391 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
6392 (vect_is_simple_use): Fix comment, add new argument, fix conditions
6393 for external definition.
6394 * passes.c (pass_slp_vectorize): New pass.
6395 * tree-vect-slp.c (find_bb_location): New function.
6396 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
6397 check for patterns only in loops.
6398 (vect_build_slp_tree): Add argument, adjust function calls, fail in
6399 case of multiple types in basic block SLP.
6400 (vect_mark_slp_stmts_relevant): New function.
6401 (vect_supported_load_permutation_p): Fix comment.
6402 (vect_analyze_slp_instance): Add argument. In case of basic block
6403 SLP, take vectorization factor from statement's type, check that
6404 unrolling factor is 1. Adjust function call. Save SLP instance in
6405 either loop or basic block vectorization structure. Return FALSE,
6406 if SLP failed.
6407 (vect_analyze_slp): Add argument. Get strided stores groups from
6408 either loop or basic block vectorization structure. Return FALSE
6409 if basic block SLP failed.
6410 (new_bb_vec_info): New function.
6411 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
6412 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
6413 (vect_schedule_slp): Add argument. Get SLP instances from either
6414 loop or basic block vectorization structure. Set vectorization factor
6415 to be 1 for basic block SLP.
6416 (vect_slp_transform_bb): New function.
6417 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
6418
88facd8b 64192009-05-23 Mark Mitchell <mark@codesourcery.com>
6420
6421 * final.c (shorten_branches): Do not align labels for jump tables.
6422 (final_scan_insn): Use JUMP_TABLE_DATA_P.
6423
507ec136 64242009-05-23 Eric Botcazou <ebotcazou@adacore.com>
6425
6426 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
6427 Remove outdated reference to flow.c and fix nits.
6428 * doc/gccint.texi: Tweak RTL description.
6429 * doc/rtl.texi: Likewise.
6430
947dd720 64312009-05-23 Denis Chertykov <chertykov@gmail.com>
6432
6433 * config/avr/avr.c: Change my email address.
6434 * config/avr/avr.h: Likewise.
6435 * config/avr/avr.md: Likewise.
6436 * config/avr/avr-protos.h: Likewise.
6437 * config/avr/libgcc.S: Likewise.
6438
9d98604b 64392009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
6440
6441 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
6442 (spu_split_load, spu_split_store): Change return type to int.
6443 (spu_split_convert): Declare.
6444 * config/spu/predicates.md (spu_mem_operand): Remove.
6445 (spu_mov_operand): Update.
6446 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
6447 * config/spu/spu.c (regno_aligned_for_load): Remove.
6448 (reg_aligned_for_addr, spu_expand_load): Define.
6449 (spu_expand_extv): Reimplement and handle MEM.
6450 (spu_expand_insv): Handle MEM.
6451 (spu_sched_reorder): Handle insn's with length 0.
6452 (spu_legitimate_address_p): Reimplement.
6453 (store_with_one_insn_p): Return TRUE for any mode with size
6454 larger than 16 bytes.
6455 (address_needs_split): Define.
6456 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
6457 operands.
6458 (spu_convert_move): Define.
2377feea 6459 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
9d98604b 6460 (spu_split_store): Change all MEM's to TImode.
6461 (spu_init_expanders): Preallocate registers that correspond to
6462 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
6463 mark_reg_pointer.
6464 (spu_split_convert): Define.
6465 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
6466 (_move<mode>, _movdi, _movti): Update predicate and condition.
6467 (load, store): Change to define_split.
6468 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
6469 extend<mode>ti2.
6470 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
6471 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
6472 define_insn_and_split of lshr<mode>3.
6473 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
6474 (<v>ashr<mode>3_imm): Define.
6475 (extv, extzv, insv): Allow MEM operands.
6476 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
6477 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
6478 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
6479 (_spu_convert2): Change to define_insn_and_split and remove the
6480 corresponding define_peephole2.
6481 (stack_protect_set, stack_protect_test, stack_protect_test_si):
6482 Change predicates to memory_operand.
6483
beeea7ed 64842009-05-22 Mark Mitchell <mark@codesourcery.com>
6485
6486 * config/arm/thumb2.md: Add 16-bit multiply instructions.
beeea7ed 6487
4b2b1011 64882009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
6489
6490 PR tree-optimization/40219
6491 * tree.c (iterative_hash_expr): Make sure the builtin function is
6492 a normal builtin function and not a front end or back end builtin
6493 before indexing into the built_in_decls array.
6494
2a3ebafa 64952009-05-22 Richard Guenther <rguenther@suse.de>
6496
6497 PR middle-end/38964
6498 * alias.c (write_dependence_p): Do not use TBAA for answering
6499 anti-dependence or output-dependence.
2377feea 6500 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
2a3ebafa 6501 (emit_pointer_definition): Remove.
6502 (emit_alias_warning): Likewise.
6503 (find_what_var_points_to): Remove TBAA pruning code.
6504 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
6505 violations.
6506 (compute_points_to_sets): Remove code computing the set of
6507 dereferenced pointers.
6508 * tree-data-ref.c (dr_may_alias_p): Properly use the split
6509 oracle for querying anti and output dependencies.
6510 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
6511 if TBAA may be applied.
6512 (refs_anti_dependent_p): New function.
6513 (refs_output_dependent_p): Likewise.
6514 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
6515 (refs_output_dependent_p): Likewise.
6516 * doc/tree-ssa.texi (Memory model): New section.
6517 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
6518 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
6519 * cfgexpand.c (expand_gimple_basic_block): Do not handle
6520 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
6521 * expr.c (expand_expr_real_1): Likewise.
6522 * gimple-low.c (lower_stmt): Likewise.
6523 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
6524 (dump_gimple_cdt): Remove.
6525 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
6526 (gimple_size): Likewise.
6527 (walk_gimple_op): Likewise.
6528 (is_gimple_stmt): Likewise.
6529 (walk_stmt_load_store_addr_ops): Likewise.
6530 (gimple_build_cdt): Remove.
6531 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
6532 * gimple.h (gimple_cdt_new_type): Remove.
6533 (gimple_cdt_new_type_ptr): Likewise.
6534 (gimple_cdt_set_new_type): Likewise.
6535 (gimple_cdt_location): Likewise.
6536 (gimple_cdt_location_ptr): Likewise.
6537 (gimple_cdt_set_location): Likewise.
6538 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
6539 * tree-cfg.c (remove_useless_stmts_1): Do not handle
6540 GIMPLE_CHANGE_DYNAMIC_TYPE.
6541 (verify_types_in_gimple_stmt): Likewise.
6542 * tree-inline.c (estimate_num_insns): Likewise.
6543 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
6544 (copy_decl_to_var): Likewise.
6545 (copy_result_decl_to_var): Likewise.
6546 * tree-pretty-print.c (dump_generic_node): Do not handle
6547 CHANGE_DYNAMIC_TYPE_EXPR.
6548 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6549 * tree-ssa-operands.c (get_expr_operands): Likewise.
6550 * tree-ssa-structalias.c (struct variable_info): Remove
6551 no_tbaa_pruning member.
6552 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
6553 (unify_nodes): Do not copy it.
6554 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
6555 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
6556 (set_uids_in_ptset): Do not check it.
6557 (find_what_var_points_to): Likewise.
6558 (compute_tbaa_pruning): Remove.
6559 (compute_points_to_sets): Do not call it.
6560 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
6561 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
6562 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
6563 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
6564 (DECL_NO_TBAA_P): Likewise.
6565 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
6566 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
6567 (expand_omp_atomic_pipeline): Do not set it.
6568 * print-tree.c (print_node): Do not dump it.
6569 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6570 redundant check.
6571
59082b2e 65722009-05-22 Vladimir Makarov <vmakarov@redhat.com>
6573
6574 PR target/39856
6575 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
6576 for clobber.
6577
aed4eb5d 65782009-05-22 Mark Mitchell <mark@codesourcery.com>
6579
6580 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
6581 non-external.
6582
b384c0ce 65832009-05-22 Ben Elliston <bje@au.ibm.com>
6584
6585 * Makefile.in (bversion.h, s-bversion): New targets.
6586 (TOPLEV_H): Add bversion.h.
6587 * toplev.h: Include "bversion.h".
6588 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
6589 the __format__ attribute only if compiling with the same version
6590 of GCC as the sources (the "build version").
6591
0fb56989 65922009-05-22 Ben Elliston <bje@au.ibm.com>
6593
6594 * c-format.c (handle_format_attribute): Fix comment typo.
6595
4fbe0a55 65962009-05-21 Steve Ellcey <sje@cup.hp.com>
6597
6598 PR target/37846
6599 * config/ia64/ia64.opt (mfused-madd): New.
6600 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
6601 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
6602 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
6603 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
6604 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
6605 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
6606 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
6607 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
6608 instruction if !TARGET_FUSED_MADD.
6609 (fpma, fpms): Remove colon from name.
6610
869bac23 66112009-05-22 Richard Guenther <rguenther@suse.de>
6612
6613 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
6614 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
6615 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
6616 TARGET_MEM_REF.
6617 (create_expression_by_pieces): Only convert if necessary.
6618 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
6619 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
6620
e716188e 66212009-05-21 Adam Nemet <anemet@caviumnetworks.com>
6622
6623 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
6624 regular pattern from a template and rename it ...
6625 (*extzv_truncsi_exts): ... to this.
6626
18c97951 66272009-05-21 Richard Guenther <rguenther@suse.de>
6628
6629 * cgraph.h (struct cgraph_node): Remove inline_decl member.
6630 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
6631 (cgraph_default_inline_p): Likewise.
6632 (cgraph_decide_inlining_incrementally): Likewise.
6633
525b61fa 66342009-05-21 H.J. Lu <hongjiu.lu@intel.com>
6635 Uros Bizjak <ubizjak@gmail.com>
6636
6637 * config/i386/cpuid.h (bit_MOVBE): New.
6638
6639 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
6640
6641 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
6642 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
6643 (ix86_handle_option): Handle OPT_mmovbe.
6644 (ix86_target_string): Add -mmovbe.
6645 (pta_flags): Add PTA_MOVBE.
6646 (processor_alias_table): Add PTA_MOVBE to "atom".
6647 (override_options): Handle PTA_MOVBE.
6648
6649 * config/i386/i386.h (TARGET_MOVBE): New.
6650
6651 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
6652 (*bswapsi_movbe): New.
6653 (*bswapdi_movbe): Likewise.
6654 (bswapdi2): Renamed to ...
6655 (*bswapdi_1): This.
6656 (bswapdi2): New expander.
6657
6658 * config/i386/i386.opt (mmovbe): New.
6659
6660 * doc/invoke.texi: Document -mmovbe.
6661
0b3a031a 66622009-05-21 Taras Glek <tglek@mozilla.com>
6663
6664 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
6665 * gcc-plugin.h (plugin_init): Updated signature.
6666 * gcc-plugin.h (plugin_name_args): Moved to this header.
525b61fa 6667 * doc/plugins.texi (plugin_init): Updated documention to reflect
6668 API change.
0b3a031a 6669 * doc/plugins.texi (plugin_name_args): Added to documention.
6670
3d8bad71 66712009-05-21 Mark Mitchell <mark@codesourcery.com>
6672
6673 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
6674 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
6675
d41c63a8 66762009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
6677
6678 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
6679 JUMP_TABLE_DATA_P predicates where applicable.
6680 * config/i386/predicates.md: Ditto.
6681 * config/i386/sse.md: Ditto.
6682
2aa911e0 66832009-05-21 Jakub Jelinek <jakub@redhat.com>
6684
ff07cef7 6685 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
6686 operand2 -128 override length_immediate attribute to 1.
6687 * config/i386/predicates.md (constm128_operand): New predicate.
6688
2aa911e0 6689 * config/i386/i386.c (memory_address_length): Handle %r12
6690 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
6691 also check REGNO.
6692 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
6693 mode look through optional ZERO_EXTEND and SUBREG.
6694 * config/i386/i386.md (R12_REG): New define_constant.
6695 (prefix_data16): For sse unit set also for MODE_TI insns.
6696 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
6697 insns set if operand 1 is ext_QIreg_operand.
6698 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
6699 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
6700 immediate.
6701 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
6702 mode from MODE_DI to MODE_SI.
6703 (movdi_1_rex64): Override modrm and length_immediate attributes
6704 only for movabs (TYPE_IMOV, alternative 2).
6705 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
6706 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
6707 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
6708 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
6709 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
6710 prefix_rex attribute if DImode.
6711 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
6712 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
6713 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
6714 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
6715 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
6716 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
6717 Likewise. For TYPE_IMOV clear length_immediate attribute.
6718 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
6719 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
6720 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
6721 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
6722 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
6723 or one operand TYPE_ISHIFT.
6724 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
6725 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
6726 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
6727 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
6728 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
6729 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
6730 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
6731 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
6732 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
6733 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
6734 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
6735 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
6736 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
6737 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
6738 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
6739 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
6740 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
6741 set mode attribute, don't override length attribute.
6742 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
6743 to 1.
6744 (return_internal_long): Set length attribute to 2 instead of 1.
6745 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
6746 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
6747 prefix_rex attribute.
2377feea 6748 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
6749 New predicates.
6750 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
2aa911e0 6751
dad3e2d4 67522009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6753
6754 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
6755
f352a3fb 67562009-05-20 Ian Lance Taylor <iant@google.com>
6757
6758 * tree.c (build_tree_list_vec_stat): New function.
6759 (ctor_to_vec): New function.
6760 (build_nt_call_vec): New function.
6761 (build_call_array): Change args to be a const pointer.
6762 (build_call_vec): New function.
6763 * tree.h (build_nt_call_vec): Declare.
6764 (build_tree_list_vec_stat): Declare.
6765 (build_tree_list_vec): Define.
6766 (build_call_array): Update declaration.
6767 (build_call_vec): Declare.
6768 (ctor_to_vec): Declare.
6769 * c-common.c (tree_vector_cache): New static variable.
6770 (make_tree_vector): New function.
6771 (release_tree_vector): New function.
6772 (make_tree_vector_single): New function.
6773 (make_tree_vector_copy): New function.
6774 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
6775 (make_tree_vector_single, make_tree_vector_copy): Declare.
6776 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
6777 (c_parser_expr_list): Don't manage cache here, instead call
6778 make_tree_vector.
6779 (c_parser_release_expr_list): Remove static function.
6780 (c_parser_vec_to_tree_list): Remove static function.
6781 (c_parser_attributes): Call build_tree_list_vec instead of
6782 c_parser_vec_to_tree_list. Call release_tree_vector instead of
6783 c_parser_release_expr_list.
6784 (c_parser_postfix_expression_after_primary): Likewise.
6785 (c_parser_objc_keywordexpr): Likewise.
6786
2b3c93a3 67872009-05-20 Sandra Loosemore <sandra@codesourcery.com>
6788
6789 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
6790 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
6791 TARGET_CONVERT_TO_TYPE.
6792 * hooks.c (hook_tree_const_tree_null): Define.
6793 * hooks.h (hook_tree_const_tree_null): Declare.
6794 * target.h (struct gcc_target): Add invalid_parameter_type,
6795 invalid_return_type, promoted_type, and convert_to_type fields.
6796 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
6797 (TARGET_INVALID_RETURN_TYPE): Define.
6798 (TARGET_PROMOTED_TYPE): Define.
6799 (TARGET_CONVERT_TO_TYPE): Define.
6800 (TARGET_INITIALIZER): Update for new fields.
6801 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
6802 (grokparms): Check targetm.invalid_parameter_type.
6803 * c-typeck.c (default_conversion): Check targetm.promoted_type.
6804 * c-convert.c (convert): Check targetm.convert_to_type.
6805
d5594fe1 68062009-05-20 Adam Nemet <anemet@caviumnetworks.com>
6807
6808 * config/mips/mips.md (*extenddi_truncate<mode>,
6809 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
6810 defintions.
6811 (*extendhi_truncateqi): New define_insn_and_sptit.
6812
6189c517 68132009-05-20 Jakub Jelinek <jakub@redhat.com>
6814
6815 PR middle-end/40204
6816 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
2377feea 6817 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
6189c517 6818
52dbb6e6 68192009-05-20 Eric Botcazou <ebotcazou@adacore.com>
6820
6821 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
6822 the operand of VIEW_CONVERT_EXPR.
6823
4ec32090 68242009-05-20 H.J. Lu <hongjiu.lu@intel.com>
6825
6826 * config/i386/driver-i386.c (host_detect_local_cpu): Check
faa14cce 6827 extended family and model for Intel processors. Support Intel Atom.
4ec32090 6828
c1e61953 68292009-05-20 Olivier Hainque <hainque@adacore.com>
6830
6831 * gstab.h (stab_code_type): Define, to be used instead of the
6832 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
6833 notice.
6834 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
6835 occurrences by stab_code_type.
6836 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
6837
b39bfa08 68382009-05-20 Martin Jambor <mjambor@suse.cz>
6839
6840 * tree-flow.h (insert_edge_copies_seq): Undeclare.
6841 (sra_insert_before): Likewise.
6842 (sra_insert_after): Likewise.
6843 (sra_init_cache): Likewise.
6844 (sra_type_can_be_decomposed_p): Likewise.
6845 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
6846 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
6847 (sra_insert_before): Likewise.
6848 (sra_insert_after): Likewise.
6849 (sra_init_cache): Likewise.
6850 (insert_edge_copies_seq): Made static and moved upwards.
6851
6852 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
6853 case.
6854
6855 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
6856
6857 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
6858 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
6859 simple copies.
6860
f367b3d4 68612009-05-20 Richard Guenther <rguenther@suse.de>
6862
6863 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
6864 with mismatched comparison modes.
6865
90560cad 68662009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2377feea 6867
90560cad 6868 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
2377feea 6869 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
6870 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
6871 with shifts for Thumb2.
6872 (orsi_notsi): New for orn.
6873 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
6874 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
6875 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
6876 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
6877 Don't invert remainder for IOR.
90560cad 6878
fffbaaf2 68792009-05-19 Zdenek Dvorak <ook@ucw.cz>
6880
6881 PR tree-optimization/40087
6882 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
6883 number_of_iterations_ne): Rename never_infinite argument.
6884 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
6885 number_of_iterations_le): Handle pointer-type ivs when
6886 exit_must_be_taken is false.
6887 (number_of_iterations_cond): Do not always assume that
6888 exit_must_be_taken if the control variable is a pointer.
6889
b6d7101e 68902009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
6891
6892 * c-typeck.c (build_binary_op): Allow % on integal vectors.
6893 * doc/extend.texi (Vector Extension): Document that % is allowed too.
6894
d0573158 68952009-05-19 H.J. Lu <hongjiu.lu@intel.com>
6896
6897 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
6898 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
6899
e80c6822 69002009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
6901
6902 PR c/40172
6903 * c.opt (Wlogical-op): Disabled by default.
6904 * c-opt (c_common_post_options): Do not enable Wlogical-op with
6905 Wextra.
6906 * doc/invoke.texi (Wlogical-op): Likewise.
6907
191bdb6e 69082009-05-19 Eric Botcazou <ebotcazou@adacore.com>
6909
6910 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
6911 into CASE_CONVERT.
6912 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
6913 Propagate the type of the first operand.
6914 <ASSERT_EXPR>: Simplify.
6915 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
6916 Rewrite using the RHS code as discriminant.
6917 <NOP_EXPR>: Turn into CASE_CONVERT.
6918 <PLUS_EXPR>: Propagate the type of the first operand.
6919
50738926 69202009-05-19 Steve Ellcey <sje@cup.hp.com>
6921
6922 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
6923 (ia64_dconst_0_375): New.
6924 * config/ia64/ia64.c (ia64_override_options): Remove
6925 -minline-sqrt-min-latency warning.
6926 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
6927 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
6928 * config/ia64/ia64.md (*sqrt_approx): Remove.
6929 (sqrtsf2): Remove #if 0.
6930 (sqrtsf2_internal_thr): Rewrite and move to div.md.
6931 (sqrtdf): Remove assert.
6932 (sqrtdf2_internal_thr): Rewrite and move to div.md.
6933 (sqrtxf2): Remove #if 0.
6934 (sqrtxf2_internal_thr): Rewrite and move to div.md.
6935 * div.md (sqrt_approx_rf): New.
6936 (sqrtsf2_internal_thr): New implementation.
6937 (sqrtsf2_internal_lat): New.
6938 (sqrtdf2_internal_thr: New implementation.
6939 (sqrtxf2_internal): New implementation.
6940
b0b1cbb9 69412009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
6942 Hans-Peter Nilsson <hp@axis.com>
6943
6944 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
6945 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
6946 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
6947 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
6948 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
6949 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
6950 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
6951 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
6952 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
6953 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
6954 * c-common.c: ...from here.
6955
bac21f4c 69562009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
6957
faa14cce 6958 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
bac21f4c 6959
44d89feb 69602009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6961
6962 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
6963
46d25b89 69642009-05-19 Ben Elliston <bje@au.ibm.com>
6965
6966 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
6967 assignments with memcpy calls.
6968 (add_fdes): Likewise.
6969 (binary_search_unencoded_fdes): Likewise.
6970 (linear_search_fdes): Eliminate type puns.
6971
9e019299 69722009-05-19 Richard Guenther <rguenther@suse.de>
6973
6974 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
6975 not falsely claim to have propagated into all uses.
6976
83c2609c 69772009-05-19 Ben Elliston <bje@au.ibm.com>
6978
6979 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
6980 version to v3.0.
6981
eeabeacf 69822009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
6983
6984 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
6985 * config/sh/sh.c (sh_legitimate_address_p): Make static.
6986 (TARGET_LEGITIMATE_ADDRESS_P): New.
6987 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6988 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6989
9c569d54 69902009-05-18 Dodji Seketeli <dodji@redhat.com>
6991
6992 PR debug/40109
6993 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
6994 child of the containing namespace's DIE.
6995
7c6d4a4d 69962009-05-18 Adam Nemet <anemet@caviumnetworks.com>
6997
6998 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
6999 *zero_extendhi_truncqi): Move after the zero_extend patterns.
7000 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
7001 extend patterns.
7002
3559347d 70032009-05-18 H.J. Lu <hongjiu.lu@intel.com>
7004
7005 PR target/39942
7006 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
7007 gen_align with gen_pad.
7008 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
7009 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
7010
7011 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
7012 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
7013
7014 * config/i386/i386.md (align): Renamed to ...
7015 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
7016 ASM_OUTPUT_MAX_SKIP_PAD.
7017
f422081b 70182009-05-18 Andreas Schwab <schwab@linux-m68k.org>
7019
e371d98c 7020 * config.gcc: Fix variable syntax.
7021
f422081b 7022 PR target/39531
7023 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
7024 before calling exact_log2.
7025 (output_iorsi3): Likewise.
7026 (output_xorsi3): Likewise.
7027
79c09794 70282009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
7029
7030 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
7031 for the none zero constant operand except for EQ and NE
7032 comprisons even when the first operand is R0.
7033
ffead1ca 70342009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
7035
7036 * config/s390/2064.md: Remove trailing whitespaces.
7037 * config/s390/2084.md: Likewise.
7038 * config/s390/constraints.md: Likewise.
7039 * config/s390/fixdfdi.h: Likewise.
7040 * config/s390/libgcc-glibc.ver: Likewise.
7041 * config/s390/s390-modes.def: Likewise.
7042 * config/s390/s390-protos.h: Likewise.
7043 * config/s390/s390.c: Likewise.
7044 * config/s390/s390.h: Likewise.
7045 * config/s390/s390.md: Likewise.
7046 * config/s390/tpf-unwind.h: Likewise.
7047
2a381450 70482009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
7049
7050 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
7051
869bde6b 70522009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
7053
7054 M68K TLS support.
7055 * configure.ac (m68k-*-*): Check if binutils support TLS.
7056 * configure: Regenerate.
7057 * config/m68k/predicates.md (symbolic_operand): Extend comment.
7058 * config/m68k/constraints.md (Cu): New constraint.
7059 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
7060 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
7061 (movsi): Handle TLS symbols.
7062 (addsi3_5200): Handle XTLS symbols, indent.
7063 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
7064 (m68k_tls_reference_p): Declare.
7065 (m68k_legitimize_address): Declare.
7066 (m68k_unwrap_symbol): Declare.
7067 * config/m68k/m68k.opt (mxtls): New option.
7068 * config/m68k/m68k.c (ggc.h): Include.
7069 (m68k_output_dwarf_dtprel): Implement hook.
7070 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
7071 (m68k_expand_prologue): Load GOT pointer when function needs it.
7072 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
7073 (m68k_legitimate_constant_address_p): Same.
7074 (m68k_decompose_address): Handle TLS references.
7075 (m68k_get_gp): New static function.
7076 (enum m68k_reloc): New contants.
7077 (TLS_RELOC_P): New macro.
7078 (m68k_wrap_symbol): New static function.
7079 (m68k_unwrap_symbol): New function.
7080 (m68k_final_prescan_insn_1): New static function.
7081 (m68k_final_prescan_insn): New function.
7082 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
7083 functions.
7084 (legitimize_pic_address): Handle TLS references..
7085 (m68k_tls_get_addr, m68k_get_tls_get_addr)
7086 (m68k_libcall_value_in_a0_p)
7087 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
7088 (m68k_call_m68k_read_tp): Helper variables and functions for ...
7089 (m68k_legitimize_tls_address): Handle TLS references.
7090 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
7091 New functions.
7092 (m68k_legitimize_address): Handle TLS symbols.
7093 (m68k_get_reloc_decoration): New static function.
7094 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
7095 UNSPEC_RELOC32.
7096 (m68k_output_dwarf_dtprel): Implement hook.
7097 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
7098 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
7099 m68k_call_* routines.
7100 (sched_attr_op_type): Handle TLS symbols.
7101 (gt-m68k.h): Include.
7102 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
7103 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
7104
a3808114 71052009-05-18 Martin Jambor <mjambor@suse.cz>
7106
7107 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
7108 (visit_store_addr_for_mod_analysis): New function.
7109 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
7110 (determine_cst_member_ptr): Use gimple_assign_single_p.
7111 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
7112 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
7113 operands. Don't check number of operands of a NOP_EXPR.
7114
87deed07 71152009-05-18 Eric Fisher <joefoxreal@gmail.com>
7116
7117 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
7118
0969aa9b 71192009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
7120
7121 PR c/40172
7122 * c-common.c (warn_logical_operator): Don't warn if one of
7123 expression isn't always true or false.
7124
80c5827c 71252009-05-17 Kai Tietz <kai.tietz@onevision.com>
7126
0969aa9b 7127 * config/i386/biarch32.h: New file.
7128 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
80c5827c 7129
f494873f 71302009-05-17 Adam Nemet <anemet@caviumnetworks.com>
7131
7132 * config/mips/mips.md (*zero_extend<mode>_trunchi,
7133 *zero_extend<mode>_truncqi): Merge these into ...
7134 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
7135 Name the pattern following this as *zero_extendhi_truncqi.
7136
c2a312d3 71372009-05-16 Brad Lucier <lucier@math.purdue.edu>
7138
7139 PR middle-end/39301
7140 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
7141 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
7142 (output_info): Make field HOST_WIDEST_INT.
7143 (print_statistics): Use HOST_WIDEST_INT_PRINT.
7144 (dump_bitmat_statistics): Same.
7145
ef87fe4c 71462009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
7147
7148 * config.gcc (use_gcc_stdint): Set to wrap.
7149 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7150 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7151 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7152 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7153 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7154 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7155 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7156 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7157
38c0064e 71582009-05-16 Joseph Myers <joseph@codesourcery.com>
7159
7160 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
7161 tune_64.
7162 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
7163 Move definitions earlier.
7164 (OPT_ARCH64, OPT_ARCH32): Define.
7165 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
7166 and tune_64.
7167
a277ddf3 71682009-05-16 Richard Earnshaw <rearnsha@arm.com>
7169
7170 PR target/40153
7171 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
7172 implies.
7173
bc5a93af 71742009-05-16 Richard Earnshaw <rearnsha@arm.com>
7175
7176 * arm.md (movdi2): Copy non-reg values to DImode registers.
7177
139e6b83 71782009-05-16 Jakub Jelinek <jakub@redhat.com>
7179
01e60dc2 7180 PR target/39942
7181 * final.c (label_to_max_skip): New function.
7182 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
7183 CODE_LABEL_NUMBER <= max_labelno.
7184 * output.h (label_to_max_skip): New prototype.
7185 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
7186 (ix86_avoid_jump_mispredicts): ... this. Don't define if
7187 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
7188 Handle CODE_LABELs with >= 16 byte alignment or with
7189 max_skip == (1 << align) - 1.
7190 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
7191 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
7192
139e6b83 7193 PR target/39942
7194 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
7195 .p2align 3 if MAX_SKIP is smaller than 7.
7196 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
7197
26dbec0a 71982009-05-15 Ian Lance Taylor <iant@google.com>
7199
7200 * alias.c (struct alias_set_entry_d): Rename from struct
7201 alias_set_entry. Change all uses.
7202 * except.c (struct call_site_record_d): Rename from struct
7203 call_site_record. Change all uses.
7204 * except.h (struct eh_region_d): Rename from struct eh_region.
7205 Change all uses.
7206 * gcse.c (struct hash_table_d): Rename from struct hash_table.
7207 Change all uses.
7208 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
7209 ivtype_map_elt. Change all uses.
7210 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
7211 Change all uses.
7212 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
7213 * graphite.h (struct name_tree_d): Rename from struct name_tree.
7214 Change all uses.
7215 (struct sese_d): Rename from struct sese. Change all uses.
2377feea 7216 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
7217 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
26dbec0a 7218 * optabs.h (struct optab_d): Rename from struct optab. Change all
7219 uses.
7220 (struct convert_optab_d): Rename from struct convert_optab.
7221 Change all uses.
7222 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
7223 ipa_opt_pass. Change all uses.
7224 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
7225 all uses.
7226
7227 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
7228 defined as a typedef.
7229 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
7230 defined as a tag.
7231
9c20c4fc 72322009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
7233
7234 PR 16302
7235 * fold-const.c (make_range,build_range_check,merge_ranges): Move
7236 declaration to...
7237 (merge_ranges): Returns bool.
7238 * tree.h (make_range): .. to here.
7239 (build_range_check): Likewise.
7240 (merge_ranges): Likewise. Renamed from merge_ranges.
7241 * c-typeck.c (parser_build_binary_op): Update calls to
7242 warn_logical_operator.
7243 * c-common.c (warn_logical_operator): Add new warning.
7244 * c-common.h (warn_logical_operator): Update declaration.
7245
4b0c3b93 72462009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
7247
2377feea 7248 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
4b0c3b93 7249
239d491a 72502009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7251
b155fb54 7252 * doc/install.texi: Document MPC requirements, flags etc.
7253
239d491a 7254 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
7255 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
7256 Evaluate constant arguments.
7257 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
7258 (fold_builtin_1): Likewise, also evaluate constant arguments.
7259 Remove superfluous break.
7260 (do_mpc_ckconv): New.
7261 * real.h: Include mpc.h.
7262 * toplev.c (print_version): Output MPC version info if available.
7263
275b395f 72642009-05-15 Sandra Loosemore <sandra@codesourcery.com>
7265
2377feea 7266 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
275b395f 7267
2206e042 72682009-05-15 H.J. Lu <hongjiu.lu@intel.com>
7269
7270 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
7271 only once.
7272
a7b61d8c 72732009-05-15 Jan Hubicka <jh@suse.cz>
7274
7275 * doc/invoke.texi (max-early-inliner-iterations): New flag.
7276 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
7277 (try_inline): Fix return value.
7278 (cgraph_decide_inlining_incrementally): Honor new value.
7279 (cgraph_early_inlining): Handle indirect inlining.
7280 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
7281
22c748a1 72822009-05-15 Jan Hubicka <jh@suse.cz>
7283
7284 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
7285 * cgraphunit.c (cgraph_finalize_function): Set it.
7286 (cgraph_expand_function): Use it.
7287
681f1241 72882009-05-15 Sandra Loosemore <sandra@codesourcery.com>
7289
7290 * real.c (encode_ieee_half): Define.
7291 (decode_ieee_half): Define.
7292 (ieee_half_format): Define.
7293 (arm_half_format): Define.
7294 * real.h (ieee_half_format): Declare.
7295 (arm_half_format): Declare.
7296
d5a9653a 72972009-05-15 Sandra Loosemore <sandra@codesourcery.com>
7298
7299 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
7300 swapped, and reversed optabs exist before trying to use them.
7301
f1c02c87 73022009-05-15 Paul Brook <paul@codesourcery.com>
7303 Sandra Loosemore <sandra@codesourcery.com>
7304
f1c02c87 7305 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
7306 loads. Allow PRE_DEC.
7307 (output_move_neon): Handle PRE_DEC.
7308 (arm_print_operand): Add 'A' for neon structure loads.
7309 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
7310 * config/arm/neon.md (neon_mov): Update comment.
7311 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
7312 calls.
7313 (Um): New constraint.
7314
2958813f 73152009-05-15 Jan Hubicka <jh@suse.cz>
7316
7317 Revert the following patch until testsuite fallout is fixed:
7318 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
7319 * cgraph.h (struct inline_summary): New filed self_wize,
7320 size_inlining_benefit, self_time and time_inlining_benefit.
7321 (struct cgraph_global_info): Replace insns by time ans size fields.
7322 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
7323 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
7324 (ipcp_update_callgraph): Do not touch function bodies.
7325 * ipa-inline.c: Include except.h
2377feea 7326 (MAX_TIME): New constant.
2958813f 7327 (overall_insns): Remove
7328 (overall_size, max_benefit): New static variables.
7329 (cgraph_estimate_time_after_inlining): New function.
7330 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
7331 (cgraph_clone_inlined_nodes): Update size.
7332 (cgraph_mark_inline_edge): Update size.
7333 (cgraph_estimate_growth): Use size info.
7334 (cgraph_check_inline_limits): Check size.
7335 (cgraph_default_inline_p): Likewise.
7336 (cgraph_edge_badness): Compute badness based on benefit and size cost.
7337 (cgraph_decide_recursive_inlining): Check size.
faa14cce 7338 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
7339 and times.
2958813f 7340 (cgraph_decide_inlining): Likewise.
54e6ab3d 7341 (cgraph_decide_inlining_incrementally): Likewise; honor
7342 PARAM_EARLY_INLINING_INSNS.
2958813f 7343 (likely_eliminated_by_inlining_p): New predicate.
7344 (estimate_function_body_sizes): New function.
7345 (compute_inline_parameters): Use it.
7346 * except.c (must_not_throw_labels): New function.
7347 * except.h (must_not_throw_labels): Declare.
7348 * tree-inline.c (init_inline_once): Kill inlining_weigths
7349 * tree-ssa-structalias.c: Avoid uninitialized warning.
7350 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
7351 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
7352 (PARAM_INLINE_CALL_COST): Remove.
7353 (PARAM_EARLY_INLINING_INSNS): New.
7354
1b536c34 73552009-05-15 Richard Guenther <rguenther@suse.de>
7356
7357 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
7358 not TODO_update_ssa.
7359
a1157bfe 73602009-05-15 Richard Guenther <rguenther@suse.de>
7361
7362 PR tree-optimization/39999
7363 * gimple.h (gimple_expr_type): Use the expression type looking
7364 through useless conversions.
7365 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
7366 (vn_nary_op_insert_stmt): Likewise.
7367 (simplify_binary_expression): Likewise.
7368
408c3c77 73692009-05-15 Richard Guenther <rguenther@suse.de>
7370
7371 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
7372 New options, enabled by default.
7373 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
7374 Document.
7375 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
7376 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
7377 * tree-ssa-structalias.c (gate_tree_pta): New function.
7378 (pass_build_alias): Use it.
7379
bd8d8d81 73802009-05-15 Joseph Myers <joseph@codesourcery.com>
7381
7382 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
7383 recurse on an invariant address if a conversion from a pointer
7384 type to a wider integer type is involved.
7385
9288864f 73862009-05-15 Jan Hubicka <jh@suse.cz>
7387
7388 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
7389 * cgraph.h (struct inline_summary): New filed self_wize,
7390 size_inlining_benefit, self_time and time_inlining_benefit.
7391 (struct cgraph_global_info): Replace insns by time ans size fields.
7392 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
7393 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
7394 (ipcp_update_callgraph): Do not touch function bodies.
7395 * ipa-inline.c: Include except.h
2377feea 7396 (MAX_TIME): New constant.
9288864f 7397 (overall_insns): Remove
7398 (overall_size, max_benefit): New static variables.
7399 (cgraph_estimate_time_after_inlining): New function.
7400 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
7401 (cgraph_clone_inlined_nodes): Update size.
7402 (cgraph_mark_inline_edge): Update size.
7403 (cgraph_estimate_growth): Use size info.
7404 (cgraph_check_inline_limits): Check size.
7405 (cgraph_default_inline_p): Likewise.
7406 (cgraph_edge_badness): Compute badness based on benefit and size cost.
7407 (cgraph_decide_recursive_inlining): Check size.
faa14cce 7408 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
7409 and times.
9288864f 7410 (cgraph_decide_inlining): Likewise.
54e6ab3d 7411 (cgraph_decide_inlining_incrementally): Likewise; honor
7412 PARAM_EARLY_INLINING_INSNS.
9288864f 7413 (likely_eliminated_by_inlining_p): New predicate.
7414 (estimate_function_body_sizes): New function.
7415 (compute_inline_parameters): Use it.
7416 * except.c (must_not_throw_labels): New function.
7417 * except.h (must_not_throw_labels): Declare.
7418 * tree-inline.c (init_inline_once): Kill inlining_weigths
7419 * tree-ssa-structalias.c: Avoid uninitialized warning.
7420 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
7421 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
7422 (PARAM_INLINE_CALL_COST): Remove.
7423 (PARAM_EARLY_INLINING_INSNS): New.
7424 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
7425 (inline-call-cost): Remove.
7426 (early-inlining-insns): New.
7427
a9538d68 74282009-05-15 Eric Botcazou <ebotcazou@adacore.com>
7429
7430 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
7431 for bounds.
7432 (print_int_cst_bounds_in_octal_p): Likewise.
7433 (dbxout_type): Adjust calls to above functions. Be prepared to deal
7434 with subtypes.
7435 * dwarf2out.c (base_type_die): Likewise.
7436 (is_subrange_type): Delete.
7437 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
7438 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
faa14cce 7439 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
7440 if the destination type is boolean.
a9538d68 7441 (build_range_check): Do not special-case subtypes.
7442 (fold_sign_changed_comparison): Likewise.
7443 (fold_unary): Likewise.
7444 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
7445 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
7446 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
faa14cce 7447 * tree.c (subrange_type_for_debug_p): New predicate based on the
7448 former is_subrange_type.
a9538d68 7449 * tree.h (subrange_type_for_debug_p): Declare.
7450 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
7451 (convert_affine_scev): Remove call to above function.
7452 (chrec_convert_aggressive): Likewise.
7453 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
7454 false for conversions involving subtypes.
7455 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
7456 (vrp_val_min): Likewise.
7457 (needs_overflow_infinity): Likewise.
7458 (extract_range_from_unary_expr): Likewise.
7459
bc409cb4 74602009-05-15 Paolo Bonzini <bonzini@gnu.org>
7461
314be557 7462 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
7463 * config/frv/frv.c: Likewise.
7464 * config/s390/s390.c: Likewise.
7465 * config/sparc/sparc.h: Likewise.
7466 * config/i386/i386.h: Likewise.
7467 * config/i386/i386.c: Likewise.
7468 * config/crx/crx.c: Likewise.
7469 * config/m68hc11/m68hc11.h: Likewise.
7470 * config/iq2000/iq2000.c: Likewise.
7471 * config/mn10300/mn10300.h: Likewise.
7472 * config/mn10300/mn10300.c: Likewise.
7473 * config/m68k/m68k.c: Likewise.
7474 * config/rs6000/rs6000.c: Likewise.
7475 * config/rs6000/xcoff.h: Likewise.
7476 * config/rs6000/linux64.h: Likewise.
7477 * config/rs6000/sysv4.h: Likewise.
7478 * config/score/score3.c: Likewise.
7479 * config/score/score7.c: Likewise.
7480 * config/score/score.c: Likewise.
7481 * config/arm/arm.md: Likewise.
7482 * config/mips/mips.c: Likewise.
7483 * config/mips/mips.md: Likewise.
7484 * config/bfin/bfin.h: Likewise.
7485 * config/pa/pa.c: Likewise.
7486 * config/pa/constraints.md: Likewise.
7487
7488 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
7489 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
7490 * config/pdp11/pdp11.h: Use memory_address_p instead.
bc409cb4 7491
9f1b7d17 74922009-05-14 Ian Lance Taylor <iant@google.com>
7493
7494 * passes.c (finish_optimization_passes): Change i to int.
7495 * plugin.c (plugins_active_p): Change event to int.
7496 (dump_active_plugins): Likewise.
7497 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
7498 Add cast.
7499 * tree.c (tree_range_check_failed): Change c to unsigned int.
7500 (omp_clause_range_check_failed): Likewise.
7501 (build_common_builtin_nodes): Change mode to int. Add cast.
7502 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
7503 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
7504
7505 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
7506 ++ or -- with a variable of enum type.
7507
b500432f 75082009-05-14 Steven Bosscher <steven@gcc.gnu.org>
7509
7510 PR driver/40144
7511 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
7512
da71eacc 75132009-05-14 Steven Bosscher <steven@gcc.gnu.org>
7514
7515 * store-motion.c: Do not include params.h
7516 * Makefile.in: Fix dependencies for various files.
7517
ca4bb7ac 75182009-05-14 Steven Bosscher <steven@gcc.gnu.org>
7519
7520 * auto-inc-dec.c: Fix pass description, remove apparent
7521 accidental duplication.
7522
8d27c5b5 75232009-05-14 H.J. Lu <hongjiu.lu@intel.com>
7524
7525 PR middle-end/40147
7526 * ipa-utils.h (memory_identifier_string): Moved to ...
7527 * tree.h (memory_identifier_string): Here. Add GTY(()).
7528
fd50b071 75292009-05-14 Paolo Bonzini <bonzini@gnu.org>
7530
7531 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
7532 in the former documentation of...
7533 (GO_IF_LEGITIMATE_ADDRESS): ... this.
7534 * ira-conflicts.c (get_dup_num): Use address_operand.
7535 * targhooks.c (default_legitimate_address_p): New.
7536 * targhooks.h (default_legitimate_address_p): New.
7537 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
7538 Call hook.
7539 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
7540 * target.h (struct target): Add legitimate_address_p.
7541 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
7542 (TARGET_INITIALIZER): Include it.
7543
7544 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7545 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
7546 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
7547 (TARGET_LEGITIMATE_ADDRESS_P): New.
7548
7549 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7550 (REG_OK_STRICT_P): Delete.
7551 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
7552 (frv_legitimate_address_p_1): ... this.
7553 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
7554 (frv_legitimate_address_p_1): ... the renamed old
7555 frv_legitimate_address_p.
7556 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
7557 (TARGET_LEGITIMATE_ADDRESS_P): New.
7558
7559 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7560 * config/s390/s390-protos.h (legitimate_address_p): Remove.
7561 * config/s390/s390.c (legitimate_address_p): Rename to...
7562 (s390_legitimate_address_p): ... this, make static.
7563 (legitimize_address): Adjust call.
7564 (TARGET_LEGITIMATE_ADDRESS_P): New.
7565 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
7566
7567 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7568 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
7569 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
7570 (TARGET_LEGITIMATE_ADDRESS_P): New.
7571
7572 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7573 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
7574 * config/spu/spu.c (spu_legitimate_address): Rename to...
7575 (spu_legitimate_address_p): ... this, make static.
7576 (TARGET_LEGITIMATE_ADDRESS_P): New.
7577
7578 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7579 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
7580 * config/sparc/sparc.c (legitimate_address_p): Rename to...
7581 (sparc_legitimate_address_p): ... this, make static and return bool.
7582 (legitimize_address): Adjust call.
7583 (TARGET_LEGITIMATE_ADDRESS_P): New.
7584
7585 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7586 * config/i386/i386-protos.h (legitimate_address_p): Remove.
7587 * config/i386/i386.c (legitimate_address_p): Rename to...
7588 (ix86_legitimate_address_p): ... this, make static.
7589 (constant_address_p): Move after it, adjust call.
7590 (TARGET_LEGITIMATE_ADDRESS_P): New.
7591
7592 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7593 * config/avr/avr-protos.h (legitimate_address_p): Remove.
7594 * config/avr/avr.c (legitimate_address_p): Rename to...
7595 (avr_legitimate_address_p): ... this, make static.
7596 (legitimize_address): Adjust call.
7597 (TARGET_LEGITIMATE_ADDRESS_P): New.
7598
7599 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7600 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
7601 * config/crx/crx.c (crx_legitimate_address_p): Make static.
7602 (TARGET_LEGITIMATE_ADDRESS_P): New.
7603
7604 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7605 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
7606 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
7607 (TARGET_LEGITIMATE_ADDRESS_P): New.
7608
7609 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7610 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
7611 Remove.
7612 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
7613 Make static.
7614 (TARGET_LEGITIMATE_ADDRESS_P): New.
7615
7616 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7617 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
7618 Remove.
7619 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
7620 Rename to...
7621 (m68hc11_legitimate_address_p): ... this, make static.
7622 (go_if_legitimate_address_internal): Rename to...
7623 (m68hc11_legitimate_address_p_1): ... this.
7624 (legitimize_address): Adjust call.
7625 (TARGET_LEGITIMATE_ADDRESS_P): New.
7626
7627 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2377feea 7628 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
7629 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
fd50b071 7630 (TARGET_LEGITIMATE_ADDRESS_P): New.
7631
7632 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7633 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
7634 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
7635 (mn10300_legitimate_address_p): ... this, make static.
7636 (TARGET_LEGITIMATE_ADDRESS_P): New.
7637
7638 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7639 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
7640 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
7641 (TARGET_LEGITIMATE_ADDRESS_P): New.
7642
7643 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7644 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
7645 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
7646 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7647 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
7648 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
7649 (rs6000_legitimate_address_p): ... this, make static.
7650 (TARGET_LEGITIMATE_ADDRESS_P): New.
7651 (REG_MODE_OK_FOR_BASE_P): Delete.
7652 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
7653
7654 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7655 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
7656 Delete.
7657 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
7658 static, adjust types.
7659 (TARGET_LEGITIMATE_ADDRESS_P): New.
7660
7661 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7662 * config/score/score.c (score_address_p): Rename to...
7663 (score_legitimate_address_p): ... this.
7664 (TARGET_LEGITIMATE_ADDRESS_P): New.
7665 * config/score/score3.c (score3_address_p): Rename to...
7666 (score3_legitimate_address_p): ... this.
7667 * config/score/score7.c (score7_address_p): Rename to...
7668 (score7_legitimate_address_p): ... this.
7669
7670 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
7671 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
7672 GO_IF_LEGITIMATE_ADDRESS): Delete.
7673 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
7674 thumb2_legitimate_address_p): Delete.
7675 (arm_legitimate_address_p): Rename to...
7676 (arm_legitimate_address_outer_p): ... this.
7677 * config/arm/constraints.md ("Uq"): Adjust call.
7678 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
faa14cce 7679 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
7680 to...
fd50b071 7681 (arm_legitimate_address_outer_p): ... this.
faa14cce 7682 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
7683 static.
fd50b071 7684 (TARGET_LEGITIMATE_ADDRESS_P): New.
7685
7686 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7687 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
7688 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
7689 (TARGET_LEGITIMATE_ADDRESS_P): New.
7690
7691 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7692 * config/vax/vax-protos.h (legitimate_address_p): Remove.
7693 * config/vax/vax.c (legitimate_address_p): Rename to...
7694 (vax_legitimate_address_p): ... this, make static.
7695 (TARGET_LEGITIMATE_ADDRESS_P): New.
7696
7697 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7698 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
7699 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
7700 (TARGET_LEGITIMATE_ADDRESS_P): New.
7701
7702 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7703 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
7704 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
7705 (mmix_legitimate_address_p): ... this, make static.
7706 (TARGET_LEGITIMATE_ADDRESS_P): New.
7707
7708 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7709 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
7710 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
7711 (TARGET_LEGITIMATE_ADDRESS_P): New.
7712
142792e2 77132009-05-14 Paolo Bonzini <bonzini@gnu.org>
7714
7715 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
7716 of MODE_COMPLEX_INT.
7717
92e0f786 77182009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7719
7720 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
7721 LCT_NORMAL in function call.
7722 * mips-tdump.c (print_file_desc): Add cast to enum type.
7723 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
7724 (mark_stabs): Add casts to enum types.
7725 (parse_stabs_common): Add casts to enum types.
4fb84273 7726
cc1a5e3e 77272009-05-13 Adam Nemet <anemet@caviumnetworks.com>
7728
7729 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
7730 Check for invalid values of LETTER.
7731
e3fced1a 77322009-05-13 Taras Glek <tglek@mozilla.com>
7733
faa14cce 7734 * attribs.c (register_attribute): moved out attribute registration
7735 into register_attribute.
7736 * doc/plugins.texi: Documented register_attribute and
7737 PLUGIN_ATTRIBUTES.
4fb84273 7738 * gcc-plugin.h: Added forward decl for register_attribute.
7739 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
7740 * plugin.c (register_callback, invoke_plugin_callbacks): Added
7741 PLUGIN_ATTRIBUTES boilerplate.
e3fced1a 7742
a339bdea 77432009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
7744
7745 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
7746 values even in sentinel and empty entries.
7747 (ms_printf_flag_specs): Likewise.
7748 (ms_scanf_flag_specs): Likewise.
7749 (ms_strftime_flag_specs): Likewise.
7750 (ms_print_char_table): Likewise.
7751 (ms_scan_char_table): Likewise.
7752 (ms_time_char_table): Likewise.
7753
f7b092e4 77542009-05-13 Doug Kwan <dougkwan@google.com>
7755
7756 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
7757
eb3880ea 77582009-05-13 Adam Nemet <anemet@caviumnetworks.com>
7759
7760 * config/mips/mips.md (store): Add attributes for QI and HI.
7761 Update comment.
7762 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
7763 (truncdi<mode>2): ... this new pattern.
7764
33ef0630 77652009-05-13 Brad Hards <bradh@kde.org>
7766
7767 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
7768
ff1fe2e2 77692009-05-14 Jakub Jelinek <jakub@redhat.com>
2ffe5515 7770 Ben Elliston <bje@au.ibm.com>
7771
7772 PR middle-end/40035
7773 * dse.c (check_mem_read_rtx): Guard against width == -1.
7774
2b36f1bc 77752009-05-13 Michael Matz <matz@suse.de>
7776
7777 PR middle-end/39976
7778 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
7779 (trivially_conflicts_p): New function.
7780 (insert_backedge_copies): Use it.
7781
6b600976 77822009-05-13 Janis Johnson <janis187@us.ibm.com>
7783
7784 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
7785 (handle_stdc_pragma): Use new enum constant names.
7786 (handle_pragma_float_const_decimal64): Ditto.
7787
b20df6d7 77882009-05-13 Ian Lance Taylor <iant@google.com>
7789
7790 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
7791 tree.def.
7792
ec0044e4 77932009-05-13 Nathan Sidwell <nathan@codesourcery.com>
7794
7795 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
7796 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
7797 multilibs.
7798 * config/m68k/m68k.h (FL_UCLINUX): Define.
7799
16669ccd 78002009-05-13 Jan Hubicka <jh@suse.cz>
7801
7802 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
7803
bfc27c6a 78042009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
7805
7806 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
7807 unless -fschedule-insns is specified.
7808
65b0af14 78092009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
7810
7811 PR target/39561
7812 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
7813 TARGET_EXPAND_CBRANCHDI4.
7814 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
7815 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
7816 (cmpeqdi): Fix comment.
7817
36fa166c 78182009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
7819
7820 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
7821 (sh_legitimate_address_p): Likewise.
7822 * config/sh/sh.c (sh_legitimate_index_p): New.
7823 (sh_legitimate_address_p): Likewise.
7824 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
7825 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
7826 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
7827 (MAYBE_BASE_REGISTER_RTX_P): New macro.
7828 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
7829 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
7830 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
7831 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
7832 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
7833
94e6e359 78342009-05-12 Jan Hubicka <jh@suse.cz>
7835
7836 * tree-inline.c (estimate_operator_cost): Add operands;
7837 when division happens by constant, it is cheap.
7838 (estimate_num_insns): Loads and stores are not having cost of 0;
7839 EH magic stuff is cheap; when computing runtime cost of switch,
7840 use log2 base of amount of its cases; builtin_expect has cost of 0;
7841 compute cost for moving return value of call.
7842 (init_inline_once): Initialize time_based flags.
7843 * tree-inline.h (eni_weights_d): Add time_based flag.
7844
d6b07704 78452009-05-12 Paolo Bonzini <bonzini@gnu.org>
7846
7847 * df-core.c: Update head documentation.
7848
111c35f8 78492009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7850
7851 PR bootstrap/40118
7852 * rs6000.c (rs6000_generate_compare): Use op1b instead of
7853 shadowing exisiting variable op1.
7854
6ca2db76 78552009-05-12 Uros Bizjak <ubizjak@gmail.com>
7856
073bc052 7857 PR target/37179
6ca2db76 7858 * config/i386/driver-i386.c (processor_signatures): New enum.
7859 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
7860 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
7861 processor signature to detect geode processor.
7862
27f97b12 78632009-05-12 Paolo Bonzini <bonzini@gnu.org>
7864
7865 Revert:
7866
7867 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
7868
7869 * optabs.c (prepare_cmp_insn): Temporarily disable test that
7870 causes spurious differences between trunk and cond-optab branch.
7871
74f4459c 78722009-05-12 Paolo Bonzini <bonzini@gnu.org>
7873
6ca2db76 7874 * dojump.c (compare_from_rtx): Delete.
7875 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
7876 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
74f4459c 7877 if the comparison does not satisfy the predicate; test predicates for
7878 operands 2 and 3 of a cstore pattern. Don't try cstore optab
7879 further if one existing pattern fails.
6ca2db76 7880 * expr.h (compare_from_rtx): Delete.
74f4459c 7881 (prepare_operand): Declare it.
6ca2db76 7882 * optabs.c: Change "lib call" to "libcall" throughout.
74f4459c 7883 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
6ca2db76 7884 HAVE_conditional_trap, emit_cmp_insn): Delete.
7885 (can_compare_p): Delete cmp_optab case.
74f4459c 7886 (prepare_float_lib_cmp): Return an rtx and a machine mode.
6ca2db76 7887 Accept other parameters by value.
7888 (prepare_operand): Make non-static.
7889 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
7890 other parameters by value. Try to widen operands here based on
7891 an optab_methods argument and looking at cbranch_optab.
7892 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
7893 loop. Use cbranch_optab directly.
7894 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
7895 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
7896 assertion.
7897 (emit_conditional_move, emit_conditional_add): Inline what's needed
7898 of compare_from_rtx, using new prepare_cmp_insn for the rest.
7899 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
7900 with COMPARE. Move cmov_optab and cstore_optab above
7901 with cbranch_optab, move cmp_optab down with ucmp_optab,
7902 remove tst_otpab. Do not initialize trap_rtx.
7903 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
74f4459c 7904 for trap code. Do not check HAVE_conditional_trap. Use
7905 prepare_cmp_insn. Accept no predicate for operand 3.
6ca2db76 7906 * optabs.h (OTI_cmp): Mark as used only for libcalls.
7907 (OTI_ctrap, ctrap_optab): New.
7908 (tst_optab): Delete.
7909 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
7910 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
7911 with lookup of ctrap_optab.
faa14cce 7912 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
7913 Delete.
6ca2db76 7914 (ctrap_optab): New.
7915
7916 * combine.c (combine_simplify_rtx, simplify_set): Do not
7917 special case comparing against zero for cc0 machines.
74f4459c 7918 * simplify-rtx.c (simplify_binary_operation_1): Never remove
7919 COMPARE on cc0 machines.
7920 (simplify_relational_operation): Return a new expression when
7921 a COMPARE could be removed.
6ca2db76 7922 * final.c (final_scan_insn): Compare cc_status values
7923 against LHS of a (compare FOO (const_int 0)) cc0 source.
7924 Also check if cc_status.value is the full compare.
74f4459c 7925
6ca2db76 7926 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
7927 (cstoreMM4): Document.
74f4459c 7928 (conditional_trap): Document ctrapMM4 instead.
6ca2db76 7929 (sync_compare_and_swapMM): Refer to cbranchcc4.
74f4459c 7930 (Dependent Patterns): Eliminate obsolete information referring to
7931 the old jump optimization phase.
6ca2db76 7932 (Canonicalization): Include cbranchcc4 case, omit canonicalization
74f4459c 7933 of compares with 0 on cc0 machines.
7934 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
7935 avoiding references to cc0. Remove text about storing operands
7936 in cmpMM.
7937 * doc/tm.texi (Condition Codes): Include blurb on different
7938 condition code representations, separate into subsections for
7939 CC0, MODE_CC and conditional execution.
7940
6ca2db76 7941 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
7942 alpha_emit_setcc): Accept operands and a machine mode.
7943 * config/alpha/alpha.c (alpha_emit_conditional_branch):
7944 Get code/op0/op1 from operands, use machine mode argument
7945 instead of alpha_compare.fp_p. Emit the branch here.
7946 (alpha_emit_setcc): Likewise, and return boolean.
7947 (alpha_emit_conditional_move): Likewise. Assert that
7948 cmp_op_mode == cmp_mode, and simplify accordingly.
7949 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
7950 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
7951 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
7952 Delete.
7953 (stack probe test): Use cbranchdi4.
7954 * config/alpha/predicates.md (alpha_cbranch_operator): New.
7955
7956 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
7957 * config/arc/arc.h (movsicc, movsfcc): Use it.
7958 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
7959 (cbranchsi4, cstoresi4): New.
7960 (cmpsi, bCC and sCC expanders): Remove.
7961
7962 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
7963 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
7964 * config/arm/predicates.md (arm_comparison_operator): Only include
7965 floating-point operators if there is a hardware floating-point unit.
7966 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
7967 deferring to cbranch_cc and cstore_cc respectively.
7968 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
7969 cbranch_cc, cstore_cc): New.
7970 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
74f4459c 7971 arm_compare_op1.
6ca2db76 7972 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
7973
7974 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
7975 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
7976 as an argument.
7977 (adjust_insn_length): Adjust calls.
7978 (avr_reorg): Handle (compare (foo) (const_int 0)).
7979 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
7980 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
7981 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
7982 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
7983 (bCC): Remove.
7984 (cbranchqi4, cbranchhi4, cbranchsi4): New.
74f4459c 7985 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
7986
6ca2db76 7987 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
7988 (cbranchsi4, cstorebi4, cstoresi4): New.
74f4459c 7989 (movbisi): This insn is duplicate, split it to zero_extend.
6ca2db76 7990 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
7991 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
7992 (bfin_optimize_loop): Use cbranch expander.
7993 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
7994 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
7995 (bfin_bimode_comparison_operator): ... this.
7996 (bfin_direct_comparison_operator): New.
74f4459c 7997
6ca2db76 7998 * config/cris/cris.c (cris_normal_notice_update_cc): Look
7999 inside (compare FOO (const_int 0)).
8000 (cris_rtx_costs): Handle ZERO_EXTRACT.
8001 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
8002 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
8003 (*tstdi_v32): Delete.
8004 (*cmpdi_non_v32): Add M alternative for operand 1.
8005 (cmpsi, cmp<mode>): Make private.
8006 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
8007 with COMPARE.
8008 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
8009
8010 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
8011 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
8012 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
74f4459c 8013 (cc_reg_operand): New.
8014 (any_cond): Delete.
6ca2db76 8015 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
8016 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
8017 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
8018 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
8019 crx_expand_scond): Delete.
8020
8021 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
8022 (cbranchsi4): New.
8023 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
8024 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
8025
8026 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
8027 cstoresi4, cstoresf4, cstoredf4): New.
8028 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
8029 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
8030 Receive the entire operands array.
8031 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
8032 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
8033 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
8034 Get test/op0/op1 from the operands array.
8035 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
8036
8037 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
8038 (h8300_expand_store): New.
8039 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
8040 (const_int 0)).
8041 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
8042 (h8300_expand_store): New.
8043 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
8044 or do not try to produce (set (cc0) REG).
8045 (peepholes): Wrap arguments with COMPARE. Add a peephole to
8046 change a compare into a move to a scratch register. Disable some
8047 peepholes when comparing with zero.
8048 (tstsi, tsthi, tstsi, cmpqi): Make private.
8049 (cmphi): Delete.
8050 (bCC, sCC): Delete.
8051 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
8052 cstoresi4): New.
74f4459c 8053
8054 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
8055 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
8056 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
8057 (ix86_emit_i387_log1p): Use cbranchxf2.
8058 (ix86_expand_setcc): Return void.
8059 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
8060 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
8061 cmp<MODEF>, cmpcc): Remove.
6ca2db76 8062 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
8063 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
8064 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
74f4459c 8065 (sCC and bCC expanders): Remove.
8066 (stack_protect_test): Use cbranchcc4.
8067
6ca2db76 8068 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
8069 Delete.
8070 (ia64_expand_compare): Accept three rtx by reference and return void.
8071 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
8072 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
8073 from *expr. Update *expr with the BImode comparison to do.
8074 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
8075 cmptf, bCC, sCC, conditional_trap): Delete.
8076 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
8077 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
8078 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
8079 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
8080 * config/ia64/predicates.md (ia64_cbranch_operator): New.
8081
8082 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
8083 type of last argument.
8084 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
8085 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
8086 use machine mode argument instead of branch_type. Remove dead
8087 code for floating-point comparisons.
8088 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
8089 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
8090 Remove.
8091 (cbranchsi4, cstoresi4): New.
8092 * config/iq2000/predicates.md (reg_or_const_operand): New.
8093
8094 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
8095 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
8096 (b<code>_op): Rewrite to...
8097 (bcc_op): ... this, using match_operator.
8098 (s<code>_op): Rewrite to...
8099 (scc_op): ... this, using match_operator.
8100 (s<code>_24_op): Rewrite to...
8101 (scc_op_24): ... this, using match_operator.
8102 (s<code>_<mode>): Rewrite to...
8103 (cstore<mode>4): ... this, using match_operator.
8104 (s<code>_<mode>_24): Rewrite to...
8105 (cstore<mode>4_24): ... this, using match_operator.
8106 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
8107 m32c_unpend_compare, m32c_expand_scc): Delete.
8108 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
8109 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
8110 (m32c_expand_movcc): Change NE to EQ if necessary.
8111 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
8112
8113 * config/m32r/m32r-protos.h (gen_cond_store): New.
8114 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
8115 (gen_cond_store): New, from sCC patterns.
8116 (m32r_expand_block_move): Use cbranchsi4.
8117 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
8118 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
8119 (cbranchsi4, cstoresi4): New.
8120
8121 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
8122 Delete.
8123 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
74f4459c 8124 (m68hc11_notice_update_cc): Look into a compare with 0.
6ca2db76 8125 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
8126 Delete.
8127 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
8128 cmphi, cmpqi, bCC): Delete.
8129 (cbranchsi4, cbranchhi4, cbranchqi4): New.
8130 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
8131 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
8132 sets with COMPARE.
8133
8134 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
8135 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
8136 * config/m68k/constraints.md (H): New.
8137 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
8138 the define_insn below.
8139 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
8140 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
8141 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
8142 patterns): Wrap RHS with COMPARE.
8143 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
8144 (*cmpdi_internal): Name this pattern.
8145 (cmpdi): Change to define_insn.
8146 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
8147 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
8148 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
8149 predicate.
8150 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
8151 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
8152 (conditional_trap): Change to...
8153 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
8154 (*conditional_trap): Use the ordered_comparison_operator and
8155 const1_operand predicates.
8156 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
8157 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
8158 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
8159 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
8160
8161 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
8162 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
8163 (mcore_gen_compare): New.
8164 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
8165 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
8166 (mcore_gen_compare): ... this.
8167 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
8168 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
8169 (stack probe pattern): Use cbranchsi4.
8170
8171 * config/mips/predicates.md (mips_cstore_operator): New.
8172 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
8173 * config/mips/mips.md (any_cond): Delete.
8174 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
8175 always succeed.
8176 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
8177 fixuns_truncsfdi2): Use cbranch patterns.
8178 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
8179 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
8180 Adjust call to mips_expand_conditional_branch.
8181 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
8182 cstore<GPR:mode>4.
8183 * config/mips/mips-protos.h (mips_expand_conditional_branch,
8184 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
8185 * config/mips/mips.c (cmp_operands): Delete.
8186 (mips_emit_compare): Get comparison operands from *op0/*op1.
8187 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
8188 that it succeeds. Use op0/op1 instead of cmp_operands.
8189 (mips_expand_conditional_branch, mips_expand_conditional_move,
8190 mips_expand_conditional_trap): Likewise.
8191 (mips_block_move_loop): Use cbranch patterns.
8192 * config/mips/mips.h (cmp_operands): Delete.
8193
8194 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
8195 (mmix_gen_compare_reg): Just return a register in the right CC mode.
8196 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
8197 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
8198 (*cmpcc_folded): Rename to...
8199 (*cmpdi_folded): this.
8200 (*cmpcc): Rename to...
8201 (*cmps): ... this.
8202 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
8203 (bCC): Remove.
8204 (cbranchdi4): New.
8205 (cbranchdf4): New. Handle invalid comparisons here.
8206 * config/mmix/predicates.md (float_comparison_operator): New.
8207
8208 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
8209 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
8210 * config/mn10300/mn10300.md (tst): Delete.
8211 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
8212 Name these patterns and wrap RHS in a compare.
8213 (*cmpsi): Make this pattern private. Include tst.
8214 (*cmpsf): Make this pattern private.
8215 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
8216 (compare with zero peepholes): Likewise.
8217 (bCC): Remove.
8218 (cbranchsi4, cbranchsf4): New.
8219 (casesi): Use cbranchsi4.
8220
8221 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
8222 hppa_branch_type): Delete.
8223 (return_addr_rtx): Use cbranchsi4.
8224 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
8225 Emit CCFPmode comparison here.
8226 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
8227 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
8228 hppa_branch_type): Delete.
8229 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
8230 (movsicc, movdicc): Remove references to hppa_compare_op0,
8231 hppa_compare_op1 and compare_from_rtx.
8232 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
8233 (casesi): Use cbranchsi4.
8234
8235 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
8236 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
8237 * config/pdp11/pdp11.md (register_or_const0_operand): New.
8238 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
8239 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
8240 (bCC): Delete.
8241 (cbranchdf4, cbranchhi4, cbranchqi4): New.
8242 (*branch, *branch_inverted): New.
8243
8244 * config/picochip/picochip.md (cbranchhi4): Use
8245 ordered_comparison_operator.
8246 (cmphi, bCC): Remove.
8247
8248 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
8249 (trap_comparison_operator): Delete.
8250 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
8251 rs6000_emit_cbranch): Accept mode and operands.
8252 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
8253 rs6000_compare_fp_p): Delete.
8254 (rs6000_generate_compare): Accept mode and comparison. Extract code
8255 and op0/op1 from there. Replace references to rs6000_compare_op0
8256 and rs6000_compare_op1.
8257 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
8258 extract result from passed operands.
8259 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
8260 extract loc from passed operands.
8261 (rs6000_emit_cmove): Likewise.
8262 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
8263 rs6000_compare_fp_p): Delete.
8264 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
8265 (cbranch<GPR>4, cbranch<FP>4): New.
8266 (cstore<mode>4): New. Consolidate here all choices about when to use
8267 portable or specialized sCC sequences.
8268 (stack_protect_test): Use cbranchsi4.
8269 (conditional_trap): Replace with ctrap<GPR>4.
8270 (conditional trap insn): Replace trap_comparison_operator with
8271 ordered_comparison_operator.
8272
8273 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
8274 (s390_emit_prologue): Use ctrap.
8275 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
8276 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
8277 New predicates replacing...
8278 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
8279 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
8280 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
8281 (add<mode>cc): Do not use s390_compare_op0/op1.
8282 (s<code>): Change to...
8283 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
8284 (seq): Change to...
8285 (cstorecc4): ... this. Handle EQ or NE equally.
8286 (*sne): Un-privatize for use in cstorecc4.
8287 (b<code>): Change to...
8288 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
8289 (conditional_trap): Replace with...
8290 (ctrap<GPR>4, ctrap<FP>4): ... these.
8291 (stack_protect): Use cbranchcc4.
8292
8293 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
8294 * config/score/score-protos.h (score_gen_cmp): Delete.
8295 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
8296 (score_block_move-loop): Use cbranchsi4.
8297 * config/score/score.md (cbranchsi4): New.
8298 (cmpsi, bCC): Delete.
8299 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
8300 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
8301 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
8302 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
8303 * config/score/score3.h (score3_gen_cmp): Delete.
8304 * config/score/score7.h (score7_gen_cmp): Delete.
8305
8306 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
8307 (sh_emit_scc_to_t): ... this. Return void.
8308 (from_compare): Rename to...
8309 (sh_emit_compare_and_branch): ... this.
8310 (sh_emit_compare_and_set): New.
8311 (sh_expand_t_scc): Accept operands.
8312 * config/sh/predicates.md (sh_float_comparison_operator): New.
8313 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
8314 (prepare_scc_operands): Rename to...
8315 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
8316 arguments.
8317 (sh_emit_cheap_store_flag): New.
74f4459c 8318 (sh_emit_set_t_insn): New.
6ca2db76 8319 (from_compare): Rename to...
8320 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
8321 handling of TARGET_SH2E floating point to avoid recursive call.
8322 Generate branch here.
8323 (sh_emit_compare_and_set): New.
8324 (sh_expand_t_scc): Get op0/op1 from arguments.
8325 (sh_emit_cheap_store_flag): New.
8326 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
8327 cases.
74f4459c 8328 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
6ca2db76 8329 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
8330 (movsicc, movdicc): Do nothing when it recreated operands from
8331 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
8332 prepare_scc_operands (now sh_emit_scc_to_t).
8333 (udivdi3): Use cstoresi4.
8334 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
8335 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
8336 (cbranchint4_media, cbranchfp4_media): New.
8337 (casesi): Use cbranchdi4.
8338 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
8339 Delete.
8340 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
8341 (movnegt): Remove second operand.
8342 (cbranchsf4, cbranchdf4): New.
8343 (stack_protect): Use cbranchdi4/cbranchsi4.
8344
8345 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
8346 (gen_compare_reg): Accept comparison, extract part of it to...
8347 (gen_compare_reg_1): ... this.
8348 (gen_compare_operator): Delete.
8349 (gen_v9_scc): Accept separate destination, comparison code and arms.
8350 Do not use sparc_compare_op0/sparc_compare_op1.
8351 (emit_scc_insn, emit_conditional_branch_insn): New.
8352 (emit_v9_brxx): Make static. Remove useless assertion.
8353 (sparc_emit_float_lib_cmp): Return RTL instead of calling
8354 emit_cmp_insn.
8355 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
8356 * config/sparc/sparc-protos.h (gen_compare_reg,
74f4459c 8357 sparc_emit_float_lib_cmp): Adjust prototype.
8358 (emit_scc_insn, emit_conditional_branch_insn): New.
8359 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
6ca2db76 8360 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
8361 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
8362 iterators to the top.
8363 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
8364 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
74f4459c 8365 snedi_special_trunc): Delete.
6ca2db76 8366 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
74f4459c 8367 and snedi_special_trunc.
6ca2db76 8368 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
8369 cbranchdi4, cbranch<F:mode>4): New.
8370 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
8371 here. Use gen_compare_reg instead of gen_compare_operator.
8372 (conditional_trap): Replace with...
8373 (ctrapsi4, ctrapdi4): ... this.
8374 (stack_protect_test): Use cbranchcc4.
8375
8376 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
8377 argument to rtx.
8378 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
8379 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
8380 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
8381 from operands[0] or operands[3] depending on is_set.
8382 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
8383 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
8384 cmpdf, bCC), sCC: Remove.
8385 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
8386 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
8387 cstoredf4): New.
8388 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
8389 spu_emit_branch_or_set.
8390
8391 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
8392 Add two arguments.
8393 * config/stormy16/stormy16.h (xstormy16_compare_op0,
8394 xstormy16_compare_op1): Delete.
8395 * config/stormy16/stormy16.c (xstormy16_compare_op0,
8396 xstormy16_compare_op1): Delete.
8397 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
8398 Adjust calls.
8399 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
8400 (cmphi, cmpsi, bCC): Remove.
8401
8402 * config/v850/v850.md (tstsi, cmpsi): Fold into...
8403 (*cmpsi): ... this one.
8404 (cbranchsi4, cstoresi4): New.
8405 (bCC expanders): Delete.
8406 (sCC insns): Fold into...
8407 (*setcc): ... this one.
8408 (casesi): Do not use gen_cmpsi and gen_bgtu.
74f4459c 8409 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
8410 (movsicc): Simplify.
8411 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
8412
6ca2db76 8413 * config/vax/vax-protos.h (cond_name): New.
8414 (vax_output_conditional_branch): Remove.
8415 * config/vax/vax.c (cond_name): New.
8416 (vax_output_conditional_branch): Remove.
8417 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
8418 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
8419 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
8420 (bit<VAXint>): Wrap source with (compare).
8421 (b<code> and following unnamed pattern): Rename to *branch and
8422 *branch_reversed. Change macroization to match_operator.
8423 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
8424
8425 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
8426 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
8427 Change last argument to machine_mode.
8428 (xtensa_expand_scc): Add machine_mode argument.
8429 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
8430 (gen_conditional_move, xtensa_expand_conditional_branch,
8431 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
8432 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
8433 Adjust operand numbers.
8434 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
8435 Delete.
8436 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
8437 (cmpsi, cmpsf, b<code>, s<code>): Delete.
8438 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
74f4459c 8439
880e5cd7 84402009-05-12 Paolo Bonzini <bonzini@gnu.org>
8441
8442 * optabs.c (prepare_cmp_insn): Temporarily disable test that
8443 causes spurious differences between trunk and cond-optab branch.
8444
bd1f9655 84452009-05-12 Alexandre Oliva <aoliva@redhat.com>
8446
8447 PR target/37137
8448 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
8449
f6bf9542 84502009-05-12 Alexandre Oliva <aoliva@redhat.com>
8451
8452 * tree.c (iterative_hash_pointer): Delete.
8453 (iterative_hash_expr): Short-circuit handling of NULL pointer.
8454 Hash UIDs and versions of SSA names. Don't special-case built-in
8455 function declarations.
8456
ebbdcbb3 84572009-05-11 Ian Lance Taylor <iant@google.com>
8458
8459 PR bootstrap/40103
8460 * graphite.c: Force -Wc++-compat to only be a warning before
8461 #including "cloog/cloog.h".
8462
a111083a 84632009-05-11 Martin Jambor <mjambor@suse.cz>
8464
8465 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
8466
aa2ba534 84672009-05-11 Jan Hubicka <jh@suse.cz>
8468
8469 * tree-ssa-loop-ivcanon.c: Include target.h
8470 (struct loop_size): new structure.
8471 (constant_after_peeling): New predicate.
8472 (tree_estimate_loop_size): New function.
8473 (estimated_unrolled_size): Rewrite for new estimates.
8474 (try_unroll_loop_completely): Use new estimates.
8475 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
8476
897ffbb0 84772009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
8478
8479 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
8480 libcpp interface change.
8481 (spu_macro_to_expand): Likewise.
8482
a39fe414 84832009-05-11 Paolo Bonzini <bonzini@gnu.org>
8484
8485 PR tree-optimization/40026
8486 * gimplify.c (gimplify_init_constructor): Change initial conditional
8487 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
8488 optimize_compound_literals_in_ctor.
8489
175be17a 84902009-05-11 Nathan Sidwell <nathan@codesourcery.com>
8491
8492 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
8493 New devices.
8494 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
8495
1a0e7d51 84962009-05-11 H.J. Lu <hongjiu.lu@intel.com>
8497
8498 * tree-vect-data-refs.c (vect_analyze_group_access): Use
8499 HOST_WIDE_INT for gap.
8500
b11576bf 85012009-05-11 Ira Rosen <irar@il.ibm.com>
8502
8503 PR tree-optimization/40074
8504 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
8505 account in group size and step comparison.
8506
2f8eb909 85072009-05-11 Richard Guenther <rguenther@suse.de>
8508
8509 * passes.c (init_optimization_passes): Strip now incorrect comment.
8510 (execute_function_todo): Do not set PROP_alias.
8511 * tree-pass.h (PROP_alias): Remove.
8512 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
8513 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
8514 * tree-nrv.c (pass_return_slot): Likewise.
8515 * tree-object-size.c (pass_object_sizes): Likewise.
8516 * tree-ssa-dom.c (pass_dominator): Likewise.
8517 (pass_phi_only_cprop): Likewise.
8518 * tree-ssa-dse.c (pass_dse): Likewise.
8519 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
8520 (pass_cselim): Likewise.
8521 * tree-ssa-pre.c (pass_pre): Likewise.
8522 (pass_fre): Likewise.
8523 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
8524 * tree-ssa-sink.c (pass_sink_code): Likewise.
8525 * tree-stdarg.c (pass_stdarg): Likewise.
8526 * tree-tailcall.c (pass_tail_calls): Likewise.
8527 * tree-vrp.c (pass_vrp): Likewise.
8528
0b09525f 85292009-05-10 Ian Lance Taylor <iant@google.com>
8530
8531 * basic-block.h (enum profile_status): Break out of struct
8532 control_flow_graph.
8533 * cgraph.h (struct inline_summary): Break out of struct
8534 cgraph_local_info.
8535 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
8536 of struct cgraph_order_sort.
6ca2db76 8537 * combine.c (enum undo_kind): New enum, broken out of struct undo.
0b09525f 8538 * cse.c (struct branch_path): Break out of struct
8539 cse_basic_block_data.
8540 * except.h (enum eh_region_type): Break out of struct eh_region.
8541 * gcc.c (enum add_del): Break out of struct modify_target.
6ca2db76 8542 * genrecog.c (enum decision_type): Break out of struct decision_test.
0b09525f 8543 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
8544 ggc_pch_data.
6ca2db76 8545 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
8546 * regmove.c (enum match_use): New enum, broken out of struct match.
0b09525f 8547 * sched-int.h (enum post_call_group): New enum, broken out of
8548 struct deps.
8549 (struct deps_reg): Break out of struct deps.
8550 * target.h (struct asm_int_op): Break out of struct gcc_target.
8551 * tree-eh.c (struct goto_queue_node): Break out of struct
8552 leh_tf_state.
8553 * tree-inline.h (enum copy_body_cge_which): Break out of
8554 copy_body_data.
8555 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
8556
8557 * c-decl.c (in_struct, struct_types): New static variables.
8558 (pushtag): Add loc parameter. Change all callers.
8559 (lookup_tag): Add ploc parameter. Change all callers.
8560 (check_compound_literal_type): New function.
8561 (parser_xref_tag): Add loc parameter. Change all callers. If
8562 -Wc++-compat, warn about struct/union/enum types defined within a
8563 struct or union.
8564 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
8565 and loc parameters. Change all callers. Change error calls to
8566 error_at, using loc. For a redefinition, if the location of the
8567 original definition is known, report it. Set in_struct and
6ca2db76 8568 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
0b09525f 8569 (finish_struct): Add new parameters enclosing_in_struct and
8570 enclosing_struct_types. Change all callers. Set
8571 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
8572 in the struct. If in a struct, add this struct to struct_types.
8573 (start_enum): Add loc parameter. Change all callers. Use
8574 error_at for errors, using loc. For a redefinition, if the
8575 location of the original definition is known, report it. If in a
8576 struct, add this enum type to struct_types. If -Wc++-compat warn
8577 if in sizeof, typeof, or alignof.
6ca2db76 8578 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
8579 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
0b09525f 8580 (c_parser_enum_specifier): Get enum location for start_enum.
8581 (c_parser_struct_or_union_specifier): Get struct location for
8582 start_struct. Save in_struct and struct_types status between
8583 start_struct and finish_struct.
8584 (c_parser_cast_expression): Get location of cast.
8585 (c_parser_alignof_expression): Get location of type.
8586 (c_parser_postfix_expression): Likewise.
8587 (c_parser_postfix_expression_after_paren_type): Add type_loc
6ca2db76 8588 parameter. Change all callers. Call check_compound_literal_type.
8589 Use type_loc for error about variable size type.
8590 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
8591 of an enum constant from an enum type defined in a struct or union.
0b09525f 8592 (c_cast_expr): Add loc parameter. Change all callers. If
8593 -Wc++-compat, warn about defining a type in a cast.
8594 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
8595 (start_enum, start_struct, finish_struct): Update declarations.
8596 (parser_xref_tag, c_cast_expr): Update declarations.
8597 (check_compound_literal_type): Declare.
8598
9d6d8a52 85992009-05-11 Ben Elliston <bje@au.ibm.com>
8600
8601 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
8602 for recent libcpp interface change.
8603 (rs6000_macro_to_expand): Likewise.
8604
c67e32f9 86052009-05-10 Michael Matz <matz@suse.de>
8606
8607 PR target/40031
8608 * config/arm/arm.c (require_pic_register): Emit on entry edge,
8609 not at entry of function.
8610
e2a3897e 86112009-05-10 Richard Guenther <rguenther@suse.de>
8612
8613 PR tree-optimization/40081
8614 Revert
8615 * tree-sra.c (instantiate_element): Instantiate scalar replacements
8616 using the main variant of the element type. Do not fiddle with
8617 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
8618
8619 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
8620 structs with volatile fields.
8621
31359ae8 86222009-05-10 Jan Hubicka <jh@suse.cz>
8623
8624 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
6ca2db76 8625 (estimate_move_cost): Assert that it does not get called for
8626 VOID_TYPE_P.
31359ae8 8627 (estimate_num_insns): Skip VOID types in argument handling.
8628 (optimize_inline_calls): Delete unreachable blocks and verify that
8629 callgraph is valid.
8630
2cb64f78 86312009-05-10 Jan Hubicka <jh@suse.cz>
8632
8633 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
8634 * cgraph.c (cgraph_mark_address_taken_node): New function.
8635 (dump_cgraph_node): Dump new flag.
8636 * cgraph.h (struct cgraph_node): Add address_taken.
8637 (cgraph_mark_address_taken_node): New function.
2cb64f78 8638 * ipa.c (cgraph_postorder): Prioritize functions with address taken
8639 since new direct calls can be born.
8640
2ee04baa 86412009-05-10 Joseph Myers <joseph@codesourcery.com>
8642
8643 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
8644 tok->val.node.node.
8645
8d8c4f3e 86462009-05-10 Jan Hubicka <jh@suse.cz>
8647
8648 PR middle-end/40084
5eaad62c 8649 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
8650 argument; rewrite.
8d8c4f3e 8651 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
8652 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
8653 * tree-inline.c (copy_bb): Set frequency correctly.
5eaad62c 8654 (fold_marked_statements): Update call to
8655 cgraph_update_edges_for_call_stmt.
8d8c4f3e 8656
67a779df 86572009-05-10 Joseph Myers <joseph@codesourcery.com>
8658
8659 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
8660 identifiers in diagnostics.
8661 * config/arm/arm.c (arm_handle_fndecl_attribute,
8662 arm_handle_isr_attribute): Likewise.
8663 * config/avr/avr.c (avr_handle_progmem_attribute,
2377feea 8664 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
67a779df 8665 * config/bfin/bfin.c (handle_int_attribute,
8666 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
8667 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
8668 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
8669 Likewise.
8670 * config/darwin.c (darwin_handle_kext_attribute,
8671 darwin_handle_weak_import_attribute): Likewise.
8672 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
8673 h8300_handle_eightbit_data_attribute,
8674 h8300_handle_tiny_data_attribute): Likewise.
8675 * config/i386/i386.c (ix86_handle_cconv_attribute,
2377feea 8676 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
67a779df 8677 * config/i386/winnt.c (ix86_handle_shared_attribute,
8678 ix86_handle_selectany_attribute): Likewise.
8679 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
8680 * config/m32c/m32c.c (function_vector_handler): Likewise.
8681 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
8682 m68hc11_handle_fntype_attribute): Likewise.
8683 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
8684 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
8685 * config/mips/mips.c (mips_insert_attributes,
8686 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
8687 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
8688 rs6000_handle_struct_attribute): Likewise.
8689 * config/sh/sh.c (sh_insert_attributes,
8690 sh_handle_resbank_handler_attribute,
8691 sh_handle_interrupt_handler_attribute,
8692 sh2a_handle_function_vector_handler_attribute,
8693 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
8694 Likewise.
8695 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
8696 * config/spu/spu.c (spu_handle_fndecl_attribute,
8697 spu_handle_vector_attribute): Likewise.
8698 * config/stormy16/stormy16.c
8699 (xstormy16_handle_interrupt_attribute): Likewise.
8700 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
8701 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
8702
a608187f 87032009-05-10 Joseph Myers <joseph@codesourcery.com>
8704
2377feea 8705 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
a608187f 8706 (pp_translate_identifiers): New.
8707 (pp_identifier): Only conditionally translate identifier to locale
8708 character set.
8709 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
8710 (pp_base_tree_identifier): Only conditionally translate identifier
8711 to locale character set.
8712 * c-pretty-print.c (M_): Define.
8713 (pp_c_type_specifier, pp_c_primary_expression): Mark English
8714 fragments for conditional translation with M_.
8715 * tree-pretty-print.c (maybe_init_pretty_print): Disable
8716 identifier translation.
8717
d919c4c8 87182009-05-10 Richard Guenther <rguenther@suse.de>
8719
8720 PR tree-optimization/40081
8721 * tree-sra.c (instantiate_element): Instantiate scalar replacements
8722 using the main variant of the element type. Do not fiddle with
8723 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
8724
947781ac 87252009-05-09 Jan Hubicka <jh@suse.cz>
8726
8727 PR middle-end/40080
8728 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
8729 indirect calls; verify cgraph afterwards.
8730
21f41380 87312009-05-09 Jan Hubicka <jh@suse.cz>
8732
8733 PR bootstrap/40082
8734 * ipa.c (update_inlined_to_pointer): New function.
8735 (cgraph_remove_unreachable_nodes): Use it.
8736
1b044ec2 87372009-05-09 Jan Hubicka <jh@suse.cz>
8738
8739 * tree-eh.c (struct leh_state): Remove prev_try.
8740 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
8741 not track prev_try.
8742 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
8743 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
8744 remove_eh_handler_and_replace, foreach_reachable_handler,
8745 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
8746 * except.h (struct eh_region): Remove eh_region_u_cleanup.
8747 (gen_eh_region_cleanup): Update prototype.
8748
8997fc11 87492009-05-09 Jan Hubicka <jh@suse.cz>
8750
8751 PR middle-end/40043
8752 * except.c (copy_eh_region): Always set prev_try.
8753 (redirect_eh_edge_to_label): Find outer try.
8754 (foreach_reachable_handler): When looking for prev try
8755 handle case where previous try is not going to be taken.
8756
54206f86 87572009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
8758
8759 PR tree-optimization/40049
8760 * tree-vect-stmts.c (vectorizable_operation): If the machine has
8761 only vector/vector shifts, convert the type of the constant to the
8762 appropriate type to avoid building incorrect trees, which
8763 eventually have problems with garbage collection.
8764
fc86f9df 87652009-05-08 Joseph Myers <joseph@codesourcery.com>
8766
8767 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
8768 -1 for complex floating-point types if honoring signed zeros.
8769
ccf4ab6b 87702009-05-08 Jan Hubicka <jh@suse.cz>
8771
80a52720 8772 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
8773 argument; handle correctly when profile is absent.
ccf4ab6b 8774 (build_cgraph_edges): Update.
8775 (rebuild_cgraph_edges): Update.
80a52720 8776 * cgraph.c: Do not include varray.h.
8777 (cgraph_set_call_stmt_including_clones): New function.
8778 (cgraph_create_edge_including_clones): Likewise
8779 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
ccf4ab6b 8780 (cgraph_update_edges_for_call_stmt): Handle clones.
8781 (cgraph_remove_node): Handle clone tree.
8782 (cgraph_remove_node_and_inline_clones): New function.
8783 (dump_cgraph_node): Dump clone tree.
8784 (cgraph_clone_node): Handle clone tree.
80a52720 8785 (clone_function_name): Bring here from tree-inline.c.
ccf4ab6b 8786 (cgraph_create_virtual_clone): New function.
80a52720 8787 * cgraph.h (ipa_replace_map): Move here from ipa.h.
8788 (cgraph_clone_info): New function.
ccf4ab6b 8789 (strut cgraph_node): Add clone_info and new clone tree pointers.
80a52720 8790 (cgraph_remove_node_and_inline_clones,
8791 cgraph_set_call_stmt_including_clones,
8792 cgraph_create_edge_including_clones,
8793 cgraph_create_virtual_clone): Declare.
ccf4ab6b 8794 (cgraph_function_versioning): Use VEC argument.
8795 (compute_call_stmt_bb_frequency): Update prototype.
8796 (cgraph_materialize_all_clones): New function.
8797 * ipa-cp.c (ipcp_update_cloned_node): Remove.
8798 (ipcp_create_replace_map): Update to VECtors.
8799 (ipcp_update_callgraph): Use virtual clones.
8800 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
8801 (ipcp_update_profiling): Do not update local profiling.
8802 (ipcp_insert_stage): Use VECtors and virtual clones.
8803 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
8804 (clone_of_p): New function.
8805 (cgraph_preserve_function_body_p): Use clone tree.
8806 (cgraph_optimize): Materialize clones.
8807 (cgraph_function_versioning): Update for VECtors.
8808 (save_inline_function_body): Use clone tree.
80a52720 8809 (cgraph_materialize_clone): New function.
8810 (cgraph_materialize_all_clones): Likewise.
ccf4ab6b 8811 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
8812 * ipa.c: Include gimple.h.
8813 (cgraph_remove_unreachable_nodes): Use clone tree.
80a52720 8814 * ipa-prop.c (ipa_note_param_call): Update call to
8815 compute_call_stmt_bb_frequencycall.
ccf4ab6b 8816 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
80a52720 8817 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
ccf4ab6b 8818 (copy_bb): Handle updating of clone tree; add new edge when new call
8819 appears.
8820 (expand_call_inline): Be strict about every call having edge.
8821 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
8822 (delete_unreachable_blocks_update_callgraph): New function.
80a52720 8823 (tree_function_versioning): Use VECtors; always remove unreachable
8824 blocks and fold conditionals.
8825 * tree-inline.h: Do not include varray.h.
ccf4ab6b 8826 (tree_function_versioning): Remove.
8827 * Makefile.in (GTFILES): Remove tree-inline.c
8828 * passes.c (do_per_function): Do only functions having body.
80a52720 8829 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
8830 tree.
ccf4ab6b 8831
45c4e798 88322009-05-08 H.J. Lu <hongjiu.lu@intel.com>
8833 Andrew Morrow <acm@google.com>
8834
8835 PR c/36892
8836 * c-common.c (c_common_attribute_table): Permit deprecated
8837 attribute to take an optional argument.
8838 (handle_deprecated_attribute): If the optional argument to
8839 __attribute__((deprecated)) is not a string ignore the attribute
8840 and emit a warning.
8841
8842 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
8843 * c-typeck.c (build_component_ref): Likewise.
8844 (build_external_ref): Likewise.
8845
8846 * toplev.c (warn_deprecated_use): Add an attribute argument.
8847 Emit the message associated with __attribute__((deprecated)).
8848
8849 * toplev.h (warn_deprecated_use): Updated.
8850
8851 * doc/extend.texi: Document new optional parameter to
8852 __attribute__((deprecated))
8853
3a45c25e 88542009-05-08 Michael Eager <eager@eagercon.com>
8855
8856 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
8857 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
8858
aebe538b 88592009-05-08 Richard Guenther <rguenther@suse.de>
8860
8861 PR tree-optimization/40062
8862 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
8863 Avoid exponential behavior.
8864
e0bd4156 88652009-05-08 Paolo Bonzini <bonzini@gnu.org>
8866
8867 PR rtl-optimization/33928
8868 PR 26854
8869 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
8870 process_uses, build_single_def_use_links): New.
8871 (update_df): Update use_def_ref.
8872 (forward_propagate_into): Use get_def_for_use instead of use-def
8873 chains.
8874 (fwprop_init): Call build_single_def_use_links and let it initialize
8875 dataflow.
8876 (fwprop_done): Free use_def_ref.
8877 (fwprop_addr): Eliminate duplicate call to df_set_flags.
8878 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
8879 df_rd_simulate_one_insn): New.
8880 (df_rd_bb_local_compute_process_def): Update head comment.
8881 (df_chain_create_bb): Use the new RD simulation functions.
8882 * df.h (df_rd_simulate_artificial_defs_at_top,
8883 df_rd_simulate_one_insn): New.
8884 * opts.c (decode_options): Enable fwprop at -O1.
8885 * doc/invoke.texi (-fforward-propagate): Document this.
8886
0f241d3f 88872009-05-08 Joseph Myers <joseph@codesourcery.com>
8888
8889 PR c/24581
8890 * c-typeck.c (build_binary_op): Handle arithmetic between one real
8891 and one complex operand specially.
8892 * tree-complex.c (some_nonzerop): Do not identify a real value as
8893 zero if flag_signed_zeros.
8894
5c83cd34 88952009-05-08 Paolo Bonzini <bonzini@gnu.org>
8896
8897 PR rtl-optimization/33928
e0f84439 8898 * loop-invariant.c (record_use): Fix && vs. || mishap.
5c83cd34 8899
68461c19 89002009-05-08 Paolo Bonzini <bonzini@gnu.org>
8901
8902 PR rtl-optimization/33928
39db6a03 8903 * loop-invariant.c (struct use): Add addr_use_p.
8904 (struct def): Add n_addr_uses.
8905 (struct invariant): Add cheap_address.
8906 (create_new_invariant): Set cheap_address.
8907 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
8908 (record_uses): Pass df_ref to record_use.
8909 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
8910 used only as such.
68461c19 8911
e0f22649 89122009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
8913
8914 * config/sh/sh.c: Do not include c-pragma.h.
8915
653ba01f 89162009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
8917
8918 * config/spu/spu.c: Remove include of c-common.h.
8919
3ae3a17f 89202009-05-07 Janis Johnson <janis187@us.ibm.com>
8921
8922 PR c/39037
8923 * c-common.h (mark_valid_location_for_stdc_pragma,
8924 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
8925 clear_float_const_decimal64, float_const_decimal64_p): New.
8926 * c.opt (Wunsuffixed-float-constants): New.
8927 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
8928 unsuffixed float constant, handle new warning.
8929 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
8930 * c-decl.c (c_scope): New flag float_const_decimal64.
8931 (set_float_const_decimal64, clear_float_const_decimal64,
8932 float_const_decimal64_p): New.
8933 (push_scope): Set new flag.
8934 * c-parser.c (c_parser_translation_unit): Mark when it's valid
8935 to use STDC pragmas.
8936 (c_parser_external_declaration): Ditto.
8937 (c_parser_compound_statement_nostart): Ditto.
8938 * c-pragma.c (valid_location_for_stdc_pragma,
8939 mark_valid_location_for_stdc_pragma,
8940 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
8941 handle_pragma_float_const_decimal64): New.
8942 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
8943 * cp/semantics.c (valid_location_for_stdc_pragma_p,
8944 set_float_const_decimal64, clear_float_const_decimal64,
8945 float_const_decimal64_p): New dummy functions.
8946 * doc/extend.texi (Decimal Float): Remove statement that the
8947 pragma, and suffix for double constants, are not supported.
8948 * doc/invoke.texi (Warning Options): List new option.
8949 (-Wunsuffixed-float-constants): New.
8950
6de97ed5 89512009-05-08 Steven Bosscher <steven@gcc.gnu.org>
8952
8953 * config/i386/i386.c: Do not include c-common.h.
8954
b2d31ed6 89552009-05-07 Mark Heffernan <meheff@google.com>
8956
8957 * doc/invoke.texi (Debugging Options): Document change of debugging
8958 dump location.
39db6a03 8959 * opts.c (decode_options): Make dump_base_name relative to
b2d31ed6 8960 aux_base_name directory.
8961
697cef4f 89622009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
8963
8964 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
8965 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
8966
537bb6bf 89672009-05-07 Rafael Avila de Espindola <espindola@google.com>
8968
8969 * Makefile.in (install-plugin): Simplify a bit.
8970
2d4749b6 89712009-05-07 Paolo Bonzini <bonzini@gnu.org>
8972
8973 * Makefile.in (OBJS-common): Add regcprop.o.
8974 (regcprop.o): New.
8975 * timevar.def (TV_CPROP_REGISTERS): New.
8976 * regrename.c (regrename_optimize): Return 0.
8977 (rest_of_handle_regrename): Delete.
8978 (pass_rename_registers): Point to regrename_optimize.
8979 (struct value_data_entry, struct value_data,
8980 kill_value_one_regno, kill_value_regno, kill_value,
8981 set_value_regno, init_value_data, kill_clobbered_value,
8982 kill_set_value, kill_autoinc_value, copy_value,
8983 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
8984 replace_oldest_value_reg, replace_oldest_value_addr,
8985 replace_oldest_value_mem, copyprop_hardreg_forward_1,
8986 debug_value_data, validate_value_data): Move...
8987 * regcprop.c: ... here.
8988 (rest_of_handle_cprop): Delete.
8989 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
8990
7ad40ea1 89912009-05-07 Jakub Jelinek <jakub@redhat.com>
8992
8993 PR middle-end/40057
8994 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
8995 GEN_INT for 1 << bitnum.
8996 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
8997 build_int_cst_type.
8998
1cae7fd7 89992009-05-07 Uros Bizjak <ubizjak@gmail.com>
9000
9001 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
e0f84439 9002 Remove wrong description of "nand" operation.
1cae7fd7 9003
618b10bf 90042009-05-06 Richard Guenther <rguenther@suse.de>
9005 Adam Nemet <anemet@caviumnetworks.com>
9006
9007 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
9008 comment. Add that if LHS is not a gimple register, then RHS1 has
9009 to be a single object (GIMPLE_SINGLE_RHS).
9010
c1a83279 90112009-05-06 Adam Nemet <anemet@caviumnetworks.com>
9012
9013 * expr.c (get_def_for_expr): Move it up in the file.
9014 (store_field): When expanding a bit-field store, look at the
9015 defining gimple stmt for the masking conversion.
9016
b0090d52 90172009-05-06 Janis Johnson <janis187@us.ibm.com>
9018
9019 PR middle-end/39986
9020 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
9021 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
9022 32-bit memcpy into long.
9023
8fb8ca17 90242009-05-06 Jakub Jelinek <jakub@redhat.com>
9025
9026 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
9027 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
9028 new_reg_loc_descr.
9029 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
9030 instead of appending DW_OP_deref*.
9031
f800c469 90322009-05-06 Michael Matz <matz@suse.de>
9033
9034 PR middle-end/40021
9035 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
9036 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
9037
b3c73487 90382009-05-06 Rafael Avila de Espindola <espindola@google.com>
9039
9040 * Makefile.in (install-plugin): Fix srcdir handling.
9041
d29f7fa8 90422009-05-06 Andrey Belevantsev <abel@ispras.ru>
9043
9044 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
9045 when processing for not_regs_needed bitmap.
9046 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
9047 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
9048 handling it for rhs.
9049
75445c99 90502009-05-06 H.J. Lu <hongjiu.lu@intel.com>
9051
a4374f2d 9052 * config/i386/i386.md (unnamed inc/dec peephole): Use
0ec7bfcd 9053 optimize_insn_for_size_p instead of optimize_size.
75445c99 9054 * config/i386/predicates.md (incdec_operand): Likewise.
9055 (aligned_operand): Likewise.
9056 * config/i386/sse.md (divv8sf3): Likewise.
9057 (sqrtv8sf2): Likewise.
9058
6e760686 90592009-05-06 H.J. Lu <hongjiu.lu@intel.com>
9060
9061 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
9062
9063 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
9064
67b1adf3 90652009-05-06 H.J. Lu <hongjiu.lu@intel.com>
9066
9067 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
9068 ssemodesuffixf2c with avxmodesuffixf2c.
9069
7f824b22 90702009-05-06 Joseph Myers <joseph@codesourcery.com>
9071
9072 PR c/40032
0ec7bfcd 9073 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
7f824b22 9074
7ac958de 90752009-05-05 Jakub Jelinek <jakub@redhat.com>
9076
9077 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
9078 (struct tree_base): Adjust spacing for 8 bit boundaries.
9079 (struct tree_decl_common): Add decl_by_reference_flag bit.
9080 (DECL_BY_REFERENCE): Adjust.
9081 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
9082 print DECL_BY_REFERENCE bit.
9083 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
9084 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
9085 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
9086 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
9087 unconditionally.
9088
72211fd1 9089 PR middle-end/39666
9090 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
9091 range of the type, but default label is missing, add it with one
9092 of the existing labels instead of adding a new label for it.
9093
a4987849 90942009-05-05 Joseph Myers <joseph@codesourcery.com>
9095
9096 * dwarf.h: Remove.
9097
912f2b18 90982009-05-05 Rafael Avila de Espindola <espindola@google.com>
9099
9100 * Makefile.in (enable_plugin, plugin_includedir): New.
9101 (install): Depend on install-plugin.
9102 (PLUGIN_HEADERS): New.
9103 (install-plugin): New.
9104 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
9105
d977f485 91062009-05-05 Richard Guenther <rguenther@suse.de>
9107
9108 PR tree-optimization/40022
9109 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
9110 the only vuse.
9111 (phivn_valid_p): Fix tuplification error, simplify.
9112 (phiprop_insert_phi): Add dumps.
9113 (propagate_with_phi): Simplify.
9114
bab5904e 91152009-05-05 Richard Guenther <rguenther@suse.de>
9116
9117 PR middle-end/40023
0ec7bfcd 9118 * builtins.c (gimplify_va_arg_expr): Properly build the address.
bab5904e 9119
15155321 91202009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
9121
9122 * tree.h (strip_float_extensions): Remove duplicate declaration.
0ec7bfcd 9123 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
9124 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
9125 block_ultimate_origin): Rearrange the declarations line to match the
9126 comment that indicates the .c file which the functions are defined.
9127 (dwarf2out_*, set_decl_rtl): Add comment.
9128 (get_base_address): Adjust comment.
9129 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
9130 declarations line and add comment.
9131 (is_builtin_name): Add blank after function name, for clarity.
15155321 9132
abd3e6b5 91332009-05-04 Joseph Myers <joseph@codesourcery.com>
9134
9135 * attribs.c (decl_attributes): Use %qE for identifiers in
9136 diagnostics.
9137 * cgraphunit.c (verify_cgraph_node): Translate function names to
9138 locale character set in diagnostics.
9139 * coverage.c (get_coverage_counts): Use %qE for identifiers in
9140 diagnostics.
9141 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
9142 Document that functions are named in UTF-8.
9143 * expr.c (expand_expr_real_1): Translate function names to locale
9144 character set in diagnostics.
9145 * gimplify.c (omp_notice_variable, omp_is_private,
9146 gimplify_scan_omp_clauses): Use %qE for identifiers in
9147 diagnostics.
9148 * langhooks.c (lhd_print_error_function): Translate function names
9149 to locale character set.
9150 * langhooks.h (decl_printable_name): Document that return value is
9151 in internal character set.
9152 * stmt.c: Include pretty-print.h
9153 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
9154 diagnostics.
9155 (resolve_operand_name_1): Translate named operand name to locale
9156 character set.
9157 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
9158 diagnostics.
9159 * toplev.c (announce_function): Translate function names to locale
9160 character set.
9161 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
9162 (default_tree_printer): Use pp_identifier or translate identifiers
9163 to locale character set. Mark "<anonymous>" for translation.
9164 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
9165 for identifiers in diagnostics.
9166 * tree.c (handle_dll_attribute): Use %qE for identifiers in
9167 diagnostics.
9168 * varasm.c (output_constructor): Use %qE for identifiers in
9169 diagnostics.
9170
6ac2286b 91712009-05-04 Rafael Avila de Espindola <espindola@google.com>
9172
9173 * configure.ac: use ` ` instead of $()
9174 * configure: Regenerate.
9175
5f80759e 91762009-05-05 Ben Elliston <bje@au.ibm.com>
9177
9178 * config/pa/linux-atomic.c: Eliminate conditional include of
9179 errno.h on non-LP64 systems to simplify build requirements.
9180
d1dd9ac0 91812009-05-04 Joseph Myers <joseph@codesourcery.com>
9182
9183 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
9184 diagnostics.
9185 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
9186 and pass value to identifier_to_locale.
9187 (warn_variable_length_array): Make name a tree.
9188 (grokdeclarator): Separate diagnostic texts for named and unnamed
9189 declarators. Use %qE for named declarators.
9190 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
9191 diagnostics.
9192 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
9193 identifiers in diagnostics.
9194 * c-typeck.c (push_member_name, start_init): Pass identifiers to
9195 identifier_to_locale. Mark "anonymous" strings for translation.
9196
c440daea 91972009-05-04 Michael Eager <eager@eagercon.com>
9198
9199 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
0ec7bfcd 9200 address for DImode/DFmode only if double-precision FP regs.
c440daea 9201
498670de 92022009-05-04 Michael Eager <eager@eagercon.com>
9203
9204 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
9205 TARGET_SINGLE_FLOAT check.
9206
ada4bf4e 92072009-05-04 Michael Eager <eager@eagercon.com>
9208
9209 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
9210
c6312735 92112009-05-04 Michael Eager <eager@eagercon.com>
9212
9213 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
9214 * config/rs6000/t-xilinx: New
9215
41e3a0c7 92162009-05-04 Paolo Bonzini <bonzini@gnu.org>
9217
39db6a03 9218 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
41e3a0c7 9219 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
9220 * gcc/explow.c (memory_address): Use target hook.
9221 * gcc/targhooks.c (default_legitimize_address): New.
9222 * gcc/targhooks.h (default_legitimize_address): New.
9223 * gcc/target.h (legitimize_address): New.
9224 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
9225 (TARGET_INITIALIZER): Include it.
9226 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
9227
9228 * config/bfin/bfin-protos.h (legitimize_address): Remove.
9229 * config/bfin/bfin.c (legitimize_address): Remove.
9230 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
0ec7bfcd 9231 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
9232 Remove.
41e3a0c7 9233 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
9234 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
9235
9236 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
9237 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
9238 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
9239 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
9240 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
9241 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
9242 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
9243 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
9244 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
9245 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
9246 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
9247 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
9248 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
9249 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
9250 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
9251 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
9252 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
9253 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
9254 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
9255 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
9256 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
9257 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
9258 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
9259
9260 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
9261 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
9262 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
9263 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
9264 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
9265 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
9266 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
9267 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
9268 (thumb_legitimize_address): Delete.
9269 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
9270 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
9271 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
9272 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
9273 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
0ec7bfcd 9274 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
9275 Delete.
9276 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
9277 Delete.
41e3a0c7 9278
9279 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
9280 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
9281 * config/m32r/m32r.c (m32r_legitimize_address): New.
9282 * config/m68k/m68k.c (m68k_legitimize_address): New.
9283 * config/score/score.c (score_legitimize_address): Standardize.
9284 * config/score/score3.c (score3_legitimize_address): Standardize.
9285 * config/score/score3.h (score3_legitimize_address): Adjust.
9286 * config/score/score7.c (score7_legitimize_address): Standardize.
9287 * config/score/score7.h (score7_legitimize_address): Adjust.
9288 * config/sh/sh.c (sh_legitimize_address): New.
9289 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
9290
9291 * gcc/config/s390/s390.c (legitimize_address): Rename to...
9292 (s390_legitimize_address): ... this.
9293 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
9294 (sparc_legitimize_address): ... this.
9295 * gcc/config/i386/i386.c (legitimize_address): Rename to...
9296 (ix86_legitimize_address): ... this.
9297 * gcc/config/avr/avr.c (legitimize_address): Rename to...
9298 (avr_legitimize_address): ... this.
9299 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
9300 (mn10300_legitimize_address): ... this.
9301 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
9302 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
9303 (alpha_expand_mov): Adjust call.
9304
9305 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
9306 * config/spu/spu.c (spu_legitimize_address): Likewise.
9307 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
9308 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
9309
27746e01 93102009-05-04 Joseph Myers <joseph@codesourcery.com>
9311
9312 * intl.c (locale_encoding, locale_utf8): New.
9313 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
9314 * intl.h (locale_encoding, locale_utf8): Declare.
9315 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
9316 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
9317 New.
9318 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
9319 argument.
9320 (pp_tree_identifier): Define to call pp_base_tree_identifier.
9321 (pp_base_tree_identifier): Declare as function.
9322 (identifier_to_locale): Declare.
9323 * Makefile.in (pretty-print.o): Update dependencies.
0ec7bfcd 9324 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
27746e01 9325
97d4c6a6 93262009-05-04 Richard Guenther <rguenther@suse.de>
9327
9328 PR middle-end/40015
9329 * builtins.c (fold_builtin_memory_op): Do not decay to element
9330 type if the size matches the whole array.
9331
5521b4c8 93322009-05-04 Kazu Hirata <kazu@codesourcery.com>
9333
9334 * expmed.c (synth_mult): When trying out a shift, pass the result
9335 of a signed shift.
9336
b592bb50 93372009-05-04 Kazu Hirata <kazu@codesourcery.com>
9338
9339 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
9340 (shiftsub1_cost): New.
9341 (init_expmed): Compute shiftsub1_cost.
9342 (synth_mult): Optimize multiplications by constants of the form
9343 -(2^^m-1) for some constant positive integer m.
9344
45bb3afb 93452009-05-03 Richard Guenther <rguenther@suse.de>
9346
9347 PR c/39983
9348 * c-typeck.c (array_to_pointer_conversion): Do not built
9349 ADDR_EXPRs of arrays of pointer-to-element type.
9350 * c-gimplify.c (c_gimplify_expr): Revert change fixing
9351 up wrong ADDR_EXPRs after-the-fact.
9352 * c-common.c (strict_aliasing_warning): Strip pointer
9353 conversions for obtaining the original type.
9354 * builtins.c (fold_builtin_memset): Handle array types.
9355 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
9356 and array types
9357
9225ad44 93582009-05-03 Richard Guenther <rguenther@suse.de>
9359
9360 PR middle-end/23329
9361 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
9362 Do not lose casts from array types with unknown extent to array
9363 types with known extent.
9364 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
9365 alias set compatibility.
9366
a0ded67b 93672009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
9368
9369 * flags.h (extra_warnings): Delete.
9370 * toplev.c (process_options): Handle Wuninitialized here.
9371 * opts.c (extra_warnings): Delete.
9372 (set_Wextra): Delete.
9373 (common_handle_option): -Wextra can be handled automatically.
9374 * c-opts.c (c_common_handle_option): Delete obsolete code.
9375 (c_common_post_options): Simplify comment.
9376 * common.opt (W): Add Var.
9377 (Wextra): Add Var.
9378 (Wuninitialized): Initialize to -1.
9379
bf39f60a 93802009-05-03 Adam Nemet <anemet@caviumnetworks.com>
9381 Richard Guenther <rguenther@suse.de>
9382
9383 * expr.c (get_def_for_expr): New function.
9384 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
9385 SSA rather than trees.
9386 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
9387 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
9388
c1800156 93892009-05-03 Joseph Myers <joseph@codesourcery.com>
9390
9391 * c-common.c (reswords): Add _Imaginary.
9392 * c-common.c (enum rid): Add RID_IMAGINARY.
9393
8b50765f 93942009-05-03 Paolo Bonzini <bonzini@gnu.org>
9395
9396 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
9397 Patch by Richard Guenther.
9398
a4efa7dc 93992009-05-03 Anatoly Sokolov <aesok@post.ru>
9400
9401 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
9402 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
9403 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
9404 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
9405 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
9406 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
9407 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
9408 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
9409 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
9410 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
9411 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
9412 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
9413 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
9414 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
9415 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
9416 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
9417 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
9418 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
9419
b4c97a12 94202009-05-02 Richard Guenther <rguenther@suse.de>
9421
9422 PR tree-optimization/39940
9423 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
9424 doing so.
9425
f09f132b 94262009-05-02 Richard Guenther <rguenther@suse.de>
9427
9428 PR middle-end/40001
9429 * tree-ssa.c (execute_update_addresses_taken): Properly check
9430 if we can mark a variable DECL_GIMPLE_REG_P.
9431 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
9432 back to the end of the function.
9433 (is_gimple_reg_type): Remove complex type special casing.
9434 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
9435 if not optimizing.
9436
2ccfd743 94372009-05-02 Ben Elliston <bje@au.ibm.com>
9438
9439 * doc/collect2.texi (Collect2): Document search path behaviour
9440 when configured with --with-ld.
9441
5b835bca 94422009-05-02 Jan Hubicka <jh@suse.cz>
9443
9444 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
9445 parameter; update callers.
0ec7bfcd 9446 (coalesce_cost_edge): EH edges are costier because they needs
9447 splitting even if not critical and even more costier when there are
9448 multiple EH predecestors.
5b835bca 9449
a0c110ce 94502009-05-02 Jan Hubicka <jh@suse.cz>
9451
9452 * except.c (remove_eh_handler_and_replace): Handle updating after
9453 removing TRY blocks.
9454
aa7ab40e 94552009-05-02 Eric Botcazou <ebotcazou@adacore.com>
9456
9457 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
9458
c778f6b8 94592009-05-02 Steven Bosscher <steven@gcc.gnu.org>
9460
9461 * varasm.c: Do not include c-pragma.h.
9462 * attribs.c: Do not incude c-common.h.
9463
d6230243 94642009-05-01 Michael Matz <matz@suse.de>
9465
9466 * calls.c (initialize_argument_information): Handle SSA names like
9467 decls with a non MEM_P DECL_RTL.
9468
5863771b 94692009-05-01 Steven Bosscher <steven@gcc.gnu.org>
9470
9471 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
9472 * ipa-utils.c: Likewise.
9473 * ipa-type-escape.c: Likewise.
9474 * cgraphunit.c Do not include c-common.h.
9475 * ipa-pure-const.c: Likewise.
9476 * tree-if-conv.c: Likewise.
9477 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
9478 * ipa-struct-reorg.c: Likewise.
9479 * tree-nomudflap.c: Likewise.
9480 * tree-ssa-structalias.c: Likewise.
9481
acf70424 94822009-05-01 Steven Bosscher <steven@gcc.gnu.org>
9483
9484 * store-motion.c: Many cleanups to make this pass a first-class
9485 citizen instead of an appendix to gcse load motion. Add TODO list
9486 to make this pass faster/cleaner/better.
9487
9488 (struct ls_expr): Post gcse.c-split cleanups.
9489 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
9490 "stores" field to "avail_stores".
9491 (pre_ldst_mems): Rename to store_motion_mems.
9492 (pre_ldst_table): Rename to store_motion_mems_table.
9493 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
9494 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
9495 (ldst_entry): Rename to st_expr_entry, update users.
9496 (free_ldst_entry): Rename to free_st_expr_entry, update users.
9497 (free_ldst_mems): Rename to free_store_motion_mems, update users.
0ec7bfcd 9498 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
9499 update caller.
acf70424 9500 (first_ls_expr): Rename to first_st_expr, update users.
9501 (next_ls_expr): Rename to next_st_expr, update users.
9502 (print_ldst_list): Rename to print_store_motion_mems. Print names of
9503 fields properly for store motion instead of names inherited from load
9504 motion in gcse.c.
9505 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
9506 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
9507 are done with it.
9508
9509 (ae_kill): Rename to st_kill, update users.
9510 (ae_gen): Rename to st_avloc, update users.
9511 (transp): Rename to st_transp, update users.
9512 (pre_insert_map): Rename to st_insert_map, update users.
9513 (pre_delete_map): Rename to st_delete_map, update users.
9514 (insert_store, build_store_vectors, free_store_memory,
9515 one_store_motion_pass): Update for abovementioned changes.
9516
9517 (gcse_subst_count, gcse_create_count): Remove.
9518 (one_store_motion_pass): New statistics counters "n_stores_deleted"
9519 and "n_stores_created", local variables.
9520
9521 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
9522 use for_each_rtx.
9523
9524 (regvec, compute_store_table_current_insn): Remove.
9525 (reg_set_info, reg_clear_last_set): Remove.
9526 (compute_store_table): Use DF caches instead of local dataflow
9527 solvers.
9528
1e00012f 95292009-05-01 Joseph Myers <joseph@codesourcery.com>
9530
9531 * c-objc-common.c (c_tree_printer): Print identifiers with
9532 pp_identifier, not pp_string. Mark "({anonymous})" for
9533 translation.
9534 * c-pretty-print.c (pp_c_ws_string): New.
9535 (pp_c_cv_qualifier, pp_c_type_specifier,
9536 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
9537 pp_c_storage_class_specifier, pp_c_function_specifier,
9538 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
9539 pp_c_primary_expression, pp_c_postfix_expression,
9540 pp_c_unary_expression, pp_c_shift_expression,
9541 pp_c_relational_expression, pp_c_equality_expression,
9542 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
9543 use pp_string and pp_c_ws_string in place of pp_identifier and
9544 pp_c_identifier for non-identifiers. Mark English strings for
9545 translation.
9546 * c-pretty-print.h (pp_c_ws_string): Declare.
9547
8271b966 95482009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
9549 Roland McGrath <roland@redhat.com>
9550
0ec7bfcd 9551 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
8271b966 9552 (ENABLE_LD_BUILDID): New configuration option.
9553 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
9554 (LINK_BUILDID_SPEC): New macro.
9555 (init_spec): If defined, prepend it between LINK_EH_SPEC and
9556 link_spec.
9557 * doc/install.texi: Document --enable-linker-build-id option.
9558 * configure: Rebuild.
9559 * config.in: Rebuild.
9560
f9eddbcf 95612009-04-30 Adam Nemet <anemet@caviumnetworks.com>
9562
9563 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
9564 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
9565 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
9566 MIPS_GP_SAVE_AREA_SIZE.
9567 * config/mips/mips.c (struct mips_frame_info): Update comment
9568 before arg_pointer_offset and hard_frame_pointer_offset.
9569 (mips_compute_frame_info): Update diagram before function: to
9570 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
9571 indicate the position of frame_pointer_rtx with -fstack-protector and
9572 to show args_size. Don't allocate cprestore area for leaf functions
9573 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
9574 cprestore_size.
9575 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
9576
a1828715 95772009-04-30 Michael Matz <matz@suse.de>
9578
f9eddbcf 9579 PR tree-optimization/39955
9580 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
a1828715 9581
520196ac 95822009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
9583
9584 * ira.c (setup_cover_and_important_classes): Use safe macro
9585 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
9586 directly.
9587 * genpreds.c (write_tm_preds_h): Output suitable definition of
9588 REG_CLASS_FOR_CONSTRAINT.
9589
29d35324 95902009-04-30 Rafael Avila de Espindola <espindola@google.com>
9591
9592 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
9593 instead of an int.
9594 * bitmap.c (bitmap_descriptor): Likewise.
9595 * ggc-common.c (loc_descriptor): Likewise.
9596 * varray.c (varray_descriptor): Likewise.
9597 * vec.c (vec_descriptor): Likewise.
9598
f274e293 95992009-04-30 Eric Botcazou <ebotcazou@adacore.com>
14ca6b9a 9600
9601 * Makefile.in (dce.o): Add $(EXCEPT_H).
9602 * dce.c: Include except.h and delete redundant vector definitions.
9603 (deletable_insn_p): Return false for non-call insns that can throw
9604 if DF is running.
9605
4b673aa1 96062009-04-30 Steven Bosscher <steven@gcc.gnu.org>
9607
9608 * gcse.c (ae_gen): Remove.
9609 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
9610 and make non-static function to make it available in store-motion.c.
9611 Update call sites with search-and-replace.
9612 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
9613 extract_mentioned_regs, extract_mentioned_regs_helper,
9614 find_moveable_store, compute_store_table, load_kills_store, find_loads,
9615 store_killed_in_insn, store_killed_after, store_killed_before,
9616 build_store_vectors, insert_insn_start_basic_block, insert-store,
9617 remove_reachable_equiv_notes, replace_store_insn, delete_store,
9618 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
9619 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
9620 * store-motion.c: ...new file. Also copy data structures from gcse.c
9621 and clean up to remove parts not used by store motion.
9622 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
9623 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
9624
aca3a78f 96252009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9626
9627 PR target/38571
9628 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
9629 when optimizing for size.
9630
e5a9568a 96312009-04-30 Hans-Peter Nilsson <hp@axis.com>
9632
9633 * gcse.c (gcse_constant_p): Fix typo in last change.
9634
c2cf4a47 96352009-04-30 Rafael Avila de Espindola <espindola@google.com>
9636
9637 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
9638
c5e00404 96392009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
9640
9641 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
9642
c8b71b5d 96432009-04-29 James E. Wilson <wilson@codesourcery.com>
9644
9645 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
9646 CONST_HIGH_PART result.
9647
ebdd0478 96482009-04-29 Anatoly Sokolov <aesok@post.ru>
9649
9650 * config/avr/avr.c (initial_elimination_offset): Rename to
9651 avr_initial_elimination_offset.
9652 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
9653 change return type to bool.
9654 (avr_can_eliminate): New function.
9655 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
9656 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
9657 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
1cae7fd7 9658 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
ebdd0478 9659 avr_initial_elimination_offset.
9660 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
9661 (avr_initial_elimination_offset): Define.
9662
225e5f6f 96632009-04-29 Eric Botcazou <ebotcazou@adacore.com>
0ec7bfcd 9664 Steven Bosscher <steven@gcc.gnu.org>
225e5f6f 9665
9666 PR rtl-optimization/39938
9667 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
9668 * cfgrtl.c: Include insn-attr.h.
9669 (rest_of_pass_free_cfg): New function.
9670 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
9671 * resource.c (init_resource_info): Remove call to df_analyze.
9672
db7bc493 96732009-04-29 Richard Guenther <rguenther@suse.de>
9674
9675 PR target/39943
9676 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
9677 allow conversion to signed integers.
9678
8f93c289 96792009-04-29 Richard Guenther <rguenther@suse.de>
9680
9681 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
9682 shifts of floating point vectors if the shift amount is
9683 a constant multiple of the element size.
9684
4ef1170b 96852009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
9686 Michael Matz <matz@suse.de>
9687
9688 PR middle-end/39927
9689 PR bootstrap/39929
9690 * tree-outof-ssa.c (emit_partition_copy): New function.
9691 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
9692 insert_part_to_rtx_on_edge): Perform the partition base var
9693 copy using emit_partition_copy.
9694 (insert_value_copy_on_edge): Convert constants to the right mode.
9695 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
9696 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
9697
8c7abb6c 96982009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
9699
9700 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
9701 scan backwards to try to find a constant to initialize it.
9702
82adee25 9703 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
9704 insn before the loop_end instruction, don't look past labels.
9705
7b705d94 97062009-04-29 Richard Guenther <rguenther@suse.de>
9707
9708 PR middle-end/39937
9709 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
9710 loose type conversions.
9711 (forward_propagate_addr_expr): Fix tuplification bug. Remove
9712 stmts only if there are no uses of its definition.
9713
0fead507 97142009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
9715
9716 * config/bfin/bfin.h (splitting_loops): Declare.
9717 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
9718 Reorder bit definitions to be ascending.
9719 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
9720 * config/bfin/bfin.c (splitting_loops): New variable.
9721 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
9722 (struct loop_info): Remove members INIT and LOOP_INIT.
9723 (bfin_optimize_loop): Don't set them. Reorder the code that generates
0ec7bfcd 9724 the LSETUP sequence. Allow LC to be loaded from any register, but
9725 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
0fead507 9726 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
9727 set to 1.
9728 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
9729 of reload_completed.
0ec7bfcd 9730
0fead507 9731 From Jie Zhang:
9732 * config/bfin/bfin.md (movsi_insn): Refine constraints.
9733
e8ad34e4 97342009-04-29 Rafael Avila de Espindola <espindola@google.com>
9735
9736 * Makefile.in (PLUGIN_VERSION_H): New.
9737 (OBJS-common): Remove plugin-version.o.
9738 (plugin.o): Depend on (PLUGIN_VERSION_H).
9739 (plugin-version.o): Remove.
9740 * configure: Regenerate
9741 * configure.ac: Create plugin-version.h.
9742 * gcc-plugin.h (plugin_gcc_version): Remove.
9743 (plugin_default_version_check): Change signature.
9744 * plugin-version.c: Remove.
9745 * plugin.c: Include plugin-version.h.
9746 (str_plugin_gcc_version_name): Remove.
9747 (try_init_one_plugin): Pass gcc version to plugin_init.
9748 (plugin_default_version_check): Both gcc and plugin versions are now
9749 arguments.
9750
2a21643e 97512009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
9752
9753 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
9754 problematic last insns. Test for TYPE_CALL rather than CALL_P.
0ec7bfcd 9755 Remove special case testing for last insn of inner loops. Don't fail
9756 if the loop ends with a jump, emit an extra nop instead.
2a21643e 9757
101deac5 9758 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
9759 DREGS rather than comparing directly. Remove code that tries to
9760 account for latencies.
9761
86cf57b9 97622009-04-29 Richard Guenther <rguenther@suse.de>
9763
9764 PR tree-optimization/39941
9765 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
9766 eliminating an indirect call.
9767
b898ce29 97682009-04-29 Richard Guenther <rguenther@suse.de>
9769
9770 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
9771 parameter. Allow invariants as base if !require_lvalue.
9772 (verify_gimple_assign_single): Adjust.
9773
901bfd0a 97742009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
9775
9776 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
9777 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
0ec7bfcd 9778 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
9779 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
901bfd0a 9780 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
9781 a VEC_SELECT.
0ec7bfcd 9782 * config/bfin/bfin.c (bfin_expand_builtin,
9783 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
901bfd0a 9784
f1a47479 97852009-04-28 Richard Guenther <rguenther@suse.de>
9786
9787 * tree-vect-loop.c (get_initial_def_for_induction): Use
9788 correct types for pointer increment.
9789
660b6c15 97902009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9791
9792 * toplev.c (print_version): Update GMP version string calculation.
9793
79f40f20 97942009-04-28 Eric Botcazou <ebotcazou@adacore.com>
9795
9796 PR rtl-optimization/39938
9797 * resource.c (init_resource_info): Add call to df_analyze.
9798
afba4ec8 97992009-04-28 Uros Bizjak <ubizjak@gmail.com>
9800
9801 * config/alpha/alpha.md (usegp): Cast the result of
9802 alpha_find_lo_sum_using_gp to enum attr_usegp.
9803 * config/alpha/alpha.c (override_options): Remove end-of-structure
9804 marker element from cpu_table. Use array size of cpu_table to handle
9805 -mcpu and -mtune options.
9806 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
9807
cf61fe8d 98082009-04-28 Joseph Myers <joseph@codesourcery.com>
9809
9810 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
9811 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
9812 tune_32 and tune_64.
9813 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
9814 support on PowerPC.
9815 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
9816 * config/rs6000/option-defaults.h: ... here. New file.
9817 (OPT_64, OPT_32): Define.
9818 (MASK_64BIT): Define to 0 if not already defined.
9819 (OPT_ARCH64, OPT_ARCH32): Define.
9820 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
9821 and tune_64.
9822
a73d7011 98232009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9824
9825 * config/arm/arm.c (arm_override_options): Emit error on using
9826 fpa with AAPCS.
9827
13506fb4 98282009-04-28 Uros Bizjak <ubizjak@gmail.com>
9829
9830 PR rtl-optimization/39914
9831 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9832 registers for allocnos created from user-defined variables only
9833 when not optimizing.
9834
1e5de3bd 98352009-04-28 Richard Guenther <rguenther@suse.de>
9836
9837 PR middle-end/39937
9838 * fold-const.c (fold_binary): Use distribute_real_division only
9839 on float types.
9840
43cb9222 98412009-04-28 Steve Ellcey <sje@cup.hp.com>
9842
9843 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
9844 add hpux-stdint.h to tm_file.
9845 (hppa[12]*-*-hpux11*): Ditto.
9846 (ia64*-*-hpux*): Ditto.
9847 * config/hpux-stdint.h: New.
943327c1 9848 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
43cb9222 9849 __STDC_EXT__ for all compiles.
943327c1 9850 * config/pa/pa-hpux.h: Ditto.
9851 * config/pa/pa-hpux10.h: Ditto.
9852 * config/pa/pa-hpux11.h: Ditto.
43cb9222 9853
029529e6 98542009-04-28 Catherine Moore <clm@codesourcery.com>
9855
9856 * debug.h (set_name): Add comment.
9857
e5d1687d 98582009-04-28 Andrew Pinski <pinskia@gmail.com>
9859
9860 PR target/39929
9861 * config/darwin.c (machopic_gen_offset): Check
9862 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
9863 * config/arm/arm.c (require_pic_register): Likewise.
9864
a0388eef 98652009-04-28 Paolo Bonzini <bonzini@gnu.org>
9866
afba4ec8 9867 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
9868 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
9869 m32c_promote_prototypes): Delete.
a0388eef 9870
bffc9f73 98712009-04-28 Michael Matz <matz@suse.de>
9872
9873 PR middle-end/39922
9874 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
9875 constants.
9876
d716274d 98772009-04-28 Richard Guenther <rguenther@suse.de>
9878
13506fb4 9879 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
d716274d 9880
d6539baf 98812009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9882
9883 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
9884 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
9885 * config/arm/arm-tune.md: Regenerate.
9886
df6266b9 98872009-04-28 Alexander Monakov <amonakov@ispras.ru>
943327c1 9888
df6266b9 9889 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
9890 block if there are complex incoming edges.
9891 (sel_merge_blocks): Remove useless assert.
9892 (sel_redirect_edge_and_branch): Check that edge was redirected.
9893 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
9894 (sel_find_rgns): Delete declaration.
9895 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
9896 the region when it is not a preheader.
9897
a0c94741 98982009-04-28 Uros Bizjak <ubizjak@gmail.com>
9899
9900 PR c/39323
9901 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
9902
f003f9fd 99032009-04-28 Richard Guenther <rguenther@suse.de>
9904
9905 * tree.h (SSA_NAME_VALUE): Remove.
9906 (struct tree_ssa_name): Remove value_handle member.
9907 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
9908 array for jump threading.
9909 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
9910 SSA_NAME_VALUEs.
9911 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
9912 * tree-flow.h (threadedge_initialize_values): Declare.
9913 (threadedge_finalize_values): Likewise.
9914 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
9915 (SSA_NAME_VALUE): Define.
9916 (threadedge_initialize_values): New function.
9917 (threadedge_finalize_values): Likewise.
9918 * tree-ssa-dom.c (ssa_name_values): New global variable.
9919 (SSA_NAME_VALUE): Define.
13506fb4 9920 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
f003f9fd 9921
f083cd24 99222009-04-28 Ira Rosen <irar@il.ibm.com>
9923
9924 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9925 Use REPORT_VECTORIZED_LOCATIONS instead
9926 REPORT_VECTORIZED_LOOPS.
9927 * tree-vectorizer.c (vect_verbosity_level): Make static.
9928 (vect_loop_location): Rename to vect_location.
9929 (vect_set_verbosity_level): Update comment.
9930 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
9931 and vect_location.
9932 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
9933 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
9934 instead REPORT_UNVECTORIZED_LOOPS.
6ca2db76 9935 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
9936 and vect_loop_def to vect_external_def and vect_internal_def.
f083cd24 9937 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
a0c94741 9938 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
f083cd24 9939 REPORT_UNVECTORIZED_LOCATIONS.
9940 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
9941 and vect_used_in_loop and to vect_unused_in_scope and
9942 vect_used_in_scope.
9943 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
9944 (vect_verbosity_level): Remove declaration.
9945 (vect_analyze_operations): Likewise.
9946 (vect_analyze_stmt): Declare.
9947 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
9948 REPORT_UNVECTORIZED_LOCATIONS.
9949 (vect_get_loop_niters): Fix indentation.
9950 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
9951 (vect_analyze_loop_operations): New function.
9952 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
9953 vect_analyze_operations.
9954 (vect_is_simple_reduction): Use new names.
9955 (vectorizable_live_operation, vect_transform_loop): Likewise.
6ca2db76 9956 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
9957 to specify whether the data references can be a part of interleaving
9958 chain.
f083cd24 9959 (vect_analyze_data_ref_dependence): Use new names.
9960 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
9961 (vect_create_addr_base_for_vector_ref): Remove redundant code.
9962 * tree-vect-patterns.c (widened_name_p): Use new names.
9963 (vect_recog_dot_prod_pattern): Likewise.
9964 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
9965 (process_use, vect_mark_stmts_to_be_vectorized,
9966 vect_model_simple_cost, vect_model_store_cost,
9967 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
9968 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
9969 vectorizable_operation, vectorizable_type_demotion,
9970 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
9971 vectorizable_condition): Likewise.
9972 (vect_analyze_operations): Split into vect_analyze_loop_operations
9973 and ...
9974 (vect_analyze_stmt): ... new function.
9975 (new_stmt_vec_info): Use new names.
9976 (vect_is_simple_use): Use new names and fix comment.
9977 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
9978 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
9979
f1689c28 99802009-04-28 Uros Bizjak <ubizjak@gmail.com>
9981
9982 PR target/39911
9983 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
9984 and integer modes for x87 operands. Do not ICE for unsupported size,
9985 generate error instead. Generate error for unsupported operand types.
9986 ['z']: Do not handle HImode memory operands specially. Warning
9987 for floating-point operands. Fallthru to 'Z' for unsupported operand
9988 types. Do not ICE for unsupported size, generate error instead.
9989 (output_387_binary_op): Use %Z to output operands.
9990 (output_fp_compare): Ditto.
9991 (output_387_reg_move): Ditto.
9992
1f63a7d6 99932009-04-28 Ben Elliston <bje@au.ibm.com>
9994
9995 PR c++/35652
9996 Revert:
9997
9998 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9999
10000 * builtins.c (c_strlen): Do not warn here.
10001 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
10002 * c-common.c (pointer_int_sum): Take an explicit location.
10003 Warn about offsets out of bounds.
10004 * c-common.h (pointer_int_sum): Adjust declaration.
10005
bc620c5c 100062009-04-27 Ian Lance Taylor <iant@google.com>
10007
10008 * collect2.c (is_ctor_dtor): Change type of ret field in struct
10009 names to symkind.
10010 * dce.c (run_fast_df_dce): Change type of old_flags to int.
10011 * df-core.c (df_set_flags): Change return type to int. Change
10012 type of old_flags to int.
10013 (df_clear_flags): Likewise.
10014 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
10015 (df_get_conditional_uses): Likewise.
10016 * df.h (df_set_flags, df_clear_flags): Update declarations.
10017 * dwarf2out.c (struct indirect_string_node): Change type of form
10018 field to enum dwarf_form.
10019 (AT_string_form): Change return type to enum dwarf_form.
10020 * fixed-value.c (fixed_compare): Add cast to enum type.
10021 * fwprop.c (update_df): Change 0 to VOIDmode.
10022 * gensupport.c: Change 0 to UNKNOWN.
10023 * gimple.h (gimple_cond_code): Add cast to enum type.
10024 * haifa-sched.c (reemit_notes): Add cast to enum type.
10025 * hooks.c (hook_int_void_no_regs): Remove function.
10026 * hooks.h (hook_int_void_no_regs): Remove declaration.
10027 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
a0c94741 10028 * predict.c (combine_predictions_for_insn): Add casts to enum type.
bc620c5c 10029 * real.c (real_arithmetic): Add cast to enum type.
10030 (real_compare): Likewise.
10031 * target.h (struct gcc_target): Change return type of
10032 branch_target_register_class to enum reg_class.
10033 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
10034 default_branch_target_register_class.
a0c94741 10035 * targhooks.c (default_branch_target_register_class): New function.
bc620c5c 10036 * targhooks.h (default_branch_target_register_class): Declare.
a0c94741 10037 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
bc620c5c 10038 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
10039 cast to int.
10040 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
10041 ERROR_MARK.
10042 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
10043 vect_uninitialized_def. Change 0 to ERROR_MARK.
10044 * tree-vect-stmts.c (supportable_widening_operation): Don't
10045 initialize icode1 and icode2.
a0c94741 10046 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
bc620c5c 10047 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
10048 and to STD_C89.
10049 (cmn_err_flag_specs): Change 0 to STD_C89.
10050 (cmn_err_char_table): Likewise.
10051 * config/arm/arm.c (get_arm_condition_code): Change type of code
10052 to enum arm_cond_code.
10053 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
10054 (IWMMXT_BUILTIN2): Likewise.
10055 (neon_builtin_type_bits): Don't define typedef.
10056 (neon_builtin_datum): Change type of bits field to int.
10057 (arm_expand_neon_args): Add cast to enum type.
10058 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
10059 TLS_MODEL_NONE.
10060 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
10061 casts to enum type.
10062 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
10063 MIPS_FP_COND_f.
10064 * config/mips/mips.md (jal_macro): Return enum constant.
10065 (single_insn): Likewise.
10066 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
10067 CODE_FOR_nothing.
10068 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10069 casts to enum type.
10070 * config/s390/s390.c (s390_tune_flags): Change type to int.
10071 (s390_arch_flags): Likewise.
a0c94741 10072 (s390_handle_arch_option): Change flags field of struct pta to int.
bc620c5c 10073 * config/s390/s390.h (s390_tune_flags): Update declaration.
10074 (s390_arch_flags): Likewise.
10075 * config/sh/sh.c (prepare_move_operands): Compare
10076 tls_symbolic_operand result with enum constant.
10077 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
10078 (sh_expand_prologue): Add cast to enum type.
10079 (sh_expand_epilogue): Likewise.
10080 (tls_symbolic_operand): Change return type to enum tls_model.
10081 (fpscr_set_from_mem): Add cast to enum type.
10082 (legitimize_pic_address): Compare tls_symbolic_operand result with
10083 enum constant.
10084 (sh_target_reg_class): Change return type to enum reg_class.
10085 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
10086 PROCESSOR_xxx.
a0c94741 10087 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
10088 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
bc620c5c 10089 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
10090 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
10091 (delayed_branch, tls_call_delay): Likewise.
10092 (eligible_for_sibcall_delay): Likewise.
10093 (eligible_for_return_delay): Likewise.
10094 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
10095 (spu_expand_builtin_1): Likewise.
10096
10097 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
10098 for all types of conversions.
10099 (output_init_element): Issue -Wc++-compat warning if needed when
10100 initializing a bitfield with enum type.
10101 * c-parser.c (c_parser_expression): Set original_type to
10102 original_type of right hand operand of comman operator.
10103
68576faf 101042009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10105
10106 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
10107 grammar nits.
a0c94741 10108 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
68576faf 10109 * doc/cpp.texi (Standard Predefined Macros)
10110 (Implementation-defined behavior): Likewise.
a0c94741 10111 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
68576faf 10112 * doc/gimple.texi (GIMPLE Exception Handling)
10113 (@code{GIMPLE_ASSIGN}): Likewise.
a0c94741 10114 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
68576faf 10115 * doc/invoke.texi (Warning Options, Optimize Options)
10116 (AVR Options, Darwin Options): Likewise.
10117 (Optimize Options): Reformulate -fwhole-program description.
10118 * doc/loop.texi (Lambda): Likewise.
10119 * doc/md.texi (Output Template, Define Constraints)
10120 (Standard Names, Insn Splitting): Likewise.
10121 * doc/options.texi (Option properties): Likewise.
10122 * doc/passes.texi (Tree-SSA passes): Likewise.
10123 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
10124 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
10125 (File Names and DBX): Likewise.
10126 * doc/trouble.texi (Incompatibilities): Likewise.
10127
ade56658 101282009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
8f1d58ad 10129
10130 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
10131 instruction is correct.
10132
ade56658 101332009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
56c7bfc2 10134
10135 Allow non-constant arguments to conversion intrinsics.
10136 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
10137 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
10138 * spu.c (print_operand): Handle 'v' and 'w'.
10139 (exp2_immediate_p, spu_gen_exp2): Define.
10140 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
10141 spu_convtf_1): Update parameter descriptions.
a0c94741 10142 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
56c7bfc2 10143 * constraints.md ('v', 'w'): New.
10144 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
10145 Remove.
10146 (i2f, I2F): New define_mode_attr.
10147 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
10148 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
10149 fixuns_truncv4sfv4si2): Update to use mode attribute.
10150 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
10151 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
10152 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
10153 patterns for combine.
10154
d743aba2 101552009-04-27 Steven Bosscher <steven@gcc.gnu.org>
10156
10157 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
10158 (cprop, hoist, pre, store_motion): New debug counters.
10159 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
10160 is not an RTL pass anymore.
10161 (pass_profiling): Remove extern decl for pass removed in 2005.
10162 (pass_gcse, pass_jump_bypass): Remove.
10163 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
10164 to 0 for clean state.
10165 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
10166 * cse.c (gate_handle_cse_after_global_opts,
10167 rest_of_handle_cse_after_global_opts): New functions.
10168 (pass_cse_after_global_opts): New pass, does local CSE.
10169 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
10170 (TV_CPROP): New timevar.
10171 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
10172 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
10173 (gcse_main, recompute_all_luids): Remove.
10174 (compute_hash_table_work): Call max_reg_num instead of reading
10175 max_gcse_regno.
10176 (cprop_jump): Don't set run_jump_opt_after_gcse.
10177 (constprop_register): Always allow to alter jumps.
10178 (cprop_insn): Likewise.
10179 (do_local_cprop): Likewise.
10180 (local_cprop_pass): Likewise. Return non-zero if something changed.
10181 (cprop): Remove function, fold interesting bits into one_cprop_pass.
10182 (find_implicit_sets): Add note about missed optimization opportunity.
10183 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
10184 pass_rtl_cprop execute function.
10185 Don't bother tracking the pass number, each pass gets its own dumpfile
10186 now anyway.
10187 Always allow to alter jumpsand bypass jumps.
10188 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
10189 will just find no suitable set.
10190 (pre_edge_insert): Fix dumping, this function is for PRE only.
10191 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
10192 pass_rtl_pre execute function.
10193 (hoist_code): Return non-zero if something changed. Keep track of
10194 substitutions and insertions for statistics gathering similar to PRE.
10195 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
10196 called from the pass_rtl_hoist execute function. Show pass statistics.
10197 (compute_store_table): Use max_reg_num directly instead of using the
10198 formerly global max_gcse_regno.
10199 (build_store_vectors): Likewise.
10200 (replace_store_insn): Fix dumping.
10201 (store_motion): Rename to ...
10202 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
10203 pass, called from the pass_rtl_store_motion execute function. Keep
10204 track of substitutions and insertions for statistics gathering similar
10205 to PRE.
10206 (bypass_jumps): Remove, fold interesting bits into ...
10207 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
10208 from the pass_rtl_cprop execute function.
10209 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
10210 pass_jump_bypass): Remove.
10211 (gate_handle_gcse, rest_of_handle_gcse): Remove.
10212 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
10213 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
10214 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
10215 (gate_rtl_store_motion, execute_rtl_store_motion,
10216 pass_rtl_store_motion): New.
10217 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
10218 make it clear that -fcse-skip-blocks is a no-op for backward compat.
10219 * passes.c (init_optimization_passes): Remove pass_gcse and
10220 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
10221 and cse_after_global_opts in place of pass_gcse. Schedule cprop
10222 instead of pass_jump_bypass.
10223
fd3f8d70 102242009-04-27 Richard Guenther <rguenther@suse.de>
10225
10226 PR middle-end/39928
10227 * gimplify.c (gimplify_expr): If we are required to create
10228 a temporary make sure it ends up as register.
10229
dd430c78 102302009-04-27 H.J. Lu <hongjiu.lu@intel.com>
10231
10232 PR target/39903
10233 * config/i386/i386.c (construct_container): Don't call
10234 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
10235 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
10236
dfdbf3fd 102372009-04-27 Michael Matz <matz@suse.de>
10238
10239 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
10240 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
10241 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
10242 (dump_replaceable_exprs): Take a bitmap.
10243 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
10244 array.
10245 (expand_gimple_basic_block): Likewise.
10246 * tree-ssa-ter.c (struct temp_expr_table_d): Make
10247 replaceable_expressions member a bitmap.
10248 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
10249 (mark_replaceable): Likewise.
10250 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
10251 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
10252
ae2a9b00 102532009-04-27 Richard Guenther <rguenther@suse.de>
10254
10255 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
10256 (verify_stmts): Dispatch to gimple/type verification code.
10257 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
10258 issue with call argument types.
10259
3cac7f65 102602009-04-27 Michael Matz <matz@suse.de>
10261
10262 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
10263 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
10264 to above.
10265
075f6052 102662009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
afba4ec8 10267 Eric Botcazou <ebotcazou@adacore.com>
075f6052 10268
10269 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
10270 a label's basic block.
10271 (mark_target_live_regs): Tidy and rework obsolete comments.
10272 Change back DF problem to LIVE. If a label starts a basic block,
10273 assume that all registers that used to be live then still are.
10274 (init_resource_info): If a label starts a basic block, set its
10275 BLOCK_FOR_INSN accordingly.
10276 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
10277
ca80ffc8 102782009-04-27 Richard Guenther <rguenther@suse.de>
10279
10280 * tree-flow-inline.h (function_ann): Remove.
10281 (get_function_ann): Likewise.
10282 * tree-dfa.c (create_function_ann): Remove.
10283 * tree-flow.h (struct static_var_ann_d): Remove.
10284 (struct function_ann_d): Likewise.
10285 (union tree_ann_d): Remove fdecl member.
10286 (function_ann_t): Remove.
10287 (function_ann, get_function_ann, create_function_ann): Remove
10288 declarations.
10289
ff8e23a2 102902009-04-27 Uros Bizjak <ubizjak@gmail.com>
10291
10292 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
10293
df9b545b 102942009-04-27 Jan Hubicka <jh@suse.cz>
10295
10296 * ipa-pure-const.c (struct funct_state_d): New fields
10297 state_previously_known, looping_previously_known; remove
10298 state_set_in_source.
10299 (analyze_function): Use new fields.
10300 (propagate): Avoid assumption that state_set_in_source imply
10301 nonlooping.
10302
10303 * tree-ssa-loop-niter.c (finite_loop_p): New function.
10304 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
10305 * cfgloop.h (finite_loop_p): Declare.
10306
5cc6fc7d 103072009-04-26 Michael Matz <matz@suse.de>
10308
ff8e23a2 10309 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
5cc6fc7d 10310
96c15164 103112009-04-26 Michael Matz <matz@suse.de>
10312
10313 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
10314 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
10315 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
10316 pass_mark_used_blocks): Remove.
10317 * tree-optimize.c (pass_free_datastructures,
10318 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
10319 * passes.c (init_optimization_passes): Don't call
10320 pass_mark_used_blocks, remove dead code.
10321
4bbd1d82 103222009-04-26 H.J. Lu <hongjiu.lu@intel.com>
10323
10324 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
10325 * tree-ssa-live.h (register_ssa_partition): Likewise.
10326
a8dd994c 103272009-04-26 Michael Matz <matz@suse.de>
10328
10329 Expand from SSA.
10330 * builtins.c (fold_builtin_next_arg): Handle SSA names.
10331 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
10332 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
10333 SSA names.
10334 (compare_pairs): Swap cost comparison.
10335 (coalesce_ssa_name): Don't use change_partition_var.
10336 * tree-nrv.c (struct nrv_data): Add modified member.
10337 (finalize_nrv_r): Set it.
10338 (tree_nrv): Use it to update statements.
10339 (pass_nrv): Require PROP_ssa.
10340 * tree-mudflap.c (mf_decl_cache_locals,
10341 mf_build_check_statement_for): Use make_rename_temp.
10342 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
10343 * alias.c (find_base_decl): Handle SSA names.
10344 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
10345 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
10346 * rtl.h (set_reg_attrs_for_parm): Declare.
10347 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
10348 to "optimized", remove unused locals at finish.
10349 (execute_free_datastructures): Make global, call
10350 delete_tree_cfg_annotations.
10351 (execute_free_cfg_annotations): Don't call
10352 delete_tree_cfg_annotations.
10353
10354 * ssaexpand.h: New file.
10355 * expr.c (toplevel): Include ssaexpand.h.
ff8e23a2 10356 (expand_assignment): Handle SSA names the same as register variables.
a8dd994c 10357 (expand_expr_real_1): Expand SSA names.
10358 * cfgexpand.c (toplevel): Include ssaexpand.h.
10359 (SA): New global variable.
10360 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
10361 (SSAVAR): New macro.
10362 (set_rtl): New helper function.
10363 (add_stack_var): Deal with SSA names, use set_rtl.
10364 (expand_one_stack_var_at): Likewise.
10365 (expand_one_stack_var): Deal with SSA names.
10366 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
10367 before unique numbers.
10368 (expand_stack_vars): Use set_rtl.
10369 (expand_one_var): Accept SSA names, add asserts for them, feed them
10370 to above subroutines.
10371 (expand_used_vars): Expand all partitions (without default defs),
10372 then only the local decls (ignoring those expanded already).
10373 (expand_gimple_cond): Remove edges when jumpif() expands an
10374 unconditional jump.
10375 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
10376 or remove abnormal edges. Ignore insns setting the LHS of a TERed
10377 SSA name.
10378 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
10379 members of SA; deal with PARM_DECL partitions here; expand
10380 all PHI nodes, free tree datastructures and SA. Commit instructions
10381 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
10382 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
10383 info and statements at start, collect garbage at finish.
10384 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
10385 (VAR_ANN_PARTITION) Remove.
10386 (change_partition_var): Don't declare.
10387 (partition_to_var): Always return SSA names.
10388 (var_to_partition): Only accept SSA names.
10389 (register_ssa_partition): Only check argument.
10390 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
10391 member.
10392 (delete_var_map): Don't free it.
10393 (var_union): Only accept SSA names, simplify.
10394 (partition_view_init): Mark only useful SSA names as used.
10395 (partition_view_fini): Only deal with SSA names.
10396 (change_partition_var): Remove.
10397 (dump_var_map): Use ssa_name instead of partition_to_var member.
10398 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
10399 basic blocks.
10400 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
10401 (struct _elim_graph): New member const_dests; nodes member vector of
10402 ints.
10403 (set_location_for_edge): New static helper.
10404 (create_temp): Remove.
10405 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
ff8e23a2 10406 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
a8dd994c 10407 (new_elim_graph): Allocate const_dests member.
10408 (clean_elim_graph): Truncate const_dests member.
10409 (delete_elim_graph): Free const_dests member.
10410 (elim_graph_size): Adapt to new type of nodes member.
10411 (elim_graph_add_node): Likewise.
10412 (eliminate_name): Likewise.
10413 (eliminate_build): Don't take basic block argument, deal only with
10414 partition numbers, not variables.
10415 (get_temp_reg): New static helper.
10416 (elim_create): Use it, deal with RTL temporaries instead of trees.
10417 (eliminate_phi): Adjust all calls to new signature.
10418 (assign_vars, replace_use_variable, replace_def_variable): Remove.
10419 (rewrite_trees): Only do checking.
10420 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
10421 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
10422 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
10423 contains_tree_r, MAX_STMTS_IN_LATCH,
10424 process_single_block_loop_latch, analyze_edges_for_bb,
10425 perform_edge_inserts): Remove.
10426 (expand_phi_nodes): New global function.
10427 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
10428 functions, initialize new parameter, remember partitions having a
10429 default def.
10430 (finish_out_of_ssa): New global function.
10431 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
10432 don't reset in_ssa_p here, don't disable TER when mudflap.
10433 (pass_del_ssa): Remove.
10434 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
10435 partition members.
10436 (execute_free_datastructures): Declare.
10437 * Makefile.in (SSAEXPAND_H): New variable.
10438 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
10439 * basic-block.h (commit_one_edge_insertion): Declare.
10440 * passes.c (init_optimization_passes): Move pass_nrv and
10441 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
10442 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
10443 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
10444 (redirect_branch_edge): Deal with super block when expanding, split
10445 out jump patching itself into ...
10446 (patch_jump_insn): ... here, new static helper.
10447
0d3f8fd5 104482009-04-26 Michael Matz <matz@suse.de>
10449
10450 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
10451 beyond num_ssa_names.
10452 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
10453 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
10454
a1d07e97 104552009-04-26 Jakub Jelinek <jakub@redhat.com>
10456
abe2d6dd 10457 PR inline-asm/39543
10458 * fwprop.c (forward_propagate_asm): New function.
10459 (forward_propagate_and_simplify): Propagate also into __asm, if it
10460 doesn't increase the number of referenced registers.
10461
a1d07e97 10462 PR c/39889
10463 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
10464
104652009-04-26 Jakub Jelinek <jakub@redhat.com>
9579733e 10466
10467 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
10468 note_nonlocal_vla_type for nonlocal VLAs.
10469 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
10470 contains_remapped_vars, remap_vla_decls): New functions.
10471 (convert_nonlocal_reference_stmt): If not optimizing, call
10472 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
10473 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
10474 if it wasn't found in var_map.
10475 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
10476 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
10477 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
10478 declare_vars.
10479 * gimplify.c (nonlocal_vlas): New variable.
10480 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
10481 referenced VLAs.
10482 (gimplify_body): Create and destroy nonlocal_vlas.
1095d222 10483
1938132c 10484 * dwarf2out.c (loc_descr_plus_const): New function.
10485 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
10486 mem_loc_descriptor, loc_descriptor_from_tree_1,
10487 descr_info_loc, gen_variable_die): Use it.
10488
1095d222 10489 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
10490 !TREE_STATIC VAR_DECLs.
10491 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
10492 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
10493 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
10494 DECL_BY_REFERENCE is valid.
10495 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
10496 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
10497 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
10498 Copy DECL_BY_REFERENCE.
10499 (struct nesting_copy_body_data): New type.
10500 (nesting_copy_decl): New function.
10501 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
10502 if they have variable length.
10503
62bd61dd 105042009-04-26 Michael Matz <matz@suse.de>
10505
10506 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
10507 mark new temporaries for renaming.
10508
7fc1e5fb 105092009-04-26 Joseph Myers <joseph@codesourcery.com>
10510
10511 PR c/39581
10512 * c-decl.c (global_bindings_p): Return negative value.
10513 (c_variable_size): New. Based on variable_size from
10514 stor-layout.c.
10515 (grokdeclarator): Call c_variable_size not variable_size.
10516
cfc43899 105172009-04-26 Uros Bizjak <ubizjak@gmail.com>
10518
10519 * config/i386/i386.c (print_operand) ['z']: Fix typo.
10520
4d63ce54 105212009-04-26 Kai Tietz <kai.tietz@onevision.com>
10522
10523 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
10524 Redefine it to just use mingw/include.
10525 (ASM_SPEC): Rules for -m32 and -m64.
10526 (LINK_SPEC): Use Likewise.
10527 (SPEC_32): New define.
10528 (SPEC_64): Likewise.
10529 (SUB_LINK_SPEC): Likewise.
10530 (MULTILIB_DEFAULTS): New define.
10531 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
10532 Add multilib options.
10533 (MULTILIB_DIRNAMES): Likewise.
10534 (MULTILIB_OSDIRNAMES): Likewise.
10535 (LIBGCC): Likewise.
10536 (INSTALL_LIBGCC): Likewise.
10537
551ed71a 105382009-04-26 Joseph Myers <joseph@codesourcery.com>
10539
10540 PR c/39556
10541 * c-tree.h (enum c_inline_static_type): New.
10542 (record_inline_static): Declare.
10543 * c-decl.c (struct c_inline_static, c_inline_statics,
10544 record_inline_static, check_inline_statics): New.
10545 (pop_file_scope): Call check_inline_statics.
10546 (start_decl): Call record_inline_static instead of pedwarning
10547 directly for static in inline function.
10548 * c-typeck.c (build_external_ref): Call record_inline_static
10549 instead of pedwarning directly for static referenced in inline
10550 function.
10551
2e81afe5 105522009-04-26 Steven Bosscher <steven@gcc.gnu.org>
10553
10554 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
10555 not new but only being rescanned.
10556 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
10557 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
10558 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
10559 record_set_info, compute_set, grealloc): Remove.
10560 (recompute_all_luids): New function.
10561 (gcse_main): Don't compute sets, and don't do related memory
10562 allocations/free-ing. If something changed before the end of the
10563 pass, update LUIDs using recompute_all_luids.
10564 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
10565 (free_gcse_mem): Don't free it either.
10566 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
10567 Use the df insn LUIDs.
10568 (load_killed_in_block): Likewise.
10569 (compute_hash_table_work): Don't compute reg_set_in_block.
10570 (compute_transp): Use DF_REG_DEF_CHAINs.
10571 (local_cprop_pass): Don't use compute_sets and related functions.
10572 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
10573 Use get_max_uid() instead of max_cuid.
10574 (insert_insn_end_basic_block, pre_insert_copy_insn,
10575 update_ld_motion_stores): Don't try to
10576 keep reg_set tables up to date.
10577 (pre_insert_copies): Use df insn LUIDs.
10578 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
10579 (reg_set_info): Don't use extra bitmap argument.
10580 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
10581 information to compute regs_set_in_block.
10582 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
10583 (bypass_jumps): Don't use compute_sets and friends.
10584
b099e703 105852009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10586
10587 PR testsuite/39710
10588 * opts.c (undocumented_msg): Do not leave blank even with
10589 ENABLE_CHECKING.
10590
bcb531e5 105912009-04-25 Joseph Myers <joseph@codesourcery.com>
10592
10593 * c-decl.c (build_enumerator): Allow values folding to integer
10594 constants but not integer constant expressions with a pedwarn if
10595 pedantic.
10596
e8074982 105972009-04-25 Joseph Myers <joseph@codesourcery.com>
10598
10599 PR c/39582
10600 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
10601 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
10602 type is an integer constant.
10603
f047dd27 106042009-04-25 Uros Bizjak <ubizjak@gmail.com>
10605
10606 PR target/39897
10607 * config/i386/i386.c (print_operand) ['z']: Revert handling of
10608 HImode operands.
10609
1d9b9611 106102009-04-25 Joseph Myers <joseph@codesourcery.com>
10611
10612 PR c/39564
10613 * c-decl.c (grokdeclarator): Diagnose declarations of functions
10614 with variably modified return type and no storage class
10615 specifiers, except for the case of nested functions. Distinguish
10616 extern declarations of functions with variably modified return
10617 types from those of objects with variably modified types.
10618
927a6b6b 106192009-04-25 Jan Hubicka <jh@suse.cz>
10620
10621 * tree.c (list_equal_p): New function.
10622 * tree.h (list_equal_p): Declare.
10623 * coretypes.h (edge_def, edge, const_edge, basic_block_def
10624 basic_block_def, basic_block, const_basic_block): New.
10625 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
10626 (redirect_eh_edge): New function.
10627 (make_eh_edge_update_phi): EH edges are not abnormal.
10628 * except.c: Include tree-flow.h.
10629 (list_match): New function.
10630 (eh_region_replaceable_by_p): New function.
10631 (replace_region): New function.
10632 (hash_type_list): New function.
10633 (hash_eh_region): New function.
10634 (eh_regions_equal_p): New function.
10635 (merge_peers): New function.
10636 (remove_unreachable_regions): Verify EH tree when checking;
10637 merge peers.
10638 (copy_eh_region_1): New function.
10639 (copy_eh_region): New function.
10640 (push_reachable_handler): New function.
10641 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
10642 regions without label but with live RESX.
10643 * except.h (redirect_eh_edge_to_label): New.
10644 * tree-flow.h (redirect_eh_edge): New.
10645 * coretypes.h (edge_def, edge, const_edge, basic_block_def
10646 basic_block_def, basic_block, const_basic_block): Remove.
10647 * Makefile.in (except.o): Add dependency on tree-flow.h
10648 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
10649 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
10650 Remove.
10651
6a4da2cd 106522009-04-25 Eric Botcazou <ebotcazou@adacore.com>
10653
10654 PR bootstrap/39645
10655 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
10656 on the destination of memcpy.
10657
d5bfc154 106582009-04-25 Paolo Bonzini <bonzini@gnu.org>
10659
10660 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
10661 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
10662 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
10663
3d1eacdb 106642009-04-25 Jan Hubicka <jh@suse.cz>
10665
10666 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
10667 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
10668 to be reached by different label than left.
10669 (update_eh_edges): Update comment; remove edge_to_remove if possible
10670 and return true if suceeded.
10671 (cleanup_empty_eh): Accept sharing map; handle shared regions.
10672 (cleanup_eh): Compute sharing map.
10673 * except.c (remove_eh_handler_and_replace): Add argument if we should
10674 update regions.
10675 (remove_unreachable_regions): Update for label sharing.
10676 (label_to_region_map): Likewise.
10677 (get_next_region_sharing_label): New function.
10678 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
10679 prev_try pointers.
10680 (remove_eh_handler): Update.
10681 (remove_eh_region_and_replace_by_outer_of): New function.
10682 * except.h (struct eh_region): Add next_region_sharing_label.
10683 (remove_eh_region_and_replace_by_outer_of,
10684 get_next_region_sharing_label): Declare.
10685 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
10686
106872009-04-25 Jan Hubicka <jh@suse.cz>
10688
10689 * tree-cfg.c (split_critical_edges): Split also edges where we can't
10690 insert code even if they are not critical.
10691
106922009-04-25 Jan Hubicka <jh@suse.cz>
10693
10694 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
10695 (gimple_can_remove_branch_p): EH edges won't remove branch by
10696 redirection.
10697 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
10698 updating of non-abnormal EH edges.
10699 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
10700 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
10701 (split_critical_edges): Split also edges where emitting code on them
10702 will lead to splitting later.
10703
6cc62ffa 107042009-04-25 Uros Bizjak <ubizjak@gmail.com>
10705 H.J. Lu <hongjiu.lu@intel.com>
10706
10707 PR target/39590
10708 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
10709 the configured assembler supports fildq and fistpq mnemonics.
10710 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
10711 * configure: Regenerated.
10712 * config.in: Ditto.
10713
10714 * config/i386/i386.c (print_operand): Handle 'Z'.
10715 ['z']: Remove handling of special fild/fist suffixes.
10716 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
10717 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
10718 suffix of fild insn.
10719 (*floatsi<mode>2_vector_mixed): Ditto.
10720 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
10721 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
10722 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
10723 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
10724 * config/i386/gas.h (GAS_MNEMONICS): Remove.
10725
84e907aa 107262009-04-25 Ben Elliston <bje@au.ibm.com>
10727
10728 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
10729 the source of a set operation.
10730
906bb5c3 107312009-04-25 Anatoly Sokolov <aesok@post.ru>
10732
10733 * target.h (struct gcc_target): Add case_values_threshold field.
10734 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
10735 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
10736 * targhooks.c (default_case_values_threshold): New function.
10737 * targhooks.h (default_case_values_threshold): Declare function.
10738 * stmt.c (expand_case): Use case_values_threshold target hook.
10739 * expr.h (case_values_threshold): Remove declartation.
10740 * expr.c (case_values_threshold): Remove function.
10741 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
10742
10743 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
10744 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
10745 (avr_case_values_threshold): Declare as static.
10746 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
10747
10748 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
10749 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
10750 (mn10300_case_values_threshold): New function.
10751
65123d77 107522009-04-24 H.J. Lu <hongjiu.lu@intel.com>
10753
10754 * ira.c (setup_cover_and_important_classes): Add enum cast.
10755
abcb15b5 107562009-04-24 Vladimir Makarov <vmakarov@redhat.com>
10757
10758 * genpreds.c (write_enum_constraint_num): Output definition of
10759 CONSTRAINT_NUM_DEFINED_P macro.
10760 * ira.c (setup_cover_and_important_classes): Use
10761 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
10762
d14bd725 107632009-04-24 DJ Delorie <dj@redhat.com>
10764
10765 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
10766 __SH2A_SINGLE_ONLY__ also.
10767
e41d35a8 107682009-04-24 Steve Ellcey <sje@cup.hp.com>
10769
10770 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
10771 (movdf_internal): Ditto.
10772 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
10773 SFmode and DFmode constants.
10774 (ia64_print_operand): Add 'G' format for printing
10775 floating point constants.
10776
458e27ec 107772009-04-24 Richard Guenther <rguenther@suse.de>
10778
10779 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
10780 from unsigned additions.
10781
88c32270 107822009-04-24 Joseph Myers <joseph@codesourcery.com>
10783
10784 * c-typeck.c (set_init_index): Allow array designators that are
10785 not integer constant expressions with a pedwarn if pedantic.
10786
c79d4a4d 107872009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
10788
10789 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
10790 zero if no overlap in nonzero bits between the operands.
10791
8458f4ca 107922009-04-24 Ian Lance Taylor <iant@google.com>
10793
10794 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
10795 (record_dead_and_set_regs): Likewise.
10796 * df.h (struct df_mw_hardreg): Change flags field to int.
10797 (struct df_base_ref): Likewise.
10798 (struct df): Change changeable_flags field to int.
10799 * df-scan.c (df_defs_record): Change clobber_flags to int.
10800 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
10801 constants rather than #define macros.
10802 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
10803 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
10804 (enum dwarf_calling_convention): Likewise.
10805 (enum dwarf_line_number_x_ops): Likewise.
10806 (enum dwarf_call_frame_info): Likewise.
10807 (enum dwarf_source_language): Likewise.
10808 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
10809 (add_calling_convention_attribute): Likewise.
6cc62ffa 10810 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
10811 (combine_comparisons): Change compcode to int. Add cast to enum type.
8458f4ca 10812 * genrecog.c (maybe_both_true_2): Change c to int.
10813 (write_switch): Likewise. Add cast to enum type.
10814 * gimplify.c (gimplify_omp_for): Handle return values from
10815 gimplify_expr using MIN rather than bitwise or.
10816 (gimplify_expr): Add cast to enum type.
10817 * ipa-prop.c (update_jump_functions_after_inlining): Change
10818 IPA_BOTTOM to IPA_JF_UNKNOWN.
6cc62ffa 10819 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
10820 Add casts to enum type.
8458f4ca 10821 (setup_cover_and_important_classes): Change cl to int. Add casts
10822 to enum type.
10823 (setup_class_translate): Change cl and mode to int.
10824 (ira_init_once): Change mode to int.
10825 (free_register_move_costs): Likewise.
10826 (setup_prohibited_mode_move_regs): Add casts to enum type.
10827 * langhooks.c (add_builtin_function_common): Rework assertion that
10828 value fits bitfield.
10829 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
10830 * omega.c (omega_do_elimination): Avoid math on enum types.
10831 * optabs.c (expand_vec_shift_expr): Remove casts to int.
10832 * opts.c (set_debug_level): Change 2 to enum constant. Use new
10833 int local to handle integral_argment value.
10834 * regmove.c (try_auto_increment): Change PUT_MODE to
10835 PUT_REG_NOTE_KIND.
10836 * reload.c (push_secondary_reload): Add casts to enum type.
10837 (secondary_reload_class, find_valid_class): Likewise.
10838 * reload1.c (emit_input_reload_insns): Likewise.
10839 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
10840 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
10841 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
10842 constant.
10843 * tree.c (build_common_builtin_nodes): Add casts to enum type.
10844 * tree-complex.c (complex_lattice_t): Typedef to int rather than
10845 enum type.
10846 (expand_complex_libcall): Add casts to enum type.
10847 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
10848 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
10849 with ERROR_MARK, not NUM_TREE_CODES.
10850 (vect_create_epilog_for_reduction): Likewise.
10851 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
6cc62ffa 10852 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
8458f4ca 10853 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
10854 enum machine_mode.
10855 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
10856 vect_unused_in_loop. Change 0 to loop_vect.
6cc62ffa 10857 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
8458f4ca 10858 * var-tracking.c (get_init_value): Change return type to enum
10859 var_init_status.
10860 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
10861 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
10862 arm_fp_model.
10863 (arm_override_options): Add casts to enum type.
10864 (arm_emit_tls_decoration): Likewise.
10865 * config/i386/i386.c (ix86_function_specific_restore): Add casts
10866 to enum type.
10867 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
10868 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
10869 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
10870 enum type.
10871 * config/s390/s390.c (code_for_builtin_64): Change to array of
10872 enum insn_code.
10873 (code_for_builtin_31): Likewise.
10874 (s390_expand_builtin): Change code_for_builtin to enum insn_code
10875 const *.
10876 * config/sparc/sparc.c (sparc_override_options): Change value
10877 field in struct code_model to enum cmodel. In initializer change
10878 0 to NULL and add cast to enum type.
10879
10880 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
10881 Change all callers. Issue a -Wc++-compat warning using
10882 lhs_origtype if necessary.
10883 (convert_for_assignment): Issue -Wc++-compat warnings about
10884 invalid conversions to enum type on assignment.
10885 * c-common.h (build_modify_expr): Update declaration.
10886
32e5e2b7 108872009-04-24 Nick Clifton <nickc@redhat.com>
10888
10889 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
10890 (function_arg_advance): Likewise.
10891 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
10892 5th alternative.
10893
99908681 108942009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
10895
10896 * config/s390/constraints.md ('I', 'J'): Fix condition.
10897
2cf7126c 108982009-04-24 Diego Novillo <dnovillo@google.com>
10899
10900 * gengtype-parse.c (parse_error): Add newline after message.
10901
e69a64d3 109022009-04-24 H.J. Lu <hongjiu.lu@intel.com>
10903
10904 * config/i386/sse.md (avxmodesuffixs): Removed.
10905 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
10906 (*avx_pinsr<ssevecsize>): This.
10907
3a40262c 109082009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
10909
10910 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
10911 follow chains of regs with a single definition, and allow expressions
10912 that are function_invariant_p.
cf36214f 10913 (simple_rhs_p): Allow expressions that are function_invariant_p.
3a40262c 10914
00211027 109152009-04-24 Paolo Bonzini <bonzini@gnu.org>
10916
10917 PR middle-end/39867
10918 * fold-const.c (fold_cond_expr_with_comparison): When folding
10919 > and >= to MAX, make sure the MAX uses the same type as the
10920 comparison's operands.
10921
8a88222e 109222009-04-24 Nick Clifton <nickc@redhat.com>
10923
10924 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
10925 addressing for DImode accesses.
10926 (frv_print_operand_address): Handle PLUS case.
6cc62ffa 10927 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8a88222e 10928
82d2c88b 109292009-04-24 Jakub Jelinek <jakub@redhat.com>
10930
10931 PR rtl-optimization/39794
10932 * alias.c (canon_true_dependence): Add x_addr argument.
10933 * rtl.h (canon_true_dependence): Adjust prototype.
10934 * cse.c (check_dependence): Adjust canon_true_dependence callers.
10935 * cselib.c (cselib_invalidate_mem): Likewise.
10936 * gcse.c (compute_transp): Likewise.
10937 * dse.c (scan_reads_nospill): Likewise.
10938 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
10939 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
10940 canon_base_addr of the group, plus optional offset.
10941 (struct group_info): Rename canon_base_mem to
10942 canon_base_addr.
10943 (get_group_info): Set canon_base_addr to canon_rtx of base, not
10944 canon_rtx of base_mem.
10945
670db79f 109462009-04-23 Paolo Bonzini <bonzini@gnu.org>
10947
10948 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
10949 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
10950
c2233b46 109512009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10952
10953 * config/spu/spu-builtins.h: Delete file.
10954
10955 * config/spu/spu.h (enum spu_builtin_type): Move here from
10956 spu-builtins.h.
10957 (struct spu_builtin_description): Likewise. Add GTY marker.
10958 Do not use enum spu_function_code or enum insn_code.
10959 (spu_builtins): Add extern declaration.
10960
10961 * config/spu/spu.c: Do not include "spu-builtins.h".
10962 (enum spu_function_code, enum spu_builtin_type_index,
10963 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
10964 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
10965 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
10966 unsigned_V2DI_type_node): Move here from spu-builtins.h.
10967 (spu_builtin_types): Make static. Add GTY marker.
10968 (spu_builtins): Add extern declaration with GTY marker.
10969 Include "gt-spu.h".
10970
10971 * config/spu/spu-c.c: Do not include "spu-builtins.h".
10972 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
10973 Check programmatically whether all parameters are scalar.
10974
10975 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
10976
7fd3f504 109772009-04-23 Eric Botcazou <ebotcazou@adacore.com>
10978
10979 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
10980 assignment from the constructor either if the target is volatile.
10981
3f8fde42 109822009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
10983
10984 * config/arm/arm.md (insv): Do not share operands[0].
10985
6aa0a859 109862009-04-23 Nathan Sidwell <nathan@codesourcery.com>
10987
10988 * config/vxlib-tls.c (active_tls_threads): Delete.
10989 (delete_hook_installed): New.
10990 (tls_delete_hook): Don't delete the delete hook.
10991 (tls_destructor): Delete it here.
10992 (__gthread_set_specific): Adjust installing the delete hook.
10993 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
10994 __gthread_leave_tsd_dtor_context.
10995
4043967f 109962009-04-23 Rafael Avila de Espindola <espindola@google.com>
10997
10998 * c-format.c (gcc_tdiag_char_table): Add support for %E.
10999
0a48089c 110002009-04-23 Uros Bizjak <ubizjak@gmail.com>
11001
11002 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
11003 enum type.
11004 (alpha_rtx_costs): Ditto.
11005 (emit_unlikely_jump): Use add_reg_note.
11006 (emit_frame_store_1): Ditto.
11007 (alpha_expand_prologue): Ditto.
11008 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
11009 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
11010
5027f179 110112009-04-23 Nick Clifton <nickc@redhat.com>
11012
11013 * config/v850/v850.md (epilogue): Remove suppressed code.
11014 (return): Rename to return_simple and remove test of frame size.
11015 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
11016 to gen_return_simple.
11017
f7eacde3 110182009-04-22 Jing Yu <jingyu@google.com>
11019
11020 PR testsuite/39781
11021 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
11022
415528ef 110232009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
11024
11025 PR C/31499
11026 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
11027 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
11028 value is a VECTOR_CST, the element type is the element type of the
11029 vector.
11030
146d70e9 110312009-04-22 DJ Delorie <dj@redhat.com>
11032
11033 * config/m32c/m32c.h: Update GTY annotations to new syntax.
11034
a7cf5bbf 110352009-04-22 Jakub Jelinek <jakub@redhat.com>
11036
11037 * alias.c (find_base_term): Move around LO_SUM case, so that
11038 CONST falls through into PLUS/MINUS handling.
11039
4377e55f 11040 PR c/39855
11041 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
11042 into 0, use omit_one_operand.
11043
6632aeb5 110442009-04-23 Ben Elliston <bje@au.ibm.com>
11045
11046 * config/rs6000/linux-unwind.h (get_regs): Remove type
11047 puns. Change the type of `pc' to an array of unsigned ints and
11048 update all users. Constify frame24.
11049
6276c4d1 110502009-04-22 DJ Delorie <dj@redhat.com>
11051
11052 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
11053 declarations before code.
11054 (current_function_special_page_vector): Likewise.
11055 (m32c_expand_insv): Silence a warning.
11056
943327c1 110572009-04-21 Taras Glek <tglek@mozilla.com>
fb1e4f4a 11058
11059 * alias.c: Update GTY annotations to new syntax.
11060 * basic-block.h: Likewise.
11061 * bitmap.h: Likewise.
11062 * c-common.h: Likewise.
11063 * c-decl.c: Likewise.
11064 * c-parser.c: Likewise.
11065 * c-pragma.c: Likewise.
11066 * c-tree.h: Likewise.
11067 * cfgloop.h: Likewise.
11068 * cgraph.h: Likewise.
11069 * config/alpha/alpha.c: Likewise.
11070 * config/arm/arm.h: Likewise.
11071 * config/avr/avr.h: Likewise.
11072 * config/bfin/bfin.c: Likewise.
11073 * config/cris/cris.c: Likewise.
11074 * config/darwin.c: Likewise.
11075 * config/frv/frv.c: Likewise.
11076 * config/i386/i386.c: Likewise.
11077 * config/i386/i386.h: Likewise.
11078 * config/i386/winnt.c: Likewise.
11079 * config/ia64/ia64.h: Likewise.
11080 * config/iq2000/iq2000.c: Likewise.
11081 * config/mips/mips.c: Likewise.
11082 * config/mmix/mmix.h: Likewise.
11083 * config/pa/pa.c: Likewise.
11084 * config/pa/pa.h: Likewise.
11085 * config/rs6000/rs6000.c: Likewise.
11086 * config/s390/s390.c: Likewise.
11087 * config/sparc/sparc.c: Likewise.
11088 * config/xtensa/xtensa.c: Likewise.
11089 * cselib.h: Likewise.
11090 * dbxout.c: Likewise.
11091 * dwarf2out.c: Likewise.
11092 * except.c: Likewise.
11093 * except.h: Likewise.
11094 * fixed-value.h: Likewise.
11095 * function.c: Likewise.
11096 * function.h: Likewise.
11097 * gimple.h: Likewise.
11098 * integrate.c: Likewise.
11099 * optabs.c: Likewise.
11100 * output.h: Likewise.
11101 * real.h: Likewise.
11102 * rtl.h: Likewise.
11103 * stringpool.c: Likewise.
11104 * tree-data-ref.c: Likewise.
11105 * tree-flow.h: Likewise.
11106 * tree-scalar-evolution.c: Likewise.
11107 * tree-ssa-address.c: Likewise.
11108 * tree-ssa-alias.h: Likewise.
11109 * tree-ssa-operands.h: Likewise.
11110 * tree.c: Likewise.
11111 * tree.h: Likewise.
11112 * varasm.c: Likewise.
11113 * varray.h: Likewise.
11114 * vec.h: Likewise.
0a48089c 11115 * coretypes.h: Do not define GTY macro if it is already defined.
fb1e4f4a 11116 * doc/gty.texi: Update GTY documentation to new syntax.
11117 * gengtype-lex.l: Enforce attribute-like syntax for GTY
11118 annotations on structs.
11119 * gengtype-parse.c: Likewise.
11120
57187d90 111212009-04-22 Mark Heffernan <meheff@google.com>
11122
0a48089c 11123 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
57187d90 11124
30505192 111252009-04-22 Kazu Hirata <kazu@codesourcery.com>
11126
11127 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
11128 where appropriate.
11129
922878f2 111302009-04-22 Kazu Hirata <kazu@codesourcery.com>
11131
11132 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
11133 the same as a PLUS without a shift. Increase the cost of a
11134 CONST_INT in MULT.
11135
86931af8 111362009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11137
11138 * Makefile.in: Update dependencies.
0a48089c 11139 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
86931af8 11140 * errors.h: Remove bogus comment about compatibility.
11141 (warning): Update declaration.
11142 * genautomata.c: Update all calls to warning.
11143 * gimple.c: Do not include errors.h. Include toplev.h.
11144 * tree-ssa-structalias.c: Do not include errors.h.
11145 * omega.c: Likewise.
11146 * tree-ssa-reassoc.c: Likewise.
11147 * config/spu/spu-c.c: Likewise.
11148 * config/spu/t-spu-elf: Update dependencies.
11149
65c463fd 111502009-04-22 Richard Guenther <rguenther@suse.de>
11151
11152 PR tree-optimization/39824
11153 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
11154 make sure the types are compatible.
11155
ba99525e 111562009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11157
11158 PR c++/14875
11159 * c-common.c (c_parse_error): Take a token_flags parameter.
11160 Use token_type for the token type instead.
11161 Pass token_flags to cpp_type2name.
11162 * c-common.h (c_parse_error): Update declaration.
11163 * c-parser.c (c_parser_error): Pass 0 as token flags.
11164
a7dc303d 111652009-04-22 Andrey Belevantsev <abel@ispras.ru>
11166
11167 PR rtl-optimization/39580
11168 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
11169
b2ee26d5 111702009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11171
11172 * function.c (expand_function_end): Do not emit a jump to the "naked"
11173 return label for fall-through returns.
11174 * except.c (sjlj_emit_function_exit): Always place the call to the
11175 unregister function at the location installed by expand_function_end.
11176
51836a0c 111772009-04-22 Richard Guenther <rguenther@suse.de>
11178
11179 PR tree-optimization/39845
11180 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
11181 (gen_inbound_check): Likewise.
11182
00159b45 111832009-04-22 Nathan Sidwell <nathan@codesourcery.com>
11184
11185 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
11186 padding for PPC.
11187 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
11188 * config/vxlib.c (__gthread_once): Add race guard for PPC.
11189
adb906e2 111902009-04-22 Paolo Bonzini <bonzini@gnu.org>
11191
11192 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
11193 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
11194 shift counts to avoid out-of-bounds array accesses.
11195
57a9e496 111962009-04-22 Paolo Bonzini <bonzini@gnu.org>
11197
11198 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
11199 (Pmode): Move above.
11200
c933fb42 112012009-04-22 Uros Bizjak <ubizjak@gmail.com>
11202
11203 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
11204 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
11205 GET_CODE macro. Use IN_RANGE macro where appropriate.
11206 * config/alpha/alpha.h: Ditto.
11207 * config/alpha/alpha.md: Ditto.
11208 * config/alpha/constraints.md: Ditto.
11209 * config/alpha/predicates.md: Ditto.
11210
91e9f690 112112009-04-22 Paolo Bonzini <bonzini@gnu.org>
11212
11213 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
11214 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11215 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11216 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11217 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11218 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11219 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11220 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11221 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11222 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11223 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11224 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11225 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11226 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11227 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11228 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11229 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11230 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11231 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11232 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11233 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11234 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11235 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11236 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11237 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11238 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11239 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
11240
2ea77971 112412009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
11242
11243 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
11244 references from comments.
11245 * cfgbuild.c: (count_basic_blocks): Delete.
11246 (find_basic_blocks_1): Delete.
11247 (find_basic_blocks): Delete.
11248 * except.c (finish_eh_generation): Make static. Move comment from
c933fb42 11249 except.h here. Remove find_basic_blocks references from comments.
2ea77971 11250 * except.h (finish_eh_generation): Delete.
11251 * basic-block.h (find_basic_blocks): Delete.
11252 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
11253
46b5e7dc 112542009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
11255
11256 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
11257 (sdbout_parms): Likewise.
11258
6f2543f8 112592009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
11260
11261 * config/sh/sh.c (prepare_cbranch_operands): Use
11262 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
11263 (expand_cbranchdi4): Likewise.
11264 (from_compare): Add cast to enum type.
11265 (expand_cbranchsi4): Use add_reg_note.
11266 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
11267 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
11268 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
11269 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
11270 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
11271 instead of CODE_FOR_nothing.
11272 (cbranchdi4): Likewise. Fix the order of arguments for
11273 gen_rtx_fmt_ee.
11274 (push_fpscr): Use add_reg_note.
11275 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
11276 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
11277
7dfbd804 112782009-04-21 Joseph Myers <joseph@codesourcery.com>
11279
11280 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
11281 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
11282 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
11283 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
11284 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
11285 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
11286 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
11287 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
11288 config/alpha/x-vms, config/arc/t-arc,
11289 config/arm/README-interworking, config/arm/arm-c.c,
11290 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
11291 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
11292 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
11293 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
11294 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
11295 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
11296 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
11297 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
11298 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
11299 config/cris/t-elfmulti, config/crx/t-crx,
11300 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
11301 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
11302 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
11303 config/h8300/t-h8300, config/i386/athlon.md,
11304 config/i386/darwin-libgcc.10.4.ver,
11305 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
11306 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
11307 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
11308 config/i386/t-linux64, config/i386/t-nwld,
11309 config/i386/t-rtems-i386, config/i386/t-sol2-10,
11310 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
11311 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
11312 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
11313 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
11314 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
11315 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
11316 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
11317 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
11318 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
11319 config/m68k/t-uclinux, config/mcore/t-mcore,
11320 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
11321 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
11322 config/mips/crtn.asm, config/mips/irix-crti.asm,
11323 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
11324 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
11325 config/mips/mips-fixed.md, config/mips/sb1.md,
11326 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
11327 config/mips/t-iris6, config/mips/t-isa3264,
11328 config/mips/t-libgcc-mips16, config/mips/t-linux64,
11329 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
11330 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
11331 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
11332 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
11333 config/mn10300/t-linux, config/mn10300/t-mn10300,
11334 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
11335 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
11336 config/picochip/libgccExtras/clzsi2.asm,
11337 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
11338 config/rs6000/darwin-libgcc.10.4.ver,
11339 config/rs6000/darwin-libgcc.10.5.ver,
11340 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
11341 config/rs6000/t-aix43, config/rs6000/t-aix52,
11342 config/rs6000/t-darwin, config/rs6000/t-fprules,
11343 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
11344 config/rs6000/t-lynx, config/rs6000/t-netbsd,
11345 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
11346 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
11347 config/rs6000/t-rtems, config/rs6000/t-spe,
11348 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
11349 config/score/t-score-elf, config/sh/divcost-analysis,
11350 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
11351 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
11352 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
11353 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
11354 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
11355 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
11356 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
11357 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
11358 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
11359 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
11360 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
11361 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
11362 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
11363 limitx.h, version.c, xcoff.h: Add copyright and license notices.
11364 * config/h8300/genmova.sh: Include copyright and license notices
11365 in generated output.
11366 * config/h8300/mova.md: Regenerate.
11367 * doc/install.texi2html: Include word "Copyright" in copyright
11368 notice and use name "Free Software Foundation, Inc.".
11369 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
11370 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
11371 ChangeLog-2007, ChangeLog-2008: Correct dates.
11372
43158006 113732009-04-21 Eric Botcazou <ebotcazou@adacore.com>
11374
11375 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
11376 NE_EXPR operations as well.
11377 * c-parser.c (c_parser_condition): Do not set location information on
11378 the condition.
11379 (c_parser_conditional_expression): Likewise.
11380 (c_parser_binary_expression): Set location information on operators.
11381 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
11382 TRUTH_NOT_EXPR has been folded.
11383 * fold-const.c (fold_truth_not_expr): Copy location information from
11384 the incoming expression to the outgoing one.
11385 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
11386 recursive calls on the LHS of the operator but pass that of the
11387 operator to recursive calls on the RHS of the operator. Set it
11388 on the COND_EXPR.
11389 (shortcut_cond_expr): Set the locus of the operator on the second
11390 COND_EXPR and that of the expression on the first in degenerate cases.
11391 Pass the locus of the expression to calls to shortcut_cond_r.
11392 Set the locus of the 'then' block on the associated jump, if any.
11393 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
11394 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
11395 expression to call to gimplify_boolean_expr.
11396
72f432d4 113972009-04-21 Kai Tietz <kai.tietz@onevision.com>
11398
11399 * config.gcc: Add additional configuration for
11400 i686-w64-mingw* and x86_64-w64-mingw* triplet.
11401 * config/i386/mingw-w64.h: New mingw-w64 specific header.
11402 (CPP_SPEC): Redefine for allowing -municode option.
11403 (STARTFILE_SPEC): Likewise.
11404 * config/i386/t-mingw-w64: New.
11405 * config/i386/mingw-w64.opt: New.
11406 (municode): Add new target option.
11407 * doc/invoke.texi (municode): Add documentation for new option.
11408
da84efc1 114092009-04-21 Ian Lance Taylor <iant@google.com>
11410
11411 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11412 Correct test for number of arguments.
11413 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
11414
89871bab 114152009-04-21 Andreas Schwab <schwab@linux-m68k.org>
11416
11417 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
11418 argument of emit_library_call.
11419
be1b4133 114202009-04-21 Richard Guenther <rguenther@suse.de>
11421
11422 PR middle-end/39829
11423 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
11424 inside VIEW_CONVERT_EXPRs.
11425
f6ac75a7 114262009-04-21 Martin Jambor <mjambor@suse.cz>
11427
11428 * tree-switch-conversion.c (build_constructors): Split a long line.
11429 (constructor_contains_same_values_p): New function.
c933fb42 11430 (build_one_array): Create assigns of constants if possible, do not
11431 call mark_sym_for_renaming, call update_stmt.
f6ac75a7 11432 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
11433 make_rename_temp. Do not call mark_symbols_for_renaming, call
11434 update_stmt.
11435 (gen_def_assigns): Do not call mark_symbols_for_renaming or
11436 find_new_referenced_vars, call update_stmt.
11437 (gen_inbound_check): Use create_tmp_var and create ssa names manually
11438 instead of calling make_rename_temp. Do not call
11439 find_new_referenced_vars or mark_symbols_for_renaming, call
11440 update_stmt.
11441
80a26b8b 114422009-04-21 Richard Guenther <rguenther@suse.de>
11443
11444 PR tree-optimization/39827
c933fb42 11445 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
80a26b8b 11446 (tree_ssa_phiprop): Pass the correct array size.
11447
8734914d 114482009-04-21 Uros Bizjak <ubizjak@gmail.com>
11449
11450 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
11451
79973b57 114522009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
11453
11454 PR 16202
11455 * c-typeck.c (lvalue_p): Move declaration ...
11456 * c-common.h (lvalue_p): ... to here.
11457 * c-common.c (candidate_equal_p): New.
11458 (add_tlist): Use it.
11459 (merge_tlist): Use it.
11460 (warn_for_collisions_1): Likewise.
11461 (warning_candidate_p): Accept more candidates.
11462 (verify_tree): A warning candidate can be an expression. Use
11463 candidate_equal_p.
11464
e1483f71 114652009-04-21 Ben Elliston <bje@au.ibm.com>
11466
11467 PR target/5267
11468 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
11469 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
11470 options. Remove -mcall-solaris documentation.
11471
9ab71c6b 114722009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11473
11474 PR c++/13358
11475 * doc/invoke.texi (-Wlong-long): Update description.
11476 * c-lex (interpret_integer): Only warn if there was no previous
11477 overflow and -Wlong-long is enabled.
11478 * c-decl.c (declspecs_add_type): Drop redundant flags.
11479 * c.opt (Wlong-long): Init to -1.
11480 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
11481 and front-end warn_long_long. Wlong-long only depends on other
11482 flags if it is uninitialized.
11483 * c-parser.c (disable_extension_diagnostics): warn_long_long is
11484 the same for CPP and FE.
11485 (restore_extension_diagnostics): Likewise.
11486
b9c74b4d 114872009-04-20 Ian Lance Taylor <iant@google.com>
11488
11489 Fix enum conversions which are invalid in C++:
8734914d 11490 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
11491 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 11492 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
11493 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
8734914d 11494 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
b9c74b4d 11495 (dbxout_parms): Likewise.
8734914d 11496 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
b9c74b4d 11497 (df_clear_flags): Likewise.
11498 * df-problems.c (df_rd_bb_local_compute_process_def): Change
11499 top_flag parameter to int.
11500 (df_chain_create_bb_process_use): Likewise.
8734914d 11501 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
11502 Remove cast.
b9c74b4d 11503 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
11504 (df_ref_create_structure, df_def_record_1): Likewise.
11505 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
11506 (df_notes_rescan): Change 0 to VOIDmode in function call.
11507 (df_get_call_refs, df_insn_refs_collect): Likewise.
11508 (df_bb_regs_collect): Likewise.
11509 (df_entry_block_defs_collect): Likewise.
11510 (df_exit_block_uses_collect): Likewise.
11511 * df.h: Update declarations.
11512 * double-int.c (double_int_divmod): Add cast to enum type.
11513 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
11514 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
11515 (based_loc_descr): Likewise.
11516 (loc_descriptor_from_tree_1): Change first_op and second_op to
11517 enum dwarf_location_atom. Add cast to enum type.
11518 * expmed.c (init_expmed): Change 0 to SET in function call.
8734914d 11519 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
b9c74b4d 11520 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
11521 (do_store_flag): Likewise.
11522 * fixed-value.h (struct fixed_value): Change mode to enum
11523 machine_mode.
8734914d 11524 * function.c (assign_parms): Change 0 to VOIDmode in function call.
b9c74b4d 11525 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
11526 function call.
11527 (insert_insn_decl, insert_decl, insert_state): Likewise.
11528 (automata_list_finish): Likewise.
11529 * genrecog.c (process_define_predicate): Add cast to enum type.
11530 * gensupport.c (init_predicate_table): Add cast to enum type.
11531 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
11532 function call.
11533 (gimple_build_call_1, gimple_build_label): Likewise.
11534 (gimple_build_goto, gimple_build_asm_1): Likewise.
11535 (gimple_build_switch_1, gimple_build_cdt): Likewise.
8734914d 11536 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
b9c74b4d 11537 (enum fallback): Rename from enum fallback_t.
11538 (fallback_t): Typedef as int.
11539 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
11540 GSI_SAME_STMT in function call.
11541 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
11542 enum type.
11543 (setup_reg_class_relations): Likewise.
8734914d 11544 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
b9c74b4d 11545 (setup_prohibited_class_mode_regs): Add cast to enum type.
11546 (setup_prohibited_mode_move_regs): Likewise.
8734914d 11547 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
b9c74b4d 11548 (record_address_regs): Change i to enum reg_class.
11549 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
11550 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
11551 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
11552 (GET_MODE_2XWIDER_MODE): Likewise.
11553 (GET_CLASS_NARROWEST_MODE): Likewise.
11554 * omp-low.c (expand_omp_for): Add cast to enum type.
11555 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
11556 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
11557 * postreload.c (reload_cse_simplify_operands): Change rclass local
11558 to enum reg_class.
11559 * predict.c (combine_predictions_for_insn): Change best_predictor
11560 and predictor to enum br_predictor.
11561 (combine_predictions_for_bb): Likewise.
11562 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
11563 use SET_PREDICT_EXPR_OUTCOME.
8734914d 11564 * real.c (real_arithmetic): Change icode to code in function call.
b9c74b4d 11565 * reginfo.c (init_move_cost): Add casts to enum type.
11566 (init_reg_sets_1, init_fake_stack_mems): Likewise.
11567 * regmove.c (regclass_compatible_p): Change class0 and class1 to
11568 enum reg_class.
11569 * reload.c (find_valid_class): Add casts to enum type.
11570 (push_reload): Change 0 to NO_REGS in function call.
11571 (find_reloads): Change this_alternative to array of enum
11572 reg_class. Remove some now-unnecessary casts.
11573 (make_memloc): Change 0 to VOIDmode in function call.
11574 * reload1.c (reload): Change 0 to VOIDmode in function call.
11575 (eliminate_regs_1, elimination_effects): Likewise.
11576 (eliminate_regs_in_insn): Likewise.
11577 (emit_input_reload_insns): Add cast to enum type.
11578 (delete_output_reload): Change 0 to VOIDmode in function call.
11579 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
11580 to enum type in function call.
11581 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
11582 (SET_PREDICT_EXPR_OUTCOME): Define.
8734914d 11583 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
b9c74b4d 11584 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
11585 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
11586 (dump_function): Likewise.
11587 * tree-dump.h: Update declarations.
11588 * tree-pass.h: Update declarations.
11589 * varasm.c (assemble_integer): Change mclass to enum mode_class.
11590 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
11591 enum type.
11592 (arm_rtx_costs_1): Correct parenthesization.
11593 (arm_rtx_costs): Add casts to enum type.
11594 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
11595 (vfp_emit_fstmd): Use add_rg_note.
11596 (emit_multi_reg_push, emit_sfm): Likewise.
11597 (thumb_set_frame_pointer): Likewise.
11598 (arm_expand_prologue): Likewise.
11599 (arm_regno_class): Change return type to enum reg_class.
11600 (thumb1_expand_prologue): Use add_reg_note.
11601 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
11602 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
11603 in function call.
11604 * config/arm/gentune.sh: Add cast to enum type.
11605 * config/arm/arm-tune.md: Rebuild.
11606 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
11607 (ix86_split_fp_branch, predict_jump): Likewise.
11608 (ix86_expand_multi_arg_builtin): Change sub_code from enum
11609 insn_code to enum rtx_code.
11610 (ix86_builtin_vectorized_function): Add cast to enum type.
11611 * config/i386/i386.md (truncdfsf2): Change slot to enum
11612 ix86_stack_slot.
11613 (truncxf<mode>2, isinf<mode>2): Likewise.
11614 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
11615 enum type.
11616 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
11617 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
11618 (insert_bundle_state): Change 1 to INSERT in function call.
11619 (ia64_add_bundle_selector_before): Likewise.
11620 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
11621 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
11622 (restore_stack_nonlocal): Likewise.
11623 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
11624 function call.
11625 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
11626 function call.
11627 (mips_rtx_costs): Likewise.
11628 (mips_override_options): Add casts to enum type.
11629 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
11630 in function call.
11631 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
11632 (store_reg, set_reg_plus_d): Likewise.
11633 (hppa_expand_prologue, hppa_profile_hook): Likewise.
11634 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11635 cast to enum type.
11636 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
11637 function call.
11638 (emit_unlikely_jump): Use add_reg_note.
11639 (rs6000_emit_allocate_stack): Likewise.
11640 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
11641 (output_toc): Change 1 to INSERT in function call.
11642 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
11643 (rs6000_initialize_trampoline): Likewise.
11644 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
11645 function call.
11646 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
11647 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
11648 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
11649 (save_gprs): Use add_reg_note.
11650 (s390_emit_prologue): Likewise.
8734914d 11651 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 11652 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
11653 (sparc_fold_builtin): Add cast to enum type.
11654 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
11655 enum insn_code.
11656 (spu_expand_prologue): Use add_reg_note.
8734914d 11657 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 11658
116592009-04-20 Ian Lance Taylor <iant@google.com>
11660
11661 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
11662 (c_parser_postfix_expression_after_primary): Get VEC for list of
11663 arguments. Get original types of arguments. Call
11664 build_function_call_vec.
11665 (cached_expr_list_1, cached_expr_list_2): New static variables.
11666 (c_parser_expr_list): Change return type to VEC *. Add
11667 p_orig_types parameter. Change all callers.
11668 (c_parser_release_expr): New static function.
11669 (c_parser_vec_to_tree_list): New static function.
11670 * c-typeck.c (build_function_call): Rewrite to build a VEC and
11671 call build_function_call_vec.
11672 (build_function_call_vec): New function, based on old
11673 build_function_call.
11674 (convert_arguments): Remove nargs and argarray parameters. Change
11675 values to a VEC. Add origtypes parameter.
8734914d 11676 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
b9c74b4d 11677 (convert_for_assignment): Add origtype parameter. Change all
11678 callers. If warn_cxx_compat, check for conversion to an enum
11679 type when calling a function.
11680 (store_init_value): Add origtype parameter. Change all callers.
11681 (digest_init): Likewise.
11682 (struct init_node): Add origtype field.
11683 (add_pending_init): Add origtype parameter. Change all callers.
11684 (output_init_element): Likewise.
11685 (output_pending_init_elements): Pass origtype from init_node to
11686 output_init_element.
4ebc3d57 11687 (process_init_element): Pass origtype from c_expr to
b9c74b4d 11688 output_init_element.
11689 (c_finish_return): Add origtype parameter. Change all callers.
11690 * c-common.c (sync_resolve_size): Change params to VEC *. Change
11691 caller.
11692 (sync_resolve_params): Likewise.
8734914d 11693 (sync_resolve_return): Change params to first_param. Change caller.
b9c74b4d 11694 (resolve_overloaded_builtins): Change params to VEC *. Change
8734914d 11695 callers. Save first parameter around call to build_function_call_vec.
b9c74b4d 11696 * c-decl.c (finish_decl): Add origtype parameter. Change all
11697 callers. Call build_function_call_vec rather than
11698 build_function_call for cleanup.
11699 * c-tree.h: Update declarations.
11700 * c-common.h: Update declarations.
11701 * stub-objc.c (objc_rewrite_function_call): Change parameter from
11702 params to first_param.
11703 * target.h (struct gcc_target): Change resolve_overloaded_builtin
11704 params parameter from tree to void *.
11705 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11706 Change arglist parameter to have type void *, and to be a pointer
11707 to a VEC.
11708 * config/rs6000/rs6000-protos.h
11709 (altivec_resolve_overloaded_builtin): Update declaration.
11710 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
11711 fnargs parameter to have type void *, and to be a pointer to a
11712 VEC. Call build_function_call_vec instead of
11713 build_function_call.
8734914d 11714 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
b9c74b4d 11715
6df553fd 117162009-04-20 Joey Ye <joey.ye@intel.com>
943327c1 11717 Xuepeng Guo <xuepeng.guo@intel.com>
6df553fd 11718 H.J. Lu <hongjiu.lu@intel.com>
11719
11720 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
11721
11722 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
11723 (IX86_LEA_PRIORITY): Likewise.
11724 (distance_non_agu_define): New function.
11725 (distance_agu_use): Likewise.
11726 (ix86_lea_for_add_ok): Likewise.
11727 (ix86_dep_by_shift_count): Likewise.
11728
11729 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
11730 should split for LEA.
11731
11732 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
11733 function.
11734 (ix86_dep_by_shift_count): Likewise.
11735
a174b54d 117362009-04-20 Richard Guenther <rguenther@suse.de>
11737
11738 * expr.c (handled_component_p): Move ...
11739 * tree.h (handled_component_p): ... here.
11740 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
11741 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
11742 and REALPART_EXPR to be in one group.
11743
59f3ea59 117442009-04-20 Richard Guenther <rguenther@suse.de>
11745
11746 * basic-block.h (get_all_dominated_blocks): Declare.
11747 * dominance.c (get_all_dominated_blocks): New function.
11748 * tree-cfg.c (get_all_dominated_blocks): Remove.
11749 (remove_edge_and_dominated_blocks): Adjust.
11750 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
11751 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
11752 instead of recursing.
11753
13f90d63 117542009-04-20 Doug Kwan <dougkwan@google.com>
11755
11756 * cgraph.h (cgraph_node_ptr): New type for vector functions.
11757 (struct cgraph_node_set_def): New type.
11758 (cgraph_node_set) New type. Also declare vector functions.
11759 (struct cgraph_node_set_element_def): New type.
11760 (cgraph_node_set_element): Ditto.
11761 (cgraph_node_set_iterator): New iterator type.
11762 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
11763 cgraph_node_set_remove, dump_cgraph_node_set,
11764 debug_cgraph_node_set): New prototypes.
11765 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
11766 cgraph_node_set_size): New inlines.
11767 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
11768 including cgraph.h.
11769 (struct ipa_opt_pass): Add struct cgraph_node_set_def
11770 argument to function 'write_summary'.
11771 * ipa.c: Include ggc.h.
11772 (hash_cgraph_node_set_element,
11773 eq_cgraph_node_set_element, cgraph_node_set_new,
11774 cgraph_node_set_add, cgraph_node_set_remove,
11775 cgraph_node_set_find, dump_cgraph_node_set,
11776 debug_cgraph_node_set): New functions.
11777 * Makefile.in (ipa.o): Add dependency on GGC_H.
11778
1065dd4e 117792009-04-20 Ira Rosen <irar@il.ibm.com>
11780
11781 PR tree-optimization/39675
89871bab 11782 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
8734914d 11783 check of the return code of vect_schedule_slp. Check that
11784 stmt_vec_info still exists for the statement, before checking its
11785 vectorization type.
1065dd4e 11786
ae381971 117872009-04-20 Michael Matz <matz@suse.de>
11788
11789 * Makefile.in (generated_files): Take out $(simple_generated_c).
11790
2e4b8e58 117912009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
11792
11793 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
11794 (UINTPTR_TYPE): Likewise.
11795
fe49e588 117962009-04-19 Joseph Myers <joseph@codesourcery.com>
11797
11798 PR c/37481
11799 * c-typeck.c (digest_init): Check for initializing an array with a
11800 string literal.
11801
714c7dce 118022009-04-19 Joseph Myers <joseph@codesourcery.com>
11803
11804 PR c/19771
11805 * c-semantics.c (pop_stmt_list): Propagate
11806 STATEMENT_LIST_HAS_LABEL to parent statement list.
11807
287179e8 118082009-04-19 Adam Nemet <anemet@caviumnetworks.com>
11809
11810 * config/mips/mips.h (mips_tune_attr): New macro.
11811 * config/mips/mips.md (cpu): Use it.
11812
577f4774 118132009-04-19 Joseph Myers <joseph@codesourcery.com>
11814
11815 PR c/38243
11816 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
11817 declaring a tag.
11818
9ed5b1f5 118192009-04-19 Diego Novillo <dnovillo@google.com>
11820
11821 * toplev.c (compile_file): Move call to coverage_finish ...
11822 * cgraphunit.c (ipa_passes): ... here.
11823 Call cgraph_process_new_functions.
11824 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
11825 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
11826
ecfab407 118272009-04-19 Jan Hubicka <jh@suse.cz>
11828
8734914d 11829 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
11830 cfun.
ecfab407 11831 (dump_cgraph_node): Dump can throw external flag.
11832 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
11833
03033af4 118342009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
11835
11836 PR c/32061
11837 PR c++/36954
11838 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
11839 * common.opt (Wlogical-op): Move from here...
11840 * c.opt (Wlogical-op): ... to here.
11841 * c-typeck.c (parser_build_binary_op): Update call to
11842 warn_logical_operator.
11843 * c-opts.c (c_common_post_options): Enable warn_logical_op with
11844 extra_warnings.
11845 * c-common.c (warn_logical_op): Update.
11846 * c-common.h (warn_logical_op): Update declaration.
11847
d3e86ba4 118482009-04-19 Eric Botcazou <ebotcazou@adacore.com>
11849
11850 * tree.c (protected_set_expr_location): Fix formatting.
11851
d4e60318 118522009-04-18 Joseph Myers <joseph@codesourcery.com>
11853
11854 PR c/27676
11855 * c-typeck.c (readonly_warning): new.
11856 (build_unary_op, build_modify_expr): Use readonly_warning for
11857 storing into something readonly but not const-qualified.
11858
1b157e43 118592009-04-18 Joseph Myers <joseph@codesourcery.com>
11860
11861 PR c/22367
11862 * c-typeck.c (build_unary_op): Check for taking address of
11863 expression of type void.
11864
8f24e4bd 118652009-04-18 Joseph Myers <joseph@codesourcery.com>
11866
11867 PR c/35210
11868 * c-typeck.c (build_function_call): Check for calling a function
11869 with qualified void return types. Call require_complete_type when
11870 generating a trap.
11871
17b28e52 118722009-04-18 Jan Hubicka <jh@suse.cz>
11873
11874 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
11875 Set nothrow flag.
11876 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
11877 can_throw_external flag.
11878 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
11879 * ipa-pure-const.c (ignore_edge): New function.
11880 (propagate): Compute order for NOTHROW computation; set NOTHROWs
11881 only over can_throw_external edges.
11882 (local_pure_const): Add nothrow flag.
11883 * ipa-utils.c (searchc): Add ignore_edge callback.
11884 (ipa_utils_reduced_inorder): Add ignore_edge callback.
11885 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
11886 (set_nothrow_function_flags): Update cgraph.
11887 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
11888
1c03e359 118892009-04-18 Richard Guenther <rguenther@suse.de>
11890
11891 PR middle-end/39804
11892 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
11893 (fold_stmt): ... this and ...
11894 (fold_stmt_inplace): ... this.
11895 (fold_stmt_1): Fold references in calls and asms.
11896 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
11897
8a6bbf30 118982009-04-18 Kazu Hirata <kazu@codesourcery.com>
11899
11900 * tree-vrp.c (ssa_name_nonzero_p): Remove.
11901 * tree.h: Remove the prototype for ssa_name_nonzero_p.
11902
32234224 119032009-04-18 Kazu Hirata <kazu@codesourcery.com>
11904
11905 * tree.c (function_args_count): Remove.
11906 * tree.h: Remove the prototype for function_args_count.
11907
c58db4b7 119082009-04-18 Kazu Hirata <kazu@codesourcery.com>
11909
11910 * tree-iterator.c (expr_only): Remove.
11911 * tree.h: Remove the prototype for expr_only.
11912
404acb5b 119132009-04-18 Kazu Hirata <kazu@codesourcery.com>
11914
11915 * reginfo.c (cannot_change_mode_set_regs): Remove.
11916 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
11917
5a07d305 119182009-04-08 Anatoly Sokolov <aesok@post.ru>
11919
11920 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
11921 whether operands 0 and 1 overlaps.
11922
496ffe87 119232009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
11924
11925 PR middle-end/36902
11926 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
11927 pointer. Use warning_at instead of warning.
11928 (search_for_addr_array): Likewise.
11929 (check_array_bounds): Likewise.
11930 (check_all_array_refs): Check that the incoming edge is not in the
11931 list of edges to be removed.
11932 (check_all_array_refs): Avoid the temporal pointer.
11933 (vrp_visit_cond_stmt): Fix typo.
11934 (simplify_switch_using_ranges): Handle the case where the switch
11935 index is an integer constant.
11936
f846b2e1 119372009-04-18 Adam Nemet <anemet@caviumnetworks.com>
11938
11939 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
11940
d270ac20 119412009-04-18 Kazu Hirata <kazu@codesourcery.com>
11942
11943 * doc/extend.texi, doc/invoke.texi: Fix typos.
11944
3085aa6d 119452009-04-17 Cary Coutant <ccoutant@google.com>
11946
11947 * tree-flow-inline.h (get_lineno): Fix inverted test.
11948
d47f59f6 119492009-04-17 Diego Novillo <dnovillo@google.com>
11950
11951 * tree-ssa-pre.c (create_expression_by_pieces): Remove
11952 assertion for AVAIL_OUT.
11953
cea9fc42 119542009-04-17 Mike Frysinger <vapier@gentoo.org>
11955
11956 PR target/38627
11957 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
11958 * config/sh/linux-atomic.asm: Likewise.
11959
576cc2fe 119602009-04-17 Diego Novillo <dnovillo@google.com>
11961
11962 * except.c (debug_eh_tree): New.
11963 (struct eh_region, struct eh_status): Move ...
11964 * except.h: ... here.
11965 (add_type_for_runtime): Declare extern.
11966 (lookup_type_for_runtime): Likewise.
11967 (debug_eh_tree): Declare.
11968 * Makefile.in (GTFILES): List except.h before except.c
11969
8e5b4ed6 119702009-04-17 Diego Novillo <dnovillo@google.com>
11971
8734914d 11972 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
8e5b4ed6 11973 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
11974 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
11975 (find_vars_r): ... here.
11976 * tree-flow.h (find_referenced_vars_in): Declare.
11977 * tree-ssa-pre.c (create_expression_by_pieces): Assert
11978 that AVAIL_OUT exists for BLOCK.
11979 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
11980 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
11981 (tree-parloops.o): Likewise.
11982
132cae05 119832009-04-17 Simon Baldwin <simonb@google.com>
11984
11985 * toplev.c (default_tree_printer): Add handling for %E format.
11986
c6934f8a 119872009-04-17 Diego Novillo <dnovillo@google.com>
11988
8734914d 11989 * tree-pretty-print.c (dump_generic_node): Add break after
11990 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
11991 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
11992 FUNCTION_TYPE together. Call print_struct_decl when printing
11993 structures and TDF_SLIM is not given.
c6934f8a 11994 (print_struct_decl): Fix logic for detecting recursion.
11995
46782931 119962009-04-17 Rafael Avila de Espindola <espindola@google.com>
11997
11998 PR 31567
11999 * gcc.c (create_at_file): New.
12000 (compile_input_file_p): New.
12001 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
12002 * main.c (main): Update call to toplev_main.
12003 * toplev.c (toplev_main): Change signature. Call expandargv.
12004 * toplev.h (toplev_main): Change signature.
12005
0bae362c 120062009-04-17 Eric Botcazou <ebotcazou@adacore.com>
12007
12008 * dwarf2out.c (field_byte_offset): Use the type size as the field size
12009 if the latter is not constant.
12010
9207eb25 120112009-04-17 David Edelsohn <edelsohn@gnu.org>
12012
12013 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
12014
b26d0c9e 120152009-04-17 Eric Botcazou <ebotcazou@adacore.com>
12016
12017 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
12018 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
12019
af4c7413 120202009-04-17 Richard Guenther <rguenther@suse.de>
12021
12022 * tree-ssa-structalias.c (get_constraint_for_component_ref):
12023 Handle component references view-converting an invariant address.
12024
48a84cee 120252009-04-17 Adam Nemet <anemet@caviumnetworks.com>
12026
12027 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
12028 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
12029 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
12030 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
12031 Use @deftypevr rather than @deftypevar.
12032
8f0b877f 120332009-04-17 Richard Guenther <rguenther@suse.de>
12034
8734914d 12035 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
8f0b877f 12036 (get_prop_source_stmt): Likewise.
12037 (can_propagate_from): Likewise.
12038
f555bf81 120392009-04-17 Andrew Stubbs <ams@codesourcery.com>
12040
12041 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
12042 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
12043 (--with-multilib-list): Add default value.
12044 * configure: Regenerate.
12045 * Makefile.in (TM_ENDIAN_CONFIG): Define.
12046 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
12047 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
12048 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
12049 Don't add default cpu to multilib list unnecessarily, but do enable
12050 the relevant compiler option..
12051 Add support for --with-multilib-list=<blank> and
12052 --with-multilib-list=!<somelib> to supress unwanted multilibs.
12053 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
12054 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
12055 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
12056 TM_MULTILIB_CONFIG.
12057 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
12058 (MULTILIB_OSDIRNAMES): New variable.
12059 * config/sh/t-1e: Delete file.
12060 * config/sh/t-mlib-sh1: Delete file.
12061 * config/sh/t-mlib-sh2: Delete file.
12062 * config/sh/t-mlib-sh2a: Delete file.
12063 * config/sh/t-mlib-sh2a-nofpu: Delete file.
12064 * config/sh/t-mlib-sh2a-single: Delete file.
12065 * config/sh/t-mlib-sh2a-single-only: Delete file.
12066 * config/sh/t-mlib-sh2e: Delete file.
12067 * config/sh/t-mlib-sh3e: Delete file.
12068 * config/sh/t-mlib-sh4: Delete file.
12069 * config/sh/t-mlib-sh4-nofpu: Delete file.
12070 * config/sh/t-mlib-sh4-single: Delete file.
12071 * config/sh/t-mlib-sh4-single-only: Delete file.
12072 * config/sh/t-mlib-sh4a: Delete file.
12073 * config/sh/t-mlib-sh4a-nofpu: Delete file.
12074 * config/sh/t-mlib-sh4a-single: Delete file.
12075 * config/sh/t-mlib-sh4a-single-only: Delete file.
12076 * config/sh/t-mlib-sh4al: Delete file.
12077 * config/sh/t-mlib-sh5-32media: Delete file.
12078 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
12079 * config/sh/t-mlib-sh5-64media: Delete file.
12080 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
12081 * config/sh/t-mlib-sh5-compact: Delete file.
12082 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
12083 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
12084 * doc/install.texi (Options specification): Add
12085 --with-multilib-list and --with-endian.
12086
c80cefd7 120872009-04-17 Rafael Avila de Espindola <espindola@google.com>
12088
12089 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
12090 REVISION_c.
12091 (OBJS-common): Add plugin-version.o.
12092 (plugin-version.o): New.
12093 * gcc-plugin.h (plugin_gcc_version): New.
12094 (plugin_default_version_check): New.
12095 (plugin_init_func, plugin_init): Add version argument.
12096 * plugin-version.c: New.
12097 * plugin.c (str_plugin_gcc_version_name): New.
12098 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
12099 pass it to the init function.
12100 (plugin_default_version_check): New.
12101
090a8c65 121022009-04-17 Richard Guenther <rguenther@suse.de>
12103
12104 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
12105 for decl-vs-decl disambiguation.
12106
23911610 121072009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
12108
12109 * config/s390/s390.h (s390_tune_attr): New macro definition.
12110 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
12111
304557cd 121122009-04-17 Richard Guenther <rguenther@suse.de>
12113
12114 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
12115 (fold_stmt_r): Likewise.
12116 (maybe_fold_reference): New function.
12117 (fold_gimple_assign): Handle cases fold_stmt_r did.
12118 (fold_stmt): Do not use fold_stmt_r.
12119 (fold_stmt_inplace): Likewise.
12120
912886f2 121212009-04-17 Richard Guenther <rguenther@suse.de>
12122
12123 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
12124 (record_equivalences_from_stmt): Remove useless checks and
12125 simplifications.
12126 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
12127 the type is already suitable.
12128
2d44789e 121292009-04-17 Paolo Bonzini <bonzini@gnu.org>
12130
12131 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
12132
67225bb6 121332009-04-17 Uros Bizjak <ubizjak@gmail.com>
12134
12135 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
12136 (CMPtype): Define as __gcc_CMPtype.
12137
09ec66c8 121382009-04-17 Aurelien Jarno <aurelien@aurel32.net>
12139
12140 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
12141 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
12142
7f7f16d4 121432009-04-17 Richard Guenther <rguenther@suse.de>
12144
12145 PR tree-optimization/39746
12146 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
12147 special-casing for builtins and static variable use/def.
12148 (call_may_clobber_ref_p_1): Likewise.
12149
0b1615c1 121502009-04-16 Ian Lance Taylor <iant@google.com>
12151
12152 * df.h: Include "timevar.h".
12153 (struct df_problem): Change tv_id field to timevar_id_t.
12154 * tree-pass.h: Include "timevar.h".
12155 (struct opt_pass): Change tv_id field to timevar_id_t.
12156 * timevar.h (timevar_id_t): Define TV_NONE.
12157 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
12158 TV_NONE rather than tv_id != 0.
12159 (execute_one_pass): Likewise.
12160 * Makefile.in (DF_H): Add $(TIMEVAR_H).
12161 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
12162 dependencies to $(TREE_PASS_H).
12163 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
12164 to TV_NONE.
12165 (pass_branch_target_load_optimize2): Likewise.
12166 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
12167 (pass_outof_cfg_layout_mode): Likewise.
12168 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
12169 (pass_rebuild_cgraph_edges): Likewise.
12170 (pass_remove_cgraph_callee_edges): Likewise.
12171 * df-core.c (pass_df_initialize_opt): Likewise.
12172 (pass_df_initialize_no_opt): Likewise.
12173 (pass_df_finish): Likewise.
12174 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
12175 * except.c (pass_set_nothrow_function_flags): Likewise.
12176 (pass_convert_to_eh_region_ranges): Likewise.
12177 * final.c (pass_compute_alignments): Likewise.
12178 * function.c (pass_instantiate_virtual_regs): Likewise.
12179 (pass_init_function): Likewise.
12180 (pass_leaf_regs): Likewise.
12181 (pass_match_asm_constraints): Likewise.
12182 * gimple-low.c (pass_lower_cf): Likewise.
12183 (pass_mark_used_blocks): Likewise.
12184 * init-regs.c (pass_initialize_regs): Likewise.
12185 * integrate.c (pass_initial_value_sets): Likewise.
12186 * ira.c (pass_ira): Likewise.
12187 * jump.c (pass_cleanup_barriers): Likewise.
12188 * omp-low.c (pass_expand_omp): Likewise.
12189 (pass_lower_omp): Likewise.
12190 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
12191 * recog.c (pass_split_all_insns): Likewise.
12192 (pass_split_after_reload): Likewise.
12193 (pass_split_before_regstack): Likewise.
12194 (pass_split_before_sched2): Likewise.
12195 (pass_split_for_shorten_branches): Likewise.
12196 * reginfo.c (pass_reginfo_init): Likewise.
12197 (pass_subregs_of_mode_init): Likewise.
12198 (pass_subregs_of_mode_finish): Likewise.
12199 * passes.c (pass_postreload): Likewise.
12200 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
12201 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
12202 (pass_warn_function_return): Likewise.
12203 (pass_warn_function_noreturn): Likewise.
12204 * tree-complex.c (pass_lower_complex): Likewise.
12205 (pass_lower_complex_O0): Likewise.
12206 * tree-if-conv.c (pass_if_conversion): Likewise.
12207 * tree-into-ssa.c (pass_build_ssa): Likewise.
12208 * tree-mudflap.c (pass_mudflap_1): Likewise.
12209 (pass_mudflap_2): Likewise.
12210 * tree-nomudflap.c (pass_mudflap_1): Likewise.
12211 (pass_mudflap_2): Likewise.
12212 * tree-nrv.c (pass_return_slot): Likewise.
12213 * tree-object-size.c (pass_object_sizes): Likewise.
12214 * tree-optimize.c (pass_all_optimizations): Likewise.
12215 (pass_early_local_passes): Likewise.
12216 (pass_all_early_optimizations): Likewise.
12217 (pass_cleanup_cfg): Likewise.
12218 (pass_cleanup_cfg_post_optimizing): Likewise.
12219 (pass_free_datastructures): Likewise.
12220 (pass_free_cfg_annotations): Likewise.
12221 (pass_fixup_cfg): Likewise.
12222 (pass_init_datastructures): Likewise.
12223 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
12224 (pass_late_warn_uninitialized): Likewise.
12225 (pass_update_address_taken): Likewise.
12226 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
12227 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
12228 (pass_cse_sincos): Likewise.
12229 (pass_convert_to_rsqrt): Likewise.
12230 * tree-ssa-structalias.c (pass_build_alias): Likewise.
12231 * tree-stdarg.c (pass_stdarg): Likewise.
12232 * tree-tailcall.c (pass_tail_recursion): Likewise.
12233 (pass_tail_calls): Likewise.
12234 * tree-vect-generic.c (pass_lower_vector): Likewise.
12235 (pass_lower_vector_ssa): Likewise.
12236 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
12237
eb91c01f 122382009-04-16 Joseph Myers <joseph@codesourcery.com>
12239
12240 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
12241 XLR entry.
12242 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
12243 Handle -march=xlr.
12244 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
12245 logical and signext.
12246
52e95993 122472009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
12248
12249 PR target/39767
12250 * config/sh/predicates.md (arith_operand): Check if the operand
12251 of TRUNCATE is a REG.
12252
78eb54ad 122532009-04-16 Kazu Hirata <kazu@codesourcery.com>
12254
12255 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
12256 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
12257
c6faa3cc 122582009-04-16 Kazu Hirata <kazu@codesourcery.com>
12259
12260 * tree-iterator.c (tsi_split_statement_list_after,
12261 tsi_split_statement_list_before): Remove.
12262 * tree-iterator.h: Remove the prototypes for
09ec66c8 12263 tsi_split_statement_list_after and tsi_split_statement_list_before.
c6faa3cc 12264
248c5002 122652009-04-16 Kazu Hirata <kazu@codesourcery.com>
12266
12267 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
12268 * tree-ssa-propagate.h: Remove the prototype for
12269 stmt_makes_single_load.
12270
b11af8ed 122712009-04-16 Kazu Hirata <kazu@codesourcery.com>
12272
12273 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
12274 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
12275
f94a1f5c 122762009-04-16 Kazu Hirata <kazu@codesourcery.com>
12277
12278 * tree-iterator.c (EXPR_LAST_BODY): Remove.
12279
6d546519 122802009-04-16 Kazu Hirata <kazu@codesourcery.com>
12281
12282 * except.c (eh_region_outer_p): Remove.
12283 * except.h: Remove the prototype for eh_region_outer_p.
12284
ee8f5f57 122852009-04-16 Kazu Hirata <kazu@codesourcery.com>
12286
12287 * function.c (current_function_assembler_name): Remove.
12288 * function.h: Remove the prototype for
12289 current_function_assembler_name.
12290
5859ee98 122912009-04-16 Ian Lance Taylor <iant@google.com>
12292
09ec66c8 12293 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
5859ee98 12294 (add_reg_note): Call alloc_reg_note.
12295 * rtl.h (alloc_reg_note): Declare.
12296 * combine.c (try_combine): Use alloc_reg_note.
12297 (recog_for_combine, move_deaths): Likewise.
12298 (distribute_notes): Use alloc_reg_note and add_reg_note.
12299 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
12300 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
12301 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
12302
8f6c49f5 123032009-04-16 Vladimir Makarov <vmakarov@redhat.com>
12304
12305 PR rtl-optimization/39762
12306 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
12307 ira_may_move_out_cost): Add comments about way of their usage.
09ec66c8 12308 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
89871bab 12309
8f6c49f5 12310 * ira-conflicts.c (process_regs_for_copy): Use function
12311 ira_get_register_move_cost instead of global
12312 ira_register_move_cost.
12313
12314 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
12315 color_pass, move_spill_restore, update_curr_costs): Ditto.
12316
12317 * ira-lives.c (process_single_reg_class_operands): Ditto.
12318
12319 * ira-emit.c (emit_move_list): Ditto.
12320
12321 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
12322 (record_reg_classes): Ditto. Use functions
12323 ira_get_register_move_cost and ira_get_may_move_cost instead of
12324 global vars ira_register_move_cost, ira_may_move_out_cost and
12325 ira_may_move_in_cost.
12326 (record_address_regs): Don't call ira_init_register_move_cost.
12327 Use function ira_get_may_move_cost instead of global
12328 ira_may_move_in_cost.
12329 (process_bb_node_for_hard_reg_moves): Use function
09ec66c8 12330 ira_get_register_move_cost instead of global ira_register_move_cost.
8f6c49f5 12331 (ira_costs): Don't call ira_init_register_move_cost.
89871bab 12332
3e10a823 123332009-04-16 Richard Guenther <rguenther@suse.de>
12334
12335 * tree-cfg.c (verify_gimple_assign_binary):
12336 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
12337 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
12338 (create_general_new_stmt): Note that this function is broken.
12339
2dfeb300 123402009-04-16 Rafael Avila de Espindola <espindola@google.com>
12341
12342 * common.opt (fhelp): Add Var(help_flag).
12343 * gcc-plugin.h (plugin_info): Add help.
12344 * plugin.c (plugin_name_args): Add help.
12345 (register_plugin_info): Set plugin->help.
12346 (print_help_one_plugin): New.
12347 (print_plugins_help): New.
12348 * plugin.h (print_plugins_help): New.
12349 * toplev.c (toplev_main): Call print_plugins_help if needed.
12350
6d5ec6f8 123512009-04-16 Richard Guenther <rguenther@suse.de>
12352
12353 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
12354 (gimple_ior_addresses_taken_1): New function.
12355 (gimple_ior_addresses_taken): Likewise.
12356 * gimple.h (struct gimple_statement_with_ops_base): Remove
12357 addresses_taken member.
12358 (gimple_ior_addresses_taken): Declare.
12359 (gimple_addresses_taken, gimple_addresses_taken_ptr,
12360 gimple_set_addresses_taken): Remove.
12361 * ipa-reference.c (mark_address): New function.
12362 (scan_stmt_for_static_refs): Use it for marking addresses taken.
12363 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
12364 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
12365 (gimple_add_to_addresses_taken): Remove.
12366 (get_tmr_operands): Call mark_address_taken.
12367 (get_asm_expr_operands): Likewise.
12368 (get_expr_operands): Likewise.
12369 (build_ssa_operands): Do not clear the addresses_taken bitmap.
12370 (free_stmt_operands): Do not free it.
12371 * tree-ssa.c (delete_tree_ssa): Likewise.
12372 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
12373
5ed0b345 123742009-04-16 Richard Guenther <rguenther@suse.de>
12375
12376 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
12377 (walk_stmt_load_store_ops): Likewise.
12378 * gimple.c (get_base_loadstore): New function.
12379 (walk_stmt_load_store_addr_ops): Likewise.
12380 (walk_stmt_load_store_ops): Likewise.
12381 * ipa-pure-const.c (check_op): Simplify.
12382 (check_load, check_store): New functions.
12383 (check_stmt): Use walk_stmt_load_store_ops.
12384 * ipa-reference.c (mark_load): Adjust signature.
12385 (mark_store): Likewise.
12386 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
12387
e16288b4 123882009-04-16 Rafael Avila de Espindola <espindola@google.com>
12389
12390 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
12391 (plugin_info): New.
12392 * opts.c (common_handle_option): Don't call print_version.
12393 * plugin.c (plugin_name_args): Add version.
12394 (register_plugin_info): New.
12395 (register_callback): Handle PLUGIN_INFO.
12396 (try_init_one_plugin): New.
12397 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
12398 if failed to init.
12399 (finalize_one_plugin): New.
12400 (finalize_plugins): New.
12401 (print_one_plugin): New.
12402 (print_plugins_versions): New.
12403 * plugin.h (print_plugins_versions): New.
12404 (finalize_plugins): New.
12405 * toplev.c (compile_file): Don't call initialize_plugins.
12406 (print_version): Call print_plugins_versions.
12407 (toplev_main): Call initialize_plugins. Print version if needed.
12408 Call finalize_plugins.
12409
39932bd2 124102009-04-16 Rafael Avila de Espindola <espindola@google.com>
12411
12412 * common.opt (fversion): New.
12413 * gcc.c (print_version): New.
12414 (process_command): Don't print the version. Just set print_version.
12415 (main): Print version. Call subprocesses if print_version and
12416 verbose_flag are set.
12417 * opts.c (common_handle_option): Handle OPT_fversion.
12418
1efcacec 124192009-04-16 Richard Guenther <rguenther@suse.de>
09ec66c8 12420 Ira Rosen <irar@il.ibm.com>
1efcacec 12421
12422 PR tree-optimization/39698
12423 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
12424 type of the reduction variable. Only generate the def if
12425 it is needed.
12426
12427 * omp-low.c (expand_omp_for_generic): When converting to a pointer
12428 make sure to first convert to an integer of the same precision.
12429 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
12430 the type of the evolution correctly in computing the new
12431 induction variable base.
12432
3e40d86f 124332009-04-16 Richard Guenther <rguenther@suse.de>
12434
12435 PR middle-end/39625
12436 * tree-cfg.c (make_blocks): Split statements with to-be
12437 abnormal SSA names on the lhs.
12438
8d125f7d 124392009-04-16 Paolo Bonzini <bonzini@gnu.org>
12440
12441 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
12442 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
12443 * c-typeck.c (really_start_incremental_init): Likewise.
12444 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
12445 (TARGET_INITIALIZER): Remove it.
12446 * target.h (struct target): Remove vector_opaque_p.
12447 * tree.c (build_opaque_vector_type): New.
12448 * tree.h (TYPE_VECTOR_OPAQUE): New.
12449 (build_opaque_vector_type): Declare.
12450 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
12451 * config/rs6000/rs6000.c (build_opaque_vector_type,
12452 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
12453 (rs6000_init_builtins): Use build_opaque_vector_type for
12454 opaque_V4SI_type_node.
12455
8d17cbdd 124562009-04-15 Catherine Moore <clm@codesourcery.com>
12457
09ec66c8 12458 * debug.h (set_name): Declare.
12459 * dwarf2out.c (dwarf2out_set_name): Declare.
12460 (dwarf2_debug_hooks): Add set_name.
12461 (find_AT_string): New.
12462 (add_AT_string): Call find_AT_string.
12463 (dwarf2out_set_name): New.
12464 * cp/decl.c (grokdeclarator): Call set_name.
12465 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
12466 * debug.c (do_nothing_debug_hooks): Likewise.
12467 * dbxout.c (dbx_debug_hooks): Likewise.
12468 * sdbout.c (sdb_debug_hooks): Likewise.
8d17cbdd 12469
943327c1 124702009-04-15 Michael Eager <eager@eagercon.com>
2f267585 12471
09ec66c8 12472 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
12473 reg for single-precision FPU.
12474 * config/rs6000/rs6000.md (movsi_internal1): Only for
12475 !TARGET_SINGLE_FPU.
12476 (movsi_internal1_single): New. Add pattern to move SI values to/from
2f267585 12477 single-precision FP regs.
12478
c821ef7d 124792009-04-15 Richard Guenther <rguenther@suse.de>
12480
12481 * omp-low.c (lower_rec_input_clauses): Build correct address
12482 expressions.
12483 (expand_omp_for_generic): Fix multiplication type.
09ec66c8 12484 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
c821ef7d 12485 (generate_memset_zero): Fix types.
12486 * tree-profile.c (prepare_instrumented_value): Correctly
12487 widen a pointer.
12488
841fdaa6 124892009-04-15 Ian Lance Taylor <iant@google.com>
12490
12491 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
12492 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
12493 for -Wall and for -Wc++-compat.
12494 (c_common_post_options): For C++, set warn_enum_compare if not
12495 already set.
12496 * c-tree.h (struct c_expr): Add field original_type.
12497 (build_external_ref): Update declaration.
12498 * c-parser.c (c_parser_braced_init): Set original_type.
12499 (c_parser_initelt): Likewise.
12500 (c_parser_expr_no_commas): Likewise.
12501 (c_parser_conditional_expression): Likewise.
12502 (c_parser_cast_expression): Likewise.
12503 (c_parser_unary_expression): Likewise. Pull setting of
12504 original_code to top of function.
12505 (c_parser_sizeof_expression): Set original_type.
12506 (c_parser_alignof_expression): Likewise.
12507 (c_parser_postfix_expression): Likewise. Pull setting of
12508 original_code to top of function.
09ec66c8 12509 (c_parser_postfix_expression_after_paren_type): Set original_type.
841fdaa6 12510 (c_parser_postfix_expression_after_primary): Likewise.
12511 (c_parser_expression): Likewise.
12512 * c-typeck.c (build_external_ref): Add type parameter. Change all
12513 callers.
12514 (c_expr_sizeof_expr): Set original_type field.
12515 (parser_build_unary_op): Likewise.
12516 (parser_build_binary_op): Likewise. Optionally warn about
12517 comparisons of enums of different types.
12518 (digest_init): Set original_type field.
12519 (really_start_incremental_init): Likewise.
12520 (push_init_level, pop_init_level): Likewise.
12521 * doc/invoke.texi (Warning Options): -Wenum-compare now
12522 supported in C.
12523
d94bf438 125242009-04-15 Richard Guenther <rguenther@suse.de>
12525
12526 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
12527 out a necessary conversion.
12528 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
12529 names we didn't value number.
12530 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
12531
4af351a8 125322009-04-15 Richard Guenther <rguenther@suse.de>
12533
12534 PR tree-optimization/39764
12535 * tree-ssa-ccp.c (get_value): Canonicalize value with
12536 canonicalize_float_value.
12537
02eb0b56 125382009-04-15 Jan Hubicka <jh@suse.cz>
12539
12540 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
12541 Wrong version of patch.
12542
e522af1d 125432009-04-15 Jan Hubicka <jh@suse.cz>
12544
12545 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
12546
bf8f9895 125472009-04-15 Nathan Sidwell <nathan@codesourcery.com>
12548
12549 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
12550 our distinct integral and vector types.
12551
e50d7837 125522009-04-15 Rafael Avila de Espindola <espindola@google.com>
12553
12554 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
12555 * init.c (build_vtbl_address): Remove call to assemble_external.
12556
1cc9c78b 125572009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
12558
12559 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
12560 output for other floating point modes.
12561
dd2b35f1 125622009-04-14 Diego Novillo <dnovillo@google.com>
12563
12564 * diagnostic.c (diagnostic_report_diagnostic): Do not
12565 warn about loaded plugins for DK_ERROR and DK_WARNING.
12566 * c-decl.c (declspecs_add_type): Move call to
12567 invoke_plugin_callbacks ...
12568 * c-parser.c (c_parser_declspecs): ... here.
12569 * plugin.c (dump_active_plugins): Tidy output.
12570
9227b6fc 125712009-04-14 Diego Novillo <dnovillo@google.com>
12572 Le-Chun Wu <lcwu@google.com>
12573
12574 * configure.ac: Add --enable-plugin support.
12575 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
12576 * Makefile.in (PLUGIN_H): Define.
12577 Export ENABLE_PLUGIN and GMPINC to site.exp.
12578 Add PLUGINLIBS to link command.
12579 Add/modify dependencies for plugin.o and files including plugin.h.
12580 (plugin.o): New.
12581 * config.in: Regenerate.
89871bab 12582
9227b6fc 12583 * opts.c (common_handle_option): Handle OPT_fplugin_ and
12584 OPT_fplugin_arg_.
12585
125862009-04-14 Le-Chun Wu <lcwu@google.com>
12587
12588 * tree-pass.h (register_one_dump_file): Add a prototype for
12589 register_one_dump_file.
12590 * toplev.c (compile_file): Call initialize_plugins.
12591 (do_compile): Call invoke_plugin_callbacks.
12592 (toplev_main): Call invoke_plugin_callbacks.
12593 * common.opt: Add -fplugin= and -fplugin-arg-.
12594 * gcc-plugin.h: New public header file for plugins to include.
12595 * plugin.c: New source file.
12596 * plugin.h: New internal header file.
12597 * passes.c (register_one_dump_file): Make it external.
89871bab 12598
9227b6fc 12599 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
12600
126012009-04-14 Diego Novillo <dnovillo@google.com>
12602
12603 * doc/plugins.texi: New.
12604 * doc/gccint.texi: Add reference to Plugins chapter.
12605 * doc/invoke.texi: Document -fplugin and -fplugin-arg
12606 * diagnostic.c (diagnostic_report_diagnostic): Warn about
12607 loaded plugins, if any.
12608 * timevar.def (TV_PLUGIN_INIT): Define.
12609 (TV_PLUGIN_RUN): Define.
12610 * plugin.c: Include timevar.h
12611 (plugins_active_p): New.
12612 (dump_active_plugins): New.
12613 (debug_active_plugins): New.
12614
f3245e9d 126152009-04-14 Joseph Myers <joseph@codesourcery.com>
12616
12617 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
12618 library paths.
12619 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
12620
222652cd 126212009-04-14 Kazu Hirata <kazu@codesourcery.com>
12622
12623 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
12624 the same as a minus without a shift.
12625
11964566 126262009-04-14 Nick Clifton <nickc@redhat.com>
12627
12628 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
12629 comparisons with small integers will always produce a short
12630 branch.
12631
318db53a 126322009-04-14 Rafael Avila de Espindola <espindola@google.com>
12633
12634 Merge:
318db53a 12635 2008-12-19 Diego Novillo <dnovillo@google.com>
12636
09ec66c8 12637 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
318db53a 12638
7dfbd804 126392009-04-14 Richard Guenther <rguenther@suse.de>
87f9ffa4 12640
12641 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
12642 verification.
12643 (verify_gimple_assign_binary): Likewise. Handle shifts and
12644 rotates correctly.
12645 (verify_gimple_phi): Print the mismatched argument position.
12646 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
12647 Fix types.
12648 (vect_update_init_of_dr): Likewise.
12649 * matrix-reorg.c (transform_access_sites): Do what the
12650 comment suggests.
12651 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
12652
943327c1 126532009-04-13 Michael Eager <eager@eagercon.com>
b91a266c 12654
12655 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
12656 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
12657 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
89871bab 12658 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
b91a266c 12659 remove duplicate config
12660
bc6e5ec3 126612009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
12662
12663 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
12664 file_name:line_number type locator of the call site.
89871bab 12665
48ca7187 126662009-04-13 Vladimir Makarov <vmakarov@redhat.com>
12667
12668 * genautomata.c: Put blank after comma.
12669 (automaton_decls): New.
12670 (struct unit_usage): Add comments to member next.
12671 (store_alt_unit_usage): Keep the list ordered.
12672 (unit_present_on_list_p, equal_alternatives_p): New.
12673 (check_regexp_units_distribution): Check units distribution
12674 correctness correctly.
12675 (main): Don't write automata if error is found. Return correct
12676 exit code.
89871bab 12677
48ca7187 12678 * config/m68k/cf.md (cfv4_ds): Remove.
12679 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
12680 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
12681
12682 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
12683 power4-load-ext, power4-store, power4-store-update,
12684 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
12685 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
12686 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
12687 power4-sqrt, power4-isync): Modify reservation to make correct
12688 unit distribution to automata.
12689
12690 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
12691 power5-store-update, power5-two, power5-three, power5-lmul,
12692 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
89871bab 12693
a883441f 126942009-04-13 Adam Nemet <anemet@caviumnetworks.com>
12695
12696 * except.c (pass_set_nothrow_function_flags): Set name and add
12697 TODO_dump_func.
12698 (set_nothrow_function_flags): Mention in the dump file when
12699 changing a function to nothrow.
12700
7ad9dc69 127012009-04-13 Ozkan Sezer <sezeroz@gmail.com>
12702
12703 PR/39066
12704 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
12705 instead of unsigned long.
12706
d4fde4e2 127072009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12708
a883441f 12709 * config/arm/arm.c (return_used_this_function): Remove.
12710 (arm_output_function_prologue): Remove use of
d4fde4e2 12711 return_used_this_function.
a883441f 12712 (output_return_instruction): Replace use of
d4fde4e2 12713 return_used_this_function
12714 by cfun->machine->return_used_this_function.
a883441f 12715 (arm_output_epilogue): Likewise.
12716 (arm_output_function_epilogue): Likewise.
12717 (thumb_unexpanded_epilogue): Likewise.
12718 * config/arm/arm.h (struct machine_function):
d4fde4e2 12719 New member return_used_this_function.
a883441f 12720
c65be9f5 127212009-04-12 Mark Mitchell <mark@codesourcery.com>
12722
12723 * doc/install.texi: Correct description of default directory for
12724 --with-gxx-include-dir.
12725
32cbeb74 127262009-04-12 Eric Botcazou <ebotcazou@adacore.com>
f2143b56 12727
12728 * fold-const.c (build_range_check): Properly deal with enumeral and
12729 boolean base types.
12730
d45a307d 127312009-04-12 Steven Bosscher <steven@gcc.gnu.org>
12732
12733 * doc/invoke.texi (max_gcse_passes): Remove documentation.
12734 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
12735 * params.h (MAX_GCSE_PASSES): Remove.
12736 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
12737 in sequence. Remove ability to run multiple passes.
12738 (bypass_jumps): Report run as third CPROP pass.
12739
80621b93 127402009-04-12 Adam Nemet <anemet@caviumnetworks.com>
12741
12742 PR middle-end/39651
12743 * except.c (can_throw_external): Look at each insn in a SEQUENCE
12744 when deciding whether the whole SEQUENCE can throw.
12745
ac89ce58 127462009-04-12 Uros Bizjak <ubizjak@gmail.com>
12747
12748 PR target/39740
12749 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
12750 offseted label references.
12751
a8520ca4 127522009-04-11 Jan Hubicka <jh@suse.cz>
12753
12754 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
12755
8ad54c54 127562009-04-11 Richard Guenther <rguenther@suse.de>
12757
12758 PR middle-end/39732
12759 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
12760 return variables as TREE_ADDRESSABLE.
12761
8ecc6f01 127622009-04-11 Richard Guenther <rguenther@suse.de>
12763
12764 PR tree-optimization/39713
12765 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
12766 reference trees have SSA_NAME operands.
12767
6f1afc19 127682009-04-11 Richard Guenther <rguenther@suse.de>
12769
12770 PR c/39712
12771 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
12772 address expressions.
12773
99ff0267 127742009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
12775
12776 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
12777 match changes in Cygwin 1.7
12778 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
12779 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
12780
390c1c3b 127812009-04-10 Paolo Bonzini <bonzini@gnu.org>
12782
12783 PR tree-optimization/39701
12784 * doc/invoke.texi (Optimization Options): Document change in
12785 meaning and initialization of -fdelete-null-pointer-checks.
12786
7df298fe 127872009-04-10 H.J. Lu <hongjiu.lu@intel.com>
12788
12789 PR middle-end/39701
12790 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
12791
12792 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
12793 here.
12794
12795 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
12796
e6554c42 127972009-04-10 Chao-ying Fu <fu@mips.com>
12798
12799 * doc/tm.texi (Instruction Output): Document
12800 TARGET_ASM_FINAL_POSTSCAN_INSN.
12801 * target.h (final_postscan_insn): New field in asm_out.
12802 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12803 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
12804 * final.c (final_scan_insn): Call
12805 targetm.asm_out.final_postscan_insn after outputting
12806 an asm macro and a normal instruction.
12807
12808 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
12809 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
12810 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
12811 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
12812 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12813
0f921b42 128142009-04-10 Paolo Bonzini <bonzini@gnu.org>
12815
12816 PR middle-end/39701
7df298fe 12817 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
12818 variables as non-NULL even with -fdelete-null-pointer-checks.
0f921b42 12819
7d37c7ae 128202009-04-10 H.J. Lu <hongjiu.lu@intel.com>
12821
12822 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
12823
2556f3ba 128242009-04-09 H.J. Lu <hongjiu.lu@intel.com>
12825
12826 PR target/39678
12827 * config/i386/i386.c (classify_argument): Handle SCmode with
12828 (bit_offset % 64) != 0.
12829
f3933af2 128302009-04-09 Sandra Loosemore <sandra@codesourcery.com>
12831
12832 * doc/invoke.texi (Optimize Options): Add cross-reference to
12833 -Q --help=optimizers examples.
12834
fa59234c 128352009-04-10 Ben Elliston <bje@au.ibm.com>
12836
12837 PR target/36800
12838 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
12839 regalign for the reg == fpr and TDmode case.
12840
2744a89f 128412009-04-09 David Ayers <ayers@fsfe.org>
12842
12843 PR objc/29200
12844 * objc/objc-act.c (warn_with_method): Remove helper function.
12845 (check_duplicates): Call warning and inform directly.
12846 (really_start_method): Likewise.
12847
dab963fb 128482009-04-09 Paolo Bonzini <bonzini@gnu.org>
12849
12850 * expmed.c (expand_divmod): Always use a comparison for a division
12851 by a large unsigned integer.
12852
7df298fe 12853 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
12854 for things others than variables or functions as nonzero.
dab963fb 12855
6bc9506f 128562009-04-09 Nick Clifton <nickc@redhat.com>
12857
12858 * unwind-compat.c: Change copyright header to refer to version
12859 3 of the GNU General Public License with version 3.1 of the
12860 GCC Runtime Library Exception and to point readers at the
c72c72ef 12861 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
6bc9506f 12862 * config/alpha/crtfastmath.c: Likewise.
12863 * config/alpha/linux-unwind.h: Likewise.
12864 * config/alpha/qrnnd.asm: Likewise.
12865 * config/alpha/vms-crt0-64.c: Likewise.
12866 * config/alpha/vms-crt0.c: Likewise.
12867 * config/alpha/vms-dwarf2.asm: Likewise.
12868 * config/alpha/vms-dwarf2eh.asm: Likewise.
12869 * config/alpha/vms-psxcrt0-64.c: Likewise.
12870 * config/alpha/vms-psxcrt0.c: Likewise.
12871 * config/alpha/vms_tramp.asm: Likewise.
12872 * config/arc/initfini.c: Likewise.
12873 * config/arc/lib1funcs.asm: Likewise.
12874 * config/arm/bpabi-v6m.S: Likewise.
12875 * config/arm/bpabi.S: Likewise.
12876 * config/arm/bpabi.c: Likewise.
12877 * config/arm/crti.asm: Likewise.
12878 * config/arm/crtn.asm: Likewise.
12879 * config/arm/ieee754-df.S: Likewise.
12880 * config/arm/ieee754-sf.S: Likewise.
12881 * config/arm/lib1funcs.asm: Likewise.
12882 * config/arm/libunwind.S: Likewise.
12883 * config/arm/linux-atomic.c: Likewise.
12884 * config/arm/mmintrin.h: Likewise.
12885 * config/arm/pr-support.c: Likewise.
12886 * config/arm/unaligned-funcs.c: Likewise.
12887 * config/arm/unwind-arm.c: Likewise.
12888 * config/arm/unwind-arm.h: Likewise.
12889 * config/avr/libgcc.S: Likewise.
12890 * config/bfin/crti.s: Likewise.
12891 * config/bfin/crtlibid.s: Likewise.
12892 * config/bfin/crtn.s: Likewise.
12893 * config/bfin/lib1funcs.asm: Likewise.
12894 * config/bfin/linux-unwind.h: Likewise.
12895 * config/cris/arit.c: Likewise.
12896 * config/cris/cris_abi_symbol.c: Likewise.
12897 * config/darwin-64.c: Likewise.
12898 * config/darwin-crt2.c: Likewise.
12899 * config/darwin-crt3.c: Likewise.
12900 * config/darwin.h: Likewise.
12901 * config/dbxelf.h: Likewise.
12902 * config/dfp-bit.c: Likewise.
12903 * config/dfp-bit.h: Likewise.
12904 * config/elfos.h: Likewise.
12905 * config/fixed-bit.c: Likewise.
12906 * config/fixed-bit.h: Likewise.
12907 * config/fp-bit.c: Likewise.
12908 * config/fp-bit.h: Likewise.
12909 * config/fr30/crti.asm: Likewise.
12910 * config/fr30/crtn.asm: Likewise.
12911 * config/fr30/lib1funcs.asm: Likewise.
12912 * config/freebsd-spec.h: Likewise.
12913 * config/frv/cmovd.c: Likewise.
12914 * config/frv/cmovh.c: Likewise.
12915 * config/frv/cmovw.c: Likewise.
12916 * config/frv/frvbegin.c: Likewise.
12917 * config/frv/frvend.c: Likewise.
12918 * config/frv/lib1funcs.asm: Likewise.
12919 * config/glibc-stdint.h: Likewise.
12920 * config/h8300/clzhi2.c: Likewise.
12921 * config/h8300/crti.asm: Likewise.
12922 * config/h8300/crtn.asm: Likewise.
12923 * config/h8300/ctzhi2.c: Likewise.
12924 * config/h8300/fixunssfsi.c: Likewise.
12925 * config/h8300/lib1funcs.asm: Likewise.
12926 * config/h8300/parityhi2.c: Likewise.
12927 * config/h8300/popcounthi2.c: Likewise.
12928 * config/i386/ammintrin.h: Likewise.
12929 * config/i386/att.h: Likewise.
12930 * config/i386/avxintrin.h: Likewise.
12931 * config/i386/biarch64.h: Likewise.
12932 * config/i386/bmmintrin.h: Likewise.
12933 * config/i386/cpuid.h: Likewise.
12934 * config/i386/cross-stdarg.h: Likewise.
12935 * config/i386/crtfastmath.c: Likewise.
12936 * config/i386/crtprec.c: Likewise.
12937 * config/i386/cygming-crtbegin.c: Likewise.
12938 * config/i386/cygming-crtend.c: Likewise.
12939 * config/i386/cygwin.asm: Likewise.
12940 * config/i386/emmintrin.h: Likewise.
12941 * config/i386/gmm_malloc.h: Likewise.
12942 * config/i386/gthr-win32.c: Likewise.
12943 * config/i386/i386.h: Likewise.
12944 * config/i386/immintrin.h: Likewise.
12945 * config/i386/linux-unwind.h: Likewise.
12946 * config/i386/linux64.h: Likewise.
12947 * config/i386/mm3dnow.h: Likewise.
12948 * config/i386/mmintrin-common.h: Likewise.
12949 * config/i386/mmintrin.h: Likewise.
12950 * config/i386/nmmintrin.h: Likewise.
12951 * config/i386/pmm_malloc.h: Likewise.
12952 * config/i386/pmmintrin.h: Likewise.
12953 * config/i386/smmintrin.h: Likewise.
12954 * config/i386/sol2-c1.asm: Likewise.
12955 * config/i386/sol2-ci.asm: Likewise.
12956 * config/i386/sol2-cn.asm: Likewise.
12957 * config/i386/sol2-gc1.asm: Likewise.
12958 * config/i386/tmmintrin.h: Likewise.
12959 * config/i386/unix.h: Likewise.
12960 * config/i386/w32-unwind.h: Likewise.
12961 * config/i386/wmmintrin.h: Likewise.
12962 * config/i386/x86-64.h: Likewise.
12963 * config/i386/x86intrin.h: Likewise.
12964 * config/i386/xmmintrin.h: Likewise.
12965 * config/ia64/crtbegin.asm: Likewise.
12966 * config/ia64/crtend.asm: Likewise.
12967 * config/ia64/crtfastmath.c: Likewise.
12968 * config/ia64/crti.asm: Likewise.
12969 * config/ia64/crtn.asm: Likewise.
12970 * config/ia64/fde-glibc.c: Likewise.
12971 * config/ia64/lib1funcs.asm: Likewise.
12972 * config/ia64/linux-unwind.h: Likewise.
12973 * config/ia64/quadlib.c: Likewise.
12974 * config/ia64/unwind-ia64.c: Likewise.
12975 * config/linux.h: Likewise.
12976 * config/m32c/m32c-lib1.S: Likewise.
12977 * config/m32c/m32c-lib2-trapv.c: Likewise.
12978 * config/m32c/m32c-lib2.c: Likewise.
12979 * config/m32r/initfini.c: Likewise.
12980 * config/m68hc11/larith.asm: Likewise.
12981 * config/m68hc11/m68hc11-crt0.S: Likewise.
12982 * config/m68k/cf.md: Likewise.
12983 * config/m68k/crti.s: Likewise.
12984 * config/m68k/crtn.s: Likewise.
12985 * config/m68k/lb1sf68.asm: Likewise.
12986 * config/m68k/linux-unwind.h: Likewise.
12987 * config/mcore/crti.asm: Likewise.
12988 * config/mcore/crtn.asm: Likewise.
12989 * config/mcore/lib1.asm: Likewise.
12990 * config/mips/linux-unwind.h: Likewise.
12991 * config/mips/loongson.h: Likewise.
12992 * config/mips/mips16.S: Likewise.
12993 * config/mmix/crti.asm: Likewise.
12994 * config/mmix/crtn.asm: Likewise.
12995 * config/pa/fptr.c: Likewise.
12996 * config/pa/hpux-unwind.h: Likewise.
12997 * config/pa/lib2funcs.asm: Likewise.
12998 * config/pa/linux-atomic.c: Likewise.
12999 * config/pa/linux-unwind.h: Likewise.
13000 * config/pa/milli64.S: Likewise.
13001 * config/pa/quadlib.c: Likewise.
13002 * config/pa/stublib.c: Likewise.
13003 * config/picochip/libgccExtras/adddi3.asm: Likewise.
13004 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
13005 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
13006 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
13007 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
13008 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
13009 * config/picochip/libgccExtras/divmod15.asm: Likewise.
13010 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
13011 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
13012 * config/picochip/libgccExtras/longjmp.asm: Likewise.
13013 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
13014 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
13015 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
13016 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
13017 * config/picochip/libgccExtras/setjmp.asm: Likewise.
13018 * config/picochip/libgccExtras/subdi3.asm: Likewise.
13019 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
13020 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
13021 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
13022 * config/rs6000/750cl.h: Likewise.
13023 * config/rs6000/altivec.h: Likewise.
13024 * config/rs6000/biarch64.h: Likewise.
13025 * config/rs6000/crtresfpr.asm: Likewise.
13026 * config/rs6000/crtresgpr.asm: Likewise.
13027 * config/rs6000/crtresxfpr.asm: Likewise.
13028 * config/rs6000/crtresxgpr.asm: Likewise.
13029 * config/rs6000/crtsavfpr.asm: Likewise.
13030 * config/rs6000/crtsavgpr.asm: Likewise.
13031 * config/rs6000/darwin-asm.h: Likewise.
13032 * config/rs6000/darwin-fallback.c: Likewise.
13033 * config/rs6000/darwin-fpsave.asm: Likewise.
13034 * config/rs6000/darwin-ldouble.c: Likewise.
13035 * config/rs6000/darwin-tramp.asm: Likewise.
13036 * config/rs6000/darwin-unwind.h: Likewise.
13037 * config/rs6000/darwin-vecsave.asm: Likewise.
13038 * config/rs6000/darwin-world.asm: Likewise.
13039 * config/rs6000/e500crtres32gpr.asm: Likewise.
13040 * config/rs6000/e500crtres64gpr.asm: Likewise.
13041 * config/rs6000/e500crtres64gprctr.asm: Likewise.
13042 * config/rs6000/e500crtrest32gpr.asm: Likewise.
13043 * config/rs6000/e500crtrest64gpr.asm: Likewise.
13044 * config/rs6000/e500crtresx32gpr.asm: Likewise.
13045 * config/rs6000/e500crtresx64gpr.asm: Likewise.
13046 * config/rs6000/e500crtsav32gpr.asm: Likewise.
13047 * config/rs6000/e500crtsav64gpr.asm: Likewise.
13048 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
13049 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
13050 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
13051 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
13052 * config/rs6000/eabi-ci.asm: Likewise.
13053 * config/rs6000/eabi-cn.asm: Likewise.
13054 * config/rs6000/eabi.asm: Likewise.
13055 * config/rs6000/linux-unwind.h: Likewise.
13056 * config/rs6000/linux64.h: Likewise.
13057 * config/rs6000/paired.h: Likewise.
13058 * config/rs6000/paired.md: Likewise.
13059 * config/rs6000/ppc64-fp.c: Likewise.
13060 * config/rs6000/ppu_intrinsics.h: Likewise.
13061 * config/rs6000/rs6000.h: Likewise.
13062 * config/rs6000/si2vmx.h: Likewise.
13063 * config/rs6000/sol-ci.asm: Likewise.
13064 * config/rs6000/sol-cn.asm: Likewise.
13065 * config/rs6000/spe.h: Likewise.
13066 * config/rs6000/spu2vmx.h: Likewise.
13067 * config/rs6000/sysv4.h: Likewise.
13068 * config/rs6000/tramp.asm: Likewise.
13069 * config/rs6000/vec_types.h: Likewise.
13070 * config/s390/linux-unwind.h: Likewise.
13071 * config/s390/tpf-unwind.h: Likewise.
13072 * config/score/crti.asm: Likewise.
13073 * config/score/crtn.asm: Likewise.
13074 * config/sh/crt1.asm: Likewise.
13075 * config/sh/crti.asm: Likewise.
13076 * config/sh/crtn.asm: Likewise.
13077 * config/sh/divtab-sh4-300.c: Likewise.
13078 * config/sh/divtab-sh4.c: Likewise.
13079 * config/sh/divtab.c: Likewise.
13080 * config/sh/lib1funcs-4-300.asm: Likewise.
13081 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
13082 * config/sh/lib1funcs.asm: Likewise.
13083 * config/sh/lib1funcs.h: Likewise.
13084 * config/sh/linux-atomic.asm: Likewise.
13085 * config/sh/linux-unwind.h: Likewise.
13086 * config/sh/shmedia.h: Likewise.
13087 * config/sh/sshmedia.h: Likewise.
13088 * config/sh/ushmedia.h: Likewise.
13089 * config/sparc/crtfastmath.c: Likewise.
13090 * config/sparc/linux-unwind.h: Likewise.
13091 * config/sparc/sol2-c1.asm: Likewise.
13092 * config/sparc/sol2-ci.asm: Likewise.
13093 * config/sparc/sol2-cn.asm: Likewise.
13094 * config/spu/divmodti4.c: Likewise.
13095 * config/spu/divv2df3.c: Likewise.
13096 * config/spu/float_disf.c: Likewise.
13097 * config/spu/float_unsdidf.c: Likewise.
13098 * config/spu/float_unsdisf.c: Likewise.
13099 * config/spu/float_unssidf.c: Likewise.
13100 * config/spu/mfc_multi_tag_release.c: Likewise.
13101 * config/spu/mfc_multi_tag_reserve.c: Likewise.
13102 * config/spu/mfc_tag_release.c: Likewise.
13103 * config/spu/mfc_tag_reserve.c: Likewise.
13104 * config/spu/mfc_tag_table.c: Likewise.
13105 * config/spu/multi3.c: Likewise.
13106 * config/spu/spu_internals.h: Likewise.
13107 * config/spu/spu_intrinsics.h: Likewise.
13108 * config/spu/spu_mfcio.h: Likewise.
13109 * config/spu/vec_types.h: Likewise.
13110 * config/spu/vmx2spu.h: Likewise.
13111 * config/stormy16/stormy16-lib2.c: Likewise.
13112 * config/svr4.h: Likewise.
13113 * config/sync.c: Likewise.
13114 * config/v850/lib1funcs.asm: Likewise.
13115 * config/vxlib-tls.c: Likewise.
13116 * config/vxlib.c: Likewise.
13117 * config/vxworks-dummy.h: Likewise.
13118 * config/xtensa/crti.asm: Likewise.
13119 * config/xtensa/crtn.asm: Likewise.
13120 * config/xtensa/ieee754-df.S: Likewise.
13121 * config/xtensa/ieee754-sf.S: Likewise.
13122 * config/xtensa/lib1funcs.asm: Likewise.
13123 * config/xtensa/lib2funcs.S: Likewise.
13124 * config/xtensa/linux-unwind.h: Likewise.
13125 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
13126 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
13127 * coretypes.h: Likewise.
13128 * crtstuff.c: Likewise.
13129 * defaults.h: Likewise.
13130 * dwarf2.h: Likewise.
13131 * emutls.c: Likewise.
13132 * gbl-ctors.h: Likewise.
13133 * gcov-io.h: Likewise.
13134 * ginclude/float.h: Likewise.
13135 * ginclude/iso646.h: Likewise.
13136 * ginclude/stdarg.h: Likewise.
13137 * ginclude/stdbool.h: Likewise.
13138 * ginclude/stddef.h: Likewise.
13139 * ginclude/stdfix.h: Likewise.
13140 * ginclude/stdint-gcc.h: Likewise.
13141 * ginclude/tgmath.h: Likewise.
13142 * gthr-aix.h: Likewise.
13143 * gthr-dce.h: Likewise.
13144 * gthr-gnat.c: Likewise.
13145 * gthr-gnat.h: Likewise.
13146 * gthr-lynx.h: Likewise.
13147 * gthr-mipssde.h: Likewise.
13148 * gthr-nks.h: Likewise.
13149 * gthr-posix.c: Likewise.
13150 * gthr-posix.h: Likewise.
13151 * gthr-posix95.h: Likewise.
13152 * gthr-rtems.h: Likewise.
13153 * gthr-single.h: Likewise.
13154 * gthr-solaris.h: Likewise.
13155 * gthr-tpf.h: Likewise.
13156 * gthr-vxworks.h: Likewise.
13157 * gthr-win32.h: Likewise.
13158 * gthr.h: Likewise.
13159 * libgcc2.c: Likewise.
13160 * libgcc2.h: Likewise.
13161 * libgcov.c: Likewise.
13162 * tsystem.h: Likewise.
13163 * typeclass.h: Likewise.
13164 * unwind-c.c: Likewise.
13165 * unwind-compat.h: Likewise.
13166 * unwind-dw2-fde-compat.c: Likewise.
13167 * unwind-dw2-fde-darwin.c: Likewise.
13168 * unwind-dw2-fde-glibc.c: Likewise.
13169 * unwind-dw2-fde.c: Likewise.
13170 * unwind-dw2-fde.h: Likewise.
13171 * unwind-dw2.c: Likewise.
13172 * unwind-dw2.h: Likewise.
13173 * unwind-generic.h: Likewise.
13174 * unwind-pe.h: Likewise.
13175 * unwind-sjlj.c: Likewise.
13176 * unwind.inc: Likewise.
13177 * config/arm/neon-gen.ml: Change generated copyright header to
13178 refer to version 3 of the GNU General Public License with
13179 version 3.1 of the GCC Runtime Library Exception and to point
13180 readers at the COPYING3 and COPYING3.RUNTIME files and the
13181 FSF's license web page.
13182 * config/arm/arm_neon.h: Regenerate.
13183
131842009-04-09 Jakub Jelinek <jakub@redhat.com>
13185
13186 * config/cris/cris.md: Change copyright header to refer to version
13187 3 of the GNU General Public License.
13188 * doc/install.texi2html: Change copyright header to refer to version
13189 3 of the GNU General Public License and to point readers at the
13190 COPYING3 file and the FSF's license web page.
13191 * config/vax/linux.h: Likewise.
13192
8e58aded 131932009-04-09 Paolo Bonzini <bonzini@gnu.org>
13194
7df298fe 13195 * config/i386/i386.md (cmpcc): New.
13196 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
13197 (sync_compare_and_swap_cc*): Delete.
13198
13199 * config/s390/s390.c (s390_compare_emitted): Remove.
13200 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
13201 s390_compare_emitted used to be handled. Assert that modes match.
13202 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
13203 refer to sync_compare_and_swap_ccsi.
13204 * config/s390/s390.h (s390_compare_emitted): Remove.
13205 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
13206 instead of s390_compare_emitted.
13207 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
13208 instead of s390_compare_emitted.
13209 * config/s390/s390.md (cmpcc): New.
13210 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
13211 CC_REGNUM, do not pretend it's set.
13212 (sync_compare_and_swap_cc*): Delete.
13213 * config/s390/predicates.md (cc_reg_operand): New.
13214
13215 * expr.c (sync_compare_and_swap_cc): Delete.
13216 * optabs.h (sync_compare_and_swap_cc): Delete.
13217 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
13218 is being used with can_compare_p.
13219 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
13220 (find_cc_set): New.
13221 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
13222 look for a MODE_CC set instead. Use emit_store_flag.
13223 (expand_compare_and_swap_loop): Likewise, with some additional
13224 complication to avoid a force_reg when useless. Use
13225 emit_cmp_and_jump_insns.
13226 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
13227 * doc/md.texi (sync_compare_and_swap_cc): Merge with
13228 sync_compare_and_swap documentation.
8e58aded 13229
98b64106 132302009-04-09 Jan Hubicka <jh@suse.cz>
13231
13232 * except.c (find_prev_try): Break out from ....
13233 (duplicate_eh_regions): ... here; properly update prev_try pointers
13234 when duplication part of tree.
13235 (dump_eh_tree): Improve dumping.
13236 (verify_eh_region): New.
13237 (verify_eh_tree): Use it.
13238
d7dfb761 132392009-04-06 Richard Guenther <rguenther@suse.de>
13240
13241 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
13242 &ARRAY addresses by adjusting their types and prepending
13243 a conversion.
13244 * tree-cfg.c (verify_gimple_assign_single): Verify that
13245 addresses are correct.
13246
87c5de3b 132472009-04-09 Richard Guenther <rguenther@suse.de>
13248
13249 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
13250 indices into an array reference if possible.
13251 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
13252 Fold POINTER_PLUS_EXPR statements with invariant address.
13253
50ec89c7 132542009-04-09 Alan Modra <amodra@bigpond.net.au>
13255
13256 PR target/39634
13257 * config.gcc (powerpc64-*-linux*): Always build biarch.
13258
482c1ea0 132592009-04-09 Joseph Myers <joseph@codesourcery.com>
13260
13261 PR c/39613
13262 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
13263 it and pedwarn if this results in an INTEGER_CST.
13264
fec76ae9 132652009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13266
13267 * doc/install.texi: Update minimum GMP version. Remove obsolete
13268 text in MPFR section.
13269
a974aa3e 132702009-04-08 Jakub Jelinek <jakub@redhat.com>
13271
13272 * dwarf2out.c (class_scope_p): New static inline.
13273 (class_or_namespace_scope_p): Use it.
13274 (gen_variable_die): Use DW_TAG_member tag for static data member
13275 declarations instead of DW_TAG_variable.
13276
e1a7ccb9 13277 PR middle-end/39573
13278 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
13279 variables.
13280
94373fa5 132812009-04-08 Richard Guenther <rguenther@suse.de>
13282
13283 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
13284 valueize random data.
13285
b5e8a0bc 132862009-04-08 David Edelsohn <edelsohn@gnu.org>
13287
13288 * config.gcc (aix tm_file): Add aix-stdint.h.
13289 (aix tm clause use_gcc_stdint): Set to wrap.
13290 * config/rs6000/aix-stdint.h: New file.
89871bab 13291
3a44a278 132922009-04-08 Richard Guenther <rguenther@suse.de>
13293
13294 PR middle-end/36291
13295 * tree-dfa.c (add_referenced_var): Do not recurse into
13296 global initializers.
13297 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
13298 exposed variables.
13299 (fold_const_aggregate_ref): Likewise.
13300
c429965c 133012009-04-08 Paolo Bonzini <bonzini@gnu.org>
13302
0ed4dbb4 13303 * recog.c (ordered_comparison_operator): New.
13304 * gensupport.c (std_preds): Add it.
c429965c 13305 * doc/md.texi (Machine-Independent Predicates): Document it.
13306
48d5ef93 133072009-04-08 Jan Hubicka <jh@suse.cz>
13308
13309 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
13310 * function.h (rtl_eh): Remove exception_handler_label_map.
13311 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
13312 remove_exception_handler_label, for_each_eh_label_1): Remove.
13313 (rtl_remove_unreachable_regions): Remove.
13314 (convert_from_eh_region_ranges): Do not remove unreachable regions.
13315 (find_exception_handler_labels): Don't build the hashtable.
13316 (maybe_remove_eh_handler): Remove.
13317 (for_each_eh_label): Rewrite to walk the tree.
13318 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
13319 * except.h (maybe_remove_eh_handler): Remove.
13320 * passes.c (init_optimization_passes): Schedule second EH cleanup
13321 before out-of-ssa.
13322 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
13323 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
13324
cbb955b0 133252009-04-08 Paolo Bonzini <bonzini@gnu.org>
13326
13327 * genoutput.c (validate_optab_operands): New.
13328 (gen_insn, gen_expand): Call it.
13329
13330 * genflags.c (gen_insn): Detect misused iterators.
13331 (main): Pass line_no to gen_insn, exit with status 1 on error.
13332
13333 * genextract.c (line_no): Make global.
13334 (VEC_safe_set_locstr): Change assertion to error message.
13335 (main): Exit with status 1 on error.
13336
9a8bed72 133372009-04-08 Joseph Myers <joseph@codesourcery.com>
13338
13339 PR c/39614
13340 PR c/39673
13341 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
13342 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
13343 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
13344 * c-convert.c (convert): Do not call fold on results of conversion
13345 functions when the result is a C_MAYBE_CONST_EXPR.
13346 * c-parser.c (c_parser_postfix_expression): Do not fold condition
13347 of __builtin_choose_expr.
13348 * c-typeck.c (remove_c_maybe_const_expr): New.
13349 (build_unary_op, build_conditional_expr, build_compound_expr,
13350 build_binary_op, c_objc_common_truthvalue_conversion): Call
13351 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
13352 integer operands.
13353
943327c1 133542009-04-08 Bingfeng Mei <bmei@broadcom.com>
87de4c68 13355
89871bab 13356 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
0ed4dbb4 13357 CODE to produce a new one. Add a prototype to use fold_convert_const
87de4c68 13358
1e37e2e4 133592009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
13360
13361 PR bootstrap/39660
13362 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
13363 mix declarations and code.
13364
c68bcf58 133652009-04-08 Ben Elliston <bje@au.ibm.com>
13366
13367 * gcc.c: Replace `CC' with `GCC' throughout.
13368
a015dc67 133692009-04-07 H.J. Lu <hongjiu.lu@intel.com>
13370
13371 * doc/invoke.texi: Document Atom support.
13372
fc8ee10c 133732009-04-07 Jason Merrill <jason@redhat.com>
13374
13375 PR c++/25185
13376 * c-common.h, c-common.c: Add flag_pretty_templates.
13377 * c-opts.c (c_common_handle_option): Set it.
13378 * c.opt: Add -fno-pretty-templates.
13379 * doc/invoke.texi (C++ Dialect Options): Likewise.
13380
9b57ed9f 133812009-04-07 Uros Bizjak <ubizjak@gmail.com>
13382
13383 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
13384 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
13385 (ia64_expand_builtin): Likewise.
13386
9b973aa6 133872009-04-07 Martin Jambor <mjambor@suse.cz>
13388
13389 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
13390 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
13391 ADDR_EXPRS are include too.
13392
09347e88 133932009-04-07 Richard Guenther <rguenther@suse.de>
13394
13395 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
13396 decls are only used if passes as parameters or if they are
13397 local statics and the call is not to a builtin.
13398 (call_may_clobber_ref_p_1): Likewise.
13399
da4963ce 134002009-04-07 Paolo Bonzini <bonzini@gnu.org>
13401
13402 * expr.c (do_store_flag): Remove last argument. Simplify code
13403 to avoid duplication of tests already done by can_compare_p.
13404 (expand_expr_real_1): Adjust caller.
13405
235155da 134062009-04-07 Paolo Bonzini <bonzini@gnu.org>
13407
9b57ed9f 13408 * optabs.c (can_compare_p): Test the predicate of a
13409 cbranch and cstore pattern.
235155da 13410
2040a7e4 134112009-04-07 Paolo Bonzini <bonzini@gnu.org>
13412
9b57ed9f 13413 * expr.c (convert_move): Use emit_store_flag instead of
13414 "emulating" it.
2040a7e4 13415
a5f5a6f7 134162009-04-07 Paolo Bonzini <bonzini@gnu.org>
13417
9b57ed9f 13418 * config/i386/i386.c (ix86_compare_emitted): Remove.
13419 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
13420 ix86_compare_op0 like ix86_compare_emitted used to be handled.
13421 * config/i386/i386.h (ix86_compare_emitted): Remove.
13422 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
13423 instead of ix86_compare_emitted.
13424 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
a5f5a6f7 13425
fa22494c 134262009-04-07 Andrew Stubbs <ams@codesourcery.com>
13427
13428 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
13429 Add t-sysroot-suffix to tmake_file.
13430 * config/print-sysroot-suffix.sh: New file.
13431 * config/t-sysroot-suffix: New file.
13432
e73bbd21 134332009-04-07 Ben Elliston <bje@au.ibm.com>
13434
13435 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
13436 as the latter produces a warning when the target does not support
13437 infinity.
13438
d5cd42ef 134392009-04-07 Ben Elliston <bje@au.ibm.com>
13440
13441 * dfp.c: Replace type punning assignments with memcpy throughout.
13442 * Makefile.in (dfp.o-warn): Remove.
89871bab 13443
4e5e2802 134442009-04-07 Alan Modra <amodra@bigpond.net.au>
13445
13446 PR target/39634
13447 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
13448 Include soft-fp/t-softfp after rs6000/t-linux64.
13449
30904b2c 134502009-04-06 Eric Botcazou <ebotcazou@adacore.com>
13451
13452 * stor-layout.c (set_sizetype): Use the full precision of their
13453 machine mode for bitsize types.
13454
3544e448 134552009-04-06 H.J. Lu <hongjiu.lu@intel.com>
13456
13457 * config/i386/i386.md: Revert 2 accidental checkins.
13458
fbfe006e 134592009-04-06 Joey Ye <joey.ye@intel.com>
943327c1 13460 Xuepeng Guo <xuepeng.guo@intel.com>
fbfe006e 13461 H.J. Lu <hongjiu.lu@intel.com>
13462
13463 Atom pipeline model, tuning and insn selection.
13464 * config.gcc (atom): Add atom config options and target.
13465
13466 * config/i386/atom.md: New.
13467
13468 * config/i386/i386.c (atom_cost): New cost.
13469 (m_ATOM): New macro flag.
13470 (initial_ix86_tune_features): Set m_ATOM.
13471 (x86_accumulate_outgoing_args): Likewise.
13472 (x86_arch_always_fancy_math_387): Likewise.
13473 (processor_target): Add Atom cost.
13474 (cpu_names): Add Atom cpu name.
13475 (override_options): Set Atom ISA.
13476 (ix86_issue_rate): New case PROCESSOR_ATOM.
13477 (ix86_adjust_cost): Likewise.
13478
13479 * config/i386/i386.h (TARGET_ATOM): New target macro.
13480 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
13481 (TARGET_OPT_AGU): New target option.
13482 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
13483 (processor_type): Add PROCESSOR_ATOM.
13484
13485 * config/i386/i386.md (cpu): Add new value "atom".
13486 (use_carry, movu): New attr.
13487 (atom.md): Include atom.md.
13488 (adddi3_carry_rex64): Set attr "use_carry".
13489 (addqi3_carry): Likewise.
13490 (addhi3_carry): Likewise.
13491 (addsi3_carry): Likewise.
13492 (*addsi3_carry_zext): Likewise.
13493 (subdi3_carry_rex64): Likewise.
13494 (subqi3_carry): Likewise.
13495 (subhi3_carry): Likewise.
13496 (subsi3_carry): Likewise.
13497 (x86_movdicc_0_m1_rex64): Likewise.
13498 (*x86_movdicc_0_m1_se): Likewise.
13499 (x86_movsicc_0_m1): Likewise.
13500 (*x86_movsicc_0_m1_se): Likewise.
13501 (*adddi_1_rex64): Emit add insn as much as possible.
13502 (*addsi_1): Likewise.
13503 (return_internal): Set atom_unit.
13504 (return_internal_long): Likewise.
13505 (return_pop_internal): Likewise.
13506 (*rcpsf2_sse): Set atom_sse_attr attr.
13507 (*qrt<mode>2_sse): Likewise.
13508 (*prefetch_sse): Likewise.
13509
13510 * config/i386/i386-c.c (ix86_target_macros_internal): New case
13511 PROCESSOR_ATOM.
13512 (ix86_target_macros_internal): Likewise.
13513
13514 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
13515 (*prefetch_sse_rex): Likewise.
13516 (sse_rcpv4sf2): Likewise.
13517 (sse_vmrcpv4sf2): Likewise.
13518 (sse_sqrtv4sf2): Likewise.
13519 (<sse>_vmsqrt<mode>2): Likewise.
13520 (sse_ldmxcsr): Likewise.
13521 (sse_stmxcsr): Likewise.
13522 (*sse_sfence): Likewise.
13523 (sse2_clflush): Likewise.
13524 (*sse2_mfence): Likewise.
13525 (*sse2_lfence): Likewise.
13526 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
13527 (<sse>_movup<ssemodesuffixf2c>): Likewise.
13528 (avx_movdqu<avxmodesuffix>): Likewise.
13529 (avx_lddqu<avxmodesuffix>): Likewise.
13530 (sse2_movntv2di): Change attr "type" to "ssemov".
13531 (sse2_movntsi): Likewise.
13532 (rsqrtv8sf2): Change attr "type" to "sseadd".
13533 (sse3_addsubv2df3): Set attr "atom_unit".
13534 (sse3_h<plusminus_insn>v4sf3): Likewise.
13535 (*sse2_pmaddwd): Likewise.
13536 (*vec_extractv2di_1_rex64): Likewise.
13537 (*vec_extractv2di_1_avx): Likewise.
13538 (sse2_psadbw): Likewise.
13539 (ssse3_phaddwv8hi3): Likewise.
13540 (ssse3_phaddwv4hi3): Likewise.
13541 (ssse3_phadddv4si3): Likewise.
13542 (ssse3_phadddv2si3): Likewise.
13543 (ssse3_phaddswv8hi3): Likewise.
13544 (ssse3_phaddswv4hi3): Likewise.
13545 (ssse3_phsubwv8hi3): Likewise.
13546 (ssse3_phsubwv4hi3): Likewise.
13547 (ssse3_phsubdv4si3): Likewise.
13548 (ssse3_phsubdv2si3): Likewise.
13549 (ssse3_phsubswv8hi3): Likewise.
13550 (ssse3_phsubswv4hi3): Likewise.
13551 (ssse3_pmaddubsw128): Likewise.
13552 (sse3_pmaddubsw: Likewise.
13553 (ssse3_palignrti): Likewise.
13554 (ssse3_palignrdi): Likewise.
13555
ad659dc9 135562009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
13557
13558 * doc/install.texi (Specific): Fix two cross-references to MinGW.
13559
220307de 135602009-04-06 Richard Guenther <rguenther@suse.de>
13561
13562 PR tree-optimization/28868
13563 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
13564 of which PHI results we inserted.
13565 (insert_into_preds_of_block): Record inserted PHIs.
13566 (eliminate): Eliminate redundant PHI nodes.
13567 (init_pre): Init inserted_phi_names.
13568
0fefde02 135692009-04-06 Richard Guenther <rguenther@suse.de>
13570
13571 PR tree-optimization/39643
13572 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
13573 IMAGPART_EXPRs of complex constants.
13574 (execute_fold_all_builtins): If we folded a call queue
13575 TODO_update_address_taken.
13576
b07ddb92 135772009-04-06 Jan Hubicka <jh@suse.cz>
13578
13579 PR middle-end/39659
13580 * except.c (remove_unreachable_regions): Propagate may_contain_throw
13581 flag.
13582
85714674 135832009-04-06 Andrew Stubbs <ams@codesourcery.com>
13584
13585 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
13586 delay slot.
13587 (ic_invalidate_array): Likewise.
13588
943327c1 135892009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
c2fd5e89 13590
13591 * calls.c (emit_library_call_value_1): Fix a problem with parameter
13592 alignment for library calls.
13593
8953973a 135942009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
13595
13596 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
13597 (mingw32 tm clause use_gcc_stdint): Set to wrap.
13598 * config/i386/mingw-stdint.h: New file.
13599
eb04d2de 136002009-04-05 Richard Guenther <rguenther@suse.de>
13601
13602 PR tree-optimization/39648
13603 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
13604 our &A vs. &A[0] IL deficiencies.
13605
0f656a57 136062009-04-04 Jan Hubicka <jh@suse.cz>
13607
eb04d2de 13608 * except.c (sjlj_find_directly_reachable_regions): Be ready for
13609 removed toplevel regions.
0f656a57 13610 (sjlj_mark_call_sites): Likewise.
13611
615180dd 136122009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
13613
13614 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
13615 (cygwin tm clause use_gcc_stdint): Set to wrap.
13616 * config/i386/cygwin-stdint.h: New file.
13617
23a3430d 136182009-04-04 Richard Guenther <rguenther@suse.de>
13619
13620 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
13621 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
13622 single-argument PHIs if we are in loop-closed SSA form.
13623 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
13624 for the pre-condition.
13625 (slpeel_tree_peel_loop_to_edge): Likewise.
13626 (vect_build_loop_niters): Take an optional sequence to append stmts.
13627 (vect_generate_tmps_on_preheader): Likewise.
13628 (vect_do_peeling_for_loop_bound): Take extra guards for the
13629 pre-condition.
13630 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
13631 the cost model check.
13632 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
c72c72ef 13633 guards if we are going to peel. Do not apply versioning in that case.
23a3430d 13634 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
13635 (vect_do_peeling_for_loop_bound): Likewise.
13636 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
13637 loop bound only record extra pre-conditions, do not apply loop
13638 versioning.
13639
42e901a3 136402009-04-04 Richard Guenther <rguenther@suse.de>
13641
13642 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
13643 renaming code.
13644
87490e08 136452009-04-04 Jan Hubicka <jh@suse.cz>
13646
13647 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
13648 last_basic_block for size of bb->index indexed array.
13649 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
13650 compute_out, link_btr_uses, build_btr_def_use_webs,
13651 build_btr_def_use_webs, migrate_btr_defs): Likewise.
13652
686e094c 136532009-04-04 Jan Hubicka <jh@suse.cz>
13654
13655 * except.c (remove_eh_handler_and_replace): Break out from ...
13656 (remove_eh_handler): ... here.
13657 (bring_to_root): New function.
13658 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
13659 handled ones, bring others to root of tree.
13660
3bd82487 136612009-04-04 Jan Hubicka <jh@suse.cz>
13662
74eed1ed 13663 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
13664 (all_phis_safe_to_merge): New function.
13665 (update_info): New structure.
13666 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
13667 (cleanup_empty_eh): Update SSA if possible.
3bd82487 13668
17fbf1b8 136692009-04-04 Richard Guenther <rguenther@suse.de>
13670
13671 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
13672 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
13673 (append_vuse): Likewise.
13674
d02454a0 136752009-04-04 Jakub Jelinek <jakub@redhat.com>
13676
13677 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
13678 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
13679 instead of REG_UNSAVED for DW_CFA_undefined.
13680 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
13681 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
13682 outermost frame.
13683
19f6bf8d 136842009-04-04 Richard Earnshaw <rearnsha@arm.com>
13685
13686 PR target/39501
13687 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
13688 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
13689 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
13690
d12dee9c 136912009-04-04 Richard Guenther <rguenther@suse.de>
13692
13693 PR tree-optimization/8781
13694 PR tree-optimization/37892
13695 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
13696 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
13697 (valueize_refs): Call it for *& valueizations.
13698 (shared_reference_ops_from_ref): Rename to ...
13699 (valueize_shared_reference_ops_from_ref): ... this and valueize.
13700 (shared_reference_ops_from_call): Rename to ...
13701 (valueize_shared_reference_ops_from_call): ... this and valueize.
13702 (vn_reference_lookup): Update.
13703 (visit_reference_op_call): Likewise.
13704 * tree-ssa-pre.c (phi_translate_1): Fold *&.
13705 (eliminate): Value-replace the call address in call statements.
13706
507b89a4 137072009-04-04 Richard Guenther <rguenther@suse.de>
13708
13709 PR tree-optimization/39636
13710 * tree-ssa-forwprop.c
13711 (forward_propagate_addr_into_variable_array_index): Check for
13712 GIMPLE_ASSIGN before accessing the rhs code.
13713
4a83184b 137142009-04-03 Jason Merrill <jason@redhat.com>
13715
13716 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
13717
d363dedc 137182009-04-03 Steve Ellcey <sje@cup.hp.com>
13719
13720 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
13721 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
13722 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
13723 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
13724 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
13725 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
13726 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
13727 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
13728 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
13729 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
13730 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
13731 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
13732 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
13733 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
13734 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
13735 Use fr_reg_or_fp01_operand instead of fr_register_operand
13736
13737 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
13738 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
13739 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
13740
2dd81ece 137412009-04-03 Vladimir Makarov <vmakarov@redhat.com>
13742
acc6de19 13743 PR rtl-optimization/39607
13744 PR rtl-optimization/39631
c72c72ef 13745
13746 Revert:
89871bab 13747
2dd81ece 13748 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
13749 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
13750 instead of DF_LR_OUT.
13751 * ira-lives.c (process_bb_node_lives): Ditto.
13752 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
13753 instead of DF_LR_{OUT,IN}.
13754 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
13755 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
13756
41709826 137572009-04-03 Steven Bosscher <steven@gcc.gnu.org>
13758
13759 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
13760 (execute_lower_omp): Always run but take the short way out if -fopenmp
13761 is not given.
13762 (gate_lower_omp): Remove, forcing the pass manager to always run the
13763 pass and always set PROP_gimple_lomp.
13764 (pass_lower_omp): Remove gate function.
13765 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
13766 PROP_trees. Instead, require it.
13767 * ipa-cp.c (pass_ipa_cp): Likewise.
13768 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
13769 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
13770 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
13771 and PROP_gimple_leh.
13772
dd277d48 137732009-04-03 Richard Guenther <rguenther@suse.de>
13774
13775 PR middle-end/13146
13776 PR tree-optimization/23940
13777 PR tree-optimization/33237
13778 PR middle-end/33974
13779 PR middle-end/34093
13780 PR tree-optimization/36201
13781 PR tree-optimization/36230
13782 PR tree-optimization/38049
13783 PR tree-optimization/38207
13784 PR tree-optimization/38230
13785 PR tree-optimization/38301
13786 PR tree-optimization/38585
13787 PR middle-end/38895
13788 PR tree-optimization/38985
13789 PR tree-optimization/39299
13790 * tree-ssa-structalias.h: Remove.
13791 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
13792 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
13793 (struct vuse_element_d): Remove.
13794 (struct vuse_vec_d): Likewise.
13795 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
13796 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
13797 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
13798 VUSE_ELEMENT_VAR): Likewise.
13799 (struct voptype_d): Likewise.
13800 (NUM_VOP_FREE_BUCKETS): Likewise.
13801 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
13802 (struct stmt_operands_d): Remove.
13803 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
13804 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
13805 VDEF_NUM, VDEF_VECT): Likewise.
13806 (copy_virtual_operands): Remove.
13807 (operand_build_cmp): Likewise.
13808 (create_ssa_artificial_load_stmt): Likewise.
13809 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
13810 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
13811 vuse_index and mayuse_index members. Pack and move done and iter_type
13812 members to the front.
13813 (SSA_OP_VMAYUSE): Remove.
13814 (SSA_OP_VIRTUAL_USES): Adjust.
13815 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
13816 (unlink_stmt_vdef): Declare.
13817 (add_to_addressable_set): Remove.
13818 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
13819 (vrp_visit_stmt): Likewise.
13820 * doc/tree-ssa.texi (Alias analysis): Update.
13821 * doc/invoke.texi (max-aliased-vops): Remove docs.
13822 (avg-aliased-vops): Likewise.
13823 * tree-into-ssa.c (syms_to_rename): Remove.
13824 (need_to_update_vops_p): Likewise.
13825 (need_to_initialize_update_ssa_p): Rename to ...
13826 (update_ssa_initialized_fn): ... this. Track function we are
13827 initialized for.
13828 (symbol_marked_for_renaming): Simplify.
13829 (add_new_name_mapping): Do not set need_to_update_vops_p.
13830 (dump_currdefs): Use SYMS_TO_RENAME.
13831 (rewrite_update_stmt): Always walk all uses/defs.
13832 (dump_update_ssa): Adjust.
13833 (init_update_ssa): Take function argument. Track what we are
13834 initialized for.
13835 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
13836 (create_new_def_for): Initialize for cfun, assert we are initialized
13837 for cfun.
13838 (mark_sym_for_renaming): Simplify.
13839 (mark_set_for_renaming): Do not initialize update-ssa.
13840 (need_ssa_update_p): Simplify. Take function argument.
13841 (name_mappings_registered_p): Assert we ask for the correct function.
13842 (name_registered_for_update_p): Likewise.
13843 (ssa_names_to_replace): Likewise.
13844 (release_ssa_name_after_update_ssa): Likewise.
13845 (update_ssa): Likewise. Use SYMS_TO_RENAME.
13846 (dump_decl_set): Do not print a newline.
13847 (debug_decl_set): Do it here.
13848 (dump_update_ssa): And here.
13849 * tree-ssa-loop-im.c (move_computations): Adjust.
13850 (movement_possibility): Likewise.
13851 (determine_max_movement): Likewise.
13852 (gather_mem_refs_stmt): Likewise.
13853 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
13854 or NAME_MEMORY_TAG.
13855 * tree-complex.c (update_all_vops): Remove.
13856 (expand_complex_move): Adjust.
13857 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
13858 Simplify test for memory referencing statement. Exclude
13859 non-invariant ADDR_EXPRs.
13860 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
13861 * tree-loop-distribution.c (generate_memset_zero): Adjust.
13862 (rdg_flag_uses): Likewise.
13863 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
13864 related code.
13865 (tree_optimize_tail_calls_1): Also split the
13866 edge from the entry block if we have degenerate PHI nodes in
13867 the first basic block.
13868 * tree.c (init_ttree): Remove memory-tag related code.
13869 (tree_code_size): Likewise.
13870 (tree_node_structure): Likewise.
13871 (build7_stat): Re-write to be build6_stat.
13872 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
13873 (SSA_VAR_P): Adjust.
13874 (struct tree_memory_tag): Remove.
13875 (struct tree_memory_partition_tag): Likewise.
13876 (union tree_node): Adjust.
13877 (build7): Re-write to be build6.
13878 * tree-pass.h (pass_reset_cc_flags): Remove.
13879 (TODO_update_address_taken): New flag.
13880 (pass_simple_dse): Remove.
13881 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
13882 * params.h (MAX_ALIASED_VOPS): Remove.
13883 (AVG_ALIASED_VOPS): Likewise.
13884 * omp-low.c (expand_omp_taskreg): Update SSA form.
13885 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
13886 aliases the lhs in a copy stmt.
13887 * tree-ssa-dse.c (struct address_walk_data): Remove.
13888 (memory_ssa_name_same): Likewise.
13889 (memory_address_same): Likewise.
13890 (get_kill_of_stmt_lhs): Likewise.
13891 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
13892 unused stores. Look through PHI nodes into post-dominated regions.
13893 (dse_optimize_stmt): Simplify. Properly remove stores.
13894 (tree_ssa_dse): Compute dominators.
13895 (execute_simple_dse): Remove.
13896 (pass_simple_dse): Likewise.
13897 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
13898 gimple_loaded_syms and gimple_stored_syms computation.
13899 * toplev.c (dump_memory_report): Dump alias and pta stats.
13900 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
13901 (vn_reference_eq): Likewise.
13902 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
13903 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
13904 valueize_vuses): Remove.
13905 (get_def_ref_stmt_vuses): Simplify. Rename to ...
13906 (get_def_ref_stmt_vuse): ... this.
13907 (vn_reference_lookup_2): New function.
13908 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
13909 walking equivalent vuses. Simplify.
13910 (vn_reference_lookup): Likewise.
13911 (vn_reference_insert): Likewise.
13912 (vn_reference_insert_pieces): Likewise.
13913 (visit_reference_op_call): Simplify.
13914 (visit_reference_op_load): Likewise.
13915 (visit_reference_op_store): Likewise.
13916 (init_scc_vn): Remove shared_lookup_vuses initialization.
13917 (free_scc_vn): Remove shared_lookup_vuses freeing.
13918 (sort_vuses, sort_vuses_heap): Remove.
13919 (get_ref_from_reference_ops): Export.
13920 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
13921 vector with single vuse pointer.
13922 (vn_reference_lookup_pieces, vn_reference_lookup,
13923 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
13924 (shared_vuses_from_stmt): Remove.
13925 (get_ref_from_reference_ops): Declare.
13926 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
13927 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
13928 memory-tag related code.
13929 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
13930 (likely_value): Add comment, skip static-chain of call statements.
13931 (surely_varying_stmt_p): Adjust.
13932 (gimplify_and_update_call_from_tree): Likewise.
13933 (execute_fold_all_builtins): Do not rebuild alias info.
13934 (gimplify_and_update_call_from_tree): Properly update VOPs.
13935 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
13936 (copy_ref_info): Remove memory-tag related code.
13937 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
13938 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
13939 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
13940 computation.
13941 * tree-ssa-dom.c (gimple_p): Remove typedef.
13942 (eliminate_redundant_computations): Adjust.
13943 (record_equivalences_from_stmt): Likewise.
13944 (avail_expr_hash): Likewise.
13945 (avail_expr_eq): Likewise.
c72c72ef 13946 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
dd277d48 13947 (stmt_makes_single_load): Likewise.
13948 (stmt_makes_single_store): Likewise.
13949 * tree-ssa-alias.c: Rewrite completely.
13950 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
13951 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
13952 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
13953 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
13954 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
13955 Remove public functions.
13956 (pass_reset_cc_flags): Remove.
13957 (pass_build_alias): Move ...
13958 * tree-ssa-structalias.c (pass_build_alias): ... here.
13959 * tree-ssa-alias.c (may_be_aliased): Move ...
13960 * tree-flow-inline.h (may_be_aliased): ... here.
13961 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
13962 count_uses_and_derefs): Move ...
13963 * gimple.c: ... here.
13964 * gimple.h (count_uses_and_derefs): Declare.
13965 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
13966 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
13967 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
13968 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
13969 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
13970 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
13971 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
13972 New functions.
13973 * tree-dfa.c (refs_may_alias_p): Move ...
13974 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
13975 * tree-ssa-alias.h: New file.
13976 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
13977 (statement_sink_location): Likewise.
13978 * opts.c (decode_options): Do not adjust max-aliased-vops or
13979 avg-aliased-vops values.
13980 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
13981 (TV_CALL_CLOBBER): Likewise.
13982 (TV_FLOW_SENSITIVE): Likewise.
13983 (TV_FLOW_INSENSITIVE): Likewise.
13984 (TV_MEMORY_PARTITIONING): Likewise.
13985 (TV_ALIAS_STMT_WALK): New timevar.
13986 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
13987 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
13988 (get_address_description): Remove memory-tag related code.
13989 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
13990 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
13991 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
13992 and immediate uses in statements. Document.
13993 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
13994 (dump_symbols): Remove.
13995 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
13996 * alias.c (get_deref_alias_set): New function split out from ...
13997 (get_alias_set): ... here.
13998 * alias.h (get_deref_alias_set): Declare.
13999 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
14000 type parameter. Remove restrict pointer handling. Create a
14001 ref-all pointer in case type-based alias sets do not conflict.
14002 (vect_analyze_data_refs): Remove SMT related code.
14003 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
14004 (vectorizable_load): Likewise.
14005 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
14006 (DR_SYMBOL_TAG, DR_VOPS): Remove.
14007 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
14008 Ignore vops and SMTs.
14009 (dr_analyze_alias): Likewise..
14010 (free_data_ref): Likewise.
14011 (create_data_ref): Likewise.
14012 (analyze_all_data_dependences): Likewise.
14013 (get_references_in_stmt): Adjust.
14014 * tree-flow-inline.h (gimple_aliases_computed_p,
14015 gimple_addressable_vars, gimple_call_clobbered_vars,
14016 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
14017 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
14018 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
14019 gimple_mem_ref_stats): Remove.
14020 (gimple_vop): New function.
14021 (op_iter_next_use): Remove vuses and mayuses cases.
14022 (op_iter_next_def): Remove vdefs case.
14023 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
14024 (clear_and_done_ssa_iter): Do not set removed fields.
14025 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
14026 Assert we are not iterating over vuses or vdefs if not also
14027 iterating over uses or defs.
14028 (op_iter_init_use): Likewise.
14029 (op_iter_init_def): Likewise.
14030 (op_iter_next_vdef): Remove.
14031 (op_iter_next_mustdef): Likewise.
14032 (op_iter_init_vdef): Likewise.
14033 (compare_ssa_operands_equal): Likewise.
14034 (link_use_stmts_after): Handle vuse operand.
14035 (is_call_used): Use is_call_clobbered.
14036 (is_call_clobbered): Global variables are always call clobbered,
14037 query the call-clobbers bitmap.
14038 (mark_call_clobbered): Ignore global variables.
14039 (clear_call_clobbered): Likewise.
14040 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
14041 virtual operands sanity check.
14042 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
14043 Remove.
14044 (TARGET_MEM_REF): Remove TMR_TAG operand.
14045 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
14046 Remove call-clobber related code.
14047 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
14048 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
14049 partitions or escape reason.
14050 (get_single_def_stmt, get_single_def_stmt_from_phi,
14051 get_single_def_stmt_with_phi): Remove.
14052 (dump_referenced_vars): Tidy.
14053 (get_ref_base_and_extent): Allow bare decls.
14054 (collect_dfa_stats): Adjust.
14055 * graphite.c (rename_variables_in_stmt): Adjust.
14056 (graphite_copy_stmts_from_block): Likewise.
14057 (translate_clast): Likewise.
14058 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
14059 (EXPR_DIES): New.
14060 (translate_vuse_through_block): Use the oracle.
14061 (phi_translate_1): Adjust.
14062 (value_dies_in_block_x): Use the oracle. Cache the outcome
14063 in EXPR_DIES.
14064 (valid_in_sets): Check if the VUSE for
14065 a REFERENCE is available.
14066 (eliminate): Do not remove stmts during elimination,
14067 instead queue and remove them afterwards.
14068 (do_pre): Do not rebuild alias info.
14069 (pass_pre): Run TODO_rebuild_alias before PRE.
14070 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
14071 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
14072 (mark_all_v_defs_stmt): Remove.
14073 (mark_all_v_defs_seq): Adjust.
14074 (sra_replace): Likewise.
14075 (scalarize_use): Likewise.
14076 (scalarize_copy): Likewise.
14077 (scalarize_init): Likewise.
14078 (scalarize_ldst): Likewise.
14079 (todoflags): Remove.
14080 (tree_sra): Do not rebuild alias info.
14081 (tree_sra_early): Adjust.
14082 (pass_sra): Run TODO_update_address_taken before SRA.
14083 * tree-predcom.c (set_alias_info): Remove.
14084 (prepare_initializers_chain): Do not call it.
14085 (mark_virtual_ops_for_renaming): Adjust.
14086 (mark_virtual_ops_for_renaming_list): Remove.
14087 (initialize_root_vars): Adjust.
14088 (initialize_root_vars_lm): Likewise.
14089 (prepare_initializers_chain): Likewise.
14090 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
14091 (may_propagate_copy_into_stmt): Likewise.
14092 (merge_alias_info): Do nothing for now.
14093 (propagate_tree_value_into_stmt): Adjust.
14094 (stmt_may_generate_copy): Likewise.
14095 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
14096 not mark symbols for renaming.
14097 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
14098 with the same statement, make sure to update the new pointed-to one.
14099 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
14100 call statements, do not mark symbols for renaming.
14101 (mark_operand_necessary): Dump something.
14102 (ref_may_be_aliased): New function.
14103 (mark_aliased_reaching_defs_necessary_1): New helper function.
14104 (mark_aliased_reaching_defs_necessary): Likewise.
14105 (mark_all_reaching_defs_necessary_1): Likewise.
14106 (mark_all_reaching_defs_necessary): Likewise.
14107 (propagate_necessity): Do not process virtual PHIs. For
14108 non-aliased loads mark all reaching definitions as necessary.
14109 For aliased loads and stores mark the immediate dominating
14110 aliased clobbers as necessary.
14111 (visited): New global static.
14112 (perform_tree_ssa_dce): Free visited bitmap after propagating
14113 necessity.
14114 (remove_dead_phis): Perform simple dead virtual PHI removal.
14115 (remove_dead_stmt): Properly unlink virtual operands when
14116 removing stores.
14117 (eliminate_unnecessary_stmts): Schedule PHI removal after
14118 stmt removal.
14119 * tree-ssa-ter.c (is_replaceable_p): Adjust.
14120 (process_replaceable): Likewise.
14121 (find_replaceable_in_bb): Likewise.
14122 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
14123 based on the single gimple vop.
14124 (verify_flow_insensitive_alias_info): Remove.
14125 (verify_flow_sensitive_alias_info): Likewise.
14126 (verify_call_clobbering): Likewise.
14127 (verify_memory_partitions): Likewise.
14128 (verify_alias_info): Likewise.
14129 (verify_ssa): Adjust..
14130 (execute_update_addresses_taken): Export. Update SSA
14131 manually. Optimize only when optimizing. Use a local bitmap.
14132 (pass_update_address_taken): Remove TODO_update_ssa, add
14133 TODO_dump_func.
14134 (pass_update_address_taken): Just use TODO_update_address_taken.
14135 (init_tree_ssa): Do not initialize addressable_vars.
14136 (verify_ssa): Verify new VUSE / VDEF properties.
14137 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
14138 Do not call verify_alias_info.
14139 (delete_tree_ssa): Clear the VUSE, VDEF operands.
14140 Do not free the loaded and stored syms bitmaps. Reset the escaped
14141 and callused solutions. Do not free addressable_vars.
14142 Remove memory-tag related code.
14143 (warn_uninitialized_var): Aliases are always available.
14144 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
14145 * lambda-code.c (can_put_in_inner_loop): Adjust.
14146 (can_put_after_inner_loop): Likewise.
14147 (perfect_nestify): Likewise.
14148 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
14149 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
14150 (vectorizable_conversion): Do not mark symbols for renaming.
14151 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
14152 (expand_call_inline): Unlink the calls virtual operands before
14153 replacing it.
14154 (tree_function_versioning): Do not call update_ssa if we are not
14155 updating clones. Simplify.
14156 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
14157 (propagate_with_phi): Likewise..
14158 * tree-outof-ssa.c (create_temp): Remove memory tag and call
14159 clobber code. Assert we are not aliased or global.
14160 * tree-flow.h: Include tree-ssa-alias.h
14161 (enum escape_type): Remove.
14162 (struct mem_sym_stats_d): Likewise.
14163 (struct mem_ref_stats_d): Likewise.
14164 (struct gimple_df): Add vop member. Remove global_var,
14165 call_clobbered_vars, call_used_vars, addressable_vars,
14166 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
14167 escaped and callused members.
14168 (struct ptr_info_def): Remove all members, add points-to solution
14169 member pt.
14170 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
14171 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
14172 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
14173 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
14174 (tree-ssa-alias.o): Likewise.
14175 (toplev.o): Add tree-ssa-alias.h
14176 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
14177 * gimple.c (gimple_set_bb): Fix off-by-one error.
14178 (is_gimple_reg): Do not handle memory tags.
14179 (gimple_copy): Also copy virtual operands.
14180 Delay updating the statement. Do not reset loaded and stored syms.
14181 (gimple_set_stored_syms): Remove.
14182 (gimple_set_loaded_syms): Likewise.
14183 (gimple_call_copy_skip_args): Copy the virtual operands
14184 and mark the new statement modified.
14185 * tree-ssa-structalias.c (may_alias_p): Remove.
14186 (set_uids_in_ptset): Take the alias set to prune with as
14187 parameter. Fold in the alias test of may_alias_p.
14188 (compute_points_to_sets): Compute whether a ptr is dereferenced
14189 in a local sbitmap.
14190 (process_constraint): Deal with &ANYTHING on the lhs, reject all
14191 other ADDRESSOF constraints on the lhs.
14192 (get_constraint_for_component_ref): Assert that we don't get
14193 ADDRESSOF constraints from the base of the reference.
14194 Properly generate UNKNOWN_OFFSET for DEREF if needed.
14195 (struct variable_info): Remove collapsed_to member.
14196 (get_varinfo_fc): Remove.
14197 (new_var_info): Do not set collapsed_to.
14198 (dump_constraint): Do not follow cycles.
14199 (dump_constraint_graph): Likewise.
14200 (build_pred_graph): Likewise.
14201 (build_succ_graph): Likewise.
14202 (rewrite_constraints): Likewise.
14203 (do_simple_structure_copy): Remove.
14204 (do_rhs_deref_structure_copy): Remove.
14205 (do_lhs_deref_structure_copy): Remove.
14206 (collapse_rest_of_var): Remove.
14207 (do_structure_copy): Re-implement.
14208 (pta_stats): New global variable.
14209 (dump_pta_stats): New function.
14210 (struct constraint_expr): Make offset signed.
14211 (UNKNOWN_OFFSET): Define special value.
14212 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
14213 (solution_set_expand): New helper function split out from ...
14214 (do_sd_constraint): ... here.
14215 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
14216 (do_ds_constraint): Likewise.
14217 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
14218 and CALLUSED = *CALLUSED.
14219 (set_union_with_increment): Make inc argument signed.
14220 (type_safe): Remove.
14221 (get_constraint_for_ptr_offset): Handle unknown and negative
14222 constant offsets.
14223 (first_vi_for_offset): Handle offsets before start. Bail
14224 out early for offsets beyond the variable extent.
14225 (first_or_preceding_vi_for_offset): New function.
14226 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
14227 Together with ESCAPED = *ESCAPED this properly computes reachability.
14228 (find_what_var_points_to): New function.
14229 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
14230 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
14231 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
14232 pt_solutions_intersect): New functions.
14233 (compute_call_used_vars): Remove.
14234 (compute_may_aliases): New main entry into PTA computation.
14235 * gimple.h (gimple_p): New typedef.
14236 (struct gimple_statement_base): Remove references_memory_p.
14237 (struct gimple_statement_with_memory_ops_base): Remove
14238 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
14239 members.
14240 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
14241 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
14242 gimple_set_references_memory): Remove.
14243 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
14244 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
14245 New functions.
14246 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
14247 (verify_expr): Allow RESULT_DECL.
14248 (gimple_duplicate_bb): Do not copy virtual operands.
14249 (gimple_duplicate_sese_region): Adjust.
14250 (gimple_duplicate_sese_tail): Likewise.
14251 (mark_virtual_ops_in_region): Remove.
14252 (move_sese_region_to_fn): Do not call it.
14253 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
14254 and pass_simple_dse.
14255 (execute_function_todo): Handle TODO_update_address_taken,
14256 call execute_update_addresses_taken for TODO_rebuild_alias.
14257 (execute_todo): Adjust.
14258 (execute_one_pass): Init dump files early.
14259 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
14260 call-clobbered.
14261 (create_general_new_stmt): Clear vops.
14262 * tree-ssa-reassoc.c (get_rank): Adjust.
14263 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
14264 symbols for renaming.
14265 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
14266 (PARAM_AVG_ALIASED_VOPS): Likewise.
14267 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
14268 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
c72c72ef 14269 * tree-ssa-operands.c: Simplify for new virtual operand representation.
dd277d48 14270 (operand_build_cmp, copy_virtual_operands,
14271 create_ssa_artificial_load_stmt, add_to_addressable_set,
14272 gimple_add_to_addresses_taken): Remove public functions.
14273 (unlink_stmt_vdef): New function.
14274
8d40ea45 142752009-04-03 Alan Modra <amodra@bigpond.net.au>
14276
14277 * config.gcc (powerpc-*-linux*): Merge variants.
14278
0bfaf4c4 142792009-04-02 Chao-ying Fu <fu@mips.com>
943327c1 14280 James Grosbach <james.grosbach@microchip.com>
0bfaf4c4 14281
14282 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
14283 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
14284 cop0_sp_offset.
14285 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
14286 keep_interrupts_masked_p, use_debug_exception_return_p.
14287 (mips_attribute_table): Add interrupt, use_shadow_register_set,
14288 keep_interrupts_masked, use_debug_exception_return.
14289 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
14290 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
14291 New functions.
14292 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
14293 (mips_print_operand): Process COP0 registers to print $0 .. $31
14294 correctly for GAS to process.
14295 (mips_interrupt_extra_call_saved_reg_p): New function.
14296 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
14297 extra registers.
14298 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
14299 (mips_compute_frame_info): Add supports for interrupt context that
14300 includes doubleword accumulators and COP0 registers.
14301 (mips_for_each_saved_acc): New function.
14302 (mips_for_each_saved_gpr_and_fpr): Change the function name from
14303 mips_for_each_saved_reg.
14304 (mips_save_reg): Save accumulators.
14305 (mips_kernel_reg_p): A new for_each_rtx callback.
14306 (mips_expand_prologue): Support interrupt handlers.
14307 (mips_restore_reg): Restore accumulators.
14308 (mips_expand_epilogue): Support interrupt handlers.
14309 (mips_can_use_return_insn): Return false for interrupt handlers.
14310 (mips_epilogue_uses): New function.
14311 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
14312 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
14313 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
14314 cop0_move): New instructions.
14315 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
14316 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
14317 defines.
14318 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
14319 New defines.
14320 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
14321 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
14322 interrupt handlers, we use K0 as the temporary register.
14323 (EPILOGUE_USES): Change to a function call.
14324 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
14325 handlers, we use K0 as the temporary register.
89871bab 14326
0bfaf4c4 14327 * doc/extend.texi (Function Attributes): Document interrupt,
14328 use_shadow_register_set, keep_interrupts_masked,
14329 use_debug_exception_return for MIPS attributes.
14330
47b92737 143312009-04-03 Alan Modra <amodra@bigpond.net.au>
14332
14333 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
14334 Remove a number of t-files from tmake_file.
14335 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
14336 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
14337 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
14338 target_prototype, not TARGET_PROTOTYPE.
14339 (LINK_OS_GNU_SPEC): Define.
14340 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
14341 and darwin-ldoubdle.c.
14342
cc92bc82 143432009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
14344
14345 PR driver/39293
14346 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
14347 (cpp_options): Ditto.
14348 (default_compilers): Ditto.
14349 (display_help): Ditto.
14350 (process_command): Ditto.
14351 (do_spec_1): Ditto.
14352 (set_input): Use lbasename instead of duplicate code.
14353 (save_temps_prefix): New static for -save-temps=obj.
14354 (save_temps_length): Ditto.
89871bab 14355
cc92bc82 14356 * doc/invoke.texi (-save-temps=obj): Document new variant to
14357 -save-temps switch.
14358
1c2a5380 143592009-04-02 Jeff Law <law@redhat.com>
14360
14361 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
14362 variable.
14363
1301d110 143642009-04-02 H.J. Lu <hongjiu.lu@intel.com>
14365
14366 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
14367 * configure: Regenerated.
14368
14bd221c 143692009-04-02 Rafael Avila de Espindola <espindola@google.com>
14370
14371 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
14372 share the argument list.
14373
64f3398b 143742009-04-02 Rafael Avila de Espindola <espindola@google.com>
14375
14376 Merge
14377
14378 2009-02-12 Diego Novillo <dnovillo@google.com>
14379
1301d110 14380 * varpool.c (debug_varpool): New.
14381 * cgraph.h (debug_varpool): Declare.
64f3398b 14382
0727d268 143832009-04-02 Jan Hubicka <jh@suse.cz>
14384
14385 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
14386 pass.
14387
3bc1f2c4 143882009-04-02 H.J. Lu <hongjiu.lu@intel.com>
14389
14390 * config/i386/i386.c (ix86_abi): Move initialization to ...
14391 (override_options): Here.
14392
e1190e3a 143932009-04-02 Christian Bruel <christian.bruel@st.com>
14394
14395 * config/sh/sh.c (sh_dwarf_register_span): New function.
14396 (TARGET_DWARF_REGISTER_SPAN): Define.
14397 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
89871bab 14398
792672f0 143992009-04-02 Ira Rosen <irar@il.ibm.com>
14400
14401 PR tree-optimization/39595
89871bab 14402 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
792672f0 14403 interleaved loads group is not greater than the SLP group size.
14404
1c47b3e8 144052009-04-02 Rafael Avila de Espindola <espindola@google.com>
14406
14407 * builtins.c (is_builtin_name): New.
14408 (called_as_built_in): Use is_builtin_name.
14409 * tree.h (is_builtin_name): New.
14410 * varasm.c (incorporeal_function_p): Use is_builtin_name
14411
42aaa915 144122009-04-02 Andrew Stubbs <ams@codesourcery.com>
14413
14414 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
14415
41771881 144162009-04-02 Dodji Seketeli <dodji@redhat.com>
14417
14418 PR c++/26693
09ec66c8 14419 * c-decl.c (clone_underlying_type): Move this ...
41771881 14420 * c-common.c (set_underlying_type): ... here.
14421 Also, make sure the function properly sets TYPE_STUB_DECL() on
14422 the newly created typedef variant type.
14423 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
c72c72ef 14424 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
14425 points.
41771881 14426
ac9b13de 144272009-04-02 Richard Guenther <rguenther@suse.de>
14428
14429 PR tree-optimization/37221
14430 * tree-flow.h (degenerate_phi_result): Declare.
14431 * tree-ssa-dom.c (degenerate_phi_result): Export.
14432 * tree-scalar-evolution.c (analyze_initial_condition): If
14433 the initial condition is defined by a degenerate PHI node
14434 use the degenerate value.
14435
959aa063 144362009-04-01 Eric Botcazou <ebotcazou@adacore.com>
14437
14438 PR rtl-optimization/39588
14439 * combine.c (merge_outer_ops): Do not set the constant when this
14440 is not necessary.
14441 (simplify_shift_const_1): Do not modify it either in this case.
14442
9e0aee4b 144432009-04-01 Steven Bosscher <steven@gcc.gnu.org>
14444
14445 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
14446 tuning is deprecated if -mtune value is set to an Itanium1 variant.
14447
f8ed6d41 144482009-04-01 Janis Johnson <janis187@us.ibm.com>
14449
14450 PR c/29027
14451 * c-lex.c (interpret_float): Default (no suffix) is double.
14452
098581e0 144532009-04-1 Xinliang David Li <davidxl@google.com>
14454
14455 * config/i386/i386.c (legitimate_constant_p): Recognize
14456 all one vector constant.
14457
943327c1 144582009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 14459
943327c1 14460 * config/vax/vax.c: Add #includes to silence warnings.
6718899e 14461 Change #include order to silence two warnings.
14462
943327c1 144632009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 14464
943327c1 14465 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
6718899e 14466 (ASM_SPEC): Pass -k to the assembler for PIC code.
14467
943327c1 144682009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 14469
943327c1 14470 * config.gcc: Add vax-*-linux* to the switch.
14471 * config/vax/linux.h: New file. (TARGET_VERSION,
6718899e 14472 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
14473
943327c1 144742009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 14475
943327c1 14476 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
6718899e 14477 Use predicate macros instead of GET_CODE() == foo.
943327c1 14478 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
6718899e 14479 ashlsi3, rotrsi3, <unnamed>): Likewise.
14480
943327c1 144812009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 14482
943327c1 14483 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
6718899e 14484 jbbccihi, jbbccisi): Remova trailing whitespace.
943327c1 14485 * config/vax/constraints.md: Likewise.
14486 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14487 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
14488 * config/vax/predicates.md: Likewise.
14489 * config/vax/vax.c (print_operand_address, vax_output_int_move,
6718899e 14490 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
943327c1 14491 * config/vax/vax.h: Likewise.
14492 * config/vax/vax.md (nonlocal_goto): Likewise.
6718899e 14493
943327c1 144942009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 14495
943327c1 14496 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
6718899e 14497 (indirectable_address_p, adjacent_operands_p): Add spaces around
14498 braces.
943327c1 14499 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
6718899e 14500
943327c1 145012009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 14502
943327c1 14503 * config/vax/vax.c (legitimate_constant_address_p,
6718899e 14504 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
14505 index_term_p, reg_plus_index_p, legitimate_address_p,
14506 vax_mode_dependent_address_p): Update comments to match functions
14507 modified by the recent int->bool conversion.
14508
943327c1 145092009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 14510
943327c1 14511 * config/vax/builtins.md: Update copyright message.
14512 * config/vax/constraints.md: Likewise.
14513 * config/vax/netbsd-elf.h: Likewise.
14514 * config/vax/predicates.md: Likewise.
14515 * config/vax/vax-protos.h: Likewise.
14516 * config/vax/vax.c: Likewise.
14517 * config/vax/vax.h: Likewise.
14518 * config/vax/vax.md: Likewise.
14519 * config/vax/vax.opt: Likewise.
6718899e 14520
943327c1 145212009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 14522
943327c1 14523 * config/vax/builtins.md (ffssi2, ffssi2_internal,
6718899e 14524 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
943327c1 14525 * config/vax/constraints.md (B, R): Likewise.
14526 * config/vax/predicates.md (external_memory_operand,
6718899e 14527 nonimmediate_addsub_di_operand): Likewise.
943327c1 14528 * config/vax/vax.c (vax_output_int_add): Likewise.
14529 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
6718899e 14530 untyped_call): Likewise.
14531
943327c1 145322009-04-01 Matt Thomas <matt@3am-software.com>
6718899e 14533
c72c72ef 14534 * config/vax/predicates.md: New file.
14535 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
6718899e 14536 external_const_operand, nonsymbolic_operand, external_memory_operand,
14537 indirect_memory_operand, indexed_memory_operand,
14538 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
14539 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
14540 predicate.
c72c72ef 14541 * config/vax/constraints.md: New file.
14542 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
14543 New constraint.
14544 * config/vax/builtins.md: New file.
14545 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
14546 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
14547 jbbccisi): Define.
6718899e 14548 * config/vax/vax.opt (mqmath): Add option.
14549 * config/vax/vax.md (isfx): Extend with DI.
14550 (VAXintQH, VAXintQHSD): Define.
14551 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
14552 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
14553 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
14554 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
14555 (movdi): Update constraints and use vax_output_int_move().
14556 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
14557 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
14558 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
14559 nonlocal_goto): New.
14560 (mov<mode>): Extend accepted operand types.
14561 (subdi3_old): Rename from subdi3, change update constraints and use
14562 a new implementation.
943327c1 14563 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
6718899e 14564 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
14565 MOVE_RATIO, CLEAR_RATIO): Define.
14566 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
14567 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
14568 (PRINT_OPERAND): Redefine using a function instead of inlined code.
943327c1 14569 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
6718899e 14570 (split_quadword_operands): Make static and really allow variable
14571 splitting.
14572 (print_operand_address): Update for PIC generation.
14573 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
14574 indexable_address_p, fixup_mathdi_operand,
14575 vax_expand_addsub_di_operands, adjacent_operands_p): New.
14576 (vax_float_literal, legitimate_constant_p,
14577 indirectable_constant_address_p, index_term_p,
14578 reg_plus_index_p): Return bool instead of int.
14579 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
14580 where needed.
14581 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
14582 generation.
14583 (vax_output_conditional_branch): Indent.
14584 (legitimate_constant_address_p, indirectable_constant_address_p,
14585 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
14586 vax_mode_dependent_address_p): Return bool instead of int, update for
14587 PIC generation.
14588 * config/vax/vax-protos.h (legitimate_constant_address_p,
14589 legitimate_constant_p, legitimate_address_p,
14590 vax_mode_dependent_address_p): Change declaration to bool.
14591 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
14592 vax_expand_addsub_di_operands, vax_output_int_subtract,
14593 vax_output_movmemsi): Declare.
14594 (split_quadword_operands, vax_float_literal): Delete declaration.
14595 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
14596 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
14597 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
14598 ASM_OUTPUT_DWARF_PCREL): Define.
14599 (ASM_SPEC): Change definition to allow PIC generation.
14600
617606a7 146012009-04-01 Steve Ellcey <sje@cup.hp.com>
14602
14603 * doc/sourcebuild.texi: Update front-end requirements.
14604
c6afd8f1 146052009-04-01 Jakub Jelinek <jakub@redhat.com>
14606
14607 PR target/39226
14608 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
14609 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
14610 (booldi3_internal3): Use boolean_or_operator instead of
14611 boolean_operator.
14612
ce4e9a43 146132009-04-01 Joseph Myers <joseph@codesourcery.com>
14614
14615 PR c/39605
14616 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
14617 declarator whose size is not an integer constant expression but
14618 folds to an integer constant, then treat it as a constant
14619 subsequently.
14620
04b63ffe 146212009-04-01 Richard Guenther <rguenther@suse.de>
14622
14623 * fold-const.c (fold_plusminus_mult_expr): Do not fold
14624 i * 4 + 2 to (i * 2 + 1) * 2.
14625
0930c694 146262009-04-01 Jakub Jelinek <jakub@redhat.com>
14627
14628 PR c/37772
14629 * c-parser.c (c_parser_asm_statement): Skip until close paren and
14630 return if c_parser_asm_string_literal returned NULL.
14631
c46bf770 146322009-04-01 Nick Clifton <nickc@redhat.com>
14633
14634 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
14635 already defined.
14636 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
14637 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
14638 other typedefs to avoid conflicts with libgcc2.c. Define labels
14639 to gain 16-bit bit-manipulation functions from libgcc2.c and then
14640 include it.
14641 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
14642 to gain 16-bit trapping arithmetic functions from libgcc2.c and
14643 then include it.
14644
b5240a18 146452009-04-01 Rafael Avila de Espindola <espindola@google.com>
14646
c72c72ef 14647 * varasm.c (default_function_rodata_section): Declare DOT as
14648 const char*.
b5240a18 14649
4ccce102 146502009-04-01 Kai Tietz <kai.tietz@onevision.com>
943327c1 14651 Andrey Galkin <agalkin@hypercom.com>
4ccce102 14652
14653 PR/39492
14654 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
14655 Make object_name unique for each process.
14656
4a04f4b4 146572009-04-01 Jakub Jelinek <jakub@redhat.com>
14658
14659 PR other/39591
14660 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
14661 addressable variables in the parallel that could go out of scope while
14662 running queued tasks.
14663
b4a3be2d 146642009-04-01 Anatoly Sokolov <aesok@post.ru>
14665
14666 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
14667 (CASE_VALUES_THRESHOLD): Redefine.
14668 * config/avr/avr.c (avr_override_options): Remove initialization of
14669 avr_case_values_threshold variable.
14670 (avr_case_values_threshold): Remove variable. Add new function.
14671 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
14672 * config/avr/avr.opt (mno-tablejump): Remove option.
14673 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
14674
ac2a837e 146752009-04-01 DJ Delorie <dj@redhat.com>
14676
14677 * varasm.c (default_function_rodata_section): Don't assume
14678 anything about where the first '.' in the section name is.
14679
7cad077c 146802009-04-01 Alan Modra <amodra@bigpond.net.au>
14681
14682 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
14683 rs6000_emit_stack_tie.
14684
a5877c89 146852009-03-31 Ian Lance Taylor <iant@google.com>
14686
14687 * tree-eh.c (tree_remove_unreachable_handlers): Compare
14688 gimple_code with GIMPLE_RESX, not RESX.
14689
9e6687c8 146902009-03-31 Joseph Myers <joseph@codesourcery.com>
14691
14692 * c-common.c (c_get_ident): New.
c72c72ef 14693 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
9e6687c8 14694
aa5ba529 146952009-04-01 Ben Elliston <bje@au.ibm.com>
14696
14697 * config/rs6000/sysv4.opt (msdata): Improve option description.
14698
3f970e2e 146992009-03-31 Steve Ellcey <sje@cup.hp.com>
14700
14701 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
14702 (divdf3_internal_lat): Remove.
14703 (divxf3_internal_lat): Remove.
14704 (divxf3_internal_thr): Remove.
14705 (divxf): Use divxf3_internal.
14706 * config/ia64/div.md (divsf3_internal_lat): New.
14707 (divdf3_internal_lat): New.
14708 (divxf3_internal): New.
14709
f3449a3c 147102009-03-31 Joseph Myers <joseph@codesourcery.com>
14711
14712 PR c/448
14713 * Makefile.in (USE_GCC_STDINT): Define.
14714 (stmp-int-hdrs): Install stdint.h if applicable.
14715 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
14716 if known.
14717 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
14718 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
14719 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
14720 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14721 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14722 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14723 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14724 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14725 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
14726 (c_common_nodes_and_builtins): Initialize
14727 underlying_wchar_type_node. Do not initialize
14728 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
14729 nodes for new types.
14730 (c_stddef_cpp_builtins): Define macros for new types.
14731 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
14732 Remove.
14733 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
14734 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
14735 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
14736 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
14737 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
14738 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
14739 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
14740 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
14741 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
14742 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
14743 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
14744 int16_type_node, int32_type_node, int64_type_node,
14745 uint8_type_node, uint16_type_node, c_uint32_type_node,
14746 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
14747 int_least32_type_node, int_least64_type_node,
14748 uint_least8_type_node, uint_least16_type_node,
14749 uint_least32_type_node, uint_least64_type_node,
14750 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
14751 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
14752 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
14753 uintptr_type_node): Define.
14754 * c-cppbuiltin.c (builtin_define_constants,
14755 builtin_define_type_minmax): New.
14756 (builtin_define_stdint_macros): Define more macros.
14757 (c_cpp_builtins): Define more limit macros.
14758 (type_suffix): New.
14759 (builtin_define_type_max): Define in terms of
14760 builtin_define_type_minmax. Remove is_long parameter. All
14761 callers changed.
14762 * config.gcc (use_gcc_stdint): Define.
14763 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
14764 Add newlib-stdint.h for generic targets.
14765 * config/glibc-stdint.h, config/newlib-stdint.h,
14766 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
14767 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
14768 * config/score/score.h (UINTPTR_TYPE): Define.
14769 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
14770 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
14771 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14772 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14773 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14774 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14775 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14776 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
14777 * config/spu/spu.h (STDINT_LONG32): Define.
14778 * configure.ac (use_gcc_stdint): Substitute.
14779 * configure: Regenerate.
14780 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
14781 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
14782 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
14783 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
14784 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
14785 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
14786 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
14787 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
14788 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
14789 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
14790 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
14791 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
14792 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
14793 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
14794 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
14795 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
14796 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
14797 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
14798 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
14799 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
14800 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
14801 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
14802 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
14803 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14804 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14805 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14806 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14807 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14808 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
14809
9bb5f693 148102009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
14811
14812 * loop-iv.c (suitable_set_for_replacement): Renamed from
14813 simplify_using_assignment; changed to return bool and to accept new
14814 args DEST and SRC. Return true iff we find a source/destination pair
14815 that can be used to make a replacement, and fill SRC and DEST if so.
14816 Remove arg ALTERED. Don't deal with altered regs here. All callers
14817 changed.
14818 (simplify_using_initial_values): Deal with altered regs here and track
14819 more precisely the effect they have on the validity of our expression.
14820
7f7a6f4a 14821 * loop-iv.c (simplify_using_condition): A condition of the form
14822 (EQ REG CONST) can be used to simply make a substitution.
14823 (simplify_using_initial_values): Keep track of conditions we have seen
14824 and keep using them to simplify new expressions, while applying the
14825 same substitutions to them as to the expression.
14826
d2cb78ca 14827 * simplify-rtx.c (simplify_relational_operation_1): Simplify
14828 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
14829 GEU/LTU reversed.
14830
f77c1bb0 14831 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
14832 changed. Use this when trying to improve the upper bound.
14833 Generate the comparison by using simplify_gen_relational.
14834
b908751e 14835 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
14836
767cb310 14837 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
14838 functions.
89871bab 14839 (simplify_using_assignment, simplify_using_initial_values): Call
767cb310 14840 replace_in_expr to make replacements. Call replace_single_def_regs
14841 once on the initial version of the expression.
14842
ee933f51 148432009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14844
9b57ed9f 14845 PR target/27237
ee933f51 14846 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
89871bab 14847
172e662b 148482009-03-31 Richard Guenther <rguenther@suse.de>
14849
14850 PR middle-end/31029
14851 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
14852 equality comparisons. Fold C - X CMP X if C % 2 == 1.
14853
401d1fb3 148542009-03-31 Richard Guenther <rguenther@suse.de>
14855
14856 * tree.h (div_if_zero_remainder): Declare.
14857 * fold-const.c (div_if_zero_remainder): Export.
14858 * tree-ssa-forwprop.c
14859 (forward_propagate_addr_into_variable_array_index): Handle
14860 constant array index addition outside of the variable index.
14861
eedfcb26 148622009-03-31 Joseph Myers <joseph@codesourcery.com>
14863
14864 PR target/39592
14865 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
14866 define_splits, floatunssi<mode>2): Require x87 conversions from
14867 DImode to be permitted.
14868
ff903809 148692009-03-31 Joseph Myers <joseph@codesourcery.com>
14870
14871 PR preprocessor/15638
14872 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
14873
47f11e84 148742009-03-31 Richard Guenther <rguenther@suse.de>
14875
14876 PR middle-end/23401
14877 PR middle-end/27810
14878 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
14879 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
14880 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
14881 a separate statement.
14882 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
14883 (lookup_tmp_var): Likewise.
14884 (is_gimple_formal_tmp_or_call_rhs): Remove.
14885 (is_gimple_reg_or_call_rhs): Rename to ...
14886 (is_gimple_reg_rhs_or_call): ... this.
14887 (is_gimple_mem_or_call_rhs): Rename to ...
14888 (is_gimple_mem_rhs_or_call): ... this.
14889 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
14890 DECL_GIMPLE_REG_P only if is_formal is true.
14891 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
14892 for non-proper post-modify expression gimplification.
14893 (gimplify_self_mod_expr): For post-modify expressions gimplify
14894 the lvalue to a minimal lvalue.
14895 (rhs_predicate_for): Remove formal temp case.
14896 (gimplify_modify_expr_rhs): Likewise.
14897 (gimplify_addr_expr): Use is_gimple_reg.
14898 (gimplify_expr): Remove formal temp cases.
14899 (gimple_regimplify_operands): Likewise.
14900 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
14901 and FILTER_EXPR like constants.
14902 * gimple.c (walk_gimple_op): Fix val_only initialization, use
14903 is_gimple_reg.
14904 (is_gimple_formal_tmp_rhs): Remove.
14905 (is_gimple_reg_rhs): Remove special casing.
14906 (is_gimple_mem_rhs): Fix.
14907 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
14908 (is_gimple_formal_tmp_var): Remove.
14909 (is_gimple_formal_tmp_reg): Likewise.
14910 (is_gimple_min_lval): Allow invariant component ref parts.
14911 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
14912 is_gimple_formal_tmp_reg): Remove declarations.
14913 * tree-cfg.c (verify_expr): Verify that variables with address
14914 taken do not have DECL_GIMPLE_REG_P set.
14915 * tree-mudflap.c (mf_build_check_statement_for): Use
14916 force_gimple_operand instead of gimplify_expr.
14917
7af239b5 149182009-03-31 Ayal Zaks <zaks@il.ibm.com>
14919
14920 * modulo-sched.c (sms_schedule_by_order): Pass the actual
14921 schedulable rows to compute_split_row.
14922
09271b9d 149232009-03-31 Ben Elliston <bje@au.ibm.com>
14924
14925 PR target/31635
14926 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
14927 OPT_mvrsave.
14928
d46ea878 149292009-03-31 Alan Modra <amodra@bigpond.net.au>
14930
14931 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
14932 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
14933 * configure: Regenerate.
14934 * config.in: Regenerate.
14935 * config/rs6000/rs6000.opt (mtls-markers): Add.
14936 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
14937 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
14938 (tls_ld_aix, tls_ld_sysv): Likewise.
14939 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
14940 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
14941
6ce64557 149422009-03-31 Alan Modra <amodra@bigpond.net.au>
14943
14944 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
14945
d6d5ab2d 149462009-03-30 Jan Hubicka <jh@suse.cz>
14947
6ce64557 14948 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
14949 out of RESX.
14950 (tree_remove_unreachable_handlers): Cleanup EH predecestor
14951 detection and label handling.
d6d5ab2d 14952
951e5184 149532009-03-30 Vladimir Makarov <vmakarov@redhat.com>
14954
14955 * ira-int.h (ira_allocno): Rename left_conflicts_num to
14956 left_conflicts_size.
14957 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
14958 ALLOCNO_LEFT_CONFLICTS_SIZE.
14959
14960 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
14961 remove_allocno_from_bucket_and_push,
14962 allocno_spill_priority_compare, push_allocnos_to_stack,
14963 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14964 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
14965 (setup_allocno_left_conflicts_num): Ditto. Rename to
14966 setup_allocno_left_conflicts_size.
14967 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14968 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
14969 setup_allocno_left_conflicts_size instead of
14970 setup_allocno_left_conflicts_num.
14971
14972 * ira-build.c (ira_create_allocno): Use
14973 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
14974 ALLOCNO_LEFT_CONFLICTS_NUM.
89871bab 14975
cb250333 149762009-03-30 Vladimir Makarov <vmakarov@redhat.com>
14977
14978 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
14979 instead of DF_LR_OUT.
14980
14981 * ira-lives.c (process_bb_node_lives): Ditto.
14982
14983 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
14984 instead of DF_LR_{OUT,IN}.
14985
14986 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
14987
14988 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
14989
dfcd8d23 149902009-03-30 Jan Hubicka <jh@suse.cz>
14991
14992 * except.c (label_to_region_map): Fix thinko.
14993
a7bc9181 149942009-03-30 Steve Ellcey <sje@cup.hp.com>
14995
14996 PR middle-end/38237
14997 * tree.h (tree_find_value): New declaration.
14998 * tree.c (tree_find_value): New function.
14999 * varasm.c (assemble_external): Avoid duplicate entries on lists.
15000
6fb80942 150012009-03-30 Jakub Jelinek <jakub@redhat.com>
15002
15003 PR debug/39563
15004 * c-decl.c (struct c_binding): Add locus field.
15005 (bind): Add locus argument, set locus field from it.
15006 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
15007 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
15008 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
15009 implicitly_declare, undeclared_variable, lookup_label,
15010 declare_label, c_make_fname_decl, c_builtin_function,
15011 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
15012 bind callers.
15013
7dfbd804 150142009-03-30 H.J. Lu <hongjiu.lu@intel.com>
076a4c5c 15015
15016 PR target/38781
15017 * config/i386/i386.c (classify_argument): Check total size of
15018 structure.
15019
ba3a7ba0 150202009-03-30 Martin Jambor <mjambor@suse.cz>
15021
15022 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
15023 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
15024 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
15025 respectively.
15026
15027 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
15028 seen_variable_array_ref while also traversing a union.
15029
15030 * tree-inline.c (optimize_inline_calls): Do not call
15031 cgraph_node_remove_callees.
15032 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
15033 (pass_remove_cgraph_callee_edges): New variable.
15034 * passes.c (init_optimization_passes): Add
15035 pass_remove_cgraph_callee_edges after early inlining and before all
15036 late intraprocedural passes.
15037
15038 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
15039
914301dc 150402009-03-30 Paolo Bonzini <bonzini@gnu.org>
15041
15042 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
15043 Fix typos in names.
15044
0d79facf 150452009-03-30 Paolo Bonzini <bonzini@gnu.org>
15046
9b57ed9f 15047 * combine.c (simplify_comparison): Use have_insn_for.
15048 * dojump.c (do_jump): Likewise.
0d79facf 15049
bbc6e6c4 150502009-03-30 Paolo Bonzini <bonzini@gnu.org>
15051
15052 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
15053 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
15054 sparc_compare_op0 like sparc_compare_emitted used to be handled.
15055 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
15056 instead of sparc_compare_emitted.
15057 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
15058 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
15059 instead of sparc_compare_emitted.
15060
ee4d588d 150612009-03-30 Paolo Bonzini <bonzini@gnu.org>
15062
15063 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
15064 enter/exit cfglayout mode.
15065 (pass_partition_block): Require it.
15066 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
15067 (combine_instructions): Track basic blocks instead of labels.
15068 (update_cfg_for_uncondjump): New.
15069 (try_combine): Use it. Update jumps after rescanning.
15070 (pass_combine): Require PROP_cfglayout.
15071 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
15072
30678076 150732009-03-30 Paolo Bonzini <bonzini@gnu.org>
15074
9b57ed9f 15075 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
15076 Provide/destroy PROP_cfglayout respectively.
15077 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
15078 * tree-pass.h (PROP_cfglayout): New.
30678076 15079
62126877 150802009-03-30 Paolo Bonzini <bonzini@gnu.org>
15081
15082 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
15083 fold_convert_const_fixed_from_fixed,
15084 fold_convert_const_fixed_from_int,
15085 fold_convert_const_fixed_from_real, fold_negate_const): Do not
15086 set TREE_CONSTANT_OVERFLOW.
15087 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
15088 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
15089
fb85abff 150902009-03-30 Ira Rosen <irar@il.ibm.com>
15091
15092 * tree-vect-loop-manip.c: New file.
15093 * tree-vectorizer.c: Update documentation and included files.
15094 (vect_loop_location): Make extern.
15095 (rename_use_op): Move to tree-vect-loop-manip.c
89871bab 15096 (rename_variables_in_bb, rename_variables_in_loop,
15097 slpeel_update_phis_for_duplicate_loop,
fb85abff 15098 slpeel_update_phi_nodes_for_guard1,
15099 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
15100 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
15101 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
89871bab 15102 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
fb85abff 15103 find_loop_location): Likewise.
15104 (new_stmt_vec_info): Move to tree-vect-stmts.c.
15105 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
15106 get_vectype_for_scalar_type, vect_is_simple_use,
15107 supportable_widening_operation, supportable_narrowing_operation):
15108 Likewise.
15109 (bb_in_loop_p): Move to tree-vect-loop.c.
89871bab 15110 (new_loop_vec_info, destroy_loop_vec_info,
15111 reduction_code_for_scalar_code, report_vect_op,
fb85abff 15112 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
15113 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
15114 (vect_supportable_dr_alignment): Likewise.
15115 * tree-vectorizer.h (tree-data-ref.h): Include.
15116 (vect_loop_location): Declare.
15117 Reorganize function declarations according to the new file structure.
15118 * tree-vect-loop.c: New file.
89871bab 15119 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
fb85abff 15120 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
15121 * tree-vect-data-refs.c: New file.
15122 * tree-vect-patterns.c (timevar.h): Don't include.
15123 * tree-vect-stmts.c: New file.
89871bab 15124 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
fb85abff 15125 tree-vect-slp.c, tree-vect-loop.c.
89871bab 15126 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
15127 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
fb85abff 15128 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
15129 (tree-vect-analyze.o): Remove.
15130 (tree-vect-transform.o): Likewise.
15131 (tree-vect-data-refs.o): Add rule.
89871bab 15132 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
fb85abff 15133 tree-vect-slp.o): Likewise.
15134 (tree-vect-patterns.o): Remove redundant dependencies.
15135 (tree-vectorizer.o): Likewise.
15136 * tree-vect-slp.c: New file.
15137
0863a8f4 151382009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15139
15140 * optc-gen.awk: Warn if an option flag has multiple different
15141 help strings.
15142
0606fb97 151432009-03-30 Sebastian Pop <sebastian.pop@amd.com>
15144
15145 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
15146 -floop-block): Document dependences on PPL, CLooG and Graphite.
15147
c6418a4e 151482009-03-30 Joseph Myers <joseph@codesourcery.com>
15149
15150 PR rtl-optimization/323
15151 * c-common.c (c_fully_fold, convert_and_check,
15152 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
15153 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
15154 * c-common.def (EXCESS_PRECISION_EXPR): New.
15155 * c-cppbuiltin.c (builtin_define_float_constants): Define
15156 constants with enough digits for long double.
15157 * c-lex.c (interpret_float): Interpret constant with excess
15158 precision where appropriate.
15159 * c-opts.c (c_common_post_options): Set
15160 flag_excess_precision_cmdline. Give an error for
15161 -fexcess-precision=standard for C++ for processors where the
15162 option is significant.
15163 * c-parser.c (c_parser_conditional_expression): Handle excess
15164 precision in condition.
15165 * c-typeck.c (convert_arguments): Handle arguments with excess
15166 precision.
15167 (build_unary_op): Move excess precision outside operation.
15168 (build_conditional_expr): Likewise.
15169 (build_compound_expr): Likewise.
15170 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
15171 (build_modify_expr): Handle excess precision in RHS.
15172 (convert_for_assignment): Handle excess precision in converted
15173 value.
15174 (digest_init, output_init_element, process_init_element): Handle
15175 excess precision in initializer.
15176 (c_finish_return): Handle excess precision in return value.
15177 (build_binary_op): Handle excess precision in operands and add
15178 excess precision as needed for operation.
15179 * common.opt (-fexcess-precision=): New option.
15180 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
15181 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
15182 For standard excess precision, output explicit conversion to and
15183 truncation from XFmode.
15184 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
15185 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
15186 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
15187 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
15188 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
15189 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
15190 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
15191 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
15192 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
15193 define_splits, sqrt<mode>2): Disable where appropriate for
15194 standard excess precision.
15195 * convert.c (convert_to_real): Do not shorten arithmetic to type
15196 for which excess precision would be used.
15197 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
15198 * doc/invoke.texi (-fexcess-precision=): Document option.
15199 (-mfpmath=): Correct index entry.
15200 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
15201 flag_excess_precision): New.
15202 * langhooks.c (lhd_post_options): Set
15203 flag_excess_precision_cmdline.
15204 * opts.c (common_handle_option): Handle -fexcess-precision=.
15205 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
15206 init_excess_precision): New.
15207 (lang_dependent_init_target): Call init_excess_precision.
15208 * tree.c (excess_precision_type): New.
15209 * tree.h (excess_precision_type): Declare.
15210
7666d572 152112009-03-30 Joseph Myers <joseph@codesourcery.com>
15212
15213 PR c/35235
15214 * c-typeck.c (build_component_ref): Do not copy qualifiers from
15215 non-lvalue to component.
15216
7f5f3953 152172009-03-29 Joseph Myers <joseph@codesourcery.com>
15218
15219 PR preprocessor/34695
15220 * Makefile.in (c-opts.o): Depend on c-tree.h.
15221 * c-common.c: Move down include of diagnostic.h.
15222 (done_lexing, c_cpp_error): New.
15223 * c-common.h (done_lexing): Declare.
15224 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
15225 (parse_in).
15226 * c-opts.c: Include c-tree.h.
15227 (c_common_init_options): Set preprocessor error callback.
15228 (c_common_handle_option): Do not set preprocessor
15229 inhibit_warnings, warnings_are_errors, warn_system_headers,
15230 pedantic_errors or inhibit_warnings flags.
15231 (c_common_post_options): Do not check cpp_errors (parse_in).
15232 (c_common_finish): Do not output dependencies if there were
15233 errors. Do not check return value of cpp_finish.
15234 * c-ppoutput.c (pp_file_change): Set input_location.
15235 * c-tree.h (c_cpp_error): Declare.
15236 * diagnostic.c (diagnostic_set_info_translated): Also initialize
15237 override_column.
15238 (diagnostic_build_prefix): Check override_column.
15239 * diagnostic.h (diagnostic_info): Add override_column field.
15240 (diagnostic_override_column): Define.
15241
862f468c 152422009-03-28 Paolo Bonzini <bonzini@gnu.org>
15243
aca60c7b 15244 * c-common.c (c_expand_expr, c_staticp): Remove.
15245 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
15246 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
15247 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
15248 * c-gimplify.c (gimplify_compound_literal_expr,
15249 optimize_compound_literals_in_ctor): Remove.
15250 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
15251 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
15252 * c-semantics.c (emit_local_var): Remove.
15253
15254 * langhooks-def.h (lhd_expand_expr): Remove.
15255 * langhooks.c (lhd_expand_expr): Remove.
15256 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
15257
15258 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
15259 handling from c-semantics.c; don't call into langhook.
15260 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
15261 * gimplify.c (gimplify_compound_literal_expr,
15262 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
15263 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
15264 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
15265 as was done in c-gimplify.c.
15266 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
15267 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
15268 Move from c-common.h.
15269 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
862f468c 15270
15271 * tree.c (staticp): Do not call langhook.
15272 * langhooks.c (lhd_staticp): Delete.
15273 * langhooks-def.h (lhd_staticp): Delete prototype.
15274 (LANG_HOOKS_STATICP): Delete.
15275 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
15276
aca60c7b 15277 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
15278 instead of DECL_STMTs.
862f468c 15279
a75b1c71 152802009-03-29 Joseph Myers <joseph@codesourcery.com>
15281
15282 PR c/456
15283 PR c/5675
15284 PR c/19976
15285 PR c/29116
15286 PR c/31871
15287 PR c/35198
15288 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
15289 void_type_node.
15290 (fold_call_expr): Return a NOP_EXPR from folding rather than the
15291 contained expression.
aca60c7b 15292 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
a75b1c71 15293 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
15294 conditional expressions for C.
15295 (decl_constant_value_for_optimization): Move from
aca60c7b 15296 decl_constant_value_for_broken_optimization in c-typeck.c. Check
a75b1c71 15297 whether optimizing and that the expression is a VAR_DECL not of
15298 array type instead of doing such checks in the caller. Do not
15299 check pedantic. Call gcc_unreachable for C++.
15300 * c-common.def (C_MAYBE_CONST_EXPR): New.
15301 * c-common.h (c_fully_fold, c_save_expr,
15302 decl_constant_value_for_optimization): New prototypes.
15303 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
15304 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
15305 EXPR_INT_CONST_OPERANDS): Define.
15306 * c-convert.c (convert): Strip nops from expression.
15307 * c-decl.c (groktypename): Take extra parameters expr and
15308 expr_const_operands. Update call to grokdeclarator.
15309 (start_decl): Update call to grokdeclarator. Add statement for
15310 expressions used in type of decl.
15311 (grokparm): Update call to grokdeclarator.
15312 (push_parm_decl): Update call to grokdeclarator.
15313 (build_compound_literal): Add parameter non_const and build a
15314 C_MAYBE_COSNT_EXPR if applicable.
15315 (grokdeclarator): Take extra parameters expr and
15316 expr_const_operands. Track expressions used in declaration
15317 specifiers and declarators. Fold array sizes and track whether
15318 they are constant expressions and whether they are integer
15319 constant expressions.
15320 (parser_xref_tag): Set expr and expr_const_operands fields in
15321 return value.
15322 (grokfield): Update call to grokdeclarator.
15323 (start_function): Update call to grokdeclarator.
15324 (build_null_declspecs): Set expr and expr_const_operands fields in
15325 return value.
15326 (declspecs_add_type): Handle expressions in typeof specifiers.
15327 * c-parser.c (c_parser_declspecs): Set expr and
15328 expr_const_operands fields for declaration specifiers.
15329 (c_parser_enum_specifier): Likewise.
15330 (c_parser_struct_or_union_specifier): Likewise.
15331 (c_parser_typeof_specifier): Likewise. Update call to
15332 groktypename. Fold expression as needed. Return expressions with
15333 type instead of adding statements.
15334 (c_parser_attributes): Update calls to c_parser_expr_list.
15335 (c_parser_statement_after_labels): Fold expression before passing
15336 to objc_build_throw_stmt.
15337 (c_parser_condition): Fold expression.
15338 (c_parser_asm_operands): Fold expression.
15339 (c_parser_conditional_expression): Use c_save_expr. Update call
15340 to build_conditional_expr.
15341 (c_parser_alignof_expression): Update call to groktypename.
15342 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
15343 original_code. Fold expression argument of va_arg. Create
15344 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
15345 argument to va_arg. Update calls to groktypename. Fold array
15346 index for offsetof. Verify that first argument to
15347 __builtin_choose_expr has integer type.
15348 (c_parser_postfix_expression_after_paren_type): Update calls to
15349 groktypename and build_compound_literal. Handle expressions with
15350 side effects in type name.
15351 (c_parser_postfix_expression_after_primary): Update call to
15352 c_parser_expr_list. Set original_code for calls to
15353 __builtin_constant_p.
15354 (c_parser_expr_list): Take extra parameter fold_p. Fold
15355 expressions if requested.
15356 (c_parser_objc_type_name): Update call to groktypename.
15357 (c_parser_objc_synchronized_statement): Fold expression.
15358 (c_parser_objc_receiver): Fold expression.
15359 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
15360 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
15361 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
15362 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
15363 (struct c_typespec): Add elements expr and expr_const_operands.
15364 (struct c_declspecs): Add elements expr and expr_const_operands.
15365 (groktypename, build_conditional_expr, build_compound_literal):
15366 Update prototypes.
15367 (in_late_binary_op): Declare.
15368 * c-typeck.c (note_integer_operands): New function.
15369 (in_late_binary_op): New variable.
15370 (decl_constant_value_for_broken_optimization): Move to c-common.c
15371 and rename to decl_constant_value_for_optimization.
15372 (default_function_array_conversion): Do not strip nops.
15373 (default_conversion): Do not call
15374 decl_constant_value_for_broken_optimization.
15375 (build_array_ref): Do not fold result.
15376 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
15377 result when operand is a VLA.
15378 (c_expr_sizeof_type): Update call to groktypename. Handle
15379 expressions included in type name. Use C_MAYBE_CONST_EXPR for
15380 result when operand names a VLA type.
15381 (build_function_call): Update call to build_compound_literal.
15382 Only fold result for calls to __builtin_* functions. Strip
15383 NOP_EXPR from INTEGER_CST returned from such functions. Fold
15384 the function designator.
15385 (convert_arguments): Fold arguments. Update call to
15386 convert_for_assignment.
15387 (build_unary_op): Handle increment and decrement of
15388 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
15389 decrement earlier. Fold operand of increment and decrement.
15390 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
15391 built for integer operand. Wrap returns that are INTEGER_CSTs
15392 without being integer constant expressions or that have integer
15393 constant operands without being INTEGER_CSTs.
15394 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
15395 (build_conditional_expr): Add operand ifexp_bcp. Track whether
15396 result is an integer constant expression or can be used in
15397 unevaluated parts of one and avoid folding and wrap as
15398 appropriate. Fold operands before possibly doing -Wsign-compare
15399 warnings.
15400 (build_compound_expr): Wrap result for C99 if operands can be used
15401 in integer constant expressions.
15402 (build_c_cast): Update call to digest_init. Do not ignore
15403 overflow from casting floating-point constants to integers. Wrap
15404 results that could be confused with integer constant expressions,
15405 null pointer constants or floating-point constants.
15406 (c_cast_expr): Update call to groktypename. Handle expressions
15407 included in type name.
15408 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
15409 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
15410 Update calls to convert_for_assignment.
15411 (convert_for_assignment): Take new parameter
15412 null_pointer_constant. Do not strip nops or call
15413 decl_constant_value_for_broken_optimization. Set
15414 in_late_binary_op for conversions to boolean.
15415 (store_init_value): Update call to digest_init.
15416 (digest_init): Take new parameter null_pointer_constant. Do not
15417 call decl_constant_value_for_broken_optimization. pedwarn for
15418 initializers not constant expressions. Update calls to
15419 convert_for_assignment.
15420 (constructor_nonconst): New.
15421 (struct constructor_stack): Add nonconst element.
15422 (really_start_incremental_init, push_init_level, pop_init_level):
15423 Handle constructor_nonconst and nonconst element.
15424 (set_init_index): Call constant_expression_warning for array
15425 designators.
15426 (output_init_element): Fold value. Set constructor_nonconst as
15427 applicable. pedwarn for initializers not constant expressions.
15428 Update call to digest_init. Call constant_expression_warning
15429 where constant initializers are required.
15430 (process_init_element): Use c_save_expr.
15431 (c_finish_goto_ptr): Fold expression.
15432 (c_finish_return): Fold return value. Update call to
15433 convert_for_assignment.
15434 (c_start_case): Fold switch expression.
15435 (c_process_expr_stmt): Fold expression.
15436 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
aca60c7b 15437 ensure statement expression is not evaluated in constant expression.
a75b1c71 15438 (build_binary_op): Track whether results are integer constant
15439 expressions or may occur in such, disable folding and wrap results
15440 as applicable. Fold operands for -Wsign-compare warnings unless
15441 in_late_binary_op.
15442 (c_objc_common_truthvalue_conversion): Handle results folded to
15443 integer constants that are not integer constant expressions.
15444 * doc/extend.texi: Document when typeof operands are evaluated,
15445 that condition of __builtin_choose_expr is an integer constant
15446 expression, and more about use of __builtin_constant_p in
15447 initializers.
15448
088cc5d5 154492009-03-29 Richard Guenther <rguenther@suse.de>
15450
15451 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
15452 propagate addresses of array references.
15453
68e09621 154542009-03-29 Steven Bosscher <steven@gcc.gnu.org>
15455
15456 * regmove.c (perhaps_ends_bb_p): Remove.
15457 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
15458 from INSN and check that the main loop stays within that basic block.
15459 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
15460 (regmove_forward_pass): Split out from regmove_optimize. Use
15461 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
15462 (regmove_backward_pass): Split out from regmove_optimize. Use
15463 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
15464 (regmove_optimize): Simplify.
15465
40513f40 154662009-03-29 H.J. Lu <hongjiu.lu@intel.com>
15467
15468 PR target/39545
15469 * config/i386/i386.c (classify_argument): Ignore flexible array
15470 member in struct and warn ABI change.
15471
0d3a7d37 154722009-03-29 H.J. Lu <hongjiu.lu@intel.com>
15473
15474 * config/i386/i386-protos.h (ix86_agi_dependent): New.
15475
15476 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
15477 (ix86_adjust_cost): Updated.
15478
4c5fcca6 154792009-03-29 Jan Hubicka <jh@suse.cz>
15480
15481 PR middle-end/28850
15482 * tree-pass.h (pass_cleanup_eh): New function.
15483 (remove_unreachable_regions): Break code handling RTL
15484 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
15485 that can not be reached by runtime.
15486 (can_be_reached_by_runtime): New function.
15487 (label_to_region_map): New function.
15488 (num_eh_regions): New function.
15489 (rtl_remove_unreachable_regions): New function.
15490 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
15491 (remove_eh_region): New function.
15492 * except.h: Include sbitmap and vecprim.
15493 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
15494 num_eh_regions): Declare.
15495 * passes.c (init_optimization_passes): Schedule cleanup_eh.
aca60c7b 15496 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
4c5fcca6 15497 * tree-eh.c (tree_remove_unreachable_handlers): New function.
15498 (tree_empty_eh_handler_p): New function.
15499 (cleanup_empty_eh): New function.
15500 (cleanup_eh): New function.
15501 (pass_cleanup_eh): New function.
15502
b8c0c866 155032009-03-29 Jan Hubicka <jh@suse.cz>
15504
15505 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
15506 for removed regions.
15507
bb22691b 155082009-03-29 Jan Hubicka <jh@suse.cz>
15509
15510 * except.c (dump_eh_tree): Dump all datastructures.
15511
cd451a8b 155122009-03-29 Jan Hubicka <jh@suse.cz>
15513
15514 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
15515 (duplicate_eh_regions_1): Likewise.
15516 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
15517 vector; call EH verification.
15518 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
15519 Be ready for region being removed.
15520
ffa800d1 155212009-03-29 Jan Hubicka <jh@suse.cz>
15522
15523 * bitmap.c (bitmap_last_set_bit): New function.
15524 * bitmap.h (bitmap_last_set_bit): Declare.
15525
1cf4a36a 155262009-03-29 David Ayers <ayers@fsfe.org>
15527
15528 PR objc/27377
15529 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
15530 by calling objc_compare_types and surpress warnings about
15531 incompatible C pointers that are compatible ObjC pointers.
89871bab 15532
1cf4a36a 155332009-03-29 Adam Nemet <anemet@caviumnetworks.com>
69428266 15534
15535 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
15536 call initialize_inline_failed.
15537 (initialize_inline_failed): Move it from here ...
15538 * cgraph.c (initialize_inline_failed): ... to here.
15539 (cgraph_create_edge): Call initialize_inline_failed rather than
15540 setting inline_failed directly.
15541
d093f898 155422009-03-29 Ben Elliston <bje@au.ibm.com>
15543
15544 PR target/32542
15545 * sysv4.opt (msdata): Improve comment.
15546 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
15547 * sysv4.h (SVR4_ASM_SPEC): Likewise.
15548
df6a567a 155492009-03-29 Ben Elliston <bje@au.ibm.com>
15550
15551 PR target/30451
15552 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
15553 load and store attributes.
15554
29c63a97 155552009-03-29 Ben Elliston <bje@au.ibm.com>
15556
15557 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
15558 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
15559 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
15560 * doc/extend.texi (X86 Built-in Functions): Add index entries for
15561 __builtin_infq and __builtin_huge_valq.
15562
ec4b52e7 155632009-03-28 Anatoly Sokolov <aesok@post.ru>
15564
15565 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
15566 atmega8m1 devices.
15567 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15568 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
15569
43fb76c1 155702009-03-28 Xinliang David Li <davidxl@google.com>
15571
89871bab 15572 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
43fb76c1 15573 (do_dbg_cnt): New function.
15574
b5cebd44 155752009-03-28 Jan Hubicka <jh@suse.cz>
15576
15577 Merge from pretty-ipa:
15578
15579 2009-03-27 Jan Hubicka <jh@suse.cz>
aca60c7b 15580
b5cebd44 15581 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
15582 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
15583 * passes.c (function_called_by_processed_nodes_p): New.
15584 * ipa-pure-const.c (check_call): Fix handling of operands.
15585 (analyze_function): Dump debug output for skipped bodies.
15586 (local_pure_const): Use function_called_by_processed_nodes_p.
15587 * dwarf2out.c (reference_to_unused): Use output.
15588 * passes.c (do_per_function_toporder): Likewise.
15589
15590 2008-11-12 Jan Hubicka <jh@suse.cz>
15591
15592 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
15593 * ipa-pure-const.c (funct_state_d): Add can throw field; make
15594 state_set_in_source enum
15595 (check_decl): Ignore memory tags; do not set fake looping flags;
15596 dump diagnostics.
15597 (check_operand, check_tree, check_rhs_var, check_lhs_var,
15598 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
15599 (check_call, analyze_function): Rewrite.
15600 (check_stmt): New.
15601 (add_new_function): Update call of analyze_function.
15602 (generate_summary): Add call of analyze_function.
15603 (propagate): Propagate can_throw; handle state_set_in_source correctly.
15604 (local_pure_const): New function.
15605 (pass_local_pure_const): New pass.
15606 * ipa-inline.c (inline_transform): Set after_inlining.
15607 * tree-eh.c (stmt_can_throw_external): New.
15608 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
15609 work with aliasing built.
15610 * tree-flow.h (stmt_can_throw_external): New.
15611 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
15612 and local pure/const pass in early and late optimization queue.
aca60c7b 15613
1c4607fd 156142009-03-28 Martin Jambor <mjambor@suse.cz>
15615
15616 * fold-const.c (get_pointer_modulus_and_residue): New parameter
15617 allow_func_align.
15618 (fold_binary): Allow function decl aligment consideration is the
15619 second argument is integer constant one.
15620 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
15621 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
15622 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
15623
b0d29d1c 156242009-03-28 Jan Hubicka <jh@suse.cz>
15625
15626 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
15627 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
15628 * function.h (rtl_data): Add nothrow flag.
15629 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
15630 set DECL_NOTHROW for AVAILABLE functions.
15631
bf4a1edf 156322009-03-28 Jakub Jelinek <jakub@redhat.com>
15633
69dfb43a 15634 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
15635 following vector keyword has expansion starting with pixel or bool
15636 keyword, expand vector to __vector and pixel or bool to __pixel or
15637 __bool.
15638
bf4a1edf 15639 PR c++/39554
15640 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
15641 warn_if_disallowed_function_p): Removed.
15642 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
15643 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
15644 warning_if_disallowed_function_p.
15645 * flags.h (warn_if_disallowed_function_p,
15646 warn_disallowed_functions): Removed.
15647 * common.opt (Wdisallowed-function-list=): Removed.
15648 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
15649
c256d781 156502009-03-28 Richard Guenther <rguenther@suse.de>
15651
15652 PR tree-optimization/38723
15653 * tree-ssa-pre.c (compute_avail): Add all default definitions to
15654 the entry block.
15655
74a5c8eb 156562009-03-28 Jan Hubicka <jh@suse.cz>
15657
15658 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
15659 test introduced by my previous patch.
15660
59ce9604 156612009-03-28 Richard Guenther <rguenther@suse.de>
15662
15663 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
15664 the PHIs value undefined.
15665
6cb239e5 156662009-03-28 Jan Hubicka <jh@suse.cz>
15667
15668 * tree-pass.h (pass_fixup_cfg): New pass.
15669 * ipa-inline.c (inline_transform): Set
15670 always_inline_functions_inlined/after_inlining.
15671 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
15672 (pass_fixup_cfg): New pass.
15673 * passes.c (init_optimization_passes): Add fixup_cfg.
15674
aeb38861 156752009-03-28 Richard Guenther <rguenther@suse.de>
15676
15677 PR tree-optimization/38458
15678 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
15679 argument use the arguments copy-of value.
15680
8edeb88b 156812009-03-28 Richard Guenther <rguenther@suse.de>
15682
15683 PR tree-optimization/38180
15684 * tree-ssa-ccp.c (get_default_value): Simplify.
15685 (likely_value): Likewise.
15686 (surely_varying_stmt_p): Properly handle VOP case.
15687 (ccp_initialize): Likewise.
15688 (ccp_fold): Handle propagating through *&.
15689 (fold_const_aggregate_ref): Also handle decls.
15690
09fc9532 156912009-03-28 Jan Hubicka <jh@suse.cz>
15692
15693 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
15694 * cgraph.h (cgraph_node): Likewise.
15695 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
15696 (cgraph_reset_node): Use process flag.
15697 (cgraph_mark_functions_to_output): Likewise.
15698 (cgraph_expand_function): Likewise.
15699 (cgraph_expand_all_functions): Likewise.
15700 (cgraph_output_in_order): Likewise.
15701 * dwarf2out.c (reference_to_unused): Likewise.
15702 * passes.c do_per_function_toporder): Likewise.
15703
326a9581 157042009-03-28 Jan Hubicka <jh@suse.cz>
15705
15706 Bring from lto-branch:
aca60c7b 15707
326a9581 15708 2008-09-03 Doug Kwan <dougkwan@google.com>
15709
15710 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
15711 enums instead of reason strings.
15712 * cgraph.c (cgraph_create_edge): Same.
15713 (cgraph_inline_failed_string): New function.
15714 * cgraph.h (cgraph_inline_failed_t): New enum type.
15715 (cgraph_inline_failed_string): New prototype.
15716 (struct cgraph_edge): Change type of INLINED_FAILED from constant
15717 char pointer to cgraph_inline_failed_t.
15718 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
15719 (cgraph_default_inline_p): Ditto.
943327c1 15720 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
326a9581 15721 to cgraph_inline_failed_t pointer.
15722 * cif-code.def: New file.
15723 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
15724 reason string.
15725 (cgraph_check_inline_limits): Change type of REASON to pointer to
15726 cgraph_inline_failed_t. Replace reason strings with enums.
15727 (cgraph_default_inline_p): Ditto.
15728 (cgraph_recursive_inlining_p): Ditto.
15729 (update_caller_keys): Change type of FAILED_REASON to
15730 cgraph_inline_failed_t.
15731 (cgraph_set_inline_failed): Change type of REASON to pointer to
15732 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
15733 convert enums to strings for text output.
15734 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
15735 to be of type cgraph_inline_failed_t. Replace reason strings with
15736 enums. Call cgraph_inline_failed_string to covert enums
15737 to strings for text output.
15738 (cgraph_decide_inlining): Replace reason strings with enums.
15739 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
15740 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
15741 for text output.
15742 * tree-inline.c (expand_call_inline): Change type of REASON
15743 to cgraph_inline_failed_t. Replace reason strings with enums.
15744 Call cgraph_inline_failed_string for text output.
15745 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
15746 (cgraph.o): Ditto.
15747
77b5eabc 157482009-03-28 Jan Hubicka <jh@suse.cz>
15749
15750 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
15751 cgraph_clone_node): Remove master clone handling.
15752 (cgraph_is_master_clone, cgraph_master_clone): Remove.
15753 * cgraph.h (master_clone): Remove.
15754 (cgraph_is_master_clone, cgraph_master_clone): Remove.
15755 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
15756 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
15757
cc76f102 157582009-03-28 Jan Hubicka <jh@suse.cz>
15759
15760 * cgraph.c (cgraph_function_body_availability): Functions declared
15761 inline are always safe to assume that it is not going to be replaced.
15762
63295314 157632009-03-28 Richard Guenther <rguenther@suse.de>
15764
15765 PR tree-optimization/38513
15766 * tree-ssa-pre.c (eliminate): Remove redundant stores.
15767 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
15768 EXC_PTR_EXPR and FILTER_EXPR.
15769 (get_ref_from_reference_ops): Likewise.
15770
d360ad90 157712009-03-28 Richard Guenther <rguenther@suse.de>
15772
15773 PR tree-optimization/38968
15774 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
15775 Use FLOOR_MOD_EXPR to compute misalignment.
15776
c82f3b60 157772009-03-28 Richard Guenther <rguenther@suse.de>
15778
15779 PR tree-optimization/37795
15780 * tree.h (combine_comparisons): Declare.
15781 * fold-const.c (combine_comparisons): Export.
15782 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
15783 comparisons.
15784 (ifcombine_iforif): Use combine_comparisons.
15785
a5bfef5b 157862009-03-28 Jan Hubicka <jh@suse.cz>
15787
15788 * tree-eh.c (inlinable_call_p): New function.
15789 (make_eh_edges): Use it.
15790 (verify_eh_edges): Use it.
15791 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
15792 * except.c (reachable_next_level): Add inlinable_function argument
15793 (sjlj_find_directly_reachable_regions): Update.
15794 (add_reachable_handler): Do not set saw_any_handlers.
15795 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
15796 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
15797 Add new inlinable call parameter.
15798 (can_throw_internal, can_throw_external): Update.
15799 * except.h (can_throw_internal_1, can_throw_external_1,
15800 foreach_reachable_handler): Update declaration.
15801
f2397fc4 158022009-03-28 Joseph Myers <joseph@codesourcery.com>
15803
15804 * config/arm/t-arm-coff, config/h8300/coff.h,
15805 config/i386/i386-aout.h, config/i386/i386-coff.h,
15806 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
15807 config/pdp11/2bsd.h, config/rs6000/aix41.h,
15808 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
15809 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
15810 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
15811 sys-types.h: Remove.
15812 * Makefile.in: Remove protoize and fixproto support and references
15813 in comments.
15814 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
15815 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
15816 Remove.
15817 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
15818 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
15819 unprotoize$(exeext).
15820 (rest.encap): Don't depend on $(STMP_FIXPROTO)
15821 (.PHONY): Don't depend on proto.
15822 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
15823 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
15824 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
15825 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
15826 build/gen-protos.o, build/scan.o, xsys-protos.h,
15827 build/fix-header$(build_exeext), build/fix-header.o,
15828 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
15829 stmp-install-fixproto): Remove.
15830 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
15831 SYSCALLS.c or fixproto files.
15832 (install-common): Don't install protoize.
15833 (install-headers-tar, install-headers-cpio, install-headers-cp):
15834 Don't depend on $(STMP_FIXPROTO).
15835 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
15836 install fixproto files or write out fixproto settings.
15837 (uninstall): Don't uninstall protoize.
15838 * config.gcc (use_fixproto): Remove.
15839 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
15840 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
15841 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
15842 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
15843 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
15844 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
15845 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
15846 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
15847 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
15848 * config/t-vxworks (STMP_FIXPROTO): Remove.
15849 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
15850 STMP_FIXPROTO): Remove.
15851 * config.in, configure: Regenerate.
15852 * crtstuff.c (gid_t, uid_t): Don't undefine.
15853 * doc/install.texi: Change m68k-coff to m68k-elf in example.
15854 (arm-*-coff, arm-*-aout: Remove target entries.
15855 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
15856 Remove mention of AIX 4.1.
15857 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
15858 * doc/invoke.texi (Running Protoize): Remove.
15859 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
15860 (Protoize Caveats): Remove.
15861 * tsystem.h: Update comments on headers assumed to exist.
15862
08ed847d 158632009-03-27 Vladimir Makarov <vmakarov@redhat.com>
15864
15865 * genautomata.c: Add a new year to the copyright. Add a new
15866 reference.
15867 (struct insn_reserv_decl): Add comments for member bypass_list.
15868 (find_bypass): Remove.
15869 (insert_bypass): New.
15870 (process_decls): Use insert_bypass.
15871 (output_internal_insn_latency_func): Output all bypasses with the
15872 same input insn in one switch case.
15873
15874 * rtl.def (define_bypass): Describe bypass choice.
15875 * doc/md.texi (define_bypass): Ditto.
15876
8e353ea6 158772009-03-27 Richard Guenther <rguenther@suse.de>
15878
15879 * gimplify.c (mark_addressable): Export.
15880 * tree-flow.h (mark_addressable): Declare.
15881 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
15882 * tree-ssa.c (verify_phi_args): Verify that address taken
15883 variables have TREE_ADDRESSABLE set.
15884
158852009-03-27 Richard Guenther <rguenther@suse.de>
15886
15887 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
15888 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
15889 Do not mark decls TREE_ADDRESSABLE.
15890 (build_fold_addr_expr): Adjust.
15891 (fold_addr_expr): Remove.
15892 (fold_unary): Use build_fold_addr_expr.
15893 (fold_comparison): Likewise.
15894 (split_address_to_core_and_offset): Likewise.
15895 * coverage.c (tree_coverage_counter_addr): Mark the array decl
15896 TREE_ADDRESSABLE.
15897 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
15898 (gimplify_modify_expr_to_memcpy): Mark source and destination
15899 addressable.
15900 * omp-low.c (create_omp_child_function): Mark the object decl
15901 TREE_ADDRESSABLE.
15902 (lower_rec_input_clauses): Mark the var we take the address of
15903 TREE_ADDRESSABLE.
15904 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
15905
16fe3089 159062009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15907
15908 PR middle-end/39315
15909 * cfgexpand.c (expand_one_stack_var_at): Change alignment
15910 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
15911
9d1d1fab 159122009-03-27 Richard Guenther <rguenther@suse.de>
15913
15914 PR tree-optimization/39120
15915 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
15916 constraints.
15917 (handle_lhs_call): Process return constraints. Add escape
15918 constraints if necessary.
15919 (handle_const_call): Fill out return constraints. Make nested
15920 case more precise. Avoid consttmp if possible.
15921 (handle_pure_call): Fill out return constraints. Avoid
15922 callused if possible.
15923 (find_func_aliases): Simplify call handling.
15924
159252009-03-27 Richard Guenther <rguenther@suse.de>
15926
15927 PR tree-optimization/39120
15928 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
15929 as a representative.
15930 (solve_graph): Do propagate CALLUSED.
15931 (handle_pure_call): Use a scalar constraint from CALLUSED for
15932 the return value.
15933 (find_what_p_points_to): CALLUSED shall not appear in poins-to
15934 solutions.
15935
7cfdc2f0 159362009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15937
15938 PR c/39323
15939 * c-common.c (handle_aligned_attribute): Properly check alignment
15940 overflow. Use (1U << i) instead of (1 << i).
15941
aca60c7b 15942 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
7cfdc2f0 15943
15944 * expr.h (get_mem_align_offset): Updated.
15945
15946 * tree.h (tree_decl_common): Change align to "unsigned int" and
15947 move it before pointer_alias_set.
15948
3f863bef 159492009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15950 Jakub Jelinek <jakub@redhat.com>
15951
15952 PR target/38034
15953 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
15954 gr_register_operand with gr_reg_or_0_operand.
15955 (cmpxchg_rel_di): Likewise.
15956 (sync_lock_test_and_set<mode>): Likewise.
15957
9680c846 159582009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15959
15960 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
15961 (true_regnum): Likewise.
15962
15963 * rtlanal.c (subreg_info): Moved to ...
15964 * rtl.h (subreg_info): Here. New.
15965 (subreg_get_info): New.
15966
15967 * rtlanal.c (subreg_get_info): Make it extern.
15968
0e4d11df 159692009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15970
15971 PR target/39472
15972 * config/i386/i386.c (ix86_abi): New.
15973 (override_options): Handle -mabi=.
aca60c7b 15974 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
0e4d11df 15975 (ix86_call_abi_override): Likewise.
15976 (init_cumulative_args): Likewise.
15977 (function_arg_advance): Likewise.
15978 (function_arg_64): Likewise.
15979 (function_arg): Likewise.
15980 (ix86_pass_by_reference): Likewise.
15981 (ix86_function_value_regno_p): Likewise.
15982 (ix86_build_builtin_va_list_abi): Likewise.
15983 (setup_incoming_varargs_64): Likewise.
15984 (is_va_list_char_pointer): Likewise.
15985 (ix86_init_machine_status): Likewise.
aca60c7b 15986 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
0e4d11df 15987 (ix86_function_type_abi): Return enum calling_abi. Rewrite
15988 for 64bit. Replace DEFAULT_ABI with ix86_abi.
aca60c7b 15989 (ix86_function_abi): Make it static and return enum calling_abi.
0e4d11df 15990 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
15991 with ix86_abi.
15992 (ix86_fn_abi_va_list): Updated.
15993
15994 * config/i386/i386.h (ix86_abi): New.
15995 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
15996 (CONDITIONAL_REGISTER_USAGE): Likewise.
15997 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
15998 (machine_function): Likewise.
15999
16000 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
16001 with ix86_abi.
16002 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
16003 (STACK_BOUNDARY): Likewise.
16004 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
16005
16006 * config/i386/i386.opt (mabi=): New.
16007
16008 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
16009 return enum calling_abi.
16010 (ix86_function_type_abi): Likewise.
16011 (ix86_function_abi): Removed.
16012
16013 * doc/invoke.texi: Document -mabi= option for x86.
16014
656ec810 160152009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16016
16017 * builtins.c (real_dconstp): Delete.
16018 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
16019
cb3582e7 160202009-03-27 Dodji Seketeli <dodji@redhat.com>
16021 Jakub Jelinek <jakub@redhat.com>
16022
16023 PR debug/37959
16024 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
16025 (gen_subprogram_die): When a function is explicit, generate the
16026 DW_AT_explicit attribute.
16027 * langhooks.h (struct lang_hooks_for_decls): Add
16028 function_decl_explicit_p langhook.
16029 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
16030 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
16031
38150ede 160322009-03-27 Jakub Jelinek <jakub@redhat.com>
16033
3f95c690 16034 * builtins.c (fold_builtin_memory_op): Optimize memmove
16035 into memcpy if we can prove source and destination don't overlap.
16036
38150ede 16037 * tree-inline.c: Include gt-tree-inline.h.
16038 (clone_fn_id_num): New variable.
16039 (clone_function_name): New function.
16040 (tree_function_versioning): Use it.
16041 * Makefile.in (GTFILES): Add tree-inline.c.
16042
08da3d21 160432009-03-27 Mark Mitchell <mark@codesourcery.com>
16044
16045 * BASE-VER: Change to 4.5.0.
16046
e19b015b 160472009-03-27 Xinliang David Li <davidxl@google.com>
16048
16049 PR tree-optimization/39557
16050 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
16051
b87f0847 160522009-03-27 Xinliang David Li <davidxl@google.com>
16053
16054 PR tree-optimization/39548
89871bab 16055 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
b87f0847 16056 candidate check.
16057
545ba0d7 160582009-03-27 H.J. Lu <hongjiu.lu@intel.com>
16059
16060 * c-common.c (pointer_int_sum): Use %wd on return from
16061 tree_low_cst.
16062
482c9a19 160632009-03-27 H.J. Lu <hongjiu.lu@intel.com>
16064
16065 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
16066 on return from tree_low_cst.
16067
1f1d68a6 160682009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
16069
16070 PR c++/36799
aca60c7b 16071 * ginclude/stdarg.h (va_copy): Define also for
16072 __GXX_EXPERIMENTAL_CXX0X__.
1f1d68a6 16073
d924b670 160742009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16075
16076 PR c++/35652
16077 * builtins.h (c_strlen): Do not warn here.
16078 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
16079 * c-common.c (pointer_int_sum): Take an explicit location.
16080 Warn about offsets out of bounds.
16081 * c-common.h (pointer_int_sum): Adjust declaration.
16082
1ab73152 160832009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16084
d924b670 16085 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
16086 markup glitch.
1ab73152 16087
f4858d06 160882009-03-26 Jakub Jelinek <jakub@redhat.com>
16089
16090 PR c++/39554
16091 * opts.c (warn_if_disallowed_function_p): Don't assume
16092 get_callee_fndecl must return non-NULL.
16093
d9cee1b1 160942009-03-26 Vladimir Makarov <vmakarov@redhat.com>
16095
16096 PR rtl-optimization/39522
16097 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
16098 when reg_reloaded_valid is set.
16099
204cb876 161002009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16101
16102 * config/spu/divv2df3.c: New file.
16103 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
16104 (DPBIT_FUNCS): Filter out _div_df.
16105
1fd36c3a 161062009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
16107
16108 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
16109 a jump insn, count that jump in the distance to the loop start.
16110
dc9b0799 161112009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
16112
16113 PR target/39523
16114 * config/sh/sh.c (calc_live_regs): Fix condition for global
16115 registers except PIC_OFFSET_TABLE_REGNUM.
16116
6609be22 161172009-03-25 Kai Tietz <kai.tietz@onevision.com>
16118
16119 PR/39518
16120 * doc/invoke.texi (-mconsole): New.
16121 (-mcygwin): New.
16122 (-mno-cygwin): New.
16123 (-mdll): New.
16124 (-mnop-fun-dllimport): New.
16125 (-mthread): New.
16126 (-mwin32): New.
16127 (-mwindows): New.
16128 (sub section "i386 and x86-64 Windows Options"): New.
16129
943327c1 161302009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
2ccb7f3f 16131
16132 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
16133 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
16134
5211387e 161352009-03-25 Richard Guenther <rguenther@suse.de>
16136
16137 PR middle-end/39497
16138 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
16139 of -Wno-error.
16140
686d79e0 161412009-03-25 Andrey Belevantsev <abel@ispras.ru>
16142
16143 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
16144 neither of haifa/selective schedulers are working.
16145
850fc3f0 161462009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16147
16148 * doc/invoke.texi (Debugging Options): Fix description of
16149 -fno-merge-debug-strings.
16150
10178ded 161512009-03-24 Hans-Peter Nilsson <hp@axis.com>
16152
d1640684 16153 * config/cris/libgcc.ver: New version-script.
16154 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
16155
10178ded 16156 * configure.ac <GAS features, nop mnemonic>: Add pattern
16157 crisv32-*-* for "nop".
aca60c7b 16158 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
10178ded 16159 * configure: Regenerate.
16160
416dafb3 161612009-03-24 Ira Rosen <irar@il.ibm.com>
16162
16163 PR tree-optimization/39529
16164 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
16165 mark_sym_for_renaming for the tag copied to the new vector
16166 pointer.
16167
68ecbaec 161682009-03-24 Arthur Loiret <aloiret@debian.org>
16169
aca60c7b 16170 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
68ecbaec 16171 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
16172 EXTRA_SPEC_FUNCTIONS.
16173 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
16174 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
16175 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
16176 -march and -mtune options.
16177
943327c1 161782009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
f8873a45 16179
16180 * config/m68k/t-rtems: Add m5329 multilib.
16181
ab977c1f 161822009-03-24 Dodji Seketeli <dodji@redhat.com>
16183 Jakub Jelinek <jakub@redhat.com>
16184
16185 PR debug/39524
16186 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
16187 nodes.
16188
4390875c 161892009-03-23 Jakub Jelinek <jakub@redhat.com>
16190
16191 PR c/39495
16192 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
16193 instead of c_parser_expression_conv, if original_code isn't one of the
16194 4 allowed comparison codes, fail.
16195
9fac1c66 161962009-03-23 Richard Guenther <rguenther@suse.de>
16197
16198 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
16199 * tree.h (struct tree_type): Likewise.
16200 * reload.h (struct insn_chain): Likewise.
16201 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
16202 * function.h (struct function): Likewise.
16203 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
16204
b7d1c9e6 162052009-03-23 Jakub Jelinek <jakub@redhat.com>
16206
16207 PR tree-optimization/39516
16208 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
16209
943327c1 162102009-03-23 Bingfeng Mei <bmei@broadcom.com>
f824d860 16211
89871bab 16212 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
f824d860 16213 should be set true if BITS_PER_WORD of target is bigger than 32
16214
f8cf5d4c 162152009-03-22 Hans-Peter Nilsson <hp@axis.com>
16216
16217 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
16218 Translate -B-options to -rpath-link. Correct existing
16219 rpath-link and conditionalize on !nostdlib.
16220
8898b2ef 162212009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16222
16223 * doc/extend.texi (Function Attributes, Variable Attributes):
16224 Fix typos.
16225 * doc/invoke.texi (Debugging Options, Optimize Options)
16226 (i386 and x86-64 Options, MCore Options): Likewise.
16227
4b1ab129 162282009-03-20 Jakub Jelinek <jakub@redhat.com>
16229
16230 PR debug/37890
16231 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
16232 it for block local namespace aliases.
16233 (gen_decl_die): Pass context_die to gen_namespace_die.
16234
e060ba36 162352009-03-19 Jakub Jelinek <jakub@redhat.com>
16236
16237 PR c/39495
16238 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
16239 minimum or maximum value.
16240
42f43a38 162412009-03-19 Alexandre Oliva <aoliva@redhat.com>
16242
16243 * reginfo.c (globalize_reg): Recompute derived reg sets.
16244
943327c1 162452009-03-19 Ozkan Sezer <sezeroz@gmail.com>
76d89866 16246
16247 PR target/39063
16248 * libgcc2.c (mprotect): Do not use signed arguments for
16249 VirtualProtect, use DWORD arguments. Also fix the 'may
16250 be used uninitialized' warning for the np variable.
16251
99198add 162522009-03-19 Jakub Jelinek <jakub@redhat.com>
16253
16254 PR target/39496
16255 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
16256 functions using regparm calling conventions when not optimizing.
16257 (ix86_function_sseregparm): Similarly for sseregparm calling
16258 conventions.
16259
63ca8934 162602009-03-19 Li Feng <nemokingdom@gmail.com>
16261
16262 PR middle-end/39500
16263 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
16264 dependence if the first conflict is after niter iterations.
16265
c5fe58d7 162662009-03-19 Hans-Peter Nilsson <hp@axis.com>
16267
16268 PR middle-end/38609
16269 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
16270 functions with dynamic stack-pointer adjustments.
16271
d4669bca 162722009-03-19 Ben Elliston <bje@au.ibm.com>
16273
16274 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
16275 option; change to -msdata=data.
16276
286c29e2 162772009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16278
16279 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
16280 and -fopenmp.
16281
0e55c4d0 162822009-03-18 Eric Botcazou <ebotcazou@adacore.com>
16283
16284 PR target/35180
16285 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
16286
5de57ebe 162872009-03-18 Sandra Loosemore <sandra@codesourcery.com>
16288
16289 * doc/invoke.texi (Code Gen Options): Expand discussion of
16290 -fno-common.
16291
0ac758f7 162922009-03-18 Jakub Jelinek <jakub@redhat.com>
16293
16294 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
16295 * matrix-reorg.c (struct matrix_info): Likewise.
16296 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
16297 * rtl.h (struct mem_attrs): Likewise.
16298 * df.h (struct df): Likewise.
16299 * tree-data-ref.h (struct data_dependence_relation): Likewise.
16300 * ira-int.h (struct ira_allocno): Likewise.
16301 * df-scan.c (struct df_collection_rec): Likewise.
16302 * ira.c (struct equivalence): Likewise.
16303 * function.c (struct temp_slot): Likewise.
16304 * cfgloop.h (struct loop): Likewise.
16305
f24ccada 16306 PR debug/39485
16307 * function.c (use_register_for_decl): When not optimizing, disregard
16308 register keyword for variables with types containing methods.
16309
8fa85fc5 163102009-03-18 Sebastian Pop <sebastian.pop@amd.com>
16311
16312 PR middle-end/39447
16313 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
16314 (is_simple_operand): Call contains_component_ref_p before calling data
16315 reference analysis that would fail on COMPONENT_REFs.
16316
16317 * tree-vrp.c (search_for_addr_array): Fix formatting.
16318
a39f4102 163192009-03-18 Richard Guenther <rguenther@suse.de>
16320
16321 * tree-vect-transform.c (vect_loop_versioning): Fold the
16322 generated comparisons.
16323 * tree-vectorizer.c (set_prologue_iterations): Likewise.
16324 (slpeel_tree_peel_loop_to_edge): Likewise.
16325
b8048da5 163262009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16327
fad6b6bb 16328 PR middle-end/37805
16329 * opts.c (print_specific_help): In addition to `undocumented',
16330 accept `separate' and `joined' flags if passed alone. Describe
16331 output by the first matched one of those.
16332 (common_handle_option): Skip over empty strings.
16333 * gcc.c (display_help): Fix help string for `--help='.
16334 * doc/invoke.texi (Option Summary, Overall Options): With
16335 `--help=', classes and qualifiers can both be repeated, but
16336 only the latter can be negated. One should not pass only
16337 negated qualifiers. Fix markup and examples.
16338
b8048da5 16339 Revert
16340 2008-10-14 Jakub Jelinek <jakub@redhat.com>
16341 PR middle-end/37805
16342 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
16343 and -fhelp=separate.
16344
9247818a 163452009-03-17 Jing Yu <jingyu@google.com>
16346
16347 PR middle-end/39378
a3b7452d 16348 * function.h (struct rtl_data): Move is_thunk from here...
16349 (struct function): ...to here.
16350 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
9247818a 16351 * varasm.c (assemble_start_function): Change is_thunk from crtl to
16352 cfun.
a3b7452d 16353 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
16354 cfun.
16355 (alpha_does_function_need_gp, alpha_start_function): Likewise.
16356 (alpha_output_function_end_prologue): Likewise.
16357 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
16358 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
16359 (rs6000_output_function_epilogue): Likewise.
16360 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
9247818a 16361
d849db06 163622009-03-17 Uros Bizjak <ubizjak@gmail.com>
16363
16364 PR target/39482
16365 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
16366 from different units in a single alternative.
16367 (*truncdfsf_i387): Ditto.
16368 (*truncxfsf2_mixed): Ditto.
16369 (*truncxfdf2_mixed): Ditto.
16370
31334434 163712009-03-17 Jakub Jelinek <jakub@redhat.com>
16372
169f8686 16373 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
16374 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
16375
4595b0f9 16376 PR debug/39474
16377 * tree-ssa-live.c (remove_unused_locals): Don't remove local
16378 unused non-artificial variables when not optimizing.
16379
157e283b 16380 PR debug/39471
16381 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
16382 DW_TAG_imported_module even if decl is IMPORTED_DECL with
16383 NAMESPACE_DECL in its DECL_INITIAL.
16384
979d3efc 16385 PR middle-end/39443
16386 * optabs.c (set_user_assembler_libfunc): New function.
16387 * expr.h (set_user_assembler_libfunc): New prototype.
16388 * c-common.c: Include libfuncs.h.
16389 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
16390 for memcmp, memset, memcpy, memmove and abort.
16391 * Makefile.in (c-common.o): Depend on libfuncs.h.
16392
31334434 16393 PR debug/39412
16394 * dwarf2out.c (gen_inlined_enumeration_type_die,
16395 gen_inlined_structure_type_die, gen_inlined_union_type_die,
16396 gen_tagged_type_instantiation_die): Removed.
16397 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
16398 do nothing.
16399
c158ae09 164002009-03-17 Janis Johnson <janis187@us.ibm.com>
16401
16402 PR testsuite/38526
16403 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
16404 its use.
16405 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
16406 (check-parallel-%): Ditto.
16407 (check-consistency): Ditto.
16408
d4138574 164092009-03-17 Kai Tietz <kai.tietz@onevision.com>
16410
16411 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
16412 local variable rhs by NULL_TREE.
16413
dc8c96bb 164142009-03-17 H.J. Lu <hongjiu.lu@intel.com>
16415
16416 PR target/39477
d849db06 16417 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
dc8c96bb 16418
462bc935 164192009-03-17 H.J. Lu <hongjiu.lu@intel.com>
16420
16421 PR target/39476
d849db06 16422 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
462bc935 16423
164242009-03-17 H.J. Lu <hongjiu.lu@intel.com>
4543b422 16425
16426 PR target/39473
16427 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
16428 for ms->sysv ABI calls only in 64bit mode.
16429
16430 * config/i386/i386.md (untyped_call): Support 32bit.
16431
ff8d1746 164322009-03-16 H.J. Lu <hongjiu.lu@intel.com>
16433
16434 * doc/extend.texi: Replace x86_65 with x86_64.
16435
1095b81d 164362009-03-16 Jakub Jelinek <jakub@redhat.com>
16437
16438 PR tree-optimization/39455
16439 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
16440 mismatches for POINTER_TYPE_P (type).
16441 (number_of_iterations_le): Likewise.
16442
943327c1 164432009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
15d6a8ce 16444
16445 * config/picochip/picochip.c: Removed profiling support.
16446 * config/picochip/picochip.md: Removed profiling instruction.
16447 * config/picochip/picochip.h: Removed profiling builtin.
16448
5bc96548 164492009-03-16 Joseph Myers <joseph@codesourcery.com>
16450
16451 * doc/install.texi (--with-host-libstdcxx): Document.
16452
7846db34 164532009-03-14 Anatoly Sokolov <aesok@post.ru>
16454
16455 PR target/34299
16456 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
16457 generate a warning if the function name does not begin with
16458 "__vector" and the function has either the 'signal' or 'interrupt'
16459 attribute, from here to ...
16460 (avr_declare_function_name): ...here. New function.
16461 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
16462 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
16463
6026d749 164642009-03-14 Jakub Jelinek <jakub@redhat.com>
16465
16466 PR bootstrap/39454
16467 * cse.c (fold_rtx): Don't modify original const_arg1 when
16468 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
16469 separate variable instead.
16470 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
16471 from out of range shift counts.
16472 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
16473
7dfbd804 164742009-03-13 Catherine Moore <clm@codesourcery.com>
747c6be5 16475
943327c1 16476 * config/i386/x-mingw32 (host-mingw32.o): Replace
747c6be5 16477 diagnostic.h with $(DIAGNOSTIC_H).
16478
7dfbd804 164792009-03-12 Jakub Jelinek <jakub@redhat.com>
1f477a18 16480
16481 PR target/39431
16482 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
16483 predicate.
16484 * config/i386/sync.md (sync_compare_and_swap<mode>,
16485 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
16486 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
16487 into a register.
16488 (sync_double_compare_and_swapdi_pic,
16489 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
16490 cmpxchg8b_pic_memory_operand instead of just memory_operand.
16491
7e17a1bf 164922009-03-12 H.J. Lu <hongjiu.lu@intel.com>
16493
16494 PR target/39445
d849db06 16495 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7e17a1bf 16496
01a3edef 164972009-03-12 H.J. Lu <hongjiu.lu@intel.com>
16498
16499 PR target/39327
16500 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
16501 (avx_addsubv4df3): Likewise.
16502 (*avx_addsubv4sf3): Likewise.
16503 (sse3_addsubv4sf3): Likewise.
16504
57183b55 165052009-03-12 H.J. Lu <hongjiu.lu@intel.com>
16506
16507 PR target/38824
d849db06 16508 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
57183b55 16509
3b95aad3 165102009-03-12 Vladimir Makarov <vmakarov@redhat.com>
16511
16512 PR debug/39432
16513 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
16514 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
16515 registers for allocnos created from user-defined variables.
16516
8d72495d 165172009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16518
16519 PR target/39181
16520 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
16521 of non-integer mode as well.
16522
cf219ecd 165232009-03-11 Adam Nemet <anemet@caviumnetworks.com>
16524
16525 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
16526 for functions for which the parameter types are unknown.
16527
76cbc2a0 165282009-03-11 Jakub Jelinek <jakub@redhat.com>
16529
16530 PR target/39137
d849db06 16531 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
76cbc2a0 16532 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
16533 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
16534 * config/i386/i386.c (ix86_local_alignment): For
16535 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
16536 long long variables on the stack to avoid dynamic realignment.
16537 Allow the first argument to be a decl rather than type.
16538 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
16539
18061948 165402009-03-11 Nick Clifton <nickc@redhat.com>
16541
16542 PR target/5362
a37dec0c 16543 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
16544 options.
16545 Add description to mno-lsim option.
16546 * config/mcore/mcore.h: Remove comment about deprecated m4align
16547 option.
16548 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
16549 * doc/invoke.texi: Add description of mno-lsim and
16550 mstack-increment options.
16551
18061948 16552 * config/fr30/fr30.opt: Document the -mno-lsim option.
16553 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
16554 and -mno-lsim options.
16555
944017fd 165562009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16557
16558 * fold-const.c (fold_comparison): Only call fold_inf_compare
16559 if the mode supports infinities.
16560
93ef9154 165612009-03-11 Jason Merrill <jason@redhat.com>
16562
16563 PR debug/39086
16564 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
16565 end already did. Notice GIMPLE_CALL modifications of the result.
16566 Don't copy debug information from an ignored decl or a decl from
16567 another function.
16568
e927e2b8 165692009-03-10 Richard Guenther <rguenther@suse.de>
16570 Nathan Froyd <froydnj@codesourcery.com>
16571
16572 PR middle-end/37850
d849db06 16573 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
e927e2b8 16574 (__divMODE3): Likewise.
16575
48855189 165762009-03-09 Jakub Jelinek <jakub@redhat.com>
16577
16578 PR tree-optimization/39394
16579 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
16580 DECL_SIZE_UNIT of variable length FIELD_DECLs.
16581
af7eac22 165822009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16583
16584 * recog.c (verfiy_changes): Disallow renaming of hard regs in
16585 inline asms for register asm ("") declarations.
16586
4ce9876e 165872009-03-09 Eric Botcazou <ebotcazou@adacore.com>
16588
16589 * fold-const.c (fold_unary): Fix comment.
16590
928059d5 165912009-03-07 Jan Hubicka <jh@suse.cz>
16592
16593 PR target/39361
0648196e 16594 * tree-inline.c (setup_one_parameter): Do replacement of const
16595 argument by constant in SSA form.
928059d5 16596
c9b50df7 165972009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16598
16599 PR middle-end/38028
16600 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
16601 determine alignment passed to assign_stack_local.
16602 (assign_parms_unsplit_complex): Likewise.
16603 * except.c (sjlj_build_landing_pads): Likewise.
16604
ebcb0478 166052009-03-06 Jakub Jelinek <jakub@redhat.com>
16606
82eb5a11 16607 PR middle-end/39360
16608 * tree-flow.h (add_referenced_var): Return bool instead of void.
16609 * tree-dfa.c (add_referenced_var): Return result of
16610 referenced_var_check_and_insert call.
16611 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
16612 of referenced_var_check_and_insert.
16613
ebcb0478 16614 PR debug/39372
d849db06 16615 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
ebcb0478 16616 (gen_variable_die): Emit DW_AT_location on abstract static variable's
16617 DIE, don't emit it if abstract origin already has it.
16618 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
16619 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
16620
6d92fc03 166212009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16622
aca60c7b 16623 * genpreds.c (needs_variable): Fix parentheses at variable name
6d92fc03 16624 detection.
16625 (write_tm_constrs_h): Indent generated code.
16626
1fe1c6f5 166272009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16628
16629 * doc/extend.texi (Function Attributes): Add documentation
16630 for isr attributes.
16631
5a798e1e 166322009-03-06 Jakub Jelinek <jakub@redhat.com>
16633
16634 PR debug/39387
16635 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
16636 take locus from its DECL_SOURCE_LOCATION instead of input_location.
16637
05f566a9 166382009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
16639
16640 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
16641 the loop as bad.
16642
227f485e 166432009-03-05 Jakub Jelinek <jakub@redhat.com>
16644
16645 PR debug/39379
16646 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
16647 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
16648
a6ccab35 166492009-03-05 Uros Bizjak <ubizjak@gmail.com>
16650
16651 * config/i386/i386.md (R8_REG, R9_REG): New constants.
16652 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
16653 constants instead of magic numbers.
16654 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
16655 (QI_REG_P): Ditto.
16656 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
16657 (x86_64_ms_abi_int_parameter_registers): Ditto.
16658 (x86_64_int_return_registers): Ditto.
0d22f439 16659 (ix86_maybe_switch_abi): Ditto.
a6ccab35 16660 (ix86_expand_call): Ditto for clobbered_registers array.
16661 (ix86_hard_regno_mode_ok): Ditto.
16662 (x86_extended_QIreg_mentioned_p): Ditto.
16663
ea138c98 166642009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
16665
a6ccab35 16666 PR tree-optimization/39349
1595fd95 16667 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
16668
ea138c98 16669 * combine.c (gen_lowpart_for_combine): Use omode when generating
16670 clobber.
16671
242753ba 166722009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
16673
a6ccab35 16674 PR rtl-optimization/39235
242753ba 16675 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
16676
7299be85 166772009-03-04 Zdenek Dvorak <ook@ucw.cz>
16678
16679 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
16680
a4c8b601 166812009-03-04 Richard Guenther <rguenther@suse.de>
16682
16683 PR tree-optimization/39362
16684 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
16685 that occur in abnormal PHIs should be varying.
16686
76610704 166872009-03-04 Zdenek Dvorak <ook@ucw.cz>
16688
16689 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
16690 Extend comments.
16691 (simple_iv): Take loop as an argument instead of statement.
16692 * tree-scalar-evolution.h (simple_iv): Declaration changed.
16693 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
16694 to simple_iv.
16695 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
16696 Ditto.
16697 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
16698 * matrix-reorg.c (analyze_transpose): Ditto.
16699 * tree-data-ref.c (dr_analyze_innermost): Ditto.
16700 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
16701 * tree-predcom.c (ref_at_iteration): Ditto.
16702 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
16703
f13e5f6d 167042009-03-04 Richard Guenther <rguenther@suse.de>
16705
16706 PR tree-optimization/39358
16707 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
16708 escaped_id and callused_id.
16709 (solve_graph): Likewise.
16710
0cb9a712 167112009-03-04 Richard Guenther <rguenther@suse.de>
16712
16713 PR tree-optimization/39339
16714 * tree-sra.c (try_instantiate_multiple_fields): Make it
16715 no longer ICE on the above.
16716
cfb75cdf 167172009-03-03 Joseph Myers <joseph@codesourcery.com>
16718
16719 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
16720 that fits within Pmode.
16721
838bd0ed 167222009-03-03 Steve Ellcey <sje@cup.hp.com>
16723
16724 PR middle-end/10109
16725 * tm.texi (LIBCALL_VALUE): Update description.
16726
e5e13288 167272009-03-03 Steve Ellcey <sje@cup.hp.com>
16728
16729 PR middle-end/34443
16730 * doc/extend.texi (section): Update description.
16731
463cc256 167322009-03-03 H.J. Lu <hongjiu.lu@intel.com>
16733
16734 PR middle-end/39345
16735 * tree-inline.c (remapped_type): New.
16736 (can_be_nonlocal): Call remapped_type instead of remap_type.
16737
072866b6 167382009-03-03 Jakub Jelinek <jakub@redhat.com>
16739
16740 PR fortran/39354
16741 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
16742 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
16743
b430e8d9 167442009-03-03 Richard Guenther <rguenther@suse.de>
16745
16746 PR middle-end/39272
16747 * tree.c (tree_nonartificial_location): New function.
16748 * tree.h (tree_nonartificial_location): Declare.
16749 * builtins.c (expand_builtin_memory_chk): Provide location
16750 of the call location for artificial function pieces.
16751 (maybe_emit_chk_warning): Likewise.
16752 (maybe_emit_sprintf_chk_warning): Likewise.
16753 (maybe_emit_free_warning): Likewise.
16754 * expr.c (expand_expr_real_1): Likewise.
16755
bc79a76b 167562009-03-03 Jakub Jelinek <jakub@redhat.com>
16757
16758 PR tree-optimization/39343
16759 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
16760 COMPONENT_REF t has ARRAY_TYPE.
16761
41c18990 167622009-03-02 Sebastian Pop <sebastian.pop@amd.com>
16763
16764 PR middle-end/39335
16765 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
16766 when the type precision of the induction variable should be
16767 larger than the type precision of nit.
16768 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
16769 * graphite.c (graphite_loop_normal_form): Same.
16770 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
16771
32096e82 167722009-03-02 Uros Bizjak <ubizjak@gmail.com>
16773
16774 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
16775 (*call_1_rex64_ms_sysv): Use named constants instead of magic
a6ccab35 16776 numbers to describe clobbered registers.
32096e82 16777 (*call_value_0_rex64_ms_sysv): Ditto.
a6ccab35 16778 * config/i386/mmx.md (mmx_emms): Ditto.
16779 (mmx_femms): Ditto.
32096e82 16780
b8f6667e 167812009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
16782
16783 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
16784 of ABI_64.
16785
a08dfd55 167862009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16787
16788 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
16789 (spu_section_type_flags): New function.
16790
c81d1104 167912009-03-02 Uros Bizjak <ubizjak@gmail.com>
16792
16793 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
16794 reg_class_contents of FLOAT_REGS into a temporary.
16795
ed243388 167962009-03-02 Richard Guenther <rguenther@suse.de>
c81d1104 16797 Ira Rosen <irar@il.ibm.com>
ed243388 16798
16799 PR tree-optimization/39318
16800 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
16801 information to the vectorized statement.
16802
c4bb7475 168032009-03-01 Uros Bizjak <ubizjak@gmail.com>
16804
4d5fae72 16805 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
16806 variable. Use defined names instead of magic constants for REX SSE
16807 registers.
c4bb7475 16808
d2263ebb 168092009-03-01 Richard Guenther <rguenther@suse.de>
16810
16811 PR tree-optimization/39331
16812 * omp-low.c (lower_send_shared_vars): Do not receive new
16813 values for the reference of DECL_BY_REFERENCE parms or results.
16814
4b5d70fd 168152009-03-01 Jan Hubicka <jh@suse.cz>
16816
16817 PR debug/39267
16818 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
16819 BLOCK_NONLOCALIZED_VAR): New macros.
16820 (tree_block): Add nonlocalized_vars.
79283bdc 16821 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
16822 gen_decl_die): Add origin argument. Allow generation of die with
16823 origin at hand only.
4b5d70fd 16824 (gen_member_die, gen_type_die_with_usage, force_decl_die,
79283bdc 16825 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
16826 of gen_*.
4b5d70fd 16827 (gen_block_die): Fix checking for unused blocks.
16828 (process_scope_var): Break out from .... ; work with origins only.
16829 (decls_for_scope) ... here; process nonlocalized list.
16830 (dwarf2out_ignore_block): Look for nonlocalized vars.
79283bdc 16831 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
16832 vars.
4b5d70fd 16833 (dump_scope_block): Dump them.
16834 * tree-inline.c (remap_decls): Handle nonlocalized vars.
16835 (remap_block): Likewise.
16836 (can_be_nonlocal): New predicate.
16837 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
16838
9af964d4 168392009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16840
16841 * configure: Regenerate.
16842
a43fd3a5 168432009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16844
e6a03973 16845 * optc-gen.awk: No need to duplicate option flags twice.
d849db06 16846 Reuse help texts for duplicate options which do not have any.
e6a03973 16847
53f9a00b 16848 * gcc.c (display_help): Document --version.
16849
0445c349 16850 * gcc.c (main): If print_help_list and verbose_flag, ensure
16851 driver output comes before subprocess output.
16852
1df76a79 16853 * optc-gen.awk: Assign all remaining fields to help string,
16854 space-separated, for multi-line help in *.opt.
16855
d7381490 16856 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
16857 -Wno-pedantic-ms-format is for MinGW targets only.
16858
a43fd3a5 16859 * doc/options.texi (Option file format): Fix bad indentation,
16860 restoring dropped sentence.
16861
3d280f42 168622009-02-28 Jan Hubicka <jh@suse.cz>
16863
16864 * tree-inline.c (tree_function_versioning): Output debug info.
16865
12e12890 168662009-02-28 Jan Hubicka <jh@suse.cz>
16867
16868 PR debug/39267
16869 * tree-inline.c (setup_one_parameter): Do not copy propagate
16870 arguments when not optimizing.
16871
5e56456b 168722009-02-28 H.J. Lu <hongjiu.lu@intel.com>
16873
16874 PR target/39327
16875 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
16876 (avx_addsubv4df3): Likewise.
16877 (*avx_addsubv4sf3): Likewise.
16878 (sse3_addsubv4sf3): Likewise.
16879 (*avx_addsubv2df3): Likewise.
16880 (sse3_addsubv2df3): Likewise.
16881 (avx_unpckhps256): Correct item selectors.
16882 (avx_unpcklps256): Likewise.
16883 (avx_unpckhpd256): Likewise.
16884 (avx_unpcklpd256): Likewise.
16885
a8305131 168862009-02-28 Jan Hubicka <jh@suse.cz>
16887
16888 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
16889 static vars.
16890 (copy_arguments_for_versioning): If var is declared don't declare it.
16891 (tree_function_versioning): First setup substitutions and then copy
16892 args.
16893
89f29a1b 168942009-02-27 Jan Hubicka <jh@suse.cz>
16895
16896 PR debug/39267
16897 * cgraph.h (varpool_output_debug_info): Remove.
16898 * cgraphunit.c (varpool_output_debug_info): Remove.
16899 * dwarf2out.c (deferred_locations_struct): New struct
16900 (deferred_locations): New type.
16901 (deferred_locations_list): New static var.
16902 (deffer_location): New function.
16903 (gen_variable_die): Use it.
16904 (decls_for_scope): Output info on local static vars.
16905 (dwarf2out_finish): Process deferred locations.
16906 * varpool.c (varpool_output_debug_info): Remove.
16907
cee43f7e 169082009-02-27 Jan Hubicka <jh@suse.cz>
16909
16910 PR debug/39267
16911 * tree.h (TREE_PROTECTED): Fix comment.
16912 (BLOCK_HANDLER_BLOCK): Remove.
16913 (struct tree_block): Remove handler_block add body_block.
16914 (inlined_function_outer_scope_p): New.
16915 (is_body_block): Remove.
16916 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
16917 * dwarf2out.c (is_inlined_entry_point): Remove.
16918 (add_high_low_attributes): Use inlined_function_outer_scope_p.
a12d48b6 16919 (gen_block_die): Use is_inlined_entry_point check. Remove body block
16920 code.
cee43f7e 16921 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
16922 * gimplify.c (gimplify_expr): Gimplify body blocks.
a12d48b6 16923 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
16924 block with multiple subblocks.
cee43f7e 16925 (dump_scope_block): Prettier output; dump more flags and info.
16926 (dump_scope_blocks): New.
16927 (remove_unused_locals): Use dump_scope_blocks.
16928 * tree-flow.h (dump_scope_blocks): Declare.
16929 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
16930 * stmt.c (is_body_block): Remove.
16931 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
16932 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
16933
74e261f8 169342009-02-27 Sebastian Pop <sebastian.pop@amd.com>
16935
16936 PR middle-end/39308
89871bab 16937 * graphite.c (graphite_loop_normal_form): Do not call
74e261f8 16938 number_of_iterations_exit from a gcc_assert.
16939
512d9edf 169402009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16941
943327c1 16942 * config/s390/s390.c (s390_swap_cmp): Look for conditional
512d9edf 16943 jumps if COND is NULL.
16944 (find_cond_jump): New function.
16945 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
943327c1 16946 * config/s390/s390.md: Remove z10_cobra attribute value.
512d9edf 16947
f8fff44e 169482009-02-26 Uros Bizjak <ubizjak@gmail.com>
16949
16950 * config/alpha/alpha.h (alpha_expand_mov): Return false if
16951 force_const_mem returns NULL_RTX.
16952
673c690d 169532009-02-26 Jan Hubicka <jh@suse.cz>
16954
16955 PR debug/39267
16956 * cgraph.h (varpool_output_debug_info): Remove.
16957 * cgraphunit.c (varpool_output_debug_info): Remove.
16958 * dwarf2out.c (deferred_locations_struct): New struct
16959 (deferred_locations): New type.
16960 (deferred_locations_list): New static var.
16961 (deffer_location): New function.
16962 (gen_variable_die): Use it.
16963 (decls_for_scope): Output info on local static vars.
16964 (dwarf2out_finish): Process deferred locations.
16965 * varpool.c (varpool_output_debug_info): Remove.
16966
a330630f 169672009-02-25 H.J. Lu <hongjiu.lu@intel.com>
7216a350 16968
16969 PR rtl-optimization/39241
16970 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
16971 to subreg_offset_representable_p.
16972
1e176869 169732009-02-25 Paolo Bonzini <bonzini@gnu.org>
16974
16975 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
16976 execute function prototype. Get f and nregs from max_reg_num
16977 and get_insns. Remove the first backward pass as it's dead,
16978 guard the forward pass by flag_expensive_optimizations.
16979 (rest_of_handle_regmove): Delete.
16980 (pass_regmove): Replace it with regmove_optimize.
16981
28efe441 169822009-02-25 Martin Jambor <mjambor@suse.cz>
16983
16984 PR tree-optimization/39259
16985 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
a6ccab35 16986 calls_alloca function flags.
28efe441 16987 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
16988 calls are detected.
16989
e7dd8234 169902009-02-25 Paolo Bonzini <bonzini@gnu.org>
16991
16992 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
16993 flags_set_1_rtx, flags_set_1_set): Delete.
16994 (regmove_optimize): Do not call mark_flags_life_zones.
16995
3e0af691 169962009-02-24 Julian Brown <julian@codesourcery.com>
16997
16998 PR target/35965
16999 * config/arm/arm.c (require_pic_register): Only set
17000 cfun->machine->pic_reg once per function.
17001
95e9d9cd 170022009-02-24 Sandra Loosemore <sandra@codesourcery.com>
17003
17004 * doc/invoke.texi (Link Options): Document an easier way to pass
f8fff44e 17005 options that take arguments to the GNU linker using -Xlinker and -Wl.
95e9d9cd 17006
bbe1a1e9 170072009-02-24 Steve Ellcey <sje@cup.hp.com>
17008
17009 PR target/33785
17010 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
17011
dbc4ace1 170122009-02-24 Richard Guenther <rguenther@suse.de>
17013
17014 PR debug/39285
17015 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
17016
29474274 170172009-02-24 Richard Guenther <rguenther@suse.de>
7216a350 17018 Zdenek Dvorak <ook@ucw.cz>
29474274 17019
17020 PR tree-optimization/39233
17021 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
17022 from converting them to a generic type.
17023
70c06b9d 170242009-02-23 Sebastian Pop <sebastian.pop@amd.com>
17025
17026 PR tree-optimization/39260
17027 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
17028 contains a condition with a real type.
17029 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
17030
a9d778f8 170312009-02-23 Jason Merrill <jason@redhat.com>
17032
17033 PR c++/38880
17034 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
17035 narrowing_initializer_constant_valid_p.
89871bab 17036 (narrowing_initializer_constant_valid_p): Don't return
a9d778f8 17037 null_pointer_node for adding a pointer to itself.
17038
8b7d416a 170392009-02-23 Jan Hubicka <jh@suse.cz>
17040
17041 PR c/12245
f8fff44e 17042 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
17043 resizing.
8b7d416a 17044
36267649 170452009-02-23 Jan Hubicka <jh@suse.cz>
17046
f8fff44e 17047 PR tree-optimization/37709
17048 * tree.c (block_ultimate_origin): Move here from dwarf2out.
17049 * tree.h (block_ultimate_origin): Declare.
17050 * dwarf2out.c (block_ultimate_origin): Move to tree.c
36267649 17051 * tree-ssa-live.c (remove_unused_scope_block_p):
17052 Eliminate blocks containig no instructions nor live variables nor
17053 nested blocks.
17054 (dump_scope_block): New function.
17055 (remove_unused_locals): Enable removal of dead blocks by default;
f8fff44e 17056 enable dumping at TDF_DETAILS.
36267649 17057
a330630f 170582009-02-21 H.J. Lu <hongjiu.lu@intel.com>
d9984eae 17059
17060 * config/i386/i386.c (classify_argument): Don't allow COImode
17061 and OImode.
17062 (function_arg_advance_32): Don't allow OImode.
17063 (function_arg_32): Likewise.
17064 (function_value_32): Likewise.
17065 (return_in_memory_32): Likewise.
17066 (function_arg_64): Remove OImode comment.
17067
a330630f 170682009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f65f962c 17069
17070 PR target/39261
17071 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
17072 ix86_expand_vector_set for V4DImode in 64bit mode only.
17073 (ix86_expand_vector_init_one_var): Likewise.
17074
c08b0c04 170752009-02-21 Sebastian Pop <sebastian.pop@amd.com>
17076
17077 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
17078
c0efe3c3 170792009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
17080
71cca459 17081 PR bootstrap/39257
c0efe3c3 17082 * loop-iv.c: Revert last change.
17083 * emit-rtl.c: Likewise.
17084
a330630f 170852009-02-21 H.J. Lu <hongjiu.lu@intel.com>
6c37e539 17086
17087 PR target/39256
17088 * config/i386/i386.c (type_natural_mode): Remove an extra
17089 space in the warning message.
17090 (function_value_32): Handle 32-byte vector modes.
17091 (return_in_memory_32): Likewise.
17092
c2c24c89 170932009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
17094
17095 * loop-iv.c (truncate_value): New function.
17096 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
17097 of lowpart_subreg.
17098 (lowpart_subreg): Move to...
17099 * emit-rtl.c: ...here.
17100
59c236cd 171012009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
09869175 17102
59c236cd 17103 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
17104 accidental and undocumented change at revision 140860.
17105
54ad443f 171062009-02-21 Joseph Myers <joseph@codesourcery.com>
17107
17108 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
17109 take gimple_seq * arguments.
17110 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
17111 types_compatible_p langhook.
17112
fb20d2ee 171132009-02-20 Mark Mitchell <mark@codesourcery.com>
09869175 17114 Joseph Myers <joseph@codesourcery.com>
fb20d2ee 17115
17116 * config/arm/arm.c (arm_builtin_va_list): New function.
17117 (arm_expand_builtin_va_start): Likewise.
17118 (arm_gimplify_va_arg_expr): Likewise.
17119 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
17120 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
17121 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
17122 (va_list_type): New variable.
17123 (arm_mangle_type): Mangle va_list_type appropriately.
17124
86482d6b 171252009-02-20 Jakub Jelinek <jakub@redhat.com>
17126
17127 PR middle-end/39157
17128 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
17129 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
17130 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
17131 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
17132 parameter to 1000 for -O1 by default.
17133 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
17134 parameter.
17135 * loop-invariant.c: Include params.h.
17136 (move_loop_invariants): Don't call move_single_loop_invariants on
17137 very large loops.
17138
9a0cf170 171392009-02-20 Jaka Mocnik <jaka@xlab.si>
17140
17141 * calls.c (emit_library_call_value_1): Use slot_offset instead of
17142 offset when calculating bounds for indexing stack_usage_map. Fixes
17143 a buffer overflow with certain target setups.
17144
4681dd41 171452009-02-20 Jakub Jelinek <jakub@redhat.com>
17146
17147 PR target/39240
17148 * calls.c (expand_call): Clear try_tail_call if caller and callee
17149 disagree in promotion of function return value.
17150
2d9d8740 171512009-02-19 Jakub Jelinek <jakub@redhat.com>
17152
17153 PR target/39175
17154 * c-common.c (c_determine_visibility): If visibility changed and
17155 DECL_RTL has been already set, call make_decl_rtl to update symbol
17156 flags.
17157
e3040053 171582009-02-19 H.J. Lu <hongjiu.lu@intel.com>
17159
17160 PR c++/39188
17161 * varasm.c (assemble_variable): Don't check DECL_NAME when
17162 globalizing a variable.
17163
ad0e7a06 171642009-02-19 Joseph Myers <joseph@codesourcery.com>
17165
17166 PR c/38483
17167 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
17168 expression before any __builtin_trap call.
17169 * c-typeck.c (build_function_call): Convert and check function
17170 arguments before generating a call to a trap. Evaluate the
17171 function arguments before the trap.
17172
a7a2dd08 171732009-02-19 Uros Bizjak <ubizjak@gmail.com>
17174
17175 PR target/39228
17176 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
17177 (UNSPEC_FXAM_MEM): New unspec.
17178 (fxam<mode>2_i387_with_temp): New insn and split pattern.
17179 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
17180 memory using fxam<mode>2_i387_with_temp to remove excess precision.
17181
c5168a9e 171822009-02-19 Richard Guenther <rguenther@suse.de>
17183
17184 PR tree-optimization/39207
17185 PR tree-optimization/39074
17186 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
17187 storedanything_tree): New.
17188 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
a7a2dd08 17189 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
c5168a9e 17190 (build_succ_graph): Add edges from STOREDANYTHING to all
17191 non-direct nodes.
17192 (init_base_vars): Initialize STOREDANYTHING.
17193 (compute_points_to_sets): Free substitution info after
17194 building the succ graph.
17195 (ipa_pta_execute): Likewise.
17196
17197 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
17198 field.
17199 (do_ds_constraint): Do not add to special var or non-pointer
17200 field solutions.
17201 (type_could_have_pointers): Split out from ...
17202 (could_have_pointers): ... here. For arrays use the element type.
17203 (create_variable_info_for): Initialize may_have_pointers.
17204 (new_var_info): Likewise.
17205 (handle_lhs_call): Make the HEAP variable unknown-sized.
17206 (intra_create_variable_infos): Use a type with pointers for
17207 PARM_NOALIAS, make it unknown-sized.
17208
f36b5ce0 172092009-02-18 H.J. Lu <hongjiu.lu@intel.com>
17210
17211 PR target/39224
a7a2dd08 17212 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
f36b5ce0 17213
807bf718 172142009-02-18 Jason Merrill <jason@redhat.com>
17215
17216 PR target/39179
17217 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
17218 value if DECL_EXTERNAL.
17219 * tree-sra.c (sra_walk_gimple_assign): Likewise.
17220 * target.h (gcc_target::binds_local_p): Clarify "module".
17221 * tree.h (TREE_PUBLIC): Clarify "module".
17222
f29980e5 172232009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
17224
17225 PR target/38891
17226 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
17227 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
17228
58beda63 172292009-02-17 H.J. Lu <hongjiu.lu@intel.com>
17230
17231 PR target/39082
17232 * c.opt (Wabi): Support C and ObjC.
17233 (Wpsabi): New.
17234
17235 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
17236
17237 * config/i386/i386.c (classify_argument): Warn once about the ABI
17238 change when passing union with long double.
17239
17240 * doc/invoke.texi: Update -Wabi for warning psABI changes.
17241
22d77a94 172422009-02-18 Joseph Myers <joseph@codesourcery.com>
17243
17244 PR c/35447
17245 * c-parser.c (c_parser_compound_statement): Always enter and leave
17246 a scope.
17247
492e3336 172482009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17249
17250 PR target/34587
17251 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
17252
b6eab06c 172532009-02-18 Jakub Jelinek <jakub@redhat.com>
17254
17255 PR tree-optimization/36922
17256 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
17257 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
17258 Likewise.
17259
4f0507c2 172602009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
17261
17262 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
17263 to 0 for EABI64.
17264
be83ab34 172652009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
17266
17267 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
17268
aa6a48b8 172692009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
17270
17271 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
17272 tree sharing.
17273
0f604f19 172742009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
17275 Richard Sandiford <rdsandiford@googlemail.com>
17276
17277 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
17278 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
17279 (loongson_biadd): ...this.
17280
1ab8a912 172812009-02-17 Richard Guenther <rguenther@suse.de>
17282
17283 PR tree-optimization/39202
17284 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
17285 a var make sure to follow existing collapses.
17286
aa03bd5e 172872009-02-17 Richard Guenther <rguenther@suse.de>
17288
17289 PR middle-end/39214
17290 * langhooks.c (lhd_print_error_function): Check for NULL block.
17291
f46bc821 172922009-02-17 Richard Guenther <rguenther@suse.de>
17293
17294 PR tree-optimization/39204
17295 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
17296 of the PHI arg.
17297
974645ce 172982009-02-17 Uros Bizjak <ubizjak@gmail.com>
17299
17300 * config/soft-fp/double.h: Update from glibc CVS.
17301
7197c469 173022009-02-17 Richard Guenther <rguenther@suse.de>
17303
17304 PR tree-optimization/39207
17305 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
17306 strict-aliasing warnings for pointers pointing to NULL.
17307
1646bf33 173082009-02-16 Joseph Myers <joseph@codesourcery.com>
17309
17310 PR c/35446
17311 * c-parser.c (c_parser_braced_init): Call pop_init_level when
17312 skipping until next close brace.
17313
0fb2a998 173142009-02-16 H.J. Lu <hongjiu.lu@intel.com>
17315
17316 PR target/37049
17317 * config/i386/i386.c (ix86_expand_push): Set memory alignment
17318 to function argument boundary.
17319
a1a75b07 173202009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
17321
17322 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
17323 in the lea_add. Reload eventually constraints it properly.
1cae7fd7 17324 * config/picochip/constraints.md: Remove the target constraint
a1a75b07 17325 "b", since it is not needed anymore.
17326
320084b9 173272009-02-16 Jakub Jelinek <jakub@redhat.com>
17328
17329 * gthr-dce.h: Uglify function parameter and local variable names.
17330 * gthr-gnat.h: Likewise.
17331 * gthr-mipssde.h: Likewise.
17332 * gthr-nks.h: Likewise.
17333 * gthr-posix95.h: Likewise.
17334 * gthr-posix.h: Likewise.
17335 * gthr-rtems.h: Likewise.
17336 * gthr-single.h: Likewise.
17337 * gthr-solaris.h: Likewise.
17338 * gthr-tpf.h: Likewise.
17339 * gthr-vxworks.h: Likewise.
17340 * gthr-win32.h: Likewise.
17341
fde73de8 173422009-02-15 H.J. Lu <hongjiu.lu@intel.com>
17343
17344 PR target/39196
17345 * config/i386/i386.md: Restrict the new peephole2 to move
17346 between MMX/SSE registers.
17347
b5c49426 173482009-02-15 Richard Guenther <rguenther@suse.de>
17349
17350 Revert
17351 2009-02-13 Richard Guenther <rguenther@suse.de>
17352
17353 * configure.ac: Enable LFS.
17354 * configure: Re-generate.
17355 * config.in: Likewise.
17356
70ca06f8 173572009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17358
17359 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
17360 spu_srqwbyte, spu_srqwbytebc): Define.
17361 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
17362 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
17363 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
17364 "shrqby_<mode>"): New insn-and-split patterns.
17365 * config/spu/spu.c (expand_builtin_args): Determine and return
17366 number of operands using spu_builtin_description data.
17367 (spu_expand_builtin_1): Use it.
17368
c49d20be 173692009-02-13 Steve Ellcey <sje@cup.hp.com>
17370
17371 PR target/38056
17372 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
17373 TARGET_CONST_GP.
17374
c81f43ee 173752009-02-13 H.J. Lu <hongjiu.lu@intel.com>
17376
17377 PR target/39149
17378 * config/i386/i386.c (override_options): Correct warning
a6ccab35 17379 messages for -malign-loops, -malign-jumps and -malign-functions.
c81f43ee 17380
bc0a240f 173812009-02-13 H.J. Lu <hongjiu.lu@intel.com>
17382
17383 PR target/39152
17384 * config/i386/i386.md: Restrict the new peephole2 to move
17385 between the general purpose registers.
17386
79a817bf 173872009-02-13 H.J. Lu <hongjiu.lu@intel.com>
17388
17389 PR target/39162
17390 * config/i386/i386.c (type_natural_mode): Add a new argument.
a7a2dd08 17391 Return the original mode and warn ABI change if vector size is 32byte.
79a817bf 17392 (function_arg_advance): Updated.
17393 (function_arg): Likewise.
17394 (ix86_function_value): Likewise.
17395 (ix86_return_in_memory): Likewise.
17396 (ix86_sol10_return_in_memory): Likewise.
17397 (ix86_gimplify_va_arg): Likewise.
17398 (function_arg_32): Don't warn ABX ABI change here.
17399 (function_arg_64): Likewise.
17400
a330630f 174012009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
27440859 17402
17403 * loop-iv.c (implies_p): In the final case, test that operands 0
17404 of the two comparisons match.
17405
462ce619 17406 * config/bfin/bfin.c (find_prev_insn_start): New function.
17407 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
17408 (find_next_insn_start): Move.
17409
76549266 174102009-02-13 Richard Guenther <rguenther@suse.de>
17411
17412 * configure.ac: Enable LFS.
17413 * configure: Re-generate.
17414 * config.in: Likewise.
17415
1bbf1c2f 174162009-02-13 Joseph Myers <joseph@codesourcery.com>
17417
17418 PR c/35444
17419 * c-parser.c (c_parser_parms_list_declarator): Discard pending
17420 sizes on syntax error after some arguments have been parsed.
17421
ce2801fe 174222009-02-12 Jakub Jelinek <jakub@redhat.com>
17423
17424 * doc/invoke.texi (-fira): Remove.
17425
ac502adf 174262009-02-12 H.J. Lu <hongjiu.lu@intel.com>
17427
17428 * caller-save.c: Replace regclass.c with reginfo.c in comments.
17429 * recog.c: Likewise.
17430 * rtl.h: Likewise.
17431
8b21beb2 174322009-02-12 Uros Bizjak <ubizjak@gmail.com>
17433
17434 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
17435 (umul_ppmm): Likewise.
17436 (count_leading_zeros): Likewise.
17437 (count_trailing_zeros): Likewise.
17438 (UMUL_TIME): Likewise.
17439
174402009-02-12 H.J. Lu <hongjiu.lu@intel.com>
17441
24200b28 17442 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
17443 soft-fp/t-softfp to tmake_file.
8b21beb2 17444
17445 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
24200b28 17446 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
17447 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
17448 IA64_BUILTIN_INFQ]: New.
8b21beb2 17449 (ia64_init_builtins): Initialize __builtin_infq,
17450 __builtin_fabsq and __builtin_copysignq if not HPUX.
17451 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
17452 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
17453
17454 * config/ia64/lib1funcs.asm (__divtf3): Define only if
17455 SHARED is defined.
17456 (__fixtfti): Likewise.
17457 (__fixunstfti): Likewise.
17458 (__floattitf): Likewise.
17459
17460 * config/ia64/libgcc-glibc.ver: New.
17461 * config/ia64/t-fprules-softfp: Likewise.
17462 * config/ia64/sfp-machine.h: Likewise.
17463
17464 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
17465 (LIBGCC2_TF_CEXT): Likewise.
17466 (TF_SIZE): Likewise.
17467 (TARGET_INIT_LIBFUNCS): Likewise.
17468
24200b28 17469 * config/ia64/t-glibc (SHLINB_MAPFILES):
a7a2dd08 17470 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8b21beb2 17471
cffe3086 174722009-02-12 H.J. Lu <hongjiu.lu@intel.com>
17473
17474 * config/i386/i386.c (construct_container): Rewrite processing
17475 BLKmode with X86_64_SSE_CLASS.
17476
fbfa3312 174772009-02-12 Paolo Bonzini <bonzini@gnu.org>
17478
17479 PR target/39152
17480 * config/i386/i386.md: Replace simplify_replace_rtx with
17481 replace_rtx in the new peephole2.
17482
38b64900 174832009-02-12 Nathan Sidwell <nathan@codesourcery.com>
17484
17485 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
17486 loop unrolling do not happen at -O2.
17487
674ca8bf 174882009-02-12 Michael Matz <matz@suse.de>
17489
17490 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
17491
e1b3cc49 174922009-02-12 Jakub Jelinek <jakub@redhat.com>
17493
17494 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
17495 for -g3.
17496
0fbcd2eb 174972009-02-12 Ben Elliston <bje@au.ibm.com>
17498
17499 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
17500 patterns when updating the back chain. Missed in the 2009-02-10
17501 change.
17502
0e86dff0 175032009-02-11 Janis Johnson <janis187@us.ibm.com>
17504
17505 * doc/extend.texi (Decimal Floating Types): Update identifier of
17506 draft TR and list of missing support.
17507
2a92826d 175082009-02-11 Jakub Jelinek <jakub@redhat.com>
17509
17510 PR middle-end/39154
17511 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
17512 bit to variable length decl's flags, add it also to its
17513 pointer replacement variable.
17514
73c5e2aa 175152009-02-11 Uros Bizjak <ubizjak@gmail.com>
17516 Jakub Jelinek <jakub@redhat.com>
17517
17518 PR target/39118
17519 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
17520 (memory_blockage): New expander.
17521 (*memory_blockage): New insn pattern.
17522 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
17523 instead of general blockage at the end of function prologue when
17524 frame pointer is used to access red zone area. Do not emit blockage
17525 when profiling, it is emitted in generic code.
17526 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
17527 function epilogue when frame pointer is used to access red zone area.
17528
486a1b16 175292009-02-11 Paolo Bonzini <bonzini@gnu.org>
17530
b899e808 17531 PR target/38824
486a1b16 17532 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
17533 by arithmetic with memory operands.
17534 * config/i386/predicates.md (commutative_operator): New.
17535
560db68e 175362009-02-10 Janis Johnson <janis187@us.ibm.com>
17537
17538 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
17539 bulleted lists.
17540
892fdb03 175412009-02-10 Eric Botcazou <ebotcazou@adacore.com>
17542
17543 * alias.h (record_alias_subset): Declare.
17544 * alias.c (record_alias_subset): Make global.
17545
4ef8346d 175462009-02-10 Nick Clifton <nickc@redhat.com>
17547
17548 * tree-parloops.c: Change license to GPLv3.
17549 * ipa-struct-reorg.c: Change license to GPLv3.
17550 * ipa-struct-reorg.h: Change license to GPLv3.
17551
fc92befb 175522009-02-10 Steve Ellcey <sje@cup.hp.com>
17553
17554 PR c/39084
17555 * c-decl.c (start_struct): Return NULL on error.
17556
e15deb4b 175572009-02-10 Jakub Jelinek <jakub@redhat.com>
17558
16ccc50c 17559 PR middle-end/39124
17560 * cfgloopmanip.c (remove_path): Call remove_bbs after
17561 cancel_loop_tree, not before it.
17562
e15deb4b 17563 PR target/39139
73c5e2aa 17564 * function.h (struct function): Add has_local_explicit_reg_vars bit.
e15deb4b 17565 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
17566 VAR_DECLs were seen.
17567 * tree-ssa-live.c (remove_unused_locals): Recompute
17568 cfun->has_local_explicit_reg_vars.
17569 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
17570 copies or clearings if cfun->has_local_explicit_reg_vars.
17571
a9c1f295 175722009-02-10 Uros Bizjak <ubizjak@gmail.com>
17573
17574 PR target/39118
17575 * config/i386/i386.c (expand_prologue): Emit blockage at the end
17576 of function prologue when frame pointer is used to access
17577 red zone area.
17578
c85b2faf 175792009-02-10 Richard Guenther <rguenther@suse.de>
17580
17581 PR middle-end/39127
17582 * gimplify.c (gimple_regimplify_operands): Always look if
17583 we need to create a temporary.
17584
8d093dba 175852009-02-10 Richard Guenther <rguenther@suse.de>
17586
17587 PR tree-optimization/39132
17588 * tree-loop-distribution.c (todo): New global var.
17589 (generate_memset_zero): Trigger TODO_rebuild_alias.
17590 (tree_loop_distribution): Return todo.
17591
edd93683 175922009-02-10 H.J. Lu <hongjiu.lu@intel.com>
17593
17594 PR target/39119
17595 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
17596 (x86_64_reg_class_name): Removed.
17597 (classify_argument): Return 0 if bytes > 32. Return 0 if the
17598 first one isn't X86_64_SSE_CLASS or any other ones aren't
17599 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
17600 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
17601 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
17602 and 3 X86_64_SSEUP_CLASS.
17603 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
17604 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
17605
2b6975a6 176062009-02-10 Ben Elliston <bje@au.ibm.com>
17607
17608 * config/rs6000/rs6000.md (allocate_stack): Always use an update
17609 form instruction to update the stack back chain word, even if the
17610 user has disabled the generation of update instructions.
17611 (movdi_<mode>_update_stack): New.
17612 (movsi_update_stack): Likewise.
17613 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
17614 always use an update form instruction to update the stack back
17615 chain word.
17616
a72d4b7d 176172009-02-09 Sebastian Pop <sebastian.pop@amd.com>
17618
17619 PR middle-end/38953
73c5e2aa 17620 * graphite.c (if_region_set_false_region): After moving a region in
17621 the false branch of a condition, remove the empty dummy basic block.
a72d4b7d 17622 (gloog): Remove wrong fix for PR38953.
17623
1f915911 176242009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17625
17626 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
17627 generation due to implicit sign extension.
17628
bbe1fc8f 176292009-02-09 Eric Botcazou <ebotcazou@adacore.com>
17630
17631 PR middle-end/38981
17632 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
17633 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
17634
fd494669 176352009-02-09 Richard Guenther <rguenther@suse.de>
17636
17637 PR middle-end/35202
17638 * convert.c (convert_to_real): Disable (float)fn((double)x)
17639 to fnf(x) conversion if errno differences may occur and
17640 -fmath-errno is set.
17641
a64bd5e4 176422009-02-07 Anatoly Sokolov <aesok@post.ru>
17643
17644 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
17645 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
17646 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
17647
9e830260 176482009-02-06 Joseph Myers <joseph@codesourcery.com>
17649
17650 PR c/35434
17651 * c-common.c (handle_alias_attribute): Disallow attribute for
17652 anything not a FUNCTION_DECL or VAR_DECL.
17653
42dc1cf5 176542009-02-06 Janis Johnson <janis187@us.ibm.com>
17655
17656 PR c/39035
17657 * real.c (do_compare): Special-case compare of zero against
17658 decimal float value.
17659
0af147a4 176602009-02-06 Joseph Myers <joseph@codesourcery.com>
17661
17662 PR c/36432
17663 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
17664 as indicating flexible array members unless the field itself is
17665 being declarared as the incomplete array.
17666
68b2f511 176672009-02-06 Jan Hubicka <jh@suse.cz>
17668
17669 PR tree-optimization/38844
17670 * ipa-inline.c (try_inline): Stop inlining recursion when edge
17671 is already inlined.
17672
dac59c04 176732009-02-06 Richard Guenther <rguenther@suse.de>
17674
17675 PR middle-end/38977
17676 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
17677 fork because we may expand it as __gcov_fork.
17678
2314f2ef 176792009-02-06 Nick Clifton <nickc@redhat.com>
17680
a9c1f295 17681 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
2314f2ef 17682
3d2d7de7 176832009-02-06 Paolo Bonzini <bonzini@gnu.org>
17684
17685 PR tree-optimization/35659
17686 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
17687 vn_phi_eq): Shortcut if hashcode does not match.
17688 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
17689 NULL operands.
17690 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
17691 and avoid iterative_hash_expr.
17692 (FOR_EACH_VALUE_ID_IN_SET): New.
17693 (value_id_compare): Remove.
17694 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
17695 sort expressions by value id.
17696
07d27c98 176972009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
17698
17699 PR target/38991
17700 * config/sh/predicates.md (general_movsrc_operand): Don't check
17701 the subreg of system registers here.
17702
f014e39d 177032009-02-05 Jakub Jelinek <jakub@redhat.com>
17704
17705 PR c++/39106
17706 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
17707 on the copied decl.
17708
99e9b19f 177092009-02-05 Paolo Bonzini <bonzini@gnu.org>
17710
17711 PR rtl-optimization/39110
17712 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
17713 addresses, not aligned ones.
17714
707dd2b0 177152009-02-05 Daniel Berlin <dberlin@dberlin.org>
17716 Richard Guenther <rguenther@suse.de>
17717
17718 PR tree-optimization/39100
17719 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
17720 comment says and add edges.
17721
c34f8a78 177222009-02-05 Joseph Myers <joseph@codesourcery.com>
17723
17724 PR c/35435
17725 * c-common.c (handle_tls_model_attribute): Ignore attribute for
17726 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
17727
89871bab 177282009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
7f28086c 17729
17730 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
17731 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
17732 register_bb_in_sese, new_sese, free_sese): Moved.
17733 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
17734 outermost_loop_in_scop, build_scop_iteration_domain,
17735 expand_scalar_variables_ssa_name, get_vdef_before_scop,
17736 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
17737 Use loop_in_sese_p instead of loop_in_scop_p.
17738 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
17739 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
17740 (scopdet_basic_block_info): Fix bug in scop detection.
17741 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
17742 eq_loop_to_cloog_loop): Remove.
17743 (nb_loops_around_loop_in_scop, nb_loop
17744 ref_nb_loops): Moved here...
17745 * graphite.h (ref_nb_loops): ... from here.
17746 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
17747 (loop_domain_dim, loop_iteration_vector_dim): Remove.
17748 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
17749 * testsuite/gcc.dg/graphite/scop-19.c: New
17750
0eee494e 177512009-02-04 Paolo Bonzini <bonzini@gnu.org>
17752 Hans-Peter Nilsson <hp@axis.com>
17753
17754 PR rtl-optimization/37889
17755 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
17756 Move offset handling from PLUS to before the switch. Use new
17757 arguments when considering SYMBOL_REFs too.
17758 (rtx_addr_can_trap_p): Pass dummy offset and size.
17759 (enum may_trap_p_flags): Remove.
17760 (may_trap_p_1): Pass size from MEM_SIZE.
17761
17762 PR rtl-optimization/38921
17763 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
17764 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
17765 * rtlanal.c (may_trap_after_code_motion_p): Delete.
17766 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
17767
810c9e65 177682009-02-04 H.J. Lu <hongjiu.lu@intel.com>
17769
17770 AVX Programming Reference (January, 2009)
17771 * config/i386/sse.md (*vpclmulqdq): New.
17772
73d3c8f2 177732009-02-04 Jakub Jelinek <jakub@redhat.com>
17774
17775 PR tree-optimization/38977
17776 PR gcov-profile/38292
6db00048 17777 * calls.c (special_function_p): Disregard __builtin_ prefix.
73d3c8f2 17778
fe898823 177792009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
17780
17781 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
17782 non-indexable addresses even before reload.
17783
51428eb1 177842009-02-03 Joseph Myers <joseph@codesourcery.com>
17785
17786 PR c/29129
17787 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
17788 as having variable size. Do not give an error for unnamed
17789 parameters with [*] declarators. Give a warning for type names
17790 with [*] declarators and mark them as variable size.
17791 * c-parser.c (c_parser_sizeof_expression): Do not give an error
17792 for sizeof applied to [*] type names.
17793
4f4106ef 177942009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
17795
17796 PR C++/36607
17797 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
17798
5a371c77 177992009-02-03 Jakub Jelinek <jakub@redhat.com>
17800
17801 * gcc.c (process_command): Update copyright notice dates.
17802 * gcov.c (print_version): Likewise.
17803 * gcov-dump.c (print_version): Likewise.
17804 * mips-tfile.c (main): Likewise.
17805 * mips-tdump.c (main): Likewise.
17806
e5d71db4 178072009-02-03 Joseph Myers <joseph@codesourcery.com>
17808
17809 PR c/35433
17810 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
17811 for composite type involving a zero-length array type.
17812
14e882ea 178132009-02-03 Jakub Jelinek <jakub@redhat.com>
17814
fbcb9be4 17815 PR target/35318
17816 * function.c (match_asm_constraints_1): Skip over
17817 initial optional % in the constraint.
17818
14e882ea 17819 PR inline-asm/39059
17820 * c-parser.c (c_parser_postfix_expression): If fixed point is not
17821 supported, don't accept FIXED_CSTs.
17822 * c-decl.c (finish_declspecs): Error if fixed point is not supported
17823 and _Sat is used without _Fract/_Accum. Set specs->type to
17824 integer_type_node for cts_fract/cts_accum if fixed point is not
17825 supported.
17826
f4b3ca46 178272009-02-02 Catherine Moore <clm@codesourcery.com>
17828
a9c1f295 17829 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
f4b3ca46 17830
0a959c1d 178312009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
17832
17833 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
17834 (ABI_HAS_64BIT_SYMBOLS): Use it.
17835 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
17836
2f02c19f 178372009-02-02 Paul Brook <paul@codesourcery.com>
17838
17839 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
17840
cde8f1c8 178412009-02-02 Jakub Jelinek <jakub@redhat.com>
17842
17843 PR inline-asm/39058
17844 * recog.h (asm_operand_ok): Add constraints argument.
17845 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
17846 recurse on matching constraint.
17847 (check_asm_operands): Pass constraints as 3rd argument to
17848 asm_operand_ok. Don't look up matching constraint here.
17849 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
17850 to asm_operand_ok.
17851
e366f125 178522009-02-02 Ben Elliston <bje@au.ibm.com>
17853
17854 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
17855 TARGET_NARROW_VOLATILE_BITFIELD macro names.
17856
a3caf955 178572009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17858
a2853397 17859 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
17860 information. Remove some obsolete information. Reorganize.
17861
a3caf955 17862 * config/pa/fptr.c: Revert license to GPL 2.
17863 * config/pa/milli64.S: Likewise.
17864
8cae609c 178652009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
17866
17867 PR target/38904
17868 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
17869 LIBRARY name in, instead of hard-coding it.
17870 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
17871 extra target make frag to tmake_files according to EH model.
17872 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
17873 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
17874 frags that define makefile variable EH_MODEL appropriately.
17875 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
17876 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
17877 to "-sjlj" according to type of EH configured.
17878 (LIBGCC_SONAME): Concatenate it to shared library base name.
17879 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
17880 to "_sjlj" according to type of EH configured.
17881 (LIBGCC_SONAME): Concatenate it to shared library base name.
17882 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
17883 (SHLIB_LINK): Add missing semicolon to if-else construct.
17884 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
17885 string value of "pe_dll" command-line option.
17886 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
17887 (SHLIB_SONAME): Use it when overriding t-cygming default.
17888 (SHLIB_IMPLIB): Override t-cygming default.
17889 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
17890 string value of "pe_dll" command-line option.
17891
27ed8c87 178922009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
17893
17894 PR target/38952
17895 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
6db00048 17896 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
27ed8c87 17897
98de8b69 178982009-01-31 Richard Guenther <rguenther@suse.de>
17899
17900 PR tree-optimization/38937
17901 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
17902 computing the transitive closure.
17903
c019af4d 179042009-01-30 Richard Guenther <rguenther@suse.de>
17905
17906 PR tree-optimization/39041
17907 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
17908 Propagate variable indices only if the types match for this stmt.
17909
709cdea6 179102009-01-30 Jakub Jelinek <jakub@redhat.com>
17911
17912 PR target/39013
17913 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
17914 inline but never defined.
17915
a7a2dd08 179162009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
26e8b800 17917
17918 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
17919 (*insv_h_di_reg_extimm): New insn.
17920 (*insv_l<mode>_reg_extimm): New insn.
17921
179222009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
3b31ea78 17923
17924 * config/picochip/picochip.c (flag_conserve_stack): set
17925 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
17926 fconserve-stack. Reduce call-overhead used by inliner.
17927
26e8b800 179282009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
c45dd88a 17929
17930 PR/38157
17931 * common.opt (flag_conserve_stack): Initialised to zero.
17932
dbc128e8 179332009-01-30 Kai Tietz <kai.tietz@onevision.com>
17934
17935 PR/39002
17936 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
17937 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
17938 method.
17939
ac50b6ef 179402009-01-29 H.J. Lu <hongjiu.lu@intel.com>
17941
17942 * ira-color.c (allocno_reload_assign): Update comments.
17943 * regmove.c (regmove_optimize): Likewise.
17944
17945 * ra.h: Removed.
17946
3bef4012 179472009-01-29 Robert Millan <rmh@aybabtu.com>
17948
943327c1 17949 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
17950 * config/i386/kopensolaris-gnu.h: New file. Undefine
3bef4012 17951 `MD_UNWIND_SUPPORT'.
943327c1 17952 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
3bef4012 17953
82b19557 179542009-01-29 Kazu Hirata <kazu@codesourcery.com>
17955
17956 PR tree-optimization/39007
17957 * tree-loop-distribution.c (generate_builtin): Use
17958 recompute_dominator to compute the immediate dominator of the
17959 basic block just after the loop.
17960
a330630f 179612009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
53ae77bf 17962
17963 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
17964 (ASM_OUTPUT_DWARF_PCREL): Define.
17965
a330630f 179662009-01-29 Vladimir Makarov <vmakarov@redhat.com>
cf709bf6 17967
17968 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
17969 * doc/passes.texi: Remove entries about regclass, local-alloc, and
17970 global. Modify entries about regmove and IRA.
17971
17972 * ra-conflict.c: Remove the file.
17973
17974 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
17975
17976 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
17977 (pass_regclass_init): Rename to pass_reginfo_init.
17978
17979 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
17980
17981 * toplev.h (flag_ira): Remove.
17982
17983 * caller-save.c (setup_save_areas): Remove flag_ira.
17984
6db00048 17985 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
cf709bf6 17986
17987 * global.c: Remove the file.
17988
aca60c7b 17989 * opts.c (decode_options): Remove flag_ira.
cf709bf6 17990
17991 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
17992
17993 * regmove.c: Modify file description.
17994 (find_use_as_address, try_auto_increment): Define them only if
17995 AUTO_INC_DEC is defined.
17996 (replacement_quality, replace_in_call_usage, fixup_match_1,
17997 stable_and_no_regs_but_for_p): Remove.
17998 (reg_set_in_bb): Make it static.
17999 (regmove_optimize): Remove flag_ira and code which worked for
18000 !flag_ira.
18001
18002 * local-alloc.c: Remove the file.
18003
18004 * common.opt (fira): Remove.
18005
18006 * ira.c: Include except.h.
18007 (eliminable_regset): Move from global.c.
18008 (mark_elimination): Ditto. Remove flag_ira.
18009 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
18010 equiv_mem_modified, validate_equiv_mem_from_store,
18011 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
18012 contains_replace_regs, memref_referenced_p, memref_used_between_p,
18013 no_equiv, recorded_label_ref): Move from local-alloc.c.
18014 (update_equiv_regs): Ditto. Make it static.
18015 (print_insn_chain, print_insn_chains): Move it from global.c.
6db00048 18016 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
cf709bf6 18017 (build_insn_chain): Ditto. Make it static.
18018 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
18019 Rename to init_live_subregs.
18020 (gate_ira): Remove flag_ira.
18021
18022 * regclass.c: Rename reginfo.c. Change file description.
18023 (FORBIDDEN_INC_DEC_CLASSES): Remove.
a9c1f295 18024 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
cf709bf6 18025 (init_reg_sets_1): Remove code for evaluation of
18026 reg_class_superclasses and losing_caller_save_reg_set.
18027 (init_regs): Remove init_reg_autoinc.
18028 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
18029 ok_for_base_p_nonstrict): Remove.
6db00048 18030 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
cf709bf6 18031 (pass_regclass_init): Rename to pass_reginfo_init. Modify
18032 corresponding entries.
18033 (dump_regclass, record_operand_costs, scan_one_insn,
18034 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
18035 record_address_regs, auto_inc_dec_reg_p): Remove.
18036 (gt-regclass.h): Rename to gt-reginfo.h.
18037
18038 * rtl.h (dump_global_regs, retry_global_alloc,
6db00048 18039 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
cf709bf6 18040
18041 * Makefile.in (RA_H): Remove.
18042 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
18043 Rename regclass.o to reginfo.o.
18044 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
18045 gt-reginfo.h.
18046 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
18047 (GTFILES): Rename regclass.c to reginfo.c.
18048
18049 * passes.c (init_optimization_passes): Remove pass_local_alloc and
6db00048 18050 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
cf709bf6 18051
18052 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
18053 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
18054 Remove flag_ira.
a7a2dd08 18055 (finish_spills): Ditto. Remove code for !flag_ira.
89871bab 18056
237805dd 180572009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
b85ccd2c 18058
18059 PR middle-end/35854
18060 * doc/invoke.texi (rtl debug options): Complete rewrite.
18061 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
18062 to auto_inc_dec".
18063 * mode-switching.c (pass_mode_switching): Rename pass from
18064 "mode-sw" to "mode_sw".
18065 * except.c (pass_convert_to_eh_ranges): Rename pass from
18066 "eh-ranges" to "eh_ranges".
18067 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
18068 to "subreg1".
89871bab 18069
18070
de353418 180712009-01-29 Andrey Belevantsev <abel@ispras.ru>
18072 Alexander Monakov <amonakov@ispras.ru>
18073
18074 PR middle-end/38857
18075 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
18076 register.
18077 (move_exprs_to_boundary): Change return type and pass through
18078 should_move from move_op. Relax assert. Update usage ...
18079 (schedule_expr_on_boundary): ... here. Use should_move instead of
18080 cant_move.
18081 (move_op_orig_expr_found): Indicate that insn was disconnected from
18082 stream.
18083 (code_motion_process_successors): Do not call after_merge_succs
18084 callback if original expression was not found when traversing any of
18085 the branches.
18086 (code_motion_path_driver): Change return type. Update prototype.
18087 (move_op): Update comment. Add a new parameter (should_move). Update
18088 prototype. Set *should_move based on indication provided by
18089 move_op_orig_expr_found.
18090
2fdf186f 180912009-01-28 Pat Haugen <pthaugen@us.ibm.com>
18092
18093 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
18094 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
18095 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
18096 * config/rs6000/rs6000.c (rs6000_override_options): Default
18097 avoid-indexed-addresses on for Power6, off for everything else.
18098 (avoiding_indexed_address_p): New function.
18099 (rs6000_legitimize_address): Use it.
18100 (rs6000_legitimate_address): Likewise.
18101 * config/rs6000/rs6000.md (movXX_updateX): Likewise
18102
c6b3a2da 181032009-01-28 Kazu Hirata <kazu@codesourcery.com>
18104
18105 PR tree-optimization/38997
18106 * tree-loop-distribution.c (generate_memset_zero): Use
18107 POINTER_PLUS_EXPR for a pointer addition.
18108
21676467 181092009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
18110
18111 * config/s390/s390.md (bswap<mode>2): New pattern added.
18112
d3bada4b 181132009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
18114
18115 * config/s390/s390.md (*tls_load_31): Added type attribute.
18116
9925e185 181172009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
18118
18119 * config/s390/s390.md: Fix a few comments.
18120
94ab3c8a 181212009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
18122
18123 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
18124 (*tm<mode>_full): Fixed z10prop attribute.
18125 (*tst<mode>_extimm): Fixed z10prop attribute.
18126 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
18127 (*tstqiCCT_cconly): Fixed z10prop attribute.
18128 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
18129 (*movsi_larl): Fixed z10prop attribute.
18130 (*movsi_zarch): Fixed z10prop attribute.
18131 (*movsi_eas): Fixed z10prop attribute.
18132 (*movhi): Fixed z10prop attribute.
18133 (*movqi): Fixed z10prop attribute.
18134 (*movstrictqi): Fixed z10prop attribute.
18135 (*mov<mode>): Fixed z10prop attribute.
18136 (*movcc): Fixed z10prop attribute.
18137 (*sethighpartdi_64): Fixed z10prop attribute.
18138 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
18139 (*negdi2_sign_cc): Fixed z10prop attribute.
18140 (*negdi2_sign): Fixed z10prop attribute.
18141 (*absdi2_sign_cc): Fixed z10prop attribute.
18142 (*absdi2_sign): Fixed z10prop attribute.
18143 (*negabsdi2_sign_cc): Fixed z10prop attribute.
18144 (*negabsdi2_sign): Fixed z10prop attribute.
18145 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
18146 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
18147 (doloop_si64): Fixed z10prop attribute.
18148 (doloop_si31): Fixed z10prop attribute.
18149 (doloop_long): Fixed z10prop attribute.
18150 (indirect_jump): Fixed z10prop attribute.
18151 (nop): Fixed z10prop attribute.
18152 (main_base_64): Fixed z10prop attribute.
18153 (reload_base_64): Fixed z10prop attribute.
18154
d1b5f73a 181552009-01-28 Jakub Jelinek <jakub@redhat.com>
18156
18157 PR rtl-optimization/38740
a7a2dd08 18158 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
18159 if !optimize.
d1b5f73a 18160 * config/mips/mips.c (mips_reorg): Likewise.
18161
3dc4c394 181622009-01-28 Richard Guenther <rguenther@suse.de>
18163
18164 PR tree-optimization/38926
18165 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
18166 with the correct value id to a value.
18167 (do_regular_insertion): Use the value number of edoubleprime
18168 for the value number of the expr.
18169
18170 Revert
18171 2008-08-21 Richard Guenther <rguenther@suse.de>
6db00048 18172
c9e47fec 18173 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
18174 a PHI ask VN if it is already available.
18175 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
18176 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
3dc4c394 18177
61349811 181782009-01-28 Jakub Jelinek <jakub@redhat.com>
18179
18180 PR middle-end/38934
18181 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
18182 set to varying whenever max has TREE_OVERFLOW set, similarly
18183 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
18184
a98de126 181852009-01-28 Richard Guenther <rguenther@suse.de>
18186
18187 PR middle-end/38908
18188 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
18189 uninitialized aggregate uses in call arguments.
18190
7f70ef19 181912009-01-28 Paolo Bonzini <bonzini@gnu.org>
18192
18193 PR tree-optimization/38984
18194 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
18195 the nothing_id variable if -fno-delete-null-pointer-checks.
18196
8d4c7d80 181972009-01-28 Uros Bizjak <ubizjak@gmail.com>
18198
18199 PR target/38988
18200 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
18201 (set_got_offset_rex64): Ditto.
18202
2687629f 182032009-01-27 H.J. Lu <hongjiu.lu@intel.com>
18204
18205 PR target/38941
18206 * doc/extend.texi: Improve local variable with asm reg.
18207
7a6a48c9 182082009-01-27 Adam Nemet <anemet@caviumnetworks.com>
18209
18210 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
18211 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
18212 was not supplied then set warn_packed_bitfield_compat to the
18213 default value of 1.
18214 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
18215 against 1.
18216
57a28426 182172009-01-27 Richard Guenther <rguenther@suse.de>
18218
18219 PR tree-optimization/38503
18220 * cfgexpand.c (expand_gimple_basic_block): Ignore
18221 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
18222 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
18223 variables that cannot have TBAA applied.
18224 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
18225 statements.
18226
c9e47fec 182272009-01-27 Uros Bizjak <ubizjak@gmail.com>
9a7965a1 18228
18229 PR middle-end/38969
18230 * calls.c (initialize_argument_information): Do not wrap complex
18231 arguments in SAVE_EXPR.
18232
f1d36ba6 182332009-01-26 Andreas Tobler <a.tobler@schweiz.org>
18234
18235 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
c3f75928 18236 (INSTALL_LIBGCC): Revert typo commit.
f1d36ba6 18237
234294b2 182382009-01-26 Richard Guenther <rguenther@suse.de>
18239
18240 PR tree-optimization/38745
18241 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
18242 from special handling.
18243
1fdf9a6c 182442009-01-26 Richard Guenther <rguenther@suse.de>
18245
18246 PR tree-optimization/38745
18247 * tree-ssa.c (execute_update_addresses_taken): Do not include
18248 variables that cannot possibly be a register in not_reg_needs.
18249 Do not clear TREE_ADDRESSABLE on vars that may not become
18250 registers.
18251 * tree-ssa.c (update_alias_info_1): Include those in the set
18252 of addressable vars.
18253
f0e4d727 182542009-01-26 Richard Guenther <rguenther@suse.de>
18255
18256 PR middle-end/38851
18257 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
18258 * tree-ssa-dse.c: Include langhooks.h
18259 (execute_simple_dse): Remove stores with zero size.
18260
e7e7c0fe 182612009-01-24 Jakub Jelinek <jakub@redhat.com>
18262
18263 PR c/38957
18264 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
18265 as PLUS_EXPR.
18266
e6d46e27 182672009-01-24 Julian Brown <julian@codesourcery.com>
18268
18269 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
18270 config/arm/linux-atomic.c.
18271 * config/arm/linux-atomic.c: New.
18272
9a6bab39 182732009-01-24 Eric Botcazou <ebotcazou@adacore.com>
18274
18275 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
18276 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
18277 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
18278
1d86d4d7 182792009-01-24 H.J. Lu <hongjiu.lu@intel.com>
18280
18281 PR c/38938
d83d28c1 18282 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
1d86d4d7 18283 properly.
18284
8db3fb7b 182852009-01-24 Sebastian Pop <sebastian.pop@amd.com>
18286
18287 PR tree-optimization/38953
18288 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
18289 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
18290 (gloog): Split the exit of the scop when the scop exit is a loop exit.
18291 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
18292 changed the CFG.
18293
c52acdd2 182942009-01-24 Paul Brook <paul@codesourcery.com>
18295
18296 * config/arm/neon.md (neon_type): Move to arm.md.
18297 (neon_mov<VSTRUCT>): Add neon_type attribute.
18298 * config/arm/arm.md (neon_type): Move to here.
18299 (conds): Add "unconditioal" and use as default for NEON insns.
18300
f3d84bf8 183012009-01-24 Ben Elliston <bje@au.ibm.com>
18302
18303 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
18304 void *' warning from -Wc++-compat.
18305 * Makefile.in (dominance.o-warn): Remove.
18306
a330630f 183072009-01-23 Paolo Bonzini <bonzini@gnu.org>
cd30b839 18308
18309 PR tree-optimization/38932
18310 * fold-const.c (fold_unary_ignore_overflow): New.
18311 * tree.h (fold_unary_ignore_overflow): Declare.
18312 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
18313 * tree-ssa-sccvn.c (visit_reference_op_load,
18314 simplify_unary_expression): Likewise.
18315
9fd767c5 183162009-01-22 Adam Nemet <anemet@caviumnetworks.com>
18317
18318 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
18319 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
18320 regardless of their type.
18321 * c-common.c (handle_packed_attribute): Don't ignore packed on
18322 bitfields.
18323 * c.opt (Wpacked-bitfield-compat): New warning option.
18324 * stor-layout.c (place_field): Warn if offset of a field changed.
18325 * doc/extend.texi (packed): Mention the ABI change.
18326 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
18327 (Warning Options): Add it to the list.
18328
71ee8477 183292009-01-22 H.J. Lu <hongjiu.lu@intel.com>
18330
18331 * c-opts.c (c_common_post_options): Fix a typo in comments.
18332
1a07ca64 183332009-01-22 Steve Ellcey <sje@cup.hp.com>
18334
18335 PR middle-end/38615
18336 * gimplify.c (gimplify_init_constructor): Fix promotion of const
18337 variables to static.
18338 * doc/invoke.texi (-fmerge-all-constants): Update description.
18339
a6f6ff30 183402009-01-22 Uros Bizjak <ubizjak@gmail.com>
18341
18342 PR target/38931
18343 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
18344 (*movdi_1_rex64): Use type "mmx" for alternative 5.
18345
93fa3baa 183462009-01-22 Richard Earnshaw <rearnsha@arm.com>
18347
18348 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
18349 a word boundary.
18350 (LOCAL_ALIGNMENT): Similarly.
18351
da941808 183522009-01-22 Mark Shinwell <shinwell@codesourcery.com>
a6f6ff30 18353 Joseph Myers <joseph@codesourcery.com>
da941808 18354
18355 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
18356 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
18357 * config/arm/arm-tune.md: Regenerate.
18358 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
18359 -march=iwmmxt2.
18360
00bd398c 183612009-01-22 Mark Shinwell <shinwell@codesourcery.com>
18362
18363 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
18364 version number to five.
18365
b2694749 183662009-01-22 Dodji Seketeli <dodji@redhat.com>
18367
18368 PR c++/38930
aca60c7b 18369 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
b2694749 18370 * c-common.c (set_underlying_type): Likewise.
18371 (is_typedef_decl ): Likewise
18372 * tree.h: Likewise
18373 (set_underlying_type): Likewise.
18374 (is_typedef_type): Likewise.
18375
8aad8efd 183762009-01-21 Vladimir Makarov <vmakarov@redhat.com>
18377
18378 PR middle-end/38587
18379 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
18380 crossing setjmps.
18381
8f057ffc 183822009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
18383
18384 PR bootstrap/37660
18385 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
18386 (LIBGCC_SPEC): Don't define.
18387 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
18388
f92492f7 183892009-01-21 Uros Bizjak <ubizjak@gmail.com>
18390
18391 PR rtl-optimization/38879
18392 * alias.c (base_alias_check): Unaligned access via AND address can
18393 alias all surrounding object types except those with sizes equal
18394 or wider than the size of unaligned access.
18395
c973dc47 183962009-01-21 Dodji Seketeli <dodji@redhat.com>
18397
18398 PR c++/26693
aca60c7b 18399 * c-decl.c (clone_underlying_type): Move this ...
c973dc47 18400 * c-common.c (set_underlying_type): ... here.
f92492f7 18401 Also, make sure the function properly sets TYPE_STUB_DECL() on
c973dc47 18402 the newly created typedef variant type.
18403 (is_typedef_decl ): New entry point.
18404 * tree.h: Added a new member member_types_needing_access_check to
18405 struct tree_decl_non_common.
18406 (set_underlying_type): New entry point.
18407 (is_typedef_type): Likewise.
18408
6e93a4c8 184092009-01-21 Bingfeng Mei <bmei@broadcom.com>
18410
18411 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
18412 Check whether two instructions have memory references that
18413 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
18414 are helper functions for traversing.
18415 * alias.h (insn_alias_sets_confilict_p): New prototypes.
18416 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
18417 not to draw dependency edge for instructions with non-conflicting
18418 alias sets.
18419
a698e1ec 184202009-01-20 Joseph Myers <joseph@codesourcery.com>
18421
18422 PR other/38758
a7a2dd08 18423 * longlong.h: Update copyright years. Use soft-fp license notice.
18424 Sync __clz_tab declaration with glibc.
a698e1ec 18425
b84fdfe2 184262009-01-20 Steve Ellcey <sje@cup.hp.com>
18427
18428 PR target/30687
18429 * doc/extend.texi (syscall_linkage): New.
18430 (version_id): Modify.
18431
c4d6ac81 184322009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
f92492f7 18433 Richard Guenther <rguenther@suse.de>
c4d6ac81 18434
18435 PR tree-optimization/38747
18436 PR tree-optimization/38748
18437 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
18438 conversion if the base address is an indirect reference and the
18439 aliasing sets could cause issues.
18440
d3399492 184412009-01-20 Sebastian Pop <sebastian.pop@amd.com>
18442
89871bab 18443 * common.opt (fgraphite, fgraphite-identity): Add comment for
d3399492 18444 explaining why these options are not documented.
18445
aa3f15b6 184462009-01-20 Sebastian Pop <sebastian.pop@amd.com>
18447
18448 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
18449 gimple_call_lhs is NULL.
18450
a330630f 184512009-01-20 Paolo Bonzini <bonzini@gnu.org>
e077413c 18452
18453 PR target/38868
18454 * emit-rtl.c (adjust_address_1): Make sure memref is never
18455 overwritten.
18456
8c2fa2f7 184572009-01-20 Ben Elliston <bje@au.ibm.com>
18458
18459 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
f92492f7 18460 const qualifier from arg parameter. Remove unnecessary cast to char *.
8c2fa2f7 18461 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
18462 const qualifier from arg 2.
18463
94cd11b9 184642009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
18465
f92492f7 18466 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
94cd11b9 18467
c950adc6 184682009-01-19 Vladimir Makarov <vmakarov@redhat.com>
18469
18470 PR c/38869
18471 * rtl.h (reinit_regs): New prototype.
18472 * regclass.c: Include ira.h.
18473 (reinit_regs): New.
18474 * Makefile.in (regclass.o): Add ira.h.
18475 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
18476
02421213 184772009-01-18 H.J. Lu <hongjiu.lu@intel.com>
18478
18479 PR target/38736
18480 * c-common.c (handle_aligned_attribute): Use
18481 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
18482 default alignment value.
18483
18484 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
18485
18486 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
18487 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
18488
18489 * doc/extend.texi: Update __attribute__ ((aligned)). Document
18490 __BIGGEST_ALIGNMENT__.
18491
18492 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
18493
2ac47fdf 184942009-01-18 Richard Guenther <rguenther@suse.de>
18495
18496 PR tree-optimization/38819
18497 * tree-flow.h (operation_could_trap_helper_p): Declare.
18498 * tree-eh.c (operation_could_trap_helper_p): Export.
18499 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
18500 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
18501 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
18502 are about to insert a possibly trapping instruction and fail
18503 in this case.
18504
b338dafb 185052009-01-18 Andreas Schwab <schwab@suse.de>
18506
18507 * doc/install.texi (Configuration): Remove obsolete paragraph
18508 about use of --with-gnu-ld with --with-gnu-as.
18509
91f54ca3 185102009-01-18 Kazu Hirata <kazu@codesourcery.com>
18511
18512 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
18513 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
18514 Follow spelling conventions.
18515
76cd80c7 185162009-01-18 Ben Elliston <bje@au.ibm.com>
18517
18518 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
18519 C++ warning about implicit conversion from void * to struct
18520 bitmap_head_def *.
18521 (bitmap_obstack_free): Likewise for bitmap_element *.
df1573c4 18522 * Makefile.in (bitmap.o-warn): Remove.
76cd80c7 18523
89bcc083 185242009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
18525
18526 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
18527
3c560c26 185282009-01-17 Sebastian Pop <sebastian.pop@amd.com>
18529 Tobias Grosser <tobi.grosser@amd.com>
18530
18531 * graphite.c (graphite_trans_scop_block): Do not block single
18532 nested loops.
18533
e106fc2e 185342009-01-16 Alexandre Oliva <aoliva@redhat.com>
18535
18536 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
18537 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
18538 test with assertion.
18539
cd6342bd 185402009-01-16 Richard Guenther <rguenther@suse.de>
18541
18542 PR tree-optimization/38835
18543 PR middle-end/36227
18544 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
18545 and INT + PTR -> (INT)(PTR p+ INT) folding.
18546 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
18547
298bbd8d 185482009-01-16 Adam Nemet <anemet@caviumnetworks.com>
18549
18550 PR target/38554
18551 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
18552 the subreg from a lowpart subreg if it is also casting the value.
18553
9e5f07d3 185542009-01-16 Sebastian Pop <sebastian.pop@amd.com>
18555 Tobias Grosser <tobi.grosser@amd.com>
18556
18557 * graphite.c (compare_prefix_loops): New.
18558 (build_scop_canonical_schedules): Rewritten.
18559 (graphite_transform_loops): Move build_scop_canonical_schedules
18560 after build_scop_iteration_domain.
18561
35fb1eb0 185622009-01-16 Sebastian Pop <sebastian.pop@amd.com>
18563 Tobias Grosser <tobi.grosser@amd.com>
18564
89871bab 18565 * graphite.c (add_conditions_to_domain): Add the loops to
35fb1eb0 18566 the dimension of the iteration domain. Do copy the domain
18567 only when it exists.
18568 (build_scop_conditions_1): Do not call add_conditions_to_domain.
18569 (add_conditions_to_constraints): New.
18570 (can_generate_code_stmt, can_generate_code): Removed.
18571 (gloog): Do not call can_generate_code.
18572 (graphite_transform_loops): Call add_conditions_to_constraints
18573 after building the iteration domain.
18574
99e2edfd 185752009-01-16 Jakub Jelinek <jakub@redhat.com>
18576
18577 PR tree-optimization/38789
18578 * tree-ssa-threadedge.c
18579 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
18580 __builtin_constant_p.
18581
237805dd 185822009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cff725a2 18583
18584 * dce.c (delete_unmarked_insns): Reversed the order that insns are
18585 examined before deleting them.
89871bab 18586
daaa06b2 185872009-01-16 Richard Earnshaw <rearnsha@arm.com>
18588
18589 * function.c (aggregate_value_p): Correctly extract the function
18590 type from CALL_EXPR_FN lookup.
18591
237805dd 185922009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
e262db7d 18593
18594 * config/picochip/picochip.c (picochip_override_options): Revert
18595 CFI asm flag disable commited previously.
18596
d635c475 185972009-01-15 Sebastian Pop <sebastian.pop@amd.com>
18598 Tobias Grosser <tobi.grosser@amd.com>
18599 Jan Sjodin <jan.sjodin@amd.com>
18600
18601 * graphite.c (scan_tree_for_params): On substractions negate
18602 all the coefficients of the term.
18603 (clast_to_gcc_expression_red): New. Handle reduction expressions
18604 of more than two operands.
18605 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
18606 (get_vdef_before_scop): Handle also the case of default definitions.
18607
f5b7c8a5 186082009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
18609
18610 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
18611 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
18612 Also use them when walking CALL_INSN_FUNCTION_USAGE.
18613
9e1c1bf0 186142009-01-15 H.J. Lu <hongjiu.lu@intel.com>
18615 Joey Ye <joey.ye@intel.com>
18616
18617 PR middle-end/37843
18618 * cfgexpand.c (expand_stack_alignment): Don't update stack
18619 boundary nor check incoming stack boundary here.
18620 (gimple_expand_cfg): Update stack boundary and check incoming
18621 stack boundary here.
18622
237805dd 186232009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
66aca59d 18624
f92492f7 18625 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
89871bab 18626
eb940a48 186272009-01-14 Jakub Jelinek <jakub@redhat.com>
18628
18629 PR rtl-optimization/38245
18630 * calls.c (expand_call): Add stack arguments to
18631 CALL_INSN_FUNCTION_USAGE even for pure calls (when
18632 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
18633 in regs and partially in memory or BLKmode arguments.
18634 (emit_library_call_value_1): Add stack arguments to
18635 CALL_INSN_FUNCTION_USAGE even for pure calls (when
18636 ACCUMULATE_OUTGOING_ARGS).
18637 * dce.c: Include tm_p.h.
18638 (find_call_stack_args): New function.
18639 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
18640 argument.
18641 (mark_insn): Call find_call_stack_args for CALL_Ps.
18642 (prescan_insns_for_dce): Walk insns backwards in bb rather than
18643 forwards. Allocate and free arg_stores bitmap if needed, pass it
18644 down to deletable_insn_p, don't mark stores set in arg_stores
18645 bitmap, clear the bitmap at the beginning of each bb.
18646 * Makefile.in (dce.o): Depend on $(TM_P_H).
18647
26f62ff4 186482009-01-14 Michael Meissner <gnu@the-meissners.org>
18649
18650 PR target/22599
f92492f7 18651 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
18652 to make sure the insn is a conditional test (bug 22599). Reformat a
18653 few long lines.
26f62ff4 18654
87736b69 186552009-01-14 Sebastian Pop <sebastian.pop@amd.com>
18656
18657 PR middle-end/38431
18658 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
18659 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
18660 (gloog): Do not call cleanup_tree_cfg.
89871bab 18661 (graphite_transform_loops): Call cleanup_tree_cfg after all
87736b69 18662 scops have been code generated.
18663
4dbb1e0c 186642009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
18665 * doc/gty.texi (Invoking the garbage collector): Added new node
18666 and section documenting ggc_collect.
18667
48d49ced 186682009-01-14 Richard Guenther <rguenther@suse.de>
18669
18670 PR tree-optimization/38826
18671 PR middle-end/38477
18672 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
18673 initialization notes only if we actually emitted a warning.
18674 (intra_create_variable_infos): Add constraints for a result decl
18675 that is passed by hidden reference.
18676 (build_pred_graph): Mark all related variables non-direct on
18677 address-taking.
18678
bef7b1de 186792009-01-14 Nick Clifton <nickc@redhat.com>
18680
18681 * ira-conflicts.c: Include addresses.h for the definition of
18682 base_reg_class.
f92492f7 18683 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
18684 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
bef7b1de 18685
cab55469 186862009-01-13 Vladimir Makarov <vmakarov@redhat.com>
18687
18688 PR target/38811
18689 * Makefile.in (ira-lives.o): Add except.h.
18690
18691 * ira-lives.c: Include except.h.
18692 (process_bb_node_lives): Process can_throw_internal.
18693
cac5cd08 186942009-01-13 Jakub Jelinek <jakub@redhat.com>
18695
18696 PR rtl-optimization/38774
18697 * combine.c (simplify_set): When undoing cc_use change, don't do
18698 PUT_CODE on the newly created comparison, but instead put back the
18699 old comparison.
18700
309ef6b4 187012009-01-13 Joseph Myers <joseph@codesourcery.com>
18702
18703 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
18704 values. Remove duplicate arm8 entry.
18705
1ffa850c 187062009-01-13 Sebastian Pop <sebastian.pop@amd.com>
18707
18708 PR tree-optimization/38786
18709 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
18710 the SSA_NAME case of expand_scalar_variables_expr.
18711 Set the type of an expression to the type of its assign statement.
18712 (expand_scalar_variables_expr): Also gather the scalar computation
18713 used to index the memory access. Do not pass loop_p.
18714 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
18715 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
8d4c7d80 18716 the gimple_stmt_iterator where it inserts new code.
18717 Do not pass loop_p.
1ffa850c 18718 (copy_bb_and_scalar_dependences): Do not pass loop_p.
18719 (translate_clast): Update call to copy_bb_and_scalar_dependences.
18720
de540910 187212009-01-13 Sebastian Pop <sebastian.pop@amd.com>
18722
18723 * graphite.h (debug_value): Removed.
18724 * graphite.c (debug_value): Removed.
18725
3d1f6e40 187262009-01-13 Richard Earnshaw <rearnsha@arm.com>
18727
f92492f7 18728 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
18729 ldrd/strd with two 32-bit instructions.
3d1f6e40 18730
0f978633 187312009-01-13 Richard Earnshaw <rearnsha@arm.com>
18732
f92492f7 18733 * config/arm/arm.c (struct processors): Pass for speed down into
18734 cost helper functions.
0f978633 18735 (const_ok_for_op): Handle COMPARE and inequality nodes.
18736 (arm_rtx_costs_1): Rewrite.
18737 (arm_size_rtx_costs): Update prototype.
18738 (arm_rtx_costs): Pass speed down to helper functions.
18739 (arm_slowmul_rtx_costs): Rework cost calculations.
18740 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
18741 (arm_9e_rtx_costs): Likewise.
18742
d6c48eee 187432009-01-13 Uros Bizjak <ubizjak@gmail.com>
18744
18745 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
f92492f7 18746 relocations of local symbols wider than UNITS_PER_WORD are not valid.
d6c48eee 18747 (alpha_legitimize_address): Do not split local symbols wider than
18748 UNITS_PER_WORD into HIGH/LO_SUM parts.
18749
91e64380 187502009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
18751
18752 PR bootstrap/38580
18753 * gcc.c (process_command): Replace call to execvp with calls
18754 to pex_one and exit.
18755
4addc9bf 187562009-01-03 Anatoly Sokolov <aesok@post.ru>
18757
18758 PR target/29141
18759 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
18760 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
18761 variant for devices with 3-byte PC.
aca60c7b 18762 (__tablejump_elpm__): New.
4addc9bf 18763
f0d0d842 187642009-01-12 Jakub Jelinek <jakub@redhat.com>
18765
18766 PR c/32041
18767 * c-parser.c (c_parser_postfix_expression): Allow `->' in
18768 offsetof member-designator, handle it as `[0].'.
18769
55e0e460 187702009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18771
18772 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
18773 function when not using named sections on targets with named sections
18774 if branch distance is less than 262132.
18775
afb33771 187762009-01-12 Richard Earnshaw <rearnsha@arm.com>
18777
18778 * combine.c (combine_instructions): Recompute
18779 optimize_this_for_speed_p for each BB in the main combine loop.
18780
a6c1b5f0 187812009-01-12 Tomas Bily <tbily@suse.cz>
18782
18783 PR middlend/38385
d6c48eee 18784 * tree-loop-distribution.c (prop_phis): New function.
18785 (generate_builtin): Call prop_phis.
18786 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
a6c1b5f0 18787
3a43bfe9 187882009-01-12 Jakub Jelinek <jakub@redhat.com>
18789
18790 PR tree-optimization/38807
18791 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
18792 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
18793
95fb59aa 187942009-01-11 Adam Nemet <anemet@caviumnetworks.com>
18795
18796 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
18797 subreg of op0 to the original op0.
18798
237805dd 187992009-01-11 Laurent GUERBY <laurent@guerby.net>
e0b61fdb 18800
18801 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
89871bab 18802
a32384d7 188032009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
18804
18805 PR debug/7055
943327c1 18806 * mips-tfile.c (parse_def): Fix parsing of def strings
a32384d7 18807 starting with digits.
18808
a9467ac5 188092009-01-10 Jakub Jelinek <jakub@redhat.com>
18810
18811 PR target/38695
18812 * config/arm/arm.c (arm_is_long_call_p): Don't call
18813 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
18814
100329af 188152009-01-09 Steven Bosscher <steven@gcc.gnu.org>
18816
18817 * regrename.c (regrename_optimize): Fix dumping.
18818 (find_oldest_value_reg): Preserve REG_POINTER.
18819 (copy_hardreg_forward_1): Likewise.
18820
51e52fe3 188212009-01-09 Diego Novillo <dnovillo@google.com>
18822
6db00048 18823 * gimple.h (struct gimple_statement_base) <uid>: Document
51e52fe3 18824 the restrictions on its use.
18825 (gimple_uid): Tidy.
18826 (gimple_set_uid): Tidy.
18827
e1e05028 188282009-01-09 Jakub Jelinek <jakub@redhat.com>
18829
18830 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
18831 zero guard even if align_bytes != 0 and count is smaller than
18832 size_needed.
18833
a330630f 188342009-01-09 Vladimir Makarov <vmakarov@redhat.com>
0c42b4f4 18835
18836 PR rtl-optimization/38495
d6c48eee 18837 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
0c42b4f4 18838 (add_range_and_copies_from_move_list): Print all added ranges.
18839 Add ranges to memory optimized destination.
18840
8f538fc3 188412009-01-09 Jakub Jelinek <jakub@redhat.com>
18842
ede11ffa 18843 PR target/38686
18844 PR target/38708
18845 * config/i386/i386.c (override_options): Reject
18846 -mstringop-strategy=rep_8byte with -m32.
18847 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
18848 to 1. Do count comparison against epilogue_size_needed at compile
18849 time even when count_exp was constant forced into register. For
18850 size_needed don't jump to epilogue, instead just avoid aligning
18851 and invoke the body algorithm. If need_zero_guard, add zero guard
18852 even if count is non-zero, but smaller than size_needed + number of
18853 bytes that could be stored for alignment.
18854 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
18855 to 1. If need_zero_guard, add zero guard even if count is non-zero,
18856 but smaller than size_needed + number of bytes that could be stored
18857 for alignment. Compare size_needed with epilogue_size_needed instead
18858 of desired_align - align, don't adjust size_needed, pass
18859 epilogue_size_needed to the epilogue expanders.
18860
8f538fc3 18861 PR c/35742
d6c48eee 18862 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
8f538fc3 18863
21a47bc9 188642009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18865
18866 * pa.c (last_address): Change to unsigned.
18867 (update_total_code_bytes): Change argument to unsigned. Don't
18868 check if insn addresses are set.
18869 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
18870 addresses are not set.
18871 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
18872
ce090c51 188732009-01-09 Nick Clifton <nickc@redhat.com>
18874
18875 * config/sh/symbian.c: Replace uses of DECL_INLINE with
18876 DECL_DECLARED_INLINE_P.
18877
4e7cb1c5 188782009-01-09 Jakub Jelinek <jakub@redhat.com>
18879
70b6a6e8 18880 PR middle-end/38347
18881 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
18882 GET_MODE (op0) in operand_subword_force calls.
18883
4e7cb1c5 18884 PR middle-end/38771
18885 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
18886 fold_convert arg0 operands to TREE_TYPE (op0) first.
18887
d0388252 188882009-01-08 Vladimir Makarov <vmakarov@redhat.com>
18889
18890 * params.def (ira-max-conflict-table-size): Decrease default value
18891 to 1000.
18892
12c697cd 188932009-01-08 Jakub Jelinek <jakub@redhat.com>
18894
18895 PR tree-optimization/37031
18896 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
18897 on parameter_set.
18898 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
18899 allocate it using gc instead of heap, use VEC_quick_push instead of
18900 VEC_safe_push.
18901 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
18902 instead of heap, use VEC_quick_push instead of VEC_safe_push.
18903 * tree-data-ref.h (struct access_matrix): Change matrix to gc
18904 allocated vector from heap allocated.
18905 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
18906 * tree-loop-linear.c (linear_transform_loops): Allocate nest
18907 vector only after perfect_loop_nest_depth call.
18908
59835a90 189092009-01-08 Sebastian Pop <sebastian.pop@amd.com>
18910 Jan Sjodin <jan.sjodin@amd.com>
18911
18912 PR tree-optimization/38559
18913 * graphite.c (debug_value, copy_constraint,
18914 swap_constraint_variables, scale_constraint_variable, ): New.
18915 (get_lower_bound, get_upper_bound): Removed.
18916 (graphite_trans_bb_strip_mine): Clean up this code that works
18917 only for constant number of iterations. Fully copy upper and
18918 lower bound constraints, not only the constant part of them.
18919 * graphite.h (debug_value): Declared.
18920
1c48f190 189212009-01-08 Ira Rosen <irar@il.ibm.com>
18922
18923 PR tree-optimization/37194
18924 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
89871bab 18925 Don't add the cost of cost model guard in prologue to scalar
1c48f190 18926 outside cost in case of known number of iterations.
18927
9538c1d1 189282009-01-07 Nathan Froyd <froydnj@codesourcery.com>
18929 Alan Modra <amodra@bigpond.net.au>
18930
18931 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
18932 non-word-aligned REG+CONST addressing.
18933
292add68 189342009-01-07 Uros Bizjak <ubizjak@gmail.com>
18935
18936 PR target/38706
18937 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
18938 free_after_compilation when outputting a thunk.
18939 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
18940 Do not call free_after_compilation here.
18941
bbc3ff90 189422009-01-07 Uros Bizjak <ubizjak@gmail.com>
18943
18944 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
bbc3ff90 18945 (ix86_valid_target_attribute_inner_p): Ditto.
18946
145bdf6a 189472009-01-07 Jan Sjodin <jan.sjodin@amd.com>
18948
18949 PR tree-optimization/38492
18950 PR tree-optimization/38498
18951 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
18952 * tree-chrec.h (scev_is_linear_expression): Declared.
18953 * graphite.c (graphite_cannot_represent_loop_niter): New.
18954 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
18955 (graphite_loop_normal_form): Use gcc_assert.
18956 (scan_tree_for_params): Use CASE_CONVERT.
18957 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
18958 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
18959 Use gcc_assert. Discard scops that contain unhandled cases.
18960 (build_scop_conditions): Return a boolean status for unhandled cases.
18961 (strip_mine_profitable_p): Print the loop number, not its depth.
18962 (is_interchange_valid): Pass the depth of the loop nest, don't
18963 recompute it wrongly.
18964 (graphite_trans_bb_block): Same.
18965 (graphite_trans_bb_block): Print tentative of loop blocking.
18966 (graphite_trans_scop_block): Do not print that the loop has been
18967 blocked.
18968 (graphite_transform_loops): Do not handle scops that contain condition
18969 scalar phi nodes.
18970
b49a1e34 189712009-01-07 H.J. Lu <hongjiu.lu@intel.com>
18972
18973 AVX Programming Reference (December, 2008)
18974 * config/i386/avxintrin.h (_mm256_stream_si256): New.
18975 (_mm256_stream_pd): Likewise.
18976 (_mm256_stream_ps): Likewise.
18977
18978 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
18979 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
18980 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
18981 (bdesc_special_args): Add __builtin_ia32_movntdq256,
18982 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
18983 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
18984 (ix86_expand_special_args_builtin): Likewise.
18985
18986 * config/i386/sse.md (AVXMODEDI): New.
18987 (avx_movnt<mode>): Likewise.
18988 (avx_movnt<mode>): Likewise.
18989 (<sse>_movnt<mode>): Remove AVX support.
18990 (sse2_movntv2di): Likewise.
18991
4f1351a2 189922009-01-07 Richard Guenther <rguenther@suse.de>
18993
18994 PR middle-end/38751
18995 * fold-const.c (extract_muldiv): Remove obsolete comment.
18996 (fold_plusminus_mult_expr): Undo MINUS_EXPR
18997 to PLUS_EXPR canonicalization for the canonicalization.
18998
aad359a1 189992009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
19000
19001 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
19002 hosted cross-compilers generating less efficient code.
19003
2061be83 190042009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
19005
19006 * function.h (rtl_data): Add a dbr_scheduled_p field.
19007 * reorg.c (dbr_schedule): Set it.
19008 (gate_handle_delay_slots): Check it.
19009 * config/mips/mips.c (mips_base_delayed_branch): Delete.
19010 (mips_reorg): Check flag_delayed_branch instead of
19011 mips_base_delayed_branch.
19012 (mips_override_options): Don't set mips_base_delayed_branch
19013 or flag_delayed_branch.
19014
6b806743 190152009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
19016
19017 PR rtl-optimization/38426.
19018 * ira.c (ira): Set current_function_is_leaf earlier.
19019
095050fc 190202009-01-06 Jakub Jelinek <jakub@redhat.com>
19021
19022 PR rtl-optimization/38722
19023 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
19024 too early, only set a flag and modify after last possible
19025 undo_all point.
19026
0c87fb2b 190272009-01-06 Janis Johnson <janis187@us.ibm.com>
19028
19029 PR c/34252
19030 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
19031 * real.c (decimal_single_format): Correct values of emin and emax.
19032 (decimal_double_format): Ditto.
19033 (decimal_quad_format): Ditto.
19034 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
19035 computation of DECnn_MIN and DECnn_MAX for corrected values of
19036 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
19037 __DECnn_MIN__, and adjust its computation for the corrected value
19038 of emin.
19039
710ab45a 190402009-01-06 Jan Hubicka <jh@suse.cz>
19041
19042 PR target/38744
f92492f7 19043 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
710ab45a 19044
0a46e111 190452009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
19046
19047 * doc/contrib.texi (Contributors): Slightly adjust the end note.
19048 Add Robert Clark to the list of testers.
19049
30095c10 190502009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 19051 Kai Tietz <kai.tietz@onevision.com>
30095c10 19052
f92492f7 19053 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
19054 * config/i386/i386.c (ix86_expand_call): Add clobbers.
30095c10 19055
acb79b5c 190562009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 19057 Kai Tietz <kai.tietz@onevision.com>
acb79b5c 19058
f92492f7 19059 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
19060 for w64 ABI.
19061 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
acb79b5c 19062 (ix86_nsaved_regs): Count only general purpose regs.
19063 (ix86_nsaved_sseregs): New.
19064 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
19065 to 16 for w64; compute padding and size of sse reg save area.
bbc3ff90 19066 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
19067 general purpose regs.
acb79b5c 19068 (ix86_emit_save_sse_regs_using_mov): New.
19069 (ix86_expand_prologue): Save SSE regs if needed.
19070 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
19071 (ix86_emit_restore_sse_regs_using_mov): New.
19072 (ix86_expand_epilogue): Save SSE regs if needed.
19073
90a81a4b 190742009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 19075 Kai Tietz <kai.tietz@onevision.com>
90a81a4b 19076
f92492f7 19077 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
19078 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
19079 functions when accumulate outgoing args is off.
90a81a4b 19080
7521b07f 190812009-01-06 H.J. Lu <hongjiu.lu@intel.com>
19082
19083 PR bootstrap/38742
19084 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
19085 before using pseudos_have_intersected_live_ranges_p.
19086
19087 * ira-int.h (ira_assert): Always define.
19088
dbd61cd0 190892009-01-06 H.J. Lu <hongjiu.lu@intel.com>
19090
19091 AVX Programming Reference (December, 2008)
19092 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
19093 (_mm256_permute2_pd): Likewise.
19094 (_mm_permute2_ps): Likewise.
19095 (_mm256_permute2_ps): Likewise.
19096 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
19097 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
19098
19099 * config/i386/i386.c (ix86_builtins): Remove
19100 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
19101 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
19102 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
19103 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
19104 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
19105 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
19106 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
19107 __builtin_ia32_vpermil2ps256.
19108 (ix86_init_mmx_sse_builtins): Updated.
19109 (ix86_expand_args_builtin): Likewise.
19110
c4b36071 191112009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19112
dbd61cd0 19113 * pa.c (output_call): Relocate non-jump insns in the delay slot of
19114 long absolute calls when generating PA 2.0 code.
c4b36071 19115
95c83f01 191162009-01-05 Vladimir Makarov <vmakarov@redhat.com>
19117
19118 PR rtl-optimization/38583
19119 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
19120
19121 * params.def (ira-max-conflict-table-size): New.
19122
19123 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
89871bab 19124
95c83f01 19125 * ira.h (ira_conflicts_p): New external definition.
89871bab 19126
95c83f01 19127 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
19128 table. Report this. Return result of building.
19129 (ira_build_conflicts): Use ira_conflicts_p. Check result of
19130 building conflict table.
19131
bbc3ff90 19132 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
95c83f01 19133 (ira_color): Use ira_conflicts_p.
89871bab 19134
95c83f01 19135 * global.c: Include ira.h.
19136 (pseudo_for_reload_consideration_p, build_insn_chain): Use
19137 ira_conflicts_p.
19138
19139 * Makefile.in (global.o): Add ira.h.
89871bab 19140
95c83f01 19141 * ira-build.c (mark_all_loops_for_removal,
19142 propagate_some_info_from_allocno): New.
19143 (remove_unnecessary_allocnos): Call
19144 propagate_some_info_from_allocno.
19145 (remove_low_level_allocnos): New.
19146 (remove_unnecessary_regions): Add parameter. Call
19147 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
19148 parameter to remove_unnecessary_regions.
19149 (ira_build): Remove all regions but root if the conflict table was
19150 not built. Update conflict hard regs for allocnos crossing calls.
19151
19152 * ira.c (ira_conflicts_p): New global.
19153 (ira): Define and use ira_conflicts_p.
19154
19155 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
19156 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
bbc3ff90 19157 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
89871bab 19158
da279129 191592009-01-06 Ben Elliston <bje@au.ibm.com>
19160
19161 * gengtype-lex.l (YY_NO_INPUT): Define.
19162
7ec31215 191632009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
19164
19165 PR c/34911
da279129 19166 * c-common.c (handle_vector_size_attribute): Also reject
19167 BOOLEAN_TYPE types.
7ec31215 19168
d51c4d4c 191692009-01-05 Sebastian Pop <sebastian.pop@amd.com>
19170
19171 PR tree-optimization/38492
19172 * graphite.c (rename_map_elt, debug_rename_elt,
bbc3ff90 19173 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
19174 rename_map_elt_info, eq_rename_map_elts,
19175 get_new_name_from_old_name, bb_in_sese_p): Moved around.
d51c4d4c 19176 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
19177 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
19178 (sese_build_livein_liveouts): New.
19179 (new_sese, free_sese): New.
19180 (new_scop): Call new_sese.
19181 (free_scop): Call free_sese.
19182 (rename_variables_from_edge, rename_phis_end_scop): Removed.
19183 (register_old_new_names): Renamed register_old_and_new_names.
19184 (register_scop_liveout_renames, add_loop_exit_phis,
19185 insert_loop_close_phis, struct igp,
19186 default_liveout_before_guard, add_guard_exit_phis,
19187 insert_guard_phis, copy_renames): New.
19188 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
19189 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
19190 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
19191 (scop_adjust_phis_for_liveouts): New.
19192 (gloog): Call scop_adjust_phis_for_liveouts.
19193
19194 * graphite.h (struct sese): Documented. Added fields liveout,
bbc3ff90 19195 num_ver and livein.
d51c4d4c 19196 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
19197 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
19198 (struct scop): Added field liveout_renames.
19199 (SCOP_LIVEOUT_RENAMES): New.
19200
57c0fd3c 192012009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
19202
19203 PR tree-optimization/38510
19204 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
19205 (translate_clast): Call recompute_all_dominators before
19206 graphite_verify.
19207 (gloog): Call recompute_all_dominators before graphite_verify.
19208
192092009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
237805dd 19210 Jan Sjodin <jan.sjodin@amd.com>
57c0fd3c 19211
19212 PR tree-optimization/38500
19213 * graphite.c (create_sese_edges): Call fix_loop_structure after
19214 splitting blocks.
19215
237805dd 192162009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
e4c85211 19217
19218 * config.gcc: Add m32r*-*-rtems*.
19219 * config/m32r/rtems.h: New file.
19220
e7ae053d 192212009-01-05 Ben Elliston <bje@au.ibm.com>
19222
19223 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
19224 (.po.pox): Likewise.
19225 (po/gcc.pot): Likewise.
19226
aad5aaaf 192272009-01-04 David S. Miller <davem@davemloft.net>
19228
19229 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
19230 (STARTING_FRAME_OFFSET): Always set to zero.
19231
f323bb78 192322009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
19233
19234 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
19235 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
19236 fixed-point types, and vectors of the same.
19237
b73796fa 192382009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
19239
19240 * config/mips/sync.md (*mb_barrier): Rename to...
19241 (*memory_barrier): ...this.
19242
c17add59 192432009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
19244
19245 * doc/extend.texi (Function Attributes): Move @cindex after @item
6c6bce65 19246 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
c17add59 19247 and put in alphabetical order. Fix 'target' name and put in order.
19248 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
19249 typos.
19250
dc178856 192512009-01-04 Uros Bizjak <ubizjak@gmail.com>
19252
19253 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
19254 (memory_barrier): Expand as unspec instead of unspec_volatile.
19255 Remove mem:BLK from insn operands. Use Pmode scratch register.
19256 (*memory_barrier): Define as unspec instead of unspec_volatile.
19257 Use (match_dup 0) as input operand.
19258
19259 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
19260 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
19261 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
19262 scratch register. Remove operand 1.
19263 (*stbar): Define as unspec instead of unspec_volatile.
19264 Use (match_dup 0) as input operand, remove (const_int 8).
19265 (*membar): Define as unspec instead of unspec_volatile.
19266 Use (match_dup 0) as input operand, remove input operand 2.
19267
19268 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
19269 (memory_barrier): Expand as unspec instead of unspec_volatile.
19270 Remove mem:BLK from insn operands. Use Pmode scratch register.
19271 (*memory_barrier): Define as unspec instead of unspec_volatile.
19272 Use (match_dup 0) as input operand.
19273
19274 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
19275 Remove mem:BLK from insn operands. Use Pmode scratch register.
19276 Set volatile flag on operand 0.
19277 (*memory_barrier): New insn pattern.
19278
19279 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
19280 insn operands.
19281 (*memory_barrier): Use (match_dup 0) as input operand.
19282
19283 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
19284 Remove mem:BLK from insn operands. Use Pmode scratch register.
19285 Set volatile flag on operand 0.
bbc3ff90 19286 (*mb_internal): New insn pattern.
dc178856 19287
19288 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
19289
fef299ce 192902009-01-04 Steven Bosscher <steven@gcc.gnu.org>
19291
19292 PR middle-end/38586
19293 * function.c (struct temp_slot): Move to the section of the file
19294 that deals with temp slots. Remove field 'address'.
19295 (temp_slot_address_table): New hash table of address -> temp slot.
19296 (struct temp_slot_address_entry): New struct, items for the table.
19297 (temp_slot_address_compute_hash, temp_slot_address_hash,
19298 temp_slot_address_eq, insert_temp_slot_address): Support functions
19299 for the new table.
19300 (find_temp_slot_from_address): Rewrite to use the new hash table.
19301 (remove_unused_temp_slot_addresses): Remove addresses of temp
19302 slots that have been made available.
19303 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
19304 worker function for remove_unused_temp_slot_addresses.
19305 (assign_stack_temp_for_type): Don't clear the temp slot address list.
19306 Add the temp slot address to the address -> temp slot map.
19307 (update_temp_slot_address): Update via insert_temp_slot_address.
19308 (free_temp_slots): Call remove_unused_temp_slot_addresses.
19309 (pop_temp_slots): Likewise.
19310 (init_temp_slots): Allocate the address -> temp slot map, or empty
19311 the map if it is already allocated.
19312 (prepare_function_start): Initialize temp slot processing.
19313
961c8f72 193142009-01-04 Steven Bosscher <steven@gcc.gnu.org>
19315
19316 PR middle-end/38584
19317 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
19318 Calculate the size of all stack vars assuming no packing of stack
19319 vars will happen, replacing a quadratic algorithm with a linear one.
19320
c2ef487a 193212009-01-03 Jakub Jelinek <jakub@redhat.com>
19322
19323 PR target/38707
19324 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
19325 can't be used.
19326
d2472193 193272009-01-03 Diego Novillo <dnovillo@google.com>
19328
19329 * doc/contrib.texi: Update contributions.
19330
062b4460 193312009-01-03 Jakub Jelinek <jakub@redhat.com>
19332
6f52ebeb 19333 PR c++/38705
19334 * builtins.c (fold_builtin_memory_op): Give up if either operand
19335 is volatile. Set srctype or desttype to non-qualified version
19336 of the other type.
19337
062b4460 19338 PR c/38700
19339 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
19340 and FUNCTION_DECLs.
19341
237805dd 193422009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
7e009ff5 19343
19344 PR rtl-optimization/35805
19345 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
19346 problem if fast dce is able to remove any instructions.
19347 * dce.c (dce_process_block): Fix dump message.
89871bab 19348
c9f77b30 193492009-01-02 Mark Mitchell <mark@codesourcery.com>
19350
19351 PR 33649
19352 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
19353
e70f5f27 193542009-01-02 Jakub Jelinek <jakub@redhat.com>
19355
19356 PR middle-end/38690
19357 * tree-flow.h (op_code_prio, op_prio): New prototypes.
19358 * tree-pretty-print.c (op_code_prio): New function.
19359 (op_prio): No longer static. Use op_code_prio.
19360 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
19361 Use op_prio and op_code_prio to determine if () should be
19362 printed around operand(s) or not.
19363
19364 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
19365 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
19366 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
19367 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
19368 pp_character instead of pp_string for single letter printing.
19369
db8edef0 193702009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
19371
19372 * doc/extend.texi: Fix '#pragma GCC option' typo.
19373
237805dd 193742009-01-02 Richard Guenther <rguenther@suse.de>
6d37614e 19375
e6f4e61f 19376 * doc/install.texi (--enable-checking): Mention different
19377 default for stage1.
19378 (--enable-stage1-checking): Document.
6d37614e 19379
d3a42176 193802009-01-01 Andrew Pinski <pinskia@gmail.com>
19381
19382 PR middle-end/30142
19383 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
19384 case to be an error.
19385
5c8520a4 193862009-01-02 Ben Elliston <bje@au.ibm.com>
19387
19388 * config/fp-bit.h (pack_d): Constify argument.
19389 * config/fp-bit.c (makenan): Constify return type. Remove casts.
19390 (isnan): Constify argument.
19391 (isinf): Likewise.
19392 (iszero): Likewise.
19393 (pack_d): Likewise.
19394 (_fpadd_parts): Constify return type.
19395 (_fpmul_parts): Likewise.
19396 (_fpdiv_parts): Likewise.
19397
d241bf0d 193982009-01-01 Jakub Jelinek <jakub@redhat.com>
19399
19400 PR c/36489
19401 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
19402 warn about overwriting initializer with side-effects or
19403 -Woverride-init if !IMPLICIT.
19404 (output_init_element): Likewise. Pass IMPLICIT down to
19405 add_pending_init.
19406 (process_init_element): Add IMPLICIT argument. Pass it down
19407 to output_init_element.
19408 (push_init_element, pop_init_level, set_designator): Adjust
19409 process_init_element callers.
19410 (set_nonincremental_init, set_nonincremental_init_from_string):
19411 Adjust add_pending_init callers.
19412 (output_pending_init_elements): Adjust output_init_element callers.
19413 * c-tree.h (process_init_element): Adjust prototype.
19414 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
19415 process_init_element callers.
7dfbd804 19416
19417\f
19418Copyright (C) 2009 Free Software Foundation, Inc.
19419
19420Copying and distribution of this file, with or without modification,
19421are permitted in any medium without royalty provided the copyright
19422notice and this notice are preserved.