]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
6ff33500 12009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
2 Pat Haugen <pthaugen@us.ibm.com>
3 Revital Eres <ERES@il.ibm.com>
4
5 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
6 Change some of the functions called by macros to being called
7 through a pointer, so debug functions can be inserted if
8 -mdebug=addr or -mdebug=cost.
9 (rs6000_preferred_reload_class_ptr): Ditto.
10 (rs6000_secondary_reload_class_ptr): Ditto.
11 (rs6000_secondary_memory_needed_ptr): Ditto.
12 (rs6000_cannot_change_mode_class_ptr): Ditto.
13 (rs6000_secondary_reload_inner): Ditto.
14 (rs6000_legitimize_reload_address): Ditto.
15 (rs6000_legitimize_reload_address_ptr): Ditto.
16 (rs6000_mode_dependent_address): Ditto.
17 (rs6000_mode_dependent_address_ptr): Ditto.
18
19 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
20 function to return true if the mode allows reg + integer
21 addresses.
22 (virtual_stack_registers_memory_p): New function to return true if
23 the address refers to a virtual stack register.
24 (rs6000_legitimate_offset_address_p): Move code to say whether a
25 mode supports reg+int addressing to reg_offset_addressing_ok_p and
26 call it.
27 (rs6000_legitimate_address_p): Add checks for modes that only can
28 do reg+reg addressing. Start adding VSX support.
29 (rs6000_legitimize_reload_address): Ditto.
30 (rs6000_legitimize_address): Ditto.
31 (rs6000_debug_legitimate_address_p): New debug functions for
32 -mdebug=addr and -mdebug=cost.
33 (rs6000_debug_rtx_costs): Ditto.
34 (rs6000_debug_address_costs): Ditto.
35 (rs6000_debug_adjust_cost): Ditto.
36 (rs6000_debug_legitimize_address): Ditto.
37 (rs6000_legitimize_reload_address_ptr): Point to call normal
38 function or debug function. Make functions called via pointer
39 static.
40 (rs6000_mode_dependent_address_ptr): Ditto.
41 (rs6000_secondary_reload_class_ptr): Ditto.
42 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
43 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
44 into a friendlier error.
45 (rs6000_init_builtins): Add initial VSX support.
46 (rs6000_adjust_cost): Fix some spacing issues.
47
48 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
49 (REG_CLASS_NAMES): Ditto.
50 (REG_CLASS_CONTENTS): Ditto.
51 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
52 pointer, to add -mdebug=addr support.
53 (CANNOT_CHANGE_MODE_CLASS): Ditto.
54 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
55 -mdebug=addr support.
56 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
57 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
58 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
59
60 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
61 16-bit values.
62 (bswapsi*): Set attribute types for load/store. Add combiner
63 patterns to eliminate zero extend on 64-bit.
64 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
65 stdbrx if the hardware supports those instructions.
66
0f32121e 672009-06-25 Ian Lance Taylor <iant@google.com>
68
69 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
70 (Link Options): Document -static-libstdc++.
71
5260b939 722009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
73
74 PR target/38731
75 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
76 DATA_ALIGNMENT instead.
77
917f08fa 782009-06-25 Richard Guenther <rguenther@suse.de>
79
80 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
81 indirect references against the callused/escaped solutions.
82 (call_may_clobber_ref_p_1): Likewise.
83
eaadb0b5 842009-06-25 Martin Jambor <mjambor@suse.cz>
85
86 PR tree-optimization/40493
87 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
88 (enum unscalarized_data_handling): New type.
89 (handle_unscalarized_data_in_subtree): Return what has been done.
90 (load_assign_lhs_subreplacements): Handle left flushes differently.
91 (sra_modify_assign): Use unscalarized_data_handling, simplified
92 condition determining whether to remove the statement.
93
f5494808 942009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
f26f4496 95
96 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
97 excerpt - @ should be doubled for texinfo.
f5494808 98
ef51d1e3 992009-06-24 Ian Lance Taylor <iant@google.com>
100
101 * config/arc/arc.c: Include "df.h".
102 (arc_attribute_table): Make static. Move higher in file.
103 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
104 (output_shift): Initialize n later to avoid warning.
105 * config/arm/arm.c (arm_attribute_table): Make static. Move
106 higher in file.
107 * config/avr/avr.c (avr_attribute_table): Make static. Move
108 higher in file.
109 (reg_class_tab): Change array type from int to enum reg_class.
110 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
111 LABEL_REF.
112 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
113 (lshrhi3_out): Likewise.
114 (class_likely_spilled_p): Change return type to bool.
115 (avr_rtx_costs): Use local code variable with enum type.
116 * config/avr/avr.md (movmemhi): Use add_reg_note.
117 (andhi3, andsi3): Don't use AS2 with "and".
118 (iorhi3, iorsi3): Don't use AS2 with "or".
119 * config/avr/avr-protos.h (class_likely_spilled_p): Update
120 declaration.
121 * config/crx/crx.c: Include "df.h".
122 (crx_attribute_table): Make static.
123 * config/m32r/m32r.c: Include "df.h".
124 (m32r_attribute_table): Make static. Move higher in file.
125 (pop): Use add_reg_note.
126 (block_move_call): Change 0 to LCT_NORMAL in function call.
127 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
128 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
129 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
130 declare, not just when TREE_CODE is defined.
131 * config/m68hc11/m68hc11.c: Include "expr.h".
132 (m68hc11_attribute_table): Make static. Move higher in file.
133 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
134 function call.
135 (m68hc11_register_indirect_p): Likewise.
136 (m68hc11_function_arg_padding): Change return type to enum
137 direction.
138 (emit_move_after_reload): Use add_reg_note.
139 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
140 (m68hc11_split_logical): Likewise.
141 (m68hc11_rtx_costs): Add local code_and outer_code variables with
142 enum type.
143 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
144 to VOIDmode in function call.
145 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
146 tree is defined.
147 (m68hc11_split_logical): Update declaration.
148 (m68hc11_function_arg_padding): Update declaration.
149 * config/mcore/mcore.c (regno_reg_class): Change form array of int
150 to array of enum reg_class.
151 (mcore_attribute_table): Make static. Move higher in file.
152 (mcore_rtx_costs): Add cast to enum type.
153 * config/mcore/mcore.h (regno_reg_class): Update declaration.
154 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
155 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
156 in file.
157 * config/sh/predicates.md (trapping_target_operand): Rename and to
158 and_expr.
159 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
160 higher in file.
161 * config/spu/spu.c (spu_attribute_table): Make static. Move
162 higher in file.
163 * config/v850/v850.c (v850_attribute_table): Make static. Move
164 higher in file.
165 (v850_rtx_costs): Use local code with enum type.
166 (expand_epilogue): Add cast.
167 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
168
5b9c0169 1692009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
170
171 PR target/40515
172 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
173 -m2a-single-only and -m2a-nofpu.
174 * config/sh/sh.opt: Document m2a generates FPU code.
175
0e841940 1762009-06-24 Anatoly Sokolov <aesok@post.ru>
177
178 * defaults.h (CAN_ELIMINATE): Provide default.
179 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
180 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
181 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
182 * config/spu/spu.h (CAN_ELIMINATE): Delete.
183 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
184 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
185 * config/cris/cris.h (CAN_ELIMINATE): Delete.
186 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
187 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
188 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
189
a239165a 1902009-06-24 DJ Delorie <dj@redhat.com>
191
192 * mep-ext-cop.cpu: Fix copyright notice.
193 * mep-default: Fix copyright notice.
194 * mep-core: Fix copyright notice.
195 * mep: Fix copyright notice.
196 * mep-ivc2: Fix copyright notice.
197 * mep-c5: Fix copyright notice.
198
c86a70e3 1992009-06-24 Denis Chertykov <chertykov@gmail.com>
200
201 * doc/contrib.texi (Contributors):
202
0af25806 2032009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
204
205 PR middle-end/40501
206 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
207 src and dst operands if necessary.
208
46222c18 2092009-06-23 DJ Delorie <dj@redhat.com>
210
211 Add MeP port.
212 * config.gcc: Add mep support.
213 * recog.c: Resurrect validate_replace_rtx_subexp().
214 * recog.h: Likewise.
215 * config/mep/: Add new port:
216 * config/mep/constraints.md: New file.
217 * config/mep/default.h: New file.
218 * config/mep/intrinsics.h: New file.
219 * config/mep/intrinsics.md: New file.
220 * config/mep/ivc2-template.h: New file.
221 * config/mep/mep-c5.cpu: New file.
222 * config/mep/mep-core.cpu: New file.
223 * config/mep/mep-default.cpu: New file.
224 * config/mep/mep-ext-cop.cpu: New file.
225 * config/mep/mep-intrin.h: New file.
226 * config/mep/mep-ivc2.cpu: New file.
227 * config/mep/mep-lib1.asm: New file.
228 * config/mep/mep-lib2.c: New file.
229 * config/mep/mep-pragma.c: New file.
230 * config/mep/mep-protos.h: New file.
231 * config/mep/mep-tramp.c: New file.
232 * config/mep/mep.c: New file.
233 * config/mep/mep.cpu: New file.
234 * config/mep/mep.h: New file.
235 * config/mep/mep.md: New file.
236 * config/mep/mep.opt: New file.
237 * config/mep/predicates.md: New file.
238 * config/mep/t-mep: New file.
239
7ab76cec 2402009-06-23 Ian Lance Taylor <iant@google.com>
241
242 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
243 from loose_warn into c_loose_warn and from strict_warn into
244 c_strict_warn. Set and substitute warn_cxxflags. Check for
245 --enable-build-with-cxx. Set and substitute
246 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
247 * Makefile.in (CXXFLAGS): New variable.
248 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
249 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
250 the default is the same as $(STRICT_WARN).
251 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
252 (CXX): New variable.
253 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
254 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
255 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
256 (HOST_LIBS): New variable.
257 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
258 (ALL_CXXFLAGS): New variable.
259 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
260 * doc/install.texi (Configuration): Document
261 --enable-build-with-cxx, --with-stage1-ldflags,
262 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
263 * configure: Rebuild.
264
f3a8f217 2652009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
cb41fde2 266
f3a8f217 267 * config/arm/arm.c (arm_override_options): Fix braces and formatting
268 from previous commit.
cb41fde2 269
988e7f78 2702009-06-23 Ian Lance Taylor <iant@google.com>
271
272 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
273
6577bf6b 2742009-06-23 Ian Lance Taylor <iant@google.com>
275
276 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
277 with ATTRIBUTE_UNUSED.
278
9c878e1b 2792009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
280 Pat Haugen <pthaugen@us.ibm.com>
f3a8f217 281 Revital Eres <eres@il.ibm.com>
9c878e1b 282
283 * config.in (HAVE_AS_POPCNTD): Add default definition.
284 (HAVE_AS_LWSYNC): Ditto.
285
286 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
287 release number.
288 (gcc_cv_as_powerpc_cmpb): Ditto.
289 (gcc_cv_as_powerpc_dfp): Ditto.
290 (gcc_cv_as_powerpc_vsx): Ditto.
291 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
292 supporting the popcntd/lwsync instructions.
293 (gcc_cv_as_powerpc_lwsync): Ditto.
294 * configure: Regenerate.
295
296 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
297 -mcpu=native and -mcpu=power7.
298 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
299
300 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
301 a variable instead of a mask to reduce the number of mask bits.
302 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
303 (-mbit-word): Ditto.
304 (-mregnames): Ditto.
305 * config/rs6000/rs6000.opt (-mupdate): Ditto.
306 (-mfused-madd): Ditto.
307
308 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
309 2.06 instructions.
310 (-mvsx): New switch for VSX instructions.
311 (-misel): Move from a variable to a mask to allow it to be set by
312 -mcpu=.
313
314 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
315 function declaration to an array declaration.
316 (rs6000_hard_regno_nregs): New external array declaration.
317
318 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
319 files included by rs6000.md.
320
321 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
322 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
323
324 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
325 a target mask.
326 (rs6000_debug_reg): New -mdebug= variables.
327 (rs6000_debug_addr): Ditto.
328 (rs6000_debug_cost): Ditto.
329 (rs6000_pmode): New variable to hold Pmode.
330 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
331 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
332 calculated at compiler start.
333 (rs6000_hard_regno_nregs): Change function to an array which holds
334 HARD_REGNO_NREGS calculated at compiler start.
335 (rs6000_explicit_options): Delete isel field.
336 (rs6000_vector_unit): New array to hold which vector unit
337 supports arithmetic options for a given type.
338 (rs6000_vector_mem): New array to hold which vector unit supports
339 memory reference operations for a given type.
340 (rs6000_vector_align): New array to given the alignment of each
341 vector type.
342 (power7_cost): New basic costs for power7.
343 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
344 (rs6000_hard_regno_nregs_internal): New function, moved from
345 HARD_REGNO_NREGS, to calculate the number of registers each hard
346 register takes for each type.
347 (rs6000_debug_reg_print): New function for -mdebug=reg support.
348 (rs6000_debug_vector_unit): New array, map rs6000_vector to
349 string.
350 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
351 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
352 unit information here so it is calculated once at compiler startup
353 time.
354 (rs6000_override_options): Make -misel a target mask. Add more
355 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
356 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
357 -mdebug=cost.
358 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
359 (rs6000_handle_option): Move -misel from variable to target mask.
360 (rs6000_builtin_mask_for_load): Add VSX support.
361 (rs6000_conditional_register_usage): Ditto.
362 (USE_ALTIVEC_FOR_ARG_P): Ditto.
363 (function_arg_boundary): Ditto.
364 (rs6000_expand_builtin): Ditto.
365 (def_builtin): Make abort message a little friendlier.
366 (rs6000_emit_int_cmove): Add support for 64-bit isel.
367
368 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
369 assembler support the popcntd instruction instead of a vsx
370 instruction to enable power7 support.
371 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
372 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
373 option to the assembler if -mcpu=native.
374 (ASM_CPU_NATIVE_SPEC): Ditto.
375 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
376 ISA 2.06 features.
377 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
378 the lwsync instruction.
379 (enum processor_type): Add PROCESSOR_POWER7.
380 (rs6000_debug_reg): New -mdebug= options.
381 (rs6000_debug_addr): Ditto.
382 (rs6000_debug_cost): Ditto.
383 (rs6000_isel): Delete.
384 (enum rs6000_vector): New enum to say what vector unit we have.
385 (VECTOR_UNIT_*): New macros to say which vector unit has
386 arithmetic operations for a given type.
387 (VECTOR_MEM_*): New macros to say which vector unit has memory
388 operations for a given type.
389 (TARGET_LDBRX): Whether the machine supports the ldbrx
390 instruction.
391 (TARGET_ISEL): Delete, -misel moved to be a mask.
392 (TARGET_ISEL64): New macro for 64-bit isel support.
393 (UNITS_PER_VSX_WORD): New macro.
394 (POINTER_SIZE): Move to be an external variable, rather than
395 calculating whether we are generating 32 ot 64-bit code.
396 (Pmode): Ditto.
397 (STACK_BOUNDARY): Add VSX support.
398 (LOCAL_ALIGNMENT): Ditto.
399 (SLOW_UNALIGNED_ACCESS): Ditto.
400 (VSX_REGNO_P): New macro for VSX support.
401 (VFLOAT_REGNO_P): Ditto.
402 (VINT_REGNO_P): Ditto.
403 (VLOGICAL_REGNO_P): Ditto.
404 (VSX_VECTOR_MODE): Ditto.
405 (VSX_SCALAR_MODE): Ditto.
406 (VSX_MODE): Ditto.
407 (VSX_MOVE_MODE): Ditto.
408 (VSX_REG_CLASS_P): Ditto.
409 (HARD_REGNO_NREGS): Instead of calling a function, use an array
410 lookup.
411 (UNITS_PER_SIMD_WORD): Add VSX support.
412 (MODES_TIEABLE_P): Ditto.
413 (STARTING_FRAME_OFFSET): Ditto.
414 (STACK_DYNAMIC_OFFSET): Ditto.
415 (EPILOGUE_USES): Ditto.
416 (REGNO_REG_CLASS): Move to array lookup.
417 (CLASS_MAX_NREGS): Ditto.
418 (rs6000_vector_reg_class): Add declaration.
419 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
420 overlap with the floating point and Altivec registers.
421
422 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
423
424 * config/rs6000/driver-rs6000.c (asm_names): New static array to
425 give the appropriate asm switches if -mcpu=native.
426 (host_detect_local_cpu): Add support for "asm".
427 (host_detect_local_cpu): Follow GNU code guidelines for name.
428
429 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
430 -mbit-word to a variable instead of being a target mask.
431
432 * config/rs6000/sync.md (lwsync): If the assembler supports it,
433 emit the lwsync instruction instead of emitting the instruction as
434 an integer constant.
435
436 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
437 fixuns_trundfsi2, move expander into rs6000.md.
438
439 * config/rs6000/rs6000.md (cpu): Add power7.
440 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
441 (logical predicate patterns): Change the single instruction
442 primitives that set CR0 to be fast_compare instead of compare.
443 (norsi*): Ditto.
444 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
445 (popcntddi2): Ditto.
446 (popcount<mode>): Ditto.
447 (floating multiply/add insns): Name the floating point
448 multiply/add insns.
449 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
450 (isel_unsigned_<mode>): Ditto.
451 (fixuns_trundfsi2): Move expander here from spe.md.
452 (smindi3): Define if we have -misel on 64-bit systems.
453 (smaxdi3): Ditto.
454 (umindi3): Ditto.
455 (umaxdi3): Ditto.
456
795cff42 4572009-06-23 Anatoly Sokolov <aesok@post.ru>
458
459 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
460 extra_objs.
461 * config/avr/avr.c (avr_current_device): New variable.
462 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
463 (avr_arch, mcu_type_s): Move to avr.h.
464 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
465 default_data_section_start fields.
466 (avr_arch): Moved from avr.c.
467 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
468 library_name fields.
469 (avr_current_device, avr_mcu_types, avr_arch_types,
470 avr_device_to_arch, avr_device_to_data_start,
471 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
472 (EXTRA_SPEC_FUNCTIONS): Define.
473 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
474 options mapping. Use device_to_arch and device_to_data_start insted.
475 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
476 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
477 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
478 * config/avr/driver-avr.c: New file.
479 * config/avr/avr-devices.c: New file.
480
5dc67ab1 4812009-06-23 Jakub Jelinek <jakub@redhat.com>
482
331cf53a 483 * var-tracking.c (unshare_variable): Force initialized to
484 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
485 (set_variable_part): Likewise.
486 (struct variable_union_info): Remove pos_src field.
487 (vui_vec, vui_allocated): New variables.
488 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
489 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
490 == 1 use a simpler sorting algorithm. Compute pos field right
491 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
492 Avoid quadratic comparison if !flag_var_tracking_uninit.
493 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
494 unshare_variable unconditionally.
495 (dataflow_set_different_2): Removed.
496 (dataflow_set_different): Don't traverse second hash table.
497 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
498 unconditionally to var_reg_set or var_mem_set.
499 (emit_notes_in_bb): Likewise.
500 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
501 unshare_variable.
502 (emit_note_insn_var_location): Don't set initialized to
503 VAR_INIT_STATUS_INITIALIZED early.
504 (vt_finalize): Free vui_vec if needed, clear vui_vec and
505 vui_allocated.
506 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
507
5dc67ab1 508 * tree-object-size.c (addr_object_size): Instead of checking
509 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
510 are no FIELD_DECLs following it.
511
9bc1852a 5122009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
513
514 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
515 order to match bswaps with signed source operands.
516
20167aff 5172009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
518
519 * sdbout.c (sdbout_one_type): Fix braces in switch.
520
97709d23 5212009-06-23 Richard Guenther <rguenther@suse.de>
522
523 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
524 member.
525 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
526 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
527 var_callused, callused_tree, var_storedanything, storedanything_tree,
528 var_integer, integer_tree): Remove global variables.
529 (new_var_info): Do not pass new id, append the new var to the
530 global variable vector.
531 (do_ds_constraint): Use is_global_var member of the variable-info.
532 (new_scalar_tmp_constraint_exp): Adjust.
533 (create_function_info_for): Likewise.
534 (create_variable_info_for): Likewise.
535 (find_what_var_points_to): Remove dead code.
536 (init_base_vars): Simplify.
537 (compute_points_to_sets): Adjust.
538
731d1ca3 5392009-06-22 Adam Nemet <anemet@caviumnetworks.com>
540
541 * combine.c (try_combine): Dump information about the insns we're
542 combining.
543
af1b1eb5 5442009-06-22 Adam Nemet <anemet@caviumnetworks.com>
545
546 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
547 check when calling force_to_mode on TRUNCATE's operand.
548
d6cf890d 5492009-06-22 Ian Lance Taylor <iant@google.com>
550
551 * config/rs6000/rs6000.opt: Move msched-epilog before
552 msched-prolog.
553
02cfc9c9 5542009-06-22 Steven Bosscher <steven@gcc.gnu.org>
555
556 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
557
9ffe1a0b 5582009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
559
560 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
561 override library linkage flags such as -static-libgcc or
562 -shared-libgcc.
563
c74a692b 5642009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
565
566 * config/m68k/m68k-devices.def: Add line for MCF5221x.
567
b91bd472 5682009-06-22 Ian Lance Taylor <iant@google.com>
569
570 * config/linux.opt: Put mglibc ahead of muclibc.
571
572 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
573 for duplicate decls.
574
19b30c2a 5752009-06-22 Matthias Klose <doko@ubuntu.com>
576
577 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
578
61a9d3ca 5792009-06-22 Steven Bosscher <steven@gcc.gnu.org>
580
581 PR objc/28050
582 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
583 instead of NULL if a parser error occurs.
584
d87ccabd 5852009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
586
587 * dwarf2out.c (dwarf2_debug_hooks): Initialize
588 non-DWARF2_DEBUGGING_INFO version.
589
13dc7657 5902009-06-22 Kai Tietz <kai.tietz@onevision.com>
591
82a3cc73 592 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
593 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
594
595 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
13dc7657 596 (LIBGCC2_TF_CEXT): Define.
597 (TF_SIZE): Define.
598
e8bd8f68 5992009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
600
601 PR target/40463
602 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
603
06e0f8b2 6042009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
605
82a3cc73 606 * config/arm/arm.c (arm_override_options): Disable
607 -mcaller-super-interworking and -mcallee-super-interworking.
608 * doc/invoke.texi (ARM Options): Document this.
06e0f8b2 609
110eae03 6102009-06-22 Nathan Sidwell <nathan@codesourcery.com>
611
612 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
613 * config/arm/constraints.md (j): New constraint for movw operands.
614 (N): Remove thumb2 meaning.
615 * config/arm/arm.md (*arm_movw): Delete.
616 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
617 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
618 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
619
ec91c4af 6202009-06-22 Martin Jambor <mjambor@suse.cz>
621
622 PR tree-optimization/40492
623 * tree-sra.c (sra_modify_assign): Pass zero offsets to
624 build_ref_for_offset.
625
971ba038 6262009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
627
628 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
629 JUMP_TABLE_DATA_P predicates where applicable.
630 * auto-inc-dec.c: Ditto.
631 * builtins.c: Ditto.
632 * caller-save.c: Ditto.
633 * calls.c: Ditto.
634 * cfgcleanup.c: Ditto.
635 * cfglayout.c: Ditto.
636 * cfgrtl.c: Ditto.
637 * combine.c: Ditto.
638 * combine-stack-adj.c: Ditto.
639 * cse.c: Ditto.
640 * cselib.c: Ditto.
641 * dbxout.c: Ditto.
642 * df-scan.c: Ditto.
643 * dse.c: Ditto.
644 * dwarf2asm.c: Ditto.
645 * dwarf2out.c: Ditto.
646 * emit-rtl.c: Ditto.
647 * except.c: Ditto.
648 * explow.c: Ditto.
649 * expmed.c: Ditto.
650 * expr.c: Ditto.
651 * final.c: Ditto.
652 * function.c: Ditto.
653 * fwprop.c: Ditto.
654 * gcse.c: Ditto.
655 * genpreds.c: Ditto.
656 * genrecog.c: Ditto.
657 * ifcvt.c: Ditto.
658 * ira-costs.c: Ditto.
659 * ira-lives.c: Ditto.
660 * jump.c: Ditto.
661 * loop-iv.c: Ditto.
662 * lower-subreg.c: Ditto.
663 * modulo-sched.c: Ditto.
664 * optabs.c: Ditto.
665 * postreload.c: Ditto.
666 * print-rtl.c: Ditto.
667 * recog.c: Ditto.
668 * reginfo.c: Ditto.
669 * regmove.c: Ditto.
670 * reload1.c: Ditto.
671 * reload.c: Ditto.
672 * reorg.c: Ditto.
673 * rtlanal.c: Ditto.
674 * rtl.c: Ditto.
675 * sched-vis.c: Ditto.
676 * sdbout.c: Ditto.
677 * sel-sched-ir.c: Ditto.
678 * simplify-rtx.c: Ditto.
679 * targhooks.c: Ditto.
680 * var-tracking.c: Ditto.
681 * vmsdbgout.c: Ditto.
682
74f3a0fa 6832009-06-22 Matthias Klose <doko@ubuntu.com>
684
685 * Makefile.in (install-plugin): Always use DESTDIR.
686
1b448af3 6872009-06-22 Olivier Hainque <hainque@adacore.com>
688
689 * config/pa/pa.c (output_call): Don't optimize post call jumps
690 into return address adjustments if the call may throw.
691
e6ac8414 6922009-06-21 Richard Earnshaw <rearnsha@arm.com>
693
694 * arm.c (thumb1_output_casesi): New function.
695 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
696 optimizing for size or PIC.
697 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
698 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
699 (casesi): Handle Thumb-1 when optimizing for size or PIC.
700 (thumb1_casesi_internal_pic): New expand rule.
701 (thumb1_casesi_dispatch): New pattern.
702 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
703 thumb-1 mode.
704 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
705 in the text seciton when PIC or optimizing for size.
706 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
707 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
708 preservation properties of code.
709 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
710 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
711 (__gnu_thumb1_case_si): New function.
712 * t-arm (LIB1ASMSRC): Define here.
713 (LIB1ASMFUNCS): Add some common functions.
714 * t-arm-elf (LIB1ASMSRC): Delete.
715 (LIB1ASMFUNCS): Append to existing set.
716 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
717 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
718 * t-symbian (LIB1ASMFUNCS): Likewise.
719 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
720 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
721
a974c7bc 7222009-06-21 Richard Guenther <rguenther@suse.de>
723
724 PR tree-optimization/38729
725 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
726 to loops with a single exit if -fno-expensive-optimizations.
727
a8f6ad2b 7282009-06-21 Jakub Jelinek <jakub@redhat.com>
729
730 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
731 (dataflow_set): Change vars type from htab_t to shared_hash.
732 (shared_hash_pool, empty_shared_hash): New variables.
733 (vars_clear): Removed.
734 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
735 shared_hash_find_slot_unshare, shared_hash_find_slot,
736 shared_hash_find_slot_noinsert, shared_hash_find): New
737 static inlines.
738 (shared_hash_unshare, shared_hash_destroy): New functions.
739 (unshare_variable): Unshare set->vars if shared, use
740 shared_hash_htab.
741 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
742 (get_init_value, find_src_set_src, dump_dataflow_set,
743 clobber_variable_part, emit_notes_for_differences): Use
744 shared_hash_htab.
745 (dataflow_set_init): Remove second argument, set vars to
746 empty_shared_hash instead of creating a new htab.
747 (dataflow_set_clear): Call shared_hash_destroy and set vars
748 to empty_shared_hash instead of calling vars_clear.
749 (dataflow_set_copy): Don't call vars_copy, instead just share
750 the src htab with dst.
751 (variable_union): Use shared_hash_*, use initially NO_INSERT
752 lookup if set->vars is shared. Don't keep slot cleared before
753 calling unshare_variable. Unshare set->vars if needed.
754 Even ->refcount == 1 vars must be unshared if set->vars is shared
755 and var needs to be modified.
756 (variable_canonicalize): New function.
757 (dataflow_set_union): If dst->vars is empty, just share src->vars
758 with dst->vars and traverse with variable_canonicalize to canonicalize
759 and unshare what is needed.
760 (dataflow_set_different): If old_set and new_set use the same shared
761 htab, they aren't different. If number of htab elements is different,
762 htabs are different. Use shared_hash_*.
763 (dataflow_set_destroy): Call shared_hash_destroy instead of
764 htab_delete.
765 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
766 second argument to dataflow_set_init.
767 (vt_initialize): Likewise. Initialize shared_hash_pool and
768 empty_shared_hash, move bb in/out initialization afterwards.
769 Use variable_htab_free instead of NULL as changed_variables del hook.
770 (variable_was_changed): Change type of second argument to pointer to
771 dataflow_set. When inserting var into changed_variables, bump
772 refcount. Unshare set->vars if set is shared htab and slot needs to
773 be cleared.
774 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
775 lookup if set->vars is shared. Unshare set->vars if needed.
776 Even ->refcount == 1 vars must be unshared if set->vars is shared
777 and var needs to be modified. Adjust variable_was_changed caller.
778 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
779 vars must be unshared if set->vars is shared and var needs to be
780 modified. Adjust variable_was_changed caller.
781 (emit_note_insn_var_location): Don't pool_free var.
782 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
783 instead of 1.
784 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
785 free_alloc_pool on shared_hash_pool.
786
2eed1d69 7872009-06-20 Anthony Green <green@moxielogic.com>
788
789 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
790 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
791
09d9c774 7922009-06-20 Richard Guenther <rguenther@suse.de>
793
794 * tree-ssa-structalias.c (find_func_aliases): For memset use
795 a constraint from NULL if we memset to zero.
796 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
797 we explicitly handle that do not read from memory.
798 (call_may_clobber_ref_p_1): Properly handle builtins that may
799 set errno.
800
c2abd8e4 8012009-06-20 Richard Guenther <rguenther@suse.de>
802
803 PR tree-optimization/40495
804 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
805 (new_scalar_tmp_constraint_exp): New function.
806 (process_constraint): Do not create temporary decls.
807 (process_all_all_constraints): Likewise.
808 (handle_const_call): Likewise.
809 (create_function_info_for): Do not set decl.
810
0a0a59fa 8112009-06-19 Ian Lance Taylor <iant@google.com>
812
813 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
814 (rs6000_attribute_table): Make static; move before use.
815
01d4d739 8162009-06-19 Eric Botcazou <ebotcazou@adacore.com>
817
818 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
819 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
820 Propagate the TREE_READONLY flag without overwriting it.
821 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
822 Propagate the TREE_READONLY flag onto the result.
823 (process_call_operands): Move around. Use correct constant value.
824
e4aeee53 8252009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
826
827 PR target/40482
828 * config/arm/arm.c (thumb_shiftable_const): Truncate val to
829 32 bits.
830 * config/arm/arm.md: Likewise.
831
0f32121e 8322009-06-19 Ian Lance Taylor <iant@google.com>
6163a125 833
834 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
835 to GIMPLE_ERROR_MARK.
836
837 * c-typeck.c (build_conditional_expr): Add op1_original_type and
838 op2_original_type parameters. Warn about using different enum
839 types.
840 * c-parser.c (c_parser_conditional_expression): Pass original
841 types to build_conditional_expr.
842 * c-tree.h (build_conditional_expr): Update declaration.
843
c451bee6 8442009-06-19 Ian Lance Taylor <iant@google.com>
845
846 * config/i386/i386.c (ix86_function_specific_save): Test that
847 fields match values, rather than testing the values are in a
848 certain range.
849
047fdd47 8502009-06-19 Richard Guenther <rguenther@suse.de>
851
852 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
853 ADDR_EXPR pointers.
854 (ptr_derefs_may_alias_p): Likewise.
855 (ptr_deref_may_alias_ref_p_1): New function.
856 (ptr_deref_may_alias_ref_p): Likewise.
857 (ref_maybe_used_by_call_p_1): Handle builtins that are not
858 covered by looking at the ESCAPED solution.
859 (call_may_clobber_ref_p_1): Likewise.
860 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
861 Handle NULL_TREE offset. Do not produce redundant constraints.
862 (process_all_all_constraints): New helper function.
863 (do_structure_copy): Use it.
864 (handle_lhs_call): Likewise.
865 (find_func_aliases): Handle some builtins with pointer arguments
866 and/or return values explicitly.
867
8e7b72c4 8682009-06-19 Ian Lance Taylor <iant@google.com>
869
870 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
871
d8708296 8722009-06-19 Ian Lance Taylor <iant@google.com>
873
874 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
875
1a7c0ccb 8762009-06-19 Ian Lance Taylor <iant@google.com>
877
878 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
879 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
880 version.
881
882 * c-decl.c (finish_decl): If -Wc++-compat, warn about
883 uninitialized const.
884
843bd2fa 8852009-06-19 Ian Lance Taylor <iant@google.com>
886
887 * dse.c (struct store_info): Rename bitmap field to bmap. Change
888 all uses.
889
890 * c-decl.c (in_struct, struct_types): Remove.
891 (struct c_binding): Add in_struct field.
892 (c_binding_ptr): Define type, along with VEC.
893 (struct c_struct_parse_info): Define.
894 (struct_parse_info): New static variable.
895 (bind): Initialize in_struct field.
896 (start_struct): Remove enclosing_in_struct and
897 enclosing_struct_types parameters. Add
898 enclosing_struct_parse_info parameter. Change all callers. Set
899 struct_parse_info rather than in_struct and struct_types.
900 (grokfield): If -Wc++-compat and there is a symbol binding for the
901 field name, set the in_struct flag and push it on the
902 struct_parse_info->fields vector.
903 (warn_cxx_compat_finish_struct): New static function.
904 (finish_struct): Remove enclosing_in_struct and
905 enclosing_struct_types parameters. Add
906 enclosing_struct_parse_info parameter. Change all callers. Don't
907 set C_TYPE_DEFINED_IN_STRUCT here. Call
908 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
909 parameter. Only push on struct_types if warn_cxx_compat.
910 (finish_enum): Only push on struct_types if warn_cxx_compat.
911 (declspecs_add_type): Add loc parameter. Change all callers.
912 Change all error calls to error_at. Pass loc, not input_location,
913 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
914 defined in a struct. If -Wc++-compat and parsing a struct, record
915 that a typedef name was used.
916 * c-parser.c (c_parser_declspecs): Get location to pass to
917 declspecs_add_type.
918 (c_parser_struct_or_union_specifier): Update calls to start_struct
919 and finish_struct.
920 * c-tree.h (struct c_struct_parse_info): Declare.
921 (finish_struct, start_struct): Update declarations.
922 (declspecs_add_type): Update declaration.
923
4a76ab2a 9242009-06-19 Ian Lance Taylor <iant@google.com>
925
926 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
927 variable with an anonymous type.
928
1f853dda 9292009-06-19 Uros Bizjak <ubizjak@gmail.com>
930
931 * see.c: Remove for real.
932
b3154a1f 9332009-06-19 Uros Bizjak <ubizjak@gmail.com>
934
935 * optabs.h (enum optab_index): Add new OTI_significand.
936 (significand_optab): Define corresponding macro.
937 * optabs.c (init_optabs): Initialize significand_optab.
938 * genopinit.c (optabs): Implement significand_optab using
939 significand?f2 patterns.
940 * builtins.c (expand_builtin_mathfn): Handle
941 BUILT_IN_SIGNIFICAND{,F,L}.
942 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
943 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
944
945 * config/i386/i386.md (significandxf2, significand<mode>2): New
946 expanders to implement significandf, significand and significandl
947 built-ins as inline x87 intrinsics.
948
b32505d2 9492009-06-18 Anatoly Sokolov <aesok@post.ru>
950
951 * config/avr/avr.c (avr_override_options): Remove setting value of
952 PARAM_INLINE_CALL_COST.
953
8c1f2562 9542009-06-18 Richard Henderson <rth@redhat.com>
955
956 PR 40488
957 * tree-pass.h (TDF_ASMNAME): New.
958 * tree-dump.c (dump_options): Add asmname.
959 * doc/invoke.texi: Document it.
960
961 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
962 (dump_decl_name): ...here.
963 (dump_function_name): New flags arg; mind TDF_ASMNAME.
964 (dump_generic_node): Update dump_function_name calls.
965 (print_call_name): New flags arg; update all dump calls.
966 * diagnostic.h (print_call_name): Update.
967 * gimple-pretty-print.c (dump_gimple_call): Update.
968
4b85d273 9692009-06-18 H.J. Lu <hongjiu.lu@intel.com>
970
971 PR target/40470
972 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
973
8e6de413 9742009-06-18 Diego Novillo <dnovillo@google.com>
975
976 * doc/plugins.texi: Document plugin_is_GPL_compatible.
977 * plugin.c (str_license): Declare.
978 (try_init_one_plugin): Assert that the symbol
979 'plugin_is_GPL_compatible' exists.
980
0b99ff3e 9812009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
982
983 * see.c: Remove.
984 * Makefile.in (OBJS-common): Remove see.o.
985 (see.o): Remove.
986 * common.opt (fsee): Mark as preserved for backward compatibility.
987 * opts.c (common_handle_option): Add OPT_fsee to the backward
988 compatibility section.
989 * passes.c (init_optimization_passes, pass_see): Remove pass.
990 * timevar.def (TV_SEE): Remove.
991 * tree-pass.h (pass_see): Remove declaration.
992 * doc/invoke.texi (-fsee): Remove documentation.
0b99ff3e 993
33c3560d 9942009-06-18 Martin Jambor <mjambor@suse.cz>
995
996 * tree-sra.c: Include statistics.h
997 (sra_stats): New variable.
998 (sra_initialize): Clear sra_stats.
999 (create_access_replacement): Increment sra_stats.replacements.
1000 (get_access_replacement): Do not return twice.
1001 (analyze_all_variable_accesses): Increment statistics counter by the
1002 number of scalarized aggregates.
1003 (generate_subtree_copies): Increment sra_stats.subtree_copies.
1004 (sra_modify_expr): Increment sra_stats.exprs.
1005 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
1006 (sra_modify_assign): Increment sra_stats.exprs,
1007 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
1008 (perform_intra_sra): Update statistics counters.
1009 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
1010
546af3f3 10112009-06-18 Sandra Loosemore <sandra@codesourcery.com>
1012
1013 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
1014 (arm_scalar_mode_supported_p): New function.
1015
42746368 10162009-06-18 Paul Brook <paul@codesourcery.com>
1017 Sandra Loosemore <sandra@codesourcery.com>
1018
1019 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
1020 (__extendhfsf2, __truncsfhf2): Define.
1021 * config/arm/fp16.c: New file.
1022 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1023 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1024
9b8516be 10252009-06-18 Sandra Loosemore <sandra@codesourcery.com>
1026
1027 * doc/extend.texi (Half-Precision): New section.
1028 * doc/invoke.texi (Option Summary): List -mfp16-format.
1029 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
1030 * config/arm/arm.opt (mfp16-format=): New.
1031 * config/arm/arm.c: Include intl.h.
1032 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
1033 (TARGET_INVALID_RETURN_TYPE): Redefine.
1034 (TARGET_PROMOTED_TYPE): Redefine.
1035 (TARGET_CONVERT_TO_TYPE): Redefine.
1036 (arm_fp16_format): Define.
1037 (all_fpus): Add entry for neon-fp16.
1038 (fp_model_for_fpu): Likewise.
1039 (struct fp16_format): Declare.
1040 (all_fp16_formats): Define.
1041 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
1042 functions.
1043 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
1044 and no ldrh.
1045 (arm_legitimate_index_p): Treat HFmode like HImode.
1046 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
1047 (coproc_secondary_reload_class): Special-case HFmode.
1048 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
1049 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
1050 (arm_init_fp16_builtins): New.
1051 (arm_init_builtins): Call it.
1052 (arm_invalid_parameter_type): New.
1053 (arm_invalid_return_type): New.
1054 (arm_promoted_type): New.
1055 (arm_convert_to_type).
1056 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
1057 format.
1058 (arm_emit_fp16_const): New function.
1059 (arm_mangle_type): Mangle __fp16 as "Dh".
1060 * config/arm/arm.h (TARGET_VFPD32): Make it know about
1061 FPUTYPE_NEON_FP16.
1062 (TARGET_NEON_FP16): New.
1063 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
1064 (enum fputype): Add FPUTYPE_NEON_FP16.
1065 (enum arm_fp16_format_type): Declare.
1066 (arm_fp16_format): Declare.
1067 (LARGEST_EXPONENT_IS_NORMAL): Define.
1068 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
1069 * config/arm/arm-modes.def (HFmode): Define.
1070 * config/arm/vfp.md: (*movhf_vfp): New.
1071 (extendhfsf2): New.
1072 (truncsfhf2): New.
1073 * config/arm/arm.md: (fpu): Add neon_fp16.
1074 (floatsihf2, floatdihf2): New.
1075 (fix_trunchfsi2, fix_trunchfdi2): New.
1076 (truncdfhf2): New.
1077 (extendhfdf2): New.
1078 (movhf): New.
1079 (*arm32_movhf): New.
1080 (*thumb1_movhf): New.
1081 (consttable_2): Add check for HFmode constants.
1082 (consttable_4): Handle HFmode constants.
1083
ab60f474 10842009-06-18 Uros Bizjak <ubizjak@gmail.com>
1085
1086 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
1087
71a0b254 10882009-06-17 Olivier Hainque <hainque@adacore.com>
1089
1090 * collect2.c (main): Use CONST_CAST2 to perform char ** to
1091 const char ** conversion in AIX specific section.
1092
c119b8ad 10932009-06-17 H.J. Lu <hongjiu.lu@intel.com>
1094
1095 * config/i386/i386.c (ix86_special_builtin_type): Remove
1096 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
1097 (bdesc_special_args): Updated.
1098 (ix86_init_mmx_sse_builtins): Likewise.
1099 (ix86_expand_special_args_builtin): Likewise.
1100
7585370f 11012009-06-17 Richard Henderson <rth@redhat.com>
1102
1103 * tree-pretty-print.c (maybe_dump_asm_name): New.
1104 (dump_decl_name): Use it.
1105 (PRINT_FUNCTION_NAME): Merge into...
1106 (dump_function_name): ... here. Use maybe_dump_asm_name.
1107
1488fe24 11082009-06-17 Cary Coutant <ccoutant@google.com>
1109
1110 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
1111 Change caller.
1112 * debug.c (struct gcc_debug_hooks): Change placeholder for
1113 source_line hook.
1114 (debug_nothing_int_charstar_int): Replaced by...
1115 (debug_nothing_int_charstar_int_bool): ...this.
1116 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
1117 source_line prototype.
1118 (debug_nothing_int_charstar_int): Replaced by...
1119 (debug_nothing_int_charstar_int_bool): ...this.
1120 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
1121 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
1122 Output is_stmt operand when necessary.
cc85e995 1123 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1488fe24 1124 (notice_source_line): Add is_stmt parameter.
1125 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
1126 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
1127 Change callers.
1128 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
1129 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
1130
584511c1 11312009-06-17 Ian Lance Taylor <iant@google.com>
1132
1133 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
1134 Change all uses.
1135 (struct store_by_pieces_d): Rename from store_by_pieces. Change
1136 call uses.
1137
98112881 11382009-06-17 Adam Nemet <anemet@caviumnetworks.com>
1139
1140 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
1141 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
1142 tree_strip_sign_nop_conversions and
1143 tree_ssa_strip_useless_type_conversions rather than stripping
1144 the operations here.
1145 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
1146 Declare them.
1147 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
1148 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
1149 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
1150 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
1151 functions.
1152
40cbc433 11532009-06-17 Michael Eager <eager@eagercon.com>
1154
c6aaf951 1155 * config/rs6000/constraints.md (register_constraint "d"): New.
1156 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
1157 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1158 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
1159 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
1160 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1161 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
1162 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
1163 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
40cbc433 1164 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
1165 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c6aaf951 1166 __fctiwz): Same.
1167 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
40cbc433 1168 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
1169 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
1170 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c6aaf951 1171 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1172 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
1173 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
1174 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
1175 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
1176 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
1177 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
1178 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
1179 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
40cbc433 1180 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
1181
c5bafa96 11822009-06-16 Ian Lance Taylor <iant@google.com>
1183
1184 * profile.c (total_num_never_executed): Don't define.
1185 (compute_branch_probabilities): Don't count or print
1186 num_never_executed.
1187 (init_branch_prob): Don't set total_num_never_executed.
1188 (end_branch_prob): Don't print total_num_never_executed.
1189
326fb3fd 11902009-06-17 David Daney <ddaney@caviumnetworks.com>
1191
c6aaf951 1192 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
326fb3fd 1193
bfe6deb6 11942009-06-17 David Edelsohn <edelsohn@gnu.org>
1195
1196 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
1197 (nabstd2_fpr): Same.
1198
aa7bb50e 11992009-06-17 Steve Ellcey <sje@cup.hp.com>
1200
1201 * expr.c (expand_assignment): Change complex type check.
1202
d4fcd9bc 12032009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
1204
1205 * doc/plugins.texi (Building GCC plugins): Added new section.
1206
019c559b 12072009-06-17 Ian Lance Taylor <iant@google.com>
1208
1209 * c-pch.c (get_ident): Don't set size of templ array.
1210 (pch_init): Don't set size of partial_pch array.
1211
1212 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
1213 string constant to intialize an array whose size is the length of
1214 the string.
1215
c7e30df8 12162009-06-17 Richard Guenther <rguenther@suse.de>
1217
1218 PR tree-optimization/40389
1219 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
1220 to addressable types.
1221 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
1222
0f0057aa 12232009-06-17 Richard Guenther <rguenther@suse.de>
1224
1225 PR middle-end/40460
1226 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
1227 if there is no evolution of left in the loop bail out.
1228 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
1229 chrec_fold_multiply.
1230
b1e84b78 12312009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
1232 Janis Johnson <janis187@us.ibm.com>
1233
1234 PR target/39254
1235 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
1236 for the symbol ref of a constant that is the source of a move
1237 - nor for any other not-obvious-label-ref constants.
1238
d5fa1515 12392009-06-16 Olatunji Ruwase <tjruwase@google.com>
1240
c5bafa96 1241 * plugin.c (position_pass): Skip newly inserted pass during list
d5fa1515 1242 traversal to avoid repeated insertion.
1243
3a61a8b9 12442009-06-16 Ian Lance Taylor <iant@google.com>
1245
1246 * vec.h (VEC_stack_alloc): Define different version if
1247 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
1248 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
1249 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
1250 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
1251
b2db647e 12522009-06-16 H.J. Lu <hongjiu.lu@intel.com>
1253
1254 * config.gcc (extra_headers): Add ia32intrin.h for x86.
1255
1256 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
1257 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
1258 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
1259 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
1260 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
1261 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c6aaf951 1262 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
b2db647e 1263 (bdesc_special_args): Add __builtin_ia32_rdtsc and
1264 __builtin_ia32_rdtscp.
1265 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
1266 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c6aaf951 1267 and __builtin_ia32_rorhi.
b2db647e 1268 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
1269 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c6aaf951 1270 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
b2db647e 1271 (ix86_expand_args_builtin): Likewise.
1272 (ix86_expand_special_args_builtin): Likewise.
1273
1274 * config/i386/i386.md (UNSPECV_RDTSCP): New.
1275 (UNSPECV_RDTSC): Likewise.
1276 (UNSPECV_RDPMC): Likewise.
c6aaf951 1277 (*bsr): Renamed to ...
b2db647e 1278 (bsr): This
c6aaf951 1279 (*bsr_rex64): Renamed to ...
b2db647e 1280 (bsr_rex64): This.
1281 (rdpmc): New.
1282 (*rdpmc): Likewise.
1283 (*rdpmc_rex64): Likewise.
1284 (rdtsc): Likewise.
1285 (*rdtsc): Likewise.
1286 (*rdtsc_rex64): Likewise.
1287 (rdtscp): Likewise.
1288 (*rdtscp): Likewise.
1289 (*rdtscp_rex64): Likewise.
1290
1291 * config/i386/ia32intrin.h: New.
1292
1293 * config/i386/x86intrin.h: Include <ia32intrin.h>.
1294
8efd2ddb 12952009-06-16 Ian Lance Taylor <iant@google.com>
1296
1297 * ira-build.c (copy_info_to_removed_store_destinations):
1298 Initialize parent_a.
1299
b99f3c92 13002009-06-16 Ian Lance Taylor <iant@google.com>
1301
1302 * c-decl.c (grokdeclarator): Change size_varies to bool.
1303
40b15760 13042009-06-16 Ian Lance Taylor <iant@google.com>
1305
1306 * sel-sched.c: Make forward declarations of move_op_hooks and
1307 fur_hooks explicitly extern.
1308
8dc2823a 13092009-06-16 Ian Lance Taylor <iant@google.com>
1310
c6aaf951 1311 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
8dc2823a 1312 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
1313
10a15ee4 13142009-06-16 Ian Lance Taylor <iant@google.com>
1315
1316 * resource.c (mark_referenced_resources): Change
1317 include_delayed_effects parameter to bool. Change all callers.
1318 (mark_end_of_function_resources): Likewise.
1319 * reorg.c (insn_references_resource_p): Likewise.
1320 (insn_sets_resource_p): Likewise.
1321 * resource.h (mark_referenced_resources): Update declaration.
1322 (mark_end_of_function_resources): Update declaration.
1323
c7e5ac45 13242009-06-16 David Edelsohn <edelsohn@gnu.org>
1325
1326 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
1327
bbe0f5ef 13282009-06-16 David Edelsohn <edelsohn@gnu.org>
1329
1330 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
1331 GCC can bootstrap on AIX with GNU Binutils 2.20.
1332
957d66f3 13332009-06-16 Ian Lance Taylor <iant@google.com>
1334
1335 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
1336
4345dfaa 13372009-06-16 Ian Lance Taylor <iant@google.com>
1338
1339 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
1340 inline, not extern inline.
1341 (exact_log2): Likewise.
1342 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
1343 test CLZ_HWI.
1344 (exact_log2): Likewise, but don't test CTZ_HWI.
1345
c623bf22 13462009-06-16 Ian Lance Taylor <iant@google.com>
1347
1348 * bitmap.c (bitmap_clear): Don't declare as inline.
1349 * gimple.c (gimplify_assign): Likewise.
1350 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1351 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
1352 (sched_scan_info): Remove duplicate definition.
1353
48d94ede 13542009-06-16 Ian Lance Taylor <iant@google.com>
1355
1356 * c-common.c (skip_evaluation): Don't define.
1357 (c_inhibit_evaluation_warnings): Define global variable.
1358 (overflow_warning): Check c_inhibit_evaluation_warnings rather
1359 than skip_evaluation.
1360 (convert_and_check, warn_for_div_by_zero): Likewise.
1361 * c-common.h (skip_evaluation): Don't declare.
1362 (c_inhibit_evaluation_warnings): Declare.
1363 * c-parser.c (c_parser_typeof_specifier): Set
1364 c_inhibit_evaluation_warnings rather than skip_evaluation.
1365 (c_parser_conditional_expression): Likewise.
1366 (c_parser_binary_expression): Likewise.
1367 (c_parser_sizeof_expression): Likewise.
1368 (c_parser_alignof_expression): Likewise.
1369 * c-typeck.c (build_indirect_ref): Check
1370 c_inhibit_evaluation_warnings rather than skip_evaluation.
1371 (build_conditional_expr, build_binary_op): Likewise.
1372
e8146f09 13732009-06-16 Richard Guenther <rguenther@suse.de>
1374
1375 * tree-ssa-alias.c (is_escape_site): Remove.
1376 * tree-ssa-alias.h (enum escape_type): Remove.
1377 (is_escape_site): Likewise.
1378 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
1379 via casts and asms without deferring to is_escape_site.
1380
60a132a9 13812009-06-16 Jakub Jelinek <jakub@redhat.com>
1382
1383 PR middle-end/40446
1384 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
1385 use gen_lowpart if op0 has complex mode.
1386
c174c650 13872009-06-16 Richard Guenther <rguenther@suse.de>
1388
1389 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
1390 variables add them to ESCAPED.
c6aaf951 1391 (find_func_aliases): Do not make all indirectly stored values escaped.
c174c650 1392
929bec98 13932009-06-16 Rafael Avila de Espindola <espindola@google.com>
1394
1395 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
1396 make_decl_one_only.
1397
ea8ae162 13982009-06-16 Martin Jambor <mjambor@suse.cz>
1399
1400 PR tree-optimization/40432
1401 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
1402 check whether we need to force gimple register operand.
1403
f18b05a3 14042009-06-16 Martin Jambor <mjambor@suse.cz>
1405
1406 PR tree-optimization/40413
1407 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
1408 build_ref_for_offset.
1409 (propagate_subacesses_accross_link): Fix a typo in a comment.
1410
ade2ac53 14112009-06-16 Ira Rosen <irar@il.ibm.com>
1412
1413 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1414 with additional parameter.
c6aaf951 1415 * tree-vectorizer.h (enum vect_def_type): Add new value
ade2ac53 1416 vect_nested_cycle.
1417 (enum vect_relevant): Add comments.
1418 (vect_is_simple_reduction): Add new argument.
1419 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
1420 Detect nested cycles.
1421 (vect_is_simple_reduction): Update documentation, add an argument to
1422 distinguish inner-loop reduction from nested cycle, detect nested
1423 cycles, fix printings and indentation, don't swap operands in case
1424 of nested cycle.
1425 (get_initial_def_for_reduction): Handle subtraction.
1426 (vect_create_epilog_for_reduction): Add new argument to specify
1427 reduction variable.
1428 (vect_finalize_reduction): Handle subtraction, fix comments.
c6aaf951 1429 (vectorizable_reduction): Handle nested cycles. In case of nested
1430 cycle keep track of the reduction variable position. Call
ade2ac53 1431 vect_is_simple_reduction with additional parameter. Use original
1432 statement code in reduction epilogue for nested cycle. Call
1433 vect_create_epilog_for_reduction with additional parameter.
c6aaf951 1434 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
1435 inner-loop vectorization.
ade2ac53 1436 (vect_recog_widen_sum_pattern): Likewise.
1437 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
1438 and reductions.
1439 (vect_mark_stmts_to_be_vectorized): Likewise.
1440 (vect_get_vec_def_for_operand): Handle nested cycles.
1441
fb35baeb 14422009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1443
1444 * doc/invoke.texi (Debugging Options): Fix option index entries
1445 for -fdump-statistics, -frandom-seed add entries for
1446 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
1447 (FRV Options): Fix entries for -mTLS, -mtls.
1448 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
1449 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
1450 (M68hc1x Options): Fix @itemx for -mnominmax.
1451 (MCore Options): Fix entry for -mno-lsim.
1452 (MMIX Options): Fix entry for -mabi=mmixware.
1453 (PDP-11 Options): Fix entry for -mbcopy-builtin.
1454
9dc75945 14552009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
1456
1457 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
1458 Mention the plugin mode of gengtype.
c6aaf951 1459 * doc/gty.texi (Source Files Containing Type Information): Likewise.
9dc75945 1460 * gengtype.c: Updated copyright.
1461 (plugin_files, nb_plugin_files) Added new static variables.
1462 (measure_input_list) Care about plugin_files.
1463 (write_rtx_next): Added early return in plugin mode.
1464 (create_file): Updated copyright year in generated file. Added
1465 asserts.
1466 (oprintf): Added early return if NULL outf.
1467 (get_output_file_with_visibility): Care of plugin_files.
1468 (get_output_file_name): May return null.
1469 (write_local): Added early return.
1470 (put_mangled_filename): Ditto.
1471 (finish_root_table): Added check for base_files.
1472 (write_roots): Care about null when plugins.
1473 (main): Added plugin mode.
1474
f805d53d 14752009-06-15 Ian Lance Taylor <iant@google.com>
1476
c6aaf951 1477 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
f805d53d 1478 * gcov.c (read_count_file): Add braces around variables declared
1479 before label.
1480
1481 * c.opt (Wjump-misses-init): New warning.
1482 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
1483 -Wall and -Wc++-compat if not already set.
1484 (c_common_post_options): Clear warn_jump_misses_init if it was not
1485 set.
1486 * c-decl.c (struct c_binding): Change type field to a union with
1487 new label field. Make it the first field in the struct. Update
1488 references to type to use u.type instead.
1489 (struct c_spot_bindings): Define.
1490 (struct c_goto_bindings): Define.
1491 (c_goto_bindings_p): Define, along with VECs.
1492 (struct c_label_vars): Define.
1493 (struct c_scope): Add has_label_bindings field.
1494 (bind_label, set_spot_bindings): New static functions.
1495 (decl_jump_unsafe, update_spot_bindings): New static functions.
1496 (update_label_decls): New static function.
1497 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
1498 Update binding u.label field to shadowed field.
1499 (c_binding_start_stmt_expr): New function.
1500 (c_binding_end_stmt_expr): New function.
1501 (pushdecl): Don't call c_begin_vm_scope.
1502 (make_label): Add defining and p_label_vars parameters. Change
1503 all callers.
1504 (lookup_label): Correct test for whether a label has not yet been
1505 defined. Call bind_label rather than bind.
1506 (warn_about_goto): New static function.
1507 (lookup_label_for_goto): New function.
1508 (declare_label): Call bind_label rather than bind.
1509 (check_earlier_gotos): New static function.
1510 (define_label): Don't give errors about jumping into statement
1511 expressions or scopes of variably modified types. Call
1512 set_spot_bindings and check_earlier_gotos. Call bind_label
1513 instead of bind. Don't set label_context_stack_se or
1514 label_context_stack_vm.
1515 (c_get_switch_bindings): New function.
1516 (c_release_switch_bindings): New function.
1517 (c_check_switch_jump_warnings): New function.
1518 (start_function): Don't set label_context_stack_se or
1519 label_context_stack_vm.
1520 (finish_function): Likewise.
1521 * c-typeck.c (label_context_stack_se): Don't define.
1522 (label_context_stack_vm): Don't define.
1523 (c_finish_goto_label): Call lookup_label_for_goto rather than
1524 lookup_label. Don't give errors about jumping into a statement
1525 expression or the scope of a variably modified type. Don't set
1526 label_context_stack_se or label_context_stack_vm.
1527 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1528 fields. Add bindings field.
1529 (c_start_case): Don't set deleted fields. Set bindings field.
1530 (do_case): Rework order of tests. Don't check blocked_stmt_expr
1531 or blocked_vm. Call c_check_switch_jump_warnings.
1532 (c_finish_case): Don't test blocked_stmt_expr field. Call
1533 c_release_switch_bindings.
1534 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1535 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1536 set label_context_stack_se. Call c_bindings_start_stmt_expr.
1537 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1538 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1539 set label_context_stack_se. Call c_bindings_end_stmt_expr.
1540 (c_begin_vm_scope, c_end_vm_scope): Don't define.
1541 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1542 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1543 (C_DECL_UNJUMPABLE_VM): Don't define.
1544 (C_DECL_UNDEFINABLE_VM): Don't define.
1545 (struct c_label_list): Don't define.
1546 (struct c_label_context_se): Don't define.
1547 (struct c_label_context_vm): Don't define.
1548 (struct c_spot_bindings): Declare.
1549 (c_bindings_start_stmt_expr): Declare.
1550 (c_bindings_end_stmt_expr): Declare.
1551 (lookup_label_for_goto): Declare.
1552 (c_get_switch_bindings, c_release_switch_bindings): Declare.
1553 (c_check_switch_jump_warnings): Declare.
1554 (label_context_stack_se, label_context_stack_vm): Don't declare.
1555 (c_finish_goto_label): Update declaration.
1556 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1557 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1558 (Warning Options): Document -Wjump-misses-init.
1559
56b5c963 15602009-06-15 Jakub Jelinek <jakub@redhat.com>
1561
1562 * tree-object-size.c (addr_object_size): Fix a pasto in the last
1563 change.
1564
02527fdb 15652009-06-15 Rafael Avila de Espindola <espindola@google.com>
1566
1567 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1568
0b35068b 15692009-06-15 Aldy Hernandez <aldyh@redhat.com>
1570
1571 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1572
15732009-06-15 Aldy Hernandez <aldyh@redhat.com>
1574
1575 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1576
ecd88073 15772009-06-15 Rafael Avila de Espindola <espindola@google.com>
1578
1579 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1580 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1581 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1582 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c6aaf951 1583 * dwarf2asm.c (dw2_force_const_mem): Update call to
1584 make_decl_one_only.
ecd88073 1585 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1586 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1587 * langhooks.c (lhd_comdat_group): Remove.
1588 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1589 * tree.h (DECL_COMDAT_GROUP): New.
1590 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1591 (tree_decl_with_vis): Add comdat_group. Remove one_only.
1592 (make_decl_one_only): Change signature.
1593 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1594 make_decl_one_only.
1595 (make_decl_one_only): Change signature.
1596 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1597
c6f3d74f 15982009-06-15 Richard Guenther <rguenther@suse.de>
1599
1600 PR middle-end/40439
1601 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1602
92b84fc3 16032009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1604
1605 * tree-ssa-math-opts.c: Remove extra divide.
1606
497042b8 16072009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1608
1609 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1610
84cc784c 16112009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1612
1613 * passes.c: Add bswap pass.
1614 * tree-pass.h: Add pass_optimize_bswap declaration.
1615 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1616 Include rtl.h, expr.h and optabs.h for optab_handler check.
1617 (struct symbolic_number, pass_optimize_bswap): New definition.
1618 (do_shift_rotate, verify_symbolic_number_p): New functions.
1619 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1620 (gate_optimize_bswap): New function.
1621 * tree.c (widest_int_cst_value): New function.
1622 * tree.h (widest_int_cst_value): Prototype added.
1623
d9beaaeb 16242009-06-14 Steven Bosscher <steven@gcc.gnu.org>
1625
1626 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1627 REG_EQUAL/REG_EQUIV notes.
1628
60b9b3ae 16292009-06-14 Richard Guenther <rguenther@suse.de>
1630
1631 PR middle-end/40389
1632 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
1633 has its address taken if NRV was applied and it is addressable.
1634 * tree-ssa-structalias.c (get_constraint_for_address_of): New
1635 function split out from ...
1636 (get_constraint_for_1): ... here.
1637 (handle_rhs_call): Use it to mark the return slot escaped if
1638 it is addressable and NRV was applied.
1639
65edca84 16402009-06-13 Aldy Hernandez <aldyh@redhat.com>
1641
1642 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
1643 Change first argument type to location_t.
1644 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
1645 Do not set input_location.
1646 Use loc instead of input_location throughout.
1647
286fa508 16482009-06-13 Richard Guenther <rguenther@suse.de>
1649
60b9b3ae 1650 PR tree-optimization/40421
286fa508 1651 * tree-predcom.c (should_unroll_loop_p): Remove.
1652 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
1653
052a8489 16542009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
1655
1656 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1657 Add location argument.
1658
54e46243 16592009-06-13 Aldy Hernandez <aldyh@redhat.com>
1660
1661 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
1662 build_decl.
1663 * config/s390/s390.c (s390_build_builtin_va_list): Same.
1664 (s390_gimplify_va_arg): Pass location to create_artificial_label.
1665 * config/spu/spu-protos.h: Add location to
1666 spu_resolve_overloaded_builtin.
1667 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
1668 spu_build_builtin_va_list.
1669 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
1670 argument. Pass location to build_function_call_vec.
1671 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
1672 build_decl.
1673 (emit_fpu_switch): Same.
1674 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
1675 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
1676 to build_decl and create_artificial_label.
1677 (xtensa_gimplify_va_arg_expr): Same.
1678 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
1679 (xstormy16_gimplify_va_arg_expr): Same.
1680 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
1681 * config/arm/arm.c (arm_build_builtin_va_list): Same.
1682 * config/mips/mips.c (mips_build_builtin_va_list): Same.
1683 (mips16_build_function_stub): Same.
1684 (mips16_build_call_stub): Same.
1685
0bdb6455 16862009-06-13 Richard Earnshaw <rearnsha@arm.com>
1687
1688 PR target/40327
1689 * arm/constraints.md (Pa, Pb): New constraints.
1690 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
1691 split pattern to deal with them.
1692
a9077cc3 16932009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
1694
1695 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
1696 fix index entry for -Xpreprocessor.
1697
f69f268d 16982009-06-12 Aldy Hernandez <aldyh@redhat.com>
1699
1700 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1701 Add location argument to build_decl call.
1702 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
1703 (rs6000_init_builtins): Same.
1704 (spe_init_builtins): Same.
1705 (rs6000_gimplify_va_arg): Add location argument to
1706 create_artificial_label call.
1707
738c9748 17082009-06-12 Steven Bosscher <steven@gcc.gnu.org>
1709
1710 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
1711 * combine-stack-adj.c (pass_stack_adjustments): Use it.
1712 * Makefile.in: Fix GGC dependency for gcse.o.
1713
e60a6f7b 17142009-06-12 Aldy Hernandez <aldyh@redhat.com>
1715
1716 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
1717 * gimple-pretty-print.c (dump_gimple_stmt): Same.
1718 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
1719 created.
1720 * c-parser.c (c_parser_binary_expression): Use current column while
1721 building binary operations.
1722 * common.opt (fshow-column): Enable by default.
1723 * tree-vrp.c (check_array_ref): Use warning_at.
1724 (check_array_bounds): Use location from call back if expr has no
1725 location.
1726 * tree.h: Add location argument to maybe_fold_*.
1727 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
1728 (maybe_fold_offset_to_array_ref): Add location argument and use it.
1729 (maybe_fold_offset_to_component_ref): Same.
1730 (maybe_fold_offset_to_reference): Same.
1731 (maybe_fold_offset_to_address): Same.
1732 (maybe_fold_stmt_indirect): Same.
1733 (maybe_fold_stmt_addition): Same.
1734 (fold_stmt_r): Pass location to maybe_fold_*.
1735 (fold_gimple_assign): Same.
1736 * c-tree.h: Add location argument to finish_decl,
1737 default_function_array_conversion, store_init_value.
1738 * c-decl.c (define_label): Use error_at.
1739 (c_make_fname_decl): Pass location to finish_decl.
1740 (finish_decl): New location argument.
1741 (build_compound_literal): Pass location to store_init_value.
1742 (grokdeclarator): Pass location to finish_decl.
1743 (grokfield): Same.
1744 * c-typeck.c (array_to_pointer_conversion): New location argument.
1745 (function_to_pointer_conversion): Same.
1746 (default_function_array_conversion): Same.
1747 (parser_build_unary_op): Pass location to overflow_warning.
1748 (parser_build_binary_op): Same. Use warning_at.
1749 (build_unary_op): Pass location to array_to_pointer_conversion.
1750 (build_c_cast): Pass location to digest_init.
1751 (build_modify_expr): New location argument.
1752 (convert_for_assignment): Same.
1753 (store_init_value): Same.
1754 (digest_init): Same.
1755 (output_init_element): Pass location to digest_init and
1756 array_to_pointer_conversion.
1757 (c_finish_return): Pass location to convert_for_assignment.
1758 * gimplify.c (gimplify_conversion): Pass location to
1759 maybe_fold_offset_to_address.
1760 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
1761 to maybe_fold_stmt_addition.
1762 * c-omp.c (c_finish_omp_atomic): Pass new location to
1763 build_modify_expr.
1764 (c_finish_omp_for): Same.
1765 * c-common.c (overflow_warning): New argument.
1766 * c-common.h: New argument to build_modify_expr, overflow_warning.
1767 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
1768 finish_decl.
1769 (c_parser_initializer): Pass location to
1770 default_function_array_conversion.
1771 (c_parser_initelt): Same.
1772 (c_parser_initval): Same.
1773 (c_parser_asm_operands): Same.
1774 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
1775 (c_parser_conditional_expression): Same.
1776 (c_parser_binary_expression): Add location info to stack. Use it.
1777 (c_parser_unary_expression): Pass location to
1778 default_function_array_conversion, parser_build_unary_op,
1779 build_indirect_ref, c_parser_postfix_expression_after_primary.
1780 (c_parser_postfix_expression_after_primary): New location argument.
1781 Use it.
1782 (c_parser_expression_conv): Pass location to
1783 default_function_array_conversion.
1784 (c_parser_expr_list): Same.
1785 (c_parser_omp_atomic): Same.
1786 (c_parser_omp_for_loop): Same.
1787 * c-tree.h: (struct c_declarator): Add comment to id_loc.
1788 (build_array_declarator): New argument.
1789 * c-decl.c (build_array_declarator): Add location argument.
1790 (grokdeclarator): Set id_loc for cdk_array.
1791 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
1792 build_array_declarator.
1793 * tree.c (build_omp_clause): Add location argument.
1794 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
1795 (OMP_CLAUSE_LOCATION): New macro.
1796 (struct tree_omp_clause): Add location field.
1797 (build_omp_clause): Add argument.
1798 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
1799 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
1800 build_omp_clause.
1801 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
1802 (cp_parser_omp_clause_collapse): Same.
1803 (cp_parser_omp_clause_default): Same.
1804 (cp_parser_omp_clause_if): Same.
1805 (cp_parser_omp_clause_nowait): Same.
1806 (cp_parser_omp_clause_num_threads): Same.
1807 (cp_parser_omp_clause_ordered): Same.
1808 (cp_parser_omp_clause_schedule): Same.
1809 (cp_parser_omp_clause_untied): Same.
1810 (cp_parser_omp_for_loop): Same.
1811 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1812 * c-tree.h (c_start_case): Add location argument.
1813 (c_process_expr_stmt): Same.
1814 (c_finish_goto_*): Same.
1815 * tree-parloops.c (initialize_reductions): Pass location to
1816 build_omp_clause.
1817 (create_parallel_loop): Same.
1818 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
1819 (gfc_trans_omp_reduction_list): Same.
1820 (gfc_trans_omp_clauses): Same.
1821 (gfc_trans_omp_do): Same.
1822 * c-typeck.c (c_finish_goto_label): Same.
1823 (c_finish_goto_ptr): New location argument.
1824 (c_start_case): Same.
1825 (emit_side_effect_warnings): Same.
1826 (c_process_expr_stmt): Same.
1827 (c_finish_stmt_expr): Same.
1828 (c_finish_omp_clauses): Use error_at instead of error.
1829 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
1830 build_omp_clause.
1831 * c-omp.c (c_split_parallel_clauses): New location argument.
1832 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
1833 to build_omp_clause.
1834 (convert_local_reference_stmt): Same.
1835 (convert_gimple_call): Same.
1836 * c-common.h (c_split_parallel_clauses): New argument.
1837 * c-parser.c (c_parser_statement_after_labels): Pass location to
1838 c_finish_goto_label.
1839 (c_parser_switch_statement): Pass location to c_start_case.
1840 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
1841 and c_process_expr_stmt.
1842 (c_parser_omp_variable_list): Add location argument.
c6aaf951 1843 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
e60a6f7b 1844 (c_parser_omp_clause_default): Same.
1845 (c_parser_omp_clause_if): Same.
1846 (c_parser_omp_clause_num_threads): Same.
1847 (-c_parser_omp_clause_ordered): Same.
1848 (c_parser_omp_clause_reduction): Pass location to
1849 c_parser_omp_variable_list.
1850 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
1851 (c_parser_omp_clause_untied): Same.
1852 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c6aaf951 1853 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
e60a6f7b 1854
1855 * c-tree.h (check_for_loop_decls, undeclared_variable,
1856 build_component_ref, build_array_ref, build_external_ref,
1857 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
1858 build_conditional_expr, build_compound_expr, c_cast_expr,
1859 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
1860 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
1861 argument.
1862 * c-semantics.c (build_stmt): Same.
1863 (build_case_label): Same.
1864 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
1865 (undeclared_variable): New argument.
1866 (make_label): Same.
1867 (lookup_label): Pass location on down.
1868 (define_label): Same.
1869 (finish_decl): Same.
1870 (build_compound_literal): Same.
1871 (finish_struct): Same.
1872 (finish_function): Do not set location here.
1873 (check_for_loop_decls): New argument.
1874 * tree.c (save_expr): Set location.
1875 (build_empty_stmt): New argument.
1876 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
1877 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
1878 * builtins.c (gimplify_va_arg_expr): Use locations.
1879 (expand_builtin_sync_operation): Same.
1880 * c-typeck.c (build_component_ref): New argument.
1881 (build_array_ref): Same.
1882 (build_external_ref): Same.
1883 (c_expr_sizeof_expr): Same.
1884 (c_expr_sizeof_type): Same.
1885 (parser_build_unary_op): Same.
1886 (build_conditional_expr): Same.
1887 (build_compound_expr): Pass location on down.
1888 (build_compound_expr): New argument.
1889 (build_c_cast): Same.
1890 (c_cast_expr): Same.
1891 (build_asm_expr): Same.
1892 (c_finish_return): Same.
1893 (c_process_expr_stmt): Pass location on down.
1894 (c_finish_stmt_expr): New argument.
1895 (push_clenaup): Same.
1896 (c_finish_omp_parallel): Same.
1897 (c_finish_omp_task): Same.
1898 * gimplify.c (gimplify_call_expr): Pass location on down.
1899 * c-omp.c (c_finish_omp_master): New argument.
1900 (c_finish_omp_critical): Same.
1901 (c_finish_omp_ordered): Same.
1902 (c_finish_omp_barrier): Same.
1903 (-c_finish_omp_taskwait): Same.
1904 (c_finish_omp_atomic): Same.
1905 (c_finish_omp_flush): Same.
1906 * tree-inline.c (copy_tree_body_r): Pass location on down.
1907 (inline_forbidden_p): Remove use of input_location.
1908 * c-gimplify.c (c_build_bind_expr): New argument.
1909 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
1910 (c_sizeof_or_alignof_type): New argument.
1911 (c_alignof_expr): Same.
1912 (build_va_arg): Same.
1913 (c_add_case_label): Same.
1914 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
1915 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
1916 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
1917 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
1918 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
1919 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
1920 New argument.
1921 * stub-objc.c (objc_build_selector_expr): Same.
1922 (objc_build_throw_stmt): Same.
1923 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
1924 (c_parser_initelt): Same.
1925 (c_parser_compound_statement): Same.
1926 (c_parser_compound_statement_nostart): Same.
1927 (c_parser_label): Same.
1928 (c_parser_statement_after_labels): Same.
1929 (c_parser_if_body): Same.
1930 (c_parser_else_body): Same.
1931 (c_parser_if_statement): Same.
1932 (c_parser_switch_statement): Same.
1933 (c_parser_while_statement): Same.
1934 (c_parser_do_statement): Same.
1935 (c_parser_for_statement): Same.
1936 (c_parser_asm_statement): Same.
1937 (c_parser_conditional_expression): Same.
1938 (c_parser_binary_expression): Same.
1939 (c_parser_cast_expression): Same.
1940 (c_parser_unary_expression): Same.
1941 (c_parser_sizeof_expression): Same.
1942 (c_parser_alignof_expression): Same.
1943 (c_parser_postfix_expression): Same.
1944 (c_parser_expression): Same.
1945 (c_parser_objc_receiver): Same.
1946 (c_parser_omp_variable_list): Same.
1947 (c_parser_omp_structured_block): Same.
1948 (c_parser_omp_atomic): New argument.
1949 (c_parser_omp_barrier): Same.
1950 (c_parser_omp_critical): Same.
1951 (c_parser_omp_flush): Pass location on down.
1952 (c_parser_omp_for_loop): New argument.
1953 (c_parser_omp_for): Same.
1954 (c_parser_omp_master): Same.
1955 (c_parser_omp_ordered): Same.
1956 (c_parser_omp_sections_scope): Same.
1957 (c_parser_omp_sections): Same.
1958 (c_parser_omp_parallel): Same.
1959 (c_parser_omp_single): Same.
1960 (c_parser_omp_task): Same.
1961 (c_parser_omp_taskwait): Pass location on down.
1962 (c_parser_omp_construct): Same.
1963 (c_parser_omp_threadprivate): Same.
1964 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
1965 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
1966 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
1967 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
1968 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
1969 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
1970 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1971 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1972 config/i386/i386.c, stmt.c:
1973 Add location argument to the following function definitions and/or
1974 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1975 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1976 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1977 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1978 do_case, c_finish_bc_stmt, build_compound_literal,
1979 build_function_call.
1980 * c-decl.c (build_compound_literal): Add location argument.
1981 Make all diagnostic calls use location.
1982 (start_struct): Same.
1983 (finish_struct): Same.
1984 (start_enum): Same.
1985 (build_enumerator): Same.
1986 (start_function): Same.
1987 (grokdeclarator): Make all diagnostic calls use location.
1988 (store_parm_decls_oldstyle): Same.
1989 * c-typeck.c (build_function_call): Add location argument.
1990 Make all diagnostic calls use location.
1991 (do_case): Same.
1992 (c_finish_bc_stmt): Same.
1993 * tree-nested.c (get_trampoline_type): Add argument.
1994 Pass location to build_decl.
1995 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1996 * rtl.h (RTL_LOCATION): New.
1997 * c-common.c (c_add_case_label): Add location argument.
1998 Make all diagnostic calls use location.
1999 * c-common.h: Add location argument to make_fname_decl, do_case,
2000 c_add_case_label, build_function_call, resolve_overloaded_builtin.
2001 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
2002 Set it appropriately for every case. Pass enum_loc to start_enum
2003 call. Pass value_loc first to build_enumerator. Pass enum_loc to
2004 parser_xref_tag.
2005 (c_parser_struct_or_union_specifier): Save location. Use it for
2006 start_struct, finish_struct, and parser_xref_tag.
2007
2a6a6991 20082009-06-12 Ian Lance Taylor <iant@google.com>
2009
c6aaf951 2010 * fold-const.c (fold_unary): Rename local variable and to and_expr.
2a6a6991 2011
2012 * c-opts.c (c_common_handle_option): For -Wc++-compat set
2013 cpp_opts->warn_cxx_operator_names.
2014
380c5f61 20152009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
2016
2017 PR tree-opt/38865
2018 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
2019 is returns NULL and OP is a VCE, look through the VCE.
2020
754a9c6c 20212009-06-12 Ian Lance Taylor <iant@google.com>
2022
2023 PR bootstrap/40430
2024 * collect2.c (main): Use CONST_CAST2 in code inside #if
2025 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
2026
bd9c33a8 20272009-06-12 Joey Ye <joey.ye@intel.com>
2028
2029 PR middle-end/39146
2030 * cfgexpand.c (get_decl_align_unit): Update
2031 max_used_stack_slot_alignment with align instead of
2032 stack_alignment_needed.
2033
2034 * function.c (assign_stack_local_1): Update
2035 max_used_stack_slot_alignment with alignment_in_bits instead
2036 of stack_alignment_needed.
2037 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
2038 here.
2039
e59b3312 20402009-06-12 Jakub Jelinek <jakub@redhat.com>
2041
2042 * dwarf2out.c (last_var_location_insn): New variable.
2043 (dwarf2out_end_epilogue): Clear last_var_location_insn.
2044 (dwarf2out_var_location): Don't record anything after last real
2045 insn. Only change labels if there were any real instructions
2046 in between last note and this one, or if changed sections.
2047
eb0e7e5d 20482009-06-11 Richard Henderson <rth@redhat.com>
2049
bd9c33a8 2050 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
d30e4246 2051 note when storing the frame pointer in a register.
2052 (FRP): Don't redefine to nothing for epilogue.
2053 (alpha_expand_epilogue): Mark register and sp restores.
2054 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
2055
eb0e7e5d 2056 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
2057 when gen_lowpart is needed.
2058
a6f7c039 20592009-06-11 Richard Henderson <rth@redhat.com>
2060
750daa32 2061 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
2062
a6f7c039 2063 * dwarf2out.c (need_data_align_sf_opcode): New.
2064 (div_data_align): Move earlier.
2065 (def_cfa_1, reg_save): Use it.
2066
614b751e 20672009-06-11 H.J. Lu <hongjiu.lu@intel.com>
2068
2069 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
2070 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
2071 (ix86_handle_option): Handle OPT_mcrc32.
2072 (ix86_target_string): Add -mcrc32.
2073 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
2074
2075 * config/i386/i386.h (TARGET_CRC32): New.
2076
c6aaf951 2077 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
614b751e 2078 (sse4_2_crc32di): Likewise.
2079
c6aaf951 2080 * config/i386/i386.opt (mcrc32): New.
614b751e 2081
2082 * doc/invoke.texi: Document -mcrc32.
2083
4a631454 20842009-06-11 Richard Henderson <rth@redhat.com>
2085
614b751e 2086 * common.opt (gdwarf-): Accept a version number.
4a631454 2087 * doc/invoke.texi (gdwarf-): Update docs.
2088 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
2089 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
2090 version level, and record it.
2091
2092 * dwarf2.h (DW_CIE_VERSION): Remove.
2093 * dwarf2out.c (DWARF_VERSION): Remove.
2094 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
2095 (output_call_frame_info): Use CIE version 3 for dwarf3,
2096 or if the return register column is out of range for version 1.
2097 (dwarf_stack_op_name): Add all dwarf3 values.
2098 (DEBUG_PUBTYPES_SECTION): New.
2099 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
2100 encoding change for dwarf3.
2101 (output_die) [dw_val_class_die_ref]: Likewise.
2102 (output_compilation_unit_header): Emit correct version for dwarf3.
2103 (output_line_info): Likewise.
2104 (output_pubnames): Update for DWARF_VERSION removal.
2105 (output_aranges): Likewise.
2106 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
2107 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
2108 (dwarf2out_finish): Likewise.
2109
33a67b8d 21102009-06-11 David Daney <ddaney@caviumnetworks.com>
2111
2112 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
2113 in r148403.
2114
d2b48f0c 21152009-06-11 David Daney <ddaney@caviumnetworks.com>
2116
2117 PR c/39252
2118 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
2119 * builtins.c (expand_builtin_unreachable): New function.
2120 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
2121 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
2122 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
2123 successors.
2124 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
2125 searching for missing barriers.
2126
31bcb516 21272009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2128
2129 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
2130 when -fprofile-generate* was passed.
2131 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2132
df3bfef4 21332009-06-11 Anthony Green <green@moxielogic.com>
2134
c6aaf951 2135 * config/moxie/moxie.md: Define length attribute for all instructions.
df3bfef4 2136 (rCC): Define.
2137 (*b<cond:code>): Support limited branch ranges for new PC-relative
2138 branch instructions.
2139 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
2140
d5257977 21412009-06-11 Jakub Jelinek <jakub@redhat.com>
2142
745ee33e 2143 * config/i386/i386.c (min_insn_size): Use get_attr_length
2144 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
2145 For __asm return 0.
2146
d5257977 2147 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
2148 instead of emit_insn_before.
2149
9448096b 21502009-06-10 Ian Lance Taylor <iant@google.com>
2151
2152 PR bootstrap/40408
2153 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
2154 GIMPLE_SWITCH.
2155
b50b1b69 21562009-06-10 Revital Eres <eres@il.ibm.com>
2157
2158 * passes.c (init_optimization_passes): Reschedule
2159 predictive-commoning pass before complete unroll pass.
2160
9967e578 21612009-06-10 Martin Jambor <mjambor@suse.cz>
2162
2163 * cgraph.c (cgraph_node_can_be_local_p): New function.
2164 (cgraph_make_node_local): New function.
2165 * cgraph.h (cgraph_node_can_be_local_p): Declare.
2166 (cgraph_make_node_local): Declare.
2167
33a0b99d 21682009-06-10 Nathan Froyd <froydnj@codesourcery.com>
2169
2170 * tree.h (tree_base): Add packed_flag and user_align fields.
2171 Decrease size of spare field.
2172 (TYPE_USER_ALIGN): Use user_align from tree_base.
2173 (DECL_USER_ALIGN): Likewise.
2174 (TYPE_PACKED): Use packed_flag from tree_base.
2175 (DECL_PACKED): Likewise.
2176 (tree_type): Delete packed_flag and user_align fields. Widen
2177 precision field. Widen mode field and shuffle fields to align
2178 mode on an 8-bit boundary.
2179 (tree_decl_common): Delete decl_flag_1 and user_align fields.
2180 Renumber decl_flag_* fields. Fix comments. Widen
2181 decl_common_unused field.
c6aaf951 2182 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
33a0b99d 2183 (DECL_EXTERNAL): Likewise.
2184 (DECL_BIT_FIELD): Likewise.
2185 (DECL_NONADDRESSABLE_P): Likewise.
2186 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
2187 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
2188
f7f05a07 21892009-06-10 Ian Lance Taylor <iant@google.com>
2190
2191 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
2192 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
2193 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
2194 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
2195 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
2196 DEF_VEC_ALLOC_FUNC_P.
2197 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
2198 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
2199 DEF_VEC_ALLOC_FUNC_O.
2200 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
2201 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
2202 DEF_VEC_ALLOC_FUNC_I.
2203 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
2204 (vec_stack_p_reserve_exact_1): Declare.
2205 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
2206 (vec_stack_free): Declare.
2207 (VEC_stack_alloc): Define.
2208 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
2209 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
2210 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
2211 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
2212 for void_p.
2213 (stack_vecs): New static variable.
2214 (vec_stack_p_reserve_exact_1): New function.
2215 (vec_stack_o_reserve_1): New static function.
2216 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
2217 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
2218 (vec_stack_free): New function.
2219 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
2220 (VEC_df_ref_stack_alloc): Define.
2221 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
2222 DEF_VEC_ALLOC_P_STACK.
2223 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
2224 (struct df_collection_rec): Change _vec fields to VEC. Remove
2225 _use fields.
2226 (df_free_collection_rec): Adjust for new fields.
2227 (df_insn_rescan): Use new df_collection_rec fields.
2228 (df_notes_rescan, df_canonize_collection_rec): Likewise.
2229 (df_ref_create_structure, df_ref_record): Likewise.
2230 (df_get_conditional_uses, df_get_call_refs): Likewise.
2231 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
2232 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
2233 (df_record_exit_block_uses, df_bb_verify): Likewise.
c6aaf951 2234 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
f7f05a07 2235 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
2236 Remove count parameter. Change return type to void. Change all
2237 callers.
2238 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
2239 Remove count parameter. Change return type to void. Change all
2240 callers.
2241 (df_install_refs): Change old_vec parameter to VEC. Remove count
2242 parameter. Change all callers.
2243 (df_install_mws): Change old_vec parameter to VEC. Remove count
2244 parameter. Change all callers.
2245 (df_refs_verify): Change new_rec parameter to VEC. Change call
2246 callers.
2247 (df_mws_verify): Likewise.
2248
7a63ab96 22492009-06-10 Alexandre Oliva <aoliva@redhat.com>
2250
2251 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
2252
9e26132e 22532009-06-10 H.J. Lu <hongjiu.lu@intel.com>
2254
2255 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
2256
be52b6d8 22572009-06-10 Anthony Green <green@moxielogic.com>
2258
2259 * config/moxie/crti.asm: New file.
2260 * config/moxie/crtn.asm: New file.
2261 * config/moxie/moxie.c: New file.
2262 * config/moxie/moxie.h: New file.
2263 * config/moxie/sfp-machine.h: New file.
2264 * config/moxie/moxie-protos.h: New file.
2265 * config/moxie/t-moxie: Created.
2266 * config/moxie/t-moxie-softfp: Created.
2267 * config/moxie/moxie.md: Created.
2268 * config/moxie/constraints.md: Created.
2269 * config.gcc: Add moxie support.
2270 * doc/md.texi (Machine Constraints): Add moxie constraints.
2271 * doc/contrib.texi (Contributors): Mention moxie port.
2272 * doc/install.texi (Specific): Mention the moxie port.
2273
423aab86 22742009-06-09 Ian Lance Taylor <iant@google.com>
2275
2276 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
2277 compiling with C++.
2278 * optabs.c (optab_table): Only use designated initializers if
2279 HAVE_DESIGNATED_INITIALIZERS is defined.
2280 (convert_optab_table): Likewise.
2281 (init_optabs): Always call init_insn_codes if
2282 HAVE_DESIGNATED_INITIALIZERS is not defined.
2283
d5b637fa 22842009-06-09 Ian Lance Taylor <iant@google.com>
2285
2286 * targhooks.c (default_builtin_vectorized_function): Change fn
2287 parameter to unsigned int.
2288 (default_builtin_vectorized_conversion): Change code parameter to
2289 unsigned int.
2290 (default_builtin_reciprocal): Change fn parameter to unsigned int.
2291 * targhooks.h: Update declarations.
2292 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
2293 parameter to unsigned int.
2294
2295 * c-typeck.c (comptypes_check_enum_int): New static function.
2296 (comptypes_internal): Add enum_and_int_p parameter. Change all
2297 callers.
2298 (comp_target_types): Add location parameter. Change all callers.
2299 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
2300 Change all callers.
2301 (function_types_compatible_p, type_lists_compatible_p): Likewise.
2302 (build_conditional_expr): Add colon_loc parameter. Change all
2303 callers.
c6aaf951 2304 (convert_for_assignment): Add location parameter. Change all callers.
d5b637fa 2305 * c-parser.c (c_parser_conditional_expression): Pass location of
2306 colon to build_conditional_expr.
2307 * c-tree.h (build_conditional_expr): Update declaration.
2308
d970c7fe 23092009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2310
2311 * graphite.c: Revert previous patch.
2312
1aa098ae 23132009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2314
2315 PR bootstrap/40103
2316 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
2317
f937ec59 23182009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
2319
614b751e 2320 * tree-ssa-loop-prefetch.c
2321 (loop_prefetch_arrays): Fixed a portability problem in printf format
2322 string.
f937ec59 2323
31000708 23242009-06-09 Martin Jambor <mjambor@suse.cz>
2325
2326 PR tree-optimization/40351
c6aaf951 2327 * tree-sra.c (propagate_subacesses_accross_link): Check that a
2328 refrence to a potential artifical subaccess can be constructed.
31000708 2329
9b8dc018 23302009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
2331
2332 * config/sh/sh-protos.h (sh_optimization_options): Declare.
2333 (sh_override_options): Likewise.
2334 * config/sh/sh.c: Include params.h.
2335 (sh_optimization_options): New.
2336 (sh_override_options): Likewise.
2337 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
2338 (OVERRIDE_OPTIONS): Use sh_override_options.
2339
dcec2982 23402009-06-08 Jakub Jelinek <jakub@redhat.com>
2341
2342 * dwarf2out.c (emit_cfa_remember): New variable.
2343 (add_fde_cfi): If emit_cfa_remember, recurse to add
2344 DW_CFA_remember_state first.
2345 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
2346 instead just set emit_cfa_remember.
2347
804f8485 23482009-06-08 Jan Hubicka <jh@suse.cz>
2349
2350 PR debug/40126
2351 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
2352
7fe9b425 23532009-06-08 Jan Hubicka <jh@suse.cz>
2354
2355 PR middle-end/39834
c6aaf951 2356 * cgraphunit.c (save_inline_function_body): Do not copy transform
2357 hooks for saved inline bodies.
7fe9b425 2358 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
2359 for given function.
2360
01e196ce 23612009-06-08 Adam Nemet <anemet@caviumnetworks.com>
2362
2363 * jump.c (returnjump_p): Handle delayed branches. Add missing
2364 function comment.
2365
b437daf4 23662009-06-08 Jan Hubicka <jh@suse.cz>
2367
2368 PR middle-end/40102
2369 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
2370 original node might've been modified.
2371 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
2372
fbc1ccbc 23732009-06-08 Jakub Jelinek <jakub@redhat.com>
2374
2375 * tree-object-size.c (addr_object_size): Add OSI argument.
2376 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
2377 (compute_builtin_object_size, expr_object_size): Adjust callers.
2378 (plus_stmt_object_size): Call addr_object_size instead of
2379 compute_builtin_object_size.
2380
0ab353e1 23812009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
614b751e 2382 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
0ab353e1 2383
2384 * tree-ssa-loop-prefetch.c
2385 (gather_memory_references): Introduced a counter for the number of
2386 memory references.
2387 (anything_to_prefetch_p): Introduced a counter for the number of
2388 prefetches.
2389 (is_loop_prefetching_profitable): New function with a cost model
2390 for prefetching.
2391 (loop_prefetch_arrays): Use the new cost model to determine if
2392 prefetching is profitable.
2393 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
2394 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2395 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
2396 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2397 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
2398 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2399
e32b531f 24002009-06-08 Michael Matz <matz@suse.de>
2401
2402 PR debug/40012
e32b531f 2403 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
2404 partitions use the same.
2405 (expand_one_var): Deal with DECL_RTL sometimes begin set also
2406 for basevars of SSA_NAMEs.
2407 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
2408 to not expand them twice.
2409 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
2410 multiple places.
2411
71278019 24122009-06-08 Alexandre Oliva <aoliva@redhat.com>
2413
2414 * common.opt (fcompare-debug=, fcompare-debug-second): New.
2415 (fdump-final-insns=, gtoggle): New.
2416 * doc/invoke.texi: Document them.
2417 * final.c (rest_of_clean_state): Dump final insn stream.
2418 * gcc.c (invoke_as): Hook in -fcompare-debug.
2419 (static_spec_functions): Add compare-debug-dump-opt,
2420 compare-debug-self-opt and compare-debug-auxbase-opt.
2421 (compare_debug, compare_debug_second, compare_debug_opt): New.
2422 (switches_debug_check, n_switches_debug_check): New.
2423 (debug_auxbase_opt, debug_check_temp_file): New.
2424 (process_command): Handle -fno-compare-debug, -fcompare-debug and
2425 -fcompare-debug=*.
2426 (do_self_spec): Handle arguments after switches.
2427 (do_spec_1): Add .gk extension to temp file basenames for compare.
2428 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
2429 (cc1_options): Use it instead of normal auxbase computation for
2430 the second compare-debug compilation.
2431 (compare_files): New.
2432 (main): Set up and implement compare debug mode.
2433 (compare_debug_dump_opt_spec_function): New.
2434 (compare_debug_self_opt_spec_function): New.
2435 (compare_debug_auxbase_opt_spec_function): New.
2436 * toplev.c (process_options): Handle flag_gtoggle,
2437 flag_dump_final_insns.
2438 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
2439 during -fcompare-debug-second compilation.
2440
561017b5 24412009-06-07 Ian Lance Taylor <iant@google.com>
2442
c6aaf951 2443 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
561017b5 2444 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
2445
2446 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
2447 with no default node. Change warning with %H to warning_at.
2448 Don't clear warn_switch around case checking.
2449 * doc/invoke.texi (Warning Options): Clarify distinction between
2450 -Wswitch and -Wswitch-enum.
2451
315a45ed 24522009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2453
2454 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
2455
18d8ad76 24562009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2457
2458 * gbl-ctors.h: Add header guard.
2459
d8eaff30 24602009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2461
2462 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
2463 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
2464 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
2465 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
2466 prototypes for removed functions.
2467 (expressions_equal_p): Move to ...
2468 * tree-ssa-sccvn.h: ... here and ...
2469 * matrix-reorg.c: ... adjust includes.
2470
de9d32d3 24712009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2472
2473 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
2474
9eba252e 24752009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2476
2477 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
2478 (finish_function): Remove erroneous whitespace.
2479
dd24d1a6 24802009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2481
2c2eb7fa 2482 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
2483 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
3d400f58 2484
24852009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2486
2487 * errors.c (internal_error): Commentary typo fix.
2488 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
2489 * tree-ssa-pre.c: Ditto.
dd24d1a6 2490
2c2eb7fa 24912009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2492
2493 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
2494 them is supposed to hold actual statements.
2495
e1c8f1c5 24962009-06-06 Ian Lance Taylor <iant@google.com>
2497
2498 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
2499 empty statements can now have attributes.
2500
e6408be9 25012009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
2502
2503 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
2504 * config/mips/mips.md: Ditto.
2505
253e1b4a 25062009-06-05 Nathan Froyd <froydnj@codesourcery.com>
2507
2508 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
2509 _RELOCATABLE.
2510 (__eabi_uconvert): Likewise.
2511
aef98aab 25122009-06-05 Nathan Froyd <froydnj@codesourcery.com>
2513
2514 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
2515 CFI_* definitions with IN_GCC.
2516
8cb0d379 25172009-06-05 David Edelsohn <edelsohn@gnu.org>
2518
2519 * xcoffout.h (xcoffout_source_line): Update prototype.
2520
c3cfad90 25212009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2522
2523 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2524 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2525
f63d3ecc 25262009-06-05 Jakub Jelinek <jakub@redhat.com>
2527
2528 PR middle-end/40340
2529 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2530 inlined_function_outer_scope_p blocks for artificial inlines
2531 even at -g0/-g1.
2532 * tree.c (tree_nonartificial_location): Rewrite using
2533 block_nonartificial_location.
2534
454f25be 25352009-06-05 Revital Eres <eres@il.ibm.com>
2536 Leehod Baruch <leehod@il.ibm.com>
2537
2538 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2539 (expand_expr_real_1): Remove comment.
2540 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2541 Vectorize misaligned access when the target supports it.
c6aaf951 2542 (vect_supportable_dr_alignment): Check for unaligned access support.
454f25be 2543 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2544 and remove asset.
2545
be6a5df4 25462009-06-05 Julian Brown <julian@codesourcery.com>
2547
2548 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2549 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2550
75b9059b 25512009-06-05 Richard Guenther <rguenther@suse.de>
2552
2553 PR bootstrap/40350
2554 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2555 as possibly unused.
2556
f63d3ecc 25572009-06-05 Jakub Jelinek <jakub@redhat.com>
a3cd0f6a 2558
2559 * config/s390/s390.c (global_not_special_regno_p): New static inline.
2560 (save_gprs): Don't tell unwinder when a global register is saved.
2561 (s390_emit_epilogue): Emit needed epilogue unwind info.
2562
55df8db3 25632009-06-05 Alexandre Oliva <aoliva@redhat.com>
2564
2565 * dwarf2out.c (deferred_asm_name): New.
2566 (add_name_and_src_coords_attributes): Defer creation of
2567 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2568 computed yet.
2569 (move_linkage_attr): New.
2570 (dwarf2out_finish): Revisit deferrals and emit attributes at the
2571 right place.
2572
78e29a95 25732009-06-05 Alexandre Oliva <aoliva@redhat.com>
2574
2575 * tree-nested.c (finalize_nesting_tree_1): Declare the
2576 frame_decl in the binding tree.
2577
d01c707b 25782009-06-04 Cary Coutant <ccoutant@google.com>
2579
2580 * basic-block.h (struct basic_block_def): Add discriminator field.
2581 * dbxout.c (dbxout_source_line): Add new parameter. Change all
2582 callers.
2583 * debug.c (do_nothing_debug_hooks): Add additional entry.
2584 (debug_nothing_int_charstar_int): New function.
c6aaf951 2585 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
d01c707b 2586 (debug_nothing_int_charstar_int): New declaration.
2587 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
2588 discriminator value in .loc directive.
2589 * final.c (last_discriminator): New variable.
2590 (discriminator): New variable.
2591 (final_start_function): Initialize above variables, pass current
2592 discriminator to debug hook.
2593 (notice_source_line): Check for discriminator change.
2594 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2595 * sdbout.c (sdbout_source_line): New parameter.
2596 * tree-cfg.c (struct locus_discrim_map): New structure type.
2597 (discriminator_per_locus): New hash table.
2598 (build_gimple_cfg): Allocate and free discriminator hash table.
2599 (make_edges): Call assign_discriminator.
2600 (locus_map_hash): New function.
2601 (locus_map_eq): New function.
2602 (next_discriminator_for_locus): New function.
2603 (same_line_p): New function.
2604 (assign_discriminator): New function.
2605 (make_cond_expr_edges): Call assign_discriminator.
2606 (make_gimple_switch_edges): Likewise.
2607 (first_non_label_stmt): New function.
2608 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
2609 all callers.
2610 * xcoffout.c (xcoffout_source_line): Add new parameter.
2611
2612 * configure.ac (gcc_cv_as_discriminator): New configury check for
2613 gas support for discriminator.
2614 * configure: Regenerate.
2615 * config.in: Regenerate.
2616
7430cad1 26172009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2618
2619 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2620 val after checking for integers.
2621
b51058a6 26222009-06-04 Uros Bizjak <ubizjak@gmail.com>
2623
2624 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2625 X64_REGPARM_MAX.
2626 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2627 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2628 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2629 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2630 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
2631 X64_SSE_REGPARM_MAX.
2632 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
2633 X64_SSE_REGPARM_MAX.
2634
4537c5d9 26352009-06-04 Alexandre Oliva <aoliva@redhat.com>
2636
2637 * gcc.c (report_times_to_file): New.
2638 (execute): Implement it.
2639 (process_command): Support -time=.
2640 * doc/invoke.texi: Document it.
2641
ee093c13 26422009-06-04 Alexandre Oliva <aoliva@redhat.com>
2643
2644 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
2645 that have value exprs.
2646
1e03a59b 26472009-06-04 Alexandre Oliva <aoliva@redhat.com>
2648
2649 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
2650 declarations for constants until...
2651 (dw2_output_indirect_constant_1): ... this point.
2652
a3ffc315 26532009-06-04 Richard Earnshaw <rearnsha@arm.com>
2654
2655 PR target/10242
2656 * arm.md (arm_addsi3): Don't try to split an add with an
2657 eliminable register until after reload has completed.
2658
cd819d2f 26592009-06-03 Ian Lance Taylor <iant@google.com>
2660
2661 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
2662 * genattrtab.c (write_length_unit_log): Likewise.
2663 * genchecksum.c (dosum): Likewise.
2664 * gengtype.c (write_rtx_next): Likewise.
2665 (finish_root_table, write_roots): Likewise.
2666 * gimple.c (gimple_ops_offset_): Likewise.
2667 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
2668 * config/arc/arc.c (arc_attribute_table): Likewise.
2669 * config/arm/arm.c (arm_attribute_table): Likewise.
2670 * config/avr/avr.c (avr_attribute_table): Likewise.
2671 * config/crx/crx.c (crx_attribute_table): Likewise.
2672 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2673 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
2674 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2675 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2676 * config/sh/sh.c (sh_attribute_table): Likewise.
2677 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2678 * config/spu/spu.c (spu_attribute_table): Likewise.
2679 * config/v850/v850.c (v850_attribute_table): Likewise.
2680
2681 * config/alpha/alpha.c (vms_attribute_table): Make static.
2682 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2683 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2684 * config/mips/mips.c (mips_attribute_table): Likewise.
2685
2686 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
2687 $(SYSTEM_H).
2688 (cc1-checksum.o): Likewise.
2689
9a4e1a73 26902009-06-03 Steve Ellcey <sje@cup.hp.com>
2691
2692 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
2693
a9cc13e1 26942009-06-03 Jakub Jelinek <jakub@redhat.com>
2695
5f59286d 2696 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
2697 insn if it is changing sp. Use gen_add3_insn instead of
2698 conditionally gen_addsi3 and gen_adddi3.
2699 (offset_below_red_zone_p): New static inline function.
2700 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
2701 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
2702 * config/rs6000/ppc-asm.h: Include auto-host.h.
2703 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
2704 CFI_RESTORE): Define.
2705 * config/rs6000/crtresxgpr.asm: Add unwind info.
2706 * config/rs6000/crtresxfpr.asm: Likewise.
2707 * config/rs6000/crtresgpr.asm: Likewise.
2708 * config/rs6000/crtresfpr.asm: Likewise.
2709 * config/rs6000/crtsavgpr.asm: Likewise.
2710 * config/rs6000/crtsavfpr.asm: Likewise.
2711
b3154a1f 2712 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
2713 argument of DWARF2_FRAME_REG_OUT macros.
a9cc13e1 2714
e5a8295a 27152009-06-03 Julian Brown <julian@codesourcery.com>
2716
2717 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
2718 words or less (including TImode) in core registers.
2719
261b246f 27202009-06-03 Richard Guenther <rguenther@suse.de>
2721
2722 PR middle-end/40328
2723 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
2724
2dfe9981 27252009-06-03 Andrey Belevantsev <abel@ispras.ru>
2726
2727 * statistics.c (statistics_counter_event): Do not record event
2728 in pass dump if its number == -1.
2729 (curr_statistics_hash): Add assert that we never get passes
2730 with static number == -1.
2731
9a60c3b9 27322009-06-03 Richard Guenther <rguenther@suse.de>
2733 Andrey Belevantsev <abel@ispras.ru>
2734
2735 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
2736 non-BLKmode arrays addressable.
2737
f539feff 27382009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
2739
2740 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
2741 * config/m68k/m68k.h: ... here.
2742 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
2743 m68k and fido.
2744
4ecddf77 27452009-06-03 Martin Jambor <mjambor@suse.cz>
2746
2747 PR tree-optimization/40323
2748 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
2749 assignment.
2750
831afe34 27512009-06-03 Richard Guenther <rguenther@suse.de>
2752
2753 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2754 consistently.
2755
cb94f03c 27562009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
2757
2758 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
2759 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
2760 JUMP_TABLE_DATA_P where applicable.
2761 * config/sh/sh.c: Ditto.
2762 * config/sh/sh.h: Ditto.
2763 * config/sh/sh.md: Ditto.
2764 * config/sh/symbian.c: Ditto.
2765
faa14cce 27662009-06-03 Uros Bizjak <ubizjak@gmail.com>
2767
2768 * config/i386/driver-i386.c (describe_cache): Optimize
2769 concatenation of strings. Use snprintf instead of sprintf.
2770 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
2771 target when not compiling with GCC.
2772
2b0c9242 27732009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
2774
2775 * config/sh/sh.c: Revert last change.
2776 (sh_expand_epilogue): Emit a blockage insn before the frame
2777 pointer adjustment unconditionally.
2778
d4902064 27792009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2780
2781 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
2782 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
2783 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
2784 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
2785 to COLLECT_GCC_OPTIONS.
2786
ef6fd54f 27872009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2788
2789 * collect2.c (target_system_root): New variable.
2790 (main): Handle --sysroot=.
2791 (ignore_library): Strip the sysroot from the library path.
2792
cabc7147 27932009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2794
2795 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
2796 (collect2.o): Depend on collect2-aix.h.
2797 (collect2-aix.o): New rule.
2798 * collect2-aix.h: New file.
2799 * collect2-aix.c: Likewise.
2800 * collect2.c: Include collect2-aix.h. Don't undefine
2801 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
2802 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
2803 Use TARGET_AIX_VERSION instead of _AIX51.
2804 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
2805 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
2806 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
2807 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
2808 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
2809
329cbab5 28102009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2811
2812 * collect2.c (ignore_library): Avoid premature post-increment
2813 and null deference.
2814
5b69e2e1 28152009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2816
2817 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
2818 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
2819 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
2820 CROSS_DIRECTORY_STRUCTURE too.
2821 (LINK_LIBG_SPEC): Likewise.
2822 (LIB_SPEC): Add %R to sysroot paths.
2823 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
2824 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
2825 * config/rs6000/aix51.h: As for aix43.h.
2826 * config/rs6000/aix52.h: Likewise.
2827 * config/rs6000/aix53.h: Likewise.
2828 * config/rs6000/aix61.h: Likewise.
2829 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
2830 to the beginning of sysroot paths.
2831
f86c2921 28322009-06-02 Alexandre Oliva <aoliva@redhat.com>
2833
2834 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
2835 INSN_LISTs that are out of the REG_NOTE range.
2836
b635a1a3 28372009-06-02 Alexandre Oliva <aoliva@redhat.com>
2838
2839 * loop-unroll.c (struct iv_to_split): Add pointer to next.
2840 (struct var_to_expand): Likewise.
2841 (struct opt_info): Add head and tail for linked lists of the above.
2842 (analyze_insn_to_expand_var): Initialize next.
2843 (analyze_iv_to_split_insn): Likewise.
2844 (analyze_insns_in_loop): Create linked lists.
2845 (allocate_basic_variable): Simplify for use without hash table.
2846 (insert_var_expansion_initialization): Likewise, make it type-safer.
2847 (combine_var_copies_in_loop_exit): Likewise.
2848 (apply_opt_in_copies): Walk lists rather than hash tables.
2849 (release_var_copies): Simplified and inlined by hand into...
2850 (free_opt_info): ... this function.
2851
07958fba 28522009-06-02 Richard Guenther <rguenther@suse.de>
2853
2854 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2855 for field decls.
2856
c3771ec9 28572009-06-02 Alexandre Oliva <aoliva@redhat.com>
2858
2859 * cfgexpand.c (gimple_expand_cfg): Discard the source location
2860 only for builtins that are not overridden.
2861
d5b19135 28622009-06-02 Alexandre Oliva <aoliva@redhat.com>
2863
2864 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
2865 label string.
2866
44cb2148 28672009-06-02 Alexandre Oliva <aoliva@redhat.com>
2868
2869 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
2870
bc20fdd7 28712009-06-02 Alexandre Oliva <aoliva@redhat.com>
2872
2873 * combine.c (move_deaths): Compare LUIDs within the same BB only.
2874
0a59e439 28752009-06-02 Alexandre Oliva <aoliva@redhat.com>
2876
2877 * common.opt (fdump-unnumbered-links): New.
2878 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
2879 * print-rtl.c (flag_dump_unnumbered_links): New.
2880 (print_rtx): Test it.
2881
11417c43 28822009-06-02 Richard Earnshaw <rearnsha@arm.com>
2883
2884 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
2885 push/pop multiple to 8-byte alignment.
a3ffc315 2886
7737aadd 28872009-06-01 Jakub Jelinek <jakub@redhat.com>
2888
c42a6003 2889 * config/i386/i386.c (queued_cfa_restores): New static variable.
2890 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
2891 functions.
2892 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
2893 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
2894 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
2895 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
2896 note unconditionally.
2897 (ix86_emit_restore_regs_using_mov): Likewise.
2898 (ix86_emit_restore_sse_regs_using_mov): Likewise.
2899 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
2900 it through to ix86_emit_restore_reg_using_pop.
2901 (ix86_emit_leave): Add RED_OFFSET argument. Call
2902 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
2903 instead of adding REG_CFA_OFFSET note unconditionally.
2904 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
2905 the above functions. Call ix86_add_queued_cfa_restore_notes when
2906 needed.
2907
2908 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
2909 force output of the label even for dwarf2out_do_cfi_asm.
2910 (add_fde_cfi): If -g2 and above and cfi might change CFA,
2911 force creation of CFI label and chain DW_CFA_set_loc jumping to it
2912 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
2913 caller.
2914 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
2915 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
2916 dwarf2out_cfi_label callers.
2917 * tree.h (dwarf2out_cfi_label): Adjust prototype.
2918 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
2919 Adjust dwarf2out_cfi_label callers.
2920 * config/vax/vax.c (vax_output_function_prologue): Likewise.
2921
e3b9403e 2922 * config/i386/i386.h (struct machine_cfa_state,
2923 struct machine_function): Guard with ifndef USED_FOR_TARGET
2924 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
2925
b1fc924e 2926 PR other/40024
2927 * emutls.c (__emutls_get_address): Change arr->size to mean number
2928 of allocated arr->data entries instead of # of slots + 1.
2929
7737aadd 2930 PR middle-end/40316
2931 * recog.c (peep2_reinit_state): New function.
2932 (peephole2_init_state): Use it at the end of a basic block and also
2933 when seeing a RTX_FRAME_RELATED_P insn.
2934
a58127d5 29352009-06-01 Steve Ellcey <sje@cup.hp.com>
2936
2937 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
2938 fixuns_truncrfdi2): New.
2939 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
2940 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
2941 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
2942 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
2943 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
2944 *recip_approx): Remove.
2945 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
2946 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
2947 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
2948 move to div.md.
2949 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
2950 setf_exp_rf): New.
2951
402ba866 29522009-06-01 Ian Lance Taylor <iant@google.com>
2953
2954 * attribs.c (register_attribute): Use CONST_CAST.
2955 * collect2.c (main): Use CONST_CAST2.
2956 (scan_prog_file): Likewise.
2957 * gcc.c (process_command, main): Likewise.
2958 * toplev.c (toplev_main): Likewise.
2959
2960 * c-typeck.c (handle_warn_cast_qual): New static function,
2961 partially broken out of build_c_cast.
2962 (build_c_cast): Call handle_warn_cast_qual.
2963 * doc/invoke.texi (Warning Options): Document new effect of
2964 -Wcast-qual.
2965
b559b9e2 29662009-06-01 Aldy Hernandez <aldyh@redhat.com>
2967
2968 * diagnostic.c (diagnostic_build_prefix): Always print columns.
2969 (diagnostic_report_current_module): Print columns.
2970 * common.opt (flag_show_column): Enable by default.
2971
02b0d167 29722009-06-01 Luis Machado <luisgpm@br.ibm.com>
2973
2974 * alias.c (find_base_term): Check for NULL term before returning.
2975
a56c46d2 29762009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2977
2978 Revert due to PR40320:
a56c46d2 2979 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2980 * calls.c (emit_library_call_value_1): Don't force_operand for move
2981 and push insns.
2982
34a6a65d 29832009-06-01 Olivier Hainque <hainque@adacore.com>
afb7aecf 2984 Eric Botcazou <ebotcazou@adacore.com>
34a6a65d 2985
2986 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2987 to be processed as a bitfield for constructor output purposes.
2988 * output.h (initializer_constant_valid_for_bitfield_p): Declare
2989 new function.
2990 * varasm.c (oc_local_state): New type, output_constructor
2991 local state to support communication with helpers.
2992 (oc_outer_state): New type, output_constructor outer state of
2993 relevance in recursive calls.
2994 (output_constructor_array_range): New output_constructor helper,
2995 extracted code for an array range element.
2996 (output_constructor_regular_field): New output_constructor helper,
2997 extracted code for an element that is not a bitfield.
2998 (output_constructor_bitfield): New output_constructor helper,
2999 extracted code for a bitfield element. Accept an OUTER state
3000 argument for recursive processing. Recurse on record or array
3001 CONSTRUCTOR values, possibly past noop conversions.
69e84e89 3002 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
34a6a65d 3003 VALUE is a valid constant-valued expression for use in a static
3004 bit-field initializer.
69e84e89 3005 (output_constructor): Rework to use helpers. Accept and honor an
3006 OUTER state argument for recursive calls. Return total size. Be
34a6a65d 3007 prepared for nested constructors initializing bitfields.
3008 (output_constant): Feed OUTER in calls to output_constructor.
3009
997988ca 30102009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
3011
3012 * calls.c (emit_library_call_value_1): Don't force_operand for move
3013 and push insns.
3014
7435242d 30152009-06-01 Nick Clifton <nickc@redhat.com>
3016
3017 * doc/invoke.texi (IA-64 Options): Fix typo.
3018
10095225 30192009-06-01 Ira Rosen <irar@il.ibm.com>
3020
3021 PR tree-optimization/39129
3022 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
3023 printed message.
3024 (vect_do_peeling_for_loop_bound): Use
3025 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3026 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3027 (vect_loop_versioning): Likewise.
3028 (vect_create_cond_for_alias_checks): Fix indentation.
3029 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
3030 macros.
3031 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
3032 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
3033 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
3034 "control flow in loop".
3035 (vect_estimate_min_profitable_iters): Use
3036 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3037 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3038 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
3039 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
3040 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
3041 statement belongs to a group of strided accesses with the exact code
3042 check.
3043 (vectorizable_load): Likewise.
3044 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
3045 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3046
c4c8f6ce 30472009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
3048
3049 * config/freebsd-stdint.h: New file.
3050 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
3051 Add freebsd-stdint.h to tm_file.
3052
af29b1b3 30532009-06-01 Richard Earnshaw <rearnsha@arm.com>
3054
3055 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
3056 (thumb2_extendhidi2): Likewise.
3057
27d1bc52 30582009-05-31 Ian Lance Taylor <iant@google.com>
3059
faa14cce 3060 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
35a8b591 3061
30622009-05-31 Ian Lance Taylor <iant@google.com>
3063
faa14cce 3064 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
27d1bc52 3065 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
3066 (ipa-reference.o): Depend upon gt-ipa-reference.h.
3067
4437c3fe 30682009-05-31 Jason Merrill <jason@redhat.com>
3069
3070 * tree-pretty-print.c (print_call_name): Take the callee, not the
faa14cce 3071 call itself. Make non-static. Use dump_function_name for functions.
4437c3fe 3072 (dump_generic_node): Adjust.
3073 * diagnostic.h: Declare print_call_name.
3074 * gimple-pretty-print.c (dump_gimple_call): Use it.
3075
4f5ea781 30762009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
3077
3078 * config/sh/sh.md (ashldi3_std): New define_expand.
3079 (ashldi3): Use it.
3080
566998f1 30812009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
3082
3083 PR target/40313
3084 * config/sh/sh.c: Include debug.h.
3085 (sh_expand_epilogue): Emit a blockage insn before the frame
3086 pointer adjustment also when dwarf2out_do_frame returns true.
3087
409bc734 30882009-05-31 Richard Earnshaw <rearnsha@arm.com>
3089
3090 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
3091 (thumb2_extendqidi2): New pattern.
3092
f9e29128 30932009-05-31 Ira Rosen <irar@il.ibm.com>
3094
3095 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
3096 mark phis for renaming.
3097 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
3098 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
3099 Call mark_sym_for_renaming.
3100 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
faa14cce 3101 * tree-vect-loop.c (vect_transform_loop): Remove
3102 vect_memsyms_to_rename initialization and a call to
3103 mark_set_for_renaming.
f9e29128 3104
4872d196 31052009-05-31 Jakub Jelinek <jakub@redhat.com>
3106
3107 PR middle-end/40304
3108 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
3109 frame related even if !set_cfa && style < 0.
3110
d068eb52 31112009-05-30 Kai Tietz <kai.tietz@onevision.com>
3112
3113 * config/i386/mingw-tls.c: New file.
faa14cce 3114 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
3115 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
3116 defining _WIN32 but not __CYGWIN__.
d068eb52 3117
7601a55c 31182009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3119
3120 * configure.ac: Add MPC support.
3121
3122 * config.in, configure: Regenerate.
3123
25e880b1 31242009-05-29 Richard Henderson <rth@redhat.com>
3125
3126 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
3127 NOTE_INSN_BASIC_BLOCK.
3128 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
3129 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
3130 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
3131 to be deleted.
3132 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
3133 add in_use field.
3134 (add_cfi): Disable check redefining cfa away from drap.
3135 (lookup_cfa_1): Add remember argument; handle remember/restore.
3136 (lookup_cfa): Pass remember argument.
3137 (cfa_remember): New.
3138 (compute_barrier_args_size_1): Remove sibcall check.
3139 (dwarf2out_frame_debug_def_cfa): New.
3140 (dwarf2out_frame_debug_adjust_cfa): New.
3141 (dwarf2out_frame_debug_cfa_offset): New.
3142 (dwarf2out_frame_debug_cfa_register): New.
3143 (dwarf2out_frame_debug_cfa_restore): New.
3144 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
3145 (dwarf2out_begin_epilogue): New.
3146 (dwarf2out_frame_debug_restore_state): New.
3147 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
3148 DW_CFA_restore_state.
3149 (output_cfi_directive): Likewise.
3150 (convert_cfa_to_fb_loc_list): Likewise.
3151 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
3152 * dwarf2out.h: Update.
3153 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
3154 (copy_insn_1): Early out for null.
3155 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
3156 and dwarf2out_frame_debug_restore_state.
3157 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
3158 (prologue_insn_hash, epilogue_insn_hash): New.
3159 (free_after_compilation): Adjust freeing accordingly.
3160 (record_insns): Create hash table if needed; push insns into
3161 hash instead of array.
3162 (maybe_copy_epilogue_insn): New.
3163 (contains): Search hash table instead of array.
3164 (sibcall_epilogue_contains): Remove.
3165 (thread_prologue_and_epilogue_insns): Split eh_return insns
3166 and mark them as epilogues.
3167 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
3168 scanning in terms of basic blocks.
3169 * insn-notes.def (CFA_RESTORE_STATE): New.
3170 * jump.c (returnjump_p_1): Accept EH_RETURN.
3171 (eh_returnjump_p_1, eh_returnjump_p): New.
3172 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
3173 CFA_REGISTER, CFA_RESTORE): New.
3174 * rtl.def (EH_RETURN): New.
3175 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
3176
3177 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
3178 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
3179
3180 * config/i386/i386.c (gen_push): Update cfa state.
3181 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
3182 add a CFA_ADJUST_CFA note.
3183 (ix86_dwarf_handle_frame_unspec): Remove.
3184 (ix86_expand_prologue): Update cfa state.
3185 (ix86_emit_restore_reg_using_pop): New.
3186 (ix86_emit_restore_regs_using_pop): New.
3187 (ix86_emit_leave): New.
3188 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
3189 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
3190 * config/i386/i386.h (struct machine_cfa_state): New.
3191 (ix86_cfa_state): New.
3192 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
3193 (eh_return_internal): Merge from eh_return_<mode>,
3194 use eh_return rtx, split w/ epilogue.
3195
d62e827b 31962009-05-29 Ian Lance Taylor <iant@google.com>
3197
3198 * builtins.c (validate_gimple_arglist): Don't use va_arg with
3199 enum type.
3200 * calls.c (emit_library_call_value_1): Likewise.
3201
3202 * c-typeck.c (c_build_va_arg): New function.
3203 * c-tree.h (c_build_va_arg): Declare.
3204 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
3205 instead of build_va_arg.
3206
fe4600c9 32072009-05-29 Eric Botcazou <ebotcazou@adacore.com>
3208
3209 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
3210 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
3211 (ptr_difference_cost): Use affine combinations to compute it.
3212 (difference_cost): Likewise.
3213 (get_computation_cost_at): Compute more accurate cost for addresses
3214 if the ratio is a multiplier allowed in addresses.
3215 For non-addresses, consider that an additional offset or symbol is
3216 added only once.
3217
00a0e418 32182009-05-29 Jakub Jelinek <jakub@redhat.com>
3219
1f3db558 3220 * config/i386/i386.c (ix86_decompose_address): Avoid useless
3221 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
3222
00a0e418 3223 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
3224 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
3225 (prefix_rex): For UNIT_MMX don't imply the prefix by default
3226 if MODE_DI.
3227 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
3228 to 1 for TYPE_SSE{IADD1,CVT1}.
3229 (prefix_vex_imm8): Removed.
3230 (length_vex): Only pass 1 as second argument to
3231 ix86_attr_length_vex_default if prefix_extra is 0.
3232 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
3233 (length): For prefix vex computation use length_immediate
3234 attribute instead of prefix_vex_imm8.
3235 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
3236 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
3237 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
3238 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
3239 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
3240 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
3241 a space in between the operands.
3242 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
3243 if one operand is 0xff and the other one si, di, bp or sp.
3244 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
3245 other one si, di, bp or sp.
3246 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
3247 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
3248 type and mode attributes.
3249 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
3250 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
3251 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
3252 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
3253 prefix_data16 attribute iff MODE_DF.
3254 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
3255 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
3256 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
3257 constm128_operand in length_immediate computation.
3258 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
3259 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
3260 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
3261 length_immediate attribute to 1.
3262 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
3263 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
3264 for certain alternatives.
3265 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
3266 prefix_data16 attribute if MODE_V1DF.
3267 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
3268 length_immediate to 1.
3269 (set_got_rex64, set_rip_rex64): Remove length attribute, set
3270 length_address to 4, set mode attribute to MODE_DI.
3271 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
3272 (fxam<mode>2_i387): Set length attribute to 4.
3273 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
3274 *prefetch_3dnow_rex): Override length_address attribute.
3275 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
3276 attributes.
3277 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
3278 (constm128_operand): Removed.
3279 * config/i386/i386.c (memory_address_length): For
3280 disp && !index && !base in 64-bit mode account for SIB byte if
3281 print_operand_address can't optimize disp32 into disp32(%rip)
3282 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
3283 for fs: or gs: segment.
3284 (ix86_attr_length_immediate_default): When checking if shortform
3285 is possible, truncate immediate to the length of the non-shortened
3286 immediate.
3287 (ix86_attr_length_address_default): Ignore MEM_P operands
3288 with X constraint.
3289 (ix86_attr_length_vex_default): Only check for DImode on
3290 GENERAL_REG_P operands.
3291 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
3292 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
3293 (sse_cvttps2pi): Clear prefix_rep attribute.
3294 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
3295 attribute.
3296 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
3297 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
3298 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
3299 iff operand 2 is const_int_operand.
3300 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
3301 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
3302 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
3303 instead of vex.
3304 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
3305 prefix_data16.
3306 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
3307 prefix_data16 attribute for movlpd and movhpd instructions.
3308 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
3309 length_immediate for shufpd instruction.
3310 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
3311 (avx_cmpp<avxmodesuffixf2c><mode>3,
3312 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
3313 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
3314 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
faa14cce 3315 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
00a0e418 3316 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
3317 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
3318 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
3319 prefix_data16 attribute for the first alternative to 1.
3320 (*avx_loadlps): Override length_immediate for the first alternative.
3321 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
3322 attributes for second alternative.
3323 (*vec_concatv2sf_sse4_1): Override length_immediate and
3324 prefix_data16 attributes for second alternative.
3325 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
3326 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
3327 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
3328 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
3329 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
3330 prefix_data16 and length_immediate to 1.
3331 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
3332 to 1.
3333 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
faa14cce 3334 prefix_extra attribute for variants that don't have 0f prefix alone.
00a0e418 3335 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
3336 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
3337 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
3338 *sse4_1_pextrd): Set length_immediate to 1.
3339 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
3340 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
3341 to 1.
3342 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
3343 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
3344 length_immediate to 1 for second alternative.
3345 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
3346 prefix_extra and length_immediate attributes for the first
3347 alternative.
3348 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
3349 first alternative.
3350 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
3351 to 1 for the first and third alternative.
3352 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
3353 alternative.
3354 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
3355 attribute.
3356 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
3357 attribute to 0.
3358 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
3359 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
3360 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
3361 *avx_psign<mode>3): Set prefix_extra attribute to 1.
3362 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
3363 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
3364 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
3365 ssse3_psign<mode>3): Override prefix_rex attribute.
faa14cce 3366 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
00a0e418 3367 (ssse3_palignrti): Override length_immediate to 1.
3368 (ssse3_palignrdi): Override length_immediate to 1, override
3369 prefix_rex attribute.
faa14cce 3370 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
00a0e418 3371 (sse4a_extrqi): Override length_immediate to 2.
3372 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
3373 (sse4a_insertq): Override prefix_data16 to 0.
3374 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
3375 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
3376 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
3377 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
3378 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
3379 and length_immediate to 1.
3380 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
3381 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
3382 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
3383 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
3384 and length_immediate to 1.
3385 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
3386 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
3387 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
3388 avx_ptest256): Override prefix_extra to 1.
3389 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
3390 Override prefix_data16 and length_immediate to 1.
3391 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
3392 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
3393 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
3394 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
3395 prefix_data16 to 0 and prefix_extra to 2.
3396 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
3397 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
3398 attribute.
3399 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
3400 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
3401 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
3402 and prefix_extra to 2.
3403 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
3404 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
3405 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
3406 avx_vpermilvar<mode>3,
3407 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
3408 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
3409 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
3410 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
3411 Override prefix_extra to 1.
3412 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
3413 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
3414 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
3415 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
3416 prefix_extra and length_immediate to 1.
3417 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
3418 modrm to 0.
3419 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
3420 to 1 for the first alternative.
3421 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
3422 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
3423 cases.
3424 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
3425 *movv2sf_internal_avx, *movv2sf_internal): Override
3426 prefix_rep attribute for certain alternatives.
3427 (*mov<mode>_internal): Override prefix_rep or prefix_data16
3428 attributes for certain alternatives.
3429 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
3430 attributes for certain alternatives.
3431 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
3432 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
3433 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
3434 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
3435 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
3436 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
3437 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
3438 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
3439 length_immediate to 1 if operand 2 is const_int_operand.
3440 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
faa14cce 3441 *vec_extractv2si_1): Set length_immediate attribute to 1.
00a0e418 3442 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
3443 using old 3DNOW insn rather than SSE/3DNOW_A.
3444 (mmx_emms, mmx_femms): Clear modrm attribute.
3445
8d53b873 34462009-05-29 Martin Jambor <mjambor@suse.cz>
3447
3448 * tree-sra.c: New implementation of SRA.
3449
3450 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
3451 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
3452 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
3453 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
3454 (SRA_MAX_STRUCTURE_COUNT): Removed.
3455 (SRA_FIELD_STRUCTURE_RATIO): Removed.
3456 * doc/invoke.texi (sra-max-structure-size): Removed.
3457 (sra-field-structure-ratio): Removed.
3458
7c1ab261 34592009-05-29 Jakub Jelinek <jakub@redhat.com>
3460
3461 PR middle-end/40291
3462 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
3463 before expansion.
3464
961d3eb8 34652009-05-29 Andrey Belevantsev <abel@ispras.ru>
3466
3467 PR rtl-optimization/40101
3468 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
3469 seqno. Adjust comment.
3470 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
3471 inserting bookkeeping before a jump, the jump is not scheduled.
3472 When no positive seqno found, provide a value. Add comment.
3473
bc3c318e 34742009-05-29 Richard Guenther <rguenther@suse.de>
3475
3476 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
3477 short-cutting on the first component.
3478
7cf869dd 34792009-05-29 Jakub Jelinek <jakub@redhat.com>
3480
3481 PR middle-end/39958
3482 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
3483 for trees other than decls/types.
3484
2adb8813 34852009-05-29 Richard Guenther <rguenther@suse.de>
3486
3487 * tree-ssa-operands.c (get_expr_operands): Do not handle
3488 INDIRECT_REFs in the handled-component case. Remove
3489 unused get_ref_base_and_extent case.
3490 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
3491 tree_low_cst and host_integerp where possible.
3492 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
3493 codes for equivalence.
3494 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
3495
6471e33b 34962009-05-29 David Billinghurst <billingd@gcc.gnu.org>
3497
3498 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
3499 to tmake_file for i[34567]86-*-cygwin*.
3500
fd36071f 35012009-05-29 Jakub Jelinek <jakub@redhat.com>
3502
3503 PR target/40017
3504 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
3505 (altivec_categorize_keyword, init_vector_keywords,
3506 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
3507 similar to bool.
3508
de84ad02 35092009-05-29 Kai Tietz <kai.tietz@onevision.com>
3510
3511 * tree.c (handle_dll_attribute): Check if node is
3512 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
3513
4ce3945e 35142009-05-29 Richard Earnshaw <rearnsha@arm.com>
3515
3516 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
3517 component.
3518 (thumb2_zero_extendqidi2): Likewise.
3519
b0acfa02 35202009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3521
3522 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
3523 instead of gen_movrt.
3524 * config/sh/sh.md (movrt): Remove.
3525
63945be2 35262009-05-28 Steve Ellcey <sje@cup.hp.com>
3527
faa14cce 3528 * doc/invoke.texi (IA-64 Options):
63945be2 3529 Add -msdata, -mfused-madd, -mno-inline-float-divide,
3530 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
3531 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
3532 -msched-prefer-non-control-spec-insns,
3533 -msched-stop-bits-after-every-cycle,
3534 -msched-count-spec-in-critical-path,
3535 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
faa14cce 3536 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
63945be2 3537 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
3538 and -msched-spec-verbose.
3539
92ecd908 35402009-05-28 Joseph Myers <joseph@codesourcery.com>
3541
faa14cce 3542 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
92ecd908 3543 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
3544 error if used.
3545 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
3546
3918bd18 35472009-05-28 Richard Guenther <rguenther@suse.de>
3548
3549 * tree-ssa-alias.c (ao_ref_init): New function.
3550 (ao_ref_base): Likewise.
3551 (ao_ref_base_alias_set): Likewise.
3552 (ao_ref_alias_set): Likewise.
3553 (refs_may_alias_p_1): Change signature.
3554 (refs_may_alias_p): Adjust.
3555 (refs_anti_dependent_p): Likewise.
3556 (refs_output_dependent_p): Likewise.
3557 (call_may_clobber_ref_p_1): Change signature.
3558 (call_may_clobber_ref_p): Adjust.
3559 (stmt_may_clobber_ref_p_1): New function split out from ...
3560 (stmt_may_clobber_ref_p): ... here.
3561 (maybe_skip_until): Adjust signature.
3562 (get_continuation_for_phi): Likewise.
3563 (walk_non_aliased_vuses): Likewise.
3564 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
3565 (ao_ref_init): Declare.
3566 (ao_ref_base): Likewise.
3567 (ao_ref_alias_set): Likewise.
3568 (stmt_may_clobber_ref_p_1): Likewise.
3569 (walk_non_aliased_vuses): Adjust.
3570 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
3571 (get_ref_from_reference_ops): remove.
3572 (vn_reference_lookup_2): Adjust signature.
3573 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
faa14cce 3574 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
3918bd18 3575 (vn_reference_lookup): Adjust.
3576 (vn_reference_insert): Likewise.
3577 (vn_reference_insert_pieces): Adjust signature.
3578 (visit_reference_op_call): Adjust.
3579 * tree-ssa-pre.c (get_expr_type): Simplify.
3580 (phi_translate_1): Adjust.
3581 (compute_avail): Likewise.
3582 (translate_vuse_through_block): Do not re-build trees.
3583 (value_dies_in_block_x): Likewise.
3584 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
3585 fields.
3586 (vn_reference_lookup_pieces): Adjust declaration.
3587 (vn_reference_insert_pieces): Likewise.
3588
f2e585c3 35892009-05-28 Benjamin Kosnik <bkoz@redhat.com>
3590
3591 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
3592 with checking disabled.
3593
7b897de3 35942009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
3595
3596 PR target/37216
3597
3598 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
3599 macro definition for support of three-operand format aligned
3600 .comm directive in assembler on cygwin/pe/mingw target OS.
3601 * configure: Regenerate.
3602 * config.h: Regenerate.
3603
3604 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
3605 aligned form of .comm directive if -mpe-aligned-commons is in effect.
3606 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
3607
3608 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
3609 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
3610
dd2644cf 36112009-05-28 Ira Rosen <irar@il.ibm.com>
3612
3613 PR tree-optimization/40254
3614 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
3615 in analysis of basic blocks.
3616
01c8e4c9 36172009-05-28 Adam Nemet <anemet@caviumnetworks.com>
3618
3619 PR middle-end/33699
faa14cce 3620 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
01c8e4c9 3621 * target-def.h (TARGET_CONST_ANCHOR): New macro.
3622 (TARGET_INITIALIZER): Use it.
3623 * cse.c (CHEAPER): Move it up to the other macros.
3624 (insert): Rename this ...
3625 (insert_with_costs): ... to this. Add cost parameters. Update
3626 function comment.
3627 (insert): New function. Call insert_with_costs.
3628 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
3629 find_reg_offset_for_const, try_const_anchors): New functions.
3630 (cse_insn): Call try_const_anchors. Adjust cost of src_related
3631 when using a const-anchor. Call insert_const_anchors.
faa14cce 3632 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
01c8e4c9 3633 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
3634
0c1c155a 36352009-05-28 Alexandre Oliva <aoliva@redhat.com>
3636
3637 * tree-inline.c (remap_decls): Enable nonlocalized variables
3638 when not optimizing.
3639
fe5c69b7 36402009-05-28 Alexandre Oliva <aoliva@redhat.com>
3641
3642 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
3643 Simplify other tests involving optimize.
3644
99385b4b 36452009-05-27 Tom Tromey <tromey@redhat.com>
3646
3647 * unwind-dw2.c (_Unwind_DebugHook): New function.
3648 (uw_install_context): Call _Unwind_DebugHook.
3649
2458dc30 36502009-05-27 Tom Tromey <tromey@redhat.com>
3651
3652 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
3653
40b6e20e 36542009-05-27 Ian Lance Taylor <iant@google.com>
3655
3656 * Makefile.in (LINKER, LINKER_FLAGS): Define.
3657 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
3658 (ALL_LINKERFLAGS): Define.
3659 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
3660 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3661 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
3662 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3663 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
3664 $(LINKER_FOR_BUILD).
3665 (build/gcov-iov$(build_exeext)): Likewise.
3666
2b86a75a 36672009-05-27 Julian Brown <julian@codesourcery.com>
3668
3669 * gcse.c (target.h): Include.
3670 (can_assign_to_reg_without_clobbers_p): Check that the target allows
3671 copy of argument to a pseudo register.
3672
b79917fd 36732009-05-27 Diego Novillo <dnovillo@google.com>
3674
3675 * tree-ssa-live.c (dump_scope_block): Document arguments.
3676 (dump_scope_blocks): Document.
3677 (debug_scope_blocks): New.
3678 * tree-flow.h (debug_scope_blocks): Declare.
3679
23c2749b 36802009-05-21 Denis Chertykov <denisc@overta.ru>
3681
faa14cce 3682 * doc/contrib.texi (Contributors): Add myself to the list.
23c2749b 3683
4c13df35 36842009-05-27 Olivier Hainque <hainque@adacore.com>
6cbeacbb 3685
3686 * expr.c (target_align): New function. Alignment the TARGET of an
3687 assignment may be assume to have.
3688 (highest_pow2_factor_for_target): Use it instead of relying on
3689 immediate tree attributes of TARGET, not necessarily honored when
3690 intermediate bitfields are involved.
3691
c2d2fbe7 36922009-05-27 H.J. Lu <hongjiu.lu@intel.com>
3693
3694 PR target/40266
3695 * config/i386/driver-i386.c (host_detect_local_cpu): Support
3696 AVX, SSE4, AES, PCLMUL and POPCNT.
3697
7aa082e5 36982009-05-27 Diego Novillo <dnovillo@google.com>
3699
3700 * tree-pretty-print.c (dump_location): New.
3701 (dump_generic_node): Call it.
3702 Factor code to handle BLOCK nodes ...
3703 (dump_block_node): ... here.
3704
a0b14cdf 37052009-05-27 Rafael Avila de Espindola <espindola@google.com>
3706
faa14cce 3707 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
3708 with it.
a0b14cdf 3709 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
3710 included.
3711 * gcc-plugin.h: Include config.h and system.h.
3712 (IN_GCC): Define if not defined.
3713
97903452 37142009-05-27 Hans-Peter Nilsson <hp@axis.com>
3715
3716 PR middle-end/40249
3717 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
3718 with -fno-inline.
3719
452bfb8b 37202009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
3721
3722 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
3723 applicable.
3724 * config/m32r/m32r.h: Ditto.
3725 * config/m32r/m32r.md: Ditto.
3726 * config/m32r/predicates.md: Ditto.
3727
75f1788a 37282009-05-27 Alexandre Oliva <aoliva@redhat.com>
3729
3730 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
3731
740cd0be 37322009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
3733
3734 * doc/plugins.texi
3735 (Loading plugins): typo.
3736 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
3737 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3738 (Interacting with the GCC Garbage Collector): Added new section.
3739 (Giving information about a plugin): Added new section for
3740 PLUGIN_INFO.
740cd0be 3741 * ggc.h (ggc_register_root_tab): Added declaration.
3742 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
3743 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
3744 (register_callback): Improved comment in declaration.
faa14cce 3745 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
3746 (extra_root_vec) Added static variable for dynamic roots registration.
740cd0be 3747 (ggc_register_root_tab) Added new routine.
3748 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
3749 PLUGIN_GGC_MARKING event.
3750 * ggc-zone.c: Include plugin.h.
3751 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3752 * ggc-page.c: Include plugin.h.
3753 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3754 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
3755 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
3756 (register_callback): check lack of callbacks for
3757 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
3758 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
3759 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
3760 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3761 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
3762 dependency on plugin.h.
3763 (plugin.o): Added dependency on ggc.h...
3764
79e662e5 37652009-05-26 Richard Guenther <rguenther@suse.de>
3766
3767 PR middle-end/40248
3768 Revert
3769 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3770 with mismatched comparison modes.
3771
3772 * expr.c (expand_expr_real_1): Expand the operand of a
3773 VIEW_CONVERT_EXPR in its natural mode.
3774
585d4848 37752009-05-26 Ian Lance Taylor <iant@google.com>
3776
3777 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
3778 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
3779 (ALL_COMPILERFLAGS): Define.
3780 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
3781 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3782 (collect2$(exeext), collect2.o): Likewise.
3783 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
3784 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
3785 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
3786 (libbackend.o, intl.o, cppdefault.o): Likewise.
3787 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3788 (build/%.o): Use $(COMPILER_FOR_BUILD).
3789 (build/gen%$(build_exeext)): Likewise.
3790 (build/gcov-iov$(build_exeext)): LIkewise.
3791 * config/t-darwin (darwin.o): Use $(COMPILER).
3792 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
3793 * config/t-sol2 (sol2-c.o): Likewise.
3794 (sol2.o): Likewise.
3795 * config/t-vxworks (vxworks.o): Likewise.
3796 * config/x-darwin (host-darwin.o): Likewise.
3797 * config/x-hpux (host-hpux.o): Likewise.
3798 * config/x-linux (host-linux.o): Likewise.
3799 * config/x-solaris (host-solaris.o): Likewise.
3800 * config/alpha/x-alpha (driver-alpha.o): Likewise.
3801 * config/arm/t-arm (arm-c.o): Likewise.
3802 * config/arm/t-pe (pe.o): Likewise.
3803 * config/arm/t-wince-pe (pe.o): Likewise.
3804 * config/i386/t-cygming (winnt.o): Likewise.
3805 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
3806 * config/i386/t-cygwin (cygwin1.o): Likewise.
3807 (cygwin2.o): Likewise.
3808 * config/i386/t-i386 (i386-c.o): Likewise.
3809 * config/i386/t-interix (winnt.o): Likewise.
3810 * config/i386/t-netware (netware.o): Likewise.
3811 * config/i386/t-nwld (nwld.o): Likewise.
3812 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3813 * config/i386/x-i386 (driver-i386.o): Likewise.
3814 * config/i386/x-cygwin (host-cygwin.o): Likewise.
3815 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
3816 * config/ia64/t-ia64 (ia64-c.o): Likewise.
3817 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
3818 * config/mips/x-native (driver-native.o): Likewise.
3819 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
3820 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3821 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3822 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
3823 * config/score/t-score-elf (score7.o): Likewise.
3824 (score3.o): Likewise.
3825 * config/sh/t-sh (sh-c.o): Likewise.
3826 * config/sh/t-symbian (sh-c.o): Likewise.
3827 (symbian.o): Likewise.
3828 * config/spu/t-spu-elf (spu-c.o): Likewise.
3829 * config/v850/t-v850 (v850-c.o): Likewise.
3830 * config/v850/t-v850e (v850-c.o): Likewise.
3831
388a0bc7 38322009-05-26 Richard Guenther <rguenther@suse.de>
3833
3834 PR tree-optimization/40122
3835 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
3836 VECTOR_CSTs if possible.
3837 (fold_gimple_assign): Likewise.
3838
f6d729b8 38392009-05-26 Richard Guenther <rguenther@suse.de>
3840
3841 PR middle-end/40252
3842 * fold-const.c (fold_binary): Use the correct types for building
3843 rotates.
3844
ba3f9c71 38452009-05-26 Richard Guenther <rguenther@suse.de>
3846
3847 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
3848 redundant calls to merge_alias_info.
3849 (bump_vector_ptr): Likewise.
3850 * tree-ssa-copy.c (merge_alias_info): Remove.
3851 (replace_exp_1): Remove call to merge_alias_info.
3852 (propagate_tree_value): Likewise.
3853 (fini_copy_prop): Propagate points-to info.
3854 * tree-flow.h (merge_alias_info): Remove.
3855
93829856 38562009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
3857
3858 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
3859
97343302 38602009-05-25 Jan Hubicka <jh@suse.cz>
3861
3862 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3863 * cgraph.h (struct inline_summary): New filed self_wize,
3864 size_inlining_benefit, self_time and time_inlining_benefit.
3865 (struct cgraph_global_info): Replace insns by time ans size fields.
3866 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3867 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3868 (ipcp_update_callgraph): Do not touch function bodies.
3869 * ipa-inline.c: Include except.h
3870 (MAX_TIME): New constant.
3871 (overall_insns): Remove.
3872 (leaf_node_p): New.
3873 (overall_size, max_benefit): New static variables.
3874 (cgraph_estimate_time_after_inlining): New function.
3875 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3876 (cgraph_clone_inlined_nodes): Update size.
3877 (cgraph_mark_inline_edge): Update size.
3878 (cgraph_estimate_growth): Use size info.
3879 (cgraph_check_inline_limits): Check size.
3880 (cgraph_default_inline_p): Likewise.
3881 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3882 (cgraph_decide_recursive_inlining): Check size.
faa14cce 3883 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3884 and times.
97343302 3885 (cgraph_decide_inlining): Likewise.
3886 (cgraph_decide_inlining_incrementally): Likewise; honor
3887 PARAM_EARLY_INLINING_INSNS.
3888 (likely_eliminated_by_inlining_p): New predicate.
3889 (estimate_function_body_sizes): New function.
3890 (compute_inline_parameters): Use it.
3891 * except.c (must_not_throw_labels): New function.
3892 * except.h (must_not_throw_labels): Declare.
3893 * tree-inline.c (init_inline_once): Kill inlining_weigths
3894 * tree-ssa-structalias.c: Avoid uninitialized warning.
3895 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3896 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3897 (PARAM_INLINE_CALL_COST): Remove.
3898 (PARAM_EARLY_INLINING_INSNS): New.
3899
d8021dea 39002009-05-25 Richard Guenther <rguenther@suse.de>
3901
3902 PR tree-optimization/36327
3903 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
faa14cce 3904 callback for reference translation or lookup at the point of may-defs.
d8021dea 3905 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
3906 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
3907 for union COMPONENT_REFs.
3908 (vn_reference_lookup_3): New callback. Lookup from memset
3909 and CONSTRUCTOR assignment, translate through struct copies.
3910 (vn_reference_lookup_pieces): Make sure to not free the
3911 passed operands array. Adjust walk_non_aliased_vuses call.
3912 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
3913 make sure we do not leak memory.
3914
7f81b5ee 39152009-05-25 Richard Guenther <rguenther@suse.de>
3916
3917 * tree-ssa-alias.h (dump_points_to_solution): Declare.
3918 * tree-inline.c (expand_call_inline): Reset the escaped and
3919 callused solutions.
3920 * tree-ssa-structalias.c (pass_build_ealias): New.
3921 * tree-pass.h (pass_build_ealias): Declare.
3922 * passes.c (init_optimization_passes): Add PTA during
3923 early optimizations.
3924 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
3925 and CALLUSED solutions.
3926 (dump_points_to_solution): New function, split out from ...
3927 (dump_points_to_info_for): ... here.
3928 * tree-parloops.c (parallelize_loops): Reset the escaped and
3929 callused solutions.
3930
6a352190 39312009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3932
3933 PR bootstrap/40027
3934 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
3935 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
3936
765a637f 39372009-05-25 Ira Rosen <irar@il.ibm.com>
3938
3939 PR tree-optimization/40238
3940 * tree-vect-stmts.c (vect_init_vector): Insert initialization
3941 statements after basic block's labels.
3942 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
3943 to free the allocated memory.
3944
b4dce965 39452009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
3946
3947 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
3948 return address with a USE.
3949
3b32ccd7 39502009-05-24 Richard Guenther <rguenther@suse.de>
3951
3952 PR middle-end/40233
3953 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
3954 array type from the main variant of the inner type.
3955
98897d2c 39562009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3957
3958 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
3959 definition to bool (from int) to un-break build.
3960 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
3961
4c5fd53c 39622009-05-24 Paolo Bonzini <bonzini@gnu.org>
3963
3964 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
3965 discard_stmt_changes): Delete.
3966 * tree-ssa-operands.c (scb_stack): Delete.
3967 (init_ssa_operands): Do not initialize it.
3968 (fini_ssa_operands): Do not free it.
3969 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
3970
3971 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
3972 update_stmt, remove the others. Fix comments.
3973 * tree-dfa.c (optimize_stack_restore): Likewise.
3974 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3975 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3976 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3977 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3978 Likewise.
3979 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3980 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
faa14cce 3981 (dom_opt_finalize_block): Likewise, adjusting access to
3982 stmts_to_rescan.
4c5fd53c 3983 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3984 (stmts_to_rescan): Change item type to gimple.
3985 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3986
37545e54 39872009-05-24 Ira Rosen <irar@il.ibm.com>
3988
3989 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3990 * tree-pass.h (pass_slp_vectorize): New pass.
3991 * params.h (SLP_MAX_INSNS_IN_BB): Define.
3992 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3993 * tree-vectorizer.c (timevar.h): Include.
3994 (user_vect_verbosity_level): Declare.
3995 (vect_location): Fix comment.
3996 (vect_set_verbosity_level): Update user_vect_verbosity_level
3997 instead of vect_verbosity_level.
3998 (vect_set_dump_settings): Add an argument. Ignore user defined
3999 verbosity if dump flags require higher level of verbosity. Print to
4000 stderr only for loop vectorization.
4001 (vectorize_loops): Update call to vect_set_dump_settings.
4002 (execute_vect_slp): New function.
4003 (gate_vect_slp): Likewise.
4004 (struct gimple_opt_pass pass_slp_vectorize): New.
4005 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
4006 access its members.
4007 (vec_info_for_bb): New function.
4008 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
4009 (VECTORIZATION_ENABLED): New macro.
4010 (SLP_ENABLED, SLP_DISABLED): Likewise.
4011 (vect_is_simple_use): Add bb_vec_info argument.
4012 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
4013 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
4014 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
4015 vect_schedule_slp, vect_analyze_slp): Likewise.
4016 (vect_analyze_stmt): Add slp_tree argument.
4017 (find_bb_location): Declare.
4018 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
4019 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
4020 (vect_analyze_loop_operations, vect_analyze_loop,
4021 get_initial_def_for_induction, vect_create_epilog_for_reduction,
4022 vect_finalize_reduction, vectorizable_reduction,
4023 vectorizable_live_operation, vect_transform_loop): Likewise.
4024 * tree-data-ref.c (dr_analyze_innermost): Update comment,
4025 skip evolution analysis if analyzing a basic block.
4026 (dr_analyze_indices): Likewise.
4027 (initialize_data_dependence_relation): Skip the test whether the
4028 object is invariant for basic blocks.
4029 (compute_all_dependences): Skip dependence analysis for data
4030 references in basic blocks.
4031 (find_data_references_in_stmt): Don't fail in case of invariant
4032 access in basic block.
4033 (find_data_references_in_bb): New function.
4034 (find_data_references_in_loop): Move code to
2377feea 4035 find_data_references_in_bb and add a call to it.
37545e54 4036 (compute_data_dependences_for_bb): New function.
4037 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
4038 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
4039 that STEP is 0.
4040 (vect_analyze_data_ref_dependence): Check for interleaving in case of
4041 unknown dependence in basic block and fail in case of dependence in
4042 basic block.
4043 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
4044 dependence instances from either loop or basic block vectorization
4045 info.
4046 (vect_compute_data_ref_alignment): Check if it is loop vectorization
4047 before calling nested_in_vect_loop_p.
4048 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
4049 dependence instances from either loop or basic block vectorization
4050 info.
4051 (vect_verify_datarefs_alignment): Likewise.
4052 (vect_enhance_data_refs_alignment): Adjust function calls.
4053 (vect_analyze_data_refs_alignment): Likewise.
4054 (vect_analyze_group_access): Fix printing. Skip different checks if
4055 DR_STEP is 0. Keep strided stores either in loop or basic block
4056 vectorization data structure. Fix indentation.
4057 (vect_analyze_data_ref_access): Fix comments, allow zero step in
4058 basic blocks.
4059 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
4060 dependence instances from either loop or basic block vectorization
4061 info.
4062 (vect_analyze_data_refs): Update comment. Call
4063 compute_data_dependences_for_bb to analyze basic blocks.
4064 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
4065 case of loop vectorization. In case of basic block vectorization use
2377feea 4066 data-ref itself as a base.
37545e54 4067 (vect_create_data_ref_ptr): In case of basic block vectorization:
4068 don't advance the pointer, add new statements before the current
4069 statement. Adjust function calls.
4070 (vect_supportable_dr_alignment): Support only aligned accesses in
4071 basic block vectorization.
4072 * common.opt (ftree-slp-vectorize): New flag.
4073 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
4074 (vect_pattern_recog_1): Likewise.
4075 * tree-vect-stmts.c (process_use): Likewise.
4076 (vect_init_vector): Add new statements in the beginning of the basic
4077 block in case of basic block SLP.
4078 (vect_get_vec_def_for_operand): Adjust function calls.
4079 (vect_finish_stmt_generation): Likewise.
4080 (vectorizable_call): Add assert that it is loop vectorization, adjust
4081 function calls.
4082 (vectorizable_conversion, vectorizable_assignment): Likewise.
4083 (vectorizable_operation): In case of basic block SLP, take
4084 vectorization factor from statement's type and skip the relevance
4085 check. Adjust function calls.
4086 (vectorizable_type_demotion): Add assert that it is loop
4087 vectorization, adjust function calls.
4088 (vectorizable_type_promotion): Likewise.
4089 (vectorizable_store): Check for outer loop only in case of loop
4090 vectorization. Adjust function calls. For basic blocks, skip the
4091 relevance check and don't advance pointers.
4092 (vectorizable_load): Likewise.
4093 (vectorizable_condition): Add assert that it is loop vectorization,
4094 adjust function calls.
4095 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
4096 that it is not reduction, get vector type, call only supported
2377feea 4097 functions, skip loop specific parts.
37545e54 4098 (vect_transform_stmt): Check for outer loop only in case of loop
4099 vectorization.
4100 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
4101 (vect_is_simple_use): Fix comment, add new argument, fix conditions
4102 for external definition.
4103 * passes.c (pass_slp_vectorize): New pass.
4104 * tree-vect-slp.c (find_bb_location): New function.
4105 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
4106 check for patterns only in loops.
4107 (vect_build_slp_tree): Add argument, adjust function calls, fail in
4108 case of multiple types in basic block SLP.
4109 (vect_mark_slp_stmts_relevant): New function.
4110 (vect_supported_load_permutation_p): Fix comment.
4111 (vect_analyze_slp_instance): Add argument. In case of basic block
4112 SLP, take vectorization factor from statement's type, check that
4113 unrolling factor is 1. Adjust function call. Save SLP instance in
4114 either loop or basic block vectorization structure. Return FALSE,
4115 if SLP failed.
4116 (vect_analyze_slp): Add argument. Get strided stores groups from
4117 either loop or basic block vectorization structure. Return FALSE
4118 if basic block SLP failed.
4119 (new_bb_vec_info): New function.
4120 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
4121 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
4122 (vect_schedule_slp): Add argument. Get SLP instances from either
4123 loop or basic block vectorization structure. Set vectorization factor
4124 to be 1 for basic block SLP.
4125 (vect_slp_transform_bb): New function.
4126 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
4127
88facd8b 41282009-05-23 Mark Mitchell <mark@codesourcery.com>
4129
4130 * final.c (shorten_branches): Do not align labels for jump tables.
4131 (final_scan_insn): Use JUMP_TABLE_DATA_P.
4132
507ec136 41332009-05-23 Eric Botcazou <ebotcazou@adacore.com>
4134
4135 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
4136 Remove outdated reference to flow.c and fix nits.
4137 * doc/gccint.texi: Tweak RTL description.
4138 * doc/rtl.texi: Likewise.
4139
947dd720 41402009-05-23 Denis Chertykov <chertykov@gmail.com>
4141
4142 * config/avr/avr.c: Change my email address.
4143 * config/avr/avr.h: Likewise.
4144 * config/avr/avr.md: Likewise.
4145 * config/avr/avr-protos.h: Likewise.
4146 * config/avr/libgcc.S: Likewise.
4147
9d98604b 41482009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
4149
4150 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
4151 (spu_split_load, spu_split_store): Change return type to int.
4152 (spu_split_convert): Declare.
4153 * config/spu/predicates.md (spu_mem_operand): Remove.
4154 (spu_mov_operand): Update.
4155 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
4156 * config/spu/spu.c (regno_aligned_for_load): Remove.
4157 (reg_aligned_for_addr, spu_expand_load): Define.
4158 (spu_expand_extv): Reimplement and handle MEM.
4159 (spu_expand_insv): Handle MEM.
4160 (spu_sched_reorder): Handle insn's with length 0.
4161 (spu_legitimate_address_p): Reimplement.
4162 (store_with_one_insn_p): Return TRUE for any mode with size
4163 larger than 16 bytes.
4164 (address_needs_split): Define.
4165 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
4166 operands.
4167 (spu_convert_move): Define.
2377feea 4168 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
9d98604b 4169 (spu_split_store): Change all MEM's to TImode.
4170 (spu_init_expanders): Preallocate registers that correspond to
4171 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
4172 mark_reg_pointer.
4173 (spu_split_convert): Define.
4174 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
4175 (_move<mode>, _movdi, _movti): Update predicate and condition.
4176 (load, store): Change to define_split.
4177 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
4178 extend<mode>ti2.
4179 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
4180 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
4181 define_insn_and_split of lshr<mode>3.
4182 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
4183 (<v>ashr<mode>3_imm): Define.
4184 (extv, extzv, insv): Allow MEM operands.
4185 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
4186 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
4187 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
4188 (_spu_convert2): Change to define_insn_and_split and remove the
4189 corresponding define_peephole2.
4190 (stack_protect_set, stack_protect_test, stack_protect_test_si):
4191 Change predicates to memory_operand.
4192
beeea7ed 41932009-05-22 Mark Mitchell <mark@codesourcery.com>
4194
4195 * config/arm/thumb2.md: Add 16-bit multiply instructions.
beeea7ed 4196
4b2b1011 41972009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
4198
4199 PR tree-optimization/40219
4200 * tree.c (iterative_hash_expr): Make sure the builtin function is
4201 a normal builtin function and not a front end or back end builtin
4202 before indexing into the built_in_decls array.
4203
2a3ebafa 42042009-05-22 Richard Guenther <rguenther@suse.de>
4205
4206 PR middle-end/38964
4207 * alias.c (write_dependence_p): Do not use TBAA for answering
4208 anti-dependence or output-dependence.
2377feea 4209 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
2a3ebafa 4210 (emit_pointer_definition): Remove.
4211 (emit_alias_warning): Likewise.
4212 (find_what_var_points_to): Remove TBAA pruning code.
4213 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
4214 violations.
4215 (compute_points_to_sets): Remove code computing the set of
4216 dereferenced pointers.
4217 * tree-data-ref.c (dr_may_alias_p): Properly use the split
4218 oracle for querying anti and output dependencies.
4219 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
4220 if TBAA may be applied.
4221 (refs_anti_dependent_p): New function.
4222 (refs_output_dependent_p): Likewise.
4223 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
4224 (refs_output_dependent_p): Likewise.
4225 * doc/tree-ssa.texi (Memory model): New section.
4226 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4227 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4228 * cfgexpand.c (expand_gimple_basic_block): Do not handle
4229 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
4230 * expr.c (expand_expr_real_1): Likewise.
4231 * gimple-low.c (lower_stmt): Likewise.
4232 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
4233 (dump_gimple_cdt): Remove.
4234 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4235 (gimple_size): Likewise.
4236 (walk_gimple_op): Likewise.
4237 (is_gimple_stmt): Likewise.
4238 (walk_stmt_load_store_addr_ops): Likewise.
4239 (gimple_build_cdt): Remove.
4240 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4241 * gimple.h (gimple_cdt_new_type): Remove.
4242 (gimple_cdt_new_type_ptr): Likewise.
4243 (gimple_cdt_set_new_type): Likewise.
4244 (gimple_cdt_location): Likewise.
4245 (gimple_cdt_location_ptr): Likewise.
4246 (gimple_cdt_set_location): Likewise.
4247 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4248 * tree-cfg.c (remove_useless_stmts_1): Do not handle
4249 GIMPLE_CHANGE_DYNAMIC_TYPE.
4250 (verify_types_in_gimple_stmt): Likewise.
4251 * tree-inline.c (estimate_num_insns): Likewise.
4252 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
4253 (copy_decl_to_var): Likewise.
4254 (copy_result_decl_to_var): Likewise.
4255 * tree-pretty-print.c (dump_generic_node): Do not handle
4256 CHANGE_DYNAMIC_TYPE_EXPR.
4257 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4258 * tree-ssa-operands.c (get_expr_operands): Likewise.
4259 * tree-ssa-structalias.c (struct variable_info): Remove
4260 no_tbaa_pruning member.
4261 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
4262 (unify_nodes): Do not copy it.
4263 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4264 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
4265 (set_uids_in_ptset): Do not check it.
4266 (find_what_var_points_to): Likewise.
4267 (compute_tbaa_pruning): Remove.
4268 (compute_points_to_sets): Do not call it.
4269 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4270 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4271 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
4272 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
4273 (DECL_NO_TBAA_P): Likewise.
4274 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
4275 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
4276 (expand_omp_atomic_pipeline): Do not set it.
4277 * print-tree.c (print_node): Do not dump it.
4278 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4279 redundant check.
4280
59082b2e 42812009-05-22 Vladimir Makarov <vmakarov@redhat.com>
4282
4283 PR target/39856
4284 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
4285 for clobber.
4286
aed4eb5d 42872009-05-22 Mark Mitchell <mark@codesourcery.com>
4288
4289 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
4290 non-external.
4291
b384c0ce 42922009-05-22 Ben Elliston <bje@au.ibm.com>
4293
4294 * Makefile.in (bversion.h, s-bversion): New targets.
4295 (TOPLEV_H): Add bversion.h.
4296 * toplev.h: Include "bversion.h".
4297 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
4298 the __format__ attribute only if compiling with the same version
4299 of GCC as the sources (the "build version").
4300
0fb56989 43012009-05-22 Ben Elliston <bje@au.ibm.com>
4302
4303 * c-format.c (handle_format_attribute): Fix comment typo.
4304
4fbe0a55 43052009-05-21 Steve Ellcey <sje@cup.hp.com>
4306
4307 PR target/37846
4308 * config/ia64/ia64.opt (mfused-madd): New.
4309 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
4310 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4311 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
4312 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
4313 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
4314 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
4315 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
4316 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
4317 instruction if !TARGET_FUSED_MADD.
4318 (fpma, fpms): Remove colon from name.
4319
869bac23 43202009-05-22 Richard Guenther <rguenther@suse.de>
4321
4322 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
4323 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
4324 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
4325 TARGET_MEM_REF.
4326 (create_expression_by_pieces): Only convert if necessary.
4327 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
4328 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
4329
e716188e 43302009-05-21 Adam Nemet <anemet@caviumnetworks.com>
4331
4332 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
4333 regular pattern from a template and rename it ...
4334 (*extzv_truncsi_exts): ... to this.
4335
18c97951 43362009-05-21 Richard Guenther <rguenther@suse.de>
4337
4338 * cgraph.h (struct cgraph_node): Remove inline_decl member.
4339 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
4340 (cgraph_default_inline_p): Likewise.
4341 (cgraph_decide_inlining_incrementally): Likewise.
4342
525b61fa 43432009-05-21 H.J. Lu <hongjiu.lu@intel.com>
4344 Uros Bizjak <ubizjak@gmail.com>
4345
4346 * config/i386/cpuid.h (bit_MOVBE): New.
4347
4348 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
4349
4350 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
4351 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
4352 (ix86_handle_option): Handle OPT_mmovbe.
4353 (ix86_target_string): Add -mmovbe.
4354 (pta_flags): Add PTA_MOVBE.
4355 (processor_alias_table): Add PTA_MOVBE to "atom".
4356 (override_options): Handle PTA_MOVBE.
4357
4358 * config/i386/i386.h (TARGET_MOVBE): New.
4359
4360 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
4361 (*bswapsi_movbe): New.
4362 (*bswapdi_movbe): Likewise.
4363 (bswapdi2): Renamed to ...
4364 (*bswapdi_1): This.
4365 (bswapdi2): New expander.
4366
4367 * config/i386/i386.opt (mmovbe): New.
4368
4369 * doc/invoke.texi: Document -mmovbe.
4370
0b3a031a 43712009-05-21 Taras Glek <tglek@mozilla.com>
4372
4373 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
4374 * gcc-plugin.h (plugin_init): Updated signature.
4375 * gcc-plugin.h (plugin_name_args): Moved to this header.
525b61fa 4376 * doc/plugins.texi (plugin_init): Updated documention to reflect
4377 API change.
0b3a031a 4378 * doc/plugins.texi (plugin_name_args): Added to documention.
4379
3d8bad71 43802009-05-21 Mark Mitchell <mark@codesourcery.com>
4381
4382 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
4383 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
4384
d41c63a8 43852009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
4386
4387 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
4388 JUMP_TABLE_DATA_P predicates where applicable.
4389 * config/i386/predicates.md: Ditto.
4390 * config/i386/sse.md: Ditto.
4391
2aa911e0 43922009-05-21 Jakub Jelinek <jakub@redhat.com>
4393
ff07cef7 4394 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
4395 operand2 -128 override length_immediate attribute to 1.
4396 * config/i386/predicates.md (constm128_operand): New predicate.
4397
2aa911e0 4398 * config/i386/i386.c (memory_address_length): Handle %r12
4399 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
4400 also check REGNO.
4401 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
4402 mode look through optional ZERO_EXTEND and SUBREG.
4403 * config/i386/i386.md (R12_REG): New define_constant.
4404 (prefix_data16): For sse unit set also for MODE_TI insns.
4405 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
4406 insns set if operand 1 is ext_QIreg_operand.
4407 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
4408 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
4409 immediate.
4410 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
4411 mode from MODE_DI to MODE_SI.
4412 (movdi_1_rex64): Override modrm and length_immediate attributes
4413 only for movabs (TYPE_IMOV, alternative 2).
4414 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
4415 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4416 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4417 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4418 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
4419 prefix_rex attribute if DImode.
4420 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
4421 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
4422 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
4423 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
4424 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
4425 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
4426 Likewise. For TYPE_IMOV clear length_immediate attribute.
4427 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
4428 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
4429 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
4430 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
4431 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
4432 or one operand TYPE_ISHIFT.
4433 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
4434 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
4435 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
4436 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
4437 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
4438 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
4439 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
4440 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
4441 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
4442 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
4443 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
4444 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
4445 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
4446 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
4447 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
4448 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
4449 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
4450 set mode attribute, don't override length attribute.
4451 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
4452 to 1.
4453 (return_internal_long): Set length attribute to 2 instead of 1.
4454 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
4455 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
4456 prefix_rex attribute.
2377feea 4457 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
4458 New predicates.
4459 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
2aa911e0 4460
dad3e2d4 44612009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4462
4463 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
4464
f352a3fb 44652009-05-20 Ian Lance Taylor <iant@google.com>
4466
4467 * tree.c (build_tree_list_vec_stat): New function.
4468 (ctor_to_vec): New function.
4469 (build_nt_call_vec): New function.
4470 (build_call_array): Change args to be a const pointer.
4471 (build_call_vec): New function.
4472 * tree.h (build_nt_call_vec): Declare.
4473 (build_tree_list_vec_stat): Declare.
4474 (build_tree_list_vec): Define.
4475 (build_call_array): Update declaration.
4476 (build_call_vec): Declare.
4477 (ctor_to_vec): Declare.
4478 * c-common.c (tree_vector_cache): New static variable.
4479 (make_tree_vector): New function.
4480 (release_tree_vector): New function.
4481 (make_tree_vector_single): New function.
4482 (make_tree_vector_copy): New function.
4483 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
4484 (make_tree_vector_single, make_tree_vector_copy): Declare.
4485 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
4486 (c_parser_expr_list): Don't manage cache here, instead call
4487 make_tree_vector.
4488 (c_parser_release_expr_list): Remove static function.
4489 (c_parser_vec_to_tree_list): Remove static function.
4490 (c_parser_attributes): Call build_tree_list_vec instead of
4491 c_parser_vec_to_tree_list. Call release_tree_vector instead of
4492 c_parser_release_expr_list.
4493 (c_parser_postfix_expression_after_primary): Likewise.
4494 (c_parser_objc_keywordexpr): Likewise.
4495
2b3c93a3 44962009-05-20 Sandra Loosemore <sandra@codesourcery.com>
4497
4498 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
4499 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
4500 TARGET_CONVERT_TO_TYPE.
4501 * hooks.c (hook_tree_const_tree_null): Define.
4502 * hooks.h (hook_tree_const_tree_null): Declare.
4503 * target.h (struct gcc_target): Add invalid_parameter_type,
4504 invalid_return_type, promoted_type, and convert_to_type fields.
4505 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
4506 (TARGET_INVALID_RETURN_TYPE): Define.
4507 (TARGET_PROMOTED_TYPE): Define.
4508 (TARGET_CONVERT_TO_TYPE): Define.
4509 (TARGET_INITIALIZER): Update for new fields.
4510 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
4511 (grokparms): Check targetm.invalid_parameter_type.
4512 * c-typeck.c (default_conversion): Check targetm.promoted_type.
4513 * c-convert.c (convert): Check targetm.convert_to_type.
4514
d5594fe1 45152009-05-20 Adam Nemet <anemet@caviumnetworks.com>
4516
4517 * config/mips/mips.md (*extenddi_truncate<mode>,
4518 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
4519 defintions.
4520 (*extendhi_truncateqi): New define_insn_and_sptit.
4521
6189c517 45222009-05-20 Jakub Jelinek <jakub@redhat.com>
4523
4524 PR middle-end/40204
4525 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
2377feea 4526 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
6189c517 4527
52dbb6e6 45282009-05-20 Eric Botcazou <ebotcazou@adacore.com>
4529
4530 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
4531 the operand of VIEW_CONVERT_EXPR.
4532
4ec32090 45332009-05-20 H.J. Lu <hongjiu.lu@intel.com>
4534
4535 * config/i386/driver-i386.c (host_detect_local_cpu): Check
faa14cce 4536 extended family and model for Intel processors. Support Intel Atom.
4ec32090 4537
c1e61953 45382009-05-20 Olivier Hainque <hainque@adacore.com>
4539
4540 * gstab.h (stab_code_type): Define, to be used instead of the
4541 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
4542 notice.
4543 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
4544 occurrences by stab_code_type.
4545 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
4546
b39bfa08 45472009-05-20 Martin Jambor <mjambor@suse.cz>
4548
4549 * tree-flow.h (insert_edge_copies_seq): Undeclare.
4550 (sra_insert_before): Likewise.
4551 (sra_insert_after): Likewise.
4552 (sra_init_cache): Likewise.
4553 (sra_type_can_be_decomposed_p): Likewise.
4554 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
4555 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
4556 (sra_insert_before): Likewise.
4557 (sra_insert_after): Likewise.
4558 (sra_init_cache): Likewise.
4559 (insert_edge_copies_seq): Made static and moved upwards.
4560
4561 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
4562 case.
4563
4564 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
4565
4566 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
4567 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
4568 simple copies.
4569
f367b3d4 45702009-05-20 Richard Guenther <rguenther@suse.de>
4571
4572 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
4573 with mismatched comparison modes.
4574
90560cad 45752009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2377feea 4576
90560cad 4577 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
2377feea 4578 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
4579 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
4580 with shifts for Thumb2.
4581 (orsi_notsi): New for orn.
4582 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
4583 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
4584 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
4585 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
4586 Don't invert remainder for IOR.
90560cad 4587
fffbaaf2 45882009-05-19 Zdenek Dvorak <ook@ucw.cz>
4589
4590 PR tree-optimization/40087
4591 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
4592 number_of_iterations_ne): Rename never_infinite argument.
4593 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
4594 number_of_iterations_le): Handle pointer-type ivs when
4595 exit_must_be_taken is false.
4596 (number_of_iterations_cond): Do not always assume that
4597 exit_must_be_taken if the control variable is a pointer.
4598
b6d7101e 45992009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
4600
4601 * c-typeck.c (build_binary_op): Allow % on integal vectors.
4602 * doc/extend.texi (Vector Extension): Document that % is allowed too.
4603
d0573158 46042009-05-19 H.J. Lu <hongjiu.lu@intel.com>
4605
4606 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
4607 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
4608
e80c6822 46092009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4610
4611 PR c/40172
4612 * c.opt (Wlogical-op): Disabled by default.
4613 * c-opt (c_common_post_options): Do not enable Wlogical-op with
4614 Wextra.
4615 * doc/invoke.texi (Wlogical-op): Likewise.
4616
191bdb6e 46172009-05-19 Eric Botcazou <ebotcazou@adacore.com>
4618
4619 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
4620 into CASE_CONVERT.
4621 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
4622 Propagate the type of the first operand.
4623 <ASSERT_EXPR>: Simplify.
4624 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
4625 Rewrite using the RHS code as discriminant.
4626 <NOP_EXPR>: Turn into CASE_CONVERT.
4627 <PLUS_EXPR>: Propagate the type of the first operand.
4628
50738926 46292009-05-19 Steve Ellcey <sje@cup.hp.com>
4630
4631 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
4632 (ia64_dconst_0_375): New.
4633 * config/ia64/ia64.c (ia64_override_options): Remove
4634 -minline-sqrt-min-latency warning.
4635 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
4636 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
4637 * config/ia64/ia64.md (*sqrt_approx): Remove.
4638 (sqrtsf2): Remove #if 0.
4639 (sqrtsf2_internal_thr): Rewrite and move to div.md.
4640 (sqrtdf): Remove assert.
4641 (sqrtdf2_internal_thr): Rewrite and move to div.md.
4642 (sqrtxf2): Remove #if 0.
4643 (sqrtxf2_internal_thr): Rewrite and move to div.md.
4644 * div.md (sqrt_approx_rf): New.
4645 (sqrtsf2_internal_thr): New implementation.
4646 (sqrtsf2_internal_lat): New.
4647 (sqrtdf2_internal_thr: New implementation.
4648 (sqrtxf2_internal): New implementation.
4649
b0b1cbb9 46502009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
4651 Hans-Peter Nilsson <hp@axis.com>
4652
4653 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
4654 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
4655 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
4656 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
4657 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
4658 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
4659 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
4660 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
4661 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
4662 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
4663 * c-common.c: ...from here.
4664
bac21f4c 46652009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4666
faa14cce 4667 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
bac21f4c 4668
44d89feb 46692009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4670
4671 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
4672
46d25b89 46732009-05-19 Ben Elliston <bje@au.ibm.com>
4674
4675 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
4676 assignments with memcpy calls.
4677 (add_fdes): Likewise.
4678 (binary_search_unencoded_fdes): Likewise.
4679 (linear_search_fdes): Eliminate type puns.
4680
9e019299 46812009-05-19 Richard Guenther <rguenther@suse.de>
4682
4683 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
4684 not falsely claim to have propagated into all uses.
4685
83c2609c 46862009-05-19 Ben Elliston <bje@au.ibm.com>
4687
4688 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
4689 version to v3.0.
4690
eeabeacf 46912009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
4692
4693 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
4694 * config/sh/sh.c (sh_legitimate_address_p): Make static.
4695 (TARGET_LEGITIMATE_ADDRESS_P): New.
4696 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4697 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4698
9c569d54 46992009-05-18 Dodji Seketeli <dodji@redhat.com>
4700
4701 PR debug/40109
4702 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
4703 child of the containing namespace's DIE.
4704
7c6d4a4d 47052009-05-18 Adam Nemet <anemet@caviumnetworks.com>
4706
4707 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
4708 *zero_extendhi_truncqi): Move after the zero_extend patterns.
4709 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
4710 extend patterns.
4711
3559347d 47122009-05-18 H.J. Lu <hongjiu.lu@intel.com>
4713
4714 PR target/39942
4715 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
4716 gen_align with gen_pad.
4717 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
4718 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
4719
4720 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
4721 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
4722
4723 * config/i386/i386.md (align): Renamed to ...
4724 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
4725 ASM_OUTPUT_MAX_SKIP_PAD.
4726
f422081b 47272009-05-18 Andreas Schwab <schwab@linux-m68k.org>
4728
e371d98c 4729 * config.gcc: Fix variable syntax.
4730
f422081b 4731 PR target/39531
4732 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
4733 before calling exact_log2.
4734 (output_iorsi3): Likewise.
4735 (output_xorsi3): Likewise.
4736
79c09794 47372009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
4738
4739 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
4740 for the none zero constant operand except for EQ and NE
4741 comprisons even when the first operand is R0.
4742
ffead1ca 47432009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
4744
4745 * config/s390/2064.md: Remove trailing whitespaces.
4746 * config/s390/2084.md: Likewise.
4747 * config/s390/constraints.md: Likewise.
4748 * config/s390/fixdfdi.h: Likewise.
4749 * config/s390/libgcc-glibc.ver: Likewise.
4750 * config/s390/s390-modes.def: Likewise.
4751 * config/s390/s390-protos.h: Likewise.
4752 * config/s390/s390.c: Likewise.
4753 * config/s390/s390.h: Likewise.
4754 * config/s390/s390.md: Likewise.
4755 * config/s390/tpf-unwind.h: Likewise.
4756
2a381450 47572009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
4758
4759 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
4760
869bde6b 47612009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
4762
4763 M68K TLS support.
4764 * configure.ac (m68k-*-*): Check if binutils support TLS.
4765 * configure: Regenerate.
4766 * config/m68k/predicates.md (symbolic_operand): Extend comment.
4767 * config/m68k/constraints.md (Cu): New constraint.
4768 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
4769 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
4770 (movsi): Handle TLS symbols.
4771 (addsi3_5200): Handle XTLS symbols, indent.
4772 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
4773 (m68k_tls_reference_p): Declare.
4774 (m68k_legitimize_address): Declare.
4775 (m68k_unwrap_symbol): Declare.
4776 * config/m68k/m68k.opt (mxtls): New option.
4777 * config/m68k/m68k.c (ggc.h): Include.
4778 (m68k_output_dwarf_dtprel): Implement hook.
4779 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
4780 (m68k_expand_prologue): Load GOT pointer when function needs it.
4781 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
4782 (m68k_legitimate_constant_address_p): Same.
4783 (m68k_decompose_address): Handle TLS references.
4784 (m68k_get_gp): New static function.
4785 (enum m68k_reloc): New contants.
4786 (TLS_RELOC_P): New macro.
4787 (m68k_wrap_symbol): New static function.
4788 (m68k_unwrap_symbol): New function.
4789 (m68k_final_prescan_insn_1): New static function.
4790 (m68k_final_prescan_insn): New function.
4791 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
4792 functions.
4793 (legitimize_pic_address): Handle TLS references..
4794 (m68k_tls_get_addr, m68k_get_tls_get_addr)
4795 (m68k_libcall_value_in_a0_p)
4796 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
4797 (m68k_call_m68k_read_tp): Helper variables and functions for ...
4798 (m68k_legitimize_tls_address): Handle TLS references.
4799 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
4800 New functions.
4801 (m68k_legitimize_address): Handle TLS symbols.
4802 (m68k_get_reloc_decoration): New static function.
4803 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
4804 UNSPEC_RELOC32.
4805 (m68k_output_dwarf_dtprel): Implement hook.
4806 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
4807 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
4808 m68k_call_* routines.
4809 (sched_attr_op_type): Handle TLS symbols.
4810 (gt-m68k.h): Include.
4811 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
4812 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
4813
a3808114 48142009-05-18 Martin Jambor <mjambor@suse.cz>
4815
4816 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
4817 (visit_store_addr_for_mod_analysis): New function.
4818 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
4819 (determine_cst_member_ptr): Use gimple_assign_single_p.
4820 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
4821 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
4822 operands. Don't check number of operands of a NOP_EXPR.
4823
87deed07 48242009-05-18 Eric Fisher <joefoxreal@gmail.com>
4825
4826 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
4827
0969aa9b 48282009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
4829
4830 PR c/40172
4831 * c-common.c (warn_logical_operator): Don't warn if one of
4832 expression isn't always true or false.
4833
80c5827c 48342009-05-17 Kai Tietz <kai.tietz@onevision.com>
4835
0969aa9b 4836 * config/i386/biarch32.h: New file.
4837 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
80c5827c 4838
f494873f 48392009-05-17 Adam Nemet <anemet@caviumnetworks.com>
4840
4841 * config/mips/mips.md (*zero_extend<mode>_trunchi,
4842 *zero_extend<mode>_truncqi): Merge these into ...
4843 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
4844 Name the pattern following this as *zero_extendhi_truncqi.
4845
c2a312d3 48462009-05-16 Brad Lucier <lucier@math.purdue.edu>
4847
4848 PR middle-end/39301
4849 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
4850 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
4851 (output_info): Make field HOST_WIDEST_INT.
4852 (print_statistics): Use HOST_WIDEST_INT_PRINT.
4853 (dump_bitmat_statistics): Same.
4854
ef87fe4c 48552009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
4856
4857 * config.gcc (use_gcc_stdint): Set to wrap.
4858 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
4859 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
4860 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4861 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4862 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4863 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4864 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4865 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4866
38c0064e 48672009-05-16 Joseph Myers <joseph@codesourcery.com>
4868
4869 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
4870 tune_64.
4871 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
4872 Move definitions earlier.
4873 (OPT_ARCH64, OPT_ARCH32): Define.
4874 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
4875 and tune_64.
4876
a277ddf3 48772009-05-16 Richard Earnshaw <rearnsha@arm.com>
4878
4879 PR target/40153
4880 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
4881 implies.
4882
bc5a93af 48832009-05-16 Richard Earnshaw <rearnsha@arm.com>
4884
4885 * arm.md (movdi2): Copy non-reg values to DImode registers.
4886
139e6b83 48872009-05-16 Jakub Jelinek <jakub@redhat.com>
4888
01e60dc2 4889 PR target/39942
4890 * final.c (label_to_max_skip): New function.
4891 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
4892 CODE_LABEL_NUMBER <= max_labelno.
4893 * output.h (label_to_max_skip): New prototype.
4894 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
4895 (ix86_avoid_jump_mispredicts): ... this. Don't define if
4896 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
4897 Handle CODE_LABELs with >= 16 byte alignment or with
4898 max_skip == (1 << align) - 1.
4899 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
4900 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
4901
139e6b83 4902 PR target/39942
4903 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
4904 .p2align 3 if MAX_SKIP is smaller than 7.
4905 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
4906
26dbec0a 49072009-05-15 Ian Lance Taylor <iant@google.com>
4908
4909 * alias.c (struct alias_set_entry_d): Rename from struct
4910 alias_set_entry. Change all uses.
4911 * except.c (struct call_site_record_d): Rename from struct
4912 call_site_record. Change all uses.
4913 * except.h (struct eh_region_d): Rename from struct eh_region.
4914 Change all uses.
4915 * gcse.c (struct hash_table_d): Rename from struct hash_table.
4916 Change all uses.
4917 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
4918 ivtype_map_elt. Change all uses.
4919 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
4920 Change all uses.
4921 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
4922 * graphite.h (struct name_tree_d): Rename from struct name_tree.
4923 Change all uses.
4924 (struct sese_d): Rename from struct sese. Change all uses.
2377feea 4925 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
4926 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
26dbec0a 4927 * optabs.h (struct optab_d): Rename from struct optab. Change all
4928 uses.
4929 (struct convert_optab_d): Rename from struct convert_optab.
4930 Change all uses.
4931 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
4932 ipa_opt_pass. Change all uses.
4933 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
4934 all uses.
4935
4936 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
4937 defined as a typedef.
4938 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
4939 defined as a tag.
4940
9c20c4fc 49412009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
4942
4943 PR 16302
4944 * fold-const.c (make_range,build_range_check,merge_ranges): Move
4945 declaration to...
4946 (merge_ranges): Returns bool.
4947 * tree.h (make_range): .. to here.
4948 (build_range_check): Likewise.
4949 (merge_ranges): Likewise. Renamed from merge_ranges.
4950 * c-typeck.c (parser_build_binary_op): Update calls to
4951 warn_logical_operator.
4952 * c-common.c (warn_logical_operator): Add new warning.
4953 * c-common.h (warn_logical_operator): Update declaration.
4954
4b0c3b93 49552009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
4956
2377feea 4957 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
4b0c3b93 4958
239d491a 49592009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4960
b155fb54 4961 * doc/install.texi: Document MPC requirements, flags etc.
4962
239d491a 4963 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
4964 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
4965 Evaluate constant arguments.
4966 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
4967 (fold_builtin_1): Likewise, also evaluate constant arguments.
4968 Remove superfluous break.
4969 (do_mpc_ckconv): New.
4970 * real.h: Include mpc.h.
4971 * toplev.c (print_version): Output MPC version info if available.
4972
275b395f 49732009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4974
2377feea 4975 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
275b395f 4976
2206e042 49772009-05-15 H.J. Lu <hongjiu.lu@intel.com>
4978
4979 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
4980 only once.
4981
a7b61d8c 49822009-05-15 Jan Hubicka <jh@suse.cz>
4983
4984 * doc/invoke.texi (max-early-inliner-iterations): New flag.
4985 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
4986 (try_inline): Fix return value.
4987 (cgraph_decide_inlining_incrementally): Honor new value.
4988 (cgraph_early_inlining): Handle indirect inlining.
4989 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
4990
22c748a1 49912009-05-15 Jan Hubicka <jh@suse.cz>
4992
4993 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
4994 * cgraphunit.c (cgraph_finalize_function): Set it.
4995 (cgraph_expand_function): Use it.
4996
681f1241 49972009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4998
4999 * real.c (encode_ieee_half): Define.
5000 (decode_ieee_half): Define.
5001 (ieee_half_format): Define.
5002 (arm_half_format): Define.
5003 * real.h (ieee_half_format): Declare.
5004 (arm_half_format): Declare.
5005
d5a9653a 50062009-05-15 Sandra Loosemore <sandra@codesourcery.com>
5007
5008 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
5009 swapped, and reversed optabs exist before trying to use them.
5010
f1c02c87 50112009-05-15 Paul Brook <paul@codesourcery.com>
5012 Sandra Loosemore <sandra@codesourcery.com>
5013
f1c02c87 5014 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
5015 loads. Allow PRE_DEC.
5016 (output_move_neon): Handle PRE_DEC.
5017 (arm_print_operand): Add 'A' for neon structure loads.
5018 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
5019 * config/arm/neon.md (neon_mov): Update comment.
5020 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
5021 calls.
5022 (Um): New constraint.
5023
2958813f 50242009-05-15 Jan Hubicka <jh@suse.cz>
5025
5026 Revert the following patch until testsuite fallout is fixed:
5027 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5028 * cgraph.h (struct inline_summary): New filed self_wize,
5029 size_inlining_benefit, self_time and time_inlining_benefit.
5030 (struct cgraph_global_info): Replace insns by time ans size fields.
5031 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5032 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5033 (ipcp_update_callgraph): Do not touch function bodies.
5034 * ipa-inline.c: Include except.h
2377feea 5035 (MAX_TIME): New constant.
2958813f 5036 (overall_insns): Remove
5037 (overall_size, max_benefit): New static variables.
5038 (cgraph_estimate_time_after_inlining): New function.
5039 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5040 (cgraph_clone_inlined_nodes): Update size.
5041 (cgraph_mark_inline_edge): Update size.
5042 (cgraph_estimate_growth): Use size info.
5043 (cgraph_check_inline_limits): Check size.
5044 (cgraph_default_inline_p): Likewise.
5045 (cgraph_edge_badness): Compute badness based on benefit and size cost.
5046 (cgraph_decide_recursive_inlining): Check size.
faa14cce 5047 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5048 and times.
2958813f 5049 (cgraph_decide_inlining): Likewise.
54e6ab3d 5050 (cgraph_decide_inlining_incrementally): Likewise; honor
5051 PARAM_EARLY_INLINING_INSNS.
2958813f 5052 (likely_eliminated_by_inlining_p): New predicate.
5053 (estimate_function_body_sizes): New function.
5054 (compute_inline_parameters): Use it.
5055 * except.c (must_not_throw_labels): New function.
5056 * except.h (must_not_throw_labels): Declare.
5057 * tree-inline.c (init_inline_once): Kill inlining_weigths
5058 * tree-ssa-structalias.c: Avoid uninitialized warning.
5059 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5060 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5061 (PARAM_INLINE_CALL_COST): Remove.
5062 (PARAM_EARLY_INLINING_INSNS): New.
5063
1b536c34 50642009-05-15 Richard Guenther <rguenther@suse.de>
5065
5066 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
5067 not TODO_update_ssa.
5068
a1157bfe 50692009-05-15 Richard Guenther <rguenther@suse.de>
5070
5071 PR tree-optimization/39999
5072 * gimple.h (gimple_expr_type): Use the expression type looking
5073 through useless conversions.
5074 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
5075 (vn_nary_op_insert_stmt): Likewise.
5076 (simplify_binary_expression): Likewise.
5077
408c3c77 50782009-05-15 Richard Guenther <rguenther@suse.de>
5079
5080 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5081 New options, enabled by default.
5082 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5083 Document.
5084 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
5085 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
5086 * tree-ssa-structalias.c (gate_tree_pta): New function.
5087 (pass_build_alias): Use it.
5088
bd8d8d81 50892009-05-15 Joseph Myers <joseph@codesourcery.com>
5090
5091 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5092 recurse on an invariant address if a conversion from a pointer
5093 type to a wider integer type is involved.
5094
9288864f 50952009-05-15 Jan Hubicka <jh@suse.cz>
5096
5097 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5098 * cgraph.h (struct inline_summary): New filed self_wize,
5099 size_inlining_benefit, self_time and time_inlining_benefit.
5100 (struct cgraph_global_info): Replace insns by time ans size fields.
5101 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5102 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5103 (ipcp_update_callgraph): Do not touch function bodies.
5104 * ipa-inline.c: Include except.h
2377feea 5105 (MAX_TIME): New constant.
9288864f 5106 (overall_insns): Remove
5107 (overall_size, max_benefit): New static variables.
5108 (cgraph_estimate_time_after_inlining): New function.
5109 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5110 (cgraph_clone_inlined_nodes): Update size.
5111 (cgraph_mark_inline_edge): Update size.
5112 (cgraph_estimate_growth): Use size info.
5113 (cgraph_check_inline_limits): Check size.
5114 (cgraph_default_inline_p): Likewise.
5115 (cgraph_edge_badness): Compute badness based on benefit and size cost.
5116 (cgraph_decide_recursive_inlining): Check size.
faa14cce 5117 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5118 and times.
9288864f 5119 (cgraph_decide_inlining): Likewise.
54e6ab3d 5120 (cgraph_decide_inlining_incrementally): Likewise; honor
5121 PARAM_EARLY_INLINING_INSNS.
9288864f 5122 (likely_eliminated_by_inlining_p): New predicate.
5123 (estimate_function_body_sizes): New function.
5124 (compute_inline_parameters): Use it.
5125 * except.c (must_not_throw_labels): New function.
5126 * except.h (must_not_throw_labels): Declare.
5127 * tree-inline.c (init_inline_once): Kill inlining_weigths
5128 * tree-ssa-structalias.c: Avoid uninitialized warning.
5129 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5130 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5131 (PARAM_INLINE_CALL_COST): Remove.
5132 (PARAM_EARLY_INLINING_INSNS): New.
5133 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
5134 (inline-call-cost): Remove.
5135 (early-inlining-insns): New.
5136
a9538d68 51372009-05-15 Eric Botcazou <ebotcazou@adacore.com>
5138
5139 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
5140 for bounds.
5141 (print_int_cst_bounds_in_octal_p): Likewise.
5142 (dbxout_type): Adjust calls to above functions. Be prepared to deal
5143 with subtypes.
5144 * dwarf2out.c (base_type_die): Likewise.
5145 (is_subrange_type): Delete.
5146 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
5147 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
faa14cce 5148 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
5149 if the destination type is boolean.
a9538d68 5150 (build_range_check): Do not special-case subtypes.
5151 (fold_sign_changed_comparison): Likewise.
5152 (fold_unary): Likewise.
5153 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
5154 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
5155 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
faa14cce 5156 * tree.c (subrange_type_for_debug_p): New predicate based on the
5157 former is_subrange_type.
a9538d68 5158 * tree.h (subrange_type_for_debug_p): Declare.
5159 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
5160 (convert_affine_scev): Remove call to above function.
5161 (chrec_convert_aggressive): Likewise.
5162 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
5163 false for conversions involving subtypes.
5164 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
5165 (vrp_val_min): Likewise.
5166 (needs_overflow_infinity): Likewise.
5167 (extract_range_from_unary_expr): Likewise.
5168
bc409cb4 51692009-05-15 Paolo Bonzini <bonzini@gnu.org>
5170
314be557 5171 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
5172 * config/frv/frv.c: Likewise.
5173 * config/s390/s390.c: Likewise.
5174 * config/sparc/sparc.h: Likewise.
5175 * config/i386/i386.h: Likewise.
5176 * config/i386/i386.c: Likewise.
5177 * config/crx/crx.c: Likewise.
5178 * config/m68hc11/m68hc11.h: Likewise.
5179 * config/iq2000/iq2000.c: Likewise.
5180 * config/mn10300/mn10300.h: Likewise.
5181 * config/mn10300/mn10300.c: Likewise.
5182 * config/m68k/m68k.c: Likewise.
5183 * config/rs6000/rs6000.c: Likewise.
5184 * config/rs6000/xcoff.h: Likewise.
5185 * config/rs6000/linux64.h: Likewise.
5186 * config/rs6000/sysv4.h: Likewise.
5187 * config/score/score3.c: Likewise.
5188 * config/score/score7.c: Likewise.
5189 * config/score/score.c: Likewise.
5190 * config/arm/arm.md: Likewise.
5191 * config/mips/mips.c: Likewise.
5192 * config/mips/mips.md: Likewise.
5193 * config/bfin/bfin.h: Likewise.
5194 * config/pa/pa.c: Likewise.
5195 * config/pa/constraints.md: Likewise.
5196
5197 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
5198 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
5199 * config/pdp11/pdp11.h: Use memory_address_p instead.
bc409cb4 5200
9f1b7d17 52012009-05-14 Ian Lance Taylor <iant@google.com>
5202
5203 * passes.c (finish_optimization_passes): Change i to int.
5204 * plugin.c (plugins_active_p): Change event to int.
5205 (dump_active_plugins): Likewise.
5206 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
5207 Add cast.
5208 * tree.c (tree_range_check_failed): Change c to unsigned int.
5209 (omp_clause_range_check_failed): Likewise.
5210 (build_common_builtin_nodes): Change mode to int. Add cast.
5211 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
5212 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
5213
5214 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
5215 ++ or -- with a variable of enum type.
5216
b500432f 52172009-05-14 Steven Bosscher <steven@gcc.gnu.org>
5218
5219 PR driver/40144
5220 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
5221
da71eacc 52222009-05-14 Steven Bosscher <steven@gcc.gnu.org>
5223
5224 * store-motion.c: Do not include params.h
5225 * Makefile.in: Fix dependencies for various files.
5226
ca4bb7ac 52272009-05-14 Steven Bosscher <steven@gcc.gnu.org>
5228
5229 * auto-inc-dec.c: Fix pass description, remove apparent
5230 accidental duplication.
5231
8d27c5b5 52322009-05-14 H.J. Lu <hongjiu.lu@intel.com>
5233
5234 PR middle-end/40147
5235 * ipa-utils.h (memory_identifier_string): Moved to ...
5236 * tree.h (memory_identifier_string): Here. Add GTY(()).
5237
fd50b071 52382009-05-14 Paolo Bonzini <bonzini@gnu.org>
5239
5240 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
5241 in the former documentation of...
5242 (GO_IF_LEGITIMATE_ADDRESS): ... this.
5243 * ira-conflicts.c (get_dup_num): Use address_operand.
5244 * targhooks.c (default_legitimate_address_p): New.
5245 * targhooks.h (default_legitimate_address_p): New.
5246 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
5247 Call hook.
5248 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
5249 * target.h (struct target): Add legitimate_address_p.
5250 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
5251 (TARGET_INITIALIZER): Include it.
5252
5253 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5254 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
5255 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
5256 (TARGET_LEGITIMATE_ADDRESS_P): New.
5257
5258 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5259 (REG_OK_STRICT_P): Delete.
5260 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
5261 (frv_legitimate_address_p_1): ... this.
5262 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
5263 (frv_legitimate_address_p_1): ... the renamed old
5264 frv_legitimate_address_p.
5265 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
5266 (TARGET_LEGITIMATE_ADDRESS_P): New.
5267
5268 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5269 * config/s390/s390-protos.h (legitimate_address_p): Remove.
5270 * config/s390/s390.c (legitimate_address_p): Rename to...
5271 (s390_legitimate_address_p): ... this, make static.
5272 (legitimize_address): Adjust call.
5273 (TARGET_LEGITIMATE_ADDRESS_P): New.
5274 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
5275
5276 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5277 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
5278 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
5279 (TARGET_LEGITIMATE_ADDRESS_P): New.
5280
5281 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5282 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
5283 * config/spu/spu.c (spu_legitimate_address): Rename to...
5284 (spu_legitimate_address_p): ... this, make static.
5285 (TARGET_LEGITIMATE_ADDRESS_P): New.
5286
5287 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5288 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
5289 * config/sparc/sparc.c (legitimate_address_p): Rename to...
5290 (sparc_legitimate_address_p): ... this, make static and return bool.
5291 (legitimize_address): Adjust call.
5292 (TARGET_LEGITIMATE_ADDRESS_P): New.
5293
5294 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5295 * config/i386/i386-protos.h (legitimate_address_p): Remove.
5296 * config/i386/i386.c (legitimate_address_p): Rename to...
5297 (ix86_legitimate_address_p): ... this, make static.
5298 (constant_address_p): Move after it, adjust call.
5299 (TARGET_LEGITIMATE_ADDRESS_P): New.
5300
5301 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5302 * config/avr/avr-protos.h (legitimate_address_p): Remove.
5303 * config/avr/avr.c (legitimate_address_p): Rename to...
5304 (avr_legitimate_address_p): ... this, make static.
5305 (legitimize_address): Adjust call.
5306 (TARGET_LEGITIMATE_ADDRESS_P): New.
5307
5308 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5309 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
5310 * config/crx/crx.c (crx_legitimate_address_p): Make static.
5311 (TARGET_LEGITIMATE_ADDRESS_P): New.
5312
5313 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5314 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
5315 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
5316 (TARGET_LEGITIMATE_ADDRESS_P): New.
5317
5318 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5319 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
5320 Remove.
5321 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
5322 Make static.
5323 (TARGET_LEGITIMATE_ADDRESS_P): New.
5324
5325 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5326 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
5327 Remove.
5328 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
5329 Rename to...
5330 (m68hc11_legitimate_address_p): ... this, make static.
5331 (go_if_legitimate_address_internal): Rename to...
5332 (m68hc11_legitimate_address_p_1): ... this.
5333 (legitimize_address): Adjust call.
5334 (TARGET_LEGITIMATE_ADDRESS_P): New.
5335
5336 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2377feea 5337 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
5338 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
fd50b071 5339 (TARGET_LEGITIMATE_ADDRESS_P): New.
5340
5341 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5342 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
5343 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
5344 (mn10300_legitimate_address_p): ... this, make static.
5345 (TARGET_LEGITIMATE_ADDRESS_P): New.
5346
5347 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5348 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
5349 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
5350 (TARGET_LEGITIMATE_ADDRESS_P): New.
5351
5352 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5353 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
5354 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
5355 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5356 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
5357 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
5358 (rs6000_legitimate_address_p): ... this, make static.
5359 (TARGET_LEGITIMATE_ADDRESS_P): New.
5360 (REG_MODE_OK_FOR_BASE_P): Delete.
5361 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
5362
5363 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5364 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
5365 Delete.
5366 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
5367 static, adjust types.
5368 (TARGET_LEGITIMATE_ADDRESS_P): New.
5369
5370 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5371 * config/score/score.c (score_address_p): Rename to...
5372 (score_legitimate_address_p): ... this.
5373 (TARGET_LEGITIMATE_ADDRESS_P): New.
5374 * config/score/score3.c (score3_address_p): Rename to...
5375 (score3_legitimate_address_p): ... this.
5376 * config/score/score7.c (score7_address_p): Rename to...
5377 (score7_legitimate_address_p): ... this.
5378
5379 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
5380 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
5381 GO_IF_LEGITIMATE_ADDRESS): Delete.
5382 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
5383 thumb2_legitimate_address_p): Delete.
5384 (arm_legitimate_address_p): Rename to...
5385 (arm_legitimate_address_outer_p): ... this.
5386 * config/arm/constraints.md ("Uq"): Adjust call.
5387 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
faa14cce 5388 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
5389 to...
fd50b071 5390 (arm_legitimate_address_outer_p): ... this.
faa14cce 5391 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
5392 static.
fd50b071 5393 (TARGET_LEGITIMATE_ADDRESS_P): New.
5394
5395 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5396 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
5397 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
5398 (TARGET_LEGITIMATE_ADDRESS_P): New.
5399
5400 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5401 * config/vax/vax-protos.h (legitimate_address_p): Remove.
5402 * config/vax/vax.c (legitimate_address_p): Rename to...
5403 (vax_legitimate_address_p): ... this, make static.
5404 (TARGET_LEGITIMATE_ADDRESS_P): New.
5405
5406 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5407 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
5408 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
5409 (TARGET_LEGITIMATE_ADDRESS_P): New.
5410
5411 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5412 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
5413 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
5414 (mmix_legitimate_address_p): ... this, make static.
5415 (TARGET_LEGITIMATE_ADDRESS_P): New.
5416
5417 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5418 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
5419 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
5420 (TARGET_LEGITIMATE_ADDRESS_P): New.
5421
142792e2 54222009-05-14 Paolo Bonzini <bonzini@gnu.org>
5423
5424 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
5425 of MODE_COMPLEX_INT.
5426
92e0f786 54272009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5428
5429 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
5430 LCT_NORMAL in function call.
5431 * mips-tdump.c (print_file_desc): Add cast to enum type.
5432 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
5433 (mark_stabs): Add casts to enum types.
5434 (parse_stabs_common): Add casts to enum types.
4fb84273 5435
cc1a5e3e 54362009-05-13 Adam Nemet <anemet@caviumnetworks.com>
5437
5438 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
5439 Check for invalid values of LETTER.
5440
e3fced1a 54412009-05-13 Taras Glek <tglek@mozilla.com>
5442
faa14cce 5443 * attribs.c (register_attribute): moved out attribute registration
5444 into register_attribute.
5445 * doc/plugins.texi: Documented register_attribute and
5446 PLUGIN_ATTRIBUTES.
4fb84273 5447 * gcc-plugin.h: Added forward decl for register_attribute.
5448 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
5449 * plugin.c (register_callback, invoke_plugin_callbacks): Added
5450 PLUGIN_ATTRIBUTES boilerplate.
e3fced1a 5451
a339bdea 54522009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
5453
5454 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
5455 values even in sentinel and empty entries.
5456 (ms_printf_flag_specs): Likewise.
5457 (ms_scanf_flag_specs): Likewise.
5458 (ms_strftime_flag_specs): Likewise.
5459 (ms_print_char_table): Likewise.
5460 (ms_scan_char_table): Likewise.
5461 (ms_time_char_table): Likewise.
5462
f7b092e4 54632009-05-13 Doug Kwan <dougkwan@google.com>
5464
5465 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
5466
eb3880ea 54672009-05-13 Adam Nemet <anemet@caviumnetworks.com>
5468
5469 * config/mips/mips.md (store): Add attributes for QI and HI.
5470 Update comment.
5471 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
5472 (truncdi<mode>2): ... this new pattern.
5473
33ef0630 54742009-05-13 Brad Hards <bradh@kde.org>
5475
5476 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
5477
ff1fe2e2 54782009-05-14 Jakub Jelinek <jakub@redhat.com>
2ffe5515 5479 Ben Elliston <bje@au.ibm.com>
5480
5481 PR middle-end/40035
5482 * dse.c (check_mem_read_rtx): Guard against width == -1.
5483
2b36f1bc 54842009-05-13 Michael Matz <matz@suse.de>
5485
5486 PR middle-end/39976
5487 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
5488 (trivially_conflicts_p): New function.
5489 (insert_backedge_copies): Use it.
5490
6b600976 54912009-05-13 Janis Johnson <janis187@us.ibm.com>
5492
5493 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
5494 (handle_stdc_pragma): Use new enum constant names.
5495 (handle_pragma_float_const_decimal64): Ditto.
5496
b20df6d7 54972009-05-13 Ian Lance Taylor <iant@google.com>
5498
5499 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
5500 tree.def.
5501
ec0044e4 55022009-05-13 Nathan Sidwell <nathan@codesourcery.com>
5503
5504 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
5505 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
5506 multilibs.
5507 * config/m68k/m68k.h (FL_UCLINUX): Define.
5508
16669ccd 55092009-05-13 Jan Hubicka <jh@suse.cz>
5510
5511 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
5512
bfc27c6a 55132009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5514
5515 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
5516 unless -fschedule-insns is specified.
5517
65b0af14 55182009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5519
5520 PR target/39561
5521 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
5522 TARGET_EXPAND_CBRANCHDI4.
5523 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
5524 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
5525 (cmpeqdi): Fix comment.
5526
36fa166c 55272009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5528
5529 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
5530 (sh_legitimate_address_p): Likewise.
5531 * config/sh/sh.c (sh_legitimate_index_p): New.
5532 (sh_legitimate_address_p): Likewise.
5533 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
5534 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
5535 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
5536 (MAYBE_BASE_REGISTER_RTX_P): New macro.
5537 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
5538 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
5539 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
5540 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
5541 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
5542
94e6e359 55432009-05-12 Jan Hubicka <jh@suse.cz>
5544
5545 * tree-inline.c (estimate_operator_cost): Add operands;
5546 when division happens by constant, it is cheap.
5547 (estimate_num_insns): Loads and stores are not having cost of 0;
5548 EH magic stuff is cheap; when computing runtime cost of switch,
5549 use log2 base of amount of its cases; builtin_expect has cost of 0;
5550 compute cost for moving return value of call.
5551 (init_inline_once): Initialize time_based flags.
5552 * tree-inline.h (eni_weights_d): Add time_based flag.
5553
d6b07704 55542009-05-12 Paolo Bonzini <bonzini@gnu.org>
5555
5556 * df-core.c: Update head documentation.
5557
111c35f8 55582009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5559
5560 PR bootstrap/40118
5561 * rs6000.c (rs6000_generate_compare): Use op1b instead of
5562 shadowing exisiting variable op1.
5563
6ca2db76 55642009-05-12 Uros Bizjak <ubizjak@gmail.com>
5565
073bc052 5566 PR target/37179
6ca2db76 5567 * config/i386/driver-i386.c (processor_signatures): New enum.
5568 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
5569 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
5570 processor signature to detect geode processor.
5571
27f97b12 55722009-05-12 Paolo Bonzini <bonzini@gnu.org>
5573
5574 Revert:
5575
5576 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
5577
5578 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5579 causes spurious differences between trunk and cond-optab branch.
5580
74f4459c 55812009-05-12 Paolo Bonzini <bonzini@gnu.org>
5582
6ca2db76 5583 * dojump.c (compare_from_rtx): Delete.
5584 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
5585 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
74f4459c 5586 if the comparison does not satisfy the predicate; test predicates for
5587 operands 2 and 3 of a cstore pattern. Don't try cstore optab
5588 further if one existing pattern fails.
6ca2db76 5589 * expr.h (compare_from_rtx): Delete.
74f4459c 5590 (prepare_operand): Declare it.
6ca2db76 5591 * optabs.c: Change "lib call" to "libcall" throughout.
74f4459c 5592 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
6ca2db76 5593 HAVE_conditional_trap, emit_cmp_insn): Delete.
5594 (can_compare_p): Delete cmp_optab case.
74f4459c 5595 (prepare_float_lib_cmp): Return an rtx and a machine mode.
6ca2db76 5596 Accept other parameters by value.
5597 (prepare_operand): Make non-static.
5598 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
5599 other parameters by value. Try to widen operands here based on
5600 an optab_methods argument and looking at cbranch_optab.
5601 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
5602 loop. Use cbranch_optab directly.
5603 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
5604 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
5605 assertion.
5606 (emit_conditional_move, emit_conditional_add): Inline what's needed
5607 of compare_from_rtx, using new prepare_cmp_insn for the rest.
5608 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
5609 with COMPARE. Move cmov_optab and cstore_optab above
5610 with cbranch_optab, move cmp_optab down with ucmp_optab,
5611 remove tst_otpab. Do not initialize trap_rtx.
5612 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
74f4459c 5613 for trap code. Do not check HAVE_conditional_trap. Use
5614 prepare_cmp_insn. Accept no predicate for operand 3.
6ca2db76 5615 * optabs.h (OTI_cmp): Mark as used only for libcalls.
5616 (OTI_ctrap, ctrap_optab): New.
5617 (tst_optab): Delete.
5618 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
5619 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
5620 with lookup of ctrap_optab.
faa14cce 5621 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
5622 Delete.
6ca2db76 5623 (ctrap_optab): New.
5624
5625 * combine.c (combine_simplify_rtx, simplify_set): Do not
5626 special case comparing against zero for cc0 machines.
74f4459c 5627 * simplify-rtx.c (simplify_binary_operation_1): Never remove
5628 COMPARE on cc0 machines.
5629 (simplify_relational_operation): Return a new expression when
5630 a COMPARE could be removed.
6ca2db76 5631 * final.c (final_scan_insn): Compare cc_status values
5632 against LHS of a (compare FOO (const_int 0)) cc0 source.
5633 Also check if cc_status.value is the full compare.
74f4459c 5634
6ca2db76 5635 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
5636 (cstoreMM4): Document.
74f4459c 5637 (conditional_trap): Document ctrapMM4 instead.
6ca2db76 5638 (sync_compare_and_swapMM): Refer to cbranchcc4.
74f4459c 5639 (Dependent Patterns): Eliminate obsolete information referring to
5640 the old jump optimization phase.
6ca2db76 5641 (Canonicalization): Include cbranchcc4 case, omit canonicalization
74f4459c 5642 of compares with 0 on cc0 machines.
5643 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
5644 avoiding references to cc0. Remove text about storing operands
5645 in cmpMM.
5646 * doc/tm.texi (Condition Codes): Include blurb on different
5647 condition code representations, separate into subsections for
5648 CC0, MODE_CC and conditional execution.
5649
6ca2db76 5650 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
5651 alpha_emit_setcc): Accept operands and a machine mode.
5652 * config/alpha/alpha.c (alpha_emit_conditional_branch):
5653 Get code/op0/op1 from operands, use machine mode argument
5654 instead of alpha_compare.fp_p. Emit the branch here.
5655 (alpha_emit_setcc): Likewise, and return boolean.
5656 (alpha_emit_conditional_move): Likewise. Assert that
5657 cmp_op_mode == cmp_mode, and simplify accordingly.
5658 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
5659 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
5660 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
5661 Delete.
5662 (stack probe test): Use cbranchdi4.
5663 * config/alpha/predicates.md (alpha_cbranch_operator): New.
5664
5665 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
5666 * config/arc/arc.h (movsicc, movsfcc): Use it.
5667 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
5668 (cbranchsi4, cstoresi4): New.
5669 (cmpsi, bCC and sCC expanders): Remove.
5670
5671 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
5672 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
5673 * config/arm/predicates.md (arm_comparison_operator): Only include
5674 floating-point operators if there is a hardware floating-point unit.
5675 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
5676 deferring to cbranch_cc and cstore_cc respectively.
5677 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
5678 cbranch_cc, cstore_cc): New.
5679 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
74f4459c 5680 arm_compare_op1.
6ca2db76 5681 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
5682
5683 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
5684 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
5685 as an argument.
5686 (adjust_insn_length): Adjust calls.
5687 (avr_reorg): Handle (compare (foo) (const_int 0)).
5688 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
5689 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
5690 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
5691 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
5692 (bCC): Remove.
5693 (cbranchqi4, cbranchhi4, cbranchsi4): New.
74f4459c 5694 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
5695
6ca2db76 5696 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
5697 (cbranchsi4, cstorebi4, cstoresi4): New.
74f4459c 5698 (movbisi): This insn is duplicate, split it to zero_extend.
6ca2db76 5699 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
5700 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
5701 (bfin_optimize_loop): Use cbranch expander.
5702 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
5703 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
5704 (bfin_bimode_comparison_operator): ... this.
5705 (bfin_direct_comparison_operator): New.
74f4459c 5706
6ca2db76 5707 * config/cris/cris.c (cris_normal_notice_update_cc): Look
5708 inside (compare FOO (const_int 0)).
5709 (cris_rtx_costs): Handle ZERO_EXTRACT.
5710 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
5711 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
5712 (*tstdi_v32): Delete.
5713 (*cmpdi_non_v32): Add M alternative for operand 1.
5714 (cmpsi, cmp<mode>): Make private.
5715 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
5716 with COMPARE.
5717 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
5718
5719 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
5720 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
5721 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
74f4459c 5722 (cc_reg_operand): New.
5723 (any_cond): Delete.
6ca2db76 5724 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
5725 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
5726 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
5727 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
5728 crx_expand_scond): Delete.
5729
5730 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
5731 (cbranchsi4): New.
5732 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
5733 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
5734
5735 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
5736 cstoresi4, cstoresf4, cstoredf4): New.
5737 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
5738 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5739 Receive the entire operands array.
5740 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
5741 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
5742 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5743 Get test/op0/op1 from the operands array.
5744 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
5745
5746 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
5747 (h8300_expand_store): New.
5748 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
5749 (const_int 0)).
5750 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
5751 (h8300_expand_store): New.
5752 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
5753 or do not try to produce (set (cc0) REG).
5754 (peepholes): Wrap arguments with COMPARE. Add a peephole to
5755 change a compare into a move to a scratch register. Disable some
5756 peepholes when comparing with zero.
5757 (tstsi, tsthi, tstsi, cmpqi): Make private.
5758 (cmphi): Delete.
5759 (bCC, sCC): Delete.
5760 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
5761 cstoresi4): New.
74f4459c 5762
5763 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
5764 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
5765 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
5766 (ix86_emit_i387_log1p): Use cbranchxf2.
5767 (ix86_expand_setcc): Return void.
5768 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
5769 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
5770 cmp<MODEF>, cmpcc): Remove.
6ca2db76 5771 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
5772 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
5773 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
74f4459c 5774 (sCC and bCC expanders): Remove.
5775 (stack_protect_test): Use cbranchcc4.
5776
6ca2db76 5777 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
5778 Delete.
5779 (ia64_expand_compare): Accept three rtx by reference and return void.
5780 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
5781 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
5782 from *expr. Update *expr with the BImode comparison to do.
5783 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
5784 cmptf, bCC, sCC, conditional_trap): Delete.
5785 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
5786 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
5787 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
5788 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
5789 * config/ia64/predicates.md (ia64_cbranch_operator): New.
5790
5791 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
5792 type of last argument.
5793 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
5794 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
5795 use machine mode argument instead of branch_type. Remove dead
5796 code for floating-point comparisons.
5797 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
5798 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
5799 Remove.
5800 (cbranchsi4, cstoresi4): New.
5801 * config/iq2000/predicates.md (reg_or_const_operand): New.
5802
5803 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
5804 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
5805 (b<code>_op): Rewrite to...
5806 (bcc_op): ... this, using match_operator.
5807 (s<code>_op): Rewrite to...
5808 (scc_op): ... this, using match_operator.
5809 (s<code>_24_op): Rewrite to...
5810 (scc_op_24): ... this, using match_operator.
5811 (s<code>_<mode>): Rewrite to...
5812 (cstore<mode>4): ... this, using match_operator.
5813 (s<code>_<mode>_24): Rewrite to...
5814 (cstore<mode>4_24): ... this, using match_operator.
5815 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
5816 m32c_unpend_compare, m32c_expand_scc): Delete.
5817 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
5818 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
5819 (m32c_expand_movcc): Change NE to EQ if necessary.
5820 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
5821
5822 * config/m32r/m32r-protos.h (gen_cond_store): New.
5823 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
5824 (gen_cond_store): New, from sCC patterns.
5825 (m32r_expand_block_move): Use cbranchsi4.
5826 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
5827 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
5828 (cbranchsi4, cstoresi4): New.
5829
5830 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
5831 Delete.
5832 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
74f4459c 5833 (m68hc11_notice_update_cc): Look into a compare with 0.
6ca2db76 5834 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
5835 Delete.
5836 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
5837 cmphi, cmpqi, bCC): Delete.
5838 (cbranchsi4, cbranchhi4, cbranchqi4): New.
5839 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
5840 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
5841 sets with COMPARE.
5842
5843 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
5844 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
5845 * config/m68k/constraints.md (H): New.
5846 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
5847 the define_insn below.
5848 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
5849 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
5850 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
5851 patterns): Wrap RHS with COMPARE.
5852 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
5853 (*cmpdi_internal): Name this pattern.
5854 (cmpdi): Change to define_insn.
5855 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
5856 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
5857 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
5858 predicate.
5859 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
5860 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
5861 (conditional_trap): Change to...
5862 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
5863 (*conditional_trap): Use the ordered_comparison_operator and
5864 const1_operand predicates.
5865 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
5866 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
5867 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
5868 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
5869
5870 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
5871 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
5872 (mcore_gen_compare): New.
5873 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
5874 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
5875 (mcore_gen_compare): ... this.
5876 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
5877 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
5878 (stack probe pattern): Use cbranchsi4.
5879
5880 * config/mips/predicates.md (mips_cstore_operator): New.
5881 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
5882 * config/mips/mips.md (any_cond): Delete.
5883 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
5884 always succeed.
5885 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
5886 fixuns_truncsfdi2): Use cbranch patterns.
5887 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
5888 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
5889 Adjust call to mips_expand_conditional_branch.
5890 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
5891 cstore<GPR:mode>4.
5892 * config/mips/mips-protos.h (mips_expand_conditional_branch,
5893 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
5894 * config/mips/mips.c (cmp_operands): Delete.
5895 (mips_emit_compare): Get comparison operands from *op0/*op1.
5896 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
5897 that it succeeds. Use op0/op1 instead of cmp_operands.
5898 (mips_expand_conditional_branch, mips_expand_conditional_move,
5899 mips_expand_conditional_trap): Likewise.
5900 (mips_block_move_loop): Use cbranch patterns.
5901 * config/mips/mips.h (cmp_operands): Delete.
5902
5903 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
5904 (mmix_gen_compare_reg): Just return a register in the right CC mode.
5905 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
5906 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
5907 (*cmpcc_folded): Rename to...
5908 (*cmpdi_folded): this.
5909 (*cmpcc): Rename to...
5910 (*cmps): ... this.
5911 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
5912 (bCC): Remove.
5913 (cbranchdi4): New.
5914 (cbranchdf4): New. Handle invalid comparisons here.
5915 * config/mmix/predicates.md (float_comparison_operator): New.
5916
5917 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
5918 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
5919 * config/mn10300/mn10300.md (tst): Delete.
5920 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
5921 Name these patterns and wrap RHS in a compare.
5922 (*cmpsi): Make this pattern private. Include tst.
5923 (*cmpsf): Make this pattern private.
5924 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
5925 (compare with zero peepholes): Likewise.
5926 (bCC): Remove.
5927 (cbranchsi4, cbranchsf4): New.
5928 (casesi): Use cbranchsi4.
5929
5930 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
5931 hppa_branch_type): Delete.
5932 (return_addr_rtx): Use cbranchsi4.
5933 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
5934 Emit CCFPmode comparison here.
5935 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
5936 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
5937 hppa_branch_type): Delete.
5938 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
5939 (movsicc, movdicc): Remove references to hppa_compare_op0,
5940 hppa_compare_op1 and compare_from_rtx.
5941 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
5942 (casesi): Use cbranchsi4.
5943
5944 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
5945 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
5946 * config/pdp11/pdp11.md (register_or_const0_operand): New.
5947 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
5948 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
5949 (bCC): Delete.
5950 (cbranchdf4, cbranchhi4, cbranchqi4): New.
5951 (*branch, *branch_inverted): New.
5952
5953 * config/picochip/picochip.md (cbranchhi4): Use
5954 ordered_comparison_operator.
5955 (cmphi, bCC): Remove.
5956
5957 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
5958 (trap_comparison_operator): Delete.
5959 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
5960 rs6000_emit_cbranch): Accept mode and operands.
5961 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
5962 rs6000_compare_fp_p): Delete.
5963 (rs6000_generate_compare): Accept mode and comparison. Extract code
5964 and op0/op1 from there. Replace references to rs6000_compare_op0
5965 and rs6000_compare_op1.
5966 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
5967 extract result from passed operands.
5968 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
5969 extract loc from passed operands.
5970 (rs6000_emit_cmove): Likewise.
5971 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
5972 rs6000_compare_fp_p): Delete.
5973 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
5974 (cbranch<GPR>4, cbranch<FP>4): New.
5975 (cstore<mode>4): New. Consolidate here all choices about when to use
5976 portable or specialized sCC sequences.
5977 (stack_protect_test): Use cbranchsi4.
5978 (conditional_trap): Replace with ctrap<GPR>4.
5979 (conditional trap insn): Replace trap_comparison_operator with
5980 ordered_comparison_operator.
5981
5982 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
5983 (s390_emit_prologue): Use ctrap.
5984 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
5985 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
5986 New predicates replacing...
5987 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
5988 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
5989 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
5990 (add<mode>cc): Do not use s390_compare_op0/op1.
5991 (s<code>): Change to...
5992 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
5993 (seq): Change to...
5994 (cstorecc4): ... this. Handle EQ or NE equally.
5995 (*sne): Un-privatize for use in cstorecc4.
5996 (b<code>): Change to...
5997 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
5998 (conditional_trap): Replace with...
5999 (ctrap<GPR>4, ctrap<FP>4): ... these.
6000 (stack_protect): Use cbranchcc4.
6001
6002 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
6003 * config/score/score-protos.h (score_gen_cmp): Delete.
6004 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
6005 (score_block_move-loop): Use cbranchsi4.
6006 * config/score/score.md (cbranchsi4): New.
6007 (cmpsi, bCC): Delete.
6008 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
6009 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
6010 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
6011 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
6012 * config/score/score3.h (score3_gen_cmp): Delete.
6013 * config/score/score7.h (score7_gen_cmp): Delete.
6014
6015 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
6016 (sh_emit_scc_to_t): ... this. Return void.
6017 (from_compare): Rename to...
6018 (sh_emit_compare_and_branch): ... this.
6019 (sh_emit_compare_and_set): New.
6020 (sh_expand_t_scc): Accept operands.
6021 * config/sh/predicates.md (sh_float_comparison_operator): New.
6022 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
6023 (prepare_scc_operands): Rename to...
6024 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
6025 arguments.
6026 (sh_emit_cheap_store_flag): New.
74f4459c 6027 (sh_emit_set_t_insn): New.
6ca2db76 6028 (from_compare): Rename to...
6029 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
6030 handling of TARGET_SH2E floating point to avoid recursive call.
6031 Generate branch here.
6032 (sh_emit_compare_and_set): New.
6033 (sh_expand_t_scc): Get op0/op1 from arguments.
6034 (sh_emit_cheap_store_flag): New.
6035 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
6036 cases.
74f4459c 6037 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
6ca2db76 6038 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
6039 (movsicc, movdicc): Do nothing when it recreated operands from
6040 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
6041 prepare_scc_operands (now sh_emit_scc_to_t).
6042 (udivdi3): Use cstoresi4.
6043 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
6044 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
6045 (cbranchint4_media, cbranchfp4_media): New.
6046 (casesi): Use cbranchdi4.
6047 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
6048 Delete.
6049 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
6050 (movnegt): Remove second operand.
6051 (cbranchsf4, cbranchdf4): New.
6052 (stack_protect): Use cbranchdi4/cbranchsi4.
6053
6054 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
6055 (gen_compare_reg): Accept comparison, extract part of it to...
6056 (gen_compare_reg_1): ... this.
6057 (gen_compare_operator): Delete.
6058 (gen_v9_scc): Accept separate destination, comparison code and arms.
6059 Do not use sparc_compare_op0/sparc_compare_op1.
6060 (emit_scc_insn, emit_conditional_branch_insn): New.
6061 (emit_v9_brxx): Make static. Remove useless assertion.
6062 (sparc_emit_float_lib_cmp): Return RTL instead of calling
6063 emit_cmp_insn.
6064 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
6065 * config/sparc/sparc-protos.h (gen_compare_reg,
74f4459c 6066 sparc_emit_float_lib_cmp): Adjust prototype.
6067 (emit_scc_insn, emit_conditional_branch_insn): New.
6068 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
6ca2db76 6069 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
6070 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
6071 iterators to the top.
6072 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
6073 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
74f4459c 6074 snedi_special_trunc): Delete.
6ca2db76 6075 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
74f4459c 6076 and snedi_special_trunc.
6ca2db76 6077 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
6078 cbranchdi4, cbranch<F:mode>4): New.
6079 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
6080 here. Use gen_compare_reg instead of gen_compare_operator.
6081 (conditional_trap): Replace with...
6082 (ctrapsi4, ctrapdi4): ... this.
6083 (stack_protect_test): Use cbranchcc4.
6084
6085 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
6086 argument to rtx.
6087 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
6088 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
6089 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
6090 from operands[0] or operands[3] depending on is_set.
6091 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
6092 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
6093 cmpdf, bCC), sCC: Remove.
6094 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
6095 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
6096 cstoredf4): New.
6097 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
6098 spu_emit_branch_or_set.
6099
6100 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
6101 Add two arguments.
6102 * config/stormy16/stormy16.h (xstormy16_compare_op0,
6103 xstormy16_compare_op1): Delete.
6104 * config/stormy16/stormy16.c (xstormy16_compare_op0,
6105 xstormy16_compare_op1): Delete.
6106 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
6107 Adjust calls.
6108 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
6109 (cmphi, cmpsi, bCC): Remove.
6110
6111 * config/v850/v850.md (tstsi, cmpsi): Fold into...
6112 (*cmpsi): ... this one.
6113 (cbranchsi4, cstoresi4): New.
6114 (bCC expanders): Delete.
6115 (sCC insns): Fold into...
6116 (*setcc): ... this one.
6117 (casesi): Do not use gen_cmpsi and gen_bgtu.
74f4459c 6118 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
6119 (movsicc): Simplify.
6120 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
6121
6ca2db76 6122 * config/vax/vax-protos.h (cond_name): New.
6123 (vax_output_conditional_branch): Remove.
6124 * config/vax/vax.c (cond_name): New.
6125 (vax_output_conditional_branch): Remove.
6126 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
6127 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
6128 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
6129 (bit<VAXint>): Wrap source with (compare).
6130 (b<code> and following unnamed pattern): Rename to *branch and
6131 *branch_reversed. Change macroization to match_operator.
6132 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
6133
6134 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
6135 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
6136 Change last argument to machine_mode.
6137 (xtensa_expand_scc): Add machine_mode argument.
6138 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
6139 (gen_conditional_move, xtensa_expand_conditional_branch,
6140 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
6141 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
6142 Adjust operand numbers.
6143 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
6144 Delete.
6145 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
6146 (cmpsi, cmpsf, b<code>, s<code>): Delete.
6147 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
74f4459c 6148
880e5cd7 61492009-05-12 Paolo Bonzini <bonzini@gnu.org>
6150
6151 * optabs.c (prepare_cmp_insn): Temporarily disable test that
6152 causes spurious differences between trunk and cond-optab branch.
6153
bd1f9655 61542009-05-12 Alexandre Oliva <aoliva@redhat.com>
6155
6156 PR target/37137
6157 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
6158
f6bf9542 61592009-05-12 Alexandre Oliva <aoliva@redhat.com>
6160
6161 * tree.c (iterative_hash_pointer): Delete.
6162 (iterative_hash_expr): Short-circuit handling of NULL pointer.
6163 Hash UIDs and versions of SSA names. Don't special-case built-in
6164 function declarations.
6165
ebbdcbb3 61662009-05-11 Ian Lance Taylor <iant@google.com>
6167
6168 PR bootstrap/40103
6169 * graphite.c: Force -Wc++-compat to only be a warning before
6170 #including "cloog/cloog.h".
6171
a111083a 61722009-05-11 Martin Jambor <mjambor@suse.cz>
6173
6174 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
6175
aa2ba534 61762009-05-11 Jan Hubicka <jh@suse.cz>
6177
6178 * tree-ssa-loop-ivcanon.c: Include target.h
6179 (struct loop_size): new structure.
6180 (constant_after_peeling): New predicate.
6181 (tree_estimate_loop_size): New function.
6182 (estimated_unrolled_size): Rewrite for new estimates.
6183 (try_unroll_loop_completely): Use new estimates.
6184 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
6185
897ffbb0 61862009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
6187
6188 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
6189 libcpp interface change.
6190 (spu_macro_to_expand): Likewise.
6191
a39fe414 61922009-05-11 Paolo Bonzini <bonzini@gnu.org>
6193
6194 PR tree-optimization/40026
6195 * gimplify.c (gimplify_init_constructor): Change initial conditional
6196 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
6197 optimize_compound_literals_in_ctor.
6198
175be17a 61992009-05-11 Nathan Sidwell <nathan@codesourcery.com>
6200
6201 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
6202 New devices.
6203 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
6204
1a0e7d51 62052009-05-11 H.J. Lu <hongjiu.lu@intel.com>
6206
6207 * tree-vect-data-refs.c (vect_analyze_group_access): Use
6208 HOST_WIDE_INT for gap.
6209
b11576bf 62102009-05-11 Ira Rosen <irar@il.ibm.com>
6211
6212 PR tree-optimization/40074
6213 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
6214 account in group size and step comparison.
6215
2f8eb909 62162009-05-11 Richard Guenther <rguenther@suse.de>
6217
6218 * passes.c (init_optimization_passes): Strip now incorrect comment.
6219 (execute_function_todo): Do not set PROP_alias.
6220 * tree-pass.h (PROP_alias): Remove.
6221 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
6222 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
6223 * tree-nrv.c (pass_return_slot): Likewise.
6224 * tree-object-size.c (pass_object_sizes): Likewise.
6225 * tree-ssa-dom.c (pass_dominator): Likewise.
6226 (pass_phi_only_cprop): Likewise.
6227 * tree-ssa-dse.c (pass_dse): Likewise.
6228 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
6229 (pass_cselim): Likewise.
6230 * tree-ssa-pre.c (pass_pre): Likewise.
6231 (pass_fre): Likewise.
6232 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
6233 * tree-ssa-sink.c (pass_sink_code): Likewise.
6234 * tree-stdarg.c (pass_stdarg): Likewise.
6235 * tree-tailcall.c (pass_tail_calls): Likewise.
6236 * tree-vrp.c (pass_vrp): Likewise.
6237
0b09525f 62382009-05-10 Ian Lance Taylor <iant@google.com>
6239
6240 * basic-block.h (enum profile_status): Break out of struct
6241 control_flow_graph.
6242 * cgraph.h (struct inline_summary): Break out of struct
6243 cgraph_local_info.
6244 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
6245 of struct cgraph_order_sort.
6ca2db76 6246 * combine.c (enum undo_kind): New enum, broken out of struct undo.
0b09525f 6247 * cse.c (struct branch_path): Break out of struct
6248 cse_basic_block_data.
6249 * except.h (enum eh_region_type): Break out of struct eh_region.
6250 * gcc.c (enum add_del): Break out of struct modify_target.
6ca2db76 6251 * genrecog.c (enum decision_type): Break out of struct decision_test.
0b09525f 6252 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
6253 ggc_pch_data.
6ca2db76 6254 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
6255 * regmove.c (enum match_use): New enum, broken out of struct match.
0b09525f 6256 * sched-int.h (enum post_call_group): New enum, broken out of
6257 struct deps.
6258 (struct deps_reg): Break out of struct deps.
6259 * target.h (struct asm_int_op): Break out of struct gcc_target.
6260 * tree-eh.c (struct goto_queue_node): Break out of struct
6261 leh_tf_state.
6262 * tree-inline.h (enum copy_body_cge_which): Break out of
6263 copy_body_data.
6264 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
6265
6266 * c-decl.c (in_struct, struct_types): New static variables.
6267 (pushtag): Add loc parameter. Change all callers.
6268 (lookup_tag): Add ploc parameter. Change all callers.
6269 (check_compound_literal_type): New function.
6270 (parser_xref_tag): Add loc parameter. Change all callers. If
6271 -Wc++-compat, warn about struct/union/enum types defined within a
6272 struct or union.
6273 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
6274 and loc parameters. Change all callers. Change error calls to
6275 error_at, using loc. For a redefinition, if the location of the
6276 original definition is known, report it. Set in_struct and
6ca2db76 6277 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
0b09525f 6278 (finish_struct): Add new parameters enclosing_in_struct and
6279 enclosing_struct_types. Change all callers. Set
6280 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
6281 in the struct. If in a struct, add this struct to struct_types.
6282 (start_enum): Add loc parameter. Change all callers. Use
6283 error_at for errors, using loc. For a redefinition, if the
6284 location of the original definition is known, report it. If in a
6285 struct, add this enum type to struct_types. If -Wc++-compat warn
6286 if in sizeof, typeof, or alignof.
6ca2db76 6287 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
6288 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
0b09525f 6289 (c_parser_enum_specifier): Get enum location for start_enum.
6290 (c_parser_struct_or_union_specifier): Get struct location for
6291 start_struct. Save in_struct and struct_types status between
6292 start_struct and finish_struct.
6293 (c_parser_cast_expression): Get location of cast.
6294 (c_parser_alignof_expression): Get location of type.
6295 (c_parser_postfix_expression): Likewise.
6296 (c_parser_postfix_expression_after_paren_type): Add type_loc
6ca2db76 6297 parameter. Change all callers. Call check_compound_literal_type.
6298 Use type_loc for error about variable size type.
6299 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
6300 of an enum constant from an enum type defined in a struct or union.
0b09525f 6301 (c_cast_expr): Add loc parameter. Change all callers. If
6302 -Wc++-compat, warn about defining a type in a cast.
6303 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
6304 (start_enum, start_struct, finish_struct): Update declarations.
6305 (parser_xref_tag, c_cast_expr): Update declarations.
6306 (check_compound_literal_type): Declare.
6307
9d6d8a52 63082009-05-11 Ben Elliston <bje@au.ibm.com>
6309
6310 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
6311 for recent libcpp interface change.
6312 (rs6000_macro_to_expand): Likewise.
6313
c67e32f9 63142009-05-10 Michael Matz <matz@suse.de>
6315
6316 PR target/40031
6317 * config/arm/arm.c (require_pic_register): Emit on entry edge,
6318 not at entry of function.
6319
e2a3897e 63202009-05-10 Richard Guenther <rguenther@suse.de>
6321
6322 PR tree-optimization/40081
6323 Revert
6324 * tree-sra.c (instantiate_element): Instantiate scalar replacements
6325 using the main variant of the element type. Do not fiddle with
6326 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6327
6328 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
6329 structs with volatile fields.
6330
31359ae8 63312009-05-10 Jan Hubicka <jh@suse.cz>
6332
6333 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
6ca2db76 6334 (estimate_move_cost): Assert that it does not get called for
6335 VOID_TYPE_P.
31359ae8 6336 (estimate_num_insns): Skip VOID types in argument handling.
6337 (optimize_inline_calls): Delete unreachable blocks and verify that
6338 callgraph is valid.
6339
2cb64f78 63402009-05-10 Jan Hubicka <jh@suse.cz>
6341
6342 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
6343 * cgraph.c (cgraph_mark_address_taken_node): New function.
6344 (dump_cgraph_node): Dump new flag.
6345 * cgraph.h (struct cgraph_node): Add address_taken.
6346 (cgraph_mark_address_taken_node): New function.
2cb64f78 6347 * ipa.c (cgraph_postorder): Prioritize functions with address taken
6348 since new direct calls can be born.
6349
2ee04baa 63502009-05-10 Joseph Myers <joseph@codesourcery.com>
6351
6352 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
6353 tok->val.node.node.
6354
8d8c4f3e 63552009-05-10 Jan Hubicka <jh@suse.cz>
6356
6357 PR middle-end/40084
5eaad62c 6358 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
6359 argument; rewrite.
8d8c4f3e 6360 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
6361 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
6362 * tree-inline.c (copy_bb): Set frequency correctly.
5eaad62c 6363 (fold_marked_statements): Update call to
6364 cgraph_update_edges_for_call_stmt.
8d8c4f3e 6365
67a779df 63662009-05-10 Joseph Myers <joseph@codesourcery.com>
6367
6368 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
6369 identifiers in diagnostics.
6370 * config/arm/arm.c (arm_handle_fndecl_attribute,
6371 arm_handle_isr_attribute): Likewise.
6372 * config/avr/avr.c (avr_handle_progmem_attribute,
2377feea 6373 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
67a779df 6374 * config/bfin/bfin.c (handle_int_attribute,
6375 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
6376 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
6377 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
6378 Likewise.
6379 * config/darwin.c (darwin_handle_kext_attribute,
6380 darwin_handle_weak_import_attribute): Likewise.
6381 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
6382 h8300_handle_eightbit_data_attribute,
6383 h8300_handle_tiny_data_attribute): Likewise.
6384 * config/i386/i386.c (ix86_handle_cconv_attribute,
2377feea 6385 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
67a779df 6386 * config/i386/winnt.c (ix86_handle_shared_attribute,
6387 ix86_handle_selectany_attribute): Likewise.
6388 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
6389 * config/m32c/m32c.c (function_vector_handler): Likewise.
6390 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
6391 m68hc11_handle_fntype_attribute): Likewise.
6392 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
6393 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
6394 * config/mips/mips.c (mips_insert_attributes,
6395 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
6396 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
6397 rs6000_handle_struct_attribute): Likewise.
6398 * config/sh/sh.c (sh_insert_attributes,
6399 sh_handle_resbank_handler_attribute,
6400 sh_handle_interrupt_handler_attribute,
6401 sh2a_handle_function_vector_handler_attribute,
6402 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
6403 Likewise.
6404 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
6405 * config/spu/spu.c (spu_handle_fndecl_attribute,
6406 spu_handle_vector_attribute): Likewise.
6407 * config/stormy16/stormy16.c
6408 (xstormy16_handle_interrupt_attribute): Likewise.
6409 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
6410 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
6411
a608187f 64122009-05-10 Joseph Myers <joseph@codesourcery.com>
6413
2377feea 6414 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
a608187f 6415 (pp_translate_identifiers): New.
6416 (pp_identifier): Only conditionally translate identifier to locale
6417 character set.
6418 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
6419 (pp_base_tree_identifier): Only conditionally translate identifier
6420 to locale character set.
6421 * c-pretty-print.c (M_): Define.
6422 (pp_c_type_specifier, pp_c_primary_expression): Mark English
6423 fragments for conditional translation with M_.
6424 * tree-pretty-print.c (maybe_init_pretty_print): Disable
6425 identifier translation.
6426
d919c4c8 64272009-05-10 Richard Guenther <rguenther@suse.de>
6428
6429 PR tree-optimization/40081
6430 * tree-sra.c (instantiate_element): Instantiate scalar replacements
6431 using the main variant of the element type. Do not fiddle with
6432 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6433
947781ac 64342009-05-09 Jan Hubicka <jh@suse.cz>
6435
6436 PR middle-end/40080
6437 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
6438 indirect calls; verify cgraph afterwards.
6439
21f41380 64402009-05-09 Jan Hubicka <jh@suse.cz>
6441
6442 PR bootstrap/40082
6443 * ipa.c (update_inlined_to_pointer): New function.
6444 (cgraph_remove_unreachable_nodes): Use it.
6445
1b044ec2 64462009-05-09 Jan Hubicka <jh@suse.cz>
6447
6448 * tree-eh.c (struct leh_state): Remove prev_try.
6449 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
6450 not track prev_try.
6451 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
6452 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
6453 remove_eh_handler_and_replace, foreach_reachable_handler,
6454 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
6455 * except.h (struct eh_region): Remove eh_region_u_cleanup.
6456 (gen_eh_region_cleanup): Update prototype.
6457
8997fc11 64582009-05-09 Jan Hubicka <jh@suse.cz>
6459
6460 PR middle-end/40043
6461 * except.c (copy_eh_region): Always set prev_try.
6462 (redirect_eh_edge_to_label): Find outer try.
6463 (foreach_reachable_handler): When looking for prev try
6464 handle case where previous try is not going to be taken.
6465
54206f86 64662009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
6467
6468 PR tree-optimization/40049
6469 * tree-vect-stmts.c (vectorizable_operation): If the machine has
6470 only vector/vector shifts, convert the type of the constant to the
6471 appropriate type to avoid building incorrect trees, which
6472 eventually have problems with garbage collection.
6473
fc86f9df 64742009-05-08 Joseph Myers <joseph@codesourcery.com>
6475
6476 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
6477 -1 for complex floating-point types if honoring signed zeros.
6478
ccf4ab6b 64792009-05-08 Jan Hubicka <jh@suse.cz>
6480
80a52720 6481 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
6482 argument; handle correctly when profile is absent.
ccf4ab6b 6483 (build_cgraph_edges): Update.
6484 (rebuild_cgraph_edges): Update.
80a52720 6485 * cgraph.c: Do not include varray.h.
6486 (cgraph_set_call_stmt_including_clones): New function.
6487 (cgraph_create_edge_including_clones): Likewise
6488 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
ccf4ab6b 6489 (cgraph_update_edges_for_call_stmt): Handle clones.
6490 (cgraph_remove_node): Handle clone tree.
6491 (cgraph_remove_node_and_inline_clones): New function.
6492 (dump_cgraph_node): Dump clone tree.
6493 (cgraph_clone_node): Handle clone tree.
80a52720 6494 (clone_function_name): Bring here from tree-inline.c.
ccf4ab6b 6495 (cgraph_create_virtual_clone): New function.
80a52720 6496 * cgraph.h (ipa_replace_map): Move here from ipa.h.
6497 (cgraph_clone_info): New function.
ccf4ab6b 6498 (strut cgraph_node): Add clone_info and new clone tree pointers.
80a52720 6499 (cgraph_remove_node_and_inline_clones,
6500 cgraph_set_call_stmt_including_clones,
6501 cgraph_create_edge_including_clones,
6502 cgraph_create_virtual_clone): Declare.
ccf4ab6b 6503 (cgraph_function_versioning): Use VEC argument.
6504 (compute_call_stmt_bb_frequency): Update prototype.
6505 (cgraph_materialize_all_clones): New function.
6506 * ipa-cp.c (ipcp_update_cloned_node): Remove.
6507 (ipcp_create_replace_map): Update to VECtors.
6508 (ipcp_update_callgraph): Use virtual clones.
6509 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
6510 (ipcp_update_profiling): Do not update local profiling.
6511 (ipcp_insert_stage): Use VECtors and virtual clones.
6512 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
6513 (clone_of_p): New function.
6514 (cgraph_preserve_function_body_p): Use clone tree.
6515 (cgraph_optimize): Materialize clones.
6516 (cgraph_function_versioning): Update for VECtors.
6517 (save_inline_function_body): Use clone tree.
80a52720 6518 (cgraph_materialize_clone): New function.
6519 (cgraph_materialize_all_clones): Likewise.
ccf4ab6b 6520 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
6521 * ipa.c: Include gimple.h.
6522 (cgraph_remove_unreachable_nodes): Use clone tree.
80a52720 6523 * ipa-prop.c (ipa_note_param_call): Update call to
6524 compute_call_stmt_bb_frequencycall.
ccf4ab6b 6525 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
80a52720 6526 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
ccf4ab6b 6527 (copy_bb): Handle updating of clone tree; add new edge when new call
6528 appears.
6529 (expand_call_inline): Be strict about every call having edge.
6530 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
6531 (delete_unreachable_blocks_update_callgraph): New function.
80a52720 6532 (tree_function_versioning): Use VECtors; always remove unreachable
6533 blocks and fold conditionals.
6534 * tree-inline.h: Do not include varray.h.
ccf4ab6b 6535 (tree_function_versioning): Remove.
6536 * Makefile.in (GTFILES): Remove tree-inline.c
6537 * passes.c (do_per_function): Do only functions having body.
80a52720 6538 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
6539 tree.
ccf4ab6b 6540
45c4e798 65412009-05-08 H.J. Lu <hongjiu.lu@intel.com>
6542 Andrew Morrow <acm@google.com>
6543
6544 PR c/36892
6545 * c-common.c (c_common_attribute_table): Permit deprecated
6546 attribute to take an optional argument.
6547 (handle_deprecated_attribute): If the optional argument to
6548 __attribute__((deprecated)) is not a string ignore the attribute
6549 and emit a warning.
6550
6551 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
6552 * c-typeck.c (build_component_ref): Likewise.
6553 (build_external_ref): Likewise.
6554
6555 * toplev.c (warn_deprecated_use): Add an attribute argument.
6556 Emit the message associated with __attribute__((deprecated)).
6557
6558 * toplev.h (warn_deprecated_use): Updated.
6559
6560 * doc/extend.texi: Document new optional parameter to
6561 __attribute__((deprecated))
6562
3a45c25e 65632009-05-08 Michael Eager <eager@eagercon.com>
6564
6565 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
6566 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
6567
aebe538b 65682009-05-08 Richard Guenther <rguenther@suse.de>
6569
6570 PR tree-optimization/40062
6571 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
6572 Avoid exponential behavior.
6573
e0bd4156 65742009-05-08 Paolo Bonzini <bonzini@gnu.org>
6575
6576 PR rtl-optimization/33928
6577 PR 26854
6578 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
6579 process_uses, build_single_def_use_links): New.
6580 (update_df): Update use_def_ref.
6581 (forward_propagate_into): Use get_def_for_use instead of use-def
6582 chains.
6583 (fwprop_init): Call build_single_def_use_links and let it initialize
6584 dataflow.
6585 (fwprop_done): Free use_def_ref.
6586 (fwprop_addr): Eliminate duplicate call to df_set_flags.
6587 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
6588 df_rd_simulate_one_insn): New.
6589 (df_rd_bb_local_compute_process_def): Update head comment.
6590 (df_chain_create_bb): Use the new RD simulation functions.
6591 * df.h (df_rd_simulate_artificial_defs_at_top,
6592 df_rd_simulate_one_insn): New.
6593 * opts.c (decode_options): Enable fwprop at -O1.
6594 * doc/invoke.texi (-fforward-propagate): Document this.
6595
0f241d3f 65962009-05-08 Joseph Myers <joseph@codesourcery.com>
6597
6598 PR c/24581
6599 * c-typeck.c (build_binary_op): Handle arithmetic between one real
6600 and one complex operand specially.
6601 * tree-complex.c (some_nonzerop): Do not identify a real value as
6602 zero if flag_signed_zeros.
6603
5c83cd34 66042009-05-08 Paolo Bonzini <bonzini@gnu.org>
6605
6606 PR rtl-optimization/33928
e0f84439 6607 * loop-invariant.c (record_use): Fix && vs. || mishap.
5c83cd34 6608
68461c19 66092009-05-08 Paolo Bonzini <bonzini@gnu.org>
6610
6611 PR rtl-optimization/33928
39db6a03 6612 * loop-invariant.c (struct use): Add addr_use_p.
6613 (struct def): Add n_addr_uses.
6614 (struct invariant): Add cheap_address.
6615 (create_new_invariant): Set cheap_address.
6616 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
6617 (record_uses): Pass df_ref to record_use.
6618 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
6619 used only as such.
68461c19 6620
e0f22649 66212009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
6622
6623 * config/sh/sh.c: Do not include c-pragma.h.
6624
653ba01f 66252009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
6626
6627 * config/spu/spu.c: Remove include of c-common.h.
6628
3ae3a17f 66292009-05-07 Janis Johnson <janis187@us.ibm.com>
6630
6631 PR c/39037
6632 * c-common.h (mark_valid_location_for_stdc_pragma,
6633 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
6634 clear_float_const_decimal64, float_const_decimal64_p): New.
6635 * c.opt (Wunsuffixed-float-constants): New.
6636 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
6637 unsuffixed float constant, handle new warning.
6638 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
6639 * c-decl.c (c_scope): New flag float_const_decimal64.
6640 (set_float_const_decimal64, clear_float_const_decimal64,
6641 float_const_decimal64_p): New.
6642 (push_scope): Set new flag.
6643 * c-parser.c (c_parser_translation_unit): Mark when it's valid
6644 to use STDC pragmas.
6645 (c_parser_external_declaration): Ditto.
6646 (c_parser_compound_statement_nostart): Ditto.
6647 * c-pragma.c (valid_location_for_stdc_pragma,
6648 mark_valid_location_for_stdc_pragma,
6649 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
6650 handle_pragma_float_const_decimal64): New.
6651 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
6652 * cp/semantics.c (valid_location_for_stdc_pragma_p,
6653 set_float_const_decimal64, clear_float_const_decimal64,
6654 float_const_decimal64_p): New dummy functions.
6655 * doc/extend.texi (Decimal Float): Remove statement that the
6656 pragma, and suffix for double constants, are not supported.
6657 * doc/invoke.texi (Warning Options): List new option.
6658 (-Wunsuffixed-float-constants): New.
6659
6de97ed5 66602009-05-08 Steven Bosscher <steven@gcc.gnu.org>
6661
6662 * config/i386/i386.c: Do not include c-common.h.
6663
b2d31ed6 66642009-05-07 Mark Heffernan <meheff@google.com>
6665
6666 * doc/invoke.texi (Debugging Options): Document change of debugging
6667 dump location.
39db6a03 6668 * opts.c (decode_options): Make dump_base_name relative to
b2d31ed6 6669 aux_base_name directory.
6670
697cef4f 66712009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
6672
6673 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
6674 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
6675
537bb6bf 66762009-05-07 Rafael Avila de Espindola <espindola@google.com>
6677
6678 * Makefile.in (install-plugin): Simplify a bit.
6679
2d4749b6 66802009-05-07 Paolo Bonzini <bonzini@gnu.org>
6681
6682 * Makefile.in (OBJS-common): Add regcprop.o.
6683 (regcprop.o): New.
6684 * timevar.def (TV_CPROP_REGISTERS): New.
6685 * regrename.c (regrename_optimize): Return 0.
6686 (rest_of_handle_regrename): Delete.
6687 (pass_rename_registers): Point to regrename_optimize.
6688 (struct value_data_entry, struct value_data,
6689 kill_value_one_regno, kill_value_regno, kill_value,
6690 set_value_regno, init_value_data, kill_clobbered_value,
6691 kill_set_value, kill_autoinc_value, copy_value,
6692 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
6693 replace_oldest_value_reg, replace_oldest_value_addr,
6694 replace_oldest_value_mem, copyprop_hardreg_forward_1,
6695 debug_value_data, validate_value_data): Move...
6696 * regcprop.c: ... here.
6697 (rest_of_handle_cprop): Delete.
6698 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
6699
7ad40ea1 67002009-05-07 Jakub Jelinek <jakub@redhat.com>
6701
6702 PR middle-end/40057
6703 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
6704 GEN_INT for 1 << bitnum.
6705 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
6706 build_int_cst_type.
6707
1cae7fd7 67082009-05-07 Uros Bizjak <ubizjak@gmail.com>
6709
6710 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
e0f84439 6711 Remove wrong description of "nand" operation.
1cae7fd7 6712
618b10bf 67132009-05-06 Richard Guenther <rguenther@suse.de>
6714 Adam Nemet <anemet@caviumnetworks.com>
6715
6716 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
6717 comment. Add that if LHS is not a gimple register, then RHS1 has
6718 to be a single object (GIMPLE_SINGLE_RHS).
6719
c1a83279 67202009-05-06 Adam Nemet <anemet@caviumnetworks.com>
6721
6722 * expr.c (get_def_for_expr): Move it up in the file.
6723 (store_field): When expanding a bit-field store, look at the
6724 defining gimple stmt for the masking conversion.
6725
b0090d52 67262009-05-06 Janis Johnson <janis187@us.ibm.com>
6727
6728 PR middle-end/39986
6729 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
6730 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
6731 32-bit memcpy into long.
6732
8fb8ca17 67332009-05-06 Jakub Jelinek <jakub@redhat.com>
6734
6735 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
6736 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
6737 new_reg_loc_descr.
6738 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
6739 instead of appending DW_OP_deref*.
6740
f800c469 67412009-05-06 Michael Matz <matz@suse.de>
6742
6743 PR middle-end/40021
6744 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
6745 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
6746
b3c73487 67472009-05-06 Rafael Avila de Espindola <espindola@google.com>
6748
6749 * Makefile.in (install-plugin): Fix srcdir handling.
6750
d29f7fa8 67512009-05-06 Andrey Belevantsev <abel@ispras.ru>
6752
6753 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
6754 when processing for not_regs_needed bitmap.
6755 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
6756 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
6757 handling it for rhs.
6758
75445c99 67592009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6760
a4374f2d 6761 * config/i386/i386.md (unnamed inc/dec peephole): Use
0ec7bfcd 6762 optimize_insn_for_size_p instead of optimize_size.
75445c99 6763 * config/i386/predicates.md (incdec_operand): Likewise.
6764 (aligned_operand): Likewise.
6765 * config/i386/sse.md (divv8sf3): Likewise.
6766 (sqrtv8sf2): Likewise.
6767
6e760686 67682009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6769
6770 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
6771
6772 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
6773
67b1adf3 67742009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6775
6776 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
6777 ssemodesuffixf2c with avxmodesuffixf2c.
6778
7f824b22 67792009-05-06 Joseph Myers <joseph@codesourcery.com>
6780
6781 PR c/40032
0ec7bfcd 6782 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
7f824b22 6783
7ac958de 67842009-05-05 Jakub Jelinek <jakub@redhat.com>
6785
6786 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
6787 (struct tree_base): Adjust spacing for 8 bit boundaries.
6788 (struct tree_decl_common): Add decl_by_reference_flag bit.
6789 (DECL_BY_REFERENCE): Adjust.
6790 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
6791 print DECL_BY_REFERENCE bit.
6792 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
6793 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
6794 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
6795 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
6796 unconditionally.
6797
72211fd1 6798 PR middle-end/39666
6799 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
6800 range of the type, but default label is missing, add it with one
6801 of the existing labels instead of adding a new label for it.
6802
a4987849 68032009-05-05 Joseph Myers <joseph@codesourcery.com>
6804
6805 * dwarf.h: Remove.
6806
912f2b18 68072009-05-05 Rafael Avila de Espindola <espindola@google.com>
6808
6809 * Makefile.in (enable_plugin, plugin_includedir): New.
6810 (install): Depend on install-plugin.
6811 (PLUGIN_HEADERS): New.
6812 (install-plugin): New.
6813 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
6814
d977f485 68152009-05-05 Richard Guenther <rguenther@suse.de>
6816
6817 PR tree-optimization/40022
6818 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
6819 the only vuse.
6820 (phivn_valid_p): Fix tuplification error, simplify.
6821 (phiprop_insert_phi): Add dumps.
6822 (propagate_with_phi): Simplify.
6823
bab5904e 68242009-05-05 Richard Guenther <rguenther@suse.de>
6825
6826 PR middle-end/40023
0ec7bfcd 6827 * builtins.c (gimplify_va_arg_expr): Properly build the address.
bab5904e 6828
15155321 68292009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
6830
6831 * tree.h (strip_float_extensions): Remove duplicate declaration.
0ec7bfcd 6832 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
6833 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
6834 block_ultimate_origin): Rearrange the declarations line to match the
6835 comment that indicates the .c file which the functions are defined.
6836 (dwarf2out_*, set_decl_rtl): Add comment.
6837 (get_base_address): Adjust comment.
6838 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
6839 declarations line and add comment.
6840 (is_builtin_name): Add blank after function name, for clarity.
15155321 6841
abd3e6b5 68422009-05-04 Joseph Myers <joseph@codesourcery.com>
6843
6844 * attribs.c (decl_attributes): Use %qE for identifiers in
6845 diagnostics.
6846 * cgraphunit.c (verify_cgraph_node): Translate function names to
6847 locale character set in diagnostics.
6848 * coverage.c (get_coverage_counts): Use %qE for identifiers in
6849 diagnostics.
6850 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
6851 Document that functions are named in UTF-8.
6852 * expr.c (expand_expr_real_1): Translate function names to locale
6853 character set in diagnostics.
6854 * gimplify.c (omp_notice_variable, omp_is_private,
6855 gimplify_scan_omp_clauses): Use %qE for identifiers in
6856 diagnostics.
6857 * langhooks.c (lhd_print_error_function): Translate function names
6858 to locale character set.
6859 * langhooks.h (decl_printable_name): Document that return value is
6860 in internal character set.
6861 * stmt.c: Include pretty-print.h
6862 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
6863 diagnostics.
6864 (resolve_operand_name_1): Translate named operand name to locale
6865 character set.
6866 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
6867 diagnostics.
6868 * toplev.c (announce_function): Translate function names to locale
6869 character set.
6870 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
6871 (default_tree_printer): Use pp_identifier or translate identifiers
6872 to locale character set. Mark "<anonymous>" for translation.
6873 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
6874 for identifiers in diagnostics.
6875 * tree.c (handle_dll_attribute): Use %qE for identifiers in
6876 diagnostics.
6877 * varasm.c (output_constructor): Use %qE for identifiers in
6878 diagnostics.
6879
6ac2286b 68802009-05-04 Rafael Avila de Espindola <espindola@google.com>
6881
6882 * configure.ac: use ` ` instead of $()
6883 * configure: Regenerate.
6884
5f80759e 68852009-05-05 Ben Elliston <bje@au.ibm.com>
6886
6887 * config/pa/linux-atomic.c: Eliminate conditional include of
6888 errno.h on non-LP64 systems to simplify build requirements.
6889
d1dd9ac0 68902009-05-04 Joseph Myers <joseph@codesourcery.com>
6891
6892 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
6893 diagnostics.
6894 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
6895 and pass value to identifier_to_locale.
6896 (warn_variable_length_array): Make name a tree.
6897 (grokdeclarator): Separate diagnostic texts for named and unnamed
6898 declarators. Use %qE for named declarators.
6899 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
6900 diagnostics.
6901 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
6902 identifiers in diagnostics.
6903 * c-typeck.c (push_member_name, start_init): Pass identifiers to
6904 identifier_to_locale. Mark "anonymous" strings for translation.
6905
c440daea 69062009-05-04 Michael Eager <eager@eagercon.com>
6907
6908 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
0ec7bfcd 6909 address for DImode/DFmode only if double-precision FP regs.
c440daea 6910
498670de 69112009-05-04 Michael Eager <eager@eagercon.com>
6912
6913 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
6914 TARGET_SINGLE_FLOAT check.
6915
ada4bf4e 69162009-05-04 Michael Eager <eager@eagercon.com>
6917
6918 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
6919
c6312735 69202009-05-04 Michael Eager <eager@eagercon.com>
6921
6922 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
6923 * config/rs6000/t-xilinx: New
6924
41e3a0c7 69252009-05-04 Paolo Bonzini <bonzini@gnu.org>
6926
39db6a03 6927 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
41e3a0c7 6928 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
6929 * gcc/explow.c (memory_address): Use target hook.
6930 * gcc/targhooks.c (default_legitimize_address): New.
6931 * gcc/targhooks.h (default_legitimize_address): New.
6932 * gcc/target.h (legitimize_address): New.
6933 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
6934 (TARGET_INITIALIZER): Include it.
6935 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
6936
6937 * config/bfin/bfin-protos.h (legitimize_address): Remove.
6938 * config/bfin/bfin.c (legitimize_address): Remove.
6939 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
0ec7bfcd 6940 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
6941 Remove.
41e3a0c7 6942 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
6943 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
6944
6945 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
6946 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
6947 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
6948 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
6949 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
6950 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
6951 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
6952 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
6953 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
6954 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
6955 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
6956 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
6957 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
6958 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
6959 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
6960 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
6961 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
6962 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
6963 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
6964 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
6965 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
6966 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
6967 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
6968
6969 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
6970 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
6971 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
6972 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
6973 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
6974 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
6975 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
6976 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
6977 (thumb_legitimize_address): Delete.
6978 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
6979 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
6980 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
6981 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
6982 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
0ec7bfcd 6983 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
6984 Delete.
6985 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
6986 Delete.
41e3a0c7 6987
6988 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
6989 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
6990 * config/m32r/m32r.c (m32r_legitimize_address): New.
6991 * config/m68k/m68k.c (m68k_legitimize_address): New.
6992 * config/score/score.c (score_legitimize_address): Standardize.
6993 * config/score/score3.c (score3_legitimize_address): Standardize.
6994 * config/score/score3.h (score3_legitimize_address): Adjust.
6995 * config/score/score7.c (score7_legitimize_address): Standardize.
6996 * config/score/score7.h (score7_legitimize_address): Adjust.
6997 * config/sh/sh.c (sh_legitimize_address): New.
6998 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
6999
7000 * gcc/config/s390/s390.c (legitimize_address): Rename to...
7001 (s390_legitimize_address): ... this.
7002 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
7003 (sparc_legitimize_address): ... this.
7004 * gcc/config/i386/i386.c (legitimize_address): Rename to...
7005 (ix86_legitimize_address): ... this.
7006 * gcc/config/avr/avr.c (legitimize_address): Rename to...
7007 (avr_legitimize_address): ... this.
7008 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
7009 (mn10300_legitimize_address): ... this.
7010 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
7011 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
7012 (alpha_expand_mov): Adjust call.
7013
7014 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
7015 * config/spu/spu.c (spu_legitimize_address): Likewise.
7016 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
7017 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
7018
27746e01 70192009-05-04 Joseph Myers <joseph@codesourcery.com>
7020
7021 * intl.c (locale_encoding, locale_utf8): New.
7022 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
7023 * intl.h (locale_encoding, locale_utf8): Declare.
7024 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
7025 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
7026 New.
7027 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
7028 argument.
7029 (pp_tree_identifier): Define to call pp_base_tree_identifier.
7030 (pp_base_tree_identifier): Declare as function.
7031 (identifier_to_locale): Declare.
7032 * Makefile.in (pretty-print.o): Update dependencies.
0ec7bfcd 7033 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
27746e01 7034
97d4c6a6 70352009-05-04 Richard Guenther <rguenther@suse.de>
7036
7037 PR middle-end/40015
7038 * builtins.c (fold_builtin_memory_op): Do not decay to element
7039 type if the size matches the whole array.
7040
5521b4c8 70412009-05-04 Kazu Hirata <kazu@codesourcery.com>
7042
7043 * expmed.c (synth_mult): When trying out a shift, pass the result
7044 of a signed shift.
7045
b592bb50 70462009-05-04 Kazu Hirata <kazu@codesourcery.com>
7047
7048 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
7049 (shiftsub1_cost): New.
7050 (init_expmed): Compute shiftsub1_cost.
7051 (synth_mult): Optimize multiplications by constants of the form
7052 -(2^^m-1) for some constant positive integer m.
7053
45bb3afb 70542009-05-03 Richard Guenther <rguenther@suse.de>
7055
7056 PR c/39983
7057 * c-typeck.c (array_to_pointer_conversion): Do not built
7058 ADDR_EXPRs of arrays of pointer-to-element type.
7059 * c-gimplify.c (c_gimplify_expr): Revert change fixing
7060 up wrong ADDR_EXPRs after-the-fact.
7061 * c-common.c (strict_aliasing_warning): Strip pointer
7062 conversions for obtaining the original type.
7063 * builtins.c (fold_builtin_memset): Handle array types.
7064 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
7065 and array types
7066
9225ad44 70672009-05-03 Richard Guenther <rguenther@suse.de>
7068
7069 PR middle-end/23329
7070 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
7071 Do not lose casts from array types with unknown extent to array
7072 types with known extent.
7073 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
7074 alias set compatibility.
7075
a0ded67b 70762009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
7077
7078 * flags.h (extra_warnings): Delete.
7079 * toplev.c (process_options): Handle Wuninitialized here.
7080 * opts.c (extra_warnings): Delete.
7081 (set_Wextra): Delete.
7082 (common_handle_option): -Wextra can be handled automatically.
7083 * c-opts.c (c_common_handle_option): Delete obsolete code.
7084 (c_common_post_options): Simplify comment.
7085 * common.opt (W): Add Var.
7086 (Wextra): Add Var.
7087 (Wuninitialized): Initialize to -1.
7088
bf39f60a 70892009-05-03 Adam Nemet <anemet@caviumnetworks.com>
7090 Richard Guenther <rguenther@suse.de>
7091
7092 * expr.c (get_def_for_expr): New function.
7093 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
7094 SSA rather than trees.
7095 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
7096 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
7097
c1800156 70982009-05-03 Joseph Myers <joseph@codesourcery.com>
7099
7100 * c-common.c (reswords): Add _Imaginary.
7101 * c-common.c (enum rid): Add RID_IMAGINARY.
7102
8b50765f 71032009-05-03 Paolo Bonzini <bonzini@gnu.org>
7104
7105 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
7106 Patch by Richard Guenther.
7107
a4efa7dc 71082009-05-03 Anatoly Sokolov <aesok@post.ru>
7109
7110 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
7111 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
7112 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
7113 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
7114 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
7115 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
7116 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
7117 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
7118 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
7119 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
7120 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
7121 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
7122 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
7123 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
7124 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
7125 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
7126 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
7127 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
7128
b4c97a12 71292009-05-02 Richard Guenther <rguenther@suse.de>
7130
7131 PR tree-optimization/39940
7132 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
7133 doing so.
7134
f09f132b 71352009-05-02 Richard Guenther <rguenther@suse.de>
7136
7137 PR middle-end/40001
7138 * tree-ssa.c (execute_update_addresses_taken): Properly check
7139 if we can mark a variable DECL_GIMPLE_REG_P.
7140 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
7141 back to the end of the function.
7142 (is_gimple_reg_type): Remove complex type special casing.
7143 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
7144 if not optimizing.
7145
2ccfd743 71462009-05-02 Ben Elliston <bje@au.ibm.com>
7147
7148 * doc/collect2.texi (Collect2): Document search path behaviour
7149 when configured with --with-ld.
7150
5b835bca 71512009-05-02 Jan Hubicka <jh@suse.cz>
7152
7153 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
7154 parameter; update callers.
0ec7bfcd 7155 (coalesce_cost_edge): EH edges are costier because they needs
7156 splitting even if not critical and even more costier when there are
7157 multiple EH predecestors.
5b835bca 7158
a0c110ce 71592009-05-02 Jan Hubicka <jh@suse.cz>
7160
7161 * except.c (remove_eh_handler_and_replace): Handle updating after
7162 removing TRY blocks.
7163
aa7ab40e 71642009-05-02 Eric Botcazou <ebotcazou@adacore.com>
7165
7166 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
7167
c778f6b8 71682009-05-02 Steven Bosscher <steven@gcc.gnu.org>
7169
7170 * varasm.c: Do not include c-pragma.h.
7171 * attribs.c: Do not incude c-common.h.
7172
d6230243 71732009-05-01 Michael Matz <matz@suse.de>
7174
7175 * calls.c (initialize_argument_information): Handle SSA names like
7176 decls with a non MEM_P DECL_RTL.
7177
5863771b 71782009-05-01 Steven Bosscher <steven@gcc.gnu.org>
7179
7180 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
7181 * ipa-utils.c: Likewise.
7182 * ipa-type-escape.c: Likewise.
7183 * cgraphunit.c Do not include c-common.h.
7184 * ipa-pure-const.c: Likewise.
7185 * tree-if-conv.c: Likewise.
7186 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
7187 * ipa-struct-reorg.c: Likewise.
7188 * tree-nomudflap.c: Likewise.
7189 * tree-ssa-structalias.c: Likewise.
7190
acf70424 71912009-05-01 Steven Bosscher <steven@gcc.gnu.org>
7192
7193 * store-motion.c: Many cleanups to make this pass a first-class
7194 citizen instead of an appendix to gcse load motion. Add TODO list
7195 to make this pass faster/cleaner/better.
7196
7197 (struct ls_expr): Post gcse.c-split cleanups.
7198 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
7199 "stores" field to "avail_stores".
7200 (pre_ldst_mems): Rename to store_motion_mems.
7201 (pre_ldst_table): Rename to store_motion_mems_table.
7202 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
7203 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
7204 (ldst_entry): Rename to st_expr_entry, update users.
7205 (free_ldst_entry): Rename to free_st_expr_entry, update users.
7206 (free_ldst_mems): Rename to free_store_motion_mems, update users.
0ec7bfcd 7207 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
7208 update caller.
acf70424 7209 (first_ls_expr): Rename to first_st_expr, update users.
7210 (next_ls_expr): Rename to next_st_expr, update users.
7211 (print_ldst_list): Rename to print_store_motion_mems. Print names of
7212 fields properly for store motion instead of names inherited from load
7213 motion in gcse.c.
7214 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
7215 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
7216 are done with it.
7217
7218 (ae_kill): Rename to st_kill, update users.
7219 (ae_gen): Rename to st_avloc, update users.
7220 (transp): Rename to st_transp, update users.
7221 (pre_insert_map): Rename to st_insert_map, update users.
7222 (pre_delete_map): Rename to st_delete_map, update users.
7223 (insert_store, build_store_vectors, free_store_memory,
7224 one_store_motion_pass): Update for abovementioned changes.
7225
7226 (gcse_subst_count, gcse_create_count): Remove.
7227 (one_store_motion_pass): New statistics counters "n_stores_deleted"
7228 and "n_stores_created", local variables.
7229
7230 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
7231 use for_each_rtx.
7232
7233 (regvec, compute_store_table_current_insn): Remove.
7234 (reg_set_info, reg_clear_last_set): Remove.
7235 (compute_store_table): Use DF caches instead of local dataflow
7236 solvers.
7237
1e00012f 72382009-05-01 Joseph Myers <joseph@codesourcery.com>
7239
7240 * c-objc-common.c (c_tree_printer): Print identifiers with
7241 pp_identifier, not pp_string. Mark "({anonymous})" for
7242 translation.
7243 * c-pretty-print.c (pp_c_ws_string): New.
7244 (pp_c_cv_qualifier, pp_c_type_specifier,
7245 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
7246 pp_c_storage_class_specifier, pp_c_function_specifier,
7247 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
7248 pp_c_primary_expression, pp_c_postfix_expression,
7249 pp_c_unary_expression, pp_c_shift_expression,
7250 pp_c_relational_expression, pp_c_equality_expression,
7251 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
7252 use pp_string and pp_c_ws_string in place of pp_identifier and
7253 pp_c_identifier for non-identifiers. Mark English strings for
7254 translation.
7255 * c-pretty-print.h (pp_c_ws_string): Declare.
7256
8271b966 72572009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
7258 Roland McGrath <roland@redhat.com>
7259
0ec7bfcd 7260 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
8271b966 7261 (ENABLE_LD_BUILDID): New configuration option.
7262 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
7263 (LINK_BUILDID_SPEC): New macro.
7264 (init_spec): If defined, prepend it between LINK_EH_SPEC and
7265 link_spec.
7266 * doc/install.texi: Document --enable-linker-build-id option.
7267 * configure: Rebuild.
7268 * config.in: Rebuild.
7269
f9eddbcf 72702009-04-30 Adam Nemet <anemet@caviumnetworks.com>
7271
7272 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
7273 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
7274 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
7275 MIPS_GP_SAVE_AREA_SIZE.
7276 * config/mips/mips.c (struct mips_frame_info): Update comment
7277 before arg_pointer_offset and hard_frame_pointer_offset.
7278 (mips_compute_frame_info): Update diagram before function: to
7279 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
7280 indicate the position of frame_pointer_rtx with -fstack-protector and
7281 to show args_size. Don't allocate cprestore area for leaf functions
7282 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
7283 cprestore_size.
7284 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
7285
a1828715 72862009-04-30 Michael Matz <matz@suse.de>
7287
f9eddbcf 7288 PR tree-optimization/39955
7289 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
a1828715 7290
520196ac 72912009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
7292
7293 * ira.c (setup_cover_and_important_classes): Use safe macro
7294 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
7295 directly.
7296 * genpreds.c (write_tm_preds_h): Output suitable definition of
7297 REG_CLASS_FOR_CONSTRAINT.
7298
29d35324 72992009-04-30 Rafael Avila de Espindola <espindola@google.com>
7300
7301 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
7302 instead of an int.
7303 * bitmap.c (bitmap_descriptor): Likewise.
7304 * ggc-common.c (loc_descriptor): Likewise.
7305 * varray.c (varray_descriptor): Likewise.
7306 * vec.c (vec_descriptor): Likewise.
7307
f274e293 73082009-04-30 Eric Botcazou <ebotcazou@adacore.com>
14ca6b9a 7309
7310 * Makefile.in (dce.o): Add $(EXCEPT_H).
7311 * dce.c: Include except.h and delete redundant vector definitions.
7312 (deletable_insn_p): Return false for non-call insns that can throw
7313 if DF is running.
7314
4b673aa1 73152009-04-30 Steven Bosscher <steven@gcc.gnu.org>
7316
7317 * gcse.c (ae_gen): Remove.
7318 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
7319 and make non-static function to make it available in store-motion.c.
7320 Update call sites with search-and-replace.
7321 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
7322 extract_mentioned_regs, extract_mentioned_regs_helper,
7323 find_moveable_store, compute_store_table, load_kills_store, find_loads,
7324 store_killed_in_insn, store_killed_after, store_killed_before,
7325 build_store_vectors, insert_insn_start_basic_block, insert-store,
7326 remove_reachable_equiv_notes, replace_store_insn, delete_store,
7327 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
7328 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
7329 * store-motion.c: ...new file. Also copy data structures from gcse.c
7330 and clean up to remove parts not used by store motion.
7331 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
7332 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
7333
aca3a78f 73342009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7335
7336 PR target/38571
7337 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
7338 when optimizing for size.
7339
e5a9568a 73402009-04-30 Hans-Peter Nilsson <hp@axis.com>
7341
7342 * gcse.c (gcse_constant_p): Fix typo in last change.
7343
c2cf4a47 73442009-04-30 Rafael Avila de Espindola <espindola@google.com>
7345
7346 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
7347
c5e00404 73482009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
7349
7350 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
7351
c8b71b5d 73522009-04-29 James E. Wilson <wilson@codesourcery.com>
7353
7354 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
7355 CONST_HIGH_PART result.
7356
ebdd0478 73572009-04-29 Anatoly Sokolov <aesok@post.ru>
7358
7359 * config/avr/avr.c (initial_elimination_offset): Rename to
7360 avr_initial_elimination_offset.
7361 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
7362 change return type to bool.
7363 (avr_can_eliminate): New function.
7364 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
7365 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
7366 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
1cae7fd7 7367 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
ebdd0478 7368 avr_initial_elimination_offset.
7369 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
7370 (avr_initial_elimination_offset): Define.
7371
225e5f6f 73722009-04-29 Eric Botcazou <ebotcazou@adacore.com>
0ec7bfcd 7373 Steven Bosscher <steven@gcc.gnu.org>
225e5f6f 7374
7375 PR rtl-optimization/39938
7376 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
7377 * cfgrtl.c: Include insn-attr.h.
7378 (rest_of_pass_free_cfg): New function.
7379 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
7380 * resource.c (init_resource_info): Remove call to df_analyze.
7381
db7bc493 73822009-04-29 Richard Guenther <rguenther@suse.de>
7383
7384 PR target/39943
7385 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
7386 allow conversion to signed integers.
7387
8f93c289 73882009-04-29 Richard Guenther <rguenther@suse.de>
7389
7390 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
7391 shifts of floating point vectors if the shift amount is
7392 a constant multiple of the element size.
7393
4ef1170b 73942009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
7395 Michael Matz <matz@suse.de>
7396
7397 PR middle-end/39927
7398 PR bootstrap/39929
7399 * tree-outof-ssa.c (emit_partition_copy): New function.
7400 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7401 insert_part_to_rtx_on_edge): Perform the partition base var
7402 copy using emit_partition_copy.
7403 (insert_value_copy_on_edge): Convert constants to the right mode.
7404 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
7405 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
7406
8c7abb6c 74072009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7408
7409 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
7410 scan backwards to try to find a constant to initialize it.
7411
82adee25 7412 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
7413 insn before the loop_end instruction, don't look past labels.
7414
7b705d94 74152009-04-29 Richard Guenther <rguenther@suse.de>
7416
7417 PR middle-end/39937
7418 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
7419 loose type conversions.
7420 (forward_propagate_addr_expr): Fix tuplification bug. Remove
7421 stmts only if there are no uses of its definition.
7422
0fead507 74232009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7424
7425 * config/bfin/bfin.h (splitting_loops): Declare.
7426 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
7427 Reorder bit definitions to be ascending.
7428 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
7429 * config/bfin/bfin.c (splitting_loops): New variable.
7430 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
7431 (struct loop_info): Remove members INIT and LOOP_INIT.
7432 (bfin_optimize_loop): Don't set them. Reorder the code that generates
0ec7bfcd 7433 the LSETUP sequence. Allow LC to be loaded from any register, but
7434 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
0fead507 7435 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
7436 set to 1.
7437 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
7438 of reload_completed.
0ec7bfcd 7439
0fead507 7440 From Jie Zhang:
7441 * config/bfin/bfin.md (movsi_insn): Refine constraints.
7442
e8ad34e4 74432009-04-29 Rafael Avila de Espindola <espindola@google.com>
7444
7445 * Makefile.in (PLUGIN_VERSION_H): New.
7446 (OBJS-common): Remove plugin-version.o.
7447 (plugin.o): Depend on (PLUGIN_VERSION_H).
7448 (plugin-version.o): Remove.
7449 * configure: Regenerate
7450 * configure.ac: Create plugin-version.h.
7451 * gcc-plugin.h (plugin_gcc_version): Remove.
7452 (plugin_default_version_check): Change signature.
7453 * plugin-version.c: Remove.
7454 * plugin.c: Include plugin-version.h.
7455 (str_plugin_gcc_version_name): Remove.
7456 (try_init_one_plugin): Pass gcc version to plugin_init.
7457 (plugin_default_version_check): Both gcc and plugin versions are now
7458 arguments.
7459
2a21643e 74602009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7461
7462 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
7463 problematic last insns. Test for TYPE_CALL rather than CALL_P.
0ec7bfcd 7464 Remove special case testing for last insn of inner loops. Don't fail
7465 if the loop ends with a jump, emit an extra nop instead.
2a21643e 7466
101deac5 7467 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
7468 DREGS rather than comparing directly. Remove code that tries to
7469 account for latencies.
7470
86cf57b9 74712009-04-29 Richard Guenther <rguenther@suse.de>
7472
7473 PR tree-optimization/39941
7474 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
7475 eliminating an indirect call.
7476
b898ce29 74772009-04-29 Richard Guenther <rguenther@suse.de>
7478
7479 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
7480 parameter. Allow invariants as base if !require_lvalue.
7481 (verify_gimple_assign_single): Adjust.
7482
901bfd0a 74832009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7484
7485 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
7486 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
0ec7bfcd 7487 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
7488 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
901bfd0a 7489 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
7490 a VEC_SELECT.
0ec7bfcd 7491 * config/bfin/bfin.c (bfin_expand_builtin,
7492 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
901bfd0a 7493
f1a47479 74942009-04-28 Richard Guenther <rguenther@suse.de>
7495
7496 * tree-vect-loop.c (get_initial_def_for_induction): Use
7497 correct types for pointer increment.
7498
660b6c15 74992009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7500
7501 * toplev.c (print_version): Update GMP version string calculation.
7502
79f40f20 75032009-04-28 Eric Botcazou <ebotcazou@adacore.com>
7504
7505 PR rtl-optimization/39938
7506 * resource.c (init_resource_info): Add call to df_analyze.
7507
afba4ec8 75082009-04-28 Uros Bizjak <ubizjak@gmail.com>
7509
7510 * config/alpha/alpha.md (usegp): Cast the result of
7511 alpha_find_lo_sum_using_gp to enum attr_usegp.
7512 * config/alpha/alpha.c (override_options): Remove end-of-structure
7513 marker element from cpu_table. Use array size of cpu_table to handle
7514 -mcpu and -mtune options.
7515 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
7516
cf61fe8d 75172009-04-28 Joseph Myers <joseph@codesourcery.com>
7518
7519 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
7520 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
7521 tune_32 and tune_64.
7522 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
7523 support on PowerPC.
7524 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
7525 * config/rs6000/option-defaults.h: ... here. New file.
7526 (OPT_64, OPT_32): Define.
7527 (MASK_64BIT): Define to 0 if not already defined.
7528 (OPT_ARCH64, OPT_ARCH32): Define.
7529 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
7530 and tune_64.
7531
a73d7011 75322009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7533
7534 * config/arm/arm.c (arm_override_options): Emit error on using
7535 fpa with AAPCS.
7536
13506fb4 75372009-04-28 Uros Bizjak <ubizjak@gmail.com>
7538
7539 PR rtl-optimization/39914
7540 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7541 registers for allocnos created from user-defined variables only
7542 when not optimizing.
7543
1e5de3bd 75442009-04-28 Richard Guenther <rguenther@suse.de>
7545
7546 PR middle-end/39937
7547 * fold-const.c (fold_binary): Use distribute_real_division only
7548 on float types.
7549
43cb9222 75502009-04-28 Steve Ellcey <sje@cup.hp.com>
7551
7552 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
7553 add hpux-stdint.h to tm_file.
7554 (hppa[12]*-*-hpux11*): Ditto.
7555 (ia64*-*-hpux*): Ditto.
7556 * config/hpux-stdint.h: New.
943327c1 7557 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
43cb9222 7558 __STDC_EXT__ for all compiles.
943327c1 7559 * config/pa/pa-hpux.h: Ditto.
7560 * config/pa/pa-hpux10.h: Ditto.
7561 * config/pa/pa-hpux11.h: Ditto.
43cb9222 7562
029529e6 75632009-04-28 Catherine Moore <clm@codesourcery.com>
7564
7565 * debug.h (set_name): Add comment.
7566
e5d1687d 75672009-04-28 Andrew Pinski <pinskia@gmail.com>
7568
7569 PR target/39929
7570 * config/darwin.c (machopic_gen_offset): Check
7571 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
7572 * config/arm/arm.c (require_pic_register): Likewise.
7573
a0388eef 75742009-04-28 Paolo Bonzini <bonzini@gnu.org>
7575
afba4ec8 7576 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
7577 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
7578 m32c_promote_prototypes): Delete.
a0388eef 7579
bffc9f73 75802009-04-28 Michael Matz <matz@suse.de>
7581
7582 PR middle-end/39922
7583 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
7584 constants.
7585
d716274d 75862009-04-28 Richard Guenther <rguenther@suse.de>
7587
13506fb4 7588 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
d716274d 7589
d6539baf 75902009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7591
7592 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
7593 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
7594 * config/arm/arm-tune.md: Regenerate.
7595
df6266b9 75962009-04-28 Alexander Monakov <amonakov@ispras.ru>
943327c1 7597
df6266b9 7598 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
7599 block if there are complex incoming edges.
7600 (sel_merge_blocks): Remove useless assert.
7601 (sel_redirect_edge_and_branch): Check that edge was redirected.
7602 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
7603 (sel_find_rgns): Delete declaration.
7604 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
7605 the region when it is not a preheader.
7606
a0c94741 76072009-04-28 Uros Bizjak <ubizjak@gmail.com>
7608
7609 PR c/39323
7610 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
7611
f003f9fd 76122009-04-28 Richard Guenther <rguenther@suse.de>
7613
7614 * tree.h (SSA_NAME_VALUE): Remove.
7615 (struct tree_ssa_name): Remove value_handle member.
7616 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
7617 array for jump threading.
7618 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
7619 SSA_NAME_VALUEs.
7620 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
7621 * tree-flow.h (threadedge_initialize_values): Declare.
7622 (threadedge_finalize_values): Likewise.
7623 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
7624 (SSA_NAME_VALUE): Define.
7625 (threadedge_initialize_values): New function.
7626 (threadedge_finalize_values): Likewise.
7627 * tree-ssa-dom.c (ssa_name_values): New global variable.
7628 (SSA_NAME_VALUE): Define.
13506fb4 7629 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
f003f9fd 7630
f083cd24 76312009-04-28 Ira Rosen <irar@il.ibm.com>
7632
7633 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
7634 Use REPORT_VECTORIZED_LOCATIONS instead
7635 REPORT_VECTORIZED_LOOPS.
7636 * tree-vectorizer.c (vect_verbosity_level): Make static.
7637 (vect_loop_location): Rename to vect_location.
7638 (vect_set_verbosity_level): Update comment.
7639 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
7640 and vect_location.
7641 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
7642 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
7643 instead REPORT_UNVECTORIZED_LOOPS.
6ca2db76 7644 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
7645 and vect_loop_def to vect_external_def and vect_internal_def.
f083cd24 7646 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
a0c94741 7647 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
f083cd24 7648 REPORT_UNVECTORIZED_LOCATIONS.
7649 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
7650 and vect_used_in_loop and to vect_unused_in_scope and
7651 vect_used_in_scope.
7652 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
7653 (vect_verbosity_level): Remove declaration.
7654 (vect_analyze_operations): Likewise.
7655 (vect_analyze_stmt): Declare.
7656 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
7657 REPORT_UNVECTORIZED_LOCATIONS.
7658 (vect_get_loop_niters): Fix indentation.
7659 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
7660 (vect_analyze_loop_operations): New function.
7661 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
7662 vect_analyze_operations.
7663 (vect_is_simple_reduction): Use new names.
7664 (vectorizable_live_operation, vect_transform_loop): Likewise.
6ca2db76 7665 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
7666 to specify whether the data references can be a part of interleaving
7667 chain.
f083cd24 7668 (vect_analyze_data_ref_dependence): Use new names.
7669 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
7670 (vect_create_addr_base_for_vector_ref): Remove redundant code.
7671 * tree-vect-patterns.c (widened_name_p): Use new names.
7672 (vect_recog_dot_prod_pattern): Likewise.
7673 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
7674 (process_use, vect_mark_stmts_to_be_vectorized,
7675 vect_model_simple_cost, vect_model_store_cost,
7676 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
7677 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
7678 vectorizable_operation, vectorizable_type_demotion,
7679 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
7680 vectorizable_condition): Likewise.
7681 (vect_analyze_operations): Split into vect_analyze_loop_operations
7682 and ...
7683 (vect_analyze_stmt): ... new function.
7684 (new_stmt_vec_info): Use new names.
7685 (vect_is_simple_use): Use new names and fix comment.
7686 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
7687 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
7688
f1689c28 76892009-04-28 Uros Bizjak <ubizjak@gmail.com>
7690
7691 PR target/39911
7692 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
7693 and integer modes for x87 operands. Do not ICE for unsupported size,
7694 generate error instead. Generate error for unsupported operand types.
7695 ['z']: Do not handle HImode memory operands specially. Warning
7696 for floating-point operands. Fallthru to 'Z' for unsupported operand
7697 types. Do not ICE for unsupported size, generate error instead.
7698 (output_387_binary_op): Use %Z to output operands.
7699 (output_fp_compare): Ditto.
7700 (output_387_reg_move): Ditto.
7701
1f63a7d6 77022009-04-28 Ben Elliston <bje@au.ibm.com>
7703
7704 PR c++/35652
7705 Revert:
7706
7707 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7708
7709 * builtins.c (c_strlen): Do not warn here.
7710 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7711 * c-common.c (pointer_int_sum): Take an explicit location.
7712 Warn about offsets out of bounds.
7713 * c-common.h (pointer_int_sum): Adjust declaration.
7714
bc620c5c 77152009-04-27 Ian Lance Taylor <iant@google.com>
7716
7717 * collect2.c (is_ctor_dtor): Change type of ret field in struct
7718 names to symkind.
7719 * dce.c (run_fast_df_dce): Change type of old_flags to int.
7720 * df-core.c (df_set_flags): Change return type to int. Change
7721 type of old_flags to int.
7722 (df_clear_flags): Likewise.
7723 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
7724 (df_get_conditional_uses): Likewise.
7725 * df.h (df_set_flags, df_clear_flags): Update declarations.
7726 * dwarf2out.c (struct indirect_string_node): Change type of form
7727 field to enum dwarf_form.
7728 (AT_string_form): Change return type to enum dwarf_form.
7729 * fixed-value.c (fixed_compare): Add cast to enum type.
7730 * fwprop.c (update_df): Change 0 to VOIDmode.
7731 * gensupport.c: Change 0 to UNKNOWN.
7732 * gimple.h (gimple_cond_code): Add cast to enum type.
7733 * haifa-sched.c (reemit_notes): Add cast to enum type.
7734 * hooks.c (hook_int_void_no_regs): Remove function.
7735 * hooks.h (hook_int_void_no_regs): Remove declaration.
7736 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
a0c94741 7737 * predict.c (combine_predictions_for_insn): Add casts to enum type.
bc620c5c 7738 * real.c (real_arithmetic): Add cast to enum type.
7739 (real_compare): Likewise.
7740 * target.h (struct gcc_target): Change return type of
7741 branch_target_register_class to enum reg_class.
7742 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
7743 default_branch_target_register_class.
a0c94741 7744 * targhooks.c (default_branch_target_register_class): New function.
bc620c5c 7745 * targhooks.h (default_branch_target_register_class): Declare.
a0c94741 7746 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
bc620c5c 7747 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
7748 cast to int.
7749 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
7750 ERROR_MARK.
7751 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
7752 vect_uninitialized_def. Change 0 to ERROR_MARK.
7753 * tree-vect-stmts.c (supportable_widening_operation): Don't
7754 initialize icode1 and icode2.
a0c94741 7755 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
bc620c5c 7756 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
7757 and to STD_C89.
7758 (cmn_err_flag_specs): Change 0 to STD_C89.
7759 (cmn_err_char_table): Likewise.
7760 * config/arm/arm.c (get_arm_condition_code): Change type of code
7761 to enum arm_cond_code.
7762 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
7763 (IWMMXT_BUILTIN2): Likewise.
7764 (neon_builtin_type_bits): Don't define typedef.
7765 (neon_builtin_datum): Change type of bits field to int.
7766 (arm_expand_neon_args): Add cast to enum type.
7767 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
7768 TLS_MODEL_NONE.
7769 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
7770 casts to enum type.
7771 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
7772 MIPS_FP_COND_f.
7773 * config/mips/mips.md (jal_macro): Return enum constant.
7774 (single_insn): Likewise.
7775 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
7776 CODE_FOR_nothing.
7777 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7778 casts to enum type.
7779 * config/s390/s390.c (s390_tune_flags): Change type to int.
7780 (s390_arch_flags): Likewise.
a0c94741 7781 (s390_handle_arch_option): Change flags field of struct pta to int.
bc620c5c 7782 * config/s390/s390.h (s390_tune_flags): Update declaration.
7783 (s390_arch_flags): Likewise.
7784 * config/sh/sh.c (prepare_move_operands): Compare
7785 tls_symbolic_operand result with enum constant.
7786 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
7787 (sh_expand_prologue): Add cast to enum type.
7788 (sh_expand_epilogue): Likewise.
7789 (tls_symbolic_operand): Change return type to enum tls_model.
7790 (fpscr_set_from_mem): Add cast to enum type.
7791 (legitimize_pic_address): Compare tls_symbolic_operand result with
7792 enum constant.
7793 (sh_target_reg_class): Change return type to enum reg_class.
7794 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
7795 PROCESSOR_xxx.
a0c94741 7796 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
7797 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
bc620c5c 7798 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
7799 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
7800 (delayed_branch, tls_call_delay): Likewise.
7801 (eligible_for_sibcall_delay): Likewise.
7802 (eligible_for_return_delay): Likewise.
7803 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
7804 (spu_expand_builtin_1): Likewise.
7805
7806 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
7807 for all types of conversions.
7808 (output_init_element): Issue -Wc++-compat warning if needed when
7809 initializing a bitfield with enum type.
7810 * c-parser.c (c_parser_expression): Set original_type to
7811 original_type of right hand operand of comman operator.
7812
68576faf 78132009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7814
7815 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
7816 grammar nits.
a0c94741 7817 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
68576faf 7818 * doc/cpp.texi (Standard Predefined Macros)
7819 (Implementation-defined behavior): Likewise.
a0c94741 7820 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
68576faf 7821 * doc/gimple.texi (GIMPLE Exception Handling)
7822 (@code{GIMPLE_ASSIGN}): Likewise.
a0c94741 7823 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
68576faf 7824 * doc/invoke.texi (Warning Options, Optimize Options)
7825 (AVR Options, Darwin Options): Likewise.
7826 (Optimize Options): Reformulate -fwhole-program description.
7827 * doc/loop.texi (Lambda): Likewise.
7828 * doc/md.texi (Output Template, Define Constraints)
7829 (Standard Names, Insn Splitting): Likewise.
7830 * doc/options.texi (Option properties): Likewise.
7831 * doc/passes.texi (Tree-SSA passes): Likewise.
7832 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
7833 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
7834 (File Names and DBX): Likewise.
7835 * doc/trouble.texi (Incompatibilities): Likewise.
7836
ade56658 78372009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
8f1d58ad 7838
7839 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
7840 instruction is correct.
7841
ade56658 78422009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
56c7bfc2 7843
7844 Allow non-constant arguments to conversion intrinsics.
7845 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
7846 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
7847 * spu.c (print_operand): Handle 'v' and 'w'.
7848 (exp2_immediate_p, spu_gen_exp2): Define.
7849 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
7850 spu_convtf_1): Update parameter descriptions.
a0c94741 7851 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
56c7bfc2 7852 * constraints.md ('v', 'w'): New.
7853 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
7854 Remove.
7855 (i2f, I2F): New define_mode_attr.
7856 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
7857 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
7858 fixuns_truncv4sfv4si2): Update to use mode attribute.
7859 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
7860 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
7861 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
7862 patterns for combine.
7863
d743aba2 78642009-04-27 Steven Bosscher <steven@gcc.gnu.org>
7865
7866 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
7867 (cprop, hoist, pre, store_motion): New debug counters.
7868 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
7869 is not an RTL pass anymore.
7870 (pass_profiling): Remove extern decl for pass removed in 2005.
7871 (pass_gcse, pass_jump_bypass): Remove.
7872 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
7873 to 0 for clean state.
7874 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
7875 * cse.c (gate_handle_cse_after_global_opts,
7876 rest_of_handle_cse_after_global_opts): New functions.
7877 (pass_cse_after_global_opts): New pass, does local CSE.
7878 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
7879 (TV_CPROP): New timevar.
7880 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
7881 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
7882 (gcse_main, recompute_all_luids): Remove.
7883 (compute_hash_table_work): Call max_reg_num instead of reading
7884 max_gcse_regno.
7885 (cprop_jump): Don't set run_jump_opt_after_gcse.
7886 (constprop_register): Always allow to alter jumps.
7887 (cprop_insn): Likewise.
7888 (do_local_cprop): Likewise.
7889 (local_cprop_pass): Likewise. Return non-zero if something changed.
7890 (cprop): Remove function, fold interesting bits into one_cprop_pass.
7891 (find_implicit_sets): Add note about missed optimization opportunity.
7892 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
7893 pass_rtl_cprop execute function.
7894 Don't bother tracking the pass number, each pass gets its own dumpfile
7895 now anyway.
7896 Always allow to alter jumpsand bypass jumps.
7897 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
7898 will just find no suitable set.
7899 (pre_edge_insert): Fix dumping, this function is for PRE only.
7900 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
7901 pass_rtl_pre execute function.
7902 (hoist_code): Return non-zero if something changed. Keep track of
7903 substitutions and insertions for statistics gathering similar to PRE.
7904 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
7905 called from the pass_rtl_hoist execute function. Show pass statistics.
7906 (compute_store_table): Use max_reg_num directly instead of using the
7907 formerly global max_gcse_regno.
7908 (build_store_vectors): Likewise.
7909 (replace_store_insn): Fix dumping.
7910 (store_motion): Rename to ...
7911 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
7912 pass, called from the pass_rtl_store_motion execute function. Keep
7913 track of substitutions and insertions for statistics gathering similar
7914 to PRE.
7915 (bypass_jumps): Remove, fold interesting bits into ...
7916 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
7917 from the pass_rtl_cprop execute function.
7918 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
7919 pass_jump_bypass): Remove.
7920 (gate_handle_gcse, rest_of_handle_gcse): Remove.
7921 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
7922 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
7923 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
7924 (gate_rtl_store_motion, execute_rtl_store_motion,
7925 pass_rtl_store_motion): New.
7926 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
7927 make it clear that -fcse-skip-blocks is a no-op for backward compat.
7928 * passes.c (init_optimization_passes): Remove pass_gcse and
7929 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
7930 and cse_after_global_opts in place of pass_gcse. Schedule cprop
7931 instead of pass_jump_bypass.
7932
fd3f8d70 79332009-04-27 Richard Guenther <rguenther@suse.de>
7934
7935 PR middle-end/39928
7936 * gimplify.c (gimplify_expr): If we are required to create
7937 a temporary make sure it ends up as register.
7938
dd430c78 79392009-04-27 H.J. Lu <hongjiu.lu@intel.com>
7940
7941 PR target/39903
7942 * config/i386/i386.c (construct_container): Don't call
7943 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
7944 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
7945
dfdbf3fd 79462009-04-27 Michael Matz <matz@suse.de>
7947
7948 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
7949 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
7950 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
7951 (dump_replaceable_exprs): Take a bitmap.
7952 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
7953 array.
7954 (expand_gimple_basic_block): Likewise.
7955 * tree-ssa-ter.c (struct temp_expr_table_d): Make
7956 replaceable_expressions member a bitmap.
7957 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
7958 (mark_replaceable): Likewise.
7959 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
7960 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
7961
ae2a9b00 79622009-04-27 Richard Guenther <rguenther@suse.de>
7963
7964 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
7965 (verify_stmts): Dispatch to gimple/type verification code.
7966 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
7967 issue with call argument types.
7968
3cac7f65 79692009-04-27 Michael Matz <matz@suse.de>
7970
7971 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
7972 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
7973 to above.
7974
075f6052 79752009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
afba4ec8 7976 Eric Botcazou <ebotcazou@adacore.com>
075f6052 7977
7978 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
7979 a label's basic block.
7980 (mark_target_live_regs): Tidy and rework obsolete comments.
7981 Change back DF problem to LIVE. If a label starts a basic block,
7982 assume that all registers that used to be live then still are.
7983 (init_resource_info): If a label starts a basic block, set its
7984 BLOCK_FOR_INSN accordingly.
7985 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
7986
ca80ffc8 79872009-04-27 Richard Guenther <rguenther@suse.de>
7988
7989 * tree-flow-inline.h (function_ann): Remove.
7990 (get_function_ann): Likewise.
7991 * tree-dfa.c (create_function_ann): Remove.
7992 * tree-flow.h (struct static_var_ann_d): Remove.
7993 (struct function_ann_d): Likewise.
7994 (union tree_ann_d): Remove fdecl member.
7995 (function_ann_t): Remove.
7996 (function_ann, get_function_ann, create_function_ann): Remove
7997 declarations.
7998
ff8e23a2 79992009-04-27 Uros Bizjak <ubizjak@gmail.com>
8000
8001 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
8002
df9b545b 80032009-04-27 Jan Hubicka <jh@suse.cz>
8004
8005 * ipa-pure-const.c (struct funct_state_d): New fields
8006 state_previously_known, looping_previously_known; remove
8007 state_set_in_source.
8008 (analyze_function): Use new fields.
8009 (propagate): Avoid assumption that state_set_in_source imply
8010 nonlooping.
8011
8012 * tree-ssa-loop-niter.c (finite_loop_p): New function.
8013 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
8014 * cfgloop.h (finite_loop_p): Declare.
8015
5cc6fc7d 80162009-04-26 Michael Matz <matz@suse.de>
8017
ff8e23a2 8018 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
5cc6fc7d 8019
96c15164 80202009-04-26 Michael Matz <matz@suse.de>
8021
8022 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
8023 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
8024 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
8025 pass_mark_used_blocks): Remove.
8026 * tree-optimize.c (pass_free_datastructures,
8027 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
8028 * passes.c (init_optimization_passes): Don't call
8029 pass_mark_used_blocks, remove dead code.
8030
4bbd1d82 80312009-04-26 H.J. Lu <hongjiu.lu@intel.com>
8032
8033 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
8034 * tree-ssa-live.h (register_ssa_partition): Likewise.
8035
a8dd994c 80362009-04-26 Michael Matz <matz@suse.de>
8037
8038 Expand from SSA.
8039 * builtins.c (fold_builtin_next_arg): Handle SSA names.
8040 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
8041 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
8042 SSA names.
8043 (compare_pairs): Swap cost comparison.
8044 (coalesce_ssa_name): Don't use change_partition_var.
8045 * tree-nrv.c (struct nrv_data): Add modified member.
8046 (finalize_nrv_r): Set it.
8047 (tree_nrv): Use it to update statements.
8048 (pass_nrv): Require PROP_ssa.
8049 * tree-mudflap.c (mf_decl_cache_locals,
8050 mf_build_check_statement_for): Use make_rename_temp.
8051 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
8052 * alias.c (find_base_decl): Handle SSA names.
8053 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
8054 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
8055 * rtl.h (set_reg_attrs_for_parm): Declare.
8056 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
8057 to "optimized", remove unused locals at finish.
8058 (execute_free_datastructures): Make global, call
8059 delete_tree_cfg_annotations.
8060 (execute_free_cfg_annotations): Don't call
8061 delete_tree_cfg_annotations.
8062
8063 * ssaexpand.h: New file.
8064 * expr.c (toplevel): Include ssaexpand.h.
ff8e23a2 8065 (expand_assignment): Handle SSA names the same as register variables.
a8dd994c 8066 (expand_expr_real_1): Expand SSA names.
8067 * cfgexpand.c (toplevel): Include ssaexpand.h.
8068 (SA): New global variable.
8069 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
8070 (SSAVAR): New macro.
8071 (set_rtl): New helper function.
8072 (add_stack_var): Deal with SSA names, use set_rtl.
8073 (expand_one_stack_var_at): Likewise.
8074 (expand_one_stack_var): Deal with SSA names.
8075 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
8076 before unique numbers.
8077 (expand_stack_vars): Use set_rtl.
8078 (expand_one_var): Accept SSA names, add asserts for them, feed them
8079 to above subroutines.
8080 (expand_used_vars): Expand all partitions (without default defs),
8081 then only the local decls (ignoring those expanded already).
8082 (expand_gimple_cond): Remove edges when jumpif() expands an
8083 unconditional jump.
8084 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
8085 or remove abnormal edges. Ignore insns setting the LHS of a TERed
8086 SSA name.
8087 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
8088 members of SA; deal with PARM_DECL partitions here; expand
8089 all PHI nodes, free tree datastructures and SA. Commit instructions
8090 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
8091 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
8092 info and statements at start, collect garbage at finish.
8093 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
8094 (VAR_ANN_PARTITION) Remove.
8095 (change_partition_var): Don't declare.
8096 (partition_to_var): Always return SSA names.
8097 (var_to_partition): Only accept SSA names.
8098 (register_ssa_partition): Only check argument.
8099 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
8100 member.
8101 (delete_var_map): Don't free it.
8102 (var_union): Only accept SSA names, simplify.
8103 (partition_view_init): Mark only useful SSA names as used.
8104 (partition_view_fini): Only deal with SSA names.
8105 (change_partition_var): Remove.
8106 (dump_var_map): Use ssa_name instead of partition_to_var member.
8107 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
8108 basic blocks.
8109 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
8110 (struct _elim_graph): New member const_dests; nodes member vector of
8111 ints.
8112 (set_location_for_edge): New static helper.
8113 (create_temp): Remove.
8114 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
ff8e23a2 8115 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
a8dd994c 8116 (new_elim_graph): Allocate const_dests member.
8117 (clean_elim_graph): Truncate const_dests member.
8118 (delete_elim_graph): Free const_dests member.
8119 (elim_graph_size): Adapt to new type of nodes member.
8120 (elim_graph_add_node): Likewise.
8121 (eliminate_name): Likewise.
8122 (eliminate_build): Don't take basic block argument, deal only with
8123 partition numbers, not variables.
8124 (get_temp_reg): New static helper.
8125 (elim_create): Use it, deal with RTL temporaries instead of trees.
8126 (eliminate_phi): Adjust all calls to new signature.
8127 (assign_vars, replace_use_variable, replace_def_variable): Remove.
8128 (rewrite_trees): Only do checking.
8129 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
8130 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
8131 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
8132 contains_tree_r, MAX_STMTS_IN_LATCH,
8133 process_single_block_loop_latch, analyze_edges_for_bb,
8134 perform_edge_inserts): Remove.
8135 (expand_phi_nodes): New global function.
8136 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
8137 functions, initialize new parameter, remember partitions having a
8138 default def.
8139 (finish_out_of_ssa): New global function.
8140 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
8141 don't reset in_ssa_p here, don't disable TER when mudflap.
8142 (pass_del_ssa): Remove.
8143 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
8144 partition members.
8145 (execute_free_datastructures): Declare.
8146 * Makefile.in (SSAEXPAND_H): New variable.
8147 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
8148 * basic-block.h (commit_one_edge_insertion): Declare.
8149 * passes.c (init_optimization_passes): Move pass_nrv and
8150 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
8151 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
8152 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
8153 (redirect_branch_edge): Deal with super block when expanding, split
8154 out jump patching itself into ...
8155 (patch_jump_insn): ... here, new static helper.
8156
0d3f8fd5 81572009-04-26 Michael Matz <matz@suse.de>
8158
8159 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
8160 beyond num_ssa_names.
8161 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
8162 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
8163
a1d07e97 81642009-04-26 Jakub Jelinek <jakub@redhat.com>
8165
abe2d6dd 8166 PR inline-asm/39543
8167 * fwprop.c (forward_propagate_asm): New function.
8168 (forward_propagate_and_simplify): Propagate also into __asm, if it
8169 doesn't increase the number of referenced registers.
8170
a1d07e97 8171 PR c/39889
8172 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
8173
81742009-04-26 Jakub Jelinek <jakub@redhat.com>
9579733e 8175
8176 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
8177 note_nonlocal_vla_type for nonlocal VLAs.
8178 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
8179 contains_remapped_vars, remap_vla_decls): New functions.
8180 (convert_nonlocal_reference_stmt): If not optimizing, call
8181 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
8182 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
8183 if it wasn't found in var_map.
8184 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
8185 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
8186 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
8187 declare_vars.
8188 * gimplify.c (nonlocal_vlas): New variable.
8189 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
8190 referenced VLAs.
8191 (gimplify_body): Create and destroy nonlocal_vlas.
1095d222 8192
1938132c 8193 * dwarf2out.c (loc_descr_plus_const): New function.
8194 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
8195 mem_loc_descriptor, loc_descriptor_from_tree_1,
8196 descr_info_loc, gen_variable_die): Use it.
8197
1095d222 8198 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
8199 !TREE_STATIC VAR_DECLs.
8200 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
8201 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
8202 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
8203 DECL_BY_REFERENCE is valid.
8204 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
8205 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
8206 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
8207 Copy DECL_BY_REFERENCE.
8208 (struct nesting_copy_body_data): New type.
8209 (nesting_copy_decl): New function.
8210 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
8211 if they have variable length.
8212
62bd61dd 82132009-04-26 Michael Matz <matz@suse.de>
8214
8215 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
8216 mark new temporaries for renaming.
8217
7fc1e5fb 82182009-04-26 Joseph Myers <joseph@codesourcery.com>
8219
8220 PR c/39581
8221 * c-decl.c (global_bindings_p): Return negative value.
8222 (c_variable_size): New. Based on variable_size from
8223 stor-layout.c.
8224 (grokdeclarator): Call c_variable_size not variable_size.
8225
cfc43899 82262009-04-26 Uros Bizjak <ubizjak@gmail.com>
8227
8228 * config/i386/i386.c (print_operand) ['z']: Fix typo.
8229
4d63ce54 82302009-04-26 Kai Tietz <kai.tietz@onevision.com>
8231
8232 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
8233 Redefine it to just use mingw/include.
8234 (ASM_SPEC): Rules for -m32 and -m64.
8235 (LINK_SPEC): Use Likewise.
8236 (SPEC_32): New define.
8237 (SPEC_64): Likewise.
8238 (SUB_LINK_SPEC): Likewise.
8239 (MULTILIB_DEFAULTS): New define.
8240 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
8241 Add multilib options.
8242 (MULTILIB_DIRNAMES): Likewise.
8243 (MULTILIB_OSDIRNAMES): Likewise.
8244 (LIBGCC): Likewise.
8245 (INSTALL_LIBGCC): Likewise.
8246
551ed71a 82472009-04-26 Joseph Myers <joseph@codesourcery.com>
8248
8249 PR c/39556
8250 * c-tree.h (enum c_inline_static_type): New.
8251 (record_inline_static): Declare.
8252 * c-decl.c (struct c_inline_static, c_inline_statics,
8253 record_inline_static, check_inline_statics): New.
8254 (pop_file_scope): Call check_inline_statics.
8255 (start_decl): Call record_inline_static instead of pedwarning
8256 directly for static in inline function.
8257 * c-typeck.c (build_external_ref): Call record_inline_static
8258 instead of pedwarning directly for static referenced in inline
8259 function.
8260
2e81afe5 82612009-04-26 Steven Bosscher <steven@gcc.gnu.org>
8262
8263 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
8264 not new but only being rescanned.
8265 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
8266 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
8267 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
8268 record_set_info, compute_set, grealloc): Remove.
8269 (recompute_all_luids): New function.
8270 (gcse_main): Don't compute sets, and don't do related memory
8271 allocations/free-ing. If something changed before the end of the
8272 pass, update LUIDs using recompute_all_luids.
8273 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
8274 (free_gcse_mem): Don't free it either.
8275 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
8276 Use the df insn LUIDs.
8277 (load_killed_in_block): Likewise.
8278 (compute_hash_table_work): Don't compute reg_set_in_block.
8279 (compute_transp): Use DF_REG_DEF_CHAINs.
8280 (local_cprop_pass): Don't use compute_sets and related functions.
8281 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
8282 Use get_max_uid() instead of max_cuid.
8283 (insert_insn_end_basic_block, pre_insert_copy_insn,
8284 update_ld_motion_stores): Don't try to
8285 keep reg_set tables up to date.
8286 (pre_insert_copies): Use df insn LUIDs.
8287 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
8288 (reg_set_info): Don't use extra bitmap argument.
8289 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
8290 information to compute regs_set_in_block.
8291 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
8292 (bypass_jumps): Don't use compute_sets and friends.
8293
b099e703 82942009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8295
8296 PR testsuite/39710
8297 * opts.c (undocumented_msg): Do not leave blank even with
8298 ENABLE_CHECKING.
8299
bcb531e5 83002009-04-25 Joseph Myers <joseph@codesourcery.com>
8301
8302 * c-decl.c (build_enumerator): Allow values folding to integer
8303 constants but not integer constant expressions with a pedwarn if
8304 pedantic.
8305
e8074982 83062009-04-25 Joseph Myers <joseph@codesourcery.com>
8307
8308 PR c/39582
8309 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
8310 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
8311 type is an integer constant.
8312
f047dd27 83132009-04-25 Uros Bizjak <ubizjak@gmail.com>
8314
8315 PR target/39897
8316 * config/i386/i386.c (print_operand) ['z']: Revert handling of
8317 HImode operands.
8318
1d9b9611 83192009-04-25 Joseph Myers <joseph@codesourcery.com>
8320
8321 PR c/39564
8322 * c-decl.c (grokdeclarator): Diagnose declarations of functions
8323 with variably modified return type and no storage class
8324 specifiers, except for the case of nested functions. Distinguish
8325 extern declarations of functions with variably modified return
8326 types from those of objects with variably modified types.
8327
927a6b6b 83282009-04-25 Jan Hubicka <jh@suse.cz>
8329
8330 * tree.c (list_equal_p): New function.
8331 * tree.h (list_equal_p): Declare.
8332 * coretypes.h (edge_def, edge, const_edge, basic_block_def
8333 basic_block_def, basic_block, const_basic_block): New.
8334 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
8335 (redirect_eh_edge): New function.
8336 (make_eh_edge_update_phi): EH edges are not abnormal.
8337 * except.c: Include tree-flow.h.
8338 (list_match): New function.
8339 (eh_region_replaceable_by_p): New function.
8340 (replace_region): New function.
8341 (hash_type_list): New function.
8342 (hash_eh_region): New function.
8343 (eh_regions_equal_p): New function.
8344 (merge_peers): New function.
8345 (remove_unreachable_regions): Verify EH tree when checking;
8346 merge peers.
8347 (copy_eh_region_1): New function.
8348 (copy_eh_region): New function.
8349 (push_reachable_handler): New function.
8350 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
8351 regions without label but with live RESX.
8352 * except.h (redirect_eh_edge_to_label): New.
8353 * tree-flow.h (redirect_eh_edge): New.
8354 * coretypes.h (edge_def, edge, const_edge, basic_block_def
8355 basic_block_def, basic_block, const_basic_block): Remove.
8356 * Makefile.in (except.o): Add dependency on tree-flow.h
8357 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
8358 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
8359 Remove.
8360
6a4da2cd 83612009-04-25 Eric Botcazou <ebotcazou@adacore.com>
8362
8363 PR bootstrap/39645
8364 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
8365 on the destination of memcpy.
8366
d5bfc154 83672009-04-25 Paolo Bonzini <bonzini@gnu.org>
8368
8369 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
8370 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
8371 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
8372
3d1eacdb 83732009-04-25 Jan Hubicka <jh@suse.cz>
8374
8375 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
8376 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
8377 to be reached by different label than left.
8378 (update_eh_edges): Update comment; remove edge_to_remove if possible
8379 and return true if suceeded.
8380 (cleanup_empty_eh): Accept sharing map; handle shared regions.
8381 (cleanup_eh): Compute sharing map.
8382 * except.c (remove_eh_handler_and_replace): Add argument if we should
8383 update regions.
8384 (remove_unreachable_regions): Update for label sharing.
8385 (label_to_region_map): Likewise.
8386 (get_next_region_sharing_label): New function.
8387 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
8388 prev_try pointers.
8389 (remove_eh_handler): Update.
8390 (remove_eh_region_and_replace_by_outer_of): New function.
8391 * except.h (struct eh_region): Add next_region_sharing_label.
8392 (remove_eh_region_and_replace_by_outer_of,
8393 get_next_region_sharing_label): Declare.
8394 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
8395
83962009-04-25 Jan Hubicka <jh@suse.cz>
8397
8398 * tree-cfg.c (split_critical_edges): Split also edges where we can't
8399 insert code even if they are not critical.
8400
84012009-04-25 Jan Hubicka <jh@suse.cz>
8402
8403 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8404 (gimple_can_remove_branch_p): EH edges won't remove branch by
8405 redirection.
8406 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
8407 updating of non-abnormal EH edges.
8408 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8409 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
8410 (split_critical_edges): Split also edges where emitting code on them
8411 will lead to splitting later.
8412
6cc62ffa 84132009-04-25 Uros Bizjak <ubizjak@gmail.com>
8414 H.J. Lu <hongjiu.lu@intel.com>
8415
8416 PR target/39590
8417 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
8418 the configured assembler supports fildq and fistpq mnemonics.
8419 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
8420 * configure: Regenerated.
8421 * config.in: Ditto.
8422
8423 * config/i386/i386.c (print_operand): Handle 'Z'.
8424 ['z']: Remove handling of special fild/fist suffixes.
8425 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
8426 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
8427 suffix of fild insn.
8428 (*floatsi<mode>2_vector_mixed): Ditto.
8429 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
8430 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
8431 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8432 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
8433 * config/i386/gas.h (GAS_MNEMONICS): Remove.
8434
84e907aa 84352009-04-25 Ben Elliston <bje@au.ibm.com>
8436
8437 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
8438 the source of a set operation.
8439
906bb5c3 84402009-04-25 Anatoly Sokolov <aesok@post.ru>
8441
8442 * target.h (struct gcc_target): Add case_values_threshold field.
8443 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
8444 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
8445 * targhooks.c (default_case_values_threshold): New function.
8446 * targhooks.h (default_case_values_threshold): Declare function.
8447 * stmt.c (expand_case): Use case_values_threshold target hook.
8448 * expr.h (case_values_threshold): Remove declartation.
8449 * expr.c (case_values_threshold): Remove function.
8450 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
8451
8452 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
8453 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8454 (avr_case_values_threshold): Declare as static.
8455 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
8456
8457 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
8458 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8459 (mn10300_case_values_threshold): New function.
8460
65123d77 84612009-04-24 H.J. Lu <hongjiu.lu@intel.com>
8462
8463 * ira.c (setup_cover_and_important_classes): Add enum cast.
8464
abcb15b5 84652009-04-24 Vladimir Makarov <vmakarov@redhat.com>
8466
8467 * genpreds.c (write_enum_constraint_num): Output definition of
8468 CONSTRAINT_NUM_DEFINED_P macro.
8469 * ira.c (setup_cover_and_important_classes): Use
8470 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
8471
d14bd725 84722009-04-24 DJ Delorie <dj@redhat.com>
8473
8474 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
8475 __SH2A_SINGLE_ONLY__ also.
8476
e41d35a8 84772009-04-24 Steve Ellcey <sje@cup.hp.com>
8478
8479 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
8480 (movdf_internal): Ditto.
8481 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
8482 SFmode and DFmode constants.
8483 (ia64_print_operand): Add 'G' format for printing
8484 floating point constants.
8485
458e27ec 84862009-04-24 Richard Guenther <rguenther@suse.de>
8487
8488 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
8489 from unsigned additions.
8490
88c32270 84912009-04-24 Joseph Myers <joseph@codesourcery.com>
8492
8493 * c-typeck.c (set_init_index): Allow array designators that are
8494 not integer constant expressions with a pedwarn if pedantic.
8495
c79d4a4d 84962009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
8497
8498 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
8499 zero if no overlap in nonzero bits between the operands.
8500
8458f4ca 85012009-04-24 Ian Lance Taylor <iant@google.com>
8502
8503 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
8504 (record_dead_and_set_regs): Likewise.
8505 * df.h (struct df_mw_hardreg): Change flags field to int.
8506 (struct df_base_ref): Likewise.
8507 (struct df): Change changeable_flags field to int.
8508 * df-scan.c (df_defs_record): Change clobber_flags to int.
8509 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
8510 constants rather than #define macros.
8511 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
8512 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
8513 (enum dwarf_calling_convention): Likewise.
8514 (enum dwarf_line_number_x_ops): Likewise.
8515 (enum dwarf_call_frame_info): Likewise.
8516 (enum dwarf_source_language): Likewise.
8517 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
8518 (add_calling_convention_attribute): Likewise.
6cc62ffa 8519 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
8520 (combine_comparisons): Change compcode to int. Add cast to enum type.
8458f4ca 8521 * genrecog.c (maybe_both_true_2): Change c to int.
8522 (write_switch): Likewise. Add cast to enum type.
8523 * gimplify.c (gimplify_omp_for): Handle return values from
8524 gimplify_expr using MIN rather than bitwise or.
8525 (gimplify_expr): Add cast to enum type.
8526 * ipa-prop.c (update_jump_functions_after_inlining): Change
8527 IPA_BOTTOM to IPA_JF_UNKNOWN.
6cc62ffa 8528 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
8529 Add casts to enum type.
8458f4ca 8530 (setup_cover_and_important_classes): Change cl to int. Add casts
8531 to enum type.
8532 (setup_class_translate): Change cl and mode to int.
8533 (ira_init_once): Change mode to int.
8534 (free_register_move_costs): Likewise.
8535 (setup_prohibited_mode_move_regs): Add casts to enum type.
8536 * langhooks.c (add_builtin_function_common): Rework assertion that
8537 value fits bitfield.
8538 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
8539 * omega.c (omega_do_elimination): Avoid math on enum types.
8540 * optabs.c (expand_vec_shift_expr): Remove casts to int.
8541 * opts.c (set_debug_level): Change 2 to enum constant. Use new
8542 int local to handle integral_argment value.
8543 * regmove.c (try_auto_increment): Change PUT_MODE to
8544 PUT_REG_NOTE_KIND.
8545 * reload.c (push_secondary_reload): Add casts to enum type.
8546 (secondary_reload_class, find_valid_class): Likewise.
8547 * reload1.c (emit_input_reload_insns): Likewise.
8548 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
8549 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
8550 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
8551 constant.
8552 * tree.c (build_common_builtin_nodes): Add casts to enum type.
8553 * tree-complex.c (complex_lattice_t): Typedef to int rather than
8554 enum type.
8555 (expand_complex_libcall): Add casts to enum type.
8556 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
8557 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
8558 with ERROR_MARK, not NUM_TREE_CODES.
8559 (vect_create_epilog_for_reduction): Likewise.
8560 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
6cc62ffa 8561 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
8458f4ca 8562 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
8563 enum machine_mode.
8564 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
8565 vect_unused_in_loop. Change 0 to loop_vect.
6cc62ffa 8566 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
8458f4ca 8567 * var-tracking.c (get_init_value): Change return type to enum
8568 var_init_status.
8569 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
8570 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
8571 arm_fp_model.
8572 (arm_override_options): Add casts to enum type.
8573 (arm_emit_tls_decoration): Likewise.
8574 * config/i386/i386.c (ix86_function_specific_restore): Add casts
8575 to enum type.
8576 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
8577 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
8578 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
8579 enum type.
8580 * config/s390/s390.c (code_for_builtin_64): Change to array of
8581 enum insn_code.
8582 (code_for_builtin_31): Likewise.
8583 (s390_expand_builtin): Change code_for_builtin to enum insn_code
8584 const *.
8585 * config/sparc/sparc.c (sparc_override_options): Change value
8586 field in struct code_model to enum cmodel. In initializer change
8587 0 to NULL and add cast to enum type.
8588
8589 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
8590 Change all callers. Issue a -Wc++-compat warning using
8591 lhs_origtype if necessary.
8592 (convert_for_assignment): Issue -Wc++-compat warnings about
8593 invalid conversions to enum type on assignment.
8594 * c-common.h (build_modify_expr): Update declaration.
8595
32e5e2b7 85962009-04-24 Nick Clifton <nickc@redhat.com>
8597
8598 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
8599 (function_arg_advance): Likewise.
8600 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
8601 5th alternative.
8602
99908681 86032009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
8604
8605 * config/s390/constraints.md ('I', 'J'): Fix condition.
8606
2cf7126c 86072009-04-24 Diego Novillo <dnovillo@google.com>
8608
8609 * gengtype-parse.c (parse_error): Add newline after message.
8610
e69a64d3 86112009-04-24 H.J. Lu <hongjiu.lu@intel.com>
8612
8613 * config/i386/sse.md (avxmodesuffixs): Removed.
8614 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
8615 (*avx_pinsr<ssevecsize>): This.
8616
3a40262c 86172009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
8618
8619 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
8620 follow chains of regs with a single definition, and allow expressions
8621 that are function_invariant_p.
cf36214f 8622 (simple_rhs_p): Allow expressions that are function_invariant_p.
3a40262c 8623
00211027 86242009-04-24 Paolo Bonzini <bonzini@gnu.org>
8625
8626 PR middle-end/39867
8627 * fold-const.c (fold_cond_expr_with_comparison): When folding
8628 > and >= to MAX, make sure the MAX uses the same type as the
8629 comparison's operands.
8630
8a88222e 86312009-04-24 Nick Clifton <nickc@redhat.com>
8632
8633 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
8634 addressing for DImode accesses.
8635 (frv_print_operand_address): Handle PLUS case.
6cc62ffa 8636 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8a88222e 8637
82d2c88b 86382009-04-24 Jakub Jelinek <jakub@redhat.com>
8639
8640 PR rtl-optimization/39794
8641 * alias.c (canon_true_dependence): Add x_addr argument.
8642 * rtl.h (canon_true_dependence): Adjust prototype.
8643 * cse.c (check_dependence): Adjust canon_true_dependence callers.
8644 * cselib.c (cselib_invalidate_mem): Likewise.
8645 * gcse.c (compute_transp): Likewise.
8646 * dse.c (scan_reads_nospill): Likewise.
8647 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
8648 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
8649 canon_base_addr of the group, plus optional offset.
8650 (struct group_info): Rename canon_base_mem to
8651 canon_base_addr.
8652 (get_group_info): Set canon_base_addr to canon_rtx of base, not
8653 canon_rtx of base_mem.
8654
670db79f 86552009-04-23 Paolo Bonzini <bonzini@gnu.org>
8656
8657 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8658 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
8659
c2233b46 86602009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8661
8662 * config/spu/spu-builtins.h: Delete file.
8663
8664 * config/spu/spu.h (enum spu_builtin_type): Move here from
8665 spu-builtins.h.
8666 (struct spu_builtin_description): Likewise. Add GTY marker.
8667 Do not use enum spu_function_code or enum insn_code.
8668 (spu_builtins): Add extern declaration.
8669
8670 * config/spu/spu.c: Do not include "spu-builtins.h".
8671 (enum spu_function_code, enum spu_builtin_type_index,
8672 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
8673 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
8674 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
8675 unsigned_V2DI_type_node): Move here from spu-builtins.h.
8676 (spu_builtin_types): Make static. Add GTY marker.
8677 (spu_builtins): Add extern declaration with GTY marker.
8678 Include "gt-spu.h".
8679
8680 * config/spu/spu-c.c: Do not include "spu-builtins.h".
8681 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
8682 Check programmatically whether all parameters are scalar.
8683
8684 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
8685
7fd3f504 86862009-04-23 Eric Botcazou <ebotcazou@adacore.com>
8687
8688 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
8689 assignment from the constructor either if the target is volatile.
8690
3f8fde42 86912009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
8692
8693 * config/arm/arm.md (insv): Do not share operands[0].
8694
6aa0a859 86952009-04-23 Nathan Sidwell <nathan@codesourcery.com>
8696
8697 * config/vxlib-tls.c (active_tls_threads): Delete.
8698 (delete_hook_installed): New.
8699 (tls_delete_hook): Don't delete the delete hook.
8700 (tls_destructor): Delete it here.
8701 (__gthread_set_specific): Adjust installing the delete hook.
8702 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
8703 __gthread_leave_tsd_dtor_context.
8704
4043967f 87052009-04-23 Rafael Avila de Espindola <espindola@google.com>
8706
8707 * c-format.c (gcc_tdiag_char_table): Add support for %E.
8708
0a48089c 87092009-04-23 Uros Bizjak <ubizjak@gmail.com>
8710
8711 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
8712 enum type.
8713 (alpha_rtx_costs): Ditto.
8714 (emit_unlikely_jump): Use add_reg_note.
8715 (emit_frame_store_1): Ditto.
8716 (alpha_expand_prologue): Ditto.
8717 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8718 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
8719
5027f179 87202009-04-23 Nick Clifton <nickc@redhat.com>
8721
8722 * config/v850/v850.md (epilogue): Remove suppressed code.
8723 (return): Rename to return_simple and remove test of frame size.
8724 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
8725 to gen_return_simple.
8726
f7eacde3 87272009-04-22 Jing Yu <jingyu@google.com>
8728
8729 PR testsuite/39781
8730 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
8731
415528ef 87322009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
8733
8734 PR C/31499
8735 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
8736 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
8737 value is a VECTOR_CST, the element type is the element type of the
8738 vector.
8739
146d70e9 87402009-04-22 DJ Delorie <dj@redhat.com>
8741
8742 * config/m32c/m32c.h: Update GTY annotations to new syntax.
8743
a7cf5bbf 87442009-04-22 Jakub Jelinek <jakub@redhat.com>
8745
8746 * alias.c (find_base_term): Move around LO_SUM case, so that
8747 CONST falls through into PLUS/MINUS handling.
8748
4377e55f 8749 PR c/39855
8750 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
8751 into 0, use omit_one_operand.
8752
6632aeb5 87532009-04-23 Ben Elliston <bje@au.ibm.com>
8754
8755 * config/rs6000/linux-unwind.h (get_regs): Remove type
8756 puns. Change the type of `pc' to an array of unsigned ints and
8757 update all users. Constify frame24.
8758
6276c4d1 87592009-04-22 DJ Delorie <dj@redhat.com>
8760
8761 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
8762 declarations before code.
8763 (current_function_special_page_vector): Likewise.
8764 (m32c_expand_insv): Silence a warning.
8765
943327c1 87662009-04-21 Taras Glek <tglek@mozilla.com>
fb1e4f4a 8767
8768 * alias.c: Update GTY annotations to new syntax.
8769 * basic-block.h: Likewise.
8770 * bitmap.h: Likewise.
8771 * c-common.h: Likewise.
8772 * c-decl.c: Likewise.
8773 * c-parser.c: Likewise.
8774 * c-pragma.c: Likewise.
8775 * c-tree.h: Likewise.
8776 * cfgloop.h: Likewise.
8777 * cgraph.h: Likewise.
8778 * config/alpha/alpha.c: Likewise.
8779 * config/arm/arm.h: Likewise.
8780 * config/avr/avr.h: Likewise.
8781 * config/bfin/bfin.c: Likewise.
8782 * config/cris/cris.c: Likewise.
8783 * config/darwin.c: Likewise.
8784 * config/frv/frv.c: Likewise.
8785 * config/i386/i386.c: Likewise.
8786 * config/i386/i386.h: Likewise.
8787 * config/i386/winnt.c: Likewise.
8788 * config/ia64/ia64.h: Likewise.
8789 * config/iq2000/iq2000.c: Likewise.
8790 * config/mips/mips.c: Likewise.
8791 * config/mmix/mmix.h: Likewise.
8792 * config/pa/pa.c: Likewise.
8793 * config/pa/pa.h: Likewise.
8794 * config/rs6000/rs6000.c: Likewise.
8795 * config/s390/s390.c: Likewise.
8796 * config/sparc/sparc.c: Likewise.
8797 * config/xtensa/xtensa.c: Likewise.
8798 * cselib.h: Likewise.
8799 * dbxout.c: Likewise.
8800 * dwarf2out.c: Likewise.
8801 * except.c: Likewise.
8802 * except.h: Likewise.
8803 * fixed-value.h: Likewise.
8804 * function.c: Likewise.
8805 * function.h: Likewise.
8806 * gimple.h: Likewise.
8807 * integrate.c: Likewise.
8808 * optabs.c: Likewise.
8809 * output.h: Likewise.
8810 * real.h: Likewise.
8811 * rtl.h: Likewise.
8812 * stringpool.c: Likewise.
8813 * tree-data-ref.c: Likewise.
8814 * tree-flow.h: Likewise.
8815 * tree-scalar-evolution.c: Likewise.
8816 * tree-ssa-address.c: Likewise.
8817 * tree-ssa-alias.h: Likewise.
8818 * tree-ssa-operands.h: Likewise.
8819 * tree.c: Likewise.
8820 * tree.h: Likewise.
8821 * varasm.c: Likewise.
8822 * varray.h: Likewise.
8823 * vec.h: Likewise.
0a48089c 8824 * coretypes.h: Do not define GTY macro if it is already defined.
fb1e4f4a 8825 * doc/gty.texi: Update GTY documentation to new syntax.
8826 * gengtype-lex.l: Enforce attribute-like syntax for GTY
8827 annotations on structs.
8828 * gengtype-parse.c: Likewise.
8829
57187d90 88302009-04-22 Mark Heffernan <meheff@google.com>
8831
0a48089c 8832 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
57187d90 8833
30505192 88342009-04-22 Kazu Hirata <kazu@codesourcery.com>
8835
8836 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
8837 where appropriate.
8838
922878f2 88392009-04-22 Kazu Hirata <kazu@codesourcery.com>
8840
8841 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
8842 the same as a PLUS without a shift. Increase the cost of a
8843 CONST_INT in MULT.
8844
86931af8 88452009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8846
8847 * Makefile.in: Update dependencies.
0a48089c 8848 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
86931af8 8849 * errors.h: Remove bogus comment about compatibility.
8850 (warning): Update declaration.
8851 * genautomata.c: Update all calls to warning.
8852 * gimple.c: Do not include errors.h. Include toplev.h.
8853 * tree-ssa-structalias.c: Do not include errors.h.
8854 * omega.c: Likewise.
8855 * tree-ssa-reassoc.c: Likewise.
8856 * config/spu/spu-c.c: Likewise.
8857 * config/spu/t-spu-elf: Update dependencies.
8858
65c463fd 88592009-04-22 Richard Guenther <rguenther@suse.de>
8860
8861 PR tree-optimization/39824
8862 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
8863 make sure the types are compatible.
8864
ba99525e 88652009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8866
8867 PR c++/14875
8868 * c-common.c (c_parse_error): Take a token_flags parameter.
8869 Use token_type for the token type instead.
8870 Pass token_flags to cpp_type2name.
8871 * c-common.h (c_parse_error): Update declaration.
8872 * c-parser.c (c_parser_error): Pass 0 as token flags.
8873
a7dc303d 88742009-04-22 Andrey Belevantsev <abel@ispras.ru>
8875
8876 PR rtl-optimization/39580
8877 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
8878
b2ee26d5 88792009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8880
8881 * function.c (expand_function_end): Do not emit a jump to the "naked"
8882 return label for fall-through returns.
8883 * except.c (sjlj_emit_function_exit): Always place the call to the
8884 unregister function at the location installed by expand_function_end.
8885
51836a0c 88862009-04-22 Richard Guenther <rguenther@suse.de>
8887
8888 PR tree-optimization/39845
8889 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
8890 (gen_inbound_check): Likewise.
8891
00159b45 88922009-04-22 Nathan Sidwell <nathan@codesourcery.com>
8893
8894 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
8895 padding for PPC.
8896 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
8897 * config/vxlib.c (__gthread_once): Add race guard for PPC.
8898
adb906e2 88992009-04-22 Paolo Bonzini <bonzini@gnu.org>
8900
8901 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
8902 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
8903 shift counts to avoid out-of-bounds array accesses.
8904
57a9e496 89052009-04-22 Paolo Bonzini <bonzini@gnu.org>
8906
8907 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
8908 (Pmode): Move above.
8909
c933fb42 89102009-04-22 Uros Bizjak <ubizjak@gmail.com>
8911
8912 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
8913 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
8914 GET_CODE macro. Use IN_RANGE macro where appropriate.
8915 * config/alpha/alpha.h: Ditto.
8916 * config/alpha/alpha.md: Ditto.
8917 * config/alpha/constraints.md: Ditto.
8918 * config/alpha/predicates.md: Ditto.
8919
91e9f690 89202009-04-22 Paolo Bonzini <bonzini@gnu.org>
8921
8922 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
8923 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8924 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8925 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8926 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8927 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8928 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8929 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8930 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8931 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8932 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8933 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8934 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8935 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8936 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8937 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8938 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8939 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8940 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8941 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8942 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8943 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8944 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8945 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8946 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8947 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8948 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8949
2ea77971 89502009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8951
8952 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
8953 references from comments.
8954 * cfgbuild.c: (count_basic_blocks): Delete.
8955 (find_basic_blocks_1): Delete.
8956 (find_basic_blocks): Delete.
8957 * except.c (finish_eh_generation): Make static. Move comment from
c933fb42 8958 except.h here. Remove find_basic_blocks references from comments.
2ea77971 8959 * except.h (finish_eh_generation): Delete.
8960 * basic-block.h (find_basic_blocks): Delete.
8961 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
8962
46b5e7dc 89632009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
8964
8965 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
8966 (sdbout_parms): Likewise.
8967
6f2543f8 89682009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
8969
8970 * config/sh/sh.c (prepare_cbranch_operands): Use
8971 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
8972 (expand_cbranchdi4): Likewise.
8973 (from_compare): Add cast to enum type.
8974 (expand_cbranchsi4): Use add_reg_note.
8975 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
8976 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
8977 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
8978 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8979 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
8980 instead of CODE_FOR_nothing.
8981 (cbranchdi4): Likewise. Fix the order of arguments for
8982 gen_rtx_fmt_ee.
8983 (push_fpscr): Use add_reg_note.
8984 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
8985 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
8986
7dfbd804 89872009-04-21 Joseph Myers <joseph@codesourcery.com>
8988
8989 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
8990 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8991 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8992 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
8993 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
8994 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
8995 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
8996 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
8997 config/alpha/x-vms, config/arc/t-arc,
8998 config/arm/README-interworking, config/arm/arm-c.c,
8999 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
9000 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
9001 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
9002 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
9003 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
9004 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
9005 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
9006 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
9007 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
9008 config/cris/t-elfmulti, config/crx/t-crx,
9009 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
9010 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
9011 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
9012 config/h8300/t-h8300, config/i386/athlon.md,
9013 config/i386/darwin-libgcc.10.4.ver,
9014 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
9015 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
9016 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
9017 config/i386/t-linux64, config/i386/t-nwld,
9018 config/i386/t-rtems-i386, config/i386/t-sol2-10,
9019 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
9020 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
9021 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
9022 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
9023 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
9024 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
9025 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
9026 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
9027 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
9028 config/m68k/t-uclinux, config/mcore/t-mcore,
9029 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
9030 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
9031 config/mips/crtn.asm, config/mips/irix-crti.asm,
9032 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
9033 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
9034 config/mips/mips-fixed.md, config/mips/sb1.md,
9035 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
9036 config/mips/t-iris6, config/mips/t-isa3264,
9037 config/mips/t-libgcc-mips16, config/mips/t-linux64,
9038 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
9039 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
9040 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
9041 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
9042 config/mn10300/t-linux, config/mn10300/t-mn10300,
9043 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
9044 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
9045 config/picochip/libgccExtras/clzsi2.asm,
9046 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
9047 config/rs6000/darwin-libgcc.10.4.ver,
9048 config/rs6000/darwin-libgcc.10.5.ver,
9049 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
9050 config/rs6000/t-aix43, config/rs6000/t-aix52,
9051 config/rs6000/t-darwin, config/rs6000/t-fprules,
9052 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
9053 config/rs6000/t-lynx, config/rs6000/t-netbsd,
9054 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
9055 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
9056 config/rs6000/t-rtems, config/rs6000/t-spe,
9057 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
9058 config/score/t-score-elf, config/sh/divcost-analysis,
9059 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
9060 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
9061 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
9062 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
9063 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
9064 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
9065 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
9066 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
9067 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
9068 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
9069 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
9070 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
9071 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
9072 limitx.h, version.c, xcoff.h: Add copyright and license notices.
9073 * config/h8300/genmova.sh: Include copyright and license notices
9074 in generated output.
9075 * config/h8300/mova.md: Regenerate.
9076 * doc/install.texi2html: Include word "Copyright" in copyright
9077 notice and use name "Free Software Foundation, Inc.".
9078 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
9079 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
9080 ChangeLog-2007, ChangeLog-2008: Correct dates.
9081
43158006 90822009-04-21 Eric Botcazou <ebotcazou@adacore.com>
9083
9084 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
9085 NE_EXPR operations as well.
9086 * c-parser.c (c_parser_condition): Do not set location information on
9087 the condition.
9088 (c_parser_conditional_expression): Likewise.
9089 (c_parser_binary_expression): Set location information on operators.
9090 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
9091 TRUTH_NOT_EXPR has been folded.
9092 * fold-const.c (fold_truth_not_expr): Copy location information from
9093 the incoming expression to the outgoing one.
9094 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
9095 recursive calls on the LHS of the operator but pass that of the
9096 operator to recursive calls on the RHS of the operator. Set it
9097 on the COND_EXPR.
9098 (shortcut_cond_expr): Set the locus of the operator on the second
9099 COND_EXPR and that of the expression on the first in degenerate cases.
9100 Pass the locus of the expression to calls to shortcut_cond_r.
9101 Set the locus of the 'then' block on the associated jump, if any.
9102 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
9103 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
9104 expression to call to gimplify_boolean_expr.
9105
72f432d4 91062009-04-21 Kai Tietz <kai.tietz@onevision.com>
9107
9108 * config.gcc: Add additional configuration for
9109 i686-w64-mingw* and x86_64-w64-mingw* triplet.
9110 * config/i386/mingw-w64.h: New mingw-w64 specific header.
9111 (CPP_SPEC): Redefine for allowing -municode option.
9112 (STARTFILE_SPEC): Likewise.
9113 * config/i386/t-mingw-w64: New.
9114 * config/i386/mingw-w64.opt: New.
9115 (municode): Add new target option.
9116 * doc/invoke.texi (municode): Add documentation for new option.
9117
da84efc1 91182009-04-21 Ian Lance Taylor <iant@google.com>
9119
9120 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9121 Correct test for number of arguments.
9122 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
9123
89871bab 91242009-04-21 Andreas Schwab <schwab@linux-m68k.org>
9125
9126 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
9127 argument of emit_library_call.
9128
be1b4133 91292009-04-21 Richard Guenther <rguenther@suse.de>
9130
9131 PR middle-end/39829
9132 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
9133 inside VIEW_CONVERT_EXPRs.
9134
f6ac75a7 91352009-04-21 Martin Jambor <mjambor@suse.cz>
9136
9137 * tree-switch-conversion.c (build_constructors): Split a long line.
9138 (constructor_contains_same_values_p): New function.
c933fb42 9139 (build_one_array): Create assigns of constants if possible, do not
9140 call mark_sym_for_renaming, call update_stmt.
f6ac75a7 9141 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
9142 make_rename_temp. Do not call mark_symbols_for_renaming, call
9143 update_stmt.
9144 (gen_def_assigns): Do not call mark_symbols_for_renaming or
9145 find_new_referenced_vars, call update_stmt.
9146 (gen_inbound_check): Use create_tmp_var and create ssa names manually
9147 instead of calling make_rename_temp. Do not call
9148 find_new_referenced_vars or mark_symbols_for_renaming, call
9149 update_stmt.
9150
80a26b8b 91512009-04-21 Richard Guenther <rguenther@suse.de>
9152
9153 PR tree-optimization/39827
c933fb42 9154 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
80a26b8b 9155 (tree_ssa_phiprop): Pass the correct array size.
9156
8734914d 91572009-04-21 Uros Bizjak <ubizjak@gmail.com>
9158
9159 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
9160
79973b57 91612009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
9162
9163 PR 16202
9164 * c-typeck.c (lvalue_p): Move declaration ...
9165 * c-common.h (lvalue_p): ... to here.
9166 * c-common.c (candidate_equal_p): New.
9167 (add_tlist): Use it.
9168 (merge_tlist): Use it.
9169 (warn_for_collisions_1): Likewise.
9170 (warning_candidate_p): Accept more candidates.
9171 (verify_tree): A warning candidate can be an expression. Use
9172 candidate_equal_p.
9173
e1483f71 91742009-04-21 Ben Elliston <bje@au.ibm.com>
9175
9176 PR target/5267
9177 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
9178 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
9179 options. Remove -mcall-solaris documentation.
9180
9ab71c6b 91812009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9182
9183 PR c++/13358
9184 * doc/invoke.texi (-Wlong-long): Update description.
9185 * c-lex (interpret_integer): Only warn if there was no previous
9186 overflow and -Wlong-long is enabled.
9187 * c-decl.c (declspecs_add_type): Drop redundant flags.
9188 * c.opt (Wlong-long): Init to -1.
9189 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
9190 and front-end warn_long_long. Wlong-long only depends on other
9191 flags if it is uninitialized.
9192 * c-parser.c (disable_extension_diagnostics): warn_long_long is
9193 the same for CPP and FE.
9194 (restore_extension_diagnostics): Likewise.
9195
b9c74b4d 91962009-04-20 Ian Lance Taylor <iant@google.com>
9197
9198 Fix enum conversions which are invalid in C++:
8734914d 9199 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
9200 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 9201 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
9202 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
8734914d 9203 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
b9c74b4d 9204 (dbxout_parms): Likewise.
8734914d 9205 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
b9c74b4d 9206 (df_clear_flags): Likewise.
9207 * df-problems.c (df_rd_bb_local_compute_process_def): Change
9208 top_flag parameter to int.
9209 (df_chain_create_bb_process_use): Likewise.
8734914d 9210 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
9211 Remove cast.
b9c74b4d 9212 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
9213 (df_ref_create_structure, df_def_record_1): Likewise.
9214 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
9215 (df_notes_rescan): Change 0 to VOIDmode in function call.
9216 (df_get_call_refs, df_insn_refs_collect): Likewise.
9217 (df_bb_regs_collect): Likewise.
9218 (df_entry_block_defs_collect): Likewise.
9219 (df_exit_block_uses_collect): Likewise.
9220 * df.h: Update declarations.
9221 * double-int.c (double_int_divmod): Add cast to enum type.
9222 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
9223 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
9224 (based_loc_descr): Likewise.
9225 (loc_descriptor_from_tree_1): Change first_op and second_op to
9226 enum dwarf_location_atom. Add cast to enum type.
9227 * expmed.c (init_expmed): Change 0 to SET in function call.
8734914d 9228 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
b9c74b4d 9229 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
9230 (do_store_flag): Likewise.
9231 * fixed-value.h (struct fixed_value): Change mode to enum
9232 machine_mode.
8734914d 9233 * function.c (assign_parms): Change 0 to VOIDmode in function call.
b9c74b4d 9234 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
9235 function call.
9236 (insert_insn_decl, insert_decl, insert_state): Likewise.
9237 (automata_list_finish): Likewise.
9238 * genrecog.c (process_define_predicate): Add cast to enum type.
9239 * gensupport.c (init_predicate_table): Add cast to enum type.
9240 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
9241 function call.
9242 (gimple_build_call_1, gimple_build_label): Likewise.
9243 (gimple_build_goto, gimple_build_asm_1): Likewise.
9244 (gimple_build_switch_1, gimple_build_cdt): Likewise.
8734914d 9245 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
b9c74b4d 9246 (enum fallback): Rename from enum fallback_t.
9247 (fallback_t): Typedef as int.
9248 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
9249 GSI_SAME_STMT in function call.
9250 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
9251 enum type.
9252 (setup_reg_class_relations): Likewise.
8734914d 9253 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
b9c74b4d 9254 (setup_prohibited_class_mode_regs): Add cast to enum type.
9255 (setup_prohibited_mode_move_regs): Likewise.
8734914d 9256 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
b9c74b4d 9257 (record_address_regs): Change i to enum reg_class.
9258 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
9259 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
9260 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
9261 (GET_MODE_2XWIDER_MODE): Likewise.
9262 (GET_CLASS_NARROWEST_MODE): Likewise.
9263 * omp-low.c (expand_omp_for): Add cast to enum type.
9264 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
9265 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
9266 * postreload.c (reload_cse_simplify_operands): Change rclass local
9267 to enum reg_class.
9268 * predict.c (combine_predictions_for_insn): Change best_predictor
9269 and predictor to enum br_predictor.
9270 (combine_predictions_for_bb): Likewise.
9271 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
9272 use SET_PREDICT_EXPR_OUTCOME.
8734914d 9273 * real.c (real_arithmetic): Change icode to code in function call.
b9c74b4d 9274 * reginfo.c (init_move_cost): Add casts to enum type.
9275 (init_reg_sets_1, init_fake_stack_mems): Likewise.
9276 * regmove.c (regclass_compatible_p): Change class0 and class1 to
9277 enum reg_class.
9278 * reload.c (find_valid_class): Add casts to enum type.
9279 (push_reload): Change 0 to NO_REGS in function call.
9280 (find_reloads): Change this_alternative to array of enum
9281 reg_class. Remove some now-unnecessary casts.
9282 (make_memloc): Change 0 to VOIDmode in function call.
9283 * reload1.c (reload): Change 0 to VOIDmode in function call.
9284 (eliminate_regs_1, elimination_effects): Likewise.
9285 (eliminate_regs_in_insn): Likewise.
9286 (emit_input_reload_insns): Add cast to enum type.
9287 (delete_output_reload): Change 0 to VOIDmode in function call.
9288 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
9289 to enum type in function call.
9290 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
9291 (SET_PREDICT_EXPR_OUTCOME): Define.
8734914d 9292 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
b9c74b4d 9293 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
9294 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
9295 (dump_function): Likewise.
9296 * tree-dump.h: Update declarations.
9297 * tree-pass.h: Update declarations.
9298 * varasm.c (assemble_integer): Change mclass to enum mode_class.
9299 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
9300 enum type.
9301 (arm_rtx_costs_1): Correct parenthesization.
9302 (arm_rtx_costs): Add casts to enum type.
9303 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
9304 (vfp_emit_fstmd): Use add_rg_note.
9305 (emit_multi_reg_push, emit_sfm): Likewise.
9306 (thumb_set_frame_pointer): Likewise.
9307 (arm_expand_prologue): Likewise.
9308 (arm_regno_class): Change return type to enum reg_class.
9309 (thumb1_expand_prologue): Use add_reg_note.
9310 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
9311 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
9312 in function call.
9313 * config/arm/gentune.sh: Add cast to enum type.
9314 * config/arm/arm-tune.md: Rebuild.
9315 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
9316 (ix86_split_fp_branch, predict_jump): Likewise.
9317 (ix86_expand_multi_arg_builtin): Change sub_code from enum
9318 insn_code to enum rtx_code.
9319 (ix86_builtin_vectorized_function): Add cast to enum type.
9320 * config/i386/i386.md (truncdfsf2): Change slot to enum
9321 ix86_stack_slot.
9322 (truncxf<mode>2, isinf<mode>2): Likewise.
9323 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
9324 enum type.
9325 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
9326 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
9327 (insert_bundle_state): Change 1 to INSERT in function call.
9328 (ia64_add_bundle_selector_before): Likewise.
9329 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
9330 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
9331 (restore_stack_nonlocal): Likewise.
9332 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
9333 function call.
9334 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
9335 function call.
9336 (mips_rtx_costs): Likewise.
9337 (mips_override_options): Add casts to enum type.
9338 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
9339 in function call.
9340 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
9341 (store_reg, set_reg_plus_d): Likewise.
9342 (hppa_expand_prologue, hppa_profile_hook): Likewise.
9343 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9344 cast to enum type.
9345 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
9346 function call.
9347 (emit_unlikely_jump): Use add_reg_note.
9348 (rs6000_emit_allocate_stack): Likewise.
9349 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
9350 (output_toc): Change 1 to INSERT in function call.
9351 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
9352 (rs6000_initialize_trampoline): Likewise.
9353 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
9354 function call.
9355 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
9356 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
9357 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
9358 (save_gprs): Use add_reg_note.
9359 (s390_emit_prologue): Likewise.
8734914d 9360 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 9361 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
9362 (sparc_fold_builtin): Add cast to enum type.
9363 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
9364 enum insn_code.
9365 (spu_expand_prologue): Use add_reg_note.
8734914d 9366 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 9367
93682009-04-20 Ian Lance Taylor <iant@google.com>
9369
9370 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
9371 (c_parser_postfix_expression_after_primary): Get VEC for list of
9372 arguments. Get original types of arguments. Call
9373 build_function_call_vec.
9374 (cached_expr_list_1, cached_expr_list_2): New static variables.
9375 (c_parser_expr_list): Change return type to VEC *. Add
9376 p_orig_types parameter. Change all callers.
9377 (c_parser_release_expr): New static function.
9378 (c_parser_vec_to_tree_list): New static function.
9379 * c-typeck.c (build_function_call): Rewrite to build a VEC and
9380 call build_function_call_vec.
9381 (build_function_call_vec): New function, based on old
9382 build_function_call.
9383 (convert_arguments): Remove nargs and argarray parameters. Change
9384 values to a VEC. Add origtypes parameter.
8734914d 9385 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
b9c74b4d 9386 (convert_for_assignment): Add origtype parameter. Change all
9387 callers. If warn_cxx_compat, check for conversion to an enum
9388 type when calling a function.
9389 (store_init_value): Add origtype parameter. Change all callers.
9390 (digest_init): Likewise.
9391 (struct init_node): Add origtype field.
9392 (add_pending_init): Add origtype parameter. Change all callers.
9393 (output_init_element): Likewise.
9394 (output_pending_init_elements): Pass origtype from init_node to
9395 output_init_element.
4ebc3d57 9396 (process_init_element): Pass origtype from c_expr to
b9c74b4d 9397 output_init_element.
9398 (c_finish_return): Add origtype parameter. Change all callers.
9399 * c-common.c (sync_resolve_size): Change params to VEC *. Change
9400 caller.
9401 (sync_resolve_params): Likewise.
8734914d 9402 (sync_resolve_return): Change params to first_param. Change caller.
b9c74b4d 9403 (resolve_overloaded_builtins): Change params to VEC *. Change
8734914d 9404 callers. Save first parameter around call to build_function_call_vec.
b9c74b4d 9405 * c-decl.c (finish_decl): Add origtype parameter. Change all
9406 callers. Call build_function_call_vec rather than
9407 build_function_call for cleanup.
9408 * c-tree.h: Update declarations.
9409 * c-common.h: Update declarations.
9410 * stub-objc.c (objc_rewrite_function_call): Change parameter from
9411 params to first_param.
9412 * target.h (struct gcc_target): Change resolve_overloaded_builtin
9413 params parameter from tree to void *.
9414 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9415 Change arglist parameter to have type void *, and to be a pointer
9416 to a VEC.
9417 * config/rs6000/rs6000-protos.h
9418 (altivec_resolve_overloaded_builtin): Update declaration.
9419 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
9420 fnargs parameter to have type void *, and to be a pointer to a
9421 VEC. Call build_function_call_vec instead of
9422 build_function_call.
8734914d 9423 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
b9c74b4d 9424
6df553fd 94252009-04-20 Joey Ye <joey.ye@intel.com>
943327c1 9426 Xuepeng Guo <xuepeng.guo@intel.com>
6df553fd 9427 H.J. Lu <hongjiu.lu@intel.com>
9428
9429 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
9430
9431 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
9432 (IX86_LEA_PRIORITY): Likewise.
9433 (distance_non_agu_define): New function.
9434 (distance_agu_use): Likewise.
9435 (ix86_lea_for_add_ok): Likewise.
9436 (ix86_dep_by_shift_count): Likewise.
9437
9438 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
9439 should split for LEA.
9440
9441 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
9442 function.
9443 (ix86_dep_by_shift_count): Likewise.
9444
a174b54d 94452009-04-20 Richard Guenther <rguenther@suse.de>
9446
9447 * expr.c (handled_component_p): Move ...
9448 * tree.h (handled_component_p): ... here.
9449 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
9450 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
9451 and REALPART_EXPR to be in one group.
9452
59f3ea59 94532009-04-20 Richard Guenther <rguenther@suse.de>
9454
9455 * basic-block.h (get_all_dominated_blocks): Declare.
9456 * dominance.c (get_all_dominated_blocks): New function.
9457 * tree-cfg.c (get_all_dominated_blocks): Remove.
9458 (remove_edge_and_dominated_blocks): Adjust.
9459 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
9460 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
9461 instead of recursing.
9462
13f90d63 94632009-04-20 Doug Kwan <dougkwan@google.com>
9464
9465 * cgraph.h (cgraph_node_ptr): New type for vector functions.
9466 (struct cgraph_node_set_def): New type.
9467 (cgraph_node_set) New type. Also declare vector functions.
9468 (struct cgraph_node_set_element_def): New type.
9469 (cgraph_node_set_element): Ditto.
9470 (cgraph_node_set_iterator): New iterator type.
9471 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
9472 cgraph_node_set_remove, dump_cgraph_node_set,
9473 debug_cgraph_node_set): New prototypes.
9474 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
9475 cgraph_node_set_size): New inlines.
9476 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
9477 including cgraph.h.
9478 (struct ipa_opt_pass): Add struct cgraph_node_set_def
9479 argument to function 'write_summary'.
9480 * ipa.c: Include ggc.h.
9481 (hash_cgraph_node_set_element,
9482 eq_cgraph_node_set_element, cgraph_node_set_new,
9483 cgraph_node_set_add, cgraph_node_set_remove,
9484 cgraph_node_set_find, dump_cgraph_node_set,
9485 debug_cgraph_node_set): New functions.
9486 * Makefile.in (ipa.o): Add dependency on GGC_H.
9487
1065dd4e 94882009-04-20 Ira Rosen <irar@il.ibm.com>
9489
9490 PR tree-optimization/39675
89871bab 9491 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
8734914d 9492 check of the return code of vect_schedule_slp. Check that
9493 stmt_vec_info still exists for the statement, before checking its
9494 vectorization type.
1065dd4e 9495
ae381971 94962009-04-20 Michael Matz <matz@suse.de>
9497
9498 * Makefile.in (generated_files): Take out $(simple_generated_c).
9499
2e4b8e58 95002009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
9501
9502 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
9503 (UINTPTR_TYPE): Likewise.
9504
fe49e588 95052009-04-19 Joseph Myers <joseph@codesourcery.com>
9506
9507 PR c/37481
9508 * c-typeck.c (digest_init): Check for initializing an array with a
9509 string literal.
9510
714c7dce 95112009-04-19 Joseph Myers <joseph@codesourcery.com>
9512
9513 PR c/19771
9514 * c-semantics.c (pop_stmt_list): Propagate
9515 STATEMENT_LIST_HAS_LABEL to parent statement list.
9516
287179e8 95172009-04-19 Adam Nemet <anemet@caviumnetworks.com>
9518
9519 * config/mips/mips.h (mips_tune_attr): New macro.
9520 * config/mips/mips.md (cpu): Use it.
9521
577f4774 95222009-04-19 Joseph Myers <joseph@codesourcery.com>
9523
9524 PR c/38243
9525 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
9526 declaring a tag.
9527
9ed5b1f5 95282009-04-19 Diego Novillo <dnovillo@google.com>
9529
9530 * toplev.c (compile_file): Move call to coverage_finish ...
9531 * cgraphunit.c (ipa_passes): ... here.
9532 Call cgraph_process_new_functions.
9533 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
9534 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
9535
ecfab407 95362009-04-19 Jan Hubicka <jh@suse.cz>
9537
8734914d 9538 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
9539 cfun.
ecfab407 9540 (dump_cgraph_node): Dump can throw external flag.
9541 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
9542
03033af4 95432009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
9544
9545 PR c/32061
9546 PR c++/36954
9547 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
9548 * common.opt (Wlogical-op): Move from here...
9549 * c.opt (Wlogical-op): ... to here.
9550 * c-typeck.c (parser_build_binary_op): Update call to
9551 warn_logical_operator.
9552 * c-opts.c (c_common_post_options): Enable warn_logical_op with
9553 extra_warnings.
9554 * c-common.c (warn_logical_op): Update.
9555 * c-common.h (warn_logical_op): Update declaration.
9556
d3e86ba4 95572009-04-19 Eric Botcazou <ebotcazou@adacore.com>
9558
9559 * tree.c (protected_set_expr_location): Fix formatting.
9560
d4e60318 95612009-04-18 Joseph Myers <joseph@codesourcery.com>
9562
9563 PR c/27676
9564 * c-typeck.c (readonly_warning): new.
9565 (build_unary_op, build_modify_expr): Use readonly_warning for
9566 storing into something readonly but not const-qualified.
9567
1b157e43 95682009-04-18 Joseph Myers <joseph@codesourcery.com>
9569
9570 PR c/22367
9571 * c-typeck.c (build_unary_op): Check for taking address of
9572 expression of type void.
9573
8f24e4bd 95742009-04-18 Joseph Myers <joseph@codesourcery.com>
9575
9576 PR c/35210
9577 * c-typeck.c (build_function_call): Check for calling a function
9578 with qualified void return types. Call require_complete_type when
9579 generating a trap.
9580
17b28e52 95812009-04-18 Jan Hubicka <jh@suse.cz>
9582
9583 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
9584 Set nothrow flag.
9585 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
9586 can_throw_external flag.
9587 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
9588 * ipa-pure-const.c (ignore_edge): New function.
9589 (propagate): Compute order for NOTHROW computation; set NOTHROWs
9590 only over can_throw_external edges.
9591 (local_pure_const): Add nothrow flag.
9592 * ipa-utils.c (searchc): Add ignore_edge callback.
9593 (ipa_utils_reduced_inorder): Add ignore_edge callback.
9594 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
9595 (set_nothrow_function_flags): Update cgraph.
9596 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
9597
1c03e359 95982009-04-18 Richard Guenther <rguenther@suse.de>
9599
9600 PR middle-end/39804
9601 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
9602 (fold_stmt): ... this and ...
9603 (fold_stmt_inplace): ... this.
9604 (fold_stmt_1): Fold references in calls and asms.
9605 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
9606
8a6bbf30 96072009-04-18 Kazu Hirata <kazu@codesourcery.com>
9608
9609 * tree-vrp.c (ssa_name_nonzero_p): Remove.
9610 * tree.h: Remove the prototype for ssa_name_nonzero_p.
9611
32234224 96122009-04-18 Kazu Hirata <kazu@codesourcery.com>
9613
9614 * tree.c (function_args_count): Remove.
9615 * tree.h: Remove the prototype for function_args_count.
9616
c58db4b7 96172009-04-18 Kazu Hirata <kazu@codesourcery.com>
9618
9619 * tree-iterator.c (expr_only): Remove.
9620 * tree.h: Remove the prototype for expr_only.
9621
404acb5b 96222009-04-18 Kazu Hirata <kazu@codesourcery.com>
9623
9624 * reginfo.c (cannot_change_mode_set_regs): Remove.
9625 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
9626
5a07d305 96272009-04-08 Anatoly Sokolov <aesok@post.ru>
9628
9629 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
9630 whether operands 0 and 1 overlaps.
9631
496ffe87 96322009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
9633
9634 PR middle-end/36902
9635 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
9636 pointer. Use warning_at instead of warning.
9637 (search_for_addr_array): Likewise.
9638 (check_array_bounds): Likewise.
9639 (check_all_array_refs): Check that the incoming edge is not in the
9640 list of edges to be removed.
9641 (check_all_array_refs): Avoid the temporal pointer.
9642 (vrp_visit_cond_stmt): Fix typo.
9643 (simplify_switch_using_ranges): Handle the case where the switch
9644 index is an integer constant.
9645
f846b2e1 96462009-04-18 Adam Nemet <anemet@caviumnetworks.com>
9647
9648 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
9649
d270ac20 96502009-04-18 Kazu Hirata <kazu@codesourcery.com>
9651
9652 * doc/extend.texi, doc/invoke.texi: Fix typos.
9653
3085aa6d 96542009-04-17 Cary Coutant <ccoutant@google.com>
9655
9656 * tree-flow-inline.h (get_lineno): Fix inverted test.
9657
d47f59f6 96582009-04-17 Diego Novillo <dnovillo@google.com>
9659
9660 * tree-ssa-pre.c (create_expression_by_pieces): Remove
9661 assertion for AVAIL_OUT.
9662
cea9fc42 96632009-04-17 Mike Frysinger <vapier@gentoo.org>
9664
9665 PR target/38627
9666 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
9667 * config/sh/linux-atomic.asm: Likewise.
9668
576cc2fe 96692009-04-17 Diego Novillo <dnovillo@google.com>
9670
9671 * except.c (debug_eh_tree): New.
9672 (struct eh_region, struct eh_status): Move ...
9673 * except.h: ... here.
9674 (add_type_for_runtime): Declare extern.
9675 (lookup_type_for_runtime): Likewise.
9676 (debug_eh_tree): Declare.
9677 * Makefile.in (GTFILES): List except.h before except.c
9678
8e5b4ed6 96792009-04-17 Diego Novillo <dnovillo@google.com>
9680
8734914d 9681 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
8e5b4ed6 9682 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9683 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
9684 (find_vars_r): ... here.
9685 * tree-flow.h (find_referenced_vars_in): Declare.
9686 * tree-ssa-pre.c (create_expression_by_pieces): Assert
9687 that AVAIL_OUT exists for BLOCK.
9688 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
9689 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
9690 (tree-parloops.o): Likewise.
9691
132cae05 96922009-04-17 Simon Baldwin <simonb@google.com>
9693
9694 * toplev.c (default_tree_printer): Add handling for %E format.
9695
c6934f8a 96962009-04-17 Diego Novillo <dnovillo@google.com>
9697
8734914d 9698 * tree-pretty-print.c (dump_generic_node): Add break after
9699 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
9700 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
9701 FUNCTION_TYPE together. Call print_struct_decl when printing
9702 structures and TDF_SLIM is not given.
c6934f8a 9703 (print_struct_decl): Fix logic for detecting recursion.
9704
46782931 97052009-04-17 Rafael Avila de Espindola <espindola@google.com>
9706
9707 PR 31567
9708 * gcc.c (create_at_file): New.
9709 (compile_input_file_p): New.
9710 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
9711 * main.c (main): Update call to toplev_main.
9712 * toplev.c (toplev_main): Change signature. Call expandargv.
9713 * toplev.h (toplev_main): Change signature.
9714
0bae362c 97152009-04-17 Eric Botcazou <ebotcazou@adacore.com>
9716
9717 * dwarf2out.c (field_byte_offset): Use the type size as the field size
9718 if the latter is not constant.
9719
9207eb25 97202009-04-17 David Edelsohn <edelsohn@gnu.org>
9721
9722 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
9723
b26d0c9e 97242009-04-17 Eric Botcazou <ebotcazou@adacore.com>
9725
9726 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
9727 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
9728
af4c7413 97292009-04-17 Richard Guenther <rguenther@suse.de>
9730
9731 * tree-ssa-structalias.c (get_constraint_for_component_ref):
9732 Handle component references view-converting an invariant address.
9733
48a84cee 97342009-04-17 Adam Nemet <anemet@caviumnetworks.com>
9735
9736 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
9737 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
9738 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
9739 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
9740 Use @deftypevr rather than @deftypevar.
9741
8f0b877f 97422009-04-17 Richard Guenther <rguenther@suse.de>
9743
8734914d 9744 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
8f0b877f 9745 (get_prop_source_stmt): Likewise.
9746 (can_propagate_from): Likewise.
9747
f555bf81 97482009-04-17 Andrew Stubbs <ams@codesourcery.com>
9749
9750 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
9751 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
9752 (--with-multilib-list): Add default value.
9753 * configure: Regenerate.
9754 * Makefile.in (TM_ENDIAN_CONFIG): Define.
9755 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
9756 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
9757 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
9758 Don't add default cpu to multilib list unnecessarily, but do enable
9759 the relevant compiler option..
9760 Add support for --with-multilib-list=<blank> and
9761 --with-multilib-list=!<somelib> to supress unwanted multilibs.
9762 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
9763 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
9764 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
9765 TM_MULTILIB_CONFIG.
9766 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
9767 (MULTILIB_OSDIRNAMES): New variable.
9768 * config/sh/t-1e: Delete file.
9769 * config/sh/t-mlib-sh1: Delete file.
9770 * config/sh/t-mlib-sh2: Delete file.
9771 * config/sh/t-mlib-sh2a: Delete file.
9772 * config/sh/t-mlib-sh2a-nofpu: Delete file.
9773 * config/sh/t-mlib-sh2a-single: Delete file.
9774 * config/sh/t-mlib-sh2a-single-only: Delete file.
9775 * config/sh/t-mlib-sh2e: Delete file.
9776 * config/sh/t-mlib-sh3e: Delete file.
9777 * config/sh/t-mlib-sh4: Delete file.
9778 * config/sh/t-mlib-sh4-nofpu: Delete file.
9779 * config/sh/t-mlib-sh4-single: Delete file.
9780 * config/sh/t-mlib-sh4-single-only: Delete file.
9781 * config/sh/t-mlib-sh4a: Delete file.
9782 * config/sh/t-mlib-sh4a-nofpu: Delete file.
9783 * config/sh/t-mlib-sh4a-single: Delete file.
9784 * config/sh/t-mlib-sh4a-single-only: Delete file.
9785 * config/sh/t-mlib-sh4al: Delete file.
9786 * config/sh/t-mlib-sh5-32media: Delete file.
9787 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
9788 * config/sh/t-mlib-sh5-64media: Delete file.
9789 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
9790 * config/sh/t-mlib-sh5-compact: Delete file.
9791 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
9792 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
9793 * doc/install.texi (Options specification): Add
9794 --with-multilib-list and --with-endian.
9795
c80cefd7 97962009-04-17 Rafael Avila de Espindola <espindola@google.com>
9797
9798 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
9799 REVISION_c.
9800 (OBJS-common): Add plugin-version.o.
9801 (plugin-version.o): New.
9802 * gcc-plugin.h (plugin_gcc_version): New.
9803 (plugin_default_version_check): New.
9804 (plugin_init_func, plugin_init): Add version argument.
9805 * plugin-version.c: New.
9806 * plugin.c (str_plugin_gcc_version_name): New.
9807 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
9808 pass it to the init function.
9809 (plugin_default_version_check): New.
9810
090a8c65 98112009-04-17 Richard Guenther <rguenther@suse.de>
9812
9813 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
9814 for decl-vs-decl disambiguation.
9815
23911610 98162009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
9817
9818 * config/s390/s390.h (s390_tune_attr): New macro definition.
9819 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
9820
304557cd 98212009-04-17 Richard Guenther <rguenther@suse.de>
9822
9823 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
9824 (fold_stmt_r): Likewise.
9825 (maybe_fold_reference): New function.
9826 (fold_gimple_assign): Handle cases fold_stmt_r did.
9827 (fold_stmt): Do not use fold_stmt_r.
9828 (fold_stmt_inplace): Likewise.
9829
912886f2 98302009-04-17 Richard Guenther <rguenther@suse.de>
9831
9832 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
9833 (record_equivalences_from_stmt): Remove useless checks and
9834 simplifications.
9835 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
9836 the type is already suitable.
9837
2d44789e 98382009-04-17 Paolo Bonzini <bonzini@gnu.org>
9839
9840 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
9841
67225bb6 98422009-04-17 Uros Bizjak <ubizjak@gmail.com>
9843
9844 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
9845 (CMPtype): Define as __gcc_CMPtype.
9846
09ec66c8 98472009-04-17 Aurelien Jarno <aurelien@aurel32.net>
9848
9849 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
9850 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
9851
7f7f16d4 98522009-04-17 Richard Guenther <rguenther@suse.de>
9853
9854 PR tree-optimization/39746
9855 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
9856 special-casing for builtins and static variable use/def.
9857 (call_may_clobber_ref_p_1): Likewise.
9858
0b1615c1 98592009-04-16 Ian Lance Taylor <iant@google.com>
9860
9861 * df.h: Include "timevar.h".
9862 (struct df_problem): Change tv_id field to timevar_id_t.
9863 * tree-pass.h: Include "timevar.h".
9864 (struct opt_pass): Change tv_id field to timevar_id_t.
9865 * timevar.h (timevar_id_t): Define TV_NONE.
9866 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
9867 TV_NONE rather than tv_id != 0.
9868 (execute_one_pass): Likewise.
9869 * Makefile.in (DF_H): Add $(TIMEVAR_H).
9870 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
9871 dependencies to $(TREE_PASS_H).
9872 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
9873 to TV_NONE.
9874 (pass_branch_target_load_optimize2): Likewise.
9875 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
9876 (pass_outof_cfg_layout_mode): Likewise.
9877 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
9878 (pass_rebuild_cgraph_edges): Likewise.
9879 (pass_remove_cgraph_callee_edges): Likewise.
9880 * df-core.c (pass_df_initialize_opt): Likewise.
9881 (pass_df_initialize_no_opt): Likewise.
9882 (pass_df_finish): Likewise.
9883 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
9884 * except.c (pass_set_nothrow_function_flags): Likewise.
9885 (pass_convert_to_eh_region_ranges): Likewise.
9886 * final.c (pass_compute_alignments): Likewise.
9887 * function.c (pass_instantiate_virtual_regs): Likewise.
9888 (pass_init_function): Likewise.
9889 (pass_leaf_regs): Likewise.
9890 (pass_match_asm_constraints): Likewise.
9891 * gimple-low.c (pass_lower_cf): Likewise.
9892 (pass_mark_used_blocks): Likewise.
9893 * init-regs.c (pass_initialize_regs): Likewise.
9894 * integrate.c (pass_initial_value_sets): Likewise.
9895 * ira.c (pass_ira): Likewise.
9896 * jump.c (pass_cleanup_barriers): Likewise.
9897 * omp-low.c (pass_expand_omp): Likewise.
9898 (pass_lower_omp): Likewise.
9899 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
9900 * recog.c (pass_split_all_insns): Likewise.
9901 (pass_split_after_reload): Likewise.
9902 (pass_split_before_regstack): Likewise.
9903 (pass_split_before_sched2): Likewise.
9904 (pass_split_for_shorten_branches): Likewise.
9905 * reginfo.c (pass_reginfo_init): Likewise.
9906 (pass_subregs_of_mode_init): Likewise.
9907 (pass_subregs_of_mode_finish): Likewise.
9908 * passes.c (pass_postreload): Likewise.
9909 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
9910 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
9911 (pass_warn_function_return): Likewise.
9912 (pass_warn_function_noreturn): Likewise.
9913 * tree-complex.c (pass_lower_complex): Likewise.
9914 (pass_lower_complex_O0): Likewise.
9915 * tree-if-conv.c (pass_if_conversion): Likewise.
9916 * tree-into-ssa.c (pass_build_ssa): Likewise.
9917 * tree-mudflap.c (pass_mudflap_1): Likewise.
9918 (pass_mudflap_2): Likewise.
9919 * tree-nomudflap.c (pass_mudflap_1): Likewise.
9920 (pass_mudflap_2): Likewise.
9921 * tree-nrv.c (pass_return_slot): Likewise.
9922 * tree-object-size.c (pass_object_sizes): Likewise.
9923 * tree-optimize.c (pass_all_optimizations): Likewise.
9924 (pass_early_local_passes): Likewise.
9925 (pass_all_early_optimizations): Likewise.
9926 (pass_cleanup_cfg): Likewise.
9927 (pass_cleanup_cfg_post_optimizing): Likewise.
9928 (pass_free_datastructures): Likewise.
9929 (pass_free_cfg_annotations): Likewise.
9930 (pass_fixup_cfg): Likewise.
9931 (pass_init_datastructures): Likewise.
9932 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
9933 (pass_late_warn_uninitialized): Likewise.
9934 (pass_update_address_taken): Likewise.
9935 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
9936 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
9937 (pass_cse_sincos): Likewise.
9938 (pass_convert_to_rsqrt): Likewise.
9939 * tree-ssa-structalias.c (pass_build_alias): Likewise.
9940 * tree-stdarg.c (pass_stdarg): Likewise.
9941 * tree-tailcall.c (pass_tail_recursion): Likewise.
9942 (pass_tail_calls): Likewise.
9943 * tree-vect-generic.c (pass_lower_vector): Likewise.
9944 (pass_lower_vector_ssa): Likewise.
9945 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
9946
eb91c01f 99472009-04-16 Joseph Myers <joseph@codesourcery.com>
9948
9949 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
9950 XLR entry.
9951 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
9952 Handle -march=xlr.
9953 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
9954 logical and signext.
9955
52e95993 99562009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
9957
9958 PR target/39767
9959 * config/sh/predicates.md (arith_operand): Check if the operand
9960 of TRUNCATE is a REG.
9961
78eb54ad 99622009-04-16 Kazu Hirata <kazu@codesourcery.com>
9963
9964 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
9965 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
9966
c6faa3cc 99672009-04-16 Kazu Hirata <kazu@codesourcery.com>
9968
9969 * tree-iterator.c (tsi_split_statement_list_after,
9970 tsi_split_statement_list_before): Remove.
9971 * tree-iterator.h: Remove the prototypes for
09ec66c8 9972 tsi_split_statement_list_after and tsi_split_statement_list_before.
c6faa3cc 9973
248c5002 99742009-04-16 Kazu Hirata <kazu@codesourcery.com>
9975
9976 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
9977 * tree-ssa-propagate.h: Remove the prototype for
9978 stmt_makes_single_load.
9979
b11af8ed 99802009-04-16 Kazu Hirata <kazu@codesourcery.com>
9981
9982 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
9983 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
9984
f94a1f5c 99852009-04-16 Kazu Hirata <kazu@codesourcery.com>
9986
9987 * tree-iterator.c (EXPR_LAST_BODY): Remove.
9988
6d546519 99892009-04-16 Kazu Hirata <kazu@codesourcery.com>
9990
9991 * except.c (eh_region_outer_p): Remove.
9992 * except.h: Remove the prototype for eh_region_outer_p.
9993
ee8f5f57 99942009-04-16 Kazu Hirata <kazu@codesourcery.com>
9995
9996 * function.c (current_function_assembler_name): Remove.
9997 * function.h: Remove the prototype for
9998 current_function_assembler_name.
9999
5859ee98 100002009-04-16 Ian Lance Taylor <iant@google.com>
10001
09ec66c8 10002 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
5859ee98 10003 (add_reg_note): Call alloc_reg_note.
10004 * rtl.h (alloc_reg_note): Declare.
10005 * combine.c (try_combine): Use alloc_reg_note.
10006 (recog_for_combine, move_deaths): Likewise.
10007 (distribute_notes): Use alloc_reg_note and add_reg_note.
10008 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
10009 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
10010 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
10011
8f6c49f5 100122009-04-16 Vladimir Makarov <vmakarov@redhat.com>
10013
10014 PR rtl-optimization/39762
10015 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
10016 ira_may_move_out_cost): Add comments about way of their usage.
09ec66c8 10017 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
89871bab 10018
8f6c49f5 10019 * ira-conflicts.c (process_regs_for_copy): Use function
10020 ira_get_register_move_cost instead of global
10021 ira_register_move_cost.
10022
10023 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
10024 color_pass, move_spill_restore, update_curr_costs): Ditto.
10025
10026 * ira-lives.c (process_single_reg_class_operands): Ditto.
10027
10028 * ira-emit.c (emit_move_list): Ditto.
10029
10030 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
10031 (record_reg_classes): Ditto. Use functions
10032 ira_get_register_move_cost and ira_get_may_move_cost instead of
10033 global vars ira_register_move_cost, ira_may_move_out_cost and
10034 ira_may_move_in_cost.
10035 (record_address_regs): Don't call ira_init_register_move_cost.
10036 Use function ira_get_may_move_cost instead of global
10037 ira_may_move_in_cost.
10038 (process_bb_node_for_hard_reg_moves): Use function
09ec66c8 10039 ira_get_register_move_cost instead of global ira_register_move_cost.
8f6c49f5 10040 (ira_costs): Don't call ira_init_register_move_cost.
89871bab 10041
3e10a823 100422009-04-16 Richard Guenther <rguenther@suse.de>
10043
10044 * tree-cfg.c (verify_gimple_assign_binary):
10045 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
10046 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
10047 (create_general_new_stmt): Note that this function is broken.
10048
2dfeb300 100492009-04-16 Rafael Avila de Espindola <espindola@google.com>
10050
10051 * common.opt (fhelp): Add Var(help_flag).
10052 * gcc-plugin.h (plugin_info): Add help.
10053 * plugin.c (plugin_name_args): Add help.
10054 (register_plugin_info): Set plugin->help.
10055 (print_help_one_plugin): New.
10056 (print_plugins_help): New.
10057 * plugin.h (print_plugins_help): New.
10058 * toplev.c (toplev_main): Call print_plugins_help if needed.
10059
6d5ec6f8 100602009-04-16 Richard Guenther <rguenther@suse.de>
10061
10062 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
10063 (gimple_ior_addresses_taken_1): New function.
10064 (gimple_ior_addresses_taken): Likewise.
10065 * gimple.h (struct gimple_statement_with_ops_base): Remove
10066 addresses_taken member.
10067 (gimple_ior_addresses_taken): Declare.
10068 (gimple_addresses_taken, gimple_addresses_taken_ptr,
10069 gimple_set_addresses_taken): Remove.
10070 * ipa-reference.c (mark_address): New function.
10071 (scan_stmt_for_static_refs): Use it for marking addresses taken.
10072 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
10073 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
10074 (gimple_add_to_addresses_taken): Remove.
10075 (get_tmr_operands): Call mark_address_taken.
10076 (get_asm_expr_operands): Likewise.
10077 (get_expr_operands): Likewise.
10078 (build_ssa_operands): Do not clear the addresses_taken bitmap.
10079 (free_stmt_operands): Do not free it.
10080 * tree-ssa.c (delete_tree_ssa): Likewise.
10081 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
10082
5ed0b345 100832009-04-16 Richard Guenther <rguenther@suse.de>
10084
10085 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
10086 (walk_stmt_load_store_ops): Likewise.
10087 * gimple.c (get_base_loadstore): New function.
10088 (walk_stmt_load_store_addr_ops): Likewise.
10089 (walk_stmt_load_store_ops): Likewise.
10090 * ipa-pure-const.c (check_op): Simplify.
10091 (check_load, check_store): New functions.
10092 (check_stmt): Use walk_stmt_load_store_ops.
10093 * ipa-reference.c (mark_load): Adjust signature.
10094 (mark_store): Likewise.
10095 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
10096
e16288b4 100972009-04-16 Rafael Avila de Espindola <espindola@google.com>
10098
10099 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
10100 (plugin_info): New.
10101 * opts.c (common_handle_option): Don't call print_version.
10102 * plugin.c (plugin_name_args): Add version.
10103 (register_plugin_info): New.
10104 (register_callback): Handle PLUGIN_INFO.
10105 (try_init_one_plugin): New.
10106 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
10107 if failed to init.
10108 (finalize_one_plugin): New.
10109 (finalize_plugins): New.
10110 (print_one_plugin): New.
10111 (print_plugins_versions): New.
10112 * plugin.h (print_plugins_versions): New.
10113 (finalize_plugins): New.
10114 * toplev.c (compile_file): Don't call initialize_plugins.
10115 (print_version): Call print_plugins_versions.
10116 (toplev_main): Call initialize_plugins. Print version if needed.
10117 Call finalize_plugins.
10118
39932bd2 101192009-04-16 Rafael Avila de Espindola <espindola@google.com>
10120
10121 * common.opt (fversion): New.
10122 * gcc.c (print_version): New.
10123 (process_command): Don't print the version. Just set print_version.
10124 (main): Print version. Call subprocesses if print_version and
10125 verbose_flag are set.
10126 * opts.c (common_handle_option): Handle OPT_fversion.
10127
1efcacec 101282009-04-16 Richard Guenther <rguenther@suse.de>
09ec66c8 10129 Ira Rosen <irar@il.ibm.com>
1efcacec 10130
10131 PR tree-optimization/39698
10132 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
10133 type of the reduction variable. Only generate the def if
10134 it is needed.
10135
10136 * omp-low.c (expand_omp_for_generic): When converting to a pointer
10137 make sure to first convert to an integer of the same precision.
10138 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
10139 the type of the evolution correctly in computing the new
10140 induction variable base.
10141
3e40d86f 101422009-04-16 Richard Guenther <rguenther@suse.de>
10143
10144 PR middle-end/39625
10145 * tree-cfg.c (make_blocks): Split statements with to-be
10146 abnormal SSA names on the lhs.
10147
8d125f7d 101482009-04-16 Paolo Bonzini <bonzini@gnu.org>
10149
10150 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
10151 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
10152 * c-typeck.c (really_start_incremental_init): Likewise.
10153 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
10154 (TARGET_INITIALIZER): Remove it.
10155 * target.h (struct target): Remove vector_opaque_p.
10156 * tree.c (build_opaque_vector_type): New.
10157 * tree.h (TYPE_VECTOR_OPAQUE): New.
10158 (build_opaque_vector_type): Declare.
10159 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
10160 * config/rs6000/rs6000.c (build_opaque_vector_type,
10161 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
10162 (rs6000_init_builtins): Use build_opaque_vector_type for
10163 opaque_V4SI_type_node.
10164
8d17cbdd 101652009-04-15 Catherine Moore <clm@codesourcery.com>
10166
09ec66c8 10167 * debug.h (set_name): Declare.
10168 * dwarf2out.c (dwarf2out_set_name): Declare.
10169 (dwarf2_debug_hooks): Add set_name.
10170 (find_AT_string): New.
10171 (add_AT_string): Call find_AT_string.
10172 (dwarf2out_set_name): New.
10173 * cp/decl.c (grokdeclarator): Call set_name.
10174 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
10175 * debug.c (do_nothing_debug_hooks): Likewise.
10176 * dbxout.c (dbx_debug_hooks): Likewise.
10177 * sdbout.c (sdb_debug_hooks): Likewise.
8d17cbdd 10178
943327c1 101792009-04-15 Michael Eager <eager@eagercon.com>
2f267585 10180
09ec66c8 10181 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
10182 reg for single-precision FPU.
10183 * config/rs6000/rs6000.md (movsi_internal1): Only for
10184 !TARGET_SINGLE_FPU.
10185 (movsi_internal1_single): New. Add pattern to move SI values to/from
2f267585 10186 single-precision FP regs.
10187
c821ef7d 101882009-04-15 Richard Guenther <rguenther@suse.de>
10189
10190 * omp-low.c (lower_rec_input_clauses): Build correct address
10191 expressions.
10192 (expand_omp_for_generic): Fix multiplication type.
09ec66c8 10193 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
c821ef7d 10194 (generate_memset_zero): Fix types.
10195 * tree-profile.c (prepare_instrumented_value): Correctly
10196 widen a pointer.
10197
841fdaa6 101982009-04-15 Ian Lance Taylor <iant@google.com>
10199
10200 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
10201 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
10202 for -Wall and for -Wc++-compat.
10203 (c_common_post_options): For C++, set warn_enum_compare if not
10204 already set.
10205 * c-tree.h (struct c_expr): Add field original_type.
10206 (build_external_ref): Update declaration.
10207 * c-parser.c (c_parser_braced_init): Set original_type.
10208 (c_parser_initelt): Likewise.
10209 (c_parser_expr_no_commas): Likewise.
10210 (c_parser_conditional_expression): Likewise.
10211 (c_parser_cast_expression): Likewise.
10212 (c_parser_unary_expression): Likewise. Pull setting of
10213 original_code to top of function.
10214 (c_parser_sizeof_expression): Set original_type.
10215 (c_parser_alignof_expression): Likewise.
10216 (c_parser_postfix_expression): Likewise. Pull setting of
10217 original_code to top of function.
09ec66c8 10218 (c_parser_postfix_expression_after_paren_type): Set original_type.
841fdaa6 10219 (c_parser_postfix_expression_after_primary): Likewise.
10220 (c_parser_expression): Likewise.
10221 * c-typeck.c (build_external_ref): Add type parameter. Change all
10222 callers.
10223 (c_expr_sizeof_expr): Set original_type field.
10224 (parser_build_unary_op): Likewise.
10225 (parser_build_binary_op): Likewise. Optionally warn about
10226 comparisons of enums of different types.
10227 (digest_init): Set original_type field.
10228 (really_start_incremental_init): Likewise.
10229 (push_init_level, pop_init_level): Likewise.
10230 * doc/invoke.texi (Warning Options): -Wenum-compare now
10231 supported in C.
10232
d94bf438 102332009-04-15 Richard Guenther <rguenther@suse.de>
10234
10235 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
10236 out a necessary conversion.
10237 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
10238 names we didn't value number.
10239 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
10240
4af351a8 102412009-04-15 Richard Guenther <rguenther@suse.de>
10242
10243 PR tree-optimization/39764
10244 * tree-ssa-ccp.c (get_value): Canonicalize value with
10245 canonicalize_float_value.
10246
02eb0b56 102472009-04-15 Jan Hubicka <jh@suse.cz>
10248
10249 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
10250 Wrong version of patch.
10251
e522af1d 102522009-04-15 Jan Hubicka <jh@suse.cz>
10253
10254 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
10255
bf8f9895 102562009-04-15 Nathan Sidwell <nathan@codesourcery.com>
10257
10258 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
10259 our distinct integral and vector types.
10260
e50d7837 102612009-04-15 Rafael Avila de Espindola <espindola@google.com>
10262
10263 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
10264 * init.c (build_vtbl_address): Remove call to assemble_external.
10265
1cc9c78b 102662009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
10267
10268 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
10269 output for other floating point modes.
10270
dd2b35f1 102712009-04-14 Diego Novillo <dnovillo@google.com>
10272
10273 * diagnostic.c (diagnostic_report_diagnostic): Do not
10274 warn about loaded plugins for DK_ERROR and DK_WARNING.
10275 * c-decl.c (declspecs_add_type): Move call to
10276 invoke_plugin_callbacks ...
10277 * c-parser.c (c_parser_declspecs): ... here.
10278 * plugin.c (dump_active_plugins): Tidy output.
10279
9227b6fc 102802009-04-14 Diego Novillo <dnovillo@google.com>
10281 Le-Chun Wu <lcwu@google.com>
10282
10283 * configure.ac: Add --enable-plugin support.
10284 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
10285 * Makefile.in (PLUGIN_H): Define.
10286 Export ENABLE_PLUGIN and GMPINC to site.exp.
10287 Add PLUGINLIBS to link command.
10288 Add/modify dependencies for plugin.o and files including plugin.h.
10289 (plugin.o): New.
10290 * config.in: Regenerate.
89871bab 10291
9227b6fc 10292 * opts.c (common_handle_option): Handle OPT_fplugin_ and
10293 OPT_fplugin_arg_.
10294
102952009-04-14 Le-Chun Wu <lcwu@google.com>
10296
10297 * tree-pass.h (register_one_dump_file): Add a prototype for
10298 register_one_dump_file.
10299 * toplev.c (compile_file): Call initialize_plugins.
10300 (do_compile): Call invoke_plugin_callbacks.
10301 (toplev_main): Call invoke_plugin_callbacks.
10302 * common.opt: Add -fplugin= and -fplugin-arg-.
10303 * gcc-plugin.h: New public header file for plugins to include.
10304 * plugin.c: New source file.
10305 * plugin.h: New internal header file.
10306 * passes.c (register_one_dump_file): Make it external.
89871bab 10307
9227b6fc 10308 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
10309
103102009-04-14 Diego Novillo <dnovillo@google.com>
10311
10312 * doc/plugins.texi: New.
10313 * doc/gccint.texi: Add reference to Plugins chapter.
10314 * doc/invoke.texi: Document -fplugin and -fplugin-arg
10315 * diagnostic.c (diagnostic_report_diagnostic): Warn about
10316 loaded plugins, if any.
10317 * timevar.def (TV_PLUGIN_INIT): Define.
10318 (TV_PLUGIN_RUN): Define.
10319 * plugin.c: Include timevar.h
10320 (plugins_active_p): New.
10321 (dump_active_plugins): New.
10322 (debug_active_plugins): New.
10323
f3245e9d 103242009-04-14 Joseph Myers <joseph@codesourcery.com>
10325
10326 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
10327 library paths.
10328 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
10329
222652cd 103302009-04-14 Kazu Hirata <kazu@codesourcery.com>
10331
10332 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
10333 the same as a minus without a shift.
10334
11964566 103352009-04-14 Nick Clifton <nickc@redhat.com>
10336
10337 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
10338 comparisons with small integers will always produce a short
10339 branch.
10340
318db53a 103412009-04-14 Rafael Avila de Espindola <espindola@google.com>
10342
10343 Merge:
318db53a 10344 2008-12-19 Diego Novillo <dnovillo@google.com>
10345
09ec66c8 10346 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
318db53a 10347
7dfbd804 103482009-04-14 Richard Guenther <rguenther@suse.de>
87f9ffa4 10349
10350 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
10351 verification.
10352 (verify_gimple_assign_binary): Likewise. Handle shifts and
10353 rotates correctly.
10354 (verify_gimple_phi): Print the mismatched argument position.
10355 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10356 Fix types.
10357 (vect_update_init_of_dr): Likewise.
10358 * matrix-reorg.c (transform_access_sites): Do what the
10359 comment suggests.
10360 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
10361
943327c1 103622009-04-13 Michael Eager <eager@eagercon.com>
b91a266c 10363
10364 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
10365 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
10366 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
89871bab 10367 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
b91a266c 10368 remove duplicate config
10369
bc6e5ec3 103702009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
10371
10372 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
10373 file_name:line_number type locator of the call site.
89871bab 10374
48ca7187 103752009-04-13 Vladimir Makarov <vmakarov@redhat.com>
10376
10377 * genautomata.c: Put blank after comma.
10378 (automaton_decls): New.
10379 (struct unit_usage): Add comments to member next.
10380 (store_alt_unit_usage): Keep the list ordered.
10381 (unit_present_on_list_p, equal_alternatives_p): New.
10382 (check_regexp_units_distribution): Check units distribution
10383 correctness correctly.
10384 (main): Don't write automata if error is found. Return correct
10385 exit code.
89871bab 10386
48ca7187 10387 * config/m68k/cf.md (cfv4_ds): Remove.
10388 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
10389 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
10390
10391 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
10392 power4-load-ext, power4-store, power4-store-update,
10393 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
10394 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
10395 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
10396 power4-sqrt, power4-isync): Modify reservation to make correct
10397 unit distribution to automata.
10398
10399 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
10400 power5-store-update, power5-two, power5-three, power5-lmul,
10401 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
89871bab 10402
a883441f 104032009-04-13 Adam Nemet <anemet@caviumnetworks.com>
10404
10405 * except.c (pass_set_nothrow_function_flags): Set name and add
10406 TODO_dump_func.
10407 (set_nothrow_function_flags): Mention in the dump file when
10408 changing a function to nothrow.
10409
7ad9dc69 104102009-04-13 Ozkan Sezer <sezeroz@gmail.com>
10411
10412 PR/39066
10413 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
10414 instead of unsigned long.
10415
d4fde4e2 104162009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10417
a883441f 10418 * config/arm/arm.c (return_used_this_function): Remove.
10419 (arm_output_function_prologue): Remove use of
d4fde4e2 10420 return_used_this_function.
a883441f 10421 (output_return_instruction): Replace use of
d4fde4e2 10422 return_used_this_function
10423 by cfun->machine->return_used_this_function.
a883441f 10424 (arm_output_epilogue): Likewise.
10425 (arm_output_function_epilogue): Likewise.
10426 (thumb_unexpanded_epilogue): Likewise.
10427 * config/arm/arm.h (struct machine_function):
d4fde4e2 10428 New member return_used_this_function.
a883441f 10429
c65be9f5 104302009-04-12 Mark Mitchell <mark@codesourcery.com>
10431
10432 * doc/install.texi: Correct description of default directory for
10433 --with-gxx-include-dir.
10434
32cbeb74 104352009-04-12 Eric Botcazou <ebotcazou@adacore.com>
f2143b56 10436
10437 * fold-const.c (build_range_check): Properly deal with enumeral and
10438 boolean base types.
10439
d45a307d 104402009-04-12 Steven Bosscher <steven@gcc.gnu.org>
10441
10442 * doc/invoke.texi (max_gcse_passes): Remove documentation.
10443 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
10444 * params.h (MAX_GCSE_PASSES): Remove.
10445 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
10446 in sequence. Remove ability to run multiple passes.
10447 (bypass_jumps): Report run as third CPROP pass.
10448
80621b93 104492009-04-12 Adam Nemet <anemet@caviumnetworks.com>
10450
10451 PR middle-end/39651
10452 * except.c (can_throw_external): Look at each insn in a SEQUENCE
10453 when deciding whether the whole SEQUENCE can throw.
10454
ac89ce58 104552009-04-12 Uros Bizjak <ubizjak@gmail.com>
10456
10457 PR target/39740
10458 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
10459 offseted label references.
10460
a8520ca4 104612009-04-11 Jan Hubicka <jh@suse.cz>
10462
10463 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
10464
8ad54c54 104652009-04-11 Richard Guenther <rguenther@suse.de>
10466
10467 PR middle-end/39732
10468 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
10469 return variables as TREE_ADDRESSABLE.
10470
8ecc6f01 104712009-04-11 Richard Guenther <rguenther@suse.de>
10472
10473 PR tree-optimization/39713
10474 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
10475 reference trees have SSA_NAME operands.
10476
6f1afc19 104772009-04-11 Richard Guenther <rguenther@suse.de>
10478
10479 PR c/39712
10480 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
10481 address expressions.
10482
99ff0267 104832009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
10484
10485 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
10486 match changes in Cygwin 1.7
10487 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
10488 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
10489
390c1c3b 104902009-04-10 Paolo Bonzini <bonzini@gnu.org>
10491
10492 PR tree-optimization/39701
10493 * doc/invoke.texi (Optimization Options): Document change in
10494 meaning and initialization of -fdelete-null-pointer-checks.
10495
7df298fe 104962009-04-10 H.J. Lu <hongjiu.lu@intel.com>
10497
10498 PR middle-end/39701
10499 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
10500
10501 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
10502 here.
10503
10504 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
10505
e6554c42 105062009-04-10 Chao-ying Fu <fu@mips.com>
10507
10508 * doc/tm.texi (Instruction Output): Document
10509 TARGET_ASM_FINAL_POSTSCAN_INSN.
10510 * target.h (final_postscan_insn): New field in asm_out.
10511 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10512 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
10513 * final.c (final_scan_insn): Call
10514 targetm.asm_out.final_postscan_insn after outputting
10515 an asm macro and a normal instruction.
10516
10517 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
10518 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
10519 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
10520 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
10521 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10522
0f921b42 105232009-04-10 Paolo Bonzini <bonzini@gnu.org>
10524
10525 PR middle-end/39701
7df298fe 10526 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
10527 variables as non-NULL even with -fdelete-null-pointer-checks.
0f921b42 10528
7d37c7ae 105292009-04-10 H.J. Lu <hongjiu.lu@intel.com>
10530
10531 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
10532
2556f3ba 105332009-04-09 H.J. Lu <hongjiu.lu@intel.com>
10534
10535 PR target/39678
10536 * config/i386/i386.c (classify_argument): Handle SCmode with
10537 (bit_offset % 64) != 0.
10538
f3933af2 105392009-04-09 Sandra Loosemore <sandra@codesourcery.com>
10540
10541 * doc/invoke.texi (Optimize Options): Add cross-reference to
10542 -Q --help=optimizers examples.
10543
fa59234c 105442009-04-10 Ben Elliston <bje@au.ibm.com>
10545
10546 PR target/36800
10547 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
10548 regalign for the reg == fpr and TDmode case.
10549
2744a89f 105502009-04-09 David Ayers <ayers@fsfe.org>
10551
10552 PR objc/29200
10553 * objc/objc-act.c (warn_with_method): Remove helper function.
10554 (check_duplicates): Call warning and inform directly.
10555 (really_start_method): Likewise.
10556
dab963fb 105572009-04-09 Paolo Bonzini <bonzini@gnu.org>
10558
10559 * expmed.c (expand_divmod): Always use a comparison for a division
10560 by a large unsigned integer.
10561
7df298fe 10562 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
10563 for things others than variables or functions as nonzero.
dab963fb 10564
6bc9506f 105652009-04-09 Nick Clifton <nickc@redhat.com>
10566
10567 * unwind-compat.c: Change copyright header to refer to version
10568 3 of the GNU General Public License with version 3.1 of the
10569 GCC Runtime Library Exception and to point readers at the
c72c72ef 10570 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
6bc9506f 10571 * config/alpha/crtfastmath.c: Likewise.
10572 * config/alpha/linux-unwind.h: Likewise.
10573 * config/alpha/qrnnd.asm: Likewise.
10574 * config/alpha/vms-crt0-64.c: Likewise.
10575 * config/alpha/vms-crt0.c: Likewise.
10576 * config/alpha/vms-dwarf2.asm: Likewise.
10577 * config/alpha/vms-dwarf2eh.asm: Likewise.
10578 * config/alpha/vms-psxcrt0-64.c: Likewise.
10579 * config/alpha/vms-psxcrt0.c: Likewise.
10580 * config/alpha/vms_tramp.asm: Likewise.
10581 * config/arc/initfini.c: Likewise.
10582 * config/arc/lib1funcs.asm: Likewise.
10583 * config/arm/bpabi-v6m.S: Likewise.
10584 * config/arm/bpabi.S: Likewise.
10585 * config/arm/bpabi.c: Likewise.
10586 * config/arm/crti.asm: Likewise.
10587 * config/arm/crtn.asm: Likewise.
10588 * config/arm/ieee754-df.S: Likewise.
10589 * config/arm/ieee754-sf.S: Likewise.
10590 * config/arm/lib1funcs.asm: Likewise.
10591 * config/arm/libunwind.S: Likewise.
10592 * config/arm/linux-atomic.c: Likewise.
10593 * config/arm/mmintrin.h: Likewise.
10594 * config/arm/pr-support.c: Likewise.
10595 * config/arm/unaligned-funcs.c: Likewise.
10596 * config/arm/unwind-arm.c: Likewise.
10597 * config/arm/unwind-arm.h: Likewise.
10598 * config/avr/libgcc.S: Likewise.
10599 * config/bfin/crti.s: Likewise.
10600 * config/bfin/crtlibid.s: Likewise.
10601 * config/bfin/crtn.s: Likewise.
10602 * config/bfin/lib1funcs.asm: Likewise.
10603 * config/bfin/linux-unwind.h: Likewise.
10604 * config/cris/arit.c: Likewise.
10605 * config/cris/cris_abi_symbol.c: Likewise.
10606 * config/darwin-64.c: Likewise.
10607 * config/darwin-crt2.c: Likewise.
10608 * config/darwin-crt3.c: Likewise.
10609 * config/darwin.h: Likewise.
10610 * config/dbxelf.h: Likewise.
10611 * config/dfp-bit.c: Likewise.
10612 * config/dfp-bit.h: Likewise.
10613 * config/elfos.h: Likewise.
10614 * config/fixed-bit.c: Likewise.
10615 * config/fixed-bit.h: Likewise.
10616 * config/fp-bit.c: Likewise.
10617 * config/fp-bit.h: Likewise.
10618 * config/fr30/crti.asm: Likewise.
10619 * config/fr30/crtn.asm: Likewise.
10620 * config/fr30/lib1funcs.asm: Likewise.
10621 * config/freebsd-spec.h: Likewise.
10622 * config/frv/cmovd.c: Likewise.
10623 * config/frv/cmovh.c: Likewise.
10624 * config/frv/cmovw.c: Likewise.
10625 * config/frv/frvbegin.c: Likewise.
10626 * config/frv/frvend.c: Likewise.
10627 * config/frv/lib1funcs.asm: Likewise.
10628 * config/glibc-stdint.h: Likewise.
10629 * config/h8300/clzhi2.c: Likewise.
10630 * config/h8300/crti.asm: Likewise.
10631 * config/h8300/crtn.asm: Likewise.
10632 * config/h8300/ctzhi2.c: Likewise.
10633 * config/h8300/fixunssfsi.c: Likewise.
10634 * config/h8300/lib1funcs.asm: Likewise.
10635 * config/h8300/parityhi2.c: Likewise.
10636 * config/h8300/popcounthi2.c: Likewise.
10637 * config/i386/ammintrin.h: Likewise.
10638 * config/i386/att.h: Likewise.
10639 * config/i386/avxintrin.h: Likewise.
10640 * config/i386/biarch64.h: Likewise.
10641 * config/i386/bmmintrin.h: Likewise.
10642 * config/i386/cpuid.h: Likewise.
10643 * config/i386/cross-stdarg.h: Likewise.
10644 * config/i386/crtfastmath.c: Likewise.
10645 * config/i386/crtprec.c: Likewise.
10646 * config/i386/cygming-crtbegin.c: Likewise.
10647 * config/i386/cygming-crtend.c: Likewise.
10648 * config/i386/cygwin.asm: Likewise.
10649 * config/i386/emmintrin.h: Likewise.
10650 * config/i386/gmm_malloc.h: Likewise.
10651 * config/i386/gthr-win32.c: Likewise.
10652 * config/i386/i386.h: Likewise.
10653 * config/i386/immintrin.h: Likewise.
10654 * config/i386/linux-unwind.h: Likewise.
10655 * config/i386/linux64.h: Likewise.
10656 * config/i386/mm3dnow.h: Likewise.
10657 * config/i386/mmintrin-common.h: Likewise.
10658 * config/i386/mmintrin.h: Likewise.
10659 * config/i386/nmmintrin.h: Likewise.
10660 * config/i386/pmm_malloc.h: Likewise.
10661 * config/i386/pmmintrin.h: Likewise.
10662 * config/i386/smmintrin.h: Likewise.
10663 * config/i386/sol2-c1.asm: Likewise.
10664 * config/i386/sol2-ci.asm: Likewise.
10665 * config/i386/sol2-cn.asm: Likewise.
10666 * config/i386/sol2-gc1.asm: Likewise.
10667 * config/i386/tmmintrin.h: Likewise.
10668 * config/i386/unix.h: Likewise.
10669 * config/i386/w32-unwind.h: Likewise.
10670 * config/i386/wmmintrin.h: Likewise.
10671 * config/i386/x86-64.h: Likewise.
10672 * config/i386/x86intrin.h: Likewise.
10673 * config/i386/xmmintrin.h: Likewise.
10674 * config/ia64/crtbegin.asm: Likewise.
10675 * config/ia64/crtend.asm: Likewise.
10676 * config/ia64/crtfastmath.c: Likewise.
10677 * config/ia64/crti.asm: Likewise.
10678 * config/ia64/crtn.asm: Likewise.
10679 * config/ia64/fde-glibc.c: Likewise.
10680 * config/ia64/lib1funcs.asm: Likewise.
10681 * config/ia64/linux-unwind.h: Likewise.
10682 * config/ia64/quadlib.c: Likewise.
10683 * config/ia64/unwind-ia64.c: Likewise.
10684 * config/linux.h: Likewise.
10685 * config/m32c/m32c-lib1.S: Likewise.
10686 * config/m32c/m32c-lib2-trapv.c: Likewise.
10687 * config/m32c/m32c-lib2.c: Likewise.
10688 * config/m32r/initfini.c: Likewise.
10689 * config/m68hc11/larith.asm: Likewise.
10690 * config/m68hc11/m68hc11-crt0.S: Likewise.
10691 * config/m68k/cf.md: Likewise.
10692 * config/m68k/crti.s: Likewise.
10693 * config/m68k/crtn.s: Likewise.
10694 * config/m68k/lb1sf68.asm: Likewise.
10695 * config/m68k/linux-unwind.h: Likewise.
10696 * config/mcore/crti.asm: Likewise.
10697 * config/mcore/crtn.asm: Likewise.
10698 * config/mcore/lib1.asm: Likewise.
10699 * config/mips/linux-unwind.h: Likewise.
10700 * config/mips/loongson.h: Likewise.
10701 * config/mips/mips16.S: Likewise.
10702 * config/mmix/crti.asm: Likewise.
10703 * config/mmix/crtn.asm: Likewise.
10704 * config/pa/fptr.c: Likewise.
10705 * config/pa/hpux-unwind.h: Likewise.
10706 * config/pa/lib2funcs.asm: Likewise.
10707 * config/pa/linux-atomic.c: Likewise.
10708 * config/pa/linux-unwind.h: Likewise.
10709 * config/pa/milli64.S: Likewise.
10710 * config/pa/quadlib.c: Likewise.
10711 * config/pa/stublib.c: Likewise.
10712 * config/picochip/libgccExtras/adddi3.asm: Likewise.
10713 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
10714 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
10715 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
10716 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
10717 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
10718 * config/picochip/libgccExtras/divmod15.asm: Likewise.
10719 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
10720 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
10721 * config/picochip/libgccExtras/longjmp.asm: Likewise.
10722 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
10723 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
10724 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
10725 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
10726 * config/picochip/libgccExtras/setjmp.asm: Likewise.
10727 * config/picochip/libgccExtras/subdi3.asm: Likewise.
10728 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
10729 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
10730 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
10731 * config/rs6000/750cl.h: Likewise.
10732 * config/rs6000/altivec.h: Likewise.
10733 * config/rs6000/biarch64.h: Likewise.
10734 * config/rs6000/crtresfpr.asm: Likewise.
10735 * config/rs6000/crtresgpr.asm: Likewise.
10736 * config/rs6000/crtresxfpr.asm: Likewise.
10737 * config/rs6000/crtresxgpr.asm: Likewise.
10738 * config/rs6000/crtsavfpr.asm: Likewise.
10739 * config/rs6000/crtsavgpr.asm: Likewise.
10740 * config/rs6000/darwin-asm.h: Likewise.
10741 * config/rs6000/darwin-fallback.c: Likewise.
10742 * config/rs6000/darwin-fpsave.asm: Likewise.
10743 * config/rs6000/darwin-ldouble.c: Likewise.
10744 * config/rs6000/darwin-tramp.asm: Likewise.
10745 * config/rs6000/darwin-unwind.h: Likewise.
10746 * config/rs6000/darwin-vecsave.asm: Likewise.
10747 * config/rs6000/darwin-world.asm: Likewise.
10748 * config/rs6000/e500crtres32gpr.asm: Likewise.
10749 * config/rs6000/e500crtres64gpr.asm: Likewise.
10750 * config/rs6000/e500crtres64gprctr.asm: Likewise.
10751 * config/rs6000/e500crtrest32gpr.asm: Likewise.
10752 * config/rs6000/e500crtrest64gpr.asm: Likewise.
10753 * config/rs6000/e500crtresx32gpr.asm: Likewise.
10754 * config/rs6000/e500crtresx64gpr.asm: Likewise.
10755 * config/rs6000/e500crtsav32gpr.asm: Likewise.
10756 * config/rs6000/e500crtsav64gpr.asm: Likewise.
10757 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
10758 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
10759 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
10760 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
10761 * config/rs6000/eabi-ci.asm: Likewise.
10762 * config/rs6000/eabi-cn.asm: Likewise.
10763 * config/rs6000/eabi.asm: Likewise.
10764 * config/rs6000/linux-unwind.h: Likewise.
10765 * config/rs6000/linux64.h: Likewise.
10766 * config/rs6000/paired.h: Likewise.
10767 * config/rs6000/paired.md: Likewise.
10768 * config/rs6000/ppc64-fp.c: Likewise.
10769 * config/rs6000/ppu_intrinsics.h: Likewise.
10770 * config/rs6000/rs6000.h: Likewise.
10771 * config/rs6000/si2vmx.h: Likewise.
10772 * config/rs6000/sol-ci.asm: Likewise.
10773 * config/rs6000/sol-cn.asm: Likewise.
10774 * config/rs6000/spe.h: Likewise.
10775 * config/rs6000/spu2vmx.h: Likewise.
10776 * config/rs6000/sysv4.h: Likewise.
10777 * config/rs6000/tramp.asm: Likewise.
10778 * config/rs6000/vec_types.h: Likewise.
10779 * config/s390/linux-unwind.h: Likewise.
10780 * config/s390/tpf-unwind.h: Likewise.
10781 * config/score/crti.asm: Likewise.
10782 * config/score/crtn.asm: Likewise.
10783 * config/sh/crt1.asm: Likewise.
10784 * config/sh/crti.asm: Likewise.
10785 * config/sh/crtn.asm: Likewise.
10786 * config/sh/divtab-sh4-300.c: Likewise.
10787 * config/sh/divtab-sh4.c: Likewise.
10788 * config/sh/divtab.c: Likewise.
10789 * config/sh/lib1funcs-4-300.asm: Likewise.
10790 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
10791 * config/sh/lib1funcs.asm: Likewise.
10792 * config/sh/lib1funcs.h: Likewise.
10793 * config/sh/linux-atomic.asm: Likewise.
10794 * config/sh/linux-unwind.h: Likewise.
10795 * config/sh/shmedia.h: Likewise.
10796 * config/sh/sshmedia.h: Likewise.
10797 * config/sh/ushmedia.h: Likewise.
10798 * config/sparc/crtfastmath.c: Likewise.
10799 * config/sparc/linux-unwind.h: Likewise.
10800 * config/sparc/sol2-c1.asm: Likewise.
10801 * config/sparc/sol2-ci.asm: Likewise.
10802 * config/sparc/sol2-cn.asm: Likewise.
10803 * config/spu/divmodti4.c: Likewise.
10804 * config/spu/divv2df3.c: Likewise.
10805 * config/spu/float_disf.c: Likewise.
10806 * config/spu/float_unsdidf.c: Likewise.
10807 * config/spu/float_unsdisf.c: Likewise.
10808 * config/spu/float_unssidf.c: Likewise.
10809 * config/spu/mfc_multi_tag_release.c: Likewise.
10810 * config/spu/mfc_multi_tag_reserve.c: Likewise.
10811 * config/spu/mfc_tag_release.c: Likewise.
10812 * config/spu/mfc_tag_reserve.c: Likewise.
10813 * config/spu/mfc_tag_table.c: Likewise.
10814 * config/spu/multi3.c: Likewise.
10815 * config/spu/spu_internals.h: Likewise.
10816 * config/spu/spu_intrinsics.h: Likewise.
10817 * config/spu/spu_mfcio.h: Likewise.
10818 * config/spu/vec_types.h: Likewise.
10819 * config/spu/vmx2spu.h: Likewise.
10820 * config/stormy16/stormy16-lib2.c: Likewise.
10821 * config/svr4.h: Likewise.
10822 * config/sync.c: Likewise.
10823 * config/v850/lib1funcs.asm: Likewise.
10824 * config/vxlib-tls.c: Likewise.
10825 * config/vxlib.c: Likewise.
10826 * config/vxworks-dummy.h: Likewise.
10827 * config/xtensa/crti.asm: Likewise.
10828 * config/xtensa/crtn.asm: Likewise.
10829 * config/xtensa/ieee754-df.S: Likewise.
10830 * config/xtensa/ieee754-sf.S: Likewise.
10831 * config/xtensa/lib1funcs.asm: Likewise.
10832 * config/xtensa/lib2funcs.S: Likewise.
10833 * config/xtensa/linux-unwind.h: Likewise.
10834 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
10835 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
10836 * coretypes.h: Likewise.
10837 * crtstuff.c: Likewise.
10838 * defaults.h: Likewise.
10839 * dwarf2.h: Likewise.
10840 * emutls.c: Likewise.
10841 * gbl-ctors.h: Likewise.
10842 * gcov-io.h: Likewise.
10843 * ginclude/float.h: Likewise.
10844 * ginclude/iso646.h: Likewise.
10845 * ginclude/stdarg.h: Likewise.
10846 * ginclude/stdbool.h: Likewise.
10847 * ginclude/stddef.h: Likewise.
10848 * ginclude/stdfix.h: Likewise.
10849 * ginclude/stdint-gcc.h: Likewise.
10850 * ginclude/tgmath.h: Likewise.
10851 * gthr-aix.h: Likewise.
10852 * gthr-dce.h: Likewise.
10853 * gthr-gnat.c: Likewise.
10854 * gthr-gnat.h: Likewise.
10855 * gthr-lynx.h: Likewise.
10856 * gthr-mipssde.h: Likewise.
10857 * gthr-nks.h: Likewise.
10858 * gthr-posix.c: Likewise.
10859 * gthr-posix.h: Likewise.
10860 * gthr-posix95.h: Likewise.
10861 * gthr-rtems.h: Likewise.
10862 * gthr-single.h: Likewise.
10863 * gthr-solaris.h: Likewise.
10864 * gthr-tpf.h: Likewise.
10865 * gthr-vxworks.h: Likewise.
10866 * gthr-win32.h: Likewise.
10867 * gthr.h: Likewise.
10868 * libgcc2.c: Likewise.
10869 * libgcc2.h: Likewise.
10870 * libgcov.c: Likewise.
10871 * tsystem.h: Likewise.
10872 * typeclass.h: Likewise.
10873 * unwind-c.c: Likewise.
10874 * unwind-compat.h: Likewise.
10875 * unwind-dw2-fde-compat.c: Likewise.
10876 * unwind-dw2-fde-darwin.c: Likewise.
10877 * unwind-dw2-fde-glibc.c: Likewise.
10878 * unwind-dw2-fde.c: Likewise.
10879 * unwind-dw2-fde.h: Likewise.
10880 * unwind-dw2.c: Likewise.
10881 * unwind-dw2.h: Likewise.
10882 * unwind-generic.h: Likewise.
10883 * unwind-pe.h: Likewise.
10884 * unwind-sjlj.c: Likewise.
10885 * unwind.inc: Likewise.
10886 * config/arm/neon-gen.ml: Change generated copyright header to
10887 refer to version 3 of the GNU General Public License with
10888 version 3.1 of the GCC Runtime Library Exception and to point
10889 readers at the COPYING3 and COPYING3.RUNTIME files and the
10890 FSF's license web page.
10891 * config/arm/arm_neon.h: Regenerate.
10892
108932009-04-09 Jakub Jelinek <jakub@redhat.com>
10894
10895 * config/cris/cris.md: Change copyright header to refer to version
10896 3 of the GNU General Public License.
10897 * doc/install.texi2html: Change copyright header to refer to version
10898 3 of the GNU General Public License and to point readers at the
10899 COPYING3 file and the FSF's license web page.
10900 * config/vax/linux.h: Likewise.
10901
8e58aded 109022009-04-09 Paolo Bonzini <bonzini@gnu.org>
10903
7df298fe 10904 * config/i386/i386.md (cmpcc): New.
10905 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
10906 (sync_compare_and_swap_cc*): Delete.
10907
10908 * config/s390/s390.c (s390_compare_emitted): Remove.
10909 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
10910 s390_compare_emitted used to be handled. Assert that modes match.
10911 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
10912 refer to sync_compare_and_swap_ccsi.
10913 * config/s390/s390.h (s390_compare_emitted): Remove.
10914 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
10915 instead of s390_compare_emitted.
10916 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
10917 instead of s390_compare_emitted.
10918 * config/s390/s390.md (cmpcc): New.
10919 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
10920 CC_REGNUM, do not pretend it's set.
10921 (sync_compare_and_swap_cc*): Delete.
10922 * config/s390/predicates.md (cc_reg_operand): New.
10923
10924 * expr.c (sync_compare_and_swap_cc): Delete.
10925 * optabs.h (sync_compare_and_swap_cc): Delete.
10926 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
10927 is being used with can_compare_p.
10928 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
10929 (find_cc_set): New.
10930 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
10931 look for a MODE_CC set instead. Use emit_store_flag.
10932 (expand_compare_and_swap_loop): Likewise, with some additional
10933 complication to avoid a force_reg when useless. Use
10934 emit_cmp_and_jump_insns.
10935 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
10936 * doc/md.texi (sync_compare_and_swap_cc): Merge with
10937 sync_compare_and_swap documentation.
8e58aded 10938
98b64106 109392009-04-09 Jan Hubicka <jh@suse.cz>
10940
10941 * except.c (find_prev_try): Break out from ....
10942 (duplicate_eh_regions): ... here; properly update prev_try pointers
10943 when duplication part of tree.
10944 (dump_eh_tree): Improve dumping.
10945 (verify_eh_region): New.
10946 (verify_eh_tree): Use it.
10947
d7dfb761 109482009-04-06 Richard Guenther <rguenther@suse.de>
10949
10950 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
10951 &ARRAY addresses by adjusting their types and prepending
10952 a conversion.
10953 * tree-cfg.c (verify_gimple_assign_single): Verify that
10954 addresses are correct.
10955
87c5de3b 109562009-04-09 Richard Guenther <rguenther@suse.de>
10957
10958 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
10959 indices into an array reference if possible.
10960 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10961 Fold POINTER_PLUS_EXPR statements with invariant address.
10962
50ec89c7 109632009-04-09 Alan Modra <amodra@bigpond.net.au>
10964
10965 PR target/39634
10966 * config.gcc (powerpc64-*-linux*): Always build biarch.
10967
482c1ea0 109682009-04-09 Joseph Myers <joseph@codesourcery.com>
10969
10970 PR c/39613
10971 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
10972 it and pedwarn if this results in an INTEGER_CST.
10973
fec76ae9 109742009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10975
10976 * doc/install.texi: Update minimum GMP version. Remove obsolete
10977 text in MPFR section.
10978
a974aa3e 109792009-04-08 Jakub Jelinek <jakub@redhat.com>
10980
10981 * dwarf2out.c (class_scope_p): New static inline.
10982 (class_or_namespace_scope_p): Use it.
10983 (gen_variable_die): Use DW_TAG_member tag for static data member
10984 declarations instead of DW_TAG_variable.
10985
e1a7ccb9 10986 PR middle-end/39573
10987 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
10988 variables.
10989
94373fa5 109902009-04-08 Richard Guenther <rguenther@suse.de>
10991
10992 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
10993 valueize random data.
10994
b5e8a0bc 109952009-04-08 David Edelsohn <edelsohn@gnu.org>
10996
10997 * config.gcc (aix tm_file): Add aix-stdint.h.
10998 (aix tm clause use_gcc_stdint): Set to wrap.
10999 * config/rs6000/aix-stdint.h: New file.
89871bab 11000
3a44a278 110012009-04-08 Richard Guenther <rguenther@suse.de>
11002
11003 PR middle-end/36291
11004 * tree-dfa.c (add_referenced_var): Do not recurse into
11005 global initializers.
11006 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
11007 exposed variables.
11008 (fold_const_aggregate_ref): Likewise.
11009
c429965c 110102009-04-08 Paolo Bonzini <bonzini@gnu.org>
11011
0ed4dbb4 11012 * recog.c (ordered_comparison_operator): New.
11013 * gensupport.c (std_preds): Add it.
c429965c 11014 * doc/md.texi (Machine-Independent Predicates): Document it.
11015
48d5ef93 110162009-04-08 Jan Hubicka <jh@suse.cz>
11017
11018 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
11019 * function.h (rtl_eh): Remove exception_handler_label_map.
11020 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
11021 remove_exception_handler_label, for_each_eh_label_1): Remove.
11022 (rtl_remove_unreachable_regions): Remove.
11023 (convert_from_eh_region_ranges): Do not remove unreachable regions.
11024 (find_exception_handler_labels): Don't build the hashtable.
11025 (maybe_remove_eh_handler): Remove.
11026 (for_each_eh_label): Rewrite to walk the tree.
11027 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
11028 * except.h (maybe_remove_eh_handler): Remove.
11029 * passes.c (init_optimization_passes): Schedule second EH cleanup
11030 before out-of-ssa.
11031 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
11032 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
11033
cbb955b0 110342009-04-08 Paolo Bonzini <bonzini@gnu.org>
11035
11036 * genoutput.c (validate_optab_operands): New.
11037 (gen_insn, gen_expand): Call it.
11038
11039 * genflags.c (gen_insn): Detect misused iterators.
11040 (main): Pass line_no to gen_insn, exit with status 1 on error.
11041
11042 * genextract.c (line_no): Make global.
11043 (VEC_safe_set_locstr): Change assertion to error message.
11044 (main): Exit with status 1 on error.
11045
9a8bed72 110462009-04-08 Joseph Myers <joseph@codesourcery.com>
11047
11048 PR c/39614
11049 PR c/39673
11050 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11051 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11052 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
11053 * c-convert.c (convert): Do not call fold on results of conversion
11054 functions when the result is a C_MAYBE_CONST_EXPR.
11055 * c-parser.c (c_parser_postfix_expression): Do not fold condition
11056 of __builtin_choose_expr.
11057 * c-typeck.c (remove_c_maybe_const_expr): New.
11058 (build_unary_op, build_conditional_expr, build_compound_expr,
11059 build_binary_op, c_objc_common_truthvalue_conversion): Call
11060 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
11061 integer operands.
11062
943327c1 110632009-04-08 Bingfeng Mei <bmei@broadcom.com>
87de4c68 11064
89871bab 11065 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
0ed4dbb4 11066 CODE to produce a new one. Add a prototype to use fold_convert_const
87de4c68 11067
1e37e2e4 110682009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
11069
11070 PR bootstrap/39660
11071 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
11072 mix declarations and code.
11073
c68bcf58 110742009-04-08 Ben Elliston <bje@au.ibm.com>
11075
11076 * gcc.c: Replace `CC' with `GCC' throughout.
11077
a015dc67 110782009-04-07 H.J. Lu <hongjiu.lu@intel.com>
11079
11080 * doc/invoke.texi: Document Atom support.
11081
fc8ee10c 110822009-04-07 Jason Merrill <jason@redhat.com>
11083
11084 PR c++/25185
11085 * c-common.h, c-common.c: Add flag_pretty_templates.
11086 * c-opts.c (c_common_handle_option): Set it.
11087 * c.opt: Add -fno-pretty-templates.
11088 * doc/invoke.texi (C++ Dialect Options): Likewise.
11089
9b57ed9f 110902009-04-07 Uros Bizjak <ubizjak@gmail.com>
11091
11092 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
11093 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
11094 (ia64_expand_builtin): Likewise.
11095
9b973aa6 110962009-04-07 Martin Jambor <mjambor@suse.cz>
11097
11098 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
11099 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
11100 ADDR_EXPRS are include too.
11101
09347e88 111022009-04-07 Richard Guenther <rguenther@suse.de>
11103
11104 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
11105 decls are only used if passes as parameters or if they are
11106 local statics and the call is not to a builtin.
11107 (call_may_clobber_ref_p_1): Likewise.
11108
da4963ce 111092009-04-07 Paolo Bonzini <bonzini@gnu.org>
11110
11111 * expr.c (do_store_flag): Remove last argument. Simplify code
11112 to avoid duplication of tests already done by can_compare_p.
11113 (expand_expr_real_1): Adjust caller.
11114
235155da 111152009-04-07 Paolo Bonzini <bonzini@gnu.org>
11116
9b57ed9f 11117 * optabs.c (can_compare_p): Test the predicate of a
11118 cbranch and cstore pattern.
235155da 11119
2040a7e4 111202009-04-07 Paolo Bonzini <bonzini@gnu.org>
11121
9b57ed9f 11122 * expr.c (convert_move): Use emit_store_flag instead of
11123 "emulating" it.
2040a7e4 11124
a5f5a6f7 111252009-04-07 Paolo Bonzini <bonzini@gnu.org>
11126
9b57ed9f 11127 * config/i386/i386.c (ix86_compare_emitted): Remove.
11128 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
11129 ix86_compare_op0 like ix86_compare_emitted used to be handled.
11130 * config/i386/i386.h (ix86_compare_emitted): Remove.
11131 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
11132 instead of ix86_compare_emitted.
11133 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
a5f5a6f7 11134
fa22494c 111352009-04-07 Andrew Stubbs <ams@codesourcery.com>
11136
11137 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
11138 Add t-sysroot-suffix to tmake_file.
11139 * config/print-sysroot-suffix.sh: New file.
11140 * config/t-sysroot-suffix: New file.
11141
e73bbd21 111422009-04-07 Ben Elliston <bje@au.ibm.com>
11143
11144 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
11145 as the latter produces a warning when the target does not support
11146 infinity.
11147
d5cd42ef 111482009-04-07 Ben Elliston <bje@au.ibm.com>
11149
11150 * dfp.c: Replace type punning assignments with memcpy throughout.
11151 * Makefile.in (dfp.o-warn): Remove.
89871bab 11152
4e5e2802 111532009-04-07 Alan Modra <amodra@bigpond.net.au>
11154
11155 PR target/39634
11156 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
11157 Include soft-fp/t-softfp after rs6000/t-linux64.
11158
30904b2c 111592009-04-06 Eric Botcazou <ebotcazou@adacore.com>
11160
11161 * stor-layout.c (set_sizetype): Use the full precision of their
11162 machine mode for bitsize types.
11163
3544e448 111642009-04-06 H.J. Lu <hongjiu.lu@intel.com>
11165
11166 * config/i386/i386.md: Revert 2 accidental checkins.
11167
fbfe006e 111682009-04-06 Joey Ye <joey.ye@intel.com>
943327c1 11169 Xuepeng Guo <xuepeng.guo@intel.com>
fbfe006e 11170 H.J. Lu <hongjiu.lu@intel.com>
11171
11172 Atom pipeline model, tuning and insn selection.
11173 * config.gcc (atom): Add atom config options and target.
11174
11175 * config/i386/atom.md: New.
11176
11177 * config/i386/i386.c (atom_cost): New cost.
11178 (m_ATOM): New macro flag.
11179 (initial_ix86_tune_features): Set m_ATOM.
11180 (x86_accumulate_outgoing_args): Likewise.
11181 (x86_arch_always_fancy_math_387): Likewise.
11182 (processor_target): Add Atom cost.
11183 (cpu_names): Add Atom cpu name.
11184 (override_options): Set Atom ISA.
11185 (ix86_issue_rate): New case PROCESSOR_ATOM.
11186 (ix86_adjust_cost): Likewise.
11187
11188 * config/i386/i386.h (TARGET_ATOM): New target macro.
11189 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
11190 (TARGET_OPT_AGU): New target option.
11191 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
11192 (processor_type): Add PROCESSOR_ATOM.
11193
11194 * config/i386/i386.md (cpu): Add new value "atom".
11195 (use_carry, movu): New attr.
11196 (atom.md): Include atom.md.
11197 (adddi3_carry_rex64): Set attr "use_carry".
11198 (addqi3_carry): Likewise.
11199 (addhi3_carry): Likewise.
11200 (addsi3_carry): Likewise.
11201 (*addsi3_carry_zext): Likewise.
11202 (subdi3_carry_rex64): Likewise.
11203 (subqi3_carry): Likewise.
11204 (subhi3_carry): Likewise.
11205 (subsi3_carry): Likewise.
11206 (x86_movdicc_0_m1_rex64): Likewise.
11207 (*x86_movdicc_0_m1_se): Likewise.
11208 (x86_movsicc_0_m1): Likewise.
11209 (*x86_movsicc_0_m1_se): Likewise.
11210 (*adddi_1_rex64): Emit add insn as much as possible.
11211 (*addsi_1): Likewise.
11212 (return_internal): Set atom_unit.
11213 (return_internal_long): Likewise.
11214 (return_pop_internal): Likewise.
11215 (*rcpsf2_sse): Set atom_sse_attr attr.
11216 (*qrt<mode>2_sse): Likewise.
11217 (*prefetch_sse): Likewise.
11218
11219 * config/i386/i386-c.c (ix86_target_macros_internal): New case
11220 PROCESSOR_ATOM.
11221 (ix86_target_macros_internal): Likewise.
11222
11223 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
11224 (*prefetch_sse_rex): Likewise.
11225 (sse_rcpv4sf2): Likewise.
11226 (sse_vmrcpv4sf2): Likewise.
11227 (sse_sqrtv4sf2): Likewise.
11228 (<sse>_vmsqrt<mode>2): Likewise.
11229 (sse_ldmxcsr): Likewise.
11230 (sse_stmxcsr): Likewise.
11231 (*sse_sfence): Likewise.
11232 (sse2_clflush): Likewise.
11233 (*sse2_mfence): Likewise.
11234 (*sse2_lfence): Likewise.
11235 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
11236 (<sse>_movup<ssemodesuffixf2c>): Likewise.
11237 (avx_movdqu<avxmodesuffix>): Likewise.
11238 (avx_lddqu<avxmodesuffix>): Likewise.
11239 (sse2_movntv2di): Change attr "type" to "ssemov".
11240 (sse2_movntsi): Likewise.
11241 (rsqrtv8sf2): Change attr "type" to "sseadd".
11242 (sse3_addsubv2df3): Set attr "atom_unit".
11243 (sse3_h<plusminus_insn>v4sf3): Likewise.
11244 (*sse2_pmaddwd): Likewise.
11245 (*vec_extractv2di_1_rex64): Likewise.
11246 (*vec_extractv2di_1_avx): Likewise.
11247 (sse2_psadbw): Likewise.
11248 (ssse3_phaddwv8hi3): Likewise.
11249 (ssse3_phaddwv4hi3): Likewise.
11250 (ssse3_phadddv4si3): Likewise.
11251 (ssse3_phadddv2si3): Likewise.
11252 (ssse3_phaddswv8hi3): Likewise.
11253 (ssse3_phaddswv4hi3): Likewise.
11254 (ssse3_phsubwv8hi3): Likewise.
11255 (ssse3_phsubwv4hi3): Likewise.
11256 (ssse3_phsubdv4si3): Likewise.
11257 (ssse3_phsubdv2si3): Likewise.
11258 (ssse3_phsubswv8hi3): Likewise.
11259 (ssse3_phsubswv4hi3): Likewise.
11260 (ssse3_pmaddubsw128): Likewise.
11261 (sse3_pmaddubsw: Likewise.
11262 (ssse3_palignrti): Likewise.
11263 (ssse3_palignrdi): Likewise.
11264
ad659dc9 112652009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
11266
11267 * doc/install.texi (Specific): Fix two cross-references to MinGW.
11268
220307de 112692009-04-06 Richard Guenther <rguenther@suse.de>
11270
11271 PR tree-optimization/28868
11272 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
11273 of which PHI results we inserted.
11274 (insert_into_preds_of_block): Record inserted PHIs.
11275 (eliminate): Eliminate redundant PHI nodes.
11276 (init_pre): Init inserted_phi_names.
11277
0fefde02 112782009-04-06 Richard Guenther <rguenther@suse.de>
11279
11280 PR tree-optimization/39643
11281 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
11282 IMAGPART_EXPRs of complex constants.
11283 (execute_fold_all_builtins): If we folded a call queue
11284 TODO_update_address_taken.
11285
b07ddb92 112862009-04-06 Jan Hubicka <jh@suse.cz>
11287
11288 PR middle-end/39659
11289 * except.c (remove_unreachable_regions): Propagate may_contain_throw
11290 flag.
11291
85714674 112922009-04-06 Andrew Stubbs <ams@codesourcery.com>
11293
11294 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
11295 delay slot.
11296 (ic_invalidate_array): Likewise.
11297
943327c1 112982009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
c2fd5e89 11299
11300 * calls.c (emit_library_call_value_1): Fix a problem with parameter
11301 alignment for library calls.
11302
8953973a 113032009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
11304
11305 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
11306 (mingw32 tm clause use_gcc_stdint): Set to wrap.
11307 * config/i386/mingw-stdint.h: New file.
11308
eb04d2de 113092009-04-05 Richard Guenther <rguenther@suse.de>
11310
11311 PR tree-optimization/39648
11312 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
11313 our &A vs. &A[0] IL deficiencies.
11314
0f656a57 113152009-04-04 Jan Hubicka <jh@suse.cz>
11316
eb04d2de 11317 * except.c (sjlj_find_directly_reachable_regions): Be ready for
11318 removed toplevel regions.
0f656a57 11319 (sjlj_mark_call_sites): Likewise.
11320
615180dd 113212009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
11322
11323 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
11324 (cygwin tm clause use_gcc_stdint): Set to wrap.
11325 * config/i386/cygwin-stdint.h: New file.
11326
23a3430d 113272009-04-04 Richard Guenther <rguenther@suse.de>
11328
11329 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
11330 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
11331 single-argument PHIs if we are in loop-closed SSA form.
11332 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
11333 for the pre-condition.
11334 (slpeel_tree_peel_loop_to_edge): Likewise.
11335 (vect_build_loop_niters): Take an optional sequence to append stmts.
11336 (vect_generate_tmps_on_preheader): Likewise.
11337 (vect_do_peeling_for_loop_bound): Take extra guards for the
11338 pre-condition.
11339 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
11340 the cost model check.
11341 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
c72c72ef 11342 guards if we are going to peel. Do not apply versioning in that case.
23a3430d 11343 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
11344 (vect_do_peeling_for_loop_bound): Likewise.
11345 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
11346 loop bound only record extra pre-conditions, do not apply loop
11347 versioning.
11348
42e901a3 113492009-04-04 Richard Guenther <rguenther@suse.de>
11350
11351 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
11352 renaming code.
11353
87490e08 113542009-04-04 Jan Hubicka <jh@suse.cz>
11355
11356 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
11357 last_basic_block for size of bb->index indexed array.
11358 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
11359 compute_out, link_btr_uses, build_btr_def_use_webs,
11360 build_btr_def_use_webs, migrate_btr_defs): Likewise.
11361
686e094c 113622009-04-04 Jan Hubicka <jh@suse.cz>
11363
11364 * except.c (remove_eh_handler_and_replace): Break out from ...
11365 (remove_eh_handler): ... here.
11366 (bring_to_root): New function.
11367 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
11368 handled ones, bring others to root of tree.
11369
3bd82487 113702009-04-04 Jan Hubicka <jh@suse.cz>
11371
74eed1ed 11372 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
11373 (all_phis_safe_to_merge): New function.
11374 (update_info): New structure.
11375 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
11376 (cleanup_empty_eh): Update SSA if possible.
3bd82487 11377
17fbf1b8 113782009-04-04 Richard Guenther <rguenther@suse.de>
11379
11380 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
11381 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
11382 (append_vuse): Likewise.
11383
d02454a0 113842009-04-04 Jakub Jelinek <jakub@redhat.com>
11385
11386 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
11387 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
11388 instead of REG_UNSAVED for DW_CFA_undefined.
11389 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
11390 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
11391 outermost frame.
11392
19f6bf8d 113932009-04-04 Richard Earnshaw <rearnsha@arm.com>
11394
11395 PR target/39501
11396 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
11397 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
11398 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
11399
d12dee9c 114002009-04-04 Richard Guenther <rguenther@suse.de>
11401
11402 PR tree-optimization/8781
11403 PR tree-optimization/37892
11404 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
11405 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
11406 (valueize_refs): Call it for *& valueizations.
11407 (shared_reference_ops_from_ref): Rename to ...
11408 (valueize_shared_reference_ops_from_ref): ... this and valueize.
11409 (shared_reference_ops_from_call): Rename to ...
11410 (valueize_shared_reference_ops_from_call): ... this and valueize.
11411 (vn_reference_lookup): Update.
11412 (visit_reference_op_call): Likewise.
11413 * tree-ssa-pre.c (phi_translate_1): Fold *&.
11414 (eliminate): Value-replace the call address in call statements.
11415
507b89a4 114162009-04-04 Richard Guenther <rguenther@suse.de>
11417
11418 PR tree-optimization/39636
11419 * tree-ssa-forwprop.c
11420 (forward_propagate_addr_into_variable_array_index): Check for
11421 GIMPLE_ASSIGN before accessing the rhs code.
11422
4a83184b 114232009-04-03 Jason Merrill <jason@redhat.com>
11424
11425 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
11426
d363dedc 114272009-04-03 Steve Ellcey <sje@cup.hp.com>
11428
11429 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
11430 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
11431 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
11432 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
11433 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
11434 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
11435 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
11436 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
11437 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
11438 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
11439 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
11440 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
11441 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
11442 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
11443 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
11444 Use fr_reg_or_fp01_operand instead of fr_register_operand
11445
11446 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
11447 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
11448 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
11449
2dd81ece 114502009-04-03 Vladimir Makarov <vmakarov@redhat.com>
11451
acc6de19 11452 PR rtl-optimization/39607
11453 PR rtl-optimization/39631
c72c72ef 11454
11455 Revert:
89871bab 11456
2dd81ece 11457 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11458 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11459 instead of DF_LR_OUT.
11460 * ira-lives.c (process_bb_node_lives): Ditto.
11461 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11462 instead of DF_LR_{OUT,IN}.
11463 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11464 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11465
41709826 114662009-04-03 Steven Bosscher <steven@gcc.gnu.org>
11467
11468 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
11469 (execute_lower_omp): Always run but take the short way out if -fopenmp
11470 is not given.
11471 (gate_lower_omp): Remove, forcing the pass manager to always run the
11472 pass and always set PROP_gimple_lomp.
11473 (pass_lower_omp): Remove gate function.
11474 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
11475 PROP_trees. Instead, require it.
11476 * ipa-cp.c (pass_ipa_cp): Likewise.
11477 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
11478 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
11479 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
11480 and PROP_gimple_leh.
11481
dd277d48 114822009-04-03 Richard Guenther <rguenther@suse.de>
11483
11484 PR middle-end/13146
11485 PR tree-optimization/23940
11486 PR tree-optimization/33237
11487 PR middle-end/33974
11488 PR middle-end/34093
11489 PR tree-optimization/36201
11490 PR tree-optimization/36230
11491 PR tree-optimization/38049
11492 PR tree-optimization/38207
11493 PR tree-optimization/38230
11494 PR tree-optimization/38301
11495 PR tree-optimization/38585
11496 PR middle-end/38895
11497 PR tree-optimization/38985
11498 PR tree-optimization/39299
11499 * tree-ssa-structalias.h: Remove.
11500 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
11501 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
11502 (struct vuse_element_d): Remove.
11503 (struct vuse_vec_d): Likewise.
11504 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
11505 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
11506 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
11507 VUSE_ELEMENT_VAR): Likewise.
11508 (struct voptype_d): Likewise.
11509 (NUM_VOP_FREE_BUCKETS): Likewise.
11510 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
11511 (struct stmt_operands_d): Remove.
11512 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
11513 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
11514 VDEF_NUM, VDEF_VECT): Likewise.
11515 (copy_virtual_operands): Remove.
11516 (operand_build_cmp): Likewise.
11517 (create_ssa_artificial_load_stmt): Likewise.
11518 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
11519 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
11520 vuse_index and mayuse_index members. Pack and move done and iter_type
11521 members to the front.
11522 (SSA_OP_VMAYUSE): Remove.
11523 (SSA_OP_VIRTUAL_USES): Adjust.
11524 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
11525 (unlink_stmt_vdef): Declare.
11526 (add_to_addressable_set): Remove.
11527 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
11528 (vrp_visit_stmt): Likewise.
11529 * doc/tree-ssa.texi (Alias analysis): Update.
11530 * doc/invoke.texi (max-aliased-vops): Remove docs.
11531 (avg-aliased-vops): Likewise.
11532 * tree-into-ssa.c (syms_to_rename): Remove.
11533 (need_to_update_vops_p): Likewise.
11534 (need_to_initialize_update_ssa_p): Rename to ...
11535 (update_ssa_initialized_fn): ... this. Track function we are
11536 initialized for.
11537 (symbol_marked_for_renaming): Simplify.
11538 (add_new_name_mapping): Do not set need_to_update_vops_p.
11539 (dump_currdefs): Use SYMS_TO_RENAME.
11540 (rewrite_update_stmt): Always walk all uses/defs.
11541 (dump_update_ssa): Adjust.
11542 (init_update_ssa): Take function argument. Track what we are
11543 initialized for.
11544 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
11545 (create_new_def_for): Initialize for cfun, assert we are initialized
11546 for cfun.
11547 (mark_sym_for_renaming): Simplify.
11548 (mark_set_for_renaming): Do not initialize update-ssa.
11549 (need_ssa_update_p): Simplify. Take function argument.
11550 (name_mappings_registered_p): Assert we ask for the correct function.
11551 (name_registered_for_update_p): Likewise.
11552 (ssa_names_to_replace): Likewise.
11553 (release_ssa_name_after_update_ssa): Likewise.
11554 (update_ssa): Likewise. Use SYMS_TO_RENAME.
11555 (dump_decl_set): Do not print a newline.
11556 (debug_decl_set): Do it here.
11557 (dump_update_ssa): And here.
11558 * tree-ssa-loop-im.c (move_computations): Adjust.
11559 (movement_possibility): Likewise.
11560 (determine_max_movement): Likewise.
11561 (gather_mem_refs_stmt): Likewise.
11562 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
11563 or NAME_MEMORY_TAG.
11564 * tree-complex.c (update_all_vops): Remove.
11565 (expand_complex_move): Adjust.
11566 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
11567 Simplify test for memory referencing statement. Exclude
11568 non-invariant ADDR_EXPRs.
11569 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
11570 * tree-loop-distribution.c (generate_memset_zero): Adjust.
11571 (rdg_flag_uses): Likewise.
11572 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
11573 related code.
11574 (tree_optimize_tail_calls_1): Also split the
11575 edge from the entry block if we have degenerate PHI nodes in
11576 the first basic block.
11577 * tree.c (init_ttree): Remove memory-tag related code.
11578 (tree_code_size): Likewise.
11579 (tree_node_structure): Likewise.
11580 (build7_stat): Re-write to be build6_stat.
11581 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
11582 (SSA_VAR_P): Adjust.
11583 (struct tree_memory_tag): Remove.
11584 (struct tree_memory_partition_tag): Likewise.
11585 (union tree_node): Adjust.
11586 (build7): Re-write to be build6.
11587 * tree-pass.h (pass_reset_cc_flags): Remove.
11588 (TODO_update_address_taken): New flag.
11589 (pass_simple_dse): Remove.
11590 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
11591 * params.h (MAX_ALIASED_VOPS): Remove.
11592 (AVG_ALIASED_VOPS): Likewise.
11593 * omp-low.c (expand_omp_taskreg): Update SSA form.
11594 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
11595 aliases the lhs in a copy stmt.
11596 * tree-ssa-dse.c (struct address_walk_data): Remove.
11597 (memory_ssa_name_same): Likewise.
11598 (memory_address_same): Likewise.
11599 (get_kill_of_stmt_lhs): Likewise.
11600 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
11601 unused stores. Look through PHI nodes into post-dominated regions.
11602 (dse_optimize_stmt): Simplify. Properly remove stores.
11603 (tree_ssa_dse): Compute dominators.
11604 (execute_simple_dse): Remove.
11605 (pass_simple_dse): Likewise.
11606 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
11607 gimple_loaded_syms and gimple_stored_syms computation.
11608 * toplev.c (dump_memory_report): Dump alias and pta stats.
11609 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
11610 (vn_reference_eq): Likewise.
11611 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
11612 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
11613 valueize_vuses): Remove.
11614 (get_def_ref_stmt_vuses): Simplify. Rename to ...
11615 (get_def_ref_stmt_vuse): ... this.
11616 (vn_reference_lookup_2): New function.
11617 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
11618 walking equivalent vuses. Simplify.
11619 (vn_reference_lookup): Likewise.
11620 (vn_reference_insert): Likewise.
11621 (vn_reference_insert_pieces): Likewise.
11622 (visit_reference_op_call): Simplify.
11623 (visit_reference_op_load): Likewise.
11624 (visit_reference_op_store): Likewise.
11625 (init_scc_vn): Remove shared_lookup_vuses initialization.
11626 (free_scc_vn): Remove shared_lookup_vuses freeing.
11627 (sort_vuses, sort_vuses_heap): Remove.
11628 (get_ref_from_reference_ops): Export.
11629 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
11630 vector with single vuse pointer.
11631 (vn_reference_lookup_pieces, vn_reference_lookup,
11632 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
11633 (shared_vuses_from_stmt): Remove.
11634 (get_ref_from_reference_ops): Declare.
11635 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
11636 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
11637 memory-tag related code.
11638 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
11639 (likely_value): Add comment, skip static-chain of call statements.
11640 (surely_varying_stmt_p): Adjust.
11641 (gimplify_and_update_call_from_tree): Likewise.
11642 (execute_fold_all_builtins): Do not rebuild alias info.
11643 (gimplify_and_update_call_from_tree): Properly update VOPs.
11644 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
11645 (copy_ref_info): Remove memory-tag related code.
11646 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
11647 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
11648 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
11649 computation.
11650 * tree-ssa-dom.c (gimple_p): Remove typedef.
11651 (eliminate_redundant_computations): Adjust.
11652 (record_equivalences_from_stmt): Likewise.
11653 (avail_expr_hash): Likewise.
11654 (avail_expr_eq): Likewise.
c72c72ef 11655 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
dd277d48 11656 (stmt_makes_single_load): Likewise.
11657 (stmt_makes_single_store): Likewise.
11658 * tree-ssa-alias.c: Rewrite completely.
11659 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
11660 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
11661 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
11662 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
11663 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
11664 Remove public functions.
11665 (pass_reset_cc_flags): Remove.
11666 (pass_build_alias): Move ...
11667 * tree-ssa-structalias.c (pass_build_alias): ... here.
11668 * tree-ssa-alias.c (may_be_aliased): Move ...
11669 * tree-flow-inline.h (may_be_aliased): ... here.
11670 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
11671 count_uses_and_derefs): Move ...
11672 * gimple.c: ... here.
11673 * gimple.h (count_uses_and_derefs): Declare.
11674 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
11675 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
11676 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
11677 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
11678 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
11679 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
11680 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
11681 New functions.
11682 * tree-dfa.c (refs_may_alias_p): Move ...
11683 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
11684 * tree-ssa-alias.h: New file.
11685 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
11686 (statement_sink_location): Likewise.
11687 * opts.c (decode_options): Do not adjust max-aliased-vops or
11688 avg-aliased-vops values.
11689 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
11690 (TV_CALL_CLOBBER): Likewise.
11691 (TV_FLOW_SENSITIVE): Likewise.
11692 (TV_FLOW_INSENSITIVE): Likewise.
11693 (TV_MEMORY_PARTITIONING): Likewise.
11694 (TV_ALIAS_STMT_WALK): New timevar.
11695 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
11696 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
11697 (get_address_description): Remove memory-tag related code.
11698 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
11699 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
11700 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
11701 and immediate uses in statements. Document.
11702 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
11703 (dump_symbols): Remove.
11704 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
11705 * alias.c (get_deref_alias_set): New function split out from ...
11706 (get_alias_set): ... here.
11707 * alias.h (get_deref_alias_set): Declare.
11708 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
11709 type parameter. Remove restrict pointer handling. Create a
11710 ref-all pointer in case type-based alias sets do not conflict.
11711 (vect_analyze_data_refs): Remove SMT related code.
11712 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
11713 (vectorizable_load): Likewise.
11714 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
11715 (DR_SYMBOL_TAG, DR_VOPS): Remove.
11716 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
11717 Ignore vops and SMTs.
11718 (dr_analyze_alias): Likewise..
11719 (free_data_ref): Likewise.
11720 (create_data_ref): Likewise.
11721 (analyze_all_data_dependences): Likewise.
11722 (get_references_in_stmt): Adjust.
11723 * tree-flow-inline.h (gimple_aliases_computed_p,
11724 gimple_addressable_vars, gimple_call_clobbered_vars,
11725 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
11726 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
11727 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
11728 gimple_mem_ref_stats): Remove.
11729 (gimple_vop): New function.
11730 (op_iter_next_use): Remove vuses and mayuses cases.
11731 (op_iter_next_def): Remove vdefs case.
11732 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
11733 (clear_and_done_ssa_iter): Do not set removed fields.
11734 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
11735 Assert we are not iterating over vuses or vdefs if not also
11736 iterating over uses or defs.
11737 (op_iter_init_use): Likewise.
11738 (op_iter_init_def): Likewise.
11739 (op_iter_next_vdef): Remove.
11740 (op_iter_next_mustdef): Likewise.
11741 (op_iter_init_vdef): Likewise.
11742 (compare_ssa_operands_equal): Likewise.
11743 (link_use_stmts_after): Handle vuse operand.
11744 (is_call_used): Use is_call_clobbered.
11745 (is_call_clobbered): Global variables are always call clobbered,
11746 query the call-clobbers bitmap.
11747 (mark_call_clobbered): Ignore global variables.
11748 (clear_call_clobbered): Likewise.
11749 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
11750 virtual operands sanity check.
11751 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
11752 Remove.
11753 (TARGET_MEM_REF): Remove TMR_TAG operand.
11754 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
11755 Remove call-clobber related code.
11756 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
11757 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
11758 partitions or escape reason.
11759 (get_single_def_stmt, get_single_def_stmt_from_phi,
11760 get_single_def_stmt_with_phi): Remove.
11761 (dump_referenced_vars): Tidy.
11762 (get_ref_base_and_extent): Allow bare decls.
11763 (collect_dfa_stats): Adjust.
11764 * graphite.c (rename_variables_in_stmt): Adjust.
11765 (graphite_copy_stmts_from_block): Likewise.
11766 (translate_clast): Likewise.
11767 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
11768 (EXPR_DIES): New.
11769 (translate_vuse_through_block): Use the oracle.
11770 (phi_translate_1): Adjust.
11771 (value_dies_in_block_x): Use the oracle. Cache the outcome
11772 in EXPR_DIES.
11773 (valid_in_sets): Check if the VUSE for
11774 a REFERENCE is available.
11775 (eliminate): Do not remove stmts during elimination,
11776 instead queue and remove them afterwards.
11777 (do_pre): Do not rebuild alias info.
11778 (pass_pre): Run TODO_rebuild_alias before PRE.
11779 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
11780 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
11781 (mark_all_v_defs_stmt): Remove.
11782 (mark_all_v_defs_seq): Adjust.
11783 (sra_replace): Likewise.
11784 (scalarize_use): Likewise.
11785 (scalarize_copy): Likewise.
11786 (scalarize_init): Likewise.
11787 (scalarize_ldst): Likewise.
11788 (todoflags): Remove.
11789 (tree_sra): Do not rebuild alias info.
11790 (tree_sra_early): Adjust.
11791 (pass_sra): Run TODO_update_address_taken before SRA.
11792 * tree-predcom.c (set_alias_info): Remove.
11793 (prepare_initializers_chain): Do not call it.
11794 (mark_virtual_ops_for_renaming): Adjust.
11795 (mark_virtual_ops_for_renaming_list): Remove.
11796 (initialize_root_vars): Adjust.
11797 (initialize_root_vars_lm): Likewise.
11798 (prepare_initializers_chain): Likewise.
11799 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
11800 (may_propagate_copy_into_stmt): Likewise.
11801 (merge_alias_info): Do nothing for now.
11802 (propagate_tree_value_into_stmt): Adjust.
11803 (stmt_may_generate_copy): Likewise.
11804 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
11805 not mark symbols for renaming.
11806 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
11807 with the same statement, make sure to update the new pointed-to one.
11808 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
11809 call statements, do not mark symbols for renaming.
11810 (mark_operand_necessary): Dump something.
11811 (ref_may_be_aliased): New function.
11812 (mark_aliased_reaching_defs_necessary_1): New helper function.
11813 (mark_aliased_reaching_defs_necessary): Likewise.
11814 (mark_all_reaching_defs_necessary_1): Likewise.
11815 (mark_all_reaching_defs_necessary): Likewise.
11816 (propagate_necessity): Do not process virtual PHIs. For
11817 non-aliased loads mark all reaching definitions as necessary.
11818 For aliased loads and stores mark the immediate dominating
11819 aliased clobbers as necessary.
11820 (visited): New global static.
11821 (perform_tree_ssa_dce): Free visited bitmap after propagating
11822 necessity.
11823 (remove_dead_phis): Perform simple dead virtual PHI removal.
11824 (remove_dead_stmt): Properly unlink virtual operands when
11825 removing stores.
11826 (eliminate_unnecessary_stmts): Schedule PHI removal after
11827 stmt removal.
11828 * tree-ssa-ter.c (is_replaceable_p): Adjust.
11829 (process_replaceable): Likewise.
11830 (find_replaceable_in_bb): Likewise.
11831 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
11832 based on the single gimple vop.
11833 (verify_flow_insensitive_alias_info): Remove.
11834 (verify_flow_sensitive_alias_info): Likewise.
11835 (verify_call_clobbering): Likewise.
11836 (verify_memory_partitions): Likewise.
11837 (verify_alias_info): Likewise.
11838 (verify_ssa): Adjust..
11839 (execute_update_addresses_taken): Export. Update SSA
11840 manually. Optimize only when optimizing. Use a local bitmap.
11841 (pass_update_address_taken): Remove TODO_update_ssa, add
11842 TODO_dump_func.
11843 (pass_update_address_taken): Just use TODO_update_address_taken.
11844 (init_tree_ssa): Do not initialize addressable_vars.
11845 (verify_ssa): Verify new VUSE / VDEF properties.
11846 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
11847 Do not call verify_alias_info.
11848 (delete_tree_ssa): Clear the VUSE, VDEF operands.
11849 Do not free the loaded and stored syms bitmaps. Reset the escaped
11850 and callused solutions. Do not free addressable_vars.
11851 Remove memory-tag related code.
11852 (warn_uninitialized_var): Aliases are always available.
11853 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
11854 * lambda-code.c (can_put_in_inner_loop): Adjust.
11855 (can_put_after_inner_loop): Likewise.
11856 (perfect_nestify): Likewise.
11857 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
11858 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
11859 (vectorizable_conversion): Do not mark symbols for renaming.
11860 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
11861 (expand_call_inline): Unlink the calls virtual operands before
11862 replacing it.
11863 (tree_function_versioning): Do not call update_ssa if we are not
11864 updating clones. Simplify.
11865 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
11866 (propagate_with_phi): Likewise..
11867 * tree-outof-ssa.c (create_temp): Remove memory tag and call
11868 clobber code. Assert we are not aliased or global.
11869 * tree-flow.h: Include tree-ssa-alias.h
11870 (enum escape_type): Remove.
11871 (struct mem_sym_stats_d): Likewise.
11872 (struct mem_ref_stats_d): Likewise.
11873 (struct gimple_df): Add vop member. Remove global_var,
11874 call_clobbered_vars, call_used_vars, addressable_vars,
11875 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
11876 escaped and callused members.
11877 (struct ptr_info_def): Remove all members, add points-to solution
11878 member pt.
11879 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
11880 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
11881 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
11882 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
11883 (tree-ssa-alias.o): Likewise.
11884 (toplev.o): Add tree-ssa-alias.h
11885 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
11886 * gimple.c (gimple_set_bb): Fix off-by-one error.
11887 (is_gimple_reg): Do not handle memory tags.
11888 (gimple_copy): Also copy virtual operands.
11889 Delay updating the statement. Do not reset loaded and stored syms.
11890 (gimple_set_stored_syms): Remove.
11891 (gimple_set_loaded_syms): Likewise.
11892 (gimple_call_copy_skip_args): Copy the virtual operands
11893 and mark the new statement modified.
11894 * tree-ssa-structalias.c (may_alias_p): Remove.
11895 (set_uids_in_ptset): Take the alias set to prune with as
11896 parameter. Fold in the alias test of may_alias_p.
11897 (compute_points_to_sets): Compute whether a ptr is dereferenced
11898 in a local sbitmap.
11899 (process_constraint): Deal with &ANYTHING on the lhs, reject all
11900 other ADDRESSOF constraints on the lhs.
11901 (get_constraint_for_component_ref): Assert that we don't get
11902 ADDRESSOF constraints from the base of the reference.
11903 Properly generate UNKNOWN_OFFSET for DEREF if needed.
11904 (struct variable_info): Remove collapsed_to member.
11905 (get_varinfo_fc): Remove.
11906 (new_var_info): Do not set collapsed_to.
11907 (dump_constraint): Do not follow cycles.
11908 (dump_constraint_graph): Likewise.
11909 (build_pred_graph): Likewise.
11910 (build_succ_graph): Likewise.
11911 (rewrite_constraints): Likewise.
11912 (do_simple_structure_copy): Remove.
11913 (do_rhs_deref_structure_copy): Remove.
11914 (do_lhs_deref_structure_copy): Remove.
11915 (collapse_rest_of_var): Remove.
11916 (do_structure_copy): Re-implement.
11917 (pta_stats): New global variable.
11918 (dump_pta_stats): New function.
11919 (struct constraint_expr): Make offset signed.
11920 (UNKNOWN_OFFSET): Define special value.
11921 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
11922 (solution_set_expand): New helper function split out from ...
11923 (do_sd_constraint): ... here.
11924 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
11925 (do_ds_constraint): Likewise.
11926 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
11927 and CALLUSED = *CALLUSED.
11928 (set_union_with_increment): Make inc argument signed.
11929 (type_safe): Remove.
11930 (get_constraint_for_ptr_offset): Handle unknown and negative
11931 constant offsets.
11932 (first_vi_for_offset): Handle offsets before start. Bail
11933 out early for offsets beyond the variable extent.
11934 (first_or_preceding_vi_for_offset): New function.
11935 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
11936 Together with ESCAPED = *ESCAPED this properly computes reachability.
11937 (find_what_var_points_to): New function.
11938 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
11939 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
11940 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
11941 pt_solutions_intersect): New functions.
11942 (compute_call_used_vars): Remove.
11943 (compute_may_aliases): New main entry into PTA computation.
11944 * gimple.h (gimple_p): New typedef.
11945 (struct gimple_statement_base): Remove references_memory_p.
11946 (struct gimple_statement_with_memory_ops_base): Remove
11947 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
11948 members.
11949 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
11950 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
11951 gimple_set_references_memory): Remove.
11952 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
11953 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
11954 New functions.
11955 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
11956 (verify_expr): Allow RESULT_DECL.
11957 (gimple_duplicate_bb): Do not copy virtual operands.
11958 (gimple_duplicate_sese_region): Adjust.
11959 (gimple_duplicate_sese_tail): Likewise.
11960 (mark_virtual_ops_in_region): Remove.
11961 (move_sese_region_to_fn): Do not call it.
11962 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
11963 and pass_simple_dse.
11964 (execute_function_todo): Handle TODO_update_address_taken,
11965 call execute_update_addresses_taken for TODO_rebuild_alias.
11966 (execute_todo): Adjust.
11967 (execute_one_pass): Init dump files early.
11968 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
11969 call-clobbered.
11970 (create_general_new_stmt): Clear vops.
11971 * tree-ssa-reassoc.c (get_rank): Adjust.
11972 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
11973 symbols for renaming.
11974 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
11975 (PARAM_AVG_ALIASED_VOPS): Likewise.
11976 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
11977 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
c72c72ef 11978 * tree-ssa-operands.c: Simplify for new virtual operand representation.
dd277d48 11979 (operand_build_cmp, copy_virtual_operands,
11980 create_ssa_artificial_load_stmt, add_to_addressable_set,
11981 gimple_add_to_addresses_taken): Remove public functions.
11982 (unlink_stmt_vdef): New function.
11983
8d40ea45 119842009-04-03 Alan Modra <amodra@bigpond.net.au>
11985
11986 * config.gcc (powerpc-*-linux*): Merge variants.
11987
0bfaf4c4 119882009-04-02 Chao-ying Fu <fu@mips.com>
943327c1 11989 James Grosbach <james.grosbach@microchip.com>
0bfaf4c4 11990
11991 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
11992 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
11993 cop0_sp_offset.
11994 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
11995 keep_interrupts_masked_p, use_debug_exception_return_p.
11996 (mips_attribute_table): Add interrupt, use_shadow_register_set,
11997 keep_interrupts_masked, use_debug_exception_return.
11998 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
11999 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
12000 New functions.
12001 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
12002 (mips_print_operand): Process COP0 registers to print $0 .. $31
12003 correctly for GAS to process.
12004 (mips_interrupt_extra_call_saved_reg_p): New function.
12005 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
12006 extra registers.
12007 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
12008 (mips_compute_frame_info): Add supports for interrupt context that
12009 includes doubleword accumulators and COP0 registers.
12010 (mips_for_each_saved_acc): New function.
12011 (mips_for_each_saved_gpr_and_fpr): Change the function name from
12012 mips_for_each_saved_reg.
12013 (mips_save_reg): Save accumulators.
12014 (mips_kernel_reg_p): A new for_each_rtx callback.
12015 (mips_expand_prologue): Support interrupt handlers.
12016 (mips_restore_reg): Restore accumulators.
12017 (mips_expand_epilogue): Support interrupt handlers.
12018 (mips_can_use_return_insn): Return false for interrupt handlers.
12019 (mips_epilogue_uses): New function.
12020 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
12021 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
12022 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
12023 cop0_move): New instructions.
12024 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
12025 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
12026 defines.
12027 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
12028 New defines.
12029 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
12030 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
12031 interrupt handlers, we use K0 as the temporary register.
12032 (EPILOGUE_USES): Change to a function call.
12033 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
12034 handlers, we use K0 as the temporary register.
89871bab 12035
0bfaf4c4 12036 * doc/extend.texi (Function Attributes): Document interrupt,
12037 use_shadow_register_set, keep_interrupts_masked,
12038 use_debug_exception_return for MIPS attributes.
12039
47b92737 120402009-04-03 Alan Modra <amodra@bigpond.net.au>
12041
12042 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
12043 Remove a number of t-files from tmake_file.
12044 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
12045 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
12046 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12047 target_prototype, not TARGET_PROTOTYPE.
12048 (LINK_OS_GNU_SPEC): Define.
12049 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
12050 and darwin-ldoubdle.c.
12051
cc92bc82 120522009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12053
12054 PR driver/39293
12055 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
12056 (cpp_options): Ditto.
12057 (default_compilers): Ditto.
12058 (display_help): Ditto.
12059 (process_command): Ditto.
12060 (do_spec_1): Ditto.
12061 (set_input): Use lbasename instead of duplicate code.
12062 (save_temps_prefix): New static for -save-temps=obj.
12063 (save_temps_length): Ditto.
89871bab 12064
cc92bc82 12065 * doc/invoke.texi (-save-temps=obj): Document new variant to
12066 -save-temps switch.
12067
1c2a5380 120682009-04-02 Jeff Law <law@redhat.com>
12069
12070 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
12071 variable.
12072
1301d110 120732009-04-02 H.J. Lu <hongjiu.lu@intel.com>
12074
12075 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
12076 * configure: Regenerated.
12077
14bd221c 120782009-04-02 Rafael Avila de Espindola <espindola@google.com>
12079
12080 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
12081 share the argument list.
12082
64f3398b 120832009-04-02 Rafael Avila de Espindola <espindola@google.com>
12084
12085 Merge
12086
12087 2009-02-12 Diego Novillo <dnovillo@google.com>
12088
1301d110 12089 * varpool.c (debug_varpool): New.
12090 * cgraph.h (debug_varpool): Declare.
64f3398b 12091
0727d268 120922009-04-02 Jan Hubicka <jh@suse.cz>
12093
12094 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
12095 pass.
12096
3bc1f2c4 120972009-04-02 H.J. Lu <hongjiu.lu@intel.com>
12098
12099 * config/i386/i386.c (ix86_abi): Move initialization to ...
12100 (override_options): Here.
12101
e1190e3a 121022009-04-02 Christian Bruel <christian.bruel@st.com>
12103
12104 * config/sh/sh.c (sh_dwarf_register_span): New function.
12105 (TARGET_DWARF_REGISTER_SPAN): Define.
12106 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
89871bab 12107
792672f0 121082009-04-02 Ira Rosen <irar@il.ibm.com>
12109
12110 PR tree-optimization/39595
89871bab 12111 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
792672f0 12112 interleaved loads group is not greater than the SLP group size.
12113
1c47b3e8 121142009-04-02 Rafael Avila de Espindola <espindola@google.com>
12115
12116 * builtins.c (is_builtin_name): New.
12117 (called_as_built_in): Use is_builtin_name.
12118 * tree.h (is_builtin_name): New.
12119 * varasm.c (incorporeal_function_p): Use is_builtin_name
12120
42aaa915 121212009-04-02 Andrew Stubbs <ams@codesourcery.com>
12122
12123 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
12124
41771881 121252009-04-02 Dodji Seketeli <dodji@redhat.com>
12126
12127 PR c++/26693
09ec66c8 12128 * c-decl.c (clone_underlying_type): Move this ...
41771881 12129 * c-common.c (set_underlying_type): ... here.
12130 Also, make sure the function properly sets TYPE_STUB_DECL() on
12131 the newly created typedef variant type.
12132 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
c72c72ef 12133 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
12134 points.
41771881 12135
ac9b13de 121362009-04-02 Richard Guenther <rguenther@suse.de>
12137
12138 PR tree-optimization/37221
12139 * tree-flow.h (degenerate_phi_result): Declare.
12140 * tree-ssa-dom.c (degenerate_phi_result): Export.
12141 * tree-scalar-evolution.c (analyze_initial_condition): If
12142 the initial condition is defined by a degenerate PHI node
12143 use the degenerate value.
12144
959aa063 121452009-04-01 Eric Botcazou <ebotcazou@adacore.com>
12146
12147 PR rtl-optimization/39588
12148 * combine.c (merge_outer_ops): Do not set the constant when this
12149 is not necessary.
12150 (simplify_shift_const_1): Do not modify it either in this case.
12151
9e0aee4b 121522009-04-01 Steven Bosscher <steven@gcc.gnu.org>
12153
12154 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
12155 tuning is deprecated if -mtune value is set to an Itanium1 variant.
12156
f8ed6d41 121572009-04-01 Janis Johnson <janis187@us.ibm.com>
12158
12159 PR c/29027
12160 * c-lex.c (interpret_float): Default (no suffix) is double.
12161
098581e0 121622009-04-1 Xinliang David Li <davidxl@google.com>
12163
12164 * config/i386/i386.c (legitimate_constant_p): Recognize
12165 all one vector constant.
12166
943327c1 121672009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 12168
943327c1 12169 * config/vax/vax.c: Add #includes to silence warnings.
6718899e 12170 Change #include order to silence two warnings.
12171
943327c1 121722009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 12173
943327c1 12174 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
6718899e 12175 (ASM_SPEC): Pass -k to the assembler for PIC code.
12176
943327c1 121772009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 12178
943327c1 12179 * config.gcc: Add vax-*-linux* to the switch.
12180 * config/vax/linux.h: New file. (TARGET_VERSION,
6718899e 12181 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
12182
943327c1 121832009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 12184
943327c1 12185 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
6718899e 12186 Use predicate macros instead of GET_CODE() == foo.
943327c1 12187 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
6718899e 12188 ashlsi3, rotrsi3, <unnamed>): Likewise.
12189
943327c1 121902009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 12191
943327c1 12192 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
6718899e 12193 jbbccihi, jbbccisi): Remova trailing whitespace.
943327c1 12194 * config/vax/constraints.md: Likewise.
12195 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12196 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
12197 * config/vax/predicates.md: Likewise.
12198 * config/vax/vax.c (print_operand_address, vax_output_int_move,
6718899e 12199 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
943327c1 12200 * config/vax/vax.h: Likewise.
12201 * config/vax/vax.md (nonlocal_goto): Likewise.
6718899e 12202
943327c1 122032009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 12204
943327c1 12205 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
6718899e 12206 (indirectable_address_p, adjacent_operands_p): Add spaces around
12207 braces.
943327c1 12208 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
6718899e 12209
943327c1 122102009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 12211
943327c1 12212 * config/vax/vax.c (legitimate_constant_address_p,
6718899e 12213 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
12214 index_term_p, reg_plus_index_p, legitimate_address_p,
12215 vax_mode_dependent_address_p): Update comments to match functions
12216 modified by the recent int->bool conversion.
12217
943327c1 122182009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 12219
943327c1 12220 * config/vax/builtins.md: Update copyright message.
12221 * config/vax/constraints.md: Likewise.
12222 * config/vax/netbsd-elf.h: Likewise.
12223 * config/vax/predicates.md: Likewise.
12224 * config/vax/vax-protos.h: Likewise.
12225 * config/vax/vax.c: Likewise.
12226 * config/vax/vax.h: Likewise.
12227 * config/vax/vax.md: Likewise.
12228 * config/vax/vax.opt: Likewise.
6718899e 12229
943327c1 122302009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 12231
943327c1 12232 * config/vax/builtins.md (ffssi2, ffssi2_internal,
6718899e 12233 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
943327c1 12234 * config/vax/constraints.md (B, R): Likewise.
12235 * config/vax/predicates.md (external_memory_operand,
6718899e 12236 nonimmediate_addsub_di_operand): Likewise.
943327c1 12237 * config/vax/vax.c (vax_output_int_add): Likewise.
12238 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
6718899e 12239 untyped_call): Likewise.
12240
943327c1 122412009-04-01 Matt Thomas <matt@3am-software.com>
6718899e 12242
c72c72ef 12243 * config/vax/predicates.md: New file.
12244 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
6718899e 12245 external_const_operand, nonsymbolic_operand, external_memory_operand,
12246 indirect_memory_operand, indexed_memory_operand,
12247 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
12248 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
12249 predicate.
c72c72ef 12250 * config/vax/constraints.md: New file.
12251 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
12252 New constraint.
12253 * config/vax/builtins.md: New file.
12254 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
12255 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
12256 jbbccisi): Define.
6718899e 12257 * config/vax/vax.opt (mqmath): Add option.
12258 * config/vax/vax.md (isfx): Extend with DI.
12259 (VAXintQH, VAXintQHSD): Define.
12260 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
12261 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
12262 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
12263 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
12264 (movdi): Update constraints and use vax_output_int_move().
12265 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
12266 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
12267 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
12268 nonlocal_goto): New.
12269 (mov<mode>): Extend accepted operand types.
12270 (subdi3_old): Rename from subdi3, change update constraints and use
12271 a new implementation.
943327c1 12272 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
6718899e 12273 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
12274 MOVE_RATIO, CLEAR_RATIO): Define.
12275 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
12276 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
12277 (PRINT_OPERAND): Redefine using a function instead of inlined code.
943327c1 12278 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
6718899e 12279 (split_quadword_operands): Make static and really allow variable
12280 splitting.
12281 (print_operand_address): Update for PIC generation.
12282 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
12283 indexable_address_p, fixup_mathdi_operand,
12284 vax_expand_addsub_di_operands, adjacent_operands_p): New.
12285 (vax_float_literal, legitimate_constant_p,
12286 indirectable_constant_address_p, index_term_p,
12287 reg_plus_index_p): Return bool instead of int.
12288 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
12289 where needed.
12290 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
12291 generation.
12292 (vax_output_conditional_branch): Indent.
12293 (legitimate_constant_address_p, indirectable_constant_address_p,
12294 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
12295 vax_mode_dependent_address_p): Return bool instead of int, update for
12296 PIC generation.
12297 * config/vax/vax-protos.h (legitimate_constant_address_p,
12298 legitimate_constant_p, legitimate_address_p,
12299 vax_mode_dependent_address_p): Change declaration to bool.
12300 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
12301 vax_expand_addsub_di_operands, vax_output_int_subtract,
12302 vax_output_movmemsi): Declare.
12303 (split_quadword_operands, vax_float_literal): Delete declaration.
12304 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
12305 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
12306 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
12307 ASM_OUTPUT_DWARF_PCREL): Define.
12308 (ASM_SPEC): Change definition to allow PIC generation.
12309
617606a7 123102009-04-01 Steve Ellcey <sje@cup.hp.com>
12311
12312 * doc/sourcebuild.texi: Update front-end requirements.
12313
c6afd8f1 123142009-04-01 Jakub Jelinek <jakub@redhat.com>
12315
12316 PR target/39226
12317 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
12318 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
12319 (booldi3_internal3): Use boolean_or_operator instead of
12320 boolean_operator.
12321
ce4e9a43 123222009-04-01 Joseph Myers <joseph@codesourcery.com>
12323
12324 PR c/39605
12325 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
12326 declarator whose size is not an integer constant expression but
12327 folds to an integer constant, then treat it as a constant
12328 subsequently.
12329
04b63ffe 123302009-04-01 Richard Guenther <rguenther@suse.de>
12331
12332 * fold-const.c (fold_plusminus_mult_expr): Do not fold
12333 i * 4 + 2 to (i * 2 + 1) * 2.
12334
0930c694 123352009-04-01 Jakub Jelinek <jakub@redhat.com>
12336
12337 PR c/37772
12338 * c-parser.c (c_parser_asm_statement): Skip until close paren and
12339 return if c_parser_asm_string_literal returned NULL.
12340
c46bf770 123412009-04-01 Nick Clifton <nickc@redhat.com>
12342
12343 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
12344 already defined.
12345 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
12346 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
12347 other typedefs to avoid conflicts with libgcc2.c. Define labels
12348 to gain 16-bit bit-manipulation functions from libgcc2.c and then
12349 include it.
12350 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
12351 to gain 16-bit trapping arithmetic functions from libgcc2.c and
12352 then include it.
12353
b5240a18 123542009-04-01 Rafael Avila de Espindola <espindola@google.com>
12355
c72c72ef 12356 * varasm.c (default_function_rodata_section): Declare DOT as
12357 const char*.
b5240a18 12358
4ccce102 123592009-04-01 Kai Tietz <kai.tietz@onevision.com>
943327c1 12360 Andrey Galkin <agalkin@hypercom.com>
4ccce102 12361
12362 PR/39492
12363 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
12364 Make object_name unique for each process.
12365
4a04f4b4 123662009-04-01 Jakub Jelinek <jakub@redhat.com>
12367
12368 PR other/39591
12369 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
12370 addressable variables in the parallel that could go out of scope while
12371 running queued tasks.
12372
b4a3be2d 123732009-04-01 Anatoly Sokolov <aesok@post.ru>
12374
12375 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
12376 (CASE_VALUES_THRESHOLD): Redefine.
12377 * config/avr/avr.c (avr_override_options): Remove initialization of
12378 avr_case_values_threshold variable.
12379 (avr_case_values_threshold): Remove variable. Add new function.
12380 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
12381 * config/avr/avr.opt (mno-tablejump): Remove option.
12382 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
12383
ac2a837e 123842009-04-01 DJ Delorie <dj@redhat.com>
12385
12386 * varasm.c (default_function_rodata_section): Don't assume
12387 anything about where the first '.' in the section name is.
12388
7cad077c 123892009-04-01 Alan Modra <amodra@bigpond.net.au>
12390
12391 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
12392 rs6000_emit_stack_tie.
12393
a5877c89 123942009-03-31 Ian Lance Taylor <iant@google.com>
12395
12396 * tree-eh.c (tree_remove_unreachable_handlers): Compare
12397 gimple_code with GIMPLE_RESX, not RESX.
12398
9e6687c8 123992009-03-31 Joseph Myers <joseph@codesourcery.com>
12400
12401 * c-common.c (c_get_ident): New.
c72c72ef 12402 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
9e6687c8 12403
aa5ba529 124042009-04-01 Ben Elliston <bje@au.ibm.com>
12405
12406 * config/rs6000/sysv4.opt (msdata): Improve option description.
12407
3f970e2e 124082009-03-31 Steve Ellcey <sje@cup.hp.com>
12409
12410 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
12411 (divdf3_internal_lat): Remove.
12412 (divxf3_internal_lat): Remove.
12413 (divxf3_internal_thr): Remove.
12414 (divxf): Use divxf3_internal.
12415 * config/ia64/div.md (divsf3_internal_lat): New.
12416 (divdf3_internal_lat): New.
12417 (divxf3_internal): New.
12418
f3449a3c 124192009-03-31 Joseph Myers <joseph@codesourcery.com>
12420
12421 PR c/448
12422 * Makefile.in (USE_GCC_STDINT): Define.
12423 (stmp-int-hdrs): Install stdint.h if applicable.
12424 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
12425 if known.
12426 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
12427 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
12428 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12429 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12430 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12431 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12432 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12433 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12434 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12435 (c_common_nodes_and_builtins): Initialize
12436 underlying_wchar_type_node. Do not initialize
12437 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
12438 nodes for new types.
12439 (c_stddef_cpp_builtins): Define macros for new types.
12440 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
12441 Remove.
12442 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
12443 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
12444 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
12445 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
12446 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
12447 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
12448 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
12449 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
12450 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
12451 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
12452 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
12453 int16_type_node, int32_type_node, int64_type_node,
12454 uint8_type_node, uint16_type_node, c_uint32_type_node,
12455 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
12456 int_least32_type_node, int_least64_type_node,
12457 uint_least8_type_node, uint_least16_type_node,
12458 uint_least32_type_node, uint_least64_type_node,
12459 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
12460 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
12461 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
12462 uintptr_type_node): Define.
12463 * c-cppbuiltin.c (builtin_define_constants,
12464 builtin_define_type_minmax): New.
12465 (builtin_define_stdint_macros): Define more macros.
12466 (c_cpp_builtins): Define more limit macros.
12467 (type_suffix): New.
12468 (builtin_define_type_max): Define in terms of
12469 builtin_define_type_minmax. Remove is_long parameter. All
12470 callers changed.
12471 * config.gcc (use_gcc_stdint): Define.
12472 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
12473 Add newlib-stdint.h for generic targets.
12474 * config/glibc-stdint.h, config/newlib-stdint.h,
12475 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
12476 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
12477 * config/score/score.h (UINTPTR_TYPE): Define.
12478 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
12479 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
12480 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12481 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12482 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12483 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12484 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12485 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12486 * config/spu/spu.h (STDINT_LONG32): Define.
12487 * configure.ac (use_gcc_stdint): Substitute.
12488 * configure: Regenerate.
12489 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
12490 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
12491 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
12492 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
12493 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
12494 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
12495 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
12496 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
12497 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
12498 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
12499 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
12500 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
12501 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
12502 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
12503 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
12504 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
12505 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
12506 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
12507 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
12508 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
12509 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
12510 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
12511 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12512 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12513 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12514 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12515 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12516 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12517 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
12518
9bb5f693 125192009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
12520
12521 * loop-iv.c (suitable_set_for_replacement): Renamed from
12522 simplify_using_assignment; changed to return bool and to accept new
12523 args DEST and SRC. Return true iff we find a source/destination pair
12524 that can be used to make a replacement, and fill SRC and DEST if so.
12525 Remove arg ALTERED. Don't deal with altered regs here. All callers
12526 changed.
12527 (simplify_using_initial_values): Deal with altered regs here and track
12528 more precisely the effect they have on the validity of our expression.
12529
7f7a6f4a 12530 * loop-iv.c (simplify_using_condition): A condition of the form
12531 (EQ REG CONST) can be used to simply make a substitution.
12532 (simplify_using_initial_values): Keep track of conditions we have seen
12533 and keep using them to simplify new expressions, while applying the
12534 same substitutions to them as to the expression.
12535
d2cb78ca 12536 * simplify-rtx.c (simplify_relational_operation_1): Simplify
12537 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
12538 GEU/LTU reversed.
12539
f77c1bb0 12540 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
12541 changed. Use this when trying to improve the upper bound.
12542 Generate the comparison by using simplify_gen_relational.
12543
b908751e 12544 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
12545
767cb310 12546 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
12547 functions.
89871bab 12548 (simplify_using_assignment, simplify_using_initial_values): Call
767cb310 12549 replace_in_expr to make replacements. Call replace_single_def_regs
12550 once on the initial version of the expression.
12551
ee933f51 125522009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12553
9b57ed9f 12554 PR target/27237
ee933f51 12555 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
89871bab 12556
172e662b 125572009-03-31 Richard Guenther <rguenther@suse.de>
12558
12559 PR middle-end/31029
12560 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
12561 equality comparisons. Fold C - X CMP X if C % 2 == 1.
12562
401d1fb3 125632009-03-31 Richard Guenther <rguenther@suse.de>
12564
12565 * tree.h (div_if_zero_remainder): Declare.
12566 * fold-const.c (div_if_zero_remainder): Export.
12567 * tree-ssa-forwprop.c
12568 (forward_propagate_addr_into_variable_array_index): Handle
12569 constant array index addition outside of the variable index.
12570
eedfcb26 125712009-03-31 Joseph Myers <joseph@codesourcery.com>
12572
12573 PR target/39592
12574 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
12575 define_splits, floatunssi<mode>2): Require x87 conversions from
12576 DImode to be permitted.
12577
ff903809 125782009-03-31 Joseph Myers <joseph@codesourcery.com>
12579
12580 PR preprocessor/15638
12581 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
12582
47f11e84 125832009-03-31 Richard Guenther <rguenther@suse.de>
12584
12585 PR middle-end/23401
12586 PR middle-end/27810
12587 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
12588 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
12589 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
12590 a separate statement.
12591 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
12592 (lookup_tmp_var): Likewise.
12593 (is_gimple_formal_tmp_or_call_rhs): Remove.
12594 (is_gimple_reg_or_call_rhs): Rename to ...
12595 (is_gimple_reg_rhs_or_call): ... this.
12596 (is_gimple_mem_or_call_rhs): Rename to ...
12597 (is_gimple_mem_rhs_or_call): ... this.
12598 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
12599 DECL_GIMPLE_REG_P only if is_formal is true.
12600 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
12601 for non-proper post-modify expression gimplification.
12602 (gimplify_self_mod_expr): For post-modify expressions gimplify
12603 the lvalue to a minimal lvalue.
12604 (rhs_predicate_for): Remove formal temp case.
12605 (gimplify_modify_expr_rhs): Likewise.
12606 (gimplify_addr_expr): Use is_gimple_reg.
12607 (gimplify_expr): Remove formal temp cases.
12608 (gimple_regimplify_operands): Likewise.
12609 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
12610 and FILTER_EXPR like constants.
12611 * gimple.c (walk_gimple_op): Fix val_only initialization, use
12612 is_gimple_reg.
12613 (is_gimple_formal_tmp_rhs): Remove.
12614 (is_gimple_reg_rhs): Remove special casing.
12615 (is_gimple_mem_rhs): Fix.
12616 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
12617 (is_gimple_formal_tmp_var): Remove.
12618 (is_gimple_formal_tmp_reg): Likewise.
12619 (is_gimple_min_lval): Allow invariant component ref parts.
12620 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
12621 is_gimple_formal_tmp_reg): Remove declarations.
12622 * tree-cfg.c (verify_expr): Verify that variables with address
12623 taken do not have DECL_GIMPLE_REG_P set.
12624 * tree-mudflap.c (mf_build_check_statement_for): Use
12625 force_gimple_operand instead of gimplify_expr.
12626
7af239b5 126272009-03-31 Ayal Zaks <zaks@il.ibm.com>
12628
12629 * modulo-sched.c (sms_schedule_by_order): Pass the actual
12630 schedulable rows to compute_split_row.
12631
09271b9d 126322009-03-31 Ben Elliston <bje@au.ibm.com>
12633
12634 PR target/31635
12635 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
12636 OPT_mvrsave.
12637
d46ea878 126382009-03-31 Alan Modra <amodra@bigpond.net.au>
12639
12640 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
12641 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
12642 * configure: Regenerate.
12643 * config.in: Regenerate.
12644 * config/rs6000/rs6000.opt (mtls-markers): Add.
12645 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
12646 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
12647 (tls_ld_aix, tls_ld_sysv): Likewise.
12648 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
12649 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
12650
6ce64557 126512009-03-31 Alan Modra <amodra@bigpond.net.au>
12652
12653 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
12654
d6d5ab2d 126552009-03-30 Jan Hubicka <jh@suse.cz>
12656
6ce64557 12657 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
12658 out of RESX.
12659 (tree_remove_unreachable_handlers): Cleanup EH predecestor
12660 detection and label handling.
d6d5ab2d 12661
951e5184 126622009-03-30 Vladimir Makarov <vmakarov@redhat.com>
12663
12664 * ira-int.h (ira_allocno): Rename left_conflicts_num to
12665 left_conflicts_size.
12666 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
12667 ALLOCNO_LEFT_CONFLICTS_SIZE.
12668
12669 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
12670 remove_allocno_from_bucket_and_push,
12671 allocno_spill_priority_compare, push_allocnos_to_stack,
12672 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12673 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
12674 (setup_allocno_left_conflicts_num): Ditto. Rename to
12675 setup_allocno_left_conflicts_size.
12676 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12677 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
12678 setup_allocno_left_conflicts_size instead of
12679 setup_allocno_left_conflicts_num.
12680
12681 * ira-build.c (ira_create_allocno): Use
12682 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
12683 ALLOCNO_LEFT_CONFLICTS_NUM.
89871bab 12684
cb250333 126852009-03-30 Vladimir Makarov <vmakarov@redhat.com>
12686
12687 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
12688 instead of DF_LR_OUT.
12689
12690 * ira-lives.c (process_bb_node_lives): Ditto.
12691
12692 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
12693 instead of DF_LR_{OUT,IN}.
12694
12695 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
12696
12697 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
12698
dfcd8d23 126992009-03-30 Jan Hubicka <jh@suse.cz>
12700
12701 * except.c (label_to_region_map): Fix thinko.
12702
a7bc9181 127032009-03-30 Steve Ellcey <sje@cup.hp.com>
12704
12705 PR middle-end/38237
12706 * tree.h (tree_find_value): New declaration.
12707 * tree.c (tree_find_value): New function.
12708 * varasm.c (assemble_external): Avoid duplicate entries on lists.
12709
6fb80942 127102009-03-30 Jakub Jelinek <jakub@redhat.com>
12711
12712 PR debug/39563
12713 * c-decl.c (struct c_binding): Add locus field.
12714 (bind): Add locus argument, set locus field from it.
12715 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
12716 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
12717 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
12718 implicitly_declare, undeclared_variable, lookup_label,
12719 declare_label, c_make_fname_decl, c_builtin_function,
12720 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
12721 bind callers.
12722
7dfbd804 127232009-03-30 H.J. Lu <hongjiu.lu@intel.com>
076a4c5c 12724
12725 PR target/38781
12726 * config/i386/i386.c (classify_argument): Check total size of
12727 structure.
12728
ba3a7ba0 127292009-03-30 Martin Jambor <mjambor@suse.cz>
12730
12731 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
12732 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
12733 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
12734 respectively.
12735
12736 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
12737 seen_variable_array_ref while also traversing a union.
12738
12739 * tree-inline.c (optimize_inline_calls): Do not call
12740 cgraph_node_remove_callees.
12741 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
12742 (pass_remove_cgraph_callee_edges): New variable.
12743 * passes.c (init_optimization_passes): Add
12744 pass_remove_cgraph_callee_edges after early inlining and before all
12745 late intraprocedural passes.
12746
12747 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
12748
914301dc 127492009-03-30 Paolo Bonzini <bonzini@gnu.org>
12750
12751 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
12752 Fix typos in names.
12753
0d79facf 127542009-03-30 Paolo Bonzini <bonzini@gnu.org>
12755
9b57ed9f 12756 * combine.c (simplify_comparison): Use have_insn_for.
12757 * dojump.c (do_jump): Likewise.
0d79facf 12758
bbc6e6c4 127592009-03-30 Paolo Bonzini <bonzini@gnu.org>
12760
12761 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
12762 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
12763 sparc_compare_op0 like sparc_compare_emitted used to be handled.
12764 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
12765 instead of sparc_compare_emitted.
12766 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
12767 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
12768 instead of sparc_compare_emitted.
12769
ee4d588d 127702009-03-30 Paolo Bonzini <bonzini@gnu.org>
12771
12772 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
12773 enter/exit cfglayout mode.
12774 (pass_partition_block): Require it.
12775 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
12776 (combine_instructions): Track basic blocks instead of labels.
12777 (update_cfg_for_uncondjump): New.
12778 (try_combine): Use it. Update jumps after rescanning.
12779 (pass_combine): Require PROP_cfglayout.
12780 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
12781
30678076 127822009-03-30 Paolo Bonzini <bonzini@gnu.org>
12783
9b57ed9f 12784 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
12785 Provide/destroy PROP_cfglayout respectively.
12786 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
12787 * tree-pass.h (PROP_cfglayout): New.
30678076 12788
62126877 127892009-03-30 Paolo Bonzini <bonzini@gnu.org>
12790
12791 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
12792 fold_convert_const_fixed_from_fixed,
12793 fold_convert_const_fixed_from_int,
12794 fold_convert_const_fixed_from_real, fold_negate_const): Do not
12795 set TREE_CONSTANT_OVERFLOW.
12796 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
12797 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
12798
fb85abff 127992009-03-30 Ira Rosen <irar@il.ibm.com>
12800
12801 * tree-vect-loop-manip.c: New file.
12802 * tree-vectorizer.c: Update documentation and included files.
12803 (vect_loop_location): Make extern.
12804 (rename_use_op): Move to tree-vect-loop-manip.c
89871bab 12805 (rename_variables_in_bb, rename_variables_in_loop,
12806 slpeel_update_phis_for_duplicate_loop,
fb85abff 12807 slpeel_update_phi_nodes_for_guard1,
12808 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
12809 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
12810 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
89871bab 12811 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
fb85abff 12812 find_loop_location): Likewise.
12813 (new_stmt_vec_info): Move to tree-vect-stmts.c.
12814 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
12815 get_vectype_for_scalar_type, vect_is_simple_use,
12816 supportable_widening_operation, supportable_narrowing_operation):
12817 Likewise.
12818 (bb_in_loop_p): Move to tree-vect-loop.c.
89871bab 12819 (new_loop_vec_info, destroy_loop_vec_info,
12820 reduction_code_for_scalar_code, report_vect_op,
fb85abff 12821 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
12822 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
12823 (vect_supportable_dr_alignment): Likewise.
12824 * tree-vectorizer.h (tree-data-ref.h): Include.
12825 (vect_loop_location): Declare.
12826 Reorganize function declarations according to the new file structure.
12827 * tree-vect-loop.c: New file.
89871bab 12828 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
fb85abff 12829 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
12830 * tree-vect-data-refs.c: New file.
12831 * tree-vect-patterns.c (timevar.h): Don't include.
12832 * tree-vect-stmts.c: New file.
89871bab 12833 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
fb85abff 12834 tree-vect-slp.c, tree-vect-loop.c.
89871bab 12835 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
12836 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
fb85abff 12837 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
12838 (tree-vect-analyze.o): Remove.
12839 (tree-vect-transform.o): Likewise.
12840 (tree-vect-data-refs.o): Add rule.
89871bab 12841 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
fb85abff 12842 tree-vect-slp.o): Likewise.
12843 (tree-vect-patterns.o): Remove redundant dependencies.
12844 (tree-vectorizer.o): Likewise.
12845 * tree-vect-slp.c: New file.
12846
0863a8f4 128472009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12848
12849 * optc-gen.awk: Warn if an option flag has multiple different
12850 help strings.
12851
0606fb97 128522009-03-30 Sebastian Pop <sebastian.pop@amd.com>
12853
12854 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
12855 -floop-block): Document dependences on PPL, CLooG and Graphite.
12856
c6418a4e 128572009-03-30 Joseph Myers <joseph@codesourcery.com>
12858
12859 PR rtl-optimization/323
12860 * c-common.c (c_fully_fold, convert_and_check,
12861 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
12862 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
12863 * c-common.def (EXCESS_PRECISION_EXPR): New.
12864 * c-cppbuiltin.c (builtin_define_float_constants): Define
12865 constants with enough digits for long double.
12866 * c-lex.c (interpret_float): Interpret constant with excess
12867 precision where appropriate.
12868 * c-opts.c (c_common_post_options): Set
12869 flag_excess_precision_cmdline. Give an error for
12870 -fexcess-precision=standard for C++ for processors where the
12871 option is significant.
12872 * c-parser.c (c_parser_conditional_expression): Handle excess
12873 precision in condition.
12874 * c-typeck.c (convert_arguments): Handle arguments with excess
12875 precision.
12876 (build_unary_op): Move excess precision outside operation.
12877 (build_conditional_expr): Likewise.
12878 (build_compound_expr): Likewise.
12879 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
12880 (build_modify_expr): Handle excess precision in RHS.
12881 (convert_for_assignment): Handle excess precision in converted
12882 value.
12883 (digest_init, output_init_element, process_init_element): Handle
12884 excess precision in initializer.
12885 (c_finish_return): Handle excess precision in return value.
12886 (build_binary_op): Handle excess precision in operands and add
12887 excess precision as needed for operation.
12888 * common.opt (-fexcess-precision=): New option.
12889 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
12890 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
12891 For standard excess precision, output explicit conversion to and
12892 truncation from XFmode.
12893 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
12894 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
12895 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
12896 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
12897 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
12898 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
12899 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
12900 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
12901 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
12902 define_splits, sqrt<mode>2): Disable where appropriate for
12903 standard excess precision.
12904 * convert.c (convert_to_real): Do not shorten arithmetic to type
12905 for which excess precision would be used.
12906 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
12907 * doc/invoke.texi (-fexcess-precision=): Document option.
12908 (-mfpmath=): Correct index entry.
12909 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
12910 flag_excess_precision): New.
12911 * langhooks.c (lhd_post_options): Set
12912 flag_excess_precision_cmdline.
12913 * opts.c (common_handle_option): Handle -fexcess-precision=.
12914 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
12915 init_excess_precision): New.
12916 (lang_dependent_init_target): Call init_excess_precision.
12917 * tree.c (excess_precision_type): New.
12918 * tree.h (excess_precision_type): Declare.
12919
7666d572 129202009-03-30 Joseph Myers <joseph@codesourcery.com>
12921
12922 PR c/35235
12923 * c-typeck.c (build_component_ref): Do not copy qualifiers from
12924 non-lvalue to component.
12925
7f5f3953 129262009-03-29 Joseph Myers <joseph@codesourcery.com>
12927
12928 PR preprocessor/34695
12929 * Makefile.in (c-opts.o): Depend on c-tree.h.
12930 * c-common.c: Move down include of diagnostic.h.
12931 (done_lexing, c_cpp_error): New.
12932 * c-common.h (done_lexing): Declare.
12933 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
12934 (parse_in).
12935 * c-opts.c: Include c-tree.h.
12936 (c_common_init_options): Set preprocessor error callback.
12937 (c_common_handle_option): Do not set preprocessor
12938 inhibit_warnings, warnings_are_errors, warn_system_headers,
12939 pedantic_errors or inhibit_warnings flags.
12940 (c_common_post_options): Do not check cpp_errors (parse_in).
12941 (c_common_finish): Do not output dependencies if there were
12942 errors. Do not check return value of cpp_finish.
12943 * c-ppoutput.c (pp_file_change): Set input_location.
12944 * c-tree.h (c_cpp_error): Declare.
12945 * diagnostic.c (diagnostic_set_info_translated): Also initialize
12946 override_column.
12947 (diagnostic_build_prefix): Check override_column.
12948 * diagnostic.h (diagnostic_info): Add override_column field.
12949 (diagnostic_override_column): Define.
12950
862f468c 129512009-03-28 Paolo Bonzini <bonzini@gnu.org>
12952
aca60c7b 12953 * c-common.c (c_expand_expr, c_staticp): Remove.
12954 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
12955 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
12956 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
12957 * c-gimplify.c (gimplify_compound_literal_expr,
12958 optimize_compound_literals_in_ctor): Remove.
12959 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
12960 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
12961 * c-semantics.c (emit_local_var): Remove.
12962
12963 * langhooks-def.h (lhd_expand_expr): Remove.
12964 * langhooks.c (lhd_expand_expr): Remove.
12965 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
12966
12967 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
12968 handling from c-semantics.c; don't call into langhook.
12969 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
12970 * gimplify.c (gimplify_compound_literal_expr,
12971 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
12972 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
12973 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
12974 as was done in c-gimplify.c.
12975 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
12976 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
12977 Move from c-common.h.
12978 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
862f468c 12979
12980 * tree.c (staticp): Do not call langhook.
12981 * langhooks.c (lhd_staticp): Delete.
12982 * langhooks-def.h (lhd_staticp): Delete prototype.
12983 (LANG_HOOKS_STATICP): Delete.
12984 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
12985
aca60c7b 12986 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
12987 instead of DECL_STMTs.
862f468c 12988
a75b1c71 129892009-03-29 Joseph Myers <joseph@codesourcery.com>
12990
12991 PR c/456
12992 PR c/5675
12993 PR c/19976
12994 PR c/29116
12995 PR c/31871
12996 PR c/35198
12997 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
12998 void_type_node.
12999 (fold_call_expr): Return a NOP_EXPR from folding rather than the
13000 contained expression.
aca60c7b 13001 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
a75b1c71 13002 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
13003 conditional expressions for C.
13004 (decl_constant_value_for_optimization): Move from
aca60c7b 13005 decl_constant_value_for_broken_optimization in c-typeck.c. Check
a75b1c71 13006 whether optimizing and that the expression is a VAR_DECL not of
13007 array type instead of doing such checks in the caller. Do not
13008 check pedantic. Call gcc_unreachable for C++.
13009 * c-common.def (C_MAYBE_CONST_EXPR): New.
13010 * c-common.h (c_fully_fold, c_save_expr,
13011 decl_constant_value_for_optimization): New prototypes.
13012 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
13013 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
13014 EXPR_INT_CONST_OPERANDS): Define.
13015 * c-convert.c (convert): Strip nops from expression.
13016 * c-decl.c (groktypename): Take extra parameters expr and
13017 expr_const_operands. Update call to grokdeclarator.
13018 (start_decl): Update call to grokdeclarator. Add statement for
13019 expressions used in type of decl.
13020 (grokparm): Update call to grokdeclarator.
13021 (push_parm_decl): Update call to grokdeclarator.
13022 (build_compound_literal): Add parameter non_const and build a
13023 C_MAYBE_COSNT_EXPR if applicable.
13024 (grokdeclarator): Take extra parameters expr and
13025 expr_const_operands. Track expressions used in declaration
13026 specifiers and declarators. Fold array sizes and track whether
13027 they are constant expressions and whether they are integer
13028 constant expressions.
13029 (parser_xref_tag): Set expr and expr_const_operands fields in
13030 return value.
13031 (grokfield): Update call to grokdeclarator.
13032 (start_function): Update call to grokdeclarator.
13033 (build_null_declspecs): Set expr and expr_const_operands fields in
13034 return value.
13035 (declspecs_add_type): Handle expressions in typeof specifiers.
13036 * c-parser.c (c_parser_declspecs): Set expr and
13037 expr_const_operands fields for declaration specifiers.
13038 (c_parser_enum_specifier): Likewise.
13039 (c_parser_struct_or_union_specifier): Likewise.
13040 (c_parser_typeof_specifier): Likewise. Update call to
13041 groktypename. Fold expression as needed. Return expressions with
13042 type instead of adding statements.
13043 (c_parser_attributes): Update calls to c_parser_expr_list.
13044 (c_parser_statement_after_labels): Fold expression before passing
13045 to objc_build_throw_stmt.
13046 (c_parser_condition): Fold expression.
13047 (c_parser_asm_operands): Fold expression.
13048 (c_parser_conditional_expression): Use c_save_expr. Update call
13049 to build_conditional_expr.
13050 (c_parser_alignof_expression): Update call to groktypename.
13051 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
13052 original_code. Fold expression argument of va_arg. Create
13053 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
13054 argument to va_arg. Update calls to groktypename. Fold array
13055 index for offsetof. Verify that first argument to
13056 __builtin_choose_expr has integer type.
13057 (c_parser_postfix_expression_after_paren_type): Update calls to
13058 groktypename and build_compound_literal. Handle expressions with
13059 side effects in type name.
13060 (c_parser_postfix_expression_after_primary): Update call to
13061 c_parser_expr_list. Set original_code for calls to
13062 __builtin_constant_p.
13063 (c_parser_expr_list): Take extra parameter fold_p. Fold
13064 expressions if requested.
13065 (c_parser_objc_type_name): Update call to groktypename.
13066 (c_parser_objc_synchronized_statement): Fold expression.
13067 (c_parser_objc_receiver): Fold expression.
13068 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
13069 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
13070 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
13071 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
13072 (struct c_typespec): Add elements expr and expr_const_operands.
13073 (struct c_declspecs): Add elements expr and expr_const_operands.
13074 (groktypename, build_conditional_expr, build_compound_literal):
13075 Update prototypes.
13076 (in_late_binary_op): Declare.
13077 * c-typeck.c (note_integer_operands): New function.
13078 (in_late_binary_op): New variable.
13079 (decl_constant_value_for_broken_optimization): Move to c-common.c
13080 and rename to decl_constant_value_for_optimization.
13081 (default_function_array_conversion): Do not strip nops.
13082 (default_conversion): Do not call
13083 decl_constant_value_for_broken_optimization.
13084 (build_array_ref): Do not fold result.
13085 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
13086 result when operand is a VLA.
13087 (c_expr_sizeof_type): Update call to groktypename. Handle
13088 expressions included in type name. Use C_MAYBE_CONST_EXPR for
13089 result when operand names a VLA type.
13090 (build_function_call): Update call to build_compound_literal.
13091 Only fold result for calls to __builtin_* functions. Strip
13092 NOP_EXPR from INTEGER_CST returned from such functions. Fold
13093 the function designator.
13094 (convert_arguments): Fold arguments. Update call to
13095 convert_for_assignment.
13096 (build_unary_op): Handle increment and decrement of
13097 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
13098 decrement earlier. Fold operand of increment and decrement.
13099 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
13100 built for integer operand. Wrap returns that are INTEGER_CSTs
13101 without being integer constant expressions or that have integer
13102 constant operands without being INTEGER_CSTs.
13103 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
13104 (build_conditional_expr): Add operand ifexp_bcp. Track whether
13105 result is an integer constant expression or can be used in
13106 unevaluated parts of one and avoid folding and wrap as
13107 appropriate. Fold operands before possibly doing -Wsign-compare
13108 warnings.
13109 (build_compound_expr): Wrap result for C99 if operands can be used
13110 in integer constant expressions.
13111 (build_c_cast): Update call to digest_init. Do not ignore
13112 overflow from casting floating-point constants to integers. Wrap
13113 results that could be confused with integer constant expressions,
13114 null pointer constants or floating-point constants.
13115 (c_cast_expr): Update call to groktypename. Handle expressions
13116 included in type name.
13117 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
13118 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
13119 Update calls to convert_for_assignment.
13120 (convert_for_assignment): Take new parameter
13121 null_pointer_constant. Do not strip nops or call
13122 decl_constant_value_for_broken_optimization. Set
13123 in_late_binary_op for conversions to boolean.
13124 (store_init_value): Update call to digest_init.
13125 (digest_init): Take new parameter null_pointer_constant. Do not
13126 call decl_constant_value_for_broken_optimization. pedwarn for
13127 initializers not constant expressions. Update calls to
13128 convert_for_assignment.
13129 (constructor_nonconst): New.
13130 (struct constructor_stack): Add nonconst element.
13131 (really_start_incremental_init, push_init_level, pop_init_level):
13132 Handle constructor_nonconst and nonconst element.
13133 (set_init_index): Call constant_expression_warning for array
13134 designators.
13135 (output_init_element): Fold value. Set constructor_nonconst as
13136 applicable. pedwarn for initializers not constant expressions.
13137 Update call to digest_init. Call constant_expression_warning
13138 where constant initializers are required.
13139 (process_init_element): Use c_save_expr.
13140 (c_finish_goto_ptr): Fold expression.
13141 (c_finish_return): Fold return value. Update call to
13142 convert_for_assignment.
13143 (c_start_case): Fold switch expression.
13144 (c_process_expr_stmt): Fold expression.
13145 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
aca60c7b 13146 ensure statement expression is not evaluated in constant expression.
a75b1c71 13147 (build_binary_op): Track whether results are integer constant
13148 expressions or may occur in such, disable folding and wrap results
13149 as applicable. Fold operands for -Wsign-compare warnings unless
13150 in_late_binary_op.
13151 (c_objc_common_truthvalue_conversion): Handle results folded to
13152 integer constants that are not integer constant expressions.
13153 * doc/extend.texi: Document when typeof operands are evaluated,
13154 that condition of __builtin_choose_expr is an integer constant
13155 expression, and more about use of __builtin_constant_p in
13156 initializers.
13157
088cc5d5 131582009-03-29 Richard Guenther <rguenther@suse.de>
13159
13160 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
13161 propagate addresses of array references.
13162
68e09621 131632009-03-29 Steven Bosscher <steven@gcc.gnu.org>
13164
13165 * regmove.c (perhaps_ends_bb_p): Remove.
13166 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
13167 from INSN and check that the main loop stays within that basic block.
13168 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
13169 (regmove_forward_pass): Split out from regmove_optimize. Use
13170 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
13171 (regmove_backward_pass): Split out from regmove_optimize. Use
13172 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
13173 (regmove_optimize): Simplify.
13174
40513f40 131752009-03-29 H.J. Lu <hongjiu.lu@intel.com>
13176
13177 PR target/39545
13178 * config/i386/i386.c (classify_argument): Ignore flexible array
13179 member in struct and warn ABI change.
13180
0d3a7d37 131812009-03-29 H.J. Lu <hongjiu.lu@intel.com>
13182
13183 * config/i386/i386-protos.h (ix86_agi_dependent): New.
13184
13185 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
13186 (ix86_adjust_cost): Updated.
13187
4c5fcca6 131882009-03-29 Jan Hubicka <jh@suse.cz>
13189
13190 PR middle-end/28850
13191 * tree-pass.h (pass_cleanup_eh): New function.
13192 (remove_unreachable_regions): Break code handling RTL
13193 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
13194 that can not be reached by runtime.
13195 (can_be_reached_by_runtime): New function.
13196 (label_to_region_map): New function.
13197 (num_eh_regions): New function.
13198 (rtl_remove_unreachable_regions): New function.
13199 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
13200 (remove_eh_region): New function.
13201 * except.h: Include sbitmap and vecprim.
13202 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
13203 num_eh_regions): Declare.
13204 * passes.c (init_optimization_passes): Schedule cleanup_eh.
aca60c7b 13205 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
4c5fcca6 13206 * tree-eh.c (tree_remove_unreachable_handlers): New function.
13207 (tree_empty_eh_handler_p): New function.
13208 (cleanup_empty_eh): New function.
13209 (cleanup_eh): New function.
13210 (pass_cleanup_eh): New function.
13211
b8c0c866 132122009-03-29 Jan Hubicka <jh@suse.cz>
13213
13214 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
13215 for removed regions.
13216
bb22691b 132172009-03-29 Jan Hubicka <jh@suse.cz>
13218
13219 * except.c (dump_eh_tree): Dump all datastructures.
13220
cd451a8b 132212009-03-29 Jan Hubicka <jh@suse.cz>
13222
13223 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
13224 (duplicate_eh_regions_1): Likewise.
13225 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
13226 vector; call EH verification.
13227 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13228 Be ready for region being removed.
13229
ffa800d1 132302009-03-29 Jan Hubicka <jh@suse.cz>
13231
13232 * bitmap.c (bitmap_last_set_bit): New function.
13233 * bitmap.h (bitmap_last_set_bit): Declare.
13234
1cf4a36a 132352009-03-29 David Ayers <ayers@fsfe.org>
13236
13237 PR objc/27377
13238 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
13239 by calling objc_compare_types and surpress warnings about
13240 incompatible C pointers that are compatible ObjC pointers.
89871bab 13241
1cf4a36a 132422009-03-29 Adam Nemet <anemet@caviumnetworks.com>
69428266 13243
13244 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
13245 call initialize_inline_failed.
13246 (initialize_inline_failed): Move it from here ...
13247 * cgraph.c (initialize_inline_failed): ... to here.
13248 (cgraph_create_edge): Call initialize_inline_failed rather than
13249 setting inline_failed directly.
13250
d093f898 132512009-03-29 Ben Elliston <bje@au.ibm.com>
13252
13253 PR target/32542
13254 * sysv4.opt (msdata): Improve comment.
13255 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
13256 * sysv4.h (SVR4_ASM_SPEC): Likewise.
13257
df6a567a 132582009-03-29 Ben Elliston <bje@au.ibm.com>
13259
13260 PR target/30451
13261 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
13262 load and store attributes.
13263
29c63a97 132642009-03-29 Ben Elliston <bje@au.ibm.com>
13265
13266 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
13267 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
13268 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
13269 * doc/extend.texi (X86 Built-in Functions): Add index entries for
13270 __builtin_infq and __builtin_huge_valq.
13271
ec4b52e7 132722009-03-28 Anatoly Sokolov <aesok@post.ru>
13273
13274 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
13275 atmega8m1 devices.
13276 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13277 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
13278
43fb76c1 132792009-03-28 Xinliang David Li <davidxl@google.com>
13280
89871bab 13281 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
43fb76c1 13282 (do_dbg_cnt): New function.
13283
b5cebd44 132842009-03-28 Jan Hubicka <jh@suse.cz>
13285
13286 Merge from pretty-ipa:
13287
13288 2009-03-27 Jan Hubicka <jh@suse.cz>
aca60c7b 13289
b5cebd44 13290 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13291 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
13292 * passes.c (function_called_by_processed_nodes_p): New.
13293 * ipa-pure-const.c (check_call): Fix handling of operands.
13294 (analyze_function): Dump debug output for skipped bodies.
13295 (local_pure_const): Use function_called_by_processed_nodes_p.
13296 * dwarf2out.c (reference_to_unused): Use output.
13297 * passes.c (do_per_function_toporder): Likewise.
13298
13299 2008-11-12 Jan Hubicka <jh@suse.cz>
13300
13301 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
13302 * ipa-pure-const.c (funct_state_d): Add can throw field; make
13303 state_set_in_source enum
13304 (check_decl): Ignore memory tags; do not set fake looping flags;
13305 dump diagnostics.
13306 (check_operand, check_tree, check_rhs_var, check_lhs_var,
13307 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
13308 (check_call, analyze_function): Rewrite.
13309 (check_stmt): New.
13310 (add_new_function): Update call of analyze_function.
13311 (generate_summary): Add call of analyze_function.
13312 (propagate): Propagate can_throw; handle state_set_in_source correctly.
13313 (local_pure_const): New function.
13314 (pass_local_pure_const): New pass.
13315 * ipa-inline.c (inline_transform): Set after_inlining.
13316 * tree-eh.c (stmt_can_throw_external): New.
13317 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
13318 work with aliasing built.
13319 * tree-flow.h (stmt_can_throw_external): New.
13320 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
13321 and local pure/const pass in early and late optimization queue.
aca60c7b 13322
1c4607fd 133232009-03-28 Martin Jambor <mjambor@suse.cz>
13324
13325 * fold-const.c (get_pointer_modulus_and_residue): New parameter
13326 allow_func_align.
13327 (fold_binary): Allow function decl aligment consideration is the
13328 second argument is integer constant one.
13329 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
13330 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
13331 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
13332
b0d29d1c 133332009-03-28 Jan Hubicka <jh@suse.cz>
13334
13335 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
13336 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
13337 * function.h (rtl_data): Add nothrow flag.
13338 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
13339 set DECL_NOTHROW for AVAILABLE functions.
13340
bf4a1edf 133412009-03-28 Jakub Jelinek <jakub@redhat.com>
13342
69dfb43a 13343 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
13344 following vector keyword has expansion starting with pixel or bool
13345 keyword, expand vector to __vector and pixel or bool to __pixel or
13346 __bool.
13347
bf4a1edf 13348 PR c++/39554
13349 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
13350 warn_if_disallowed_function_p): Removed.
13351 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
13352 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
13353 warning_if_disallowed_function_p.
13354 * flags.h (warn_if_disallowed_function_p,
13355 warn_disallowed_functions): Removed.
13356 * common.opt (Wdisallowed-function-list=): Removed.
13357 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
13358
c256d781 133592009-03-28 Richard Guenther <rguenther@suse.de>
13360
13361 PR tree-optimization/38723
13362 * tree-ssa-pre.c (compute_avail): Add all default definitions to
13363 the entry block.
13364
74a5c8eb 133652009-03-28 Jan Hubicka <jh@suse.cz>
13366
13367 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
13368 test introduced by my previous patch.
13369
59ce9604 133702009-03-28 Richard Guenther <rguenther@suse.de>
13371
13372 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
13373 the PHIs value undefined.
13374
6cb239e5 133752009-03-28 Jan Hubicka <jh@suse.cz>
13376
13377 * tree-pass.h (pass_fixup_cfg): New pass.
13378 * ipa-inline.c (inline_transform): Set
13379 always_inline_functions_inlined/after_inlining.
13380 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
13381 (pass_fixup_cfg): New pass.
13382 * passes.c (init_optimization_passes): Add fixup_cfg.
13383
aeb38861 133842009-03-28 Richard Guenther <rguenther@suse.de>
13385
13386 PR tree-optimization/38458
13387 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
13388 argument use the arguments copy-of value.
13389
8edeb88b 133902009-03-28 Richard Guenther <rguenther@suse.de>
13391
13392 PR tree-optimization/38180
13393 * tree-ssa-ccp.c (get_default_value): Simplify.
13394 (likely_value): Likewise.
13395 (surely_varying_stmt_p): Properly handle VOP case.
13396 (ccp_initialize): Likewise.
13397 (ccp_fold): Handle propagating through *&.
13398 (fold_const_aggregate_ref): Also handle decls.
13399
09fc9532 134002009-03-28 Jan Hubicka <jh@suse.cz>
13401
13402 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13403 * cgraph.h (cgraph_node): Likewise.
13404 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
13405 (cgraph_reset_node): Use process flag.
13406 (cgraph_mark_functions_to_output): Likewise.
13407 (cgraph_expand_function): Likewise.
13408 (cgraph_expand_all_functions): Likewise.
13409 (cgraph_output_in_order): Likewise.
13410 * dwarf2out.c (reference_to_unused): Likewise.
13411 * passes.c do_per_function_toporder): Likewise.
13412
326a9581 134132009-03-28 Jan Hubicka <jh@suse.cz>
13414
13415 Bring from lto-branch:
aca60c7b 13416
326a9581 13417 2008-09-03 Doug Kwan <dougkwan@google.com>
13418
13419 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
13420 enums instead of reason strings.
13421 * cgraph.c (cgraph_create_edge): Same.
13422 (cgraph_inline_failed_string): New function.
13423 * cgraph.h (cgraph_inline_failed_t): New enum type.
13424 (cgraph_inline_failed_string): New prototype.
13425 (struct cgraph_edge): Change type of INLINED_FAILED from constant
13426 char pointer to cgraph_inline_failed_t.
13427 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
13428 (cgraph_default_inline_p): Ditto.
943327c1 13429 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
326a9581 13430 to cgraph_inline_failed_t pointer.
13431 * cif-code.def: New file.
13432 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
13433 reason string.
13434 (cgraph_check_inline_limits): Change type of REASON to pointer to
13435 cgraph_inline_failed_t. Replace reason strings with enums.
13436 (cgraph_default_inline_p): Ditto.
13437 (cgraph_recursive_inlining_p): Ditto.
13438 (update_caller_keys): Change type of FAILED_REASON to
13439 cgraph_inline_failed_t.
13440 (cgraph_set_inline_failed): Change type of REASON to pointer to
13441 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
13442 convert enums to strings for text output.
13443 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
13444 to be of type cgraph_inline_failed_t. Replace reason strings with
13445 enums. Call cgraph_inline_failed_string to covert enums
13446 to strings for text output.
13447 (cgraph_decide_inlining): Replace reason strings with enums.
13448 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
13449 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
13450 for text output.
13451 * tree-inline.c (expand_call_inline): Change type of REASON
13452 to cgraph_inline_failed_t. Replace reason strings with enums.
13453 Call cgraph_inline_failed_string for text output.
13454 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
13455 (cgraph.o): Ditto.
13456
77b5eabc 134572009-03-28 Jan Hubicka <jh@suse.cz>
13458
13459 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
13460 cgraph_clone_node): Remove master clone handling.
13461 (cgraph_is_master_clone, cgraph_master_clone): Remove.
13462 * cgraph.h (master_clone): Remove.
13463 (cgraph_is_master_clone, cgraph_master_clone): Remove.
13464 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
13465 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
13466
cc76f102 134672009-03-28 Jan Hubicka <jh@suse.cz>
13468
13469 * cgraph.c (cgraph_function_body_availability): Functions declared
13470 inline are always safe to assume that it is not going to be replaced.
13471
63295314 134722009-03-28 Richard Guenther <rguenther@suse.de>
13473
13474 PR tree-optimization/38513
13475 * tree-ssa-pre.c (eliminate): Remove redundant stores.
13476 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
13477 EXC_PTR_EXPR and FILTER_EXPR.
13478 (get_ref_from_reference_ops): Likewise.
13479
d360ad90 134802009-03-28 Richard Guenther <rguenther@suse.de>
13481
13482 PR tree-optimization/38968
13483 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
13484 Use FLOOR_MOD_EXPR to compute misalignment.
13485
c82f3b60 134862009-03-28 Richard Guenther <rguenther@suse.de>
13487
13488 PR tree-optimization/37795
13489 * tree.h (combine_comparisons): Declare.
13490 * fold-const.c (combine_comparisons): Export.
13491 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
13492 comparisons.
13493 (ifcombine_iforif): Use combine_comparisons.
13494
a5bfef5b 134952009-03-28 Jan Hubicka <jh@suse.cz>
13496
13497 * tree-eh.c (inlinable_call_p): New function.
13498 (make_eh_edges): Use it.
13499 (verify_eh_edges): Use it.
13500 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
13501 * except.c (reachable_next_level): Add inlinable_function argument
13502 (sjlj_find_directly_reachable_regions): Update.
13503 (add_reachable_handler): Do not set saw_any_handlers.
13504 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
13505 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13506 Add new inlinable call parameter.
13507 (can_throw_internal, can_throw_external): Update.
13508 * except.h (can_throw_internal_1, can_throw_external_1,
13509 foreach_reachable_handler): Update declaration.
13510
f2397fc4 135112009-03-28 Joseph Myers <joseph@codesourcery.com>
13512
13513 * config/arm/t-arm-coff, config/h8300/coff.h,
13514 config/i386/i386-aout.h, config/i386/i386-coff.h,
13515 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
13516 config/pdp11/2bsd.h, config/rs6000/aix41.h,
13517 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
13518 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
13519 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
13520 sys-types.h: Remove.
13521 * Makefile.in: Remove protoize and fixproto support and references
13522 in comments.
13523 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
13524 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
13525 Remove.
13526 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
13527 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
13528 unprotoize$(exeext).
13529 (rest.encap): Don't depend on $(STMP_FIXPROTO)
13530 (.PHONY): Don't depend on proto.
13531 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
13532 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
13533 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
13534 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
13535 build/gen-protos.o, build/scan.o, xsys-protos.h,
13536 build/fix-header$(build_exeext), build/fix-header.o,
13537 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
13538 stmp-install-fixproto): Remove.
13539 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
13540 SYSCALLS.c or fixproto files.
13541 (install-common): Don't install protoize.
13542 (install-headers-tar, install-headers-cpio, install-headers-cp):
13543 Don't depend on $(STMP_FIXPROTO).
13544 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
13545 install fixproto files or write out fixproto settings.
13546 (uninstall): Don't uninstall protoize.
13547 * config.gcc (use_fixproto): Remove.
13548 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
13549 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
13550 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
13551 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
13552 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
13553 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
13554 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
13555 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
13556 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
13557 * config/t-vxworks (STMP_FIXPROTO): Remove.
13558 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
13559 STMP_FIXPROTO): Remove.
13560 * config.in, configure: Regenerate.
13561 * crtstuff.c (gid_t, uid_t): Don't undefine.
13562 * doc/install.texi: Change m68k-coff to m68k-elf in example.
13563 (arm-*-coff, arm-*-aout: Remove target entries.
13564 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
13565 Remove mention of AIX 4.1.
13566 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
13567 * doc/invoke.texi (Running Protoize): Remove.
13568 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
13569 (Protoize Caveats): Remove.
13570 * tsystem.h: Update comments on headers assumed to exist.
13571
08ed847d 135722009-03-27 Vladimir Makarov <vmakarov@redhat.com>
13573
13574 * genautomata.c: Add a new year to the copyright. Add a new
13575 reference.
13576 (struct insn_reserv_decl): Add comments for member bypass_list.
13577 (find_bypass): Remove.
13578 (insert_bypass): New.
13579 (process_decls): Use insert_bypass.
13580 (output_internal_insn_latency_func): Output all bypasses with the
13581 same input insn in one switch case.
13582
13583 * rtl.def (define_bypass): Describe bypass choice.
13584 * doc/md.texi (define_bypass): Ditto.
13585
8e353ea6 135862009-03-27 Richard Guenther <rguenther@suse.de>
13587
13588 * gimplify.c (mark_addressable): Export.
13589 * tree-flow.h (mark_addressable): Declare.
13590 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
13591 * tree-ssa.c (verify_phi_args): Verify that address taken
13592 variables have TREE_ADDRESSABLE set.
13593
135942009-03-27 Richard Guenther <rguenther@suse.de>
13595
13596 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
13597 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
13598 Do not mark decls TREE_ADDRESSABLE.
13599 (build_fold_addr_expr): Adjust.
13600 (fold_addr_expr): Remove.
13601 (fold_unary): Use build_fold_addr_expr.
13602 (fold_comparison): Likewise.
13603 (split_address_to_core_and_offset): Likewise.
13604 * coverage.c (tree_coverage_counter_addr): Mark the array decl
13605 TREE_ADDRESSABLE.
13606 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
13607 (gimplify_modify_expr_to_memcpy): Mark source and destination
13608 addressable.
13609 * omp-low.c (create_omp_child_function): Mark the object decl
13610 TREE_ADDRESSABLE.
13611 (lower_rec_input_clauses): Mark the var we take the address of
13612 TREE_ADDRESSABLE.
13613 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
13614
16fe3089 136152009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13616
13617 PR middle-end/39315
13618 * cfgexpand.c (expand_one_stack_var_at): Change alignment
13619 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
13620
9d1d1fab 136212009-03-27 Richard Guenther <rguenther@suse.de>
13622
13623 PR tree-optimization/39120
13624 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
13625 constraints.
13626 (handle_lhs_call): Process return constraints. Add escape
13627 constraints if necessary.
13628 (handle_const_call): Fill out return constraints. Make nested
13629 case more precise. Avoid consttmp if possible.
13630 (handle_pure_call): Fill out return constraints. Avoid
13631 callused if possible.
13632 (find_func_aliases): Simplify call handling.
13633
136342009-03-27 Richard Guenther <rguenther@suse.de>
13635
13636 PR tree-optimization/39120
13637 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
13638 as a representative.
13639 (solve_graph): Do propagate CALLUSED.
13640 (handle_pure_call): Use a scalar constraint from CALLUSED for
13641 the return value.
13642 (find_what_p_points_to): CALLUSED shall not appear in poins-to
13643 solutions.
13644
7cfdc2f0 136452009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13646
13647 PR c/39323
13648 * c-common.c (handle_aligned_attribute): Properly check alignment
13649 overflow. Use (1U << i) instead of (1 << i).
13650
aca60c7b 13651 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
7cfdc2f0 13652
13653 * expr.h (get_mem_align_offset): Updated.
13654
13655 * tree.h (tree_decl_common): Change align to "unsigned int" and
13656 move it before pointer_alias_set.
13657
3f863bef 136582009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13659 Jakub Jelinek <jakub@redhat.com>
13660
13661 PR target/38034
13662 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
13663 gr_register_operand with gr_reg_or_0_operand.
13664 (cmpxchg_rel_di): Likewise.
13665 (sync_lock_test_and_set<mode>): Likewise.
13666
9680c846 136672009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13668
13669 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
13670 (true_regnum): Likewise.
13671
13672 * rtlanal.c (subreg_info): Moved to ...
13673 * rtl.h (subreg_info): Here. New.
13674 (subreg_get_info): New.
13675
13676 * rtlanal.c (subreg_get_info): Make it extern.
13677
0e4d11df 136782009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13679
13680 PR target/39472
13681 * config/i386/i386.c (ix86_abi): New.
13682 (override_options): Handle -mabi=.
aca60c7b 13683 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
0e4d11df 13684 (ix86_call_abi_override): Likewise.
13685 (init_cumulative_args): Likewise.
13686 (function_arg_advance): Likewise.
13687 (function_arg_64): Likewise.
13688 (function_arg): Likewise.
13689 (ix86_pass_by_reference): Likewise.
13690 (ix86_function_value_regno_p): Likewise.
13691 (ix86_build_builtin_va_list_abi): Likewise.
13692 (setup_incoming_varargs_64): Likewise.
13693 (is_va_list_char_pointer): Likewise.
13694 (ix86_init_machine_status): Likewise.
aca60c7b 13695 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
0e4d11df 13696 (ix86_function_type_abi): Return enum calling_abi. Rewrite
13697 for 64bit. Replace DEFAULT_ABI with ix86_abi.
aca60c7b 13698 (ix86_function_abi): Make it static and return enum calling_abi.
0e4d11df 13699 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
13700 with ix86_abi.
13701 (ix86_fn_abi_va_list): Updated.
13702
13703 * config/i386/i386.h (ix86_abi): New.
13704 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
13705 (CONDITIONAL_REGISTER_USAGE): Likewise.
13706 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
13707 (machine_function): Likewise.
13708
13709 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
13710 with ix86_abi.
13711 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
13712 (STACK_BOUNDARY): Likewise.
13713 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
13714
13715 * config/i386/i386.opt (mabi=): New.
13716
13717 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
13718 return enum calling_abi.
13719 (ix86_function_type_abi): Likewise.
13720 (ix86_function_abi): Removed.
13721
13722 * doc/invoke.texi: Document -mabi= option for x86.
13723
656ec810 137242009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13725
13726 * builtins.c (real_dconstp): Delete.
13727 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
13728
cb3582e7 137292009-03-27 Dodji Seketeli <dodji@redhat.com>
13730 Jakub Jelinek <jakub@redhat.com>
13731
13732 PR debug/37959
13733 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
13734 (gen_subprogram_die): When a function is explicit, generate the
13735 DW_AT_explicit attribute.
13736 * langhooks.h (struct lang_hooks_for_decls): Add
13737 function_decl_explicit_p langhook.
13738 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
13739 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
13740
38150ede 137412009-03-27 Jakub Jelinek <jakub@redhat.com>
13742
3f95c690 13743 * builtins.c (fold_builtin_memory_op): Optimize memmove
13744 into memcpy if we can prove source and destination don't overlap.
13745
38150ede 13746 * tree-inline.c: Include gt-tree-inline.h.
13747 (clone_fn_id_num): New variable.
13748 (clone_function_name): New function.
13749 (tree_function_versioning): Use it.
13750 * Makefile.in (GTFILES): Add tree-inline.c.
13751
08da3d21 137522009-03-27 Mark Mitchell <mark@codesourcery.com>
13753
13754 * BASE-VER: Change to 4.5.0.
13755
e19b015b 137562009-03-27 Xinliang David Li <davidxl@google.com>
13757
13758 PR tree-optimization/39557
13759 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
13760
b87f0847 137612009-03-27 Xinliang David Li <davidxl@google.com>
13762
13763 PR tree-optimization/39548
89871bab 13764 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
b87f0847 13765 candidate check.
13766
545ba0d7 137672009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13768
13769 * c-common.c (pointer_int_sum): Use %wd on return from
13770 tree_low_cst.
13771
482c9a19 137722009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13773
13774 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
13775 on return from tree_low_cst.
13776
1f1d68a6 137772009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
13778
13779 PR c++/36799
aca60c7b 13780 * ginclude/stdarg.h (va_copy): Define also for
13781 __GXX_EXPERIMENTAL_CXX0X__.
1f1d68a6 13782
d924b670 137832009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13784
13785 PR c++/35652
13786 * builtins.h (c_strlen): Do not warn here.
13787 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
13788 * c-common.c (pointer_int_sum): Take an explicit location.
13789 Warn about offsets out of bounds.
13790 * c-common.h (pointer_int_sum): Adjust declaration.
13791
1ab73152 137922009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13793
d924b670 13794 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
13795 markup glitch.
1ab73152 13796
f4858d06 137972009-03-26 Jakub Jelinek <jakub@redhat.com>
13798
13799 PR c++/39554
13800 * opts.c (warn_if_disallowed_function_p): Don't assume
13801 get_callee_fndecl must return non-NULL.
13802
d9cee1b1 138032009-03-26 Vladimir Makarov <vmakarov@redhat.com>
13804
13805 PR rtl-optimization/39522
13806 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
13807 when reg_reloaded_valid is set.
13808
204cb876 138092009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13810
13811 * config/spu/divv2df3.c: New file.
13812 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
13813 (DPBIT_FUNCS): Filter out _div_df.
13814
1fd36c3a 138152009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
13816
13817 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
13818 a jump insn, count that jump in the distance to the loop start.
13819
dc9b0799 138202009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
13821
13822 PR target/39523
13823 * config/sh/sh.c (calc_live_regs): Fix condition for global
13824 registers except PIC_OFFSET_TABLE_REGNUM.
13825
6609be22 138262009-03-25 Kai Tietz <kai.tietz@onevision.com>
13827
13828 PR/39518
13829 * doc/invoke.texi (-mconsole): New.
13830 (-mcygwin): New.
13831 (-mno-cygwin): New.
13832 (-mdll): New.
13833 (-mnop-fun-dllimport): New.
13834 (-mthread): New.
13835 (-mwin32): New.
13836 (-mwindows): New.
13837 (sub section "i386 and x86-64 Windows Options"): New.
13838
943327c1 138392009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
2ccb7f3f 13840
13841 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
13842 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
13843
5211387e 138442009-03-25 Richard Guenther <rguenther@suse.de>
13845
13846 PR middle-end/39497
13847 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
13848 of -Wno-error.
13849
686d79e0 138502009-03-25 Andrey Belevantsev <abel@ispras.ru>
13851
13852 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
13853 neither of haifa/selective schedulers are working.
13854
850fc3f0 138552009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13856
13857 * doc/invoke.texi (Debugging Options): Fix description of
13858 -fno-merge-debug-strings.
13859
10178ded 138602009-03-24 Hans-Peter Nilsson <hp@axis.com>
13861
d1640684 13862 * config/cris/libgcc.ver: New version-script.
13863 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
13864
10178ded 13865 * configure.ac <GAS features, nop mnemonic>: Add pattern
13866 crisv32-*-* for "nop".
aca60c7b 13867 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
10178ded 13868 * configure: Regenerate.
13869
416dafb3 138702009-03-24 Ira Rosen <irar@il.ibm.com>
13871
13872 PR tree-optimization/39529
13873 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
13874 mark_sym_for_renaming for the tag copied to the new vector
13875 pointer.
13876
68ecbaec 138772009-03-24 Arthur Loiret <aloiret@debian.org>
13878
aca60c7b 13879 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
68ecbaec 13880 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
13881 EXTRA_SPEC_FUNCTIONS.
13882 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
13883 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
13884 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
13885 -march and -mtune options.
13886
943327c1 138872009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
f8873a45 13888
13889 * config/m68k/t-rtems: Add m5329 multilib.
13890
ab977c1f 138912009-03-24 Dodji Seketeli <dodji@redhat.com>
13892 Jakub Jelinek <jakub@redhat.com>
13893
13894 PR debug/39524
13895 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
13896 nodes.
13897
4390875c 138982009-03-23 Jakub Jelinek <jakub@redhat.com>
13899
13900 PR c/39495
13901 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
13902 instead of c_parser_expression_conv, if original_code isn't one of the
13903 4 allowed comparison codes, fail.
13904
9fac1c66 139052009-03-23 Richard Guenther <rguenther@suse.de>
13906
13907 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
13908 * tree.h (struct tree_type): Likewise.
13909 * reload.h (struct insn_chain): Likewise.
13910 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
13911 * function.h (struct function): Likewise.
13912 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
13913
b7d1c9e6 139142009-03-23 Jakub Jelinek <jakub@redhat.com>
13915
13916 PR tree-optimization/39516
13917 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
13918
943327c1 139192009-03-23 Bingfeng Mei <bmei@broadcom.com>
f824d860 13920
89871bab 13921 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
f824d860 13922 should be set true if BITS_PER_WORD of target is bigger than 32
13923
f8cf5d4c 139242009-03-22 Hans-Peter Nilsson <hp@axis.com>
13925
13926 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
13927 Translate -B-options to -rpath-link. Correct existing
13928 rpath-link and conditionalize on !nostdlib.
13929
8898b2ef 139302009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13931
13932 * doc/extend.texi (Function Attributes, Variable Attributes):
13933 Fix typos.
13934 * doc/invoke.texi (Debugging Options, Optimize Options)
13935 (i386 and x86-64 Options, MCore Options): Likewise.
13936
4b1ab129 139372009-03-20 Jakub Jelinek <jakub@redhat.com>
13938
13939 PR debug/37890
13940 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
13941 it for block local namespace aliases.
13942 (gen_decl_die): Pass context_die to gen_namespace_die.
13943
e060ba36 139442009-03-19 Jakub Jelinek <jakub@redhat.com>
13945
13946 PR c/39495
13947 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
13948 minimum or maximum value.
13949
42f43a38 139502009-03-19 Alexandre Oliva <aoliva@redhat.com>
13951
13952 * reginfo.c (globalize_reg): Recompute derived reg sets.
13953
943327c1 139542009-03-19 Ozkan Sezer <sezeroz@gmail.com>
76d89866 13955
13956 PR target/39063
13957 * libgcc2.c (mprotect): Do not use signed arguments for
13958 VirtualProtect, use DWORD arguments. Also fix the 'may
13959 be used uninitialized' warning for the np variable.
13960
99198add 139612009-03-19 Jakub Jelinek <jakub@redhat.com>
13962
13963 PR target/39496
13964 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
13965 functions using regparm calling conventions when not optimizing.
13966 (ix86_function_sseregparm): Similarly for sseregparm calling
13967 conventions.
13968
63ca8934 139692009-03-19 Li Feng <nemokingdom@gmail.com>
13970
13971 PR middle-end/39500
13972 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
13973 dependence if the first conflict is after niter iterations.
13974
c5fe58d7 139752009-03-19 Hans-Peter Nilsson <hp@axis.com>
13976
13977 PR middle-end/38609
13978 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
13979 functions with dynamic stack-pointer adjustments.
13980
d4669bca 139812009-03-19 Ben Elliston <bje@au.ibm.com>
13982
13983 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
13984 option; change to -msdata=data.
13985
286c29e2 139862009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13987
13988 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
13989 and -fopenmp.
13990
0e55c4d0 139912009-03-18 Eric Botcazou <ebotcazou@adacore.com>
13992
13993 PR target/35180
13994 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
13995
5de57ebe 139962009-03-18 Sandra Loosemore <sandra@codesourcery.com>
13997
13998 * doc/invoke.texi (Code Gen Options): Expand discussion of
13999 -fno-common.
14000
0ac758f7 140012009-03-18 Jakub Jelinek <jakub@redhat.com>
14002
14003 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
14004 * matrix-reorg.c (struct matrix_info): Likewise.
14005 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
14006 * rtl.h (struct mem_attrs): Likewise.
14007 * df.h (struct df): Likewise.
14008 * tree-data-ref.h (struct data_dependence_relation): Likewise.
14009 * ira-int.h (struct ira_allocno): Likewise.
14010 * df-scan.c (struct df_collection_rec): Likewise.
14011 * ira.c (struct equivalence): Likewise.
14012 * function.c (struct temp_slot): Likewise.
14013 * cfgloop.h (struct loop): Likewise.
14014
f24ccada 14015 PR debug/39485
14016 * function.c (use_register_for_decl): When not optimizing, disregard
14017 register keyword for variables with types containing methods.
14018
8fa85fc5 140192009-03-18 Sebastian Pop <sebastian.pop@amd.com>
14020
14021 PR middle-end/39447
14022 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
14023 (is_simple_operand): Call contains_component_ref_p before calling data
14024 reference analysis that would fail on COMPONENT_REFs.
14025
14026 * tree-vrp.c (search_for_addr_array): Fix formatting.
14027
a39f4102 140282009-03-18 Richard Guenther <rguenther@suse.de>
14029
14030 * tree-vect-transform.c (vect_loop_versioning): Fold the
14031 generated comparisons.
14032 * tree-vectorizer.c (set_prologue_iterations): Likewise.
14033 (slpeel_tree_peel_loop_to_edge): Likewise.
14034
b8048da5 140352009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14036
fad6b6bb 14037 PR middle-end/37805
14038 * opts.c (print_specific_help): In addition to `undocumented',
14039 accept `separate' and `joined' flags if passed alone. Describe
14040 output by the first matched one of those.
14041 (common_handle_option): Skip over empty strings.
14042 * gcc.c (display_help): Fix help string for `--help='.
14043 * doc/invoke.texi (Option Summary, Overall Options): With
14044 `--help=', classes and qualifiers can both be repeated, but
14045 only the latter can be negated. One should not pass only
14046 negated qualifiers. Fix markup and examples.
14047
b8048da5 14048 Revert
14049 2008-10-14 Jakub Jelinek <jakub@redhat.com>
14050 PR middle-end/37805
14051 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
14052 and -fhelp=separate.
14053
9247818a 140542009-03-17 Jing Yu <jingyu@google.com>
14055
14056 PR middle-end/39378
a3b7452d 14057 * function.h (struct rtl_data): Move is_thunk from here...
14058 (struct function): ...to here.
14059 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
9247818a 14060 * varasm.c (assemble_start_function): Change is_thunk from crtl to
14061 cfun.
a3b7452d 14062 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
14063 cfun.
14064 (alpha_does_function_need_gp, alpha_start_function): Likewise.
14065 (alpha_output_function_end_prologue): Likewise.
14066 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
14067 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
14068 (rs6000_output_function_epilogue): Likewise.
14069 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
9247818a 14070
d849db06 140712009-03-17 Uros Bizjak <ubizjak@gmail.com>
14072
14073 PR target/39482
14074 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
14075 from different units in a single alternative.
14076 (*truncdfsf_i387): Ditto.
14077 (*truncxfsf2_mixed): Ditto.
14078 (*truncxfdf2_mixed): Ditto.
14079
31334434 140802009-03-17 Jakub Jelinek <jakub@redhat.com>
14081
169f8686 14082 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
14083 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
14084
4595b0f9 14085 PR debug/39474
14086 * tree-ssa-live.c (remove_unused_locals): Don't remove local
14087 unused non-artificial variables when not optimizing.
14088
157e283b 14089 PR debug/39471
14090 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
14091 DW_TAG_imported_module even if decl is IMPORTED_DECL with
14092 NAMESPACE_DECL in its DECL_INITIAL.
14093
979d3efc 14094 PR middle-end/39443
14095 * optabs.c (set_user_assembler_libfunc): New function.
14096 * expr.h (set_user_assembler_libfunc): New prototype.
14097 * c-common.c: Include libfuncs.h.
14098 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
14099 for memcmp, memset, memcpy, memmove and abort.
14100 * Makefile.in (c-common.o): Depend on libfuncs.h.
14101
31334434 14102 PR debug/39412
14103 * dwarf2out.c (gen_inlined_enumeration_type_die,
14104 gen_inlined_structure_type_die, gen_inlined_union_type_die,
14105 gen_tagged_type_instantiation_die): Removed.
14106 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
14107 do nothing.
14108
c158ae09 141092009-03-17 Janis Johnson <janis187@us.ibm.com>
14110
14111 PR testsuite/38526
14112 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
14113 its use.
14114 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
14115 (check-parallel-%): Ditto.
14116 (check-consistency): Ditto.
14117
d4138574 141182009-03-17 Kai Tietz <kai.tietz@onevision.com>
14119
14120 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
14121 local variable rhs by NULL_TREE.
14122
dc8c96bb 141232009-03-17 H.J. Lu <hongjiu.lu@intel.com>
14124
14125 PR target/39477
d849db06 14126 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
dc8c96bb 14127
462bc935 141282009-03-17 H.J. Lu <hongjiu.lu@intel.com>
14129
14130 PR target/39476
d849db06 14131 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
462bc935 14132
141332009-03-17 H.J. Lu <hongjiu.lu@intel.com>
4543b422 14134
14135 PR target/39473
14136 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
14137 for ms->sysv ABI calls only in 64bit mode.
14138
14139 * config/i386/i386.md (untyped_call): Support 32bit.
14140
ff8d1746 141412009-03-16 H.J. Lu <hongjiu.lu@intel.com>
14142
14143 * doc/extend.texi: Replace x86_65 with x86_64.
14144
1095b81d 141452009-03-16 Jakub Jelinek <jakub@redhat.com>
14146
14147 PR tree-optimization/39455
14148 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
14149 mismatches for POINTER_TYPE_P (type).
14150 (number_of_iterations_le): Likewise.
14151
943327c1 141522009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
15d6a8ce 14153
14154 * config/picochip/picochip.c: Removed profiling support.
14155 * config/picochip/picochip.md: Removed profiling instruction.
14156 * config/picochip/picochip.h: Removed profiling builtin.
14157
5bc96548 141582009-03-16 Joseph Myers <joseph@codesourcery.com>
14159
14160 * doc/install.texi (--with-host-libstdcxx): Document.
14161
7846db34 141622009-03-14 Anatoly Sokolov <aesok@post.ru>
14163
14164 PR target/34299
14165 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
14166 generate a warning if the function name does not begin with
14167 "__vector" and the function has either the 'signal' or 'interrupt'
14168 attribute, from here to ...
14169 (avr_declare_function_name): ...here. New function.
14170 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
14171 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
14172
6026d749 141732009-03-14 Jakub Jelinek <jakub@redhat.com>
14174
14175 PR bootstrap/39454
14176 * cse.c (fold_rtx): Don't modify original const_arg1 when
14177 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
14178 separate variable instead.
14179 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
14180 from out of range shift counts.
14181 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
14182
7dfbd804 141832009-03-13 Catherine Moore <clm@codesourcery.com>
747c6be5 14184
943327c1 14185 * config/i386/x-mingw32 (host-mingw32.o): Replace
747c6be5 14186 diagnostic.h with $(DIAGNOSTIC_H).
14187
7dfbd804 141882009-03-12 Jakub Jelinek <jakub@redhat.com>
1f477a18 14189
14190 PR target/39431
14191 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
14192 predicate.
14193 * config/i386/sync.md (sync_compare_and_swap<mode>,
14194 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
14195 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
14196 into a register.
14197 (sync_double_compare_and_swapdi_pic,
14198 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
14199 cmpxchg8b_pic_memory_operand instead of just memory_operand.
14200
7e17a1bf 142012009-03-12 H.J. Lu <hongjiu.lu@intel.com>
14202
14203 PR target/39445
d849db06 14204 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7e17a1bf 14205
01a3edef 142062009-03-12 H.J. Lu <hongjiu.lu@intel.com>
14207
14208 PR target/39327
14209 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14210 (avx_addsubv4df3): Likewise.
14211 (*avx_addsubv4sf3): Likewise.
14212 (sse3_addsubv4sf3): Likewise.
14213
57183b55 142142009-03-12 H.J. Lu <hongjiu.lu@intel.com>
14215
14216 PR target/38824
d849db06 14217 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
57183b55 14218
3b95aad3 142192009-03-12 Vladimir Makarov <vmakarov@redhat.com>
14220
14221 PR debug/39432
14222 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
14223 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
14224 registers for allocnos created from user-defined variables.
14225
8d72495d 142262009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14227
14228 PR target/39181
14229 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
14230 of non-integer mode as well.
14231
cf219ecd 142322009-03-11 Adam Nemet <anemet@caviumnetworks.com>
14233
14234 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
14235 for functions for which the parameter types are unknown.
14236
76cbc2a0 142372009-03-11 Jakub Jelinek <jakub@redhat.com>
14238
14239 PR target/39137
d849db06 14240 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
76cbc2a0 14241 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
14242 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
14243 * config/i386/i386.c (ix86_local_alignment): For
14244 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
14245 long long variables on the stack to avoid dynamic realignment.
14246 Allow the first argument to be a decl rather than type.
14247 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
14248
18061948 142492009-03-11 Nick Clifton <nickc@redhat.com>
14250
14251 PR target/5362
a37dec0c 14252 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
14253 options.
14254 Add description to mno-lsim option.
14255 * config/mcore/mcore.h: Remove comment about deprecated m4align
14256 option.
14257 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
14258 * doc/invoke.texi: Add description of mno-lsim and
14259 mstack-increment options.
14260
18061948 14261 * config/fr30/fr30.opt: Document the -mno-lsim option.
14262 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
14263 and -mno-lsim options.
14264
944017fd 142652009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14266
14267 * fold-const.c (fold_comparison): Only call fold_inf_compare
14268 if the mode supports infinities.
14269
93ef9154 142702009-03-11 Jason Merrill <jason@redhat.com>
14271
14272 PR debug/39086
14273 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
14274 end already did. Notice GIMPLE_CALL modifications of the result.
14275 Don't copy debug information from an ignored decl or a decl from
14276 another function.
14277
e927e2b8 142782009-03-10 Richard Guenther <rguenther@suse.de>
14279 Nathan Froyd <froydnj@codesourcery.com>
14280
14281 PR middle-end/37850
d849db06 14282 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
e927e2b8 14283 (__divMODE3): Likewise.
14284
48855189 142852009-03-09 Jakub Jelinek <jakub@redhat.com>
14286
14287 PR tree-optimization/39394
14288 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
14289 DECL_SIZE_UNIT of variable length FIELD_DECLs.
14290
af7eac22 142912009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14292
14293 * recog.c (verfiy_changes): Disallow renaming of hard regs in
14294 inline asms for register asm ("") declarations.
14295
4ce9876e 142962009-03-09 Eric Botcazou <ebotcazou@adacore.com>
14297
14298 * fold-const.c (fold_unary): Fix comment.
14299
928059d5 143002009-03-07 Jan Hubicka <jh@suse.cz>
14301
14302 PR target/39361
0648196e 14303 * tree-inline.c (setup_one_parameter): Do replacement of const
14304 argument by constant in SSA form.
928059d5 14305
c9b50df7 143062009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14307
14308 PR middle-end/38028
14309 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
14310 determine alignment passed to assign_stack_local.
14311 (assign_parms_unsplit_complex): Likewise.
14312 * except.c (sjlj_build_landing_pads): Likewise.
14313
ebcb0478 143142009-03-06 Jakub Jelinek <jakub@redhat.com>
14315
82eb5a11 14316 PR middle-end/39360
14317 * tree-flow.h (add_referenced_var): Return bool instead of void.
14318 * tree-dfa.c (add_referenced_var): Return result of
14319 referenced_var_check_and_insert call.
14320 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
14321 of referenced_var_check_and_insert.
14322
ebcb0478 14323 PR debug/39372
d849db06 14324 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
ebcb0478 14325 (gen_variable_die): Emit DW_AT_location on abstract static variable's
14326 DIE, don't emit it if abstract origin already has it.
14327 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
14328 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
14329
6d92fc03 143302009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
14331
aca60c7b 14332 * genpreds.c (needs_variable): Fix parentheses at variable name
6d92fc03 14333 detection.
14334 (write_tm_constrs_h): Indent generated code.
14335
1fe1c6f5 143362009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14337
14338 * doc/extend.texi (Function Attributes): Add documentation
14339 for isr attributes.
14340
5a798e1e 143412009-03-06 Jakub Jelinek <jakub@redhat.com>
14342
14343 PR debug/39387
14344 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
14345 take locus from its DECL_SOURCE_LOCATION instead of input_location.
14346
05f566a9 143472009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
14348
14349 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
14350 the loop as bad.
14351
227f485e 143522009-03-05 Jakub Jelinek <jakub@redhat.com>
14353
14354 PR debug/39379
14355 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
14356 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
14357
a6ccab35 143582009-03-05 Uros Bizjak <ubizjak@gmail.com>
14359
14360 * config/i386/i386.md (R8_REG, R9_REG): New constants.
14361 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
14362 constants instead of magic numbers.
14363 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
14364 (QI_REG_P): Ditto.
14365 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
14366 (x86_64_ms_abi_int_parameter_registers): Ditto.
14367 (x86_64_int_return_registers): Ditto.
0d22f439 14368 (ix86_maybe_switch_abi): Ditto.
a6ccab35 14369 (ix86_expand_call): Ditto for clobbered_registers array.
14370 (ix86_hard_regno_mode_ok): Ditto.
14371 (x86_extended_QIreg_mentioned_p): Ditto.
14372
ea138c98 143732009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
14374
a6ccab35 14375 PR tree-optimization/39349
1595fd95 14376 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
14377
ea138c98 14378 * combine.c (gen_lowpart_for_combine): Use omode when generating
14379 clobber.
14380
242753ba 143812009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
14382
a6ccab35 14383 PR rtl-optimization/39235
242753ba 14384 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
14385
7299be85 143862009-03-04 Zdenek Dvorak <ook@ucw.cz>
14387
14388 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
14389
a4c8b601 143902009-03-04 Richard Guenther <rguenther@suse.de>
14391
14392 PR tree-optimization/39362
14393 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
14394 that occur in abnormal PHIs should be varying.
14395
76610704 143962009-03-04 Zdenek Dvorak <ook@ucw.cz>
14397
14398 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
14399 Extend comments.
14400 (simple_iv): Take loop as an argument instead of statement.
14401 * tree-scalar-evolution.h (simple_iv): Declaration changed.
14402 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
14403 to simple_iv.
14404 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
14405 Ditto.
14406 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
14407 * matrix-reorg.c (analyze_transpose): Ditto.
14408 * tree-data-ref.c (dr_analyze_innermost): Ditto.
14409 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
14410 * tree-predcom.c (ref_at_iteration): Ditto.
14411 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
14412
f13e5f6d 144132009-03-04 Richard Guenther <rguenther@suse.de>
14414
14415 PR tree-optimization/39358
14416 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
14417 escaped_id and callused_id.
14418 (solve_graph): Likewise.
14419
0cb9a712 144202009-03-04 Richard Guenther <rguenther@suse.de>
14421
14422 PR tree-optimization/39339
14423 * tree-sra.c (try_instantiate_multiple_fields): Make it
14424 no longer ICE on the above.
14425
cfb75cdf 144262009-03-03 Joseph Myers <joseph@codesourcery.com>
14427
14428 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
14429 that fits within Pmode.
14430
838bd0ed 144312009-03-03 Steve Ellcey <sje@cup.hp.com>
14432
14433 PR middle-end/10109
14434 * tm.texi (LIBCALL_VALUE): Update description.
14435
e5e13288 144362009-03-03 Steve Ellcey <sje@cup.hp.com>
14437
14438 PR middle-end/34443
14439 * doc/extend.texi (section): Update description.
14440
463cc256 144412009-03-03 H.J. Lu <hongjiu.lu@intel.com>
14442
14443 PR middle-end/39345
14444 * tree-inline.c (remapped_type): New.
14445 (can_be_nonlocal): Call remapped_type instead of remap_type.
14446
072866b6 144472009-03-03 Jakub Jelinek <jakub@redhat.com>
14448
14449 PR fortran/39354
14450 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
14451 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
14452
b430e8d9 144532009-03-03 Richard Guenther <rguenther@suse.de>
14454
14455 PR middle-end/39272
14456 * tree.c (tree_nonartificial_location): New function.
14457 * tree.h (tree_nonartificial_location): Declare.
14458 * builtins.c (expand_builtin_memory_chk): Provide location
14459 of the call location for artificial function pieces.
14460 (maybe_emit_chk_warning): Likewise.
14461 (maybe_emit_sprintf_chk_warning): Likewise.
14462 (maybe_emit_free_warning): Likewise.
14463 * expr.c (expand_expr_real_1): Likewise.
14464
bc79a76b 144652009-03-03 Jakub Jelinek <jakub@redhat.com>
14466
14467 PR tree-optimization/39343
14468 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
14469 COMPONENT_REF t has ARRAY_TYPE.
14470
41c18990 144712009-03-02 Sebastian Pop <sebastian.pop@amd.com>
14472
14473 PR middle-end/39335
14474 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
14475 when the type precision of the induction variable should be
14476 larger than the type precision of nit.
14477 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
14478 * graphite.c (graphite_loop_normal_form): Same.
14479 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
14480
32096e82 144812009-03-02 Uros Bizjak <ubizjak@gmail.com>
14482
14483 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
14484 (*call_1_rex64_ms_sysv): Use named constants instead of magic
a6ccab35 14485 numbers to describe clobbered registers.
32096e82 14486 (*call_value_0_rex64_ms_sysv): Ditto.
a6ccab35 14487 * config/i386/mmx.md (mmx_emms): Ditto.
14488 (mmx_femms): Ditto.
32096e82 14489
b8f6667e 144902009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
14491
14492 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
14493 of ABI_64.
14494
a08dfd55 144952009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14496
14497 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
14498 (spu_section_type_flags): New function.
14499
c81d1104 145002009-03-02 Uros Bizjak <ubizjak@gmail.com>
14501
14502 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
14503 reg_class_contents of FLOAT_REGS into a temporary.
14504
ed243388 145052009-03-02 Richard Guenther <rguenther@suse.de>
c81d1104 14506 Ira Rosen <irar@il.ibm.com>
ed243388 14507
14508 PR tree-optimization/39318
14509 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
14510 information to the vectorized statement.
14511
c4bb7475 145122009-03-01 Uros Bizjak <ubizjak@gmail.com>
14513
4d5fae72 14514 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
14515 variable. Use defined names instead of magic constants for REX SSE
14516 registers.
c4bb7475 14517
d2263ebb 145182009-03-01 Richard Guenther <rguenther@suse.de>
14519
14520 PR tree-optimization/39331
14521 * omp-low.c (lower_send_shared_vars): Do not receive new
14522 values for the reference of DECL_BY_REFERENCE parms or results.
14523
4b5d70fd 145242009-03-01 Jan Hubicka <jh@suse.cz>
14525
14526 PR debug/39267
14527 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
14528 BLOCK_NONLOCALIZED_VAR): New macros.
14529 (tree_block): Add nonlocalized_vars.
79283bdc 14530 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
14531 gen_decl_die): Add origin argument. Allow generation of die with
14532 origin at hand only.
4b5d70fd 14533 (gen_member_die, gen_type_die_with_usage, force_decl_die,
79283bdc 14534 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
14535 of gen_*.
4b5d70fd 14536 (gen_block_die): Fix checking for unused blocks.
14537 (process_scope_var): Break out from .... ; work with origins only.
14538 (decls_for_scope) ... here; process nonlocalized list.
14539 (dwarf2out_ignore_block): Look for nonlocalized vars.
79283bdc 14540 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
14541 vars.
4b5d70fd 14542 (dump_scope_block): Dump them.
14543 * tree-inline.c (remap_decls): Handle nonlocalized vars.
14544 (remap_block): Likewise.
14545 (can_be_nonlocal): New predicate.
14546 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
14547
9af964d4 145482009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14549
14550 * configure: Regenerate.
14551
a43fd3a5 145522009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14553
e6a03973 14554 * optc-gen.awk: No need to duplicate option flags twice.
d849db06 14555 Reuse help texts for duplicate options which do not have any.
e6a03973 14556
53f9a00b 14557 * gcc.c (display_help): Document --version.
14558
0445c349 14559 * gcc.c (main): If print_help_list and verbose_flag, ensure
14560 driver output comes before subprocess output.
14561
1df76a79 14562 * optc-gen.awk: Assign all remaining fields to help string,
14563 space-separated, for multi-line help in *.opt.
14564
d7381490 14565 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
14566 -Wno-pedantic-ms-format is for MinGW targets only.
14567
a43fd3a5 14568 * doc/options.texi (Option file format): Fix bad indentation,
14569 restoring dropped sentence.
14570
3d280f42 145712009-02-28 Jan Hubicka <jh@suse.cz>
14572
14573 * tree-inline.c (tree_function_versioning): Output debug info.
14574
12e12890 145752009-02-28 Jan Hubicka <jh@suse.cz>
14576
14577 PR debug/39267
14578 * tree-inline.c (setup_one_parameter): Do not copy propagate
14579 arguments when not optimizing.
14580
5e56456b 145812009-02-28 H.J. Lu <hongjiu.lu@intel.com>
14582
14583 PR target/39327
14584 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14585 (avx_addsubv4df3): Likewise.
14586 (*avx_addsubv4sf3): Likewise.
14587 (sse3_addsubv4sf3): Likewise.
14588 (*avx_addsubv2df3): Likewise.
14589 (sse3_addsubv2df3): Likewise.
14590 (avx_unpckhps256): Correct item selectors.
14591 (avx_unpcklps256): Likewise.
14592 (avx_unpckhpd256): Likewise.
14593 (avx_unpcklpd256): Likewise.
14594
a8305131 145952009-02-28 Jan Hubicka <jh@suse.cz>
14596
14597 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
14598 static vars.
14599 (copy_arguments_for_versioning): If var is declared don't declare it.
14600 (tree_function_versioning): First setup substitutions and then copy
14601 args.
14602
89f29a1b 146032009-02-27 Jan Hubicka <jh@suse.cz>
14604
14605 PR debug/39267
14606 * cgraph.h (varpool_output_debug_info): Remove.
14607 * cgraphunit.c (varpool_output_debug_info): Remove.
14608 * dwarf2out.c (deferred_locations_struct): New struct
14609 (deferred_locations): New type.
14610 (deferred_locations_list): New static var.
14611 (deffer_location): New function.
14612 (gen_variable_die): Use it.
14613 (decls_for_scope): Output info on local static vars.
14614 (dwarf2out_finish): Process deferred locations.
14615 * varpool.c (varpool_output_debug_info): Remove.
14616
cee43f7e 146172009-02-27 Jan Hubicka <jh@suse.cz>
14618
14619 PR debug/39267
14620 * tree.h (TREE_PROTECTED): Fix comment.
14621 (BLOCK_HANDLER_BLOCK): Remove.
14622 (struct tree_block): Remove handler_block add body_block.
14623 (inlined_function_outer_scope_p): New.
14624 (is_body_block): Remove.
14625 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
14626 * dwarf2out.c (is_inlined_entry_point): Remove.
14627 (add_high_low_attributes): Use inlined_function_outer_scope_p.
a12d48b6 14628 (gen_block_die): Use is_inlined_entry_point check. Remove body block
14629 code.
cee43f7e 14630 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
14631 * gimplify.c (gimplify_expr): Gimplify body blocks.
a12d48b6 14632 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
14633 block with multiple subblocks.
cee43f7e 14634 (dump_scope_block): Prettier output; dump more flags and info.
14635 (dump_scope_blocks): New.
14636 (remove_unused_locals): Use dump_scope_blocks.
14637 * tree-flow.h (dump_scope_blocks): Declare.
14638 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
14639 * stmt.c (is_body_block): Remove.
14640 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
14641 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
14642
74e261f8 146432009-02-27 Sebastian Pop <sebastian.pop@amd.com>
14644
14645 PR middle-end/39308
89871bab 14646 * graphite.c (graphite_loop_normal_form): Do not call
74e261f8 14647 number_of_iterations_exit from a gcc_assert.
14648
512d9edf 146492009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14650
943327c1 14651 * config/s390/s390.c (s390_swap_cmp): Look for conditional
512d9edf 14652 jumps if COND is NULL.
14653 (find_cond_jump): New function.
14654 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
943327c1 14655 * config/s390/s390.md: Remove z10_cobra attribute value.
512d9edf 14656
f8fff44e 146572009-02-26 Uros Bizjak <ubizjak@gmail.com>
14658
14659 * config/alpha/alpha.h (alpha_expand_mov): Return false if
14660 force_const_mem returns NULL_RTX.
14661
673c690d 146622009-02-26 Jan Hubicka <jh@suse.cz>
14663
14664 PR debug/39267
14665 * cgraph.h (varpool_output_debug_info): Remove.
14666 * cgraphunit.c (varpool_output_debug_info): Remove.
14667 * dwarf2out.c (deferred_locations_struct): New struct
14668 (deferred_locations): New type.
14669 (deferred_locations_list): New static var.
14670 (deffer_location): New function.
14671 (gen_variable_die): Use it.
14672 (decls_for_scope): Output info on local static vars.
14673 (dwarf2out_finish): Process deferred locations.
14674 * varpool.c (varpool_output_debug_info): Remove.
14675
a330630f 146762009-02-25 H.J. Lu <hongjiu.lu@intel.com>
7216a350 14677
14678 PR rtl-optimization/39241
14679 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
14680 to subreg_offset_representable_p.
14681
1e176869 146822009-02-25 Paolo Bonzini <bonzini@gnu.org>
14683
14684 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
14685 execute function prototype. Get f and nregs from max_reg_num
14686 and get_insns. Remove the first backward pass as it's dead,
14687 guard the forward pass by flag_expensive_optimizations.
14688 (rest_of_handle_regmove): Delete.
14689 (pass_regmove): Replace it with regmove_optimize.
14690
28efe441 146912009-02-25 Martin Jambor <mjambor@suse.cz>
14692
14693 PR tree-optimization/39259
14694 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
a6ccab35 14695 calls_alloca function flags.
28efe441 14696 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
14697 calls are detected.
14698
e7dd8234 146992009-02-25 Paolo Bonzini <bonzini@gnu.org>
14700
14701 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
14702 flags_set_1_rtx, flags_set_1_set): Delete.
14703 (regmove_optimize): Do not call mark_flags_life_zones.
14704
3e0af691 147052009-02-24 Julian Brown <julian@codesourcery.com>
14706
14707 PR target/35965
14708 * config/arm/arm.c (require_pic_register): Only set
14709 cfun->machine->pic_reg once per function.
14710
95e9d9cd 147112009-02-24 Sandra Loosemore <sandra@codesourcery.com>
14712
14713 * doc/invoke.texi (Link Options): Document an easier way to pass
f8fff44e 14714 options that take arguments to the GNU linker using -Xlinker and -Wl.
95e9d9cd 14715
bbe1a1e9 147162009-02-24 Steve Ellcey <sje@cup.hp.com>
14717
14718 PR target/33785
14719 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
14720
dbc4ace1 147212009-02-24 Richard Guenther <rguenther@suse.de>
14722
14723 PR debug/39285
14724 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
14725
29474274 147262009-02-24 Richard Guenther <rguenther@suse.de>
7216a350 14727 Zdenek Dvorak <ook@ucw.cz>
29474274 14728
14729 PR tree-optimization/39233
14730 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
14731 from converting them to a generic type.
14732
70c06b9d 147332009-02-23 Sebastian Pop <sebastian.pop@amd.com>
14734
14735 PR tree-optimization/39260
14736 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
14737 contains a condition with a real type.
14738 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
14739
a9d778f8 147402009-02-23 Jason Merrill <jason@redhat.com>
14741
14742 PR c++/38880
14743 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
14744 narrowing_initializer_constant_valid_p.
89871bab 14745 (narrowing_initializer_constant_valid_p): Don't return
a9d778f8 14746 null_pointer_node for adding a pointer to itself.
14747
8b7d416a 147482009-02-23 Jan Hubicka <jh@suse.cz>
14749
14750 PR c/12245
f8fff44e 14751 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
14752 resizing.
8b7d416a 14753
36267649 147542009-02-23 Jan Hubicka <jh@suse.cz>
14755
f8fff44e 14756 PR tree-optimization/37709
14757 * tree.c (block_ultimate_origin): Move here from dwarf2out.
14758 * tree.h (block_ultimate_origin): Declare.
14759 * dwarf2out.c (block_ultimate_origin): Move to tree.c
36267649 14760 * tree-ssa-live.c (remove_unused_scope_block_p):
14761 Eliminate blocks containig no instructions nor live variables nor
14762 nested blocks.
14763 (dump_scope_block): New function.
14764 (remove_unused_locals): Enable removal of dead blocks by default;
f8fff44e 14765 enable dumping at TDF_DETAILS.
36267649 14766
a330630f 147672009-02-21 H.J. Lu <hongjiu.lu@intel.com>
d9984eae 14768
14769 * config/i386/i386.c (classify_argument): Don't allow COImode
14770 and OImode.
14771 (function_arg_advance_32): Don't allow OImode.
14772 (function_arg_32): Likewise.
14773 (function_value_32): Likewise.
14774 (return_in_memory_32): Likewise.
14775 (function_arg_64): Remove OImode comment.
14776
a330630f 147772009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f65f962c 14778
14779 PR target/39261
14780 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
14781 ix86_expand_vector_set for V4DImode in 64bit mode only.
14782 (ix86_expand_vector_init_one_var): Likewise.
14783
c08b0c04 147842009-02-21 Sebastian Pop <sebastian.pop@amd.com>
14785
14786 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
14787
c0efe3c3 147882009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
14789
71cca459 14790 PR bootstrap/39257
c0efe3c3 14791 * loop-iv.c: Revert last change.
14792 * emit-rtl.c: Likewise.
14793
a330630f 147942009-02-21 H.J. Lu <hongjiu.lu@intel.com>
6c37e539 14795
14796 PR target/39256
14797 * config/i386/i386.c (type_natural_mode): Remove an extra
14798 space in the warning message.
14799 (function_value_32): Handle 32-byte vector modes.
14800 (return_in_memory_32): Likewise.
14801
c2c24c89 148022009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
14803
14804 * loop-iv.c (truncate_value): New function.
14805 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
14806 of lowpart_subreg.
14807 (lowpart_subreg): Move to...
14808 * emit-rtl.c: ...here.
14809
59c236cd 148102009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
09869175 14811
59c236cd 14812 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
14813 accidental and undocumented change at revision 140860.
14814
54ad443f 148152009-02-21 Joseph Myers <joseph@codesourcery.com>
14816
14817 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
14818 take gimple_seq * arguments.
14819 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
14820 types_compatible_p langhook.
14821
fb20d2ee 148222009-02-20 Mark Mitchell <mark@codesourcery.com>
09869175 14823 Joseph Myers <joseph@codesourcery.com>
fb20d2ee 14824
14825 * config/arm/arm.c (arm_builtin_va_list): New function.
14826 (arm_expand_builtin_va_start): Likewise.
14827 (arm_gimplify_va_arg_expr): Likewise.
14828 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
14829 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
14830 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
14831 (va_list_type): New variable.
14832 (arm_mangle_type): Mangle va_list_type appropriately.
14833
86482d6b 148342009-02-20 Jakub Jelinek <jakub@redhat.com>
14835
14836 PR middle-end/39157
14837 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
14838 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
14839 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
14840 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
14841 parameter to 1000 for -O1 by default.
14842 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
14843 parameter.
14844 * loop-invariant.c: Include params.h.
14845 (move_loop_invariants): Don't call move_single_loop_invariants on
14846 very large loops.
14847
9a0cf170 148482009-02-20 Jaka Mocnik <jaka@xlab.si>
14849
14850 * calls.c (emit_library_call_value_1): Use slot_offset instead of
14851 offset when calculating bounds for indexing stack_usage_map. Fixes
14852 a buffer overflow with certain target setups.
14853
4681dd41 148542009-02-20 Jakub Jelinek <jakub@redhat.com>
14855
14856 PR target/39240
14857 * calls.c (expand_call): Clear try_tail_call if caller and callee
14858 disagree in promotion of function return value.
14859
2d9d8740 148602009-02-19 Jakub Jelinek <jakub@redhat.com>
14861
14862 PR target/39175
14863 * c-common.c (c_determine_visibility): If visibility changed and
14864 DECL_RTL has been already set, call make_decl_rtl to update symbol
14865 flags.
14866
e3040053 148672009-02-19 H.J. Lu <hongjiu.lu@intel.com>
14868
14869 PR c++/39188
14870 * varasm.c (assemble_variable): Don't check DECL_NAME when
14871 globalizing a variable.
14872
ad0e7a06 148732009-02-19 Joseph Myers <joseph@codesourcery.com>
14874
14875 PR c/38483
14876 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
14877 expression before any __builtin_trap call.
14878 * c-typeck.c (build_function_call): Convert and check function
14879 arguments before generating a call to a trap. Evaluate the
14880 function arguments before the trap.
14881
a7a2dd08 148822009-02-19 Uros Bizjak <ubizjak@gmail.com>
14883
14884 PR target/39228
14885 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
14886 (UNSPEC_FXAM_MEM): New unspec.
14887 (fxam<mode>2_i387_with_temp): New insn and split pattern.
14888 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
14889 memory using fxam<mode>2_i387_with_temp to remove excess precision.
14890
c5168a9e 148912009-02-19 Richard Guenther <rguenther@suse.de>
14892
14893 PR tree-optimization/39207
14894 PR tree-optimization/39074
14895 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
14896 storedanything_tree): New.
14897 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
a7a2dd08 14898 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
c5168a9e 14899 (build_succ_graph): Add edges from STOREDANYTHING to all
14900 non-direct nodes.
14901 (init_base_vars): Initialize STOREDANYTHING.
14902 (compute_points_to_sets): Free substitution info after
14903 building the succ graph.
14904 (ipa_pta_execute): Likewise.
14905
14906 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
14907 field.
14908 (do_ds_constraint): Do not add to special var or non-pointer
14909 field solutions.
14910 (type_could_have_pointers): Split out from ...
14911 (could_have_pointers): ... here. For arrays use the element type.
14912 (create_variable_info_for): Initialize may_have_pointers.
14913 (new_var_info): Likewise.
14914 (handle_lhs_call): Make the HEAP variable unknown-sized.
14915 (intra_create_variable_infos): Use a type with pointers for
14916 PARM_NOALIAS, make it unknown-sized.
14917
f36b5ce0 149182009-02-18 H.J. Lu <hongjiu.lu@intel.com>
14919
14920 PR target/39224
a7a2dd08 14921 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
f36b5ce0 14922
807bf718 149232009-02-18 Jason Merrill <jason@redhat.com>
14924
14925 PR target/39179
14926 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
14927 value if DECL_EXTERNAL.
14928 * tree-sra.c (sra_walk_gimple_assign): Likewise.
14929 * target.h (gcc_target::binds_local_p): Clarify "module".
14930 * tree.h (TREE_PUBLIC): Clarify "module".
14931
f29980e5 149322009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
14933
14934 PR target/38891
14935 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
14936 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
14937
58beda63 149382009-02-17 H.J. Lu <hongjiu.lu@intel.com>
14939
14940 PR target/39082
14941 * c.opt (Wabi): Support C and ObjC.
14942 (Wpsabi): New.
14943
14944 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
14945
14946 * config/i386/i386.c (classify_argument): Warn once about the ABI
14947 change when passing union with long double.
14948
14949 * doc/invoke.texi: Update -Wabi for warning psABI changes.
14950
22d77a94 149512009-02-18 Joseph Myers <joseph@codesourcery.com>
14952
14953 PR c/35447
14954 * c-parser.c (c_parser_compound_statement): Always enter and leave
14955 a scope.
14956
492e3336 149572009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14958
14959 PR target/34587
14960 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
14961
b6eab06c 149622009-02-18 Jakub Jelinek <jakub@redhat.com>
14963
14964 PR tree-optimization/36922
14965 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
14966 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
14967 Likewise.
14968
4f0507c2 149692009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14970
14971 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
14972 to 0 for EABI64.
14973
be83ab34 149742009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14975
14976 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
14977
aa6a48b8 149782009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14979
14980 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
14981 tree sharing.
14982
0f604f19 149832009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
14984 Richard Sandiford <rdsandiford@googlemail.com>
14985
14986 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
14987 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
14988 (loongson_biadd): ...this.
14989
1ab8a912 149902009-02-17 Richard Guenther <rguenther@suse.de>
14991
14992 PR tree-optimization/39202
14993 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
14994 a var make sure to follow existing collapses.
14995
aa03bd5e 149962009-02-17 Richard Guenther <rguenther@suse.de>
14997
14998 PR middle-end/39214
14999 * langhooks.c (lhd_print_error_function): Check for NULL block.
15000
f46bc821 150012009-02-17 Richard Guenther <rguenther@suse.de>
15002
15003 PR tree-optimization/39204
15004 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
15005 of the PHI arg.
15006
974645ce 150072009-02-17 Uros Bizjak <ubizjak@gmail.com>
15008
15009 * config/soft-fp/double.h: Update from glibc CVS.
15010
7197c469 150112009-02-17 Richard Guenther <rguenther@suse.de>
15012
15013 PR tree-optimization/39207
15014 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
15015 strict-aliasing warnings for pointers pointing to NULL.
15016
1646bf33 150172009-02-16 Joseph Myers <joseph@codesourcery.com>
15018
15019 PR c/35446
15020 * c-parser.c (c_parser_braced_init): Call pop_init_level when
15021 skipping until next close brace.
15022
0fb2a998 150232009-02-16 H.J. Lu <hongjiu.lu@intel.com>
15024
15025 PR target/37049
15026 * config/i386/i386.c (ix86_expand_push): Set memory alignment
15027 to function argument boundary.
15028
a1a75b07 150292009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
15030
15031 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
15032 in the lea_add. Reload eventually constraints it properly.
1cae7fd7 15033 * config/picochip/constraints.md: Remove the target constraint
a1a75b07 15034 "b", since it is not needed anymore.
15035
320084b9 150362009-02-16 Jakub Jelinek <jakub@redhat.com>
15037
15038 * gthr-dce.h: Uglify function parameter and local variable names.
15039 * gthr-gnat.h: Likewise.
15040 * gthr-mipssde.h: Likewise.
15041 * gthr-nks.h: Likewise.
15042 * gthr-posix95.h: Likewise.
15043 * gthr-posix.h: Likewise.
15044 * gthr-rtems.h: Likewise.
15045 * gthr-single.h: Likewise.
15046 * gthr-solaris.h: Likewise.
15047 * gthr-tpf.h: Likewise.
15048 * gthr-vxworks.h: Likewise.
15049 * gthr-win32.h: Likewise.
15050
fde73de8 150512009-02-15 H.J. Lu <hongjiu.lu@intel.com>
15052
15053 PR target/39196
15054 * config/i386/i386.md: Restrict the new peephole2 to move
15055 between MMX/SSE registers.
15056
b5c49426 150572009-02-15 Richard Guenther <rguenther@suse.de>
15058
15059 Revert
15060 2009-02-13 Richard Guenther <rguenther@suse.de>
15061
15062 * configure.ac: Enable LFS.
15063 * configure: Re-generate.
15064 * config.in: Likewise.
15065
70ca06f8 150662009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15067
15068 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
15069 spu_srqwbyte, spu_srqwbytebc): Define.
15070 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
15071 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
15072 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
15073 "shrqby_<mode>"): New insn-and-split patterns.
15074 * config/spu/spu.c (expand_builtin_args): Determine and return
15075 number of operands using spu_builtin_description data.
15076 (spu_expand_builtin_1): Use it.
15077
c49d20be 150782009-02-13 Steve Ellcey <sje@cup.hp.com>
15079
15080 PR target/38056
15081 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
15082 TARGET_CONST_GP.
15083
c81f43ee 150842009-02-13 H.J. Lu <hongjiu.lu@intel.com>
15085
15086 PR target/39149
15087 * config/i386/i386.c (override_options): Correct warning
a6ccab35 15088 messages for -malign-loops, -malign-jumps and -malign-functions.
c81f43ee 15089
bc0a240f 150902009-02-13 H.J. Lu <hongjiu.lu@intel.com>
15091
15092 PR target/39152
15093 * config/i386/i386.md: Restrict the new peephole2 to move
15094 between the general purpose registers.
15095
79a817bf 150962009-02-13 H.J. Lu <hongjiu.lu@intel.com>
15097
15098 PR target/39162
15099 * config/i386/i386.c (type_natural_mode): Add a new argument.
a7a2dd08 15100 Return the original mode and warn ABI change if vector size is 32byte.
79a817bf 15101 (function_arg_advance): Updated.
15102 (function_arg): Likewise.
15103 (ix86_function_value): Likewise.
15104 (ix86_return_in_memory): Likewise.
15105 (ix86_sol10_return_in_memory): Likewise.
15106 (ix86_gimplify_va_arg): Likewise.
15107 (function_arg_32): Don't warn ABX ABI change here.
15108 (function_arg_64): Likewise.
15109
a330630f 151102009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
27440859 15111
15112 * loop-iv.c (implies_p): In the final case, test that operands 0
15113 of the two comparisons match.
15114
462ce619 15115 * config/bfin/bfin.c (find_prev_insn_start): New function.
15116 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
15117 (find_next_insn_start): Move.
15118
76549266 151192009-02-13 Richard Guenther <rguenther@suse.de>
15120
15121 * configure.ac: Enable LFS.
15122 * configure: Re-generate.
15123 * config.in: Likewise.
15124
1bbf1c2f 151252009-02-13 Joseph Myers <joseph@codesourcery.com>
15126
15127 PR c/35444
15128 * c-parser.c (c_parser_parms_list_declarator): Discard pending
15129 sizes on syntax error after some arguments have been parsed.
15130
ce2801fe 151312009-02-12 Jakub Jelinek <jakub@redhat.com>
15132
15133 * doc/invoke.texi (-fira): Remove.
15134
ac502adf 151352009-02-12 H.J. Lu <hongjiu.lu@intel.com>
15136
15137 * caller-save.c: Replace regclass.c with reginfo.c in comments.
15138 * recog.c: Likewise.
15139 * rtl.h: Likewise.
15140
8b21beb2 151412009-02-12 Uros Bizjak <ubizjak@gmail.com>
15142
15143 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
15144 (umul_ppmm): Likewise.
15145 (count_leading_zeros): Likewise.
15146 (count_trailing_zeros): Likewise.
15147 (UMUL_TIME): Likewise.
15148
151492009-02-12 H.J. Lu <hongjiu.lu@intel.com>
15150
24200b28 15151 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
15152 soft-fp/t-softfp to tmake_file.
8b21beb2 15153
15154 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
24200b28 15155 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
15156 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
15157 IA64_BUILTIN_INFQ]: New.
8b21beb2 15158 (ia64_init_builtins): Initialize __builtin_infq,
15159 __builtin_fabsq and __builtin_copysignq if not HPUX.
15160 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
15161 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
15162
15163 * config/ia64/lib1funcs.asm (__divtf3): Define only if
15164 SHARED is defined.
15165 (__fixtfti): Likewise.
15166 (__fixunstfti): Likewise.
15167 (__floattitf): Likewise.
15168
15169 * config/ia64/libgcc-glibc.ver: New.
15170 * config/ia64/t-fprules-softfp: Likewise.
15171 * config/ia64/sfp-machine.h: Likewise.
15172
15173 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
15174 (LIBGCC2_TF_CEXT): Likewise.
15175 (TF_SIZE): Likewise.
15176 (TARGET_INIT_LIBFUNCS): Likewise.
15177
24200b28 15178 * config/ia64/t-glibc (SHLINB_MAPFILES):
a7a2dd08 15179 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8b21beb2 15180
cffe3086 151812009-02-12 H.J. Lu <hongjiu.lu@intel.com>
15182
15183 * config/i386/i386.c (construct_container): Rewrite processing
15184 BLKmode with X86_64_SSE_CLASS.
15185
fbfa3312 151862009-02-12 Paolo Bonzini <bonzini@gnu.org>
15187
15188 PR target/39152
15189 * config/i386/i386.md: Replace simplify_replace_rtx with
15190 replace_rtx in the new peephole2.
15191
38b64900 151922009-02-12 Nathan Sidwell <nathan@codesourcery.com>
15193
15194 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
15195 loop unrolling do not happen at -O2.
15196
674ca8bf 151972009-02-12 Michael Matz <matz@suse.de>
15198
15199 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
15200
e1b3cc49 152012009-02-12 Jakub Jelinek <jakub@redhat.com>
15202
15203 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
15204 for -g3.
15205
0fbcd2eb 152062009-02-12 Ben Elliston <bje@au.ibm.com>
15207
15208 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
15209 patterns when updating the back chain. Missed in the 2009-02-10
15210 change.
15211
0e86dff0 152122009-02-11 Janis Johnson <janis187@us.ibm.com>
15213
15214 * doc/extend.texi (Decimal Floating Types): Update identifier of
15215 draft TR and list of missing support.
15216
2a92826d 152172009-02-11 Jakub Jelinek <jakub@redhat.com>
15218
15219 PR middle-end/39154
15220 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
15221 bit to variable length decl's flags, add it also to its
15222 pointer replacement variable.
15223
73c5e2aa 152242009-02-11 Uros Bizjak <ubizjak@gmail.com>
15225 Jakub Jelinek <jakub@redhat.com>
15226
15227 PR target/39118
15228 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
15229 (memory_blockage): New expander.
15230 (*memory_blockage): New insn pattern.
15231 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
15232 instead of general blockage at the end of function prologue when
15233 frame pointer is used to access red zone area. Do not emit blockage
15234 when profiling, it is emitted in generic code.
15235 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
15236 function epilogue when frame pointer is used to access red zone area.
15237
486a1b16 152382009-02-11 Paolo Bonzini <bonzini@gnu.org>
15239
b899e808 15240 PR target/38824
486a1b16 15241 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
15242 by arithmetic with memory operands.
15243 * config/i386/predicates.md (commutative_operator): New.
15244
560db68e 152452009-02-10 Janis Johnson <janis187@us.ibm.com>
15246
15247 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
15248 bulleted lists.
15249
892fdb03 152502009-02-10 Eric Botcazou <ebotcazou@adacore.com>
15251
15252 * alias.h (record_alias_subset): Declare.
15253 * alias.c (record_alias_subset): Make global.
15254
4ef8346d 152552009-02-10 Nick Clifton <nickc@redhat.com>
15256
15257 * tree-parloops.c: Change license to GPLv3.
15258 * ipa-struct-reorg.c: Change license to GPLv3.
15259 * ipa-struct-reorg.h: Change license to GPLv3.
15260
fc92befb 152612009-02-10 Steve Ellcey <sje@cup.hp.com>
15262
15263 PR c/39084
15264 * c-decl.c (start_struct): Return NULL on error.
15265
e15deb4b 152662009-02-10 Jakub Jelinek <jakub@redhat.com>
15267
16ccc50c 15268 PR middle-end/39124
15269 * cfgloopmanip.c (remove_path): Call remove_bbs after
15270 cancel_loop_tree, not before it.
15271
e15deb4b 15272 PR target/39139
73c5e2aa 15273 * function.h (struct function): Add has_local_explicit_reg_vars bit.
e15deb4b 15274 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
15275 VAR_DECLs were seen.
15276 * tree-ssa-live.c (remove_unused_locals): Recompute
15277 cfun->has_local_explicit_reg_vars.
15278 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
15279 copies or clearings if cfun->has_local_explicit_reg_vars.
15280
a9c1f295 152812009-02-10 Uros Bizjak <ubizjak@gmail.com>
15282
15283 PR target/39118
15284 * config/i386/i386.c (expand_prologue): Emit blockage at the end
15285 of function prologue when frame pointer is used to access
15286 red zone area.
15287
c85b2faf 152882009-02-10 Richard Guenther <rguenther@suse.de>
15289
15290 PR middle-end/39127
15291 * gimplify.c (gimple_regimplify_operands): Always look if
15292 we need to create a temporary.
15293
8d093dba 152942009-02-10 Richard Guenther <rguenther@suse.de>
15295
15296 PR tree-optimization/39132
15297 * tree-loop-distribution.c (todo): New global var.
15298 (generate_memset_zero): Trigger TODO_rebuild_alias.
15299 (tree_loop_distribution): Return todo.
15300
edd93683 153012009-02-10 H.J. Lu <hongjiu.lu@intel.com>
15302
15303 PR target/39119
15304 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
15305 (x86_64_reg_class_name): Removed.
15306 (classify_argument): Return 0 if bytes > 32. Return 0 if the
15307 first one isn't X86_64_SSE_CLASS or any other ones aren't
15308 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
15309 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
15310 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
15311 and 3 X86_64_SSEUP_CLASS.
15312 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
15313 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
15314
2b6975a6 153152009-02-10 Ben Elliston <bje@au.ibm.com>
15316
15317 * config/rs6000/rs6000.md (allocate_stack): Always use an update
15318 form instruction to update the stack back chain word, even if the
15319 user has disabled the generation of update instructions.
15320 (movdi_<mode>_update_stack): New.
15321 (movsi_update_stack): Likewise.
15322 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
15323 always use an update form instruction to update the stack back
15324 chain word.
15325
a72d4b7d 153262009-02-09 Sebastian Pop <sebastian.pop@amd.com>
15327
15328 PR middle-end/38953
73c5e2aa 15329 * graphite.c (if_region_set_false_region): After moving a region in
15330 the false branch of a condition, remove the empty dummy basic block.
a72d4b7d 15331 (gloog): Remove wrong fix for PR38953.
15332
1f915911 153332009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15334
15335 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
15336 generation due to implicit sign extension.
15337
bbe1fc8f 153382009-02-09 Eric Botcazou <ebotcazou@adacore.com>
15339
15340 PR middle-end/38981
15341 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
15342 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
15343
fd494669 153442009-02-09 Richard Guenther <rguenther@suse.de>
15345
15346 PR middle-end/35202
15347 * convert.c (convert_to_real): Disable (float)fn((double)x)
15348 to fnf(x) conversion if errno differences may occur and
15349 -fmath-errno is set.
15350
a64bd5e4 153512009-02-07 Anatoly Sokolov <aesok@post.ru>
15352
15353 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
15354 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15355 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15356
9e830260 153572009-02-06 Joseph Myers <joseph@codesourcery.com>
15358
15359 PR c/35434
15360 * c-common.c (handle_alias_attribute): Disallow attribute for
15361 anything not a FUNCTION_DECL or VAR_DECL.
15362
42dc1cf5 153632009-02-06 Janis Johnson <janis187@us.ibm.com>
15364
15365 PR c/39035
15366 * real.c (do_compare): Special-case compare of zero against
15367 decimal float value.
15368
0af147a4 153692009-02-06 Joseph Myers <joseph@codesourcery.com>
15370
15371 PR c/36432
15372 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
15373 as indicating flexible array members unless the field itself is
15374 being declarared as the incomplete array.
15375
68b2f511 153762009-02-06 Jan Hubicka <jh@suse.cz>
15377
15378 PR tree-optimization/38844
15379 * ipa-inline.c (try_inline): Stop inlining recursion when edge
15380 is already inlined.
15381
dac59c04 153822009-02-06 Richard Guenther <rguenther@suse.de>
15383
15384 PR middle-end/38977
15385 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
15386 fork because we may expand it as __gcov_fork.
15387
2314f2ef 153882009-02-06 Nick Clifton <nickc@redhat.com>
15389
a9c1f295 15390 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
2314f2ef 15391
3d2d7de7 153922009-02-06 Paolo Bonzini <bonzini@gnu.org>
15393
15394 PR tree-optimization/35659
15395 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
15396 vn_phi_eq): Shortcut if hashcode does not match.
15397 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
15398 NULL operands.
15399 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
15400 and avoid iterative_hash_expr.
15401 (FOR_EACH_VALUE_ID_IN_SET): New.
15402 (value_id_compare): Remove.
15403 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
15404 sort expressions by value id.
15405
07d27c98 154062009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
15407
15408 PR target/38991
15409 * config/sh/predicates.md (general_movsrc_operand): Don't check
15410 the subreg of system registers here.
15411
f014e39d 154122009-02-05 Jakub Jelinek <jakub@redhat.com>
15413
15414 PR c++/39106
15415 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
15416 on the copied decl.
15417
99e9b19f 154182009-02-05 Paolo Bonzini <bonzini@gnu.org>
15419
15420 PR rtl-optimization/39110
15421 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
15422 addresses, not aligned ones.
15423
707dd2b0 154242009-02-05 Daniel Berlin <dberlin@dberlin.org>
15425 Richard Guenther <rguenther@suse.de>
15426
15427 PR tree-optimization/39100
15428 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
15429 comment says and add edges.
15430
c34f8a78 154312009-02-05 Joseph Myers <joseph@codesourcery.com>
15432
15433 PR c/35435
15434 * c-common.c (handle_tls_model_attribute): Ignore attribute for
15435 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
15436
89871bab 154372009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
7f28086c 15438
15439 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
15440 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
15441 register_bb_in_sese, new_sese, free_sese): Moved.
15442 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
15443 outermost_loop_in_scop, build_scop_iteration_domain,
15444 expand_scalar_variables_ssa_name, get_vdef_before_scop,
15445 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
15446 Use loop_in_sese_p instead of loop_in_scop_p.
15447 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
15448 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
15449 (scopdet_basic_block_info): Fix bug in scop detection.
15450 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
15451 eq_loop_to_cloog_loop): Remove.
15452 (nb_loops_around_loop_in_scop, nb_loop
15453 ref_nb_loops): Moved here...
15454 * graphite.h (ref_nb_loops): ... from here.
15455 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
15456 (loop_domain_dim, loop_iteration_vector_dim): Remove.
15457 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
15458 * testsuite/gcc.dg/graphite/scop-19.c: New
15459
0eee494e 154602009-02-04 Paolo Bonzini <bonzini@gnu.org>
15461 Hans-Peter Nilsson <hp@axis.com>
15462
15463 PR rtl-optimization/37889
15464 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
15465 Move offset handling from PLUS to before the switch. Use new
15466 arguments when considering SYMBOL_REFs too.
15467 (rtx_addr_can_trap_p): Pass dummy offset and size.
15468 (enum may_trap_p_flags): Remove.
15469 (may_trap_p_1): Pass size from MEM_SIZE.
15470
15471 PR rtl-optimization/38921
15472 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
15473 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
15474 * rtlanal.c (may_trap_after_code_motion_p): Delete.
15475 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
15476
810c9e65 154772009-02-04 H.J. Lu <hongjiu.lu@intel.com>
15478
15479 AVX Programming Reference (January, 2009)
15480 * config/i386/sse.md (*vpclmulqdq): New.
15481
73d3c8f2 154822009-02-04 Jakub Jelinek <jakub@redhat.com>
15483
15484 PR tree-optimization/38977
15485 PR gcov-profile/38292
6db00048 15486 * calls.c (special_function_p): Disregard __builtin_ prefix.
73d3c8f2 15487
fe898823 154882009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
15489
15490 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
15491 non-indexable addresses even before reload.
15492
51428eb1 154932009-02-03 Joseph Myers <joseph@codesourcery.com>
15494
15495 PR c/29129
15496 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
15497 as having variable size. Do not give an error for unnamed
15498 parameters with [*] declarators. Give a warning for type names
15499 with [*] declarators and mark them as variable size.
15500 * c-parser.c (c_parser_sizeof_expression): Do not give an error
15501 for sizeof applied to [*] type names.
15502
4f4106ef 155032009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
15504
15505 PR C++/36607
15506 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
15507
5a371c77 155082009-02-03 Jakub Jelinek <jakub@redhat.com>
15509
15510 * gcc.c (process_command): Update copyright notice dates.
15511 * gcov.c (print_version): Likewise.
15512 * gcov-dump.c (print_version): Likewise.
15513 * mips-tfile.c (main): Likewise.
15514 * mips-tdump.c (main): Likewise.
15515
e5d71db4 155162009-02-03 Joseph Myers <joseph@codesourcery.com>
15517
15518 PR c/35433
15519 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
15520 for composite type involving a zero-length array type.
15521
14e882ea 155222009-02-03 Jakub Jelinek <jakub@redhat.com>
15523
fbcb9be4 15524 PR target/35318
15525 * function.c (match_asm_constraints_1): Skip over
15526 initial optional % in the constraint.
15527
14e882ea 15528 PR inline-asm/39059
15529 * c-parser.c (c_parser_postfix_expression): If fixed point is not
15530 supported, don't accept FIXED_CSTs.
15531 * c-decl.c (finish_declspecs): Error if fixed point is not supported
15532 and _Sat is used without _Fract/_Accum. Set specs->type to
15533 integer_type_node for cts_fract/cts_accum if fixed point is not
15534 supported.
15535
f4b3ca46 155362009-02-02 Catherine Moore <clm@codesourcery.com>
15537
a9c1f295 15538 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
f4b3ca46 15539
0a959c1d 155402009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
15541
15542 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
15543 (ABI_HAS_64BIT_SYMBOLS): Use it.
15544 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
15545
2f02c19f 155462009-02-02 Paul Brook <paul@codesourcery.com>
15547
15548 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
15549
cde8f1c8 155502009-02-02 Jakub Jelinek <jakub@redhat.com>
15551
15552 PR inline-asm/39058
15553 * recog.h (asm_operand_ok): Add constraints argument.
15554 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
15555 recurse on matching constraint.
15556 (check_asm_operands): Pass constraints as 3rd argument to
15557 asm_operand_ok. Don't look up matching constraint here.
15558 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
15559 to asm_operand_ok.
15560
e366f125 155612009-02-02 Ben Elliston <bje@au.ibm.com>
15562
15563 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
15564 TARGET_NARROW_VOLATILE_BITFIELD macro names.
15565
a3caf955 155662009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15567
a2853397 15568 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
15569 information. Remove some obsolete information. Reorganize.
15570
a3caf955 15571 * config/pa/fptr.c: Revert license to GPL 2.
15572 * config/pa/milli64.S: Likewise.
15573
8cae609c 155742009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
15575
15576 PR target/38904
15577 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
15578 LIBRARY name in, instead of hard-coding it.
15579 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
15580 extra target make frag to tmake_files according to EH model.
15581 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
15582 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
15583 frags that define makefile variable EH_MODEL appropriately.
15584 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
15585 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
15586 to "-sjlj" according to type of EH configured.
15587 (LIBGCC_SONAME): Concatenate it to shared library base name.
15588 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
15589 to "_sjlj" according to type of EH configured.
15590 (LIBGCC_SONAME): Concatenate it to shared library base name.
15591 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
15592 (SHLIB_LINK): Add missing semicolon to if-else construct.
15593 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
15594 string value of "pe_dll" command-line option.
15595 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
15596 (SHLIB_SONAME): Use it when overriding t-cygming default.
15597 (SHLIB_IMPLIB): Override t-cygming default.
15598 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
15599 string value of "pe_dll" command-line option.
15600
27ed8c87 156012009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
15602
15603 PR target/38952
15604 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
6db00048 15605 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
27ed8c87 15606
98de8b69 156072009-01-31 Richard Guenther <rguenther@suse.de>
15608
15609 PR tree-optimization/38937
15610 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
15611 computing the transitive closure.
15612
c019af4d 156132009-01-30 Richard Guenther <rguenther@suse.de>
15614
15615 PR tree-optimization/39041
15616 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
15617 Propagate variable indices only if the types match for this stmt.
15618
709cdea6 156192009-01-30 Jakub Jelinek <jakub@redhat.com>
15620
15621 PR target/39013
15622 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
15623 inline but never defined.
15624
a7a2dd08 156252009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
26e8b800 15626
15627 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
15628 (*insv_h_di_reg_extimm): New insn.
15629 (*insv_l<mode>_reg_extimm): New insn.
15630
156312009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
3b31ea78 15632
15633 * config/picochip/picochip.c (flag_conserve_stack): set
15634 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
15635 fconserve-stack. Reduce call-overhead used by inliner.
15636
26e8b800 156372009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
c45dd88a 15638
15639 PR/38157
15640 * common.opt (flag_conserve_stack): Initialised to zero.
15641
dbc128e8 156422009-01-30 Kai Tietz <kai.tietz@onevision.com>
15643
15644 PR/39002
15645 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
15646 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
15647 method.
15648
ac50b6ef 156492009-01-29 H.J. Lu <hongjiu.lu@intel.com>
15650
15651 * ira-color.c (allocno_reload_assign): Update comments.
15652 * regmove.c (regmove_optimize): Likewise.
15653
15654 * ra.h: Removed.
15655
3bef4012 156562009-01-29 Robert Millan <rmh@aybabtu.com>
15657
943327c1 15658 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
15659 * config/i386/kopensolaris-gnu.h: New file. Undefine
3bef4012 15660 `MD_UNWIND_SUPPORT'.
943327c1 15661 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
3bef4012 15662
82b19557 156632009-01-29 Kazu Hirata <kazu@codesourcery.com>
15664
15665 PR tree-optimization/39007
15666 * tree-loop-distribution.c (generate_builtin): Use
15667 recompute_dominator to compute the immediate dominator of the
15668 basic block just after the loop.
15669
a330630f 156702009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
53ae77bf 15671
15672 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
15673 (ASM_OUTPUT_DWARF_PCREL): Define.
15674
a330630f 156752009-01-29 Vladimir Makarov <vmakarov@redhat.com>
cf709bf6 15676
15677 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
15678 * doc/passes.texi: Remove entries about regclass, local-alloc, and
15679 global. Modify entries about regmove and IRA.
15680
15681 * ra-conflict.c: Remove the file.
15682
15683 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
15684
15685 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
15686 (pass_regclass_init): Rename to pass_reginfo_init.
15687
15688 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
15689
15690 * toplev.h (flag_ira): Remove.
15691
15692 * caller-save.c (setup_save_areas): Remove flag_ira.
15693
6db00048 15694 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
cf709bf6 15695
15696 * global.c: Remove the file.
15697
aca60c7b 15698 * opts.c (decode_options): Remove flag_ira.
cf709bf6 15699
15700 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
15701
15702 * regmove.c: Modify file description.
15703 (find_use_as_address, try_auto_increment): Define them only if
15704 AUTO_INC_DEC is defined.
15705 (replacement_quality, replace_in_call_usage, fixup_match_1,
15706 stable_and_no_regs_but_for_p): Remove.
15707 (reg_set_in_bb): Make it static.
15708 (regmove_optimize): Remove flag_ira and code which worked for
15709 !flag_ira.
15710
15711 * local-alloc.c: Remove the file.
15712
15713 * common.opt (fira): Remove.
15714
15715 * ira.c: Include except.h.
15716 (eliminable_regset): Move from global.c.
15717 (mark_elimination): Ditto. Remove flag_ira.
15718 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
15719 equiv_mem_modified, validate_equiv_mem_from_store,
15720 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
15721 contains_replace_regs, memref_referenced_p, memref_used_between_p,
15722 no_equiv, recorded_label_ref): Move from local-alloc.c.
15723 (update_equiv_regs): Ditto. Make it static.
15724 (print_insn_chain, print_insn_chains): Move it from global.c.
6db00048 15725 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
cf709bf6 15726 (build_insn_chain): Ditto. Make it static.
15727 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
15728 Rename to init_live_subregs.
15729 (gate_ira): Remove flag_ira.
15730
15731 * regclass.c: Rename reginfo.c. Change file description.
15732 (FORBIDDEN_INC_DEC_CLASSES): Remove.
a9c1f295 15733 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
cf709bf6 15734 (init_reg_sets_1): Remove code for evaluation of
15735 reg_class_superclasses and losing_caller_save_reg_set.
15736 (init_regs): Remove init_reg_autoinc.
15737 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
15738 ok_for_base_p_nonstrict): Remove.
6db00048 15739 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
cf709bf6 15740 (pass_regclass_init): Rename to pass_reginfo_init. Modify
15741 corresponding entries.
15742 (dump_regclass, record_operand_costs, scan_one_insn,
15743 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
15744 record_address_regs, auto_inc_dec_reg_p): Remove.
15745 (gt-regclass.h): Rename to gt-reginfo.h.
15746
15747 * rtl.h (dump_global_regs, retry_global_alloc,
6db00048 15748 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
cf709bf6 15749
15750 * Makefile.in (RA_H): Remove.
15751 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
15752 Rename regclass.o to reginfo.o.
15753 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
15754 gt-reginfo.h.
15755 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
15756 (GTFILES): Rename regclass.c to reginfo.c.
15757
15758 * passes.c (init_optimization_passes): Remove pass_local_alloc and
6db00048 15759 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
cf709bf6 15760
15761 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15762 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
15763 Remove flag_ira.
a7a2dd08 15764 (finish_spills): Ditto. Remove code for !flag_ira.
89871bab 15765
237805dd 157662009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
b85ccd2c 15767
15768 PR middle-end/35854
15769 * doc/invoke.texi (rtl debug options): Complete rewrite.
15770 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
15771 to auto_inc_dec".
15772 * mode-switching.c (pass_mode_switching): Rename pass from
15773 "mode-sw" to "mode_sw".
15774 * except.c (pass_convert_to_eh_ranges): Rename pass from
15775 "eh-ranges" to "eh_ranges".
15776 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
15777 to "subreg1".
89871bab 15778
15779
de353418 157802009-01-29 Andrey Belevantsev <abel@ispras.ru>
15781 Alexander Monakov <amonakov@ispras.ru>
15782
15783 PR middle-end/38857
15784 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
15785 register.
15786 (move_exprs_to_boundary): Change return type and pass through
15787 should_move from move_op. Relax assert. Update usage ...
15788 (schedule_expr_on_boundary): ... here. Use should_move instead of
15789 cant_move.
15790 (move_op_orig_expr_found): Indicate that insn was disconnected from
15791 stream.
15792 (code_motion_process_successors): Do not call after_merge_succs
15793 callback if original expression was not found when traversing any of
15794 the branches.
15795 (code_motion_path_driver): Change return type. Update prototype.
15796 (move_op): Update comment. Add a new parameter (should_move). Update
15797 prototype. Set *should_move based on indication provided by
15798 move_op_orig_expr_found.
15799
2fdf186f 158002009-01-28 Pat Haugen <pthaugen@us.ibm.com>
15801
15802 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
15803 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
15804 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
15805 * config/rs6000/rs6000.c (rs6000_override_options): Default
15806 avoid-indexed-addresses on for Power6, off for everything else.
15807 (avoiding_indexed_address_p): New function.
15808 (rs6000_legitimize_address): Use it.
15809 (rs6000_legitimate_address): Likewise.
15810 * config/rs6000/rs6000.md (movXX_updateX): Likewise
15811
c6b3a2da 158122009-01-28 Kazu Hirata <kazu@codesourcery.com>
15813
15814 PR tree-optimization/38997
15815 * tree-loop-distribution.c (generate_memset_zero): Use
15816 POINTER_PLUS_EXPR for a pointer addition.
15817
21676467 158182009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
15819
15820 * config/s390/s390.md (bswap<mode>2): New pattern added.
15821
d3bada4b 158222009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15823
15824 * config/s390/s390.md (*tls_load_31): Added type attribute.
15825
9925e185 158262009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15827
15828 * config/s390/s390.md: Fix a few comments.
15829
94ab3c8a 158302009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15831
15832 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
15833 (*tm<mode>_full): Fixed z10prop attribute.
15834 (*tst<mode>_extimm): Fixed z10prop attribute.
15835 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
15836 (*tstqiCCT_cconly): Fixed z10prop attribute.
15837 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
15838 (*movsi_larl): Fixed z10prop attribute.
15839 (*movsi_zarch): Fixed z10prop attribute.
15840 (*movsi_eas): Fixed z10prop attribute.
15841 (*movhi): Fixed z10prop attribute.
15842 (*movqi): Fixed z10prop attribute.
15843 (*movstrictqi): Fixed z10prop attribute.
15844 (*mov<mode>): Fixed z10prop attribute.
15845 (*movcc): Fixed z10prop attribute.
15846 (*sethighpartdi_64): Fixed z10prop attribute.
15847 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
15848 (*negdi2_sign_cc): Fixed z10prop attribute.
15849 (*negdi2_sign): Fixed z10prop attribute.
15850 (*absdi2_sign_cc): Fixed z10prop attribute.
15851 (*absdi2_sign): Fixed z10prop attribute.
15852 (*negabsdi2_sign_cc): Fixed z10prop attribute.
15853 (*negabsdi2_sign): Fixed z10prop attribute.
15854 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
15855 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
15856 (doloop_si64): Fixed z10prop attribute.
15857 (doloop_si31): Fixed z10prop attribute.
15858 (doloop_long): Fixed z10prop attribute.
15859 (indirect_jump): Fixed z10prop attribute.
15860 (nop): Fixed z10prop attribute.
15861 (main_base_64): Fixed z10prop attribute.
15862 (reload_base_64): Fixed z10prop attribute.
15863
d1b5f73a 158642009-01-28 Jakub Jelinek <jakub@redhat.com>
15865
15866 PR rtl-optimization/38740
a7a2dd08 15867 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
15868 if !optimize.
d1b5f73a 15869 * config/mips/mips.c (mips_reorg): Likewise.
15870
3dc4c394 158712009-01-28 Richard Guenther <rguenther@suse.de>
15872
15873 PR tree-optimization/38926
15874 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
15875 with the correct value id to a value.
15876 (do_regular_insertion): Use the value number of edoubleprime
15877 for the value number of the expr.
15878
15879 Revert
15880 2008-08-21 Richard Guenther <rguenther@suse.de>
6db00048 15881
c9e47fec 15882 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
15883 a PHI ask VN if it is already available.
15884 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
15885 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
3dc4c394 15886
61349811 158872009-01-28 Jakub Jelinek <jakub@redhat.com>
15888
15889 PR middle-end/38934
15890 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
15891 set to varying whenever max has TREE_OVERFLOW set, similarly
15892 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
15893
a98de126 158942009-01-28 Richard Guenther <rguenther@suse.de>
15895
15896 PR middle-end/38908
15897 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
15898 uninitialized aggregate uses in call arguments.
15899
7f70ef19 159002009-01-28 Paolo Bonzini <bonzini@gnu.org>
15901
15902 PR tree-optimization/38984
15903 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
15904 the nothing_id variable if -fno-delete-null-pointer-checks.
15905
8d4c7d80 159062009-01-28 Uros Bizjak <ubizjak@gmail.com>
15907
15908 PR target/38988
15909 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
15910 (set_got_offset_rex64): Ditto.
15911
2687629f 159122009-01-27 H.J. Lu <hongjiu.lu@intel.com>
15913
15914 PR target/38941
15915 * doc/extend.texi: Improve local variable with asm reg.
15916
7a6a48c9 159172009-01-27 Adam Nemet <anemet@caviumnetworks.com>
15918
15919 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
15920 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
15921 was not supplied then set warn_packed_bitfield_compat to the
15922 default value of 1.
15923 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
15924 against 1.
15925
57a28426 159262009-01-27 Richard Guenther <rguenther@suse.de>
15927
15928 PR tree-optimization/38503
15929 * cfgexpand.c (expand_gimple_basic_block): Ignore
15930 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
15931 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
15932 variables that cannot have TBAA applied.
15933 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
15934 statements.
15935
c9e47fec 159362009-01-27 Uros Bizjak <ubizjak@gmail.com>
9a7965a1 15937
15938 PR middle-end/38969
15939 * calls.c (initialize_argument_information): Do not wrap complex
15940 arguments in SAVE_EXPR.
15941
f1d36ba6 159422009-01-26 Andreas Tobler <a.tobler@schweiz.org>
15943
15944 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
c3f75928 15945 (INSTALL_LIBGCC): Revert typo commit.
f1d36ba6 15946
234294b2 159472009-01-26 Richard Guenther <rguenther@suse.de>
15948
15949 PR tree-optimization/38745
15950 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
15951 from special handling.
15952
1fdf9a6c 159532009-01-26 Richard Guenther <rguenther@suse.de>
15954
15955 PR tree-optimization/38745
15956 * tree-ssa.c (execute_update_addresses_taken): Do not include
15957 variables that cannot possibly be a register in not_reg_needs.
15958 Do not clear TREE_ADDRESSABLE on vars that may not become
15959 registers.
15960 * tree-ssa.c (update_alias_info_1): Include those in the set
15961 of addressable vars.
15962
f0e4d727 159632009-01-26 Richard Guenther <rguenther@suse.de>
15964
15965 PR middle-end/38851
15966 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
15967 * tree-ssa-dse.c: Include langhooks.h
15968 (execute_simple_dse): Remove stores with zero size.
15969
e7e7c0fe 159702009-01-24 Jakub Jelinek <jakub@redhat.com>
15971
15972 PR c/38957
15973 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
15974 as PLUS_EXPR.
15975
e6d46e27 159762009-01-24 Julian Brown <julian@codesourcery.com>
15977
15978 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
15979 config/arm/linux-atomic.c.
15980 * config/arm/linux-atomic.c: New.
15981
9a6bab39 159822009-01-24 Eric Botcazou <ebotcazou@adacore.com>
15983
15984 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
15985 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
15986 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
15987
1d86d4d7 159882009-01-24 H.J. Lu <hongjiu.lu@intel.com>
15989
15990 PR c/38938
d83d28c1 15991 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
1d86d4d7 15992 properly.
15993
8db3fb7b 159942009-01-24 Sebastian Pop <sebastian.pop@amd.com>
15995
15996 PR tree-optimization/38953
15997 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
15998 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
15999 (gloog): Split the exit of the scop when the scop exit is a loop exit.
16000 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
16001 changed the CFG.
16002
c52acdd2 160032009-01-24 Paul Brook <paul@codesourcery.com>
16004
16005 * config/arm/neon.md (neon_type): Move to arm.md.
16006 (neon_mov<VSTRUCT>): Add neon_type attribute.
16007 * config/arm/arm.md (neon_type): Move to here.
16008 (conds): Add "unconditioal" and use as default for NEON insns.
16009
f3d84bf8 160102009-01-24 Ben Elliston <bje@au.ibm.com>
16011
16012 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
16013 void *' warning from -Wc++-compat.
16014 * Makefile.in (dominance.o-warn): Remove.
16015
a330630f 160162009-01-23 Paolo Bonzini <bonzini@gnu.org>
cd30b839 16017
16018 PR tree-optimization/38932
16019 * fold-const.c (fold_unary_ignore_overflow): New.
16020 * tree.h (fold_unary_ignore_overflow): Declare.
16021 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
16022 * tree-ssa-sccvn.c (visit_reference_op_load,
16023 simplify_unary_expression): Likewise.
16024
9fd767c5 160252009-01-22 Adam Nemet <anemet@caviumnetworks.com>
16026
16027 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
16028 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
16029 regardless of their type.
16030 * c-common.c (handle_packed_attribute): Don't ignore packed on
16031 bitfields.
16032 * c.opt (Wpacked-bitfield-compat): New warning option.
16033 * stor-layout.c (place_field): Warn if offset of a field changed.
16034 * doc/extend.texi (packed): Mention the ABI change.
16035 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
16036 (Warning Options): Add it to the list.
16037
71ee8477 160382009-01-22 H.J. Lu <hongjiu.lu@intel.com>
16039
16040 * c-opts.c (c_common_post_options): Fix a typo in comments.
16041
1a07ca64 160422009-01-22 Steve Ellcey <sje@cup.hp.com>
16043
16044 PR middle-end/38615
16045 * gimplify.c (gimplify_init_constructor): Fix promotion of const
16046 variables to static.
16047 * doc/invoke.texi (-fmerge-all-constants): Update description.
16048
a6f6ff30 160492009-01-22 Uros Bizjak <ubizjak@gmail.com>
16050
16051 PR target/38931
16052 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
16053 (*movdi_1_rex64): Use type "mmx" for alternative 5.
16054
93fa3baa 160552009-01-22 Richard Earnshaw <rearnsha@arm.com>
16056
16057 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
16058 a word boundary.
16059 (LOCAL_ALIGNMENT): Similarly.
16060
da941808 160612009-01-22 Mark Shinwell <shinwell@codesourcery.com>
a6f6ff30 16062 Joseph Myers <joseph@codesourcery.com>
da941808 16063
16064 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
16065 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
16066 * config/arm/arm-tune.md: Regenerate.
16067 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
16068 -march=iwmmxt2.
16069
00bd398c 160702009-01-22 Mark Shinwell <shinwell@codesourcery.com>
16071
16072 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
16073 version number to five.
16074
b2694749 160752009-01-22 Dodji Seketeli <dodji@redhat.com>
16076
16077 PR c++/38930
aca60c7b 16078 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
b2694749 16079 * c-common.c (set_underlying_type): Likewise.
16080 (is_typedef_decl ): Likewise
16081 * tree.h: Likewise
16082 (set_underlying_type): Likewise.
16083 (is_typedef_type): Likewise.
16084
8aad8efd 160852009-01-21 Vladimir Makarov <vmakarov@redhat.com>
16086
16087 PR middle-end/38587
16088 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
16089 crossing setjmps.
16090
8f057ffc 160912009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
16092
16093 PR bootstrap/37660
16094 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
16095 (LIBGCC_SPEC): Don't define.
16096 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
16097
f92492f7 160982009-01-21 Uros Bizjak <ubizjak@gmail.com>
16099
16100 PR rtl-optimization/38879
16101 * alias.c (base_alias_check): Unaligned access via AND address can
16102 alias all surrounding object types except those with sizes equal
16103 or wider than the size of unaligned access.
16104
c973dc47 161052009-01-21 Dodji Seketeli <dodji@redhat.com>
16106
16107 PR c++/26693
aca60c7b 16108 * c-decl.c (clone_underlying_type): Move this ...
c973dc47 16109 * c-common.c (set_underlying_type): ... here.
f92492f7 16110 Also, make sure the function properly sets TYPE_STUB_DECL() on
c973dc47 16111 the newly created typedef variant type.
16112 (is_typedef_decl ): New entry point.
16113 * tree.h: Added a new member member_types_needing_access_check to
16114 struct tree_decl_non_common.
16115 (set_underlying_type): New entry point.
16116 (is_typedef_type): Likewise.
16117
6e93a4c8 161182009-01-21 Bingfeng Mei <bmei@broadcom.com>
16119
16120 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
16121 Check whether two instructions have memory references that
16122 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
16123 are helper functions for traversing.
16124 * alias.h (insn_alias_sets_confilict_p): New prototypes.
16125 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
16126 not to draw dependency edge for instructions with non-conflicting
16127 alias sets.
16128
a698e1ec 161292009-01-20 Joseph Myers <joseph@codesourcery.com>
16130
16131 PR other/38758
a7a2dd08 16132 * longlong.h: Update copyright years. Use soft-fp license notice.
16133 Sync __clz_tab declaration with glibc.
a698e1ec 16134
b84fdfe2 161352009-01-20 Steve Ellcey <sje@cup.hp.com>
16136
16137 PR target/30687
16138 * doc/extend.texi (syscall_linkage): New.
16139 (version_id): Modify.
16140
c4d6ac81 161412009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
f92492f7 16142 Richard Guenther <rguenther@suse.de>
c4d6ac81 16143
16144 PR tree-optimization/38747
16145 PR tree-optimization/38748
16146 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
16147 conversion if the base address is an indirect reference and the
16148 aliasing sets could cause issues.
16149
d3399492 161502009-01-20 Sebastian Pop <sebastian.pop@amd.com>
16151
89871bab 16152 * common.opt (fgraphite, fgraphite-identity): Add comment for
d3399492 16153 explaining why these options are not documented.
16154
aa3f15b6 161552009-01-20 Sebastian Pop <sebastian.pop@amd.com>
16156
16157 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
16158 gimple_call_lhs is NULL.
16159
a330630f 161602009-01-20 Paolo Bonzini <bonzini@gnu.org>
e077413c 16161
16162 PR target/38868
16163 * emit-rtl.c (adjust_address_1): Make sure memref is never
16164 overwritten.
16165
8c2fa2f7 161662009-01-20 Ben Elliston <bje@au.ibm.com>
16167
16168 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
f92492f7 16169 const qualifier from arg parameter. Remove unnecessary cast to char *.
8c2fa2f7 16170 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
16171 const qualifier from arg 2.
16172
94cd11b9 161732009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
16174
f92492f7 16175 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
94cd11b9 16176
c950adc6 161772009-01-19 Vladimir Makarov <vmakarov@redhat.com>
16178
16179 PR c/38869
16180 * rtl.h (reinit_regs): New prototype.
16181 * regclass.c: Include ira.h.
16182 (reinit_regs): New.
16183 * Makefile.in (regclass.o): Add ira.h.
16184 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
16185
02421213 161862009-01-18 H.J. Lu <hongjiu.lu@intel.com>
16187
16188 PR target/38736
16189 * c-common.c (handle_aligned_attribute): Use
16190 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
16191 default alignment value.
16192
16193 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
16194
16195 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
16196 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
16197
16198 * doc/extend.texi: Update __attribute__ ((aligned)). Document
16199 __BIGGEST_ALIGNMENT__.
16200
16201 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
16202
2ac47fdf 162032009-01-18 Richard Guenther <rguenther@suse.de>
16204
16205 PR tree-optimization/38819
16206 * tree-flow.h (operation_could_trap_helper_p): Declare.
16207 * tree-eh.c (operation_could_trap_helper_p): Export.
16208 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
16209 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
16210 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
16211 are about to insert a possibly trapping instruction and fail
16212 in this case.
16213
b338dafb 162142009-01-18 Andreas Schwab <schwab@suse.de>
16215
16216 * doc/install.texi (Configuration): Remove obsolete paragraph
16217 about use of --with-gnu-ld with --with-gnu-as.
16218
91f54ca3 162192009-01-18 Kazu Hirata <kazu@codesourcery.com>
16220
16221 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
16222 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
16223 Follow spelling conventions.
16224
76cd80c7 162252009-01-18 Ben Elliston <bje@au.ibm.com>
16226
16227 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
16228 C++ warning about implicit conversion from void * to struct
16229 bitmap_head_def *.
16230 (bitmap_obstack_free): Likewise for bitmap_element *.
df1573c4 16231 * Makefile.in (bitmap.o-warn): Remove.
76cd80c7 16232
89bcc083 162332009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
16234
16235 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
16236
3c560c26 162372009-01-17 Sebastian Pop <sebastian.pop@amd.com>
16238 Tobias Grosser <tobi.grosser@amd.com>
16239
16240 * graphite.c (graphite_trans_scop_block): Do not block single
16241 nested loops.
16242
e106fc2e 162432009-01-16 Alexandre Oliva <aoliva@redhat.com>
16244
16245 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
16246 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
16247 test with assertion.
16248
cd6342bd 162492009-01-16 Richard Guenther <rguenther@suse.de>
16250
16251 PR tree-optimization/38835
16252 PR middle-end/36227
16253 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
16254 and INT + PTR -> (INT)(PTR p+ INT) folding.
16255 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
16256
298bbd8d 162572009-01-16 Adam Nemet <anemet@caviumnetworks.com>
16258
16259 PR target/38554
16260 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
16261 the subreg from a lowpart subreg if it is also casting the value.
16262
9e5f07d3 162632009-01-16 Sebastian Pop <sebastian.pop@amd.com>
16264 Tobias Grosser <tobi.grosser@amd.com>
16265
16266 * graphite.c (compare_prefix_loops): New.
16267 (build_scop_canonical_schedules): Rewritten.
16268 (graphite_transform_loops): Move build_scop_canonical_schedules
16269 after build_scop_iteration_domain.
16270
35fb1eb0 162712009-01-16 Sebastian Pop <sebastian.pop@amd.com>
16272 Tobias Grosser <tobi.grosser@amd.com>
16273
89871bab 16274 * graphite.c (add_conditions_to_domain): Add the loops to
35fb1eb0 16275 the dimension of the iteration domain. Do copy the domain
16276 only when it exists.
16277 (build_scop_conditions_1): Do not call add_conditions_to_domain.
16278 (add_conditions_to_constraints): New.
16279 (can_generate_code_stmt, can_generate_code): Removed.
16280 (gloog): Do not call can_generate_code.
16281 (graphite_transform_loops): Call add_conditions_to_constraints
16282 after building the iteration domain.
16283
99e2edfd 162842009-01-16 Jakub Jelinek <jakub@redhat.com>
16285
16286 PR tree-optimization/38789
16287 * tree-ssa-threadedge.c
16288 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
16289 __builtin_constant_p.
16290
237805dd 162912009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cff725a2 16292
16293 * dce.c (delete_unmarked_insns): Reversed the order that insns are
16294 examined before deleting them.
89871bab 16295
daaa06b2 162962009-01-16 Richard Earnshaw <rearnsha@arm.com>
16297
16298 * function.c (aggregate_value_p): Correctly extract the function
16299 type from CALL_EXPR_FN lookup.
16300
237805dd 163012009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
e262db7d 16302
16303 * config/picochip/picochip.c (picochip_override_options): Revert
16304 CFI asm flag disable commited previously.
16305
d635c475 163062009-01-15 Sebastian Pop <sebastian.pop@amd.com>
16307 Tobias Grosser <tobi.grosser@amd.com>
16308 Jan Sjodin <jan.sjodin@amd.com>
16309
16310 * graphite.c (scan_tree_for_params): On substractions negate
16311 all the coefficients of the term.
16312 (clast_to_gcc_expression_red): New. Handle reduction expressions
16313 of more than two operands.
16314 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
16315 (get_vdef_before_scop): Handle also the case of default definitions.
16316
f5b7c8a5 163172009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
16318
16319 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
16320 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
16321 Also use them when walking CALL_INSN_FUNCTION_USAGE.
16322
9e1c1bf0 163232009-01-15 H.J. Lu <hongjiu.lu@intel.com>
16324 Joey Ye <joey.ye@intel.com>
16325
16326 PR middle-end/37843
16327 * cfgexpand.c (expand_stack_alignment): Don't update stack
16328 boundary nor check incoming stack boundary here.
16329 (gimple_expand_cfg): Update stack boundary and check incoming
16330 stack boundary here.
16331
237805dd 163322009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
66aca59d 16333
f92492f7 16334 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
89871bab 16335
eb940a48 163362009-01-14 Jakub Jelinek <jakub@redhat.com>
16337
16338 PR rtl-optimization/38245
16339 * calls.c (expand_call): Add stack arguments to
16340 CALL_INSN_FUNCTION_USAGE even for pure calls (when
16341 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
16342 in regs and partially in memory or BLKmode arguments.
16343 (emit_library_call_value_1): Add stack arguments to
16344 CALL_INSN_FUNCTION_USAGE even for pure calls (when
16345 ACCUMULATE_OUTGOING_ARGS).
16346 * dce.c: Include tm_p.h.
16347 (find_call_stack_args): New function.
16348 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
16349 argument.
16350 (mark_insn): Call find_call_stack_args for CALL_Ps.
16351 (prescan_insns_for_dce): Walk insns backwards in bb rather than
16352 forwards. Allocate and free arg_stores bitmap if needed, pass it
16353 down to deletable_insn_p, don't mark stores set in arg_stores
16354 bitmap, clear the bitmap at the beginning of each bb.
16355 * Makefile.in (dce.o): Depend on $(TM_P_H).
16356
26f62ff4 163572009-01-14 Michael Meissner <gnu@the-meissners.org>
16358
16359 PR target/22599
f92492f7 16360 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
16361 to make sure the insn is a conditional test (bug 22599). Reformat a
16362 few long lines.
26f62ff4 16363
87736b69 163642009-01-14 Sebastian Pop <sebastian.pop@amd.com>
16365
16366 PR middle-end/38431
16367 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
16368 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
16369 (gloog): Do not call cleanup_tree_cfg.
89871bab 16370 (graphite_transform_loops): Call cleanup_tree_cfg after all
87736b69 16371 scops have been code generated.
16372
4dbb1e0c 163732009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
16374 * doc/gty.texi (Invoking the garbage collector): Added new node
16375 and section documenting ggc_collect.
16376
48d49ced 163772009-01-14 Richard Guenther <rguenther@suse.de>
16378
16379 PR tree-optimization/38826
16380 PR middle-end/38477
16381 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
16382 initialization notes only if we actually emitted a warning.
16383 (intra_create_variable_infos): Add constraints for a result decl
16384 that is passed by hidden reference.
16385 (build_pred_graph): Mark all related variables non-direct on
16386 address-taking.
16387
bef7b1de 163882009-01-14 Nick Clifton <nickc@redhat.com>
16389
16390 * ira-conflicts.c: Include addresses.h for the definition of
16391 base_reg_class.
f92492f7 16392 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
16393 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
bef7b1de 16394
cab55469 163952009-01-13 Vladimir Makarov <vmakarov@redhat.com>
16396
16397 PR target/38811
16398 * Makefile.in (ira-lives.o): Add except.h.
16399
16400 * ira-lives.c: Include except.h.
16401 (process_bb_node_lives): Process can_throw_internal.
16402
cac5cd08 164032009-01-13 Jakub Jelinek <jakub@redhat.com>
16404
16405 PR rtl-optimization/38774
16406 * combine.c (simplify_set): When undoing cc_use change, don't do
16407 PUT_CODE on the newly created comparison, but instead put back the
16408 old comparison.
16409
309ef6b4 164102009-01-13 Joseph Myers <joseph@codesourcery.com>
16411
16412 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
16413 values. Remove duplicate arm8 entry.
16414
1ffa850c 164152009-01-13 Sebastian Pop <sebastian.pop@amd.com>
16416
16417 PR tree-optimization/38786
16418 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
16419 the SSA_NAME case of expand_scalar_variables_expr.
16420 Set the type of an expression to the type of its assign statement.
16421 (expand_scalar_variables_expr): Also gather the scalar computation
16422 used to index the memory access. Do not pass loop_p.
16423 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
16424 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
8d4c7d80 16425 the gimple_stmt_iterator where it inserts new code.
16426 Do not pass loop_p.
1ffa850c 16427 (copy_bb_and_scalar_dependences): Do not pass loop_p.
16428 (translate_clast): Update call to copy_bb_and_scalar_dependences.
16429
de540910 164302009-01-13 Sebastian Pop <sebastian.pop@amd.com>
16431
16432 * graphite.h (debug_value): Removed.
16433 * graphite.c (debug_value): Removed.
16434
3d1f6e40 164352009-01-13 Richard Earnshaw <rearnsha@arm.com>
16436
f92492f7 16437 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
16438 ldrd/strd with two 32-bit instructions.
3d1f6e40 16439
0f978633 164402009-01-13 Richard Earnshaw <rearnsha@arm.com>
16441
f92492f7 16442 * config/arm/arm.c (struct processors): Pass for speed down into
16443 cost helper functions.
0f978633 16444 (const_ok_for_op): Handle COMPARE and inequality nodes.
16445 (arm_rtx_costs_1): Rewrite.
16446 (arm_size_rtx_costs): Update prototype.
16447 (arm_rtx_costs): Pass speed down to helper functions.
16448 (arm_slowmul_rtx_costs): Rework cost calculations.
16449 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
16450 (arm_9e_rtx_costs): Likewise.
16451
d6c48eee 164522009-01-13 Uros Bizjak <ubizjak@gmail.com>
16453
16454 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
f92492f7 16455 relocations of local symbols wider than UNITS_PER_WORD are not valid.
d6c48eee 16456 (alpha_legitimize_address): Do not split local symbols wider than
16457 UNITS_PER_WORD into HIGH/LO_SUM parts.
16458
91e64380 164592009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
16460
16461 PR bootstrap/38580
16462 * gcc.c (process_command): Replace call to execvp with calls
16463 to pex_one and exit.
16464
4addc9bf 164652009-01-03 Anatoly Sokolov <aesok@post.ru>
16466
16467 PR target/29141
16468 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
16469 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
16470 variant for devices with 3-byte PC.
aca60c7b 16471 (__tablejump_elpm__): New.
4addc9bf 16472
f0d0d842 164732009-01-12 Jakub Jelinek <jakub@redhat.com>
16474
16475 PR c/32041
16476 * c-parser.c (c_parser_postfix_expression): Allow `->' in
16477 offsetof member-designator, handle it as `[0].'.
16478
55e0e460 164792009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16480
16481 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
16482 function when not using named sections on targets with named sections
16483 if branch distance is less than 262132.
16484
afb33771 164852009-01-12 Richard Earnshaw <rearnsha@arm.com>
16486
16487 * combine.c (combine_instructions): Recompute
16488 optimize_this_for_speed_p for each BB in the main combine loop.
16489
a6c1b5f0 164902009-01-12 Tomas Bily <tbily@suse.cz>
16491
16492 PR middlend/38385
d6c48eee 16493 * tree-loop-distribution.c (prop_phis): New function.
16494 (generate_builtin): Call prop_phis.
16495 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
a6c1b5f0 16496
3a43bfe9 164972009-01-12 Jakub Jelinek <jakub@redhat.com>
16498
16499 PR tree-optimization/38807
16500 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
16501 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
16502
95fb59aa 165032009-01-11 Adam Nemet <anemet@caviumnetworks.com>
16504
16505 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
16506 subreg of op0 to the original op0.
16507
237805dd 165082009-01-11 Laurent GUERBY <laurent@guerby.net>
e0b61fdb 16509
16510 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
89871bab 16511
a32384d7 165122009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
16513
16514 PR debug/7055
943327c1 16515 * mips-tfile.c (parse_def): Fix parsing of def strings
a32384d7 16516 starting with digits.
16517
a9467ac5 165182009-01-10 Jakub Jelinek <jakub@redhat.com>
16519
16520 PR target/38695
16521 * config/arm/arm.c (arm_is_long_call_p): Don't call
16522 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
16523
100329af 165242009-01-09 Steven Bosscher <steven@gcc.gnu.org>
16525
16526 * regrename.c (regrename_optimize): Fix dumping.
16527 (find_oldest_value_reg): Preserve REG_POINTER.
16528 (copy_hardreg_forward_1): Likewise.
16529
51e52fe3 165302009-01-09 Diego Novillo <dnovillo@google.com>
16531
6db00048 16532 * gimple.h (struct gimple_statement_base) <uid>: Document
51e52fe3 16533 the restrictions on its use.
16534 (gimple_uid): Tidy.
16535 (gimple_set_uid): Tidy.
16536
e1e05028 165372009-01-09 Jakub Jelinek <jakub@redhat.com>
16538
16539 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
16540 zero guard even if align_bytes != 0 and count is smaller than
16541 size_needed.
16542
a330630f 165432009-01-09 Vladimir Makarov <vmakarov@redhat.com>
0c42b4f4 16544
16545 PR rtl-optimization/38495
d6c48eee 16546 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
0c42b4f4 16547 (add_range_and_copies_from_move_list): Print all added ranges.
16548 Add ranges to memory optimized destination.
16549
8f538fc3 165502009-01-09 Jakub Jelinek <jakub@redhat.com>
16551
ede11ffa 16552 PR target/38686
16553 PR target/38708
16554 * config/i386/i386.c (override_options): Reject
16555 -mstringop-strategy=rep_8byte with -m32.
16556 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
16557 to 1. Do count comparison against epilogue_size_needed at compile
16558 time even when count_exp was constant forced into register. For
16559 size_needed don't jump to epilogue, instead just avoid aligning
16560 and invoke the body algorithm. If need_zero_guard, add zero guard
16561 even if count is non-zero, but smaller than size_needed + number of
16562 bytes that could be stored for alignment.
16563 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
16564 to 1. If need_zero_guard, add zero guard even if count is non-zero,
16565 but smaller than size_needed + number of bytes that could be stored
16566 for alignment. Compare size_needed with epilogue_size_needed instead
16567 of desired_align - align, don't adjust size_needed, pass
16568 epilogue_size_needed to the epilogue expanders.
16569
8f538fc3 16570 PR c/35742
d6c48eee 16571 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
8f538fc3 16572
21a47bc9 165732009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16574
16575 * pa.c (last_address): Change to unsigned.
16576 (update_total_code_bytes): Change argument to unsigned. Don't
16577 check if insn addresses are set.
16578 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
16579 addresses are not set.
16580 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
16581
ce090c51 165822009-01-09 Nick Clifton <nickc@redhat.com>
16583
16584 * config/sh/symbian.c: Replace uses of DECL_INLINE with
16585 DECL_DECLARED_INLINE_P.
16586
4e7cb1c5 165872009-01-09 Jakub Jelinek <jakub@redhat.com>
16588
70b6a6e8 16589 PR middle-end/38347
16590 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
16591 GET_MODE (op0) in operand_subword_force calls.
16592
4e7cb1c5 16593 PR middle-end/38771
16594 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
16595 fold_convert arg0 operands to TREE_TYPE (op0) first.
16596
d0388252 165972009-01-08 Vladimir Makarov <vmakarov@redhat.com>
16598
16599 * params.def (ira-max-conflict-table-size): Decrease default value
16600 to 1000.
16601
12c697cd 166022009-01-08 Jakub Jelinek <jakub@redhat.com>
16603
16604 PR tree-optimization/37031
16605 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
16606 on parameter_set.
16607 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
16608 allocate it using gc instead of heap, use VEC_quick_push instead of
16609 VEC_safe_push.
16610 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
16611 instead of heap, use VEC_quick_push instead of VEC_safe_push.
16612 * tree-data-ref.h (struct access_matrix): Change matrix to gc
16613 allocated vector from heap allocated.
16614 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
16615 * tree-loop-linear.c (linear_transform_loops): Allocate nest
16616 vector only after perfect_loop_nest_depth call.
16617
59835a90 166182009-01-08 Sebastian Pop <sebastian.pop@amd.com>
16619 Jan Sjodin <jan.sjodin@amd.com>
16620
16621 PR tree-optimization/38559
16622 * graphite.c (debug_value, copy_constraint,
16623 swap_constraint_variables, scale_constraint_variable, ): New.
16624 (get_lower_bound, get_upper_bound): Removed.
16625 (graphite_trans_bb_strip_mine): Clean up this code that works
16626 only for constant number of iterations. Fully copy upper and
16627 lower bound constraints, not only the constant part of them.
16628 * graphite.h (debug_value): Declared.
16629
1c48f190 166302009-01-08 Ira Rosen <irar@il.ibm.com>
16631
16632 PR tree-optimization/37194
16633 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
89871bab 16634 Don't add the cost of cost model guard in prologue to scalar
1c48f190 16635 outside cost in case of known number of iterations.
16636
9538c1d1 166372009-01-07 Nathan Froyd <froydnj@codesourcery.com>
16638 Alan Modra <amodra@bigpond.net.au>
16639
16640 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
16641 non-word-aligned REG+CONST addressing.
16642
292add68 166432009-01-07 Uros Bizjak <ubizjak@gmail.com>
16644
16645 PR target/38706
16646 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
16647 free_after_compilation when outputting a thunk.
16648 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
16649 Do not call free_after_compilation here.
16650
bbc3ff90 166512009-01-07 Uros Bizjak <ubizjak@gmail.com>
16652
16653 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
bbc3ff90 16654 (ix86_valid_target_attribute_inner_p): Ditto.
16655
145bdf6a 166562009-01-07 Jan Sjodin <jan.sjodin@amd.com>
16657
16658 PR tree-optimization/38492
16659 PR tree-optimization/38498
16660 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
16661 * tree-chrec.h (scev_is_linear_expression): Declared.
16662 * graphite.c (graphite_cannot_represent_loop_niter): New.
16663 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
16664 (graphite_loop_normal_form): Use gcc_assert.
16665 (scan_tree_for_params): Use CASE_CONVERT.
16666 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
16667 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
16668 Use gcc_assert. Discard scops that contain unhandled cases.
16669 (build_scop_conditions): Return a boolean status for unhandled cases.
16670 (strip_mine_profitable_p): Print the loop number, not its depth.
16671 (is_interchange_valid): Pass the depth of the loop nest, don't
16672 recompute it wrongly.
16673 (graphite_trans_bb_block): Same.
16674 (graphite_trans_bb_block): Print tentative of loop blocking.
16675 (graphite_trans_scop_block): Do not print that the loop has been
16676 blocked.
16677 (graphite_transform_loops): Do not handle scops that contain condition
16678 scalar phi nodes.
16679
b49a1e34 166802009-01-07 H.J. Lu <hongjiu.lu@intel.com>
16681
16682 AVX Programming Reference (December, 2008)
16683 * config/i386/avxintrin.h (_mm256_stream_si256): New.
16684 (_mm256_stream_pd): Likewise.
16685 (_mm256_stream_ps): Likewise.
16686
16687 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
16688 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
16689 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
16690 (bdesc_special_args): Add __builtin_ia32_movntdq256,
16691 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
16692 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
16693 (ix86_expand_special_args_builtin): Likewise.
16694
16695 * config/i386/sse.md (AVXMODEDI): New.
16696 (avx_movnt<mode>): Likewise.
16697 (avx_movnt<mode>): Likewise.
16698 (<sse>_movnt<mode>): Remove AVX support.
16699 (sse2_movntv2di): Likewise.
16700
4f1351a2 167012009-01-07 Richard Guenther <rguenther@suse.de>
16702
16703 PR middle-end/38751
16704 * fold-const.c (extract_muldiv): Remove obsolete comment.
16705 (fold_plusminus_mult_expr): Undo MINUS_EXPR
16706 to PLUS_EXPR canonicalization for the canonicalization.
16707
aad359a1 167082009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
16709
16710 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
16711 hosted cross-compilers generating less efficient code.
16712
2061be83 167132009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
16714
16715 * function.h (rtl_data): Add a dbr_scheduled_p field.
16716 * reorg.c (dbr_schedule): Set it.
16717 (gate_handle_delay_slots): Check it.
16718 * config/mips/mips.c (mips_base_delayed_branch): Delete.
16719 (mips_reorg): Check flag_delayed_branch instead of
16720 mips_base_delayed_branch.
16721 (mips_override_options): Don't set mips_base_delayed_branch
16722 or flag_delayed_branch.
16723
6b806743 167242009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
16725
16726 PR rtl-optimization/38426.
16727 * ira.c (ira): Set current_function_is_leaf earlier.
16728
095050fc 167292009-01-06 Jakub Jelinek <jakub@redhat.com>
16730
16731 PR rtl-optimization/38722
16732 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
16733 too early, only set a flag and modify after last possible
16734 undo_all point.
16735
0c87fb2b 167362009-01-06 Janis Johnson <janis187@us.ibm.com>
16737
16738 PR c/34252
16739 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
16740 * real.c (decimal_single_format): Correct values of emin and emax.
16741 (decimal_double_format): Ditto.
16742 (decimal_quad_format): Ditto.
16743 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
16744 computation of DECnn_MIN and DECnn_MAX for corrected values of
16745 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
16746 __DECnn_MIN__, and adjust its computation for the corrected value
16747 of emin.
16748
710ab45a 167492009-01-06 Jan Hubicka <jh@suse.cz>
16750
16751 PR target/38744
f92492f7 16752 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
710ab45a 16753
0a46e111 167542009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
16755
16756 * doc/contrib.texi (Contributors): Slightly adjust the end note.
16757 Add Robert Clark to the list of testers.
16758
30095c10 167592009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 16760 Kai Tietz <kai.tietz@onevision.com>
30095c10 16761
f92492f7 16762 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
16763 * config/i386/i386.c (ix86_expand_call): Add clobbers.
30095c10 16764
acb79b5c 167652009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 16766 Kai Tietz <kai.tietz@onevision.com>
acb79b5c 16767
f92492f7 16768 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
16769 for w64 ABI.
16770 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
acb79b5c 16771 (ix86_nsaved_regs): Count only general purpose regs.
16772 (ix86_nsaved_sseregs): New.
16773 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
16774 to 16 for w64; compute padding and size of sse reg save area.
bbc3ff90 16775 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
16776 general purpose regs.
acb79b5c 16777 (ix86_emit_save_sse_regs_using_mov): New.
16778 (ix86_expand_prologue): Save SSE regs if needed.
16779 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
16780 (ix86_emit_restore_sse_regs_using_mov): New.
16781 (ix86_expand_epilogue): Save SSE regs if needed.
16782
90a81a4b 167832009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 16784 Kai Tietz <kai.tietz@onevision.com>
90a81a4b 16785
f92492f7 16786 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
16787 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
16788 functions when accumulate outgoing args is off.
90a81a4b 16789
7521b07f 167902009-01-06 H.J. Lu <hongjiu.lu@intel.com>
16791
16792 PR bootstrap/38742
16793 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
16794 before using pseudos_have_intersected_live_ranges_p.
16795
16796 * ira-int.h (ira_assert): Always define.
16797
dbd61cd0 167982009-01-06 H.J. Lu <hongjiu.lu@intel.com>
16799
16800 AVX Programming Reference (December, 2008)
16801 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
16802 (_mm256_permute2_pd): Likewise.
16803 (_mm_permute2_ps): Likewise.
16804 (_mm256_permute2_ps): Likewise.
16805 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
16806 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
16807
16808 * config/i386/i386.c (ix86_builtins): Remove
16809 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
16810 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
16811 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
16812 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
16813 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
16814 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
16815 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
16816 __builtin_ia32_vpermil2ps256.
16817 (ix86_init_mmx_sse_builtins): Updated.
16818 (ix86_expand_args_builtin): Likewise.
16819
c4b36071 168202009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16821
dbd61cd0 16822 * pa.c (output_call): Relocate non-jump insns in the delay slot of
16823 long absolute calls when generating PA 2.0 code.
c4b36071 16824
95c83f01 168252009-01-05 Vladimir Makarov <vmakarov@redhat.com>
16826
16827 PR rtl-optimization/38583
16828 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
16829
16830 * params.def (ira-max-conflict-table-size): New.
16831
16832 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
89871bab 16833
95c83f01 16834 * ira.h (ira_conflicts_p): New external definition.
89871bab 16835
95c83f01 16836 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
16837 table. Report this. Return result of building.
16838 (ira_build_conflicts): Use ira_conflicts_p. Check result of
16839 building conflict table.
16840
bbc3ff90 16841 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
95c83f01 16842 (ira_color): Use ira_conflicts_p.
89871bab 16843
95c83f01 16844 * global.c: Include ira.h.
16845 (pseudo_for_reload_consideration_p, build_insn_chain): Use
16846 ira_conflicts_p.
16847
16848 * Makefile.in (global.o): Add ira.h.
89871bab 16849
95c83f01 16850 * ira-build.c (mark_all_loops_for_removal,
16851 propagate_some_info_from_allocno): New.
16852 (remove_unnecessary_allocnos): Call
16853 propagate_some_info_from_allocno.
16854 (remove_low_level_allocnos): New.
16855 (remove_unnecessary_regions): Add parameter. Call
16856 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
16857 parameter to remove_unnecessary_regions.
16858 (ira_build): Remove all regions but root if the conflict table was
16859 not built. Update conflict hard regs for allocnos crossing calls.
16860
16861 * ira.c (ira_conflicts_p): New global.
16862 (ira): Define and use ira_conflicts_p.
16863
16864 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
16865 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
bbc3ff90 16866 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
89871bab 16867
da279129 168682009-01-06 Ben Elliston <bje@au.ibm.com>
16869
16870 * gengtype-lex.l (YY_NO_INPUT): Define.
16871
7ec31215 168722009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
16873
16874 PR c/34911
da279129 16875 * c-common.c (handle_vector_size_attribute): Also reject
16876 BOOLEAN_TYPE types.
7ec31215 16877
d51c4d4c 168782009-01-05 Sebastian Pop <sebastian.pop@amd.com>
16879
16880 PR tree-optimization/38492
16881 * graphite.c (rename_map_elt, debug_rename_elt,
bbc3ff90 16882 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
16883 rename_map_elt_info, eq_rename_map_elts,
16884 get_new_name_from_old_name, bb_in_sese_p): Moved around.
d51c4d4c 16885 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
16886 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
16887 (sese_build_livein_liveouts): New.
16888 (new_sese, free_sese): New.
16889 (new_scop): Call new_sese.
16890 (free_scop): Call free_sese.
16891 (rename_variables_from_edge, rename_phis_end_scop): Removed.
16892 (register_old_new_names): Renamed register_old_and_new_names.
16893 (register_scop_liveout_renames, add_loop_exit_phis,
16894 insert_loop_close_phis, struct igp,
16895 default_liveout_before_guard, add_guard_exit_phis,
16896 insert_guard_phis, copy_renames): New.
16897 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
16898 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
16899 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
16900 (scop_adjust_phis_for_liveouts): New.
16901 (gloog): Call scop_adjust_phis_for_liveouts.
16902
16903 * graphite.h (struct sese): Documented. Added fields liveout,
bbc3ff90 16904 num_ver and livein.
d51c4d4c 16905 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
16906 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
16907 (struct scop): Added field liveout_renames.
16908 (SCOP_LIVEOUT_RENAMES): New.
16909
57c0fd3c 169102009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
16911
16912 PR tree-optimization/38510
16913 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
16914 (translate_clast): Call recompute_all_dominators before
16915 graphite_verify.
16916 (gloog): Call recompute_all_dominators before graphite_verify.
16917
169182009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
237805dd 16919 Jan Sjodin <jan.sjodin@amd.com>
57c0fd3c 16920
16921 PR tree-optimization/38500
16922 * graphite.c (create_sese_edges): Call fix_loop_structure after
16923 splitting blocks.
16924
237805dd 169252009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
e4c85211 16926
16927 * config.gcc: Add m32r*-*-rtems*.
16928 * config/m32r/rtems.h: New file.
16929
e7ae053d 169302009-01-05 Ben Elliston <bje@au.ibm.com>
16931
16932 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
16933 (.po.pox): Likewise.
16934 (po/gcc.pot): Likewise.
16935
aad5aaaf 169362009-01-04 David S. Miller <davem@davemloft.net>
16937
16938 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
16939 (STARTING_FRAME_OFFSET): Always set to zero.
16940
f323bb78 169412009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
16942
16943 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
16944 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
16945 fixed-point types, and vectors of the same.
16946
b73796fa 169472009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
16948
16949 * config/mips/sync.md (*mb_barrier): Rename to...
16950 (*memory_barrier): ...this.
16951
c17add59 169522009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
16953
16954 * doc/extend.texi (Function Attributes): Move @cindex after @item
6c6bce65 16955 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
c17add59 16956 and put in alphabetical order. Fix 'target' name and put in order.
16957 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
16958 typos.
16959
dc178856 169602009-01-04 Uros Bizjak <ubizjak@gmail.com>
16961
16962 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
16963 (memory_barrier): Expand as unspec instead of unspec_volatile.
16964 Remove mem:BLK from insn operands. Use Pmode scratch register.
16965 (*memory_barrier): Define as unspec instead of unspec_volatile.
16966 Use (match_dup 0) as input operand.
16967
16968 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
16969 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
16970 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
16971 scratch register. Remove operand 1.
16972 (*stbar): Define as unspec instead of unspec_volatile.
16973 Use (match_dup 0) as input operand, remove (const_int 8).
16974 (*membar): Define as unspec instead of unspec_volatile.
16975 Use (match_dup 0) as input operand, remove input operand 2.
16976
16977 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
16978 (memory_barrier): Expand as unspec instead of unspec_volatile.
16979 Remove mem:BLK from insn operands. Use Pmode scratch register.
16980 (*memory_barrier): Define as unspec instead of unspec_volatile.
16981 Use (match_dup 0) as input operand.
16982
16983 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
16984 Remove mem:BLK from insn operands. Use Pmode scratch register.
16985 Set volatile flag on operand 0.
16986 (*memory_barrier): New insn pattern.
16987
16988 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
16989 insn operands.
16990 (*memory_barrier): Use (match_dup 0) as input operand.
16991
16992 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
16993 Remove mem:BLK from insn operands. Use Pmode scratch register.
16994 Set volatile flag on operand 0.
bbc3ff90 16995 (*mb_internal): New insn pattern.
dc178856 16996
16997 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
16998
fef299ce 169992009-01-04 Steven Bosscher <steven@gcc.gnu.org>
17000
17001 PR middle-end/38586
17002 * function.c (struct temp_slot): Move to the section of the file
17003 that deals with temp slots. Remove field 'address'.
17004 (temp_slot_address_table): New hash table of address -> temp slot.
17005 (struct temp_slot_address_entry): New struct, items for the table.
17006 (temp_slot_address_compute_hash, temp_slot_address_hash,
17007 temp_slot_address_eq, insert_temp_slot_address): Support functions
17008 for the new table.
17009 (find_temp_slot_from_address): Rewrite to use the new hash table.
17010 (remove_unused_temp_slot_addresses): Remove addresses of temp
17011 slots that have been made available.
17012 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
17013 worker function for remove_unused_temp_slot_addresses.
17014 (assign_stack_temp_for_type): Don't clear the temp slot address list.
17015 Add the temp slot address to the address -> temp slot map.
17016 (update_temp_slot_address): Update via insert_temp_slot_address.
17017 (free_temp_slots): Call remove_unused_temp_slot_addresses.
17018 (pop_temp_slots): Likewise.
17019 (init_temp_slots): Allocate the address -> temp slot map, or empty
17020 the map if it is already allocated.
17021 (prepare_function_start): Initialize temp slot processing.
17022
961c8f72 170232009-01-04 Steven Bosscher <steven@gcc.gnu.org>
17024
17025 PR middle-end/38584
17026 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
17027 Calculate the size of all stack vars assuming no packing of stack
17028 vars will happen, replacing a quadratic algorithm with a linear one.
17029
c2ef487a 170302009-01-03 Jakub Jelinek <jakub@redhat.com>
17031
17032 PR target/38707
17033 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
17034 can't be used.
17035
d2472193 170362009-01-03 Diego Novillo <dnovillo@google.com>
17037
17038 * doc/contrib.texi: Update contributions.
17039
062b4460 170402009-01-03 Jakub Jelinek <jakub@redhat.com>
17041
6f52ebeb 17042 PR c++/38705
17043 * builtins.c (fold_builtin_memory_op): Give up if either operand
17044 is volatile. Set srctype or desttype to non-qualified version
17045 of the other type.
17046
062b4460 17047 PR c/38700
17048 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
17049 and FUNCTION_DECLs.
17050
237805dd 170512009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
7e009ff5 17052
17053 PR rtl-optimization/35805
17054 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
17055 problem if fast dce is able to remove any instructions.
17056 * dce.c (dce_process_block): Fix dump message.
89871bab 17057
c9f77b30 170582009-01-02 Mark Mitchell <mark@codesourcery.com>
17059
17060 PR 33649
17061 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
17062
e70f5f27 170632009-01-02 Jakub Jelinek <jakub@redhat.com>
17064
17065 PR middle-end/38690
17066 * tree-flow.h (op_code_prio, op_prio): New prototypes.
17067 * tree-pretty-print.c (op_code_prio): New function.
17068 (op_prio): No longer static. Use op_code_prio.
17069 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
17070 Use op_prio and op_code_prio to determine if () should be
17071 printed around operand(s) or not.
17072
17073 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
17074 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
17075 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
17076 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
17077 pp_character instead of pp_string for single letter printing.
17078
db8edef0 170792009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
17080
17081 * doc/extend.texi: Fix '#pragma GCC option' typo.
17082
237805dd 170832009-01-02 Richard Guenther <rguenther@suse.de>
6d37614e 17084
e6f4e61f 17085 * doc/install.texi (--enable-checking): Mention different
17086 default for stage1.
17087 (--enable-stage1-checking): Document.
6d37614e 17088
d3a42176 170892009-01-01 Andrew Pinski <pinskia@gmail.com>
17090
17091 PR middle-end/30142
17092 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
17093 case to be an error.
17094
5c8520a4 170952009-01-02 Ben Elliston <bje@au.ibm.com>
17096
17097 * config/fp-bit.h (pack_d): Constify argument.
17098 * config/fp-bit.c (makenan): Constify return type. Remove casts.
17099 (isnan): Constify argument.
17100 (isinf): Likewise.
17101 (iszero): Likewise.
17102 (pack_d): Likewise.
17103 (_fpadd_parts): Constify return type.
17104 (_fpmul_parts): Likewise.
17105 (_fpdiv_parts): Likewise.
17106
d241bf0d 171072009-01-01 Jakub Jelinek <jakub@redhat.com>
17108
17109 PR c/36489
17110 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
17111 warn about overwriting initializer with side-effects or
17112 -Woverride-init if !IMPLICIT.
17113 (output_init_element): Likewise. Pass IMPLICIT down to
17114 add_pending_init.
17115 (process_init_element): Add IMPLICIT argument. Pass it down
17116 to output_init_element.
17117 (push_init_element, pop_init_level, set_designator): Adjust
17118 process_init_element callers.
17119 (set_nonincremental_init, set_nonincremental_init_from_string):
17120 Adjust add_pending_init callers.
17121 (output_pending_init_elements): Adjust output_init_element callers.
17122 * c-tree.h (process_init_element): Adjust prototype.
17123 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
17124 process_init_element callers.
7dfbd804 17125
17126\f
17127Copyright (C) 2009 Free Software Foundation, Inc.
17128
17129Copying and distribution of this file, with or without modification,
17130are permitted in any medium without royalty provided the copyright
17131notice and this notice are preserved.