]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
MAINTAINERS: Add myself as mep maintainer.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
7acf4da6
DD
12009-06-23 DJ Delorie <dj@redhat.com>
2
3 Add MeP port.
4 * config.gcc: Add mep support.
5 * recog.c: Resurrect validate_replace_rtx_subexp().
6 * recog.h: Likewise.
7 * config/mep/: Add new port:
8 * config/mep/constraints.md: New file.
9 * config/mep/default.h: New file.
10 * config/mep/intrinsics.h: New file.
11 * config/mep/intrinsics.md: New file.
12 * config/mep/ivc2-template.h: New file.
13 * config/mep/mep-c5.cpu: New file.
14 * config/mep/mep-core.cpu: New file.
15 * config/mep/mep-default.cpu: New file.
16 * config/mep/mep-ext-cop.cpu: New file.
17 * config/mep/mep-intrin.h: New file.
18 * config/mep/mep-ivc2.cpu: New file.
19 * config/mep/mep-lib1.asm: New file.
20 * config/mep/mep-lib2.c: New file.
21 * config/mep/mep-pragma.c: New file.
22 * config/mep/mep-protos.h: New file.
23 * config/mep/mep-tramp.c: New file.
24 * config/mep/mep.c: New file.
25 * config/mep/mep.cpu: New file.
26 * config/mep/mep.h: New file.
27 * config/mep/mep.md: New file.
28 * config/mep/mep.opt: New file.
29 * config/mep/predicates.md: New file.
30 * config/mep/t-mep: New file.
31
00020c16
ILT
322009-06-23 Ian Lance Taylor <iant@google.com>
33
34 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
35 from loose_warn into c_loose_warn and from strict_warn into
36 c_strict_warn. Set and substitute warn_cxxflags. Check for
37 --enable-build-with-cxx. Set and substitute
38 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
39 * Makefile.in (CXXFLAGS): New variable.
40 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
41 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
42 the default is the same as $(STRICT_WARN).
43 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
44 (CXX): New variable.
45 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
46 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
47 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
48 (HOST_LIBS): New variable.
49 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
50 (ALL_CXXFLAGS): New variable.
51 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
52 * doc/install.texi (Configuration): Document
53 --enable-build-with-cxx, --with-stage1-ldflags,
54 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
55 * configure: Rebuild.
56
9df5bfe4
RR
572009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
58
59 * config/arm/arm.c (arm_override_options): Fix braces and formatting from previous
60 commit.
61
73267076
ILT
622009-06-23 Ian Lance Taylor <iant@google.com>
63
64 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
65
9a476c9c
ILT
662009-06-23 Ian Lance Taylor <iant@google.com>
67
68 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
69 with ATTRIBUTE_UNUSED.
70
cacf1ca8
MM
712009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
72 Pat Haugen <pthaugen@us.ibm.com>
73 Revital1 Eres <ERES@il.ibm.com>
74
75 * config.in (HAVE_AS_POPCNTD): Add default definition.
76 (HAVE_AS_LWSYNC): Ditto.
77
78 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
79 release number.
80 (gcc_cv_as_powerpc_cmpb): Ditto.
81 (gcc_cv_as_powerpc_dfp): Ditto.
82 (gcc_cv_as_powerpc_vsx): Ditto.
83 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
84 supporting the popcntd/lwsync instructions.
85 (gcc_cv_as_powerpc_lwsync): Ditto.
86 * configure: Regenerate.
87
88 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
89 -mcpu=native and -mcpu=power7.
90 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
91
92 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
93 a variable instead of a mask to reduce the number of mask bits.
94 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
95 (-mbit-word): Ditto.
96 (-mregnames): Ditto.
97 * config/rs6000/rs6000.opt (-mupdate): Ditto.
98 (-mfused-madd): Ditto.
99
100 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
101 2.06 instructions.
102 (-mvsx): New switch for VSX instructions.
103 (-misel): Move from a variable to a mask to allow it to be set by
104 -mcpu=.
105
106 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
107 function declaration to an array declaration.
108 (rs6000_hard_regno_nregs): New external array declaration.
109
110 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
111 files included by rs6000.md.
112
113 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
114 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
115
116 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
117 a target mask.
118 (rs6000_debug_reg): New -mdebug= variables.
119 (rs6000_debug_addr): Ditto.
120 (rs6000_debug_cost): Ditto.
121 (rs6000_pmode): New variable to hold Pmode.
122 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
123 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
124 calculated at compiler start.
125 (rs6000_hard_regno_nregs): Change function to an array which holds
126 HARD_REGNO_NREGS calculated at compiler start.
127 (rs6000_explicit_options): Delete isel field.
128 (rs6000_vector_unit): New array to hold which vector unit
129 supports arithmetic options for a given type.
130 (rs6000_vector_mem): New array to hold which vector unit supports
131 memory reference operations for a given type.
132 (rs6000_vector_align): New array to given the alignment of each
133 vector type.
134 (power7_cost): New basic costs for power7.
135 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
136 (rs6000_hard_regno_nregs_internal): New function, moved from
137 HARD_REGNO_NREGS, to calculate the number of registers each hard
138 register takes for each type.
139 (rs6000_debug_reg_print): New function for -mdebug=reg support.
140 (rs6000_debug_vector_unit): New array, map rs6000_vector to
141 string.
142 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
143 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
144 unit information here so it is calculated once at compiler startup
145 time.
146 (rs6000_override_options): Make -misel a target mask. Add more
147 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
148 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
149 -mdebug=cost.
150 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
151 (rs6000_handle_option): Move -misel from variable to target mask.
152 (rs6000_builtin_mask_for_load): Add VSX support.
153 (rs6000_conditional_register_usage): Ditto.
154 (USE_ALTIVEC_FOR_ARG_P): Ditto.
155 (function_arg_boundary): Ditto.
156 (rs6000_expand_builtin): Ditto.
157 (def_builtin): Make abort message a little friendlier.
158 (rs6000_emit_int_cmove): Add support for 64-bit isel.
159
160 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
161 assembler support the popcntd instruction instead of a vsx
162 instruction to enable power7 support.
163 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
164 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
165 option to the assembler if -mcpu=native.
166 (ASM_CPU_NATIVE_SPEC): Ditto.
167 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
168 ISA 2.06 features.
169 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
170 the lwsync instruction.
171 (enum processor_type): Add PROCESSOR_POWER7.
172 (rs6000_debug_reg): New -mdebug= options.
173 (rs6000_debug_addr): Ditto.
174 (rs6000_debug_cost): Ditto.
175 (rs6000_isel): Delete.
176 (enum rs6000_vector): New enum to say what vector unit we have.
177 (VECTOR_UNIT_*): New macros to say which vector unit has
178 arithmetic operations for a given type.
179 (VECTOR_MEM_*): New macros to say which vector unit has memory
180 operations for a given type.
181 (TARGET_LDBRX): Whether the machine supports the ldbrx
182 instruction.
183 (TARGET_ISEL): Delete, -misel moved to be a mask.
184 (TARGET_ISEL64): New macro for 64-bit isel support.
185 (UNITS_PER_VSX_WORD): New macro.
186 (POINTER_SIZE): Move to be an external variable, rather than
187 calculating whether we are generating 32 ot 64-bit code.
188 (Pmode): Ditto.
189 (STACK_BOUNDARY): Add VSX support.
190 (LOCAL_ALIGNMENT): Ditto.
191 (SLOW_UNALIGNED_ACCESS): Ditto.
192 (VSX_REGNO_P): New macro for VSX support.
193 (VFLOAT_REGNO_P): Ditto.
194 (VINT_REGNO_P): Ditto.
195 (VLOGICAL_REGNO_P): Ditto.
196 (VSX_VECTOR_MODE): Ditto.
197 (VSX_SCALAR_MODE): Ditto.
198 (VSX_MODE): Ditto.
199 (VSX_MOVE_MODE): Ditto.
200 (VSX_REG_CLASS_P): Ditto.
201 (HARD_REGNO_NREGS): Instead of calling a function, use an array
202 lookup.
203 (UNITS_PER_SIMD_WORD): Add VSX support.
204 (MODES_TIEABLE_P): Ditto.
205 (STARTING_FRAME_OFFSET): Ditto.
206 (STACK_DYNAMIC_OFFSET): Ditto.
207 (EPILOGUE_USES): Ditto.
208 (REGNO_REG_CLASS): Move to array lookup.
209 (CLASS_MAX_NREGS): Ditto.
210 (rs6000_vector_reg_class): Add declaration.
211 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
212 overlap with the floating point and Altivec registers.
213
214 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
215
216 * config/rs6000/driver-rs6000.c (asm_names): New static array to
217 give the appropriate asm switches if -mcpu=native.
218 (host_detect_local_cpu): Add support for "asm".
219 (host_detect_local_cpu): Follow GNU code guidelines for name.
220
221 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
222 -mbit-word to a variable instead of being a target mask.
223
224 * config/rs6000/sync.md (lwsync): If the assembler supports it,
225 emit the lwsync instruction instead of emitting the instruction as
226 an integer constant.
227
228 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
229 fixuns_trundfsi2, move expander into rs6000.md.
230
231 * config/rs6000/rs6000.md (cpu): Add power7.
232 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
233 (logical predicate patterns): Change the single instruction
234 primitives that set CR0 to be fast_compare instead of compare.
235 (norsi*): Ditto.
236 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
237 (popcntddi2): Ditto.
238 (popcount<mode>): Ditto.
239 (floating multiply/add insns): Name the floating point
240 multiply/add insns.
241 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
242 (isel_unsigned_<mode>): Ditto.
243 (fixuns_trundfsi2): Move expander here from spe.md.
244 (smindi3): Define if we have -misel on 64-bit systems.
245 (smaxdi3): Ditto.
246 (umindi3): Ditto.
247 (umaxdi3): Ditto.
248
59ab92d2
AS
2492009-06-23 Anatoly Sokolov <aesok@post.ru>
250
251 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
252 extra_objs.
253 * config/avr/avr.c (avr_current_device): New variable.
254 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
255 (avr_arch, mcu_type_s): Move to avr.h.
256 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
257 default_data_section_start fields.
258 (avr_arch): Moved from avr.c.
259 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
260 library_name fields.
261 (avr_current_device, avr_mcu_types, avr_arch_types,
262 avr_device_to_arch, avr_device_to_data_start,
263 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
264 (EXTRA_SPEC_FUNCTIONS): Define.
265 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
266 options mapping. Use device_to_arch and device_to_data_start insted.
267 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
268 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
269 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
270 * config/avr/driver-avr.c: New file.
271 * config/avr/avr-devices.c: New file.
272
8593e0b6
JJ
2732009-06-23 Jakub Jelinek <jakub@redhat.com>
274
7eb3f1f7
JJ
275 * var-tracking.c (unshare_variable): Force initialized to
276 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
277 (set_variable_part): Likewise.
278 (struct variable_union_info): Remove pos_src field.
279 (vui_vec, vui_allocated): New variables.
280 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
281 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
282 == 1 use a simpler sorting algorithm. Compute pos field right
283 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
284 Avoid quadratic comparison if !flag_var_tracking_uninit.
285 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
286 unshare_variable unconditionally.
287 (dataflow_set_different_2): Removed.
288 (dataflow_set_different): Don't traverse second hash table.
289 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
290 unconditionally to var_reg_set or var_mem_set.
291 (emit_notes_in_bb): Likewise.
292 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
293 unshare_variable.
294 (emit_note_insn_var_location): Don't set initialized to
295 VAR_INIT_STATUS_INITIALIZED early.
296 (vt_finalize): Free vui_vec if needed, clear vui_vec and
297 vui_allocated.
298 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
299
8593e0b6
JJ
300 * tree-object-size.c (addr_object_size): Instead of checking
301 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
302 are no FIELD_DECLs following it.
303
fef015a8
AK
3042009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
305
306 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
307 order to match bswaps with signed source operands.
308
b6d83244
RO
3092009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
310
311 * sdbout.c (sdbout_one_type): Fix braces in switch.
312
0bbf2ffa
RG
3132009-06-23 Richard Guenther <rguenther@suse.de>
314
315 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
316 member.
317 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
318 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
319 var_callused, callused_tree, var_storedanything, storedanything_tree,
320 var_integer, integer_tree): Remove global variables.
321 (new_var_info): Do not pass new id, append the new var to the
322 global variable vector.
323 (do_ds_constraint): Use is_global_var member of the variable-info.
324 (new_scalar_tmp_constraint_exp): Adjust.
325 (create_function_info_for): Likewise.
326 (create_variable_info_for): Likewise.
327 (find_what_var_points_to): Remove dead code.
328 (init_base_vars): Simplify.
329 (compute_points_to_sets): Adjust.
330
28a5fb2e
AN
3312009-06-22 Adam Nemet <anemet@caviumnetworks.com>
332
333 * combine.c (try_combine): Dump information about the insns we're
334 combining.
335
cfb8805e
AN
3362009-06-22 Adam Nemet <anemet@caviumnetworks.com>
337
338 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
339 check when calling force_to_mode on TRUNCATE's operand.
340
df4ba119
ILT
3412009-06-22 Ian Lance Taylor <iant@google.com>
342
343 * config/rs6000/rs6000.opt: Move msched-epilog before
344 msched-prolog.
345
c986683b
SB
3462009-06-22 Steven Bosscher <steven@gcc.gnu.org>
347
348 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
349
5c6927bd
RW
3502009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
351
352 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
353 override library linkage flags such as -static-libgcc or
354 -shared-libgcc.
355
19973be2
MK
3562009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
357
358 * config/m68k/m68k-devices.def: Add line for MCF5221x.
359
7a5d2eb8
ILT
3602009-06-22 Ian Lance Taylor <iant@google.com>
361
362 * config/linux.opt: Put mglibc ahead of muclibc.
363
364 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
365 for duplicate decls.
366
86e3c83a
MK
3672009-06-22 Matthias Klose <doko@ubuntu.com>
368
369 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
370
0a7d7dea
MK
3712009-06-22 Steven Bosscher <steven@gcc.gnu.org>
372
373 PR objc/28050
374 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
375 instead of NULL if a parser error occurs.
376
a77264d5
RO
3772009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
378
379 * dwarf2out.c (dwarf2_debug_hooks): Initialize
380 non-DWARF2_DEBUGGING_INFO version.
381
54f549af
KT
3822009-06-22 Kai Tietz <kai.tietz@onevision.com>
383
34481f28
UB
384 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
385 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
386
387 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
54f549af
KT
388 (LIBGCC2_TF_CEXT): Define.
389 (TF_SIZE): Define.
390
7cea01df
RR
3912009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
392
393 PR target/40463
394 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
395
3ce14752
RR
3962009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
397
34481f28
UB
398 * config/arm/arm.c (arm_override_options): Disable
399 -mcaller-super-interworking and -mcallee-super-interworking.
400 * doc/invoke.texi (ARM Options): Document this.
3ce14752 401
d58bc084
NS
4022009-06-22 Nathan Sidwell <nathan@codesourcery.com>
403
404 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
405 * config/arm/constraints.md (j): New constraint for movw operands.
406 (N): Remove thumb2 meaning.
407 * config/arm/arm.md (*arm_movw): Delete.
408 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
409 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
410 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
411
ac6cb60c
MJ
4122009-06-22 Martin Jambor <mjambor@suse.cz>
413
414 PR tree-optimization/40492
415 * tree-sra.c (sra_modify_assign): Pass zero offsets to
416 build_ref_for_offset.
417
481683e1
SZ
4182009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
419
420 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
421 JUMP_TABLE_DATA_P predicates where applicable.
422 * auto-inc-dec.c: Ditto.
423 * builtins.c: Ditto.
424 * caller-save.c: Ditto.
425 * calls.c: Ditto.
426 * cfgcleanup.c: Ditto.
427 * cfglayout.c: Ditto.
428 * cfgrtl.c: Ditto.
429 * combine.c: Ditto.
430 * combine-stack-adj.c: Ditto.
431 * cse.c: Ditto.
432 * cselib.c: Ditto.
433 * dbxout.c: Ditto.
434 * df-scan.c: Ditto.
435 * dse.c: Ditto.
436 * dwarf2asm.c: Ditto.
437 * dwarf2out.c: Ditto.
438 * emit-rtl.c: Ditto.
439 * except.c: Ditto.
440 * explow.c: Ditto.
441 * expmed.c: Ditto.
442 * expr.c: Ditto.
443 * final.c: Ditto.
444 * function.c: Ditto.
445 * fwprop.c: Ditto.
446 * gcse.c: Ditto.
447 * genpreds.c: Ditto.
448 * genrecog.c: Ditto.
449 * ifcvt.c: Ditto.
450 * ira-costs.c: Ditto.
451 * ira-lives.c: Ditto.
452 * jump.c: Ditto.
453 * loop-iv.c: Ditto.
454 * lower-subreg.c: Ditto.
455 * modulo-sched.c: Ditto.
456 * optabs.c: Ditto.
457 * postreload.c: Ditto.
458 * print-rtl.c: Ditto.
459 * recog.c: Ditto.
460 * reginfo.c: Ditto.
461 * regmove.c: Ditto.
462 * reload1.c: Ditto.
463 * reload.c: Ditto.
464 * reorg.c: Ditto.
465 * rtlanal.c: Ditto.
466 * rtl.c: Ditto.
467 * sched-vis.c: Ditto.
468 * sdbout.c: Ditto.
469 * sel-sched-ir.c: Ditto.
470 * simplify-rtx.c: Ditto.
471 * targhooks.c: Ditto.
472 * var-tracking.c: Ditto.
473 * vmsdbgout.c: Ditto.
474
1407d6cf
MK
4752009-06-22 Matthias Klose <doko@ubuntu.com>
476
477 * Makefile.in (install-plugin): Always use DESTDIR.
478
28326880
OH
4792009-06-22 Olivier Hainque <hainque@adacore.com>
480
481 * config/pa/pa.c (output_call): Don't optimize post call jumps
482 into return address adjustments if the call may throw.
483
907dd0c7
RE
4842009-06-21 Richard Earnshaw <rearnsha@arm.com>
485
486 * arm.c (thumb1_output_casesi): New function.
487 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
488 optimizing for size or PIC.
489 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
490 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
491 (casesi): Handle Thumb-1 when optimizing for size or PIC.
492 (thumb1_casesi_internal_pic): New expand rule.
493 (thumb1_casesi_dispatch): New pattern.
494 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
495 thumb-1 mode.
496 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
497 in the text seciton when PIC or optimizing for size.
498 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
499 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
500 preservation properties of code.
501 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
502 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
503 (__gnu_thumb1_case_si): New function.
504 * t-arm (LIB1ASMSRC): Define here.
505 (LIB1ASMFUNCS): Add some common functions.
506 * t-arm-elf (LIB1ASMSRC): Delete.
507 (LIB1ASMFUNCS): Append to existing set.
508 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
509 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
510 * t-symbian (LIB1ASMFUNCS): Likewise.
511 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
512 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
513
2cee1509
RG
5142009-06-21 Richard Guenther <rguenther@suse.de>
515
516 PR tree-optimization/38729
517 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
518 to loops with a single exit if -fno-expensive-optimizations.
519
d24686d7
JJ
5202009-06-21 Jakub Jelinek <jakub@redhat.com>
521
522 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
523 (dataflow_set): Change vars type from htab_t to shared_hash.
524 (shared_hash_pool, empty_shared_hash): New variables.
525 (vars_clear): Removed.
526 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
527 shared_hash_find_slot_unshare, shared_hash_find_slot,
528 shared_hash_find_slot_noinsert, shared_hash_find): New
529 static inlines.
530 (shared_hash_unshare, shared_hash_destroy): New functions.
531 (unshare_variable): Unshare set->vars if shared, use
532 shared_hash_htab.
533 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
534 (get_init_value, find_src_set_src, dump_dataflow_set,
535 clobber_variable_part, emit_notes_for_differences): Use
536 shared_hash_htab.
537 (dataflow_set_init): Remove second argument, set vars to
538 empty_shared_hash instead of creating a new htab.
539 (dataflow_set_clear): Call shared_hash_destroy and set vars
540 to empty_shared_hash instead of calling vars_clear.
541 (dataflow_set_copy): Don't call vars_copy, instead just share
542 the src htab with dst.
543 (variable_union): Use shared_hash_*, use initially NO_INSERT
544 lookup if set->vars is shared. Don't keep slot cleared before
545 calling unshare_variable. Unshare set->vars if needed.
546 Even ->refcount == 1 vars must be unshared if set->vars is shared
547 and var needs to be modified.
548 (variable_canonicalize): New function.
549 (dataflow_set_union): If dst->vars is empty, just share src->vars
550 with dst->vars and traverse with variable_canonicalize to canonicalize
551 and unshare what is needed.
552 (dataflow_set_different): If old_set and new_set use the same shared
553 htab, they aren't different. If number of htab elements is different,
554 htabs are different. Use shared_hash_*.
555 (dataflow_set_destroy): Call shared_hash_destroy instead of
556 htab_delete.
557 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
558 second argument to dataflow_set_init.
559 (vt_initialize): Likewise. Initialize shared_hash_pool and
560 empty_shared_hash, move bb in/out initialization afterwards.
561 Use variable_htab_free instead of NULL as changed_variables del hook.
562 (variable_was_changed): Change type of second argument to pointer to
563 dataflow_set. When inserting var into changed_variables, bump
564 refcount. Unshare set->vars if set is shared htab and slot needs to
565 be cleared.
566 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
567 lookup if set->vars is shared. Unshare set->vars if needed.
568 Even ->refcount == 1 vars must be unshared if set->vars is shared
569 and var needs to be modified. Adjust variable_was_changed caller.
570 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
571 vars must be unshared if set->vars is shared and var needs to be
572 modified. Adjust variable_was_changed caller.
573 (emit_note_insn_var_location): Don't pool_free var.
574 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
575 instead of 1.
576 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
577 free_alloc_pool on shared_hash_pool.
578
525b459f
AG
5792009-06-20 Anthony Green <green@moxielogic.com>
580
581 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
582 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
583
825be69e
RG
5842009-06-20 Richard Guenther <rguenther@suse.de>
585
586 * tree-ssa-structalias.c (find_func_aliases): For memset use
587 a constraint from NULL if we memset to zero.
588 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
589 we explicitly handle that do not read from memory.
590 (call_may_clobber_ref_p_1): Properly handle builtins that may
591 set errno.
592
b14e9388
RG
5932009-06-20 Richard Guenther <rguenther@suse.de>
594
595 PR tree-optimization/40495
596 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
597 (new_scalar_tmp_constraint_exp): New function.
598 (process_constraint): Do not create temporary decls.
599 (process_all_all_constraints): Likewise.
600 (handle_const_call): Likewise.
601 (create_function_info_for): Do not set decl.
602
c885ca89
ILT
6032009-06-19 Ian Lance Taylor <iant@google.com>
604
605 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
606 (rs6000_attribute_table): Make static; move before use.
607
6569d386
EB
6082009-06-19 Eric Botcazou <ebotcazou@adacore.com>
609
610 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
611 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
612 Propagate the TREE_READONLY flag without overwriting it.
613 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
614 Propagate the TREE_READONLY flag onto the result.
615 (process_call_operands): Move around. Use correct constant value.
616
ce41c38b
RR
6172009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
618
619 PR target/40482
620 * config/arm/arm.c (thumb_shiftable_const): Truncate val to
621 32 bits.
622 * config/arm/arm.md: Likewise.
623
d130ae11
ILT
6242009-06-19 Ian Lance Taylor <ian@airs.com>
625
626 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
627 to GIMPLE_ERROR_MARK.
628
629 * c-typeck.c (build_conditional_expr): Add op1_original_type and
630 op2_original_type parameters. Warn about using different enum
631 types.
632 * c-parser.c (c_parser_conditional_expression): Pass original
633 types to build_conditional_expr.
634 * c-tree.h (build_conditional_expr): Update declaration.
635
d4aa4f4b
ILT
6362009-06-19 Ian Lance Taylor <iant@google.com>
637
638 * config/i386/i386.c (ix86_function_specific_save): Test that
639 fields match values, rather than testing the values are in a
640 certain range.
641
779704e7
RG
6422009-06-19 Richard Guenther <rguenther@suse.de>
643
644 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
645 ADDR_EXPR pointers.
646 (ptr_derefs_may_alias_p): Likewise.
647 (ptr_deref_may_alias_ref_p_1): New function.
648 (ptr_deref_may_alias_ref_p): Likewise.
649 (ref_maybe_used_by_call_p_1): Handle builtins that are not
650 covered by looking at the ESCAPED solution.
651 (call_may_clobber_ref_p_1): Likewise.
652 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
653 Handle NULL_TREE offset. Do not produce redundant constraints.
654 (process_all_all_constraints): New helper function.
655 (do_structure_copy): Use it.
656 (handle_lhs_call): Likewise.
657 (find_func_aliases): Handle some builtins with pointer arguments
658 and/or return values explicitly.
659
217655da
ILT
6602009-06-19 Ian Lance Taylor <iant@google.com>
661
662 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
663
50ae5fea
ILT
6642009-06-19 Ian Lance Taylor <iant@google.com>
665
666 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
667
642324bb
ILT
6682009-06-19 Ian Lance Taylor <iant@google.com>
669
670 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
671 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
672 version.
673
674 * c-decl.c (finish_decl): If -Wc++-compat, warn about
675 uninitialized const.
676
dc491a25
ILT
6772009-06-19 Ian Lance Taylor <iant@google.com>
678
679 * dse.c (struct store_info): Rename bitmap field to bmap. Change
680 all uses.
681
682 * c-decl.c (in_struct, struct_types): Remove.
683 (struct c_binding): Add in_struct field.
684 (c_binding_ptr): Define type, along with VEC.
685 (struct c_struct_parse_info): Define.
686 (struct_parse_info): New static variable.
687 (bind): Initialize in_struct field.
688 (start_struct): Remove enclosing_in_struct and
689 enclosing_struct_types parameters. Add
690 enclosing_struct_parse_info parameter. Change all callers. Set
691 struct_parse_info rather than in_struct and struct_types.
692 (grokfield): If -Wc++-compat and there is a symbol binding for the
693 field name, set the in_struct flag and push it on the
694 struct_parse_info->fields vector.
695 (warn_cxx_compat_finish_struct): New static function.
696 (finish_struct): Remove enclosing_in_struct and
697 enclosing_struct_types parameters. Add
698 enclosing_struct_parse_info parameter. Change all callers. Don't
699 set C_TYPE_DEFINED_IN_STRUCT here. Call
700 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
701 parameter. Only push on struct_types if warn_cxx_compat.
702 (finish_enum): Only push on struct_types if warn_cxx_compat.
703 (declspecs_add_type): Add loc parameter. Change all callers.
704 Change all error calls to error_at. Pass loc, not input_location,
705 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
706 defined in a struct. If -Wc++-compat and parsing a struct, record
707 that a typedef name was used.
708 * c-parser.c (c_parser_declspecs): Get location to pass to
709 declspecs_add_type.
710 (c_parser_struct_or_union_specifier): Update calls to start_struct
711 and finish_struct.
712 * c-tree.h (struct c_struct_parse_info): Declare.
713 (finish_struct, start_struct): Update declarations.
714 (declspecs_add_type): Update declaration.
715
88eeff6f
ILT
7162009-06-19 Ian Lance Taylor <iant@google.com>
717
718 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
719 variable with an anonymous type.
720
28a876a4
UB
7212009-06-19 Uros Bizjak <ubizjak@gmail.com>
722
723 * see.c: Remove for real.
724
dc6707b8
UB
7252009-06-19 Uros Bizjak <ubizjak@gmail.com>
726
727 * optabs.h (enum optab_index): Add new OTI_significand.
728 (significand_optab): Define corresponding macro.
729 * optabs.c (init_optabs): Initialize significand_optab.
730 * genopinit.c (optabs): Implement significand_optab using
731 significand?f2 patterns.
732 * builtins.c (expand_builtin_mathfn): Handle
733 BUILT_IN_SIGNIFICAND{,F,L}.
734 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
735 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
736
737 * config/i386/i386.md (significandxf2, significand<mode>2): New
738 expanders to implement significandf, significand and significandl
739 built-ins as inline x87 intrinsics.
740
dd26af70
AS
7412009-06-18 Anatoly Sokolov <aesok@post.ru>
742
743 * config/avr/avr.c (avr_override_options): Remove setting value of
744 PARAM_INLINE_CALL_COST.
745
394bd84d
RH
7462009-06-18 Richard Henderson <rth@redhat.com>
747
748 PR 40488
749 * tree-pass.h (TDF_ASMNAME): New.
750 * tree-dump.c (dump_options): Add asmname.
751 * doc/invoke.texi: Document it.
752
753 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
754 (dump_decl_name): ...here.
755 (dump_function_name): New flags arg; mind TDF_ASMNAME.
756 (dump_generic_node): Update dump_function_name calls.
757 (print_call_name): New flags arg; update all dump calls.
758 * diagnostic.h (print_call_name): Update.
759 * gimple-pretty-print.c (dump_gimple_call): Update.
760
2a457a9b
L
7612009-06-18 H.J. Lu <hongjiu.lu@intel.com>
762
763 PR target/40470
764 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
765
fca5bb5c
DN
7662009-06-18 Diego Novillo <dnovillo@google.com>
767
768 * doc/plugins.texi: Document plugin_is_GPL_compatible.
769 * plugin.c (str_license): Declare.
770 (try_init_one_plugin): Assert that the symbol
771 'plugin_is_GPL_compatible' exists.
772
b6680d72
SD
7732009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
774
775 * see.c: Remove.
776 * Makefile.in (OBJS-common): Remove see.o.
777 (see.o): Remove.
778 * common.opt (fsee): Mark as preserved for backward compatibility.
779 * opts.c (common_handle_option): Add OPT_fsee to the backward
780 compatibility section.
781 * passes.c (init_optimization_passes, pass_see): Remove pass.
782 * timevar.def (TV_SEE): Remove.
783 * tree-pass.h (pass_see): Remove declaration.
784 * doc/invoke.texi (-fsee): Remove documentation.
b6680d72 785
2a45675f
MJ
7862009-06-18 Martin Jambor <mjambor@suse.cz>
787
788 * tree-sra.c: Include statistics.h
789 (sra_stats): New variable.
790 (sra_initialize): Clear sra_stats.
791 (create_access_replacement): Increment sra_stats.replacements.
792 (get_access_replacement): Do not return twice.
793 (analyze_all_variable_accesses): Increment statistics counter by the
794 number of scalarized aggregates.
795 (generate_subtree_copies): Increment sra_stats.subtree_copies.
796 (sra_modify_expr): Increment sra_stats.exprs.
797 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
798 (sra_modify_assign): Increment sra_stats.exprs,
799 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
800 (perform_intra_sra): Update statistics counters.
801 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
802
bdc4827b
SL
8032009-06-18 Sandra Loosemore <sandra@codesourcery.com>
804
805 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
806 (arm_scalar_mode_supported_p): New function.
807
d9dd51dc
PB
8082009-06-18 Paul Brook <paul@codesourcery.com>
809 Sandra Loosemore <sandra@codesourcery.com>
810
811 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
812 (__extendhfsf2, __truncsfhf2): Define.
813 * config/arm/fp16.c: New file.
814 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
815 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
816
0fd8c3ad
SL
8172009-06-18 Sandra Loosemore <sandra@codesourcery.com>
818
819 * doc/extend.texi (Half-Precision): New section.
820 * doc/invoke.texi (Option Summary): List -mfp16-format.
821 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
822 * config/arm/arm.opt (mfp16-format=): New.
823 * config/arm/arm.c: Include intl.h.
824 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
825 (TARGET_INVALID_RETURN_TYPE): Redefine.
826 (TARGET_PROMOTED_TYPE): Redefine.
827 (TARGET_CONVERT_TO_TYPE): Redefine.
828 (arm_fp16_format): Define.
829 (all_fpus): Add entry for neon-fp16.
830 (fp_model_for_fpu): Likewise.
831 (struct fp16_format): Declare.
832 (all_fp16_formats): Define.
833 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
834 functions.
835 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
836 and no ldrh.
837 (arm_legitimate_index_p): Treat HFmode like HImode.
838 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
839 (coproc_secondary_reload_class): Special-case HFmode.
840 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
841 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
842 (arm_init_fp16_builtins): New.
843 (arm_init_builtins): Call it.
844 (arm_invalid_parameter_type): New.
845 (arm_invalid_return_type): New.
846 (arm_promoted_type): New.
847 (arm_convert_to_type).
848 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
849 format.
850 (arm_emit_fp16_const): New function.
851 (arm_mangle_type): Mangle __fp16 as "Dh".
852 * config/arm/arm.h (TARGET_VFPD32): Make it know about
853 FPUTYPE_NEON_FP16.
854 (TARGET_NEON_FP16): New.
855 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
856 (enum fputype): Add FPUTYPE_NEON_FP16.
857 (enum arm_fp16_format_type): Declare.
858 (arm_fp16_format): Declare.
859 (LARGEST_EXPONENT_IS_NORMAL): Define.
860 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
861 * config/arm/arm-modes.def (HFmode): Define.
862 * config/arm/vfp.md: (*movhf_vfp): New.
863 (extendhfsf2): New.
864 (truncsfhf2): New.
865 * config/arm/arm.md: (fpu): Add neon_fp16.
866 (floatsihf2, floatdihf2): New.
867 (fix_trunchfsi2, fix_trunchfdi2): New.
868 (truncdfhf2): New.
869 (extendhfdf2): New.
870 (movhf): New.
871 (*arm32_movhf): New.
872 (*thumb1_movhf): New.
873 (consttable_2): Add check for HFmode constants.
874 (consttable_4): Handle HFmode constants.
875
2c2f70e1
UB
8762009-06-18 Uros Bizjak <ubizjak@gmail.com>
877
878 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
879
db4fa1c1
OH
8802009-06-17 Olivier Hainque <hainque@adacore.com>
881
882 * collect2.c (main): Use CONST_CAST2 to perform char ** to
883 const char ** conversion in AIX specific section.
884
6bec4135
L
8852009-06-17 H.J. Lu <hongjiu.lu@intel.com>
886
887 * config/i386/i386.c (ix86_special_builtin_type): Remove
888 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
889 (bdesc_special_args): Updated.
890 (ix86_init_mmx_sse_builtins): Likewise.
891 (ix86_expand_special_args_builtin): Likewise.
892
958d6d58
RH
8932009-06-17 Richard Henderson <rth@redhat.com>
894
895 * tree-pretty-print.c (maybe_dump_asm_name): New.
896 (dump_decl_name): Use it.
897 (PRINT_FUNCTION_NAME): Merge into...
898 (dump_function_name): ... here. Use maybe_dump_asm_name.
899
ed5ef2e4
CC
9002009-06-17 Cary Coutant <ccoutant@google.com>
901
902 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
903 Change caller.
904 * debug.c (struct gcc_debug_hooks): Change placeholder for
905 source_line hook.
906 (debug_nothing_int_charstar_int): Replaced by...
907 (debug_nothing_int_charstar_int_bool): ...this.
908 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
909 source_line prototype.
910 (debug_nothing_int_charstar_int): Replaced by...
911 (debug_nothing_int_charstar_int_bool): ...this.
912 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
913 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
914 Output is_stmt operand when necessary.
01a0acb7 915 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
916 (notice_source_line): Add is_stmt parameter.
917 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
918 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
919 Change callers.
920 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
921 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
922
b0f43ca0
ILT
9232009-06-17 Ian Lance Taylor <iant@google.com>
924
925 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
926 Change all uses.
927 (struct store_by_pieces_d): Rename from store_by_pieces. Change
928 call uses.
929
23314e77
AN
9302009-06-17 Adam Nemet <anemet@caviumnetworks.com>
931
932 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
933 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
934 tree_strip_sign_nop_conversions and
935 tree_ssa_strip_useless_type_conversions rather than stripping
936 the operations here.
937 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
938 Declare them.
939 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
940 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
941 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
942 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
943 functions.
944
799dbb0f
ME
9452009-06-17 Michael Eager <eager@eagercon.com>
946
c637b0fa
UB
947 * config/rs6000/constraints.md (register_constraint "d"): New.
948 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
949 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
950 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
951 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
952 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
953 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
954 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
955 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
956 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
957 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
958 __fctiwz): Same.
959 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
960 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
961 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
962 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
963 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
964 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
965 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
966 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
967 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
968 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
969 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
970 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
971 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
972 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
973
1469de3c
ILT
9742009-06-16 Ian Lance Taylor <iant@google.com>
975
976 * profile.c (total_num_never_executed): Don't define.
977 (compute_branch_probabilities): Don't count or print
978 num_never_executed.
979 (init_branch_prob): Don't set total_num_never_executed.
980 (end_branch_prob): Don't print total_num_never_executed.
981
2cb0a60d
DD
9822009-06-17 David Daney <ddaney@caviumnetworks.com>
983
c637b0fa 984 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 985
82882240
DE
9862009-06-17 David Edelsohn <edelsohn@gnu.org>
987
988 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
989 (nabstd2_fpr): Same.
990
a1a65f89
SE
9912009-06-17 Steve Ellcey <sje@cup.hp.com>
992
993 * expr.c (expand_assignment): Change complex type check.
994
07ae5620
BS
9952009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
996
997 * doc/plugins.texi (Building GCC plugins): Added new section.
998
5eb4df45
ILT
9992009-06-17 Ian Lance Taylor <iant@google.com>
1000
1001 * c-pch.c (get_ident): Don't set size of templ array.
1002 (pch_init): Don't set size of partial_pch array.
1003
1004 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
1005 string constant to intialize an array whose size is the length of
1006 the string.
1007
4d61856d
RG
10082009-06-17 Richard Guenther <rguenther@suse.de>
1009
1010 PR tree-optimization/40389
1011 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
1012 to addressable types.
1013 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
1014
3cb8677c
RG
10152009-06-17 Richard Guenther <rguenther@suse.de>
1016
1017 PR middle-end/40460
1018 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
1019 if there is no evolution of left in the loop bail out.
1020 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
1021 chrec_fold_multiply.
1022
a4d99c86
R
10232009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
1024 Janis Johnson <janis187@us.ibm.com>
1025
1026 PR target/39254
1027 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
1028 for the symbol ref of a constant that is the source of a move
1029 - nor for any other not-obvious-label-ref constants.
1030
8dd1bca0
OR
10312009-06-16 Olatunji Ruwase <tjruwase@google.com>
1032
1469de3c 1033 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
1034 traversal to avoid repeated insertion.
1035
8019538f
ILT
10362009-06-16 Ian Lance Taylor <iant@google.com>
1037
1038 * vec.h (VEC_stack_alloc): Define different version if
1039 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
1040 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
1041 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
1042 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
1043
7c45393e
L
10442009-06-16 H.J. Lu <hongjiu.lu@intel.com>
1045
1046 * config.gcc (extra_headers): Add ia32intrin.h for x86.
1047
1048 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
1049 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
1050 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
1051 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
1052 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
1053 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 1054 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
1055 (bdesc_special_args): Add __builtin_ia32_rdtsc and
1056 __builtin_ia32_rdtscp.
1057 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
1058 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 1059 and __builtin_ia32_rorhi.
7c45393e
L
1060 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
1061 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 1062 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
1063 (ix86_expand_args_builtin): Likewise.
1064 (ix86_expand_special_args_builtin): Likewise.
1065
1066 * config/i386/i386.md (UNSPECV_RDTSCP): New.
1067 (UNSPECV_RDTSC): Likewise.
1068 (UNSPECV_RDPMC): Likewise.
c637b0fa 1069 (*bsr): Renamed to ...
7c45393e 1070 (bsr): This
c637b0fa 1071 (*bsr_rex64): Renamed to ...
7c45393e
L
1072 (bsr_rex64): This.
1073 (rdpmc): New.
1074 (*rdpmc): Likewise.
1075 (*rdpmc_rex64): Likewise.
1076 (rdtsc): Likewise.
1077 (*rdtsc): Likewise.
1078 (*rdtsc_rex64): Likewise.
1079 (rdtscp): Likewise.
1080 (*rdtscp): Likewise.
1081 (*rdtscp_rex64): Likewise.
1082
1083 * config/i386/ia32intrin.h: New.
1084
1085 * config/i386/x86intrin.h: Include <ia32intrin.h>.
1086
504b33d8
ILT
10872009-06-16 Ian Lance Taylor <iant@google.com>
1088
1089 * ira-build.c (copy_info_to_removed_store_destinations):
1090 Initialize parent_a.
1091
f9551830
ILT
10922009-06-16 Ian Lance Taylor <iant@google.com>
1093
1094 * c-decl.c (grokdeclarator): Change size_varies to bool.
1095
c32e2175
ILT
10962009-06-16 Ian Lance Taylor <iant@google.com>
1097
1098 * sel-sched.c: Make forward declarations of move_op_hooks and
1099 fur_hooks explicitly extern.
1100
415a06c2
ILT
11012009-06-16 Ian Lance Taylor <iant@google.com>
1102
c637b0fa 1103 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
1104 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
1105
675f99c9
ILT
11062009-06-16 Ian Lance Taylor <iant@google.com>
1107
1108 * resource.c (mark_referenced_resources): Change
1109 include_delayed_effects parameter to bool. Change all callers.
1110 (mark_end_of_function_resources): Likewise.
1111 * reorg.c (insn_references_resource_p): Likewise.
1112 (insn_sets_resource_p): Likewise.
1113 * resource.h (mark_referenced_resources): Update declaration.
1114 (mark_end_of_function_resources): Update declaration.
1115
a322799d
DE
11162009-06-16 David Edelsohn <edelsohn@gnu.org>
1117
1118 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
1119
c58c92f5
DE
11202009-06-16 David Edelsohn <edelsohn@gnu.org>
1121
1122 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
1123 GCC can bootstrap on AIX with GNU Binutils 2.20.
1124
95228603
ILT
11252009-06-16 Ian Lance Taylor <iant@google.com>
1126
1127 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
1128
9c727c9a
ILT
11292009-06-16 Ian Lance Taylor <iant@google.com>
1130
1131 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
1132 inline, not extern inline.
1133 (exact_log2): Likewise.
1134 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
1135 test CLZ_HWI.
1136 (exact_log2): Likewise, but don't test CTZ_HWI.
1137
5fd8300b
ILT
11382009-06-16 Ian Lance Taylor <iant@google.com>
1139
1140 * bitmap.c (bitmap_clear): Don't declare as inline.
1141 * gimple.c (gimplify_assign): Likewise.
1142 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1143 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
1144 (sched_scan_info): Remove duplicate definition.
1145
7d882b83
ILT
11462009-06-16 Ian Lance Taylor <iant@google.com>
1147
1148 * c-common.c (skip_evaluation): Don't define.
1149 (c_inhibit_evaluation_warnings): Define global variable.
1150 (overflow_warning): Check c_inhibit_evaluation_warnings rather
1151 than skip_evaluation.
1152 (convert_and_check, warn_for_div_by_zero): Likewise.
1153 * c-common.h (skip_evaluation): Don't declare.
1154 (c_inhibit_evaluation_warnings): Declare.
1155 * c-parser.c (c_parser_typeof_specifier): Set
1156 c_inhibit_evaluation_warnings rather than skip_evaluation.
1157 (c_parser_conditional_expression): Likewise.
1158 (c_parser_binary_expression): Likewise.
1159 (c_parser_sizeof_expression): Likewise.
1160 (c_parser_alignof_expression): Likewise.
1161 * c-typeck.c (build_indirect_ref): Check
1162 c_inhibit_evaluation_warnings rather than skip_evaluation.
1163 (build_conditional_expr, build_binary_op): Likewise.
1164
2e407842
RG
11652009-06-16 Richard Guenther <rguenther@suse.de>
1166
1167 * tree-ssa-alias.c (is_escape_site): Remove.
1168 * tree-ssa-alias.h (enum escape_type): Remove.
1169 (is_escape_site): Likewise.
1170 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
1171 via casts and asms without deferring to is_escape_site.
1172
f2ff8872
JJ
11732009-06-16 Jakub Jelinek <jakub@redhat.com>
1174
1175 PR middle-end/40446
1176 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
1177 use gen_lowpart if op0 has complex mode.
1178
de70bb20
RG
11792009-06-16 Richard Guenther <rguenther@suse.de>
1180
1181 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
1182 variables add them to ESCAPED.
c637b0fa 1183 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 1184
daa0eeb8
RAE
11852009-06-16 Rafael Avila de Espindola <espindola@google.com>
1186
1187 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
1188 make_decl_one_only.
1189
0ec19b8c
MJ
11902009-06-16 Martin Jambor <mjambor@suse.cz>
1191
1192 PR tree-optimization/40432
1193 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
1194 check whether we need to force gimple register operand.
1195
2b26b801
MJ
11962009-06-16 Martin Jambor <mjambor@suse.cz>
1197
1198 PR tree-optimization/40413
1199 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
1200 build_ref_for_offset.
1201 (propagate_subacesses_accross_link): Fix a typo in a comment.
1202
7c5222ff
IR
12032009-06-16 Ira Rosen <irar@il.ibm.com>
1204
1205 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1206 with additional parameter.
c637b0fa 1207 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
1208 vect_nested_cycle.
1209 (enum vect_relevant): Add comments.
1210 (vect_is_simple_reduction): Add new argument.
1211 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
1212 Detect nested cycles.
1213 (vect_is_simple_reduction): Update documentation, add an argument to
1214 distinguish inner-loop reduction from nested cycle, detect nested
1215 cycles, fix printings and indentation, don't swap operands in case
1216 of nested cycle.
1217 (get_initial_def_for_reduction): Handle subtraction.
1218 (vect_create_epilog_for_reduction): Add new argument to specify
1219 reduction variable.
1220 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa
UB
1221 (vectorizable_reduction): Handle nested cycles. In case of nested
1222 cycle keep track of the reduction variable position. Call
7c5222ff
IR
1223 vect_is_simple_reduction with additional parameter. Use original
1224 statement code in reduction epilogue for nested cycle. Call
1225 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
1226 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
1227 inner-loop vectorization.
7c5222ff
IR
1228 (vect_recog_widen_sum_pattern): Likewise.
1229 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
1230 and reductions.
1231 (vect_mark_stmts_to_be_vectorized): Likewise.
1232 (vect_get_vec_def_for_operand): Handle nested cycles.
1233
d376d545
RW
12342009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1235
1236 * doc/invoke.texi (Debugging Options): Fix option index entries
1237 for -fdump-statistics, -frandom-seed add entries for
1238 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
1239 (FRV Options): Fix entries for -mTLS, -mtls.
1240 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
1241 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
1242 (M68hc1x Options): Fix @itemx for -mnominmax.
1243 (MCore Options): Fix entry for -mno-lsim.
1244 (MMIX Options): Fix entry for -mabi=mmixware.
1245 (PDP-11 Options): Fix entry for -mbcopy-builtin.
1246
bd117bb6
BS
12472009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
1248
1249 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
1250 Mention the plugin mode of gengtype.
c637b0fa 1251 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
1252 * gengtype.c: Updated copyright.
1253 (plugin_files, nb_plugin_files) Added new static variables.
1254 (measure_input_list) Care about plugin_files.
1255 (write_rtx_next): Added early return in plugin mode.
1256 (create_file): Updated copyright year in generated file. Added
1257 asserts.
1258 (oprintf): Added early return if NULL outf.
1259 (get_output_file_with_visibility): Care of plugin_files.
1260 (get_output_file_name): May return null.
1261 (write_local): Added early return.
1262 (put_mangled_filename): Ditto.
1263 (finish_root_table): Added check for base_files.
1264 (write_roots): Care about null when plugins.
1265 (main): Added plugin mode.
1266
e1b7793c
ILT
12672009-06-15 Ian Lance Taylor <iant@google.com>
1268
c637b0fa 1269 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
1270 * gcov.c (read_count_file): Add braces around variables declared
1271 before label.
1272
1273 * c.opt (Wjump-misses-init): New warning.
1274 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
1275 -Wall and -Wc++-compat if not already set.
1276 (c_common_post_options): Clear warn_jump_misses_init if it was not
1277 set.
1278 * c-decl.c (struct c_binding): Change type field to a union with
1279 new label field. Make it the first field in the struct. Update
1280 references to type to use u.type instead.
1281 (struct c_spot_bindings): Define.
1282 (struct c_goto_bindings): Define.
1283 (c_goto_bindings_p): Define, along with VECs.
1284 (struct c_label_vars): Define.
1285 (struct c_scope): Add has_label_bindings field.
1286 (bind_label, set_spot_bindings): New static functions.
1287 (decl_jump_unsafe, update_spot_bindings): New static functions.
1288 (update_label_decls): New static function.
1289 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
1290 Update binding u.label field to shadowed field.
1291 (c_binding_start_stmt_expr): New function.
1292 (c_binding_end_stmt_expr): New function.
1293 (pushdecl): Don't call c_begin_vm_scope.
1294 (make_label): Add defining and p_label_vars parameters. Change
1295 all callers.
1296 (lookup_label): Correct test for whether a label has not yet been
1297 defined. Call bind_label rather than bind.
1298 (warn_about_goto): New static function.
1299 (lookup_label_for_goto): New function.
1300 (declare_label): Call bind_label rather than bind.
1301 (check_earlier_gotos): New static function.
1302 (define_label): Don't give errors about jumping into statement
1303 expressions or scopes of variably modified types. Call
1304 set_spot_bindings and check_earlier_gotos. Call bind_label
1305 instead of bind. Don't set label_context_stack_se or
1306 label_context_stack_vm.
1307 (c_get_switch_bindings): New function.
1308 (c_release_switch_bindings): New function.
1309 (c_check_switch_jump_warnings): New function.
1310 (start_function): Don't set label_context_stack_se or
1311 label_context_stack_vm.
1312 (finish_function): Likewise.
1313 * c-typeck.c (label_context_stack_se): Don't define.
1314 (label_context_stack_vm): Don't define.
1315 (c_finish_goto_label): Call lookup_label_for_goto rather than
1316 lookup_label. Don't give errors about jumping into a statement
1317 expression or the scope of a variably modified type. Don't set
1318 label_context_stack_se or label_context_stack_vm.
1319 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1320 fields. Add bindings field.
1321 (c_start_case): Don't set deleted fields. Set bindings field.
1322 (do_case): Rework order of tests. Don't check blocked_stmt_expr
1323 or blocked_vm. Call c_check_switch_jump_warnings.
1324 (c_finish_case): Don't test blocked_stmt_expr field. Call
1325 c_release_switch_bindings.
1326 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1327 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1328 set label_context_stack_se. Call c_bindings_start_stmt_expr.
1329 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1330 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1331 set label_context_stack_se. Call c_bindings_end_stmt_expr.
1332 (c_begin_vm_scope, c_end_vm_scope): Don't define.
1333 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1334 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1335 (C_DECL_UNJUMPABLE_VM): Don't define.
1336 (C_DECL_UNDEFINABLE_VM): Don't define.
1337 (struct c_label_list): Don't define.
1338 (struct c_label_context_se): Don't define.
1339 (struct c_label_context_vm): Don't define.
1340 (struct c_spot_bindings): Declare.
1341 (c_bindings_start_stmt_expr): Declare.
1342 (c_bindings_end_stmt_expr): Declare.
1343 (lookup_label_for_goto): Declare.
1344 (c_get_switch_bindings, c_release_switch_bindings): Declare.
1345 (c_check_switch_jump_warnings): Declare.
1346 (label_context_stack_se, label_context_stack_vm): Don't declare.
1347 (c_finish_goto_label): Update declaration.
1348 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1349 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1350 (Warning Options): Document -Wjump-misses-init.
1351
98a129b9
JJ
13522009-06-15 Jakub Jelinek <jakub@redhat.com>
1353
1354 * tree-object-size.c (addr_object_size): Fix a pasto in the last
1355 change.
1356
19751f1f
RAE
13572009-06-15 Rafael Avila de Espindola <espindola@google.com>
1358
1359 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1360
d40eb158
AH
13612009-06-15 Aldy Hernandez <aldyh@redhat.com>
1362
1363 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1364
13652009-06-15 Aldy Hernandez <aldyh@redhat.com>
1366
1367 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1368
fc26fae3
RAE
13692009-06-15 Rafael Avila de Espindola <espindola@google.com>
1370
1371 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1372 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1373 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1374 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
1375 * dwarf2asm.c (dw2_force_const_mem): Update call to
1376 make_decl_one_only.
fc26fae3
RAE
1377 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1378 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1379 * langhooks.c (lhd_comdat_group): Remove.
1380 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1381 * tree.h (DECL_COMDAT_GROUP): New.
1382 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1383 (tree_decl_with_vis): Add comdat_group. Remove one_only.
1384 (make_decl_one_only): Change signature.
1385 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1386 make_decl_one_only.
1387 (make_decl_one_only): Change signature.
1388 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1389
0eb92735
RG
13902009-06-15 Richard Guenther <rguenther@suse.de>
1391
1392 PR middle-end/40439
1393 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1394
0ab352d5
AK
13952009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1396
1397 * tree-ssa-math-opts.c: Remove extra divide.
1398
677fbff4
AK
13992009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1400
1401 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1402
03bd2f1a
AK
14032009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1404
1405 * passes.c: Add bswap pass.
1406 * tree-pass.h: Add pass_optimize_bswap declaration.
1407 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1408 Include rtl.h, expr.h and optabs.h for optab_handler check.
1409 (struct symbolic_number, pass_optimize_bswap): New definition.
1410 (do_shift_rotate, verify_symbolic_number_p): New functions.
1411 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1412 (gate_optimize_bswap): New function.
1413 * tree.c (widest_int_cst_value): New function.
1414 * tree.h (widest_int_cst_value): Prototype added.
1415
fb4c4640
SB
14162009-06-14 Steven Bosscher <steven@gcc.gnu.org>
1417
1418 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1419 REG_EQUAL/REG_EQUIV notes.
1420
1d24fdd9
RG
14212009-06-14 Richard Guenther <rguenther@suse.de>
1422
1423 PR middle-end/40389
1424 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
1425 has its address taken if NRV was applied and it is addressable.
1426 * tree-ssa-structalias.c (get_constraint_for_address_of): New
1427 function split out from ...
1428 (get_constraint_for_1): ... here.
1429 (handle_rhs_call): Use it to mark the return slot escaped if
1430 it is addressable and NRV was applied.
1431
4b29c5e5
AH
14322009-06-13 Aldy Hernandez <aldyh@redhat.com>
1433
1434 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
1435 Change first argument type to location_t.
1436 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
1437 Do not set input_location.
1438 Use loc instead of input_location throughout.
1439
e1e6dc73
RG
14402009-06-13 Richard Guenther <rguenther@suse.de>
1441
1d24fdd9 1442 PR tree-optimization/40421
e1e6dc73
RG
1443 * tree-predcom.c (should_unroll_loop_p): Remove.
1444 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
1445
8012b923
MM
14462009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
1447
1448 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1449 Add location argument.
1450
4c4bde29
AH
14512009-06-13 Aldy Hernandez <aldyh@redhat.com>
1452
1453 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
1454 build_decl.
1455 * config/s390/s390.c (s390_build_builtin_va_list): Same.
1456 (s390_gimplify_va_arg): Pass location to create_artificial_label.
1457 * config/spu/spu-protos.h: Add location to
1458 spu_resolve_overloaded_builtin.
1459 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
1460 spu_build_builtin_va_list.
1461 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
1462 argument. Pass location to build_function_call_vec.
1463 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
1464 build_decl.
1465 (emit_fpu_switch): Same.
1466 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
1467 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
1468 to build_decl and create_artificial_label.
1469 (xtensa_gimplify_va_arg_expr): Same.
1470 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
1471 (xstormy16_gimplify_va_arg_expr): Same.
1472 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
1473 * config/arm/arm.c (arm_build_builtin_va_list): Same.
1474 * config/mips/mips.c (mips_build_builtin_va_list): Same.
1475 (mips16_build_function_stub): Same.
1476 (mips16_build_call_stub): Same.
1477
81beb031
RE
14782009-06-13 Richard Earnshaw <rearnsha@arm.com>
1479
1480 PR target/40327
1481 * arm/constraints.md (Pa, Pb): New constraints.
1482 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
1483 split pattern to deal with them.
1484
98f6c600
JS
14852009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
1486
1487 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
1488 fix index entry for -Xpreprocessor.
1489
71856685
AH
14902009-06-12 Aldy Hernandez <aldyh@redhat.com>
1491
1492 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1493 Add location argument to build_decl call.
1494 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
1495 (rs6000_init_builtins): Same.
1496 (spe_init_builtins): Same.
1497 (rs6000_gimplify_va_arg): Add location argument to
1498 create_artificial_label call.
1499
756b65f5
SB
15002009-06-12 Steven Bosscher <steven@gcc.gnu.org>
1501
1502 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
1503 * combine-stack-adj.c (pass_stack_adjustments): Use it.
1504 * Makefile.in: Fix GGC dependency for gcse.o.
1505
c2255bc4
AH
15062009-06-12 Aldy Hernandez <aldyh@redhat.com>
1507
1508 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
1509 * gimple-pretty-print.c (dump_gimple_stmt): Same.
1510 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
1511 created.
1512 * c-parser.c (c_parser_binary_expression): Use current column while
1513 building binary operations.
1514 * common.opt (fshow-column): Enable by default.
1515 * tree-vrp.c (check_array_ref): Use warning_at.
1516 (check_array_bounds): Use location from call back if expr has no
1517 location.
1518 * tree.h: Add location argument to maybe_fold_*.
1519 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
1520 (maybe_fold_offset_to_array_ref): Add location argument and use it.
1521 (maybe_fold_offset_to_component_ref): Same.
1522 (maybe_fold_offset_to_reference): Same.
1523 (maybe_fold_offset_to_address): Same.
1524 (maybe_fold_stmt_indirect): Same.
1525 (maybe_fold_stmt_addition): Same.
1526 (fold_stmt_r): Pass location to maybe_fold_*.
1527 (fold_gimple_assign): Same.
1528 * c-tree.h: Add location argument to finish_decl,
1529 default_function_array_conversion, store_init_value.
1530 * c-decl.c (define_label): Use error_at.
1531 (c_make_fname_decl): Pass location to finish_decl.
1532 (finish_decl): New location argument.
1533 (build_compound_literal): Pass location to store_init_value.
1534 (grokdeclarator): Pass location to finish_decl.
1535 (grokfield): Same.
1536 * c-typeck.c (array_to_pointer_conversion): New location argument.
1537 (function_to_pointer_conversion): Same.
1538 (default_function_array_conversion): Same.
1539 (parser_build_unary_op): Pass location to overflow_warning.
1540 (parser_build_binary_op): Same. Use warning_at.
1541 (build_unary_op): Pass location to array_to_pointer_conversion.
1542 (build_c_cast): Pass location to digest_init.
1543 (build_modify_expr): New location argument.
1544 (convert_for_assignment): Same.
1545 (store_init_value): Same.
1546 (digest_init): Same.
1547 (output_init_element): Pass location to digest_init and
1548 array_to_pointer_conversion.
1549 (c_finish_return): Pass location to convert_for_assignment.
1550 * gimplify.c (gimplify_conversion): Pass location to
1551 maybe_fold_offset_to_address.
1552 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
1553 to maybe_fold_stmt_addition.
1554 * c-omp.c (c_finish_omp_atomic): Pass new location to
1555 build_modify_expr.
1556 (c_finish_omp_for): Same.
1557 * c-common.c (overflow_warning): New argument.
1558 * c-common.h: New argument to build_modify_expr, overflow_warning.
1559 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
1560 finish_decl.
1561 (c_parser_initializer): Pass location to
1562 default_function_array_conversion.
1563 (c_parser_initelt): Same.
1564 (c_parser_initval): Same.
1565 (c_parser_asm_operands): Same.
1566 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
1567 (c_parser_conditional_expression): Same.
1568 (c_parser_binary_expression): Add location info to stack. Use it.
1569 (c_parser_unary_expression): Pass location to
1570 default_function_array_conversion, parser_build_unary_op,
1571 build_indirect_ref, c_parser_postfix_expression_after_primary.
1572 (c_parser_postfix_expression_after_primary): New location argument.
1573 Use it.
1574 (c_parser_expression_conv): Pass location to
1575 default_function_array_conversion.
1576 (c_parser_expr_list): Same.
1577 (c_parser_omp_atomic): Same.
1578 (c_parser_omp_for_loop): Same.
1579 * c-tree.h: (struct c_declarator): Add comment to id_loc.
1580 (build_array_declarator): New argument.
1581 * c-decl.c (build_array_declarator): Add location argument.
1582 (grokdeclarator): Set id_loc for cdk_array.
1583 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
1584 build_array_declarator.
1585 * tree.c (build_omp_clause): Add location argument.
1586 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
1587 (OMP_CLAUSE_LOCATION): New macro.
1588 (struct tree_omp_clause): Add location field.
1589 (build_omp_clause): Add argument.
1590 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
1591 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
1592 build_omp_clause.
1593 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
1594 (cp_parser_omp_clause_collapse): Same.
1595 (cp_parser_omp_clause_default): Same.
1596 (cp_parser_omp_clause_if): Same.
1597 (cp_parser_omp_clause_nowait): Same.
1598 (cp_parser_omp_clause_num_threads): Same.
1599 (cp_parser_omp_clause_ordered): Same.
1600 (cp_parser_omp_clause_schedule): Same.
1601 (cp_parser_omp_clause_untied): Same.
1602 (cp_parser_omp_for_loop): Same.
1603 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1604 * c-tree.h (c_start_case): Add location argument.
1605 (c_process_expr_stmt): Same.
1606 (c_finish_goto_*): Same.
1607 * tree-parloops.c (initialize_reductions): Pass location to
1608 build_omp_clause.
1609 (create_parallel_loop): Same.
1610 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
1611 (gfc_trans_omp_reduction_list): Same.
1612 (gfc_trans_omp_clauses): Same.
1613 (gfc_trans_omp_do): Same.
1614 * c-typeck.c (c_finish_goto_label): Same.
1615 (c_finish_goto_ptr): New location argument.
1616 (c_start_case): Same.
1617 (emit_side_effect_warnings): Same.
1618 (c_process_expr_stmt): Same.
1619 (c_finish_stmt_expr): Same.
1620 (c_finish_omp_clauses): Use error_at instead of error.
1621 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
1622 build_omp_clause.
1623 * c-omp.c (c_split_parallel_clauses): New location argument.
1624 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
1625 to build_omp_clause.
1626 (convert_local_reference_stmt): Same.
1627 (convert_gimple_call): Same.
1628 * c-common.h (c_split_parallel_clauses): New argument.
1629 * c-parser.c (c_parser_statement_after_labels): Pass location to
1630 c_finish_goto_label.
1631 (c_parser_switch_statement): Pass location to c_start_case.
1632 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
1633 and c_process_expr_stmt.
1634 (c_parser_omp_variable_list): Add location argument.
c637b0fa 1635 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
1636 (c_parser_omp_clause_default): Same.
1637 (c_parser_omp_clause_if): Same.
1638 (c_parser_omp_clause_num_threads): Same.
1639 (-c_parser_omp_clause_ordered): Same.
1640 (c_parser_omp_clause_reduction): Pass location to
1641 c_parser_omp_variable_list.
1642 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
1643 (c_parser_omp_clause_untied): Same.
1644 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 1645 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
1646
1647 * c-tree.h (check_for_loop_decls, undeclared_variable,
1648 build_component_ref, build_array_ref, build_external_ref,
1649 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
1650 build_conditional_expr, build_compound_expr, c_cast_expr,
1651 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
1652 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
1653 argument.
1654 * c-semantics.c (build_stmt): Same.
1655 (build_case_label): Same.
1656 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
1657 (undeclared_variable): New argument.
1658 (make_label): Same.
1659 (lookup_label): Pass location on down.
1660 (define_label): Same.
1661 (finish_decl): Same.
1662 (build_compound_literal): Same.
1663 (finish_struct): Same.
1664 (finish_function): Do not set location here.
1665 (check_for_loop_decls): New argument.
1666 * tree.c (save_expr): Set location.
1667 (build_empty_stmt): New argument.
1668 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
1669 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
1670 * builtins.c (gimplify_va_arg_expr): Use locations.
1671 (expand_builtin_sync_operation): Same.
1672 * c-typeck.c (build_component_ref): New argument.
1673 (build_array_ref): Same.
1674 (build_external_ref): Same.
1675 (c_expr_sizeof_expr): Same.
1676 (c_expr_sizeof_type): Same.
1677 (parser_build_unary_op): Same.
1678 (build_conditional_expr): Same.
1679 (build_compound_expr): Pass location on down.
1680 (build_compound_expr): New argument.
1681 (build_c_cast): Same.
1682 (c_cast_expr): Same.
1683 (build_asm_expr): Same.
1684 (c_finish_return): Same.
1685 (c_process_expr_stmt): Pass location on down.
1686 (c_finish_stmt_expr): New argument.
1687 (push_clenaup): Same.
1688 (c_finish_omp_parallel): Same.
1689 (c_finish_omp_task): Same.
1690 * gimplify.c (gimplify_call_expr): Pass location on down.
1691 * c-omp.c (c_finish_omp_master): New argument.
1692 (c_finish_omp_critical): Same.
1693 (c_finish_omp_ordered): Same.
1694 (c_finish_omp_barrier): Same.
1695 (-c_finish_omp_taskwait): Same.
1696 (c_finish_omp_atomic): Same.
1697 (c_finish_omp_flush): Same.
1698 * tree-inline.c (copy_tree_body_r): Pass location on down.
1699 (inline_forbidden_p): Remove use of input_location.
1700 * c-gimplify.c (c_build_bind_expr): New argument.
1701 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
1702 (c_sizeof_or_alignof_type): New argument.
1703 (c_alignof_expr): Same.
1704 (build_va_arg): Same.
1705 (c_add_case_label): Same.
1706 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
1707 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
1708 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
1709 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
1710 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
1711 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
1712 New argument.
1713 * stub-objc.c (objc_build_selector_expr): Same.
1714 (objc_build_throw_stmt): Same.
1715 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
1716 (c_parser_initelt): Same.
1717 (c_parser_compound_statement): Same.
1718 (c_parser_compound_statement_nostart): Same.
1719 (c_parser_label): Same.
1720 (c_parser_statement_after_labels): Same.
1721 (c_parser_if_body): Same.
1722 (c_parser_else_body): Same.
1723 (c_parser_if_statement): Same.
1724 (c_parser_switch_statement): Same.
1725 (c_parser_while_statement): Same.
1726 (c_parser_do_statement): Same.
1727 (c_parser_for_statement): Same.
1728 (c_parser_asm_statement): Same.
1729 (c_parser_conditional_expression): Same.
1730 (c_parser_binary_expression): Same.
1731 (c_parser_cast_expression): Same.
1732 (c_parser_unary_expression): Same.
1733 (c_parser_sizeof_expression): Same.
1734 (c_parser_alignof_expression): Same.
1735 (c_parser_postfix_expression): Same.
1736 (c_parser_expression): Same.
1737 (c_parser_objc_receiver): Same.
1738 (c_parser_omp_variable_list): Same.
1739 (c_parser_omp_structured_block): Same.
1740 (c_parser_omp_atomic): New argument.
1741 (c_parser_omp_barrier): Same.
1742 (c_parser_omp_critical): Same.
1743 (c_parser_omp_flush): Pass location on down.
1744 (c_parser_omp_for_loop): New argument.
1745 (c_parser_omp_for): Same.
1746 (c_parser_omp_master): Same.
1747 (c_parser_omp_ordered): Same.
1748 (c_parser_omp_sections_scope): Same.
1749 (c_parser_omp_sections): Same.
1750 (c_parser_omp_parallel): Same.
1751 (c_parser_omp_single): Same.
1752 (c_parser_omp_task): Same.
1753 (c_parser_omp_taskwait): Pass location on down.
1754 (c_parser_omp_construct): Same.
1755 (c_parser_omp_threadprivate): Same.
1756 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
1757 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
1758 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
1759 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
1760 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
1761 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
1762 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1763 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1764 config/i386/i386.c, stmt.c:
1765 Add location argument to the following function definitions and/or
1766 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1767 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1768 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1769 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1770 do_case, c_finish_bc_stmt, build_compound_literal,
1771 build_function_call.
1772 * c-decl.c (build_compound_literal): Add location argument.
1773 Make all diagnostic calls use location.
1774 (start_struct): Same.
1775 (finish_struct): Same.
1776 (start_enum): Same.
1777 (build_enumerator): Same.
1778 (start_function): Same.
1779 (grokdeclarator): Make all diagnostic calls use location.
1780 (store_parm_decls_oldstyle): Same.
1781 * c-typeck.c (build_function_call): Add location argument.
1782 Make all diagnostic calls use location.
1783 (do_case): Same.
1784 (c_finish_bc_stmt): Same.
1785 * tree-nested.c (get_trampoline_type): Add argument.
1786 Pass location to build_decl.
1787 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1788 * rtl.h (RTL_LOCATION): New.
1789 * c-common.c (c_add_case_label): Add location argument.
1790 Make all diagnostic calls use location.
1791 * c-common.h: Add location argument to make_fname_decl, do_case,
1792 c_add_case_label, build_function_call, resolve_overloaded_builtin.
1793 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
1794 Set it appropriately for every case. Pass enum_loc to start_enum
1795 call. Pass value_loc first to build_enumerator. Pass enum_loc to
1796 parser_xref_tag.
1797 (c_parser_struct_or_union_specifier): Save location. Use it for
1798 start_struct, finish_struct, and parser_xref_tag.
1799
3d8b2a98
ILT
18002009-06-12 Ian Lance Taylor <iant@google.com>
1801
c637b0fa 1802 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
1803
1804 * c-opts.c (c_common_handle_option): For -Wc++-compat set
1805 cpp_opts->warn_cxx_operator_names.
1806
737142ce
AP
18072009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
1808
1809 PR tree-opt/38865
1810 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1811 is returns NULL and OP is a VCE, look through the VCE.
1812
d3a0d55d
ILT
18132009-06-12 Ian Lance Taylor <iant@google.com>
1814
1815 PR bootstrap/40430
1816 * collect2.c (main): Use CONST_CAST2 in code inside #if
1817 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1818
f85882d8
JY
18192009-06-12 Joey Ye <joey.ye@intel.com>
1820
1821 PR middle-end/39146
1822 * cfgexpand.c (get_decl_align_unit): Update
1823 max_used_stack_slot_alignment with align instead of
1824 stack_alignment_needed.
1825
1826 * function.c (assign_stack_local_1): Update
1827 max_used_stack_slot_alignment with alignment_in_bits instead
1828 of stack_alignment_needed.
1829 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1830 here.
1831
fc9f468b
JJ
18322009-06-12 Jakub Jelinek <jakub@redhat.com>
1833
1834 * dwarf2out.c (last_var_location_insn): New variable.
1835 (dwarf2out_end_epilogue): Clear last_var_location_insn.
1836 (dwarf2out_var_location): Don't record anything after last real
1837 insn. Only change labels if there were any real instructions
1838 in between last note and this one, or if changed sections.
1839
7c1db202
RH
18402009-06-11 Richard Henderson <rth@redhat.com>
1841
f85882d8 1842 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
1843 note when storing the frame pointer in a register.
1844 (FRP): Don't redefine to nothing for epilogue.
1845 (alpha_expand_epilogue): Mark register and sp restores.
1846 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1847
7c1db202
RH
1848 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1849 when gen_lowpart is needed.
1850
f2ae7631
RH
18512009-06-11 Richard Henderson <rth@redhat.com>
1852
42755c21
RH
1853 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1854
f2ae7631
RH
1855 * dwarf2out.c (need_data_align_sf_opcode): New.
1856 (div_data_align): Move earlier.
1857 (def_cfa_1, reg_save): Use it.
1858
8ed0ce99
L
18592009-06-11 H.J. Lu <hongjiu.lu@intel.com>
1860
1861 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
1862 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
1863 (ix86_handle_option): Handle OPT_mcrc32.
1864 (ix86_target_string): Add -mcrc32.
1865 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
1866
1867 * config/i386/i386.h (TARGET_CRC32): New.
1868
c637b0fa 1869 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
1870 (sse4_2_crc32di): Likewise.
1871
c637b0fa 1872 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
1873
1874 * doc/invoke.texi: Document -mcrc32.
1875
9fd68a1f
RH
18762009-06-11 Richard Henderson <rth@redhat.com>
1877
8ed0ce99 1878 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
1879 * doc/invoke.texi (gdwarf-): Update docs.
1880 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1881 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1882 version level, and record it.
1883
1884 * dwarf2.h (DW_CIE_VERSION): Remove.
1885 * dwarf2out.c (DWARF_VERSION): Remove.
1886 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1887 (output_call_frame_info): Use CIE version 3 for dwarf3,
1888 or if the return register column is out of range for version 1.
1889 (dwarf_stack_op_name): Add all dwarf3 values.
1890 (DEBUG_PUBTYPES_SECTION): New.
1891 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1892 encoding change for dwarf3.
1893 (output_die) [dw_val_class_die_ref]: Likewise.
1894 (output_compilation_unit_header): Emit correct version for dwarf3.
1895 (output_line_info): Likewise.
1896 (output_pubnames): Update for DWARF_VERSION removal.
1897 (output_aranges): Likewise.
1898 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1899 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1900 (dwarf2out_finish): Likewise.
1901
4de8ce3b
DD
19022009-06-11 David Daney <ddaney@caviumnetworks.com>
1903
1904 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1905 in r148403.
1906
468059bc
DD
19072009-06-11 David Daney <ddaney@caviumnetworks.com>
1908
1909 PR c/39252
1910 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1911 * builtins.c (expand_builtin_unreachable): New function.
1912 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1913 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1914 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1915 successors.
1916 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1917 searching for missing barriers.
1918
b5a6e96f
FXC
19192009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1920
1921 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1922 when -fprofile-generate* was passed.
1923 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1924
6be6462e
AG
19252009-06-11 Anthony Green <green@moxielogic.com>
1926
c637b0fa 1927 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
1928 (rCC): Define.
1929 (*b<cond:code>): Support limited branch ranges for new PC-relative
1930 branch instructions.
1931 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1932
caaabe0a
JJ
19332009-06-11 Jakub Jelinek <jakub@redhat.com>
1934
e5219642
JJ
1935 * config/i386/i386.c (min_insn_size): Use get_attr_length
1936 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1937 For __asm return 0.
1938
caaabe0a
JJ
1939 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1940 instead of emit_insn_before.
1941
a567fa6a
ILT
19422009-06-10 Ian Lance Taylor <iant@google.com>
1943
1944 PR bootstrap/40408
1945 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1946 GIMPLE_SWITCH.
1947
6a753d5f
RE
19482009-06-10 Revital Eres <eres@il.ibm.com>
1949
1950 * passes.c (init_optimization_passes): Reschedule
1951 predictive-commoning pass before complete unroll pass.
1952
a550d677
MJ
19532009-06-10 Martin Jambor <mjambor@suse.cz>
1954
1955 * cgraph.c (cgraph_node_can_be_local_p): New function.
1956 (cgraph_make_node_local): New function.
1957 * cgraph.h (cgraph_node_can_be_local_p): Declare.
1958 (cgraph_make_node_local): Declare.
1959
d8259b07
NF
19602009-06-10 Nathan Froyd <froydnj@codesourcery.com>
1961
1962 * tree.h (tree_base): Add packed_flag and user_align fields.
1963 Decrease size of spare field.
1964 (TYPE_USER_ALIGN): Use user_align from tree_base.
1965 (DECL_USER_ALIGN): Likewise.
1966 (TYPE_PACKED): Use packed_flag from tree_base.
1967 (DECL_PACKED): Likewise.
1968 (tree_type): Delete packed_flag and user_align fields. Widen
1969 precision field. Widen mode field and shuffle fields to align
1970 mode on an 8-bit boundary.
1971 (tree_decl_common): Delete decl_flag_1 and user_align fields.
1972 Renumber decl_flag_* fields. Fix comments. Widen
1973 decl_common_unused field.
c637b0fa 1974 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
1975 (DECL_EXTERNAL): Likewise.
1976 (DECL_BIT_FIELD): Likewise.
1977 (DECL_NONADDRESSABLE_P): Likewise.
1978 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1979 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1980
c2569604
ILT
19812009-06-10 Ian Lance Taylor <iant@google.com>
1982
1983 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1984 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1985 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1986 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1987 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1988 DEF_VEC_ALLOC_FUNC_P.
1989 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1990 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1991 DEF_VEC_ALLOC_FUNC_O.
1992 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1993 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1994 DEF_VEC_ALLOC_FUNC_I.
1995 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1996 (vec_stack_p_reserve_exact_1): Declare.
1997 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1998 (vec_stack_free): Declare.
1999 (VEC_stack_alloc): Define.
2000 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
2001 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
2002 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
2003 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
2004 for void_p.
2005 (stack_vecs): New static variable.
2006 (vec_stack_p_reserve_exact_1): New function.
2007 (vec_stack_o_reserve_1): New static function.
2008 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
2009 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
2010 (vec_stack_free): New function.
2011 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
2012 (VEC_df_ref_stack_alloc): Define.
2013 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
2014 DEF_VEC_ALLOC_P_STACK.
2015 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
2016 (struct df_collection_rec): Change _vec fields to VEC. Remove
2017 _use fields.
2018 (df_free_collection_rec): Adjust for new fields.
2019 (df_insn_rescan): Use new df_collection_rec fields.
2020 (df_notes_rescan, df_canonize_collection_rec): Likewise.
2021 (df_ref_create_structure, df_ref_record): Likewise.
2022 (df_get_conditional_uses, df_get_call_refs): Likewise.
2023 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
2024 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
2025 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 2026 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
2027 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
2028 Remove count parameter. Change return type to void. Change all
2029 callers.
2030 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
2031 Remove count parameter. Change return type to void. Change all
2032 callers.
2033 (df_install_refs): Change old_vec parameter to VEC. Remove count
2034 parameter. Change all callers.
2035 (df_install_mws): Change old_vec parameter to VEC. Remove count
2036 parameter. Change all callers.
2037 (df_refs_verify): Change new_rec parameter to VEC. Change call
2038 callers.
2039 (df_mws_verify): Likewise.
2040
e7aae3e8
AO
20412009-06-10 Alexandre Oliva <aoliva@redhat.com>
2042
2043 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
2044
412ac8d5
L
20452009-06-10 H.J. Lu <hongjiu.lu@intel.com>
2046
2047 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
2048
cceb575c
AG
20492009-06-10 Anthony Green <green@moxielogic.com>
2050
2051 * config/moxie/crti.asm: New file.
2052 * config/moxie/crtn.asm: New file.
2053 * config/moxie/moxie.c: New file.
2054 * config/moxie/moxie.h: New file.
2055 * config/moxie/sfp-machine.h: New file.
2056 * config/moxie/moxie-protos.h: New file.
2057 * config/moxie/t-moxie: Created.
2058 * config/moxie/t-moxie-softfp: Created.
2059 * config/moxie/moxie.md: Created.
2060 * config/moxie/constraints.md: Created.
2061 * config.gcc: Add moxie support.
2062 * doc/md.texi (Machine Constraints): Add moxie constraints.
2063 * doc/contrib.texi (Contributors): Mention moxie port.
2064 * doc/install.texi (Specific): Mention the moxie port.
2065
bf406687
ILT
20662009-06-09 Ian Lance Taylor <iant@google.com>
2067
2068 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
2069 compiling with C++.
2070 * optabs.c (optab_table): Only use designated initializers if
2071 HAVE_DESIGNATED_INITIALIZERS is defined.
2072 (convert_optab_table): Likewise.
2073 (init_optabs): Always call init_insn_codes if
2074 HAVE_DESIGNATED_INITIALIZERS is not defined.
2075
744aa42f
ILT
20762009-06-09 Ian Lance Taylor <iant@google.com>
2077
2078 * targhooks.c (default_builtin_vectorized_function): Change fn
2079 parameter to unsigned int.
2080 (default_builtin_vectorized_conversion): Change code parameter to
2081 unsigned int.
2082 (default_builtin_reciprocal): Change fn parameter to unsigned int.
2083 * targhooks.h: Update declarations.
2084 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
2085 parameter to unsigned int.
2086
2087 * c-typeck.c (comptypes_check_enum_int): New static function.
2088 (comptypes_internal): Add enum_and_int_p parameter. Change all
2089 callers.
2090 (comp_target_types): Add location parameter. Change all callers.
2091 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
2092 Change all callers.
2093 (function_types_compatible_p, type_lists_compatible_p): Likewise.
2094 (build_conditional_expr): Add colon_loc parameter. Change all
2095 callers.
c637b0fa 2096 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
2097 * c-parser.c (c_parser_conditional_expression): Pass location of
2098 colon to build_conditional_expr.
2099 * c-tree.h (build_conditional_expr): Update declaration.
2100
bcbe3b25
SP
21012009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2102
2103 * graphite.c: Revert previous patch.
2104
dc2a6925
SP
21052009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2106
2107 PR bootstrap/40103
2108 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
2109
d81f5387
GS
21102009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
2111
8ed0ce99
L
2112 * tree-ssa-loop-prefetch.c
2113 (loop_prefetch_arrays): Fixed a portability problem in printf format
2114 string.
d81f5387 2115
8056eb4f
MJ
21162009-06-09 Martin Jambor <mjambor@suse.cz>
2117
2118 PR tree-optimization/40351
c637b0fa
UB
2119 * tree-sra.c (propagate_subacesses_accross_link): Check that a
2120 refrence to a potential artifical subaccess can be constructed.
8056eb4f 2121
bd9a3465
KK
21222009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
2123
2124 * config/sh/sh-protos.h (sh_optimization_options): Declare.
2125 (sh_override_options): Likewise.
2126 * config/sh/sh.c: Include params.h.
2127 (sh_optimization_options): New.
2128 (sh_override_options): Likewise.
2129 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
2130 (OVERRIDE_OPTIONS): Use sh_override_options.
2131
8845deab
JJ
21322009-06-08 Jakub Jelinek <jakub@redhat.com>
2133
2134 * dwarf2out.c (emit_cfa_remember): New variable.
2135 (add_fde_cfi): If emit_cfa_remember, recurse to add
2136 DW_CFA_remember_state first.
2137 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
2138 instead just set emit_cfa_remember.
2139
9ea81b0c
JH
21402009-06-08 Jan Hubicka <jh@suse.cz>
2141
2142 PR debug/40126
2143 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
2144
21ecdec5
JH
21452009-06-08 Jan Hubicka <jh@suse.cz>
2146
2147 PR middle-end/39834
c637b0fa
UB
2148 * cgraphunit.c (save_inline_function_body): Do not copy transform
2149 hooks for saved inline bodies.
21ecdec5
JH
2150 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
2151 for given function.
2152
72e48218
AN
21532009-06-08 Adam Nemet <anemet@caviumnetworks.com>
2154
2155 * jump.c (returnjump_p): Handle delayed branches. Add missing
2156 function comment.
2157
6ce2002b
JH
21582009-06-08 Jan Hubicka <jh@suse.cz>
2159
2160 PR middle-end/40102
2161 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
2162 original node might've been modified.
2163 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
2164
eb9ed98a
JJ
21652009-06-08 Jakub Jelinek <jakub@redhat.com>
2166
2167 * tree-object-size.c (addr_object_size): Add OSI argument.
2168 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
2169 (compute_builtin_object_size, expr_object_size): Adjust callers.
2170 (plus_stmt_object_size): Call addr_object_size instead of
2171 compute_builtin_object_size.
2172
db34470d 21732009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 2174 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
2175
2176 * tree-ssa-loop-prefetch.c
2177 (gather_memory_references): Introduced a counter for the number of
2178 memory references.
2179 (anything_to_prefetch_p): Introduced a counter for the number of
2180 prefetches.
2181 (is_loop_prefetching_profitable): New function with a cost model
2182 for prefetching.
2183 (loop_prefetch_arrays): Use the new cost model to determine if
2184 prefetching is profitable.
2185 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
2186 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2187 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
2188 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2189 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
2190 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2191
eb7adebc
MM
21922009-06-08 Michael Matz <matz@suse.de>
2193
2194 PR debug/40012
eb7adebc
MM
2195 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
2196 partitions use the same.
2197 (expand_one_var): Deal with DECL_RTL sometimes begin set also
2198 for basevars of SSA_NAMEs.
2199 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
2200 to not expand them twice.
2201 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
2202 multiple places.
2203
2153915d
AO
22042009-06-08 Alexandre Oliva <aoliva@redhat.com>
2205
2206 * common.opt (fcompare-debug=, fcompare-debug-second): New.
2207 (fdump-final-insns=, gtoggle): New.
2208 * doc/invoke.texi: Document them.
2209 * final.c (rest_of_clean_state): Dump final insn stream.
2210 * gcc.c (invoke_as): Hook in -fcompare-debug.
2211 (static_spec_functions): Add compare-debug-dump-opt,
2212 compare-debug-self-opt and compare-debug-auxbase-opt.
2213 (compare_debug, compare_debug_second, compare_debug_opt): New.
2214 (switches_debug_check, n_switches_debug_check): New.
2215 (debug_auxbase_opt, debug_check_temp_file): New.
2216 (process_command): Handle -fno-compare-debug, -fcompare-debug and
2217 -fcompare-debug=*.
2218 (do_self_spec): Handle arguments after switches.
2219 (do_spec_1): Add .gk extension to temp file basenames for compare.
2220 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
2221 (cc1_options): Use it instead of normal auxbase computation for
2222 the second compare-debug compilation.
2223 (compare_files): New.
2224 (main): Set up and implement compare debug mode.
2225 (compare_debug_dump_opt_spec_function): New.
2226 (compare_debug_self_opt_spec_function): New.
2227 (compare_debug_auxbase_opt_spec_function): New.
2228 * toplev.c (process_options): Handle flag_gtoggle,
2229 flag_dump_final_insns.
2230 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
2231 during -fcompare-debug-second compilation.
2232
cdb88468
ILT
22332009-06-07 Ian Lance Taylor <iant@google.com>
2234
c637b0fa 2235 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
2236 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
2237
2238 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
2239 with no default node. Change warning with %H to warning_at.
2240 Don't clear warn_switch around case checking.
2241 * doc/invoke.texi (Warning Options): Clarify distinction between
2242 -Wswitch and -Wswitch-enum.
2243
4fe8e1a2
BRF
22442009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2245
2246 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
2247
69952c1d
BRF
22482009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2249
2250 * gbl-ctors.h: Add header guard.
2251
b2ad0284
BRF
22522009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2253
2254 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
2255 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
2256 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
2257 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
2258 prototypes for removed functions.
2259 (expressions_equal_p): Move to ...
2260 * tree-ssa-sccvn.h: ... here and ...
2261 * matrix-reorg.c: ... adjust includes.
2262
c3df55f9
BRF
22632009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2264
2265 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
2266
b5a7159f
BRF
22672009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2268
2269 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
2270 (finish_function): Remove erroneous whitespace.
2271
95bca6b0
BRF
22722009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2273
2cd713a0
BRF
2274 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
2275 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
2276
22772009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2278
2279 * errors.c (internal_error): Commentary typo fix.
2280 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
2281 * tree-ssa-pre.c: Ditto.
95bca6b0 2282
2cd713a0
BRF
22832009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2284
2285 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
2286 them is supposed to hold actual statements.
2287
5bca4e80
ILT
22882009-06-06 Ian Lance Taylor <iant@google.com>
2289
2290 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
2291 empty statements can now have attributes.
2292
47ac44d6
SZ
22932009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
2294
2295 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
2296 * config/mips/mips.md: Ditto.
2297
19b905ce
NF
22982009-06-05 Nathan Froyd <froydnj@codesourcery.com>
2299
2300 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
2301 _RELOCATABLE.
2302 (__eabi_uconvert): Likewise.
2303
16702e19
NF
23042009-06-05 Nathan Froyd <froydnj@codesourcery.com>
2305
2306 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
2307 CFI_* definitions with IN_GCC.
2308
a735afd1
DE
23092009-06-05 David Edelsohn <edelsohn@gnu.org>
2310
2311 * xcoffout.h (xcoffout_source_line): Update prototype.
2312
26a347c5
KG
23132009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2314
2315 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2316 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2317
9f706f23
JJ
23182009-06-05 Jakub Jelinek <jakub@redhat.com>
2319
2320 PR middle-end/40340
2321 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2322 inlined_function_outer_scope_p blocks for artificial inlines
2323 even at -g0/-g1.
2324 * tree.c (tree_nonartificial_location): Rewrite using
2325 block_nonartificial_location.
2326
8f439681
RE
23272009-06-05 Revital Eres <eres@il.ibm.com>
2328 Leehod Baruch <leehod@il.ibm.com>
2329
2330 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2331 (expand_expr_real_1): Remove comment.
2332 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2333 Vectorize misaligned access when the target supports it.
c637b0fa 2334 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
2335 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2336 and remove asset.
2337
b89f8e3c
JB
23382009-06-05 Julian Brown <julian@codesourcery.com>
2339
2340 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2341 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2342
47d1f191
RG
23432009-06-05 Richard Guenther <rguenther@suse.de>
2344
2345 PR bootstrap/40350
2346 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2347 as possibly unused.
2348
9f706f23 23492009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
2350
2351 * config/s390/s390.c (global_not_special_regno_p): New static inline.
2352 (save_gprs): Don't tell unwinder when a global register is saved.
2353 (s390_emit_epilogue): Emit needed epilogue unwind info.
2354
90f06248
AO
23552009-06-05 Alexandre Oliva <aoliva@redhat.com>
2356
2357 * dwarf2out.c (deferred_asm_name): New.
2358 (add_name_and_src_coords_attributes): Defer creation of
2359 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2360 computed yet.
2361 (move_linkage_attr): New.
2362 (dwarf2out_finish): Revisit deferrals and emit attributes at the
2363 right place.
2364
c10348e5
AO
23652009-06-05 Alexandre Oliva <aoliva@redhat.com>
2366
2367 * tree-nested.c (finalize_nesting_tree_1): Declare the
2368 frame_decl in the binding tree.
2369
6c52e687
CC
23702009-06-04 Cary Coutant <ccoutant@google.com>
2371
2372 * basic-block.h (struct basic_block_def): Add discriminator field.
2373 * dbxout.c (dbxout_source_line): Add new parameter. Change all
2374 callers.
2375 * debug.c (do_nothing_debug_hooks): Add additional entry.
2376 (debug_nothing_int_charstar_int): New function.
c637b0fa 2377 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
2378 (debug_nothing_int_charstar_int): New declaration.
2379 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
2380 discriminator value in .loc directive.
2381 * final.c (last_discriminator): New variable.
2382 (discriminator): New variable.
2383 (final_start_function): Initialize above variables, pass current
2384 discriminator to debug hook.
2385 (notice_source_line): Check for discriminator change.
2386 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2387 * sdbout.c (sdbout_source_line): New parameter.
2388 * tree-cfg.c (struct locus_discrim_map): New structure type.
2389 (discriminator_per_locus): New hash table.
2390 (build_gimple_cfg): Allocate and free discriminator hash table.
2391 (make_edges): Call assign_discriminator.
2392 (locus_map_hash): New function.
2393 (locus_map_eq): New function.
2394 (next_discriminator_for_locus): New function.
2395 (same_line_p): New function.
2396 (assign_discriminator): New function.
2397 (make_cond_expr_edges): Call assign_discriminator.
2398 (make_gimple_switch_edges): Likewise.
2399 (first_non_label_stmt): New function.
2400 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
2401 all callers.
2402 * xcoffout.c (xcoffout_source_line): Add new parameter.
2403
2404 * configure.ac (gcc_cv_as_discriminator): New configury check for
2405 gas support for discriminator.
2406 * configure: Regenerate.
2407 * config.in: Regenerate.
2408
e07e020b
RR
24092009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2410
2411 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2412 val after checking for integers.
2413
72fa3605
UB
24142009-06-04 Uros Bizjak <ubizjak@gmail.com>
2415
2416 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2417 X64_REGPARM_MAX.
2418 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2419 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2420 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2421 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2422 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
2423 X64_SSE_REGPARM_MAX.
2424 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
2425 X64_SSE_REGPARM_MAX.
2426
bdde878c
AO
24272009-06-04 Alexandre Oliva <aoliva@redhat.com>
2428
2429 * gcc.c (report_times_to_file): New.
2430 (execute): Implement it.
2431 (process_command): Support -time=.
2432 * doc/invoke.texi: Document it.
2433
2ce59df7
AO
24342009-06-04 Alexandre Oliva <aoliva@redhat.com>
2435
2436 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
2437 that have value exprs.
2438
78bd9046
AO
24392009-06-04 Alexandre Oliva <aoliva@redhat.com>
2440
2441 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
2442 declarations for constants until...
2443 (dw2_output_indirect_constant_1): ... this point.
2444
e63d4106
RE
24452009-06-04 Richard Earnshaw <rearnsha@arm.com>
2446
2447 PR target/10242
2448 * arm.md (arm_addsi3): Don't try to split an add with an
2449 eliminable register until after reload has completed.
2450
6bc7bc14
ILT
24512009-06-03 Ian Lance Taylor <iant@google.com>
2452
2453 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
2454 * genattrtab.c (write_length_unit_log): Likewise.
2455 * genchecksum.c (dosum): Likewise.
2456 * gengtype.c (write_rtx_next): Likewise.
2457 (finish_root_table, write_roots): Likewise.
2458 * gimple.c (gimple_ops_offset_): Likewise.
2459 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
2460 * config/arc/arc.c (arc_attribute_table): Likewise.
2461 * config/arm/arm.c (arm_attribute_table): Likewise.
2462 * config/avr/avr.c (avr_attribute_table): Likewise.
2463 * config/crx/crx.c (crx_attribute_table): Likewise.
2464 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2465 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
2466 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2467 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2468 * config/sh/sh.c (sh_attribute_table): Likewise.
2469 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2470 * config/spu/spu.c (spu_attribute_table): Likewise.
2471 * config/v850/v850.c (v850_attribute_table): Likewise.
2472
2473 * config/alpha/alpha.c (vms_attribute_table): Make static.
2474 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2475 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2476 * config/mips/mips.c (mips_attribute_table): Likewise.
2477
2478 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
2479 $(SYSTEM_H).
2480 (cc1-checksum.o): Likewise.
2481
19d892fd
SE
24822009-06-03 Steve Ellcey <sje@cup.hp.com>
2483
2484 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
2485
679f3354
JJ
24862009-06-03 Jakub Jelinek <jakub@redhat.com>
2487
ff35822b
JJ
2488 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
2489 insn if it is changing sp. Use gen_add3_insn instead of
2490 conditionally gen_addsi3 and gen_adddi3.
2491 (offset_below_red_zone_p): New static inline function.
2492 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
2493 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
2494 * config/rs6000/ppc-asm.h: Include auto-host.h.
2495 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
2496 CFI_RESTORE): Define.
2497 * config/rs6000/crtresxgpr.asm: Add unwind info.
2498 * config/rs6000/crtresxfpr.asm: Likewise.
2499 * config/rs6000/crtresgpr.asm: Likewise.
2500 * config/rs6000/crtresfpr.asm: Likewise.
2501 * config/rs6000/crtsavgpr.asm: Likewise.
2502 * config/rs6000/crtsavfpr.asm: Likewise.
2503
dc6707b8
UB
2504 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
2505 argument of DWARF2_FRAME_REG_OUT macros.
679f3354 2506
2e94c12d
JB
25072009-06-03 Julian Brown <julian@codesourcery.com>
2508
2509 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
2510 words or less (including TImode) in core registers.
2511
3111cce0
RG
25122009-06-03 Richard Guenther <rguenther@suse.de>
2513
2514 PR middle-end/40328
2515 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
2516
5e1b50f6
AB
25172009-06-03 Andrey Belevantsev <abel@ispras.ru>
2518
2519 * statistics.c (statistics_counter_event): Do not record event
2520 in pass dump if its number == -1.
2521 (curr_statistics_hash): Add assert that we never get passes
2522 with static number == -1.
2523
6f11d690
RG
25242009-06-03 Richard Guenther <rguenther@suse.de>
2525 Andrey Belevantsev <abel@ispras.ru>
2526
2527 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
2528 non-BLKmode arrays addressable.
2529
88961471
MK
25302009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
2531
2532 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
2533 * config/m68k/m68k.h: ... here.
2534 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
2535 m68k and fido.
2536
9961eb45
MJ
25372009-06-03 Martin Jambor <mjambor@suse.cz>
2538
2539 PR tree-optimization/40323
2540 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
2541 assignment.
2542
2f2c62a0
RG
25432009-06-03 Richard Guenther <rguenther@suse.de>
2544
2545 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2546 consistently.
2547
d6ced3b7
SZ
25482009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
2549
2550 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
2551 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
2552 JUMP_TABLE_DATA_P where applicable.
2553 * config/sh/sh.c: Ditto.
2554 * config/sh/sh.h: Ditto.
2555 * config/sh/sh.md: Ditto.
2556 * config/sh/symbian.c: Ditto.
2557
f3afc8a7
UB
25582009-06-03 Uros Bizjak <ubizjak@gmail.com>
2559
2560 * config/i386/driver-i386.c (describe_cache): Optimize
2561 concatenation of strings. Use snprintf instead of sprintf.
2562 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
2563 target when not compiling with GCC.
2564
1964788a
KK
25652009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
2566
2567 * config/sh/sh.c: Revert last change.
2568 (sh_expand_epilogue): Emit a blockage insn before the frame
2569 pointer adjustment unconditionally.
2570
8633c315
RS
25712009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2572
2573 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
2574 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
2575 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
2576 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
2577 to COLLECT_GCC_OPTIONS.
2578
781a1758
RS
25792009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2580
2581 * collect2.c (target_system_root): New variable.
2582 (main): Handle --sysroot=.
2583 (ignore_library): Strip the sysroot from the library path.
2584
dfb636dc
RS
25852009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2586
2587 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
2588 (collect2.o): Depend on collect2-aix.h.
2589 (collect2-aix.o): New rule.
2590 * collect2-aix.h: New file.
2591 * collect2-aix.c: Likewise.
2592 * collect2.c: Include collect2-aix.h. Don't undefine
2593 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
2594 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
2595 Use TARGET_AIX_VERSION instead of _AIX51.
2596 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
2597 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
2598 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
2599 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
2600 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
2601
51136ae8
RS
26022009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2603
2604 * collect2.c (ignore_library): Avoid premature post-increment
2605 and null deference.
2606
7f142d33
RS
26072009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2608
2609 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
2610 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
2611 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
2612 CROSS_DIRECTORY_STRUCTURE too.
2613 (LINK_LIBG_SPEC): Likewise.
2614 (LIB_SPEC): Add %R to sysroot paths.
2615 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
2616 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
2617 * config/rs6000/aix51.h: As for aix43.h.
2618 * config/rs6000/aix52.h: Likewise.
2619 * config/rs6000/aix53.h: Likewise.
2620 * config/rs6000/aix61.h: Likewise.
2621 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
2622 to the beginning of sysroot paths.
2623
9e74b7d2
AO
26242009-06-02 Alexandre Oliva <aoliva@redhat.com>
2625
2626 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
2627 INSN_LISTs that are out of the REG_NOTE range.
2628
a9f6ecee
AO
26292009-06-02 Alexandre Oliva <aoliva@redhat.com>
2630
2631 * loop-unroll.c (struct iv_to_split): Add pointer to next.
2632 (struct var_to_expand): Likewise.
2633 (struct opt_info): Add head and tail for linked lists of the above.
2634 (analyze_insn_to_expand_var): Initialize next.
2635 (analyze_iv_to_split_insn): Likewise.
2636 (analyze_insns_in_loop): Create linked lists.
2637 (allocate_basic_variable): Simplify for use without hash table.
2638 (insert_var_expansion_initialization): Likewise, make it type-safer.
2639 (combine_var_copies_in_loop_exit): Likewise.
2640 (apply_opt_in_copies): Walk lists rather than hash tables.
2641 (release_var_copies): Simplified and inlined by hand into...
2642 (free_opt_info): ... this function.
2643
69596c69
RG
26442009-06-02 Richard Guenther <rguenther@suse.de>
2645
2646 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2647 for field decls.
2648
fe8a7779
AO
26492009-06-02 Alexandre Oliva <aoliva@redhat.com>
2650
2651 * cfgexpand.c (gimple_expand_cfg): Discard the source location
2652 only for builtins that are not overridden.
2653
1bcca2c5
AO
26542009-06-02 Alexandre Oliva <aoliva@redhat.com>
2655
2656 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
2657 label string.
2658
8588f797
AO
26592009-06-02 Alexandre Oliva <aoliva@redhat.com>
2660
2661 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
2662
45f39d78
AO
26632009-06-02 Alexandre Oliva <aoliva@redhat.com>
2664
2665 * combine.c (move_deaths): Compare LUIDs within the same BB only.
2666
2aa7c49b
AO
26672009-06-02 Alexandre Oliva <aoliva@redhat.com>
2668
2669 * common.opt (fdump-unnumbered-links): New.
2670 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
2671 * print-rtl.c (flag_dump_unnumbered_links): New.
2672 (print_rtx): Test it.
2673
55b2829b
RE
26742009-06-02 Richard Earnshaw <rearnsha@arm.com>
2675
2676 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
2677 push/pop multiple to 8-byte alignment.
e63d4106 2678
6c0d7021
JJ
26792009-06-01 Jakub Jelinek <jakub@redhat.com>
2680
0aa34d44
JJ
2681 * config/i386/i386.c (queued_cfa_restores): New static variable.
2682 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
2683 functions.
2684 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
2685 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
2686 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
2687 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
2688 note unconditionally.
2689 (ix86_emit_restore_regs_using_mov): Likewise.
2690 (ix86_emit_restore_sse_regs_using_mov): Likewise.
2691 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
2692 it through to ix86_emit_restore_reg_using_pop.
2693 (ix86_emit_leave): Add RED_OFFSET argument. Call
2694 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
2695 instead of adding REG_CFA_OFFSET note unconditionally.
2696 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
2697 the above functions. Call ix86_add_queued_cfa_restore_notes when
2698 needed.
2699
2700 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
2701 force output of the label even for dwarf2out_do_cfi_asm.
2702 (add_fde_cfi): If -g2 and above and cfi might change CFA,
2703 force creation of CFI label and chain DW_CFA_set_loc jumping to it
2704 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
2705 caller.
2706 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
2707 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
2708 dwarf2out_cfi_label callers.
2709 * tree.h (dwarf2out_cfi_label): Adjust prototype.
2710 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
2711 Adjust dwarf2out_cfi_label callers.
2712 * config/vax/vax.c (vax_output_function_prologue): Likewise.
2713
604a6be9
JJ
2714 * config/i386/i386.h (struct machine_cfa_state,
2715 struct machine_function): Guard with ifndef USED_FOR_TARGET
2716 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
2717
df0026a7
JJ
2718 PR other/40024
2719 * emutls.c (__emutls_get_address): Change arr->size to mean number
2720 of allocated arr->data entries instead of # of slots + 1.
2721
6c0d7021
JJ
2722 PR middle-end/40316
2723 * recog.c (peep2_reinit_state): New function.
2724 (peephole2_init_state): Use it at the end of a basic block and also
2725 when seeing a RTX_FRAME_RELATED_P insn.
2726
49df2fb8
SE
27272009-06-01 Steve Ellcey <sje@cup.hp.com>
2728
2729 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
2730 fixuns_truncrfdi2): New.
2731 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
2732 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
2733 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
2734 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
2735 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
2736 *recip_approx): Remove.
2737 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
2738 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
2739 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
2740 move to div.md.
2741 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
2742 setf_exp_rf): New.
2743
67165eb3
ILT
27442009-06-01 Ian Lance Taylor <iant@google.com>
2745
2746 * attribs.c (register_attribute): Use CONST_CAST.
2747 * collect2.c (main): Use CONST_CAST2.
2748 (scan_prog_file): Likewise.
2749 * gcc.c (process_command, main): Likewise.
2750 * toplev.c (toplev_main): Likewise.
2751
2752 * c-typeck.c (handle_warn_cast_qual): New static function,
2753 partially broken out of build_c_cast.
2754 (build_c_cast): Call handle_warn_cast_qual.
2755 * doc/invoke.texi (Warning Options): Document new effect of
2756 -Wcast-qual.
2757
e74fe492
AH
27582009-06-01 Aldy Hernandez <aldyh@redhat.com>
2759
2760 * diagnostic.c (diagnostic_build_prefix): Always print columns.
2761 (diagnostic_report_current_module): Print columns.
2762 * common.opt (flag_show_column): Enable by default.
2763
7eba2d1f
LM
27642009-06-01 Luis Machado <luisgpm@br.ibm.com>
2765
2766 * alias.c (find_base_term): Check for NULL term before returning.
2767
ee88d9aa
MK
27682009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2769
2770 Revert due to PR40320:
ee88d9aa
MK
2771 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2772 * calls.c (emit_library_call_value_1): Don't force_operand for move
2773 and push insns.
2774
324c9b02 27752009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 2776 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
2777
2778 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2779 to be processed as a bitfield for constructor output purposes.
2780 * output.h (initializer_constant_valid_for_bitfield_p): Declare
2781 new function.
2782 * varasm.c (oc_local_state): New type, output_constructor
2783 local state to support communication with helpers.
2784 (oc_outer_state): New type, output_constructor outer state of
2785 relevance in recursive calls.
2786 (output_constructor_array_range): New output_constructor helper,
2787 extracted code for an array range element.
2788 (output_constructor_regular_field): New output_constructor helper,
2789 extracted code for an element that is not a bitfield.
2790 (output_constructor_bitfield): New output_constructor helper,
2791 extracted code for a bitfield element. Accept an OUTER state
2792 argument for recursive processing. Recurse on record or array
2793 CONSTRUCTOR values, possibly past noop conversions.
62295314 2794 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
2795 VALUE is a valid constant-valued expression for use in a static
2796 bit-field initializer.
62295314
OH
2797 (output_constructor): Rework to use helpers. Accept and honor an
2798 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
2799 prepared for nested constructors initializing bitfields.
2800 (output_constant): Feed OUTER in calls to output_constructor.
2801
0980d7fe
MK
28022009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2803
2804 * calls.c (emit_library_call_value_1): Don't force_operand for move
2805 and push insns.
2806
29661412
NC
28072009-06-01 Nick Clifton <nickc@redhat.com>
2808
2809 * doc/invoke.texi (IA-64 Options): Fix typo.
2810
e9dbe7bb
IR
28112009-06-01 Ira Rosen <irar@il.ibm.com>
2812
2813 PR tree-optimization/39129
2814 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
2815 printed message.
2816 (vect_do_peeling_for_loop_bound): Use
2817 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2818 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2819 (vect_loop_versioning): Likewise.
2820 (vect_create_cond_for_alias_checks): Fix indentation.
2821 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
2822 macros.
2823 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2824 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2825 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
2826 "control flow in loop".
2827 (vect_estimate_min_profitable_iters): Use
2828 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2829 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2830 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2831 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2832 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
2833 statement belongs to a group of strided accesses with the exact code
2834 check.
2835 (vectorizable_load): Likewise.
2836 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2837 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2838
5ac69a80
GP
28392009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
2840
2841 * config/freebsd-stdint.h: New file.
2842 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2843 Add freebsd-stdint.h to tm_file.
2844
54b2b460
RE
28452009-06-01 Richard Earnshaw <rearnsha@arm.com>
2846
2847 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2848 (thumb2_extendhidi2): Likewise.
2849
a7ca77cf
ILT
28502009-05-31 Ian Lance Taylor <iant@google.com>
2851
f3afc8a7 2852 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
2853
28542009-05-31 Ian Lance Taylor <iant@google.com>
2855
f3afc8a7 2856 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
2857 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2858 (ipa-reference.o): Depend upon gt-ipa-reference.h.
2859
1aec401e
JM
28602009-05-31 Jason Merrill <jason@redhat.com>
2861
2862 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 2863 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
2864 (dump_generic_node): Adjust.
2865 * diagnostic.h: Declare print_call_name.
2866 * gimple-pretty-print.c (dump_gimple_call): Use it.
2867
ed7910bb
KK
28682009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2869
2870 * config/sh/sh.md (ashldi3_std): New define_expand.
2871 (ashldi3): Use it.
2872
47ea8d4e
KK
28732009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2874
2875 PR target/40313
2876 * config/sh/sh.c: Include debug.h.
2877 (sh_expand_epilogue): Emit a blockage insn before the frame
2878 pointer adjustment also when dwarf2out_do_frame returns true.
2879
405e8b49
RE
28802009-05-31 Richard Earnshaw <rearnsha@arm.com>
2881
2882 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2883 (thumb2_extendqidi2): New pattern.
2884
71ece343
IR
28852009-05-31 Ira Rosen <irar@il.ibm.com>
2886
2887 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2888 mark phis for renaming.
2889 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2890 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2891 Call mark_sym_for_renaming.
2892 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
2893 * tree-vect-loop.c (vect_transform_loop): Remove
2894 vect_memsyms_to_rename initialization and a call to
2895 mark_set_for_renaming.
71ece343 2896
b3041944
JJ
28972009-05-31 Jakub Jelinek <jakub@redhat.com>
2898
2899 PR middle-end/40304
2900 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2901 frame related even if !set_cfa && style < 0.
2902
a1bda0d7
KT
29032009-05-30 Kai Tietz <kai.tietz@onevision.com>
2904
2905 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
2906 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2907 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2908 defining _WIN32 but not __CYGWIN__.
a1bda0d7 2909
acd26225
KG
29102009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2911
2912 * configure.ac: Add MPC support.
2913
2914 * config.in, configure: Regenerate.
2915
cd9c1ca8
RH
29162009-05-29 Richard Henderson <rth@redhat.com>
2917
2918 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2919 NOTE_INSN_BASIC_BLOCK.
2920 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2921 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2922 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2923 to be deleted.
2924 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2925 add in_use field.
2926 (add_cfi): Disable check redefining cfa away from drap.
2927 (lookup_cfa_1): Add remember argument; handle remember/restore.
2928 (lookup_cfa): Pass remember argument.
2929 (cfa_remember): New.
2930 (compute_barrier_args_size_1): Remove sibcall check.
2931 (dwarf2out_frame_debug_def_cfa): New.
2932 (dwarf2out_frame_debug_adjust_cfa): New.
2933 (dwarf2out_frame_debug_cfa_offset): New.
2934 (dwarf2out_frame_debug_cfa_register): New.
2935 (dwarf2out_frame_debug_cfa_restore): New.
2936 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2937 (dwarf2out_begin_epilogue): New.
2938 (dwarf2out_frame_debug_restore_state): New.
2939 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2940 DW_CFA_restore_state.
2941 (output_cfi_directive): Likewise.
2942 (convert_cfa_to_fb_loc_list): Likewise.
2943 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2944 * dwarf2out.h: Update.
2945 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2946 (copy_insn_1): Early out for null.
2947 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2948 and dwarf2out_frame_debug_restore_state.
2949 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2950 (prologue_insn_hash, epilogue_insn_hash): New.
2951 (free_after_compilation): Adjust freeing accordingly.
2952 (record_insns): Create hash table if needed; push insns into
2953 hash instead of array.
2954 (maybe_copy_epilogue_insn): New.
2955 (contains): Search hash table instead of array.
2956 (sibcall_epilogue_contains): Remove.
2957 (thread_prologue_and_epilogue_insns): Split eh_return insns
2958 and mark them as epilogues.
2959 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2960 scanning in terms of basic blocks.
2961 * insn-notes.def (CFA_RESTORE_STATE): New.
2962 * jump.c (returnjump_p_1): Accept EH_RETURN.
2963 (eh_returnjump_p_1, eh_returnjump_p): New.
2964 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2965 CFA_REGISTER, CFA_RESTORE): New.
2966 * rtl.def (EH_RETURN): New.
2967 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2968
2969 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2970 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2971
2972 * config/i386/i386.c (gen_push): Update cfa state.
2973 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
2974 add a CFA_ADJUST_CFA note.
2975 (ix86_dwarf_handle_frame_unspec): Remove.
2976 (ix86_expand_prologue): Update cfa state.
2977 (ix86_emit_restore_reg_using_pop): New.
2978 (ix86_emit_restore_regs_using_pop): New.
2979 (ix86_emit_leave): New.
2980 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2981 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2982 * config/i386/i386.h (struct machine_cfa_state): New.
2983 (ix86_cfa_state): New.
2984 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2985 (eh_return_internal): Merge from eh_return_<mode>,
2986 use eh_return rtx, split w/ epilogue.
2987
72b5577d
ILT
29882009-05-29 Ian Lance Taylor <iant@google.com>
2989
2990 * builtins.c (validate_gimple_arglist): Don't use va_arg with
2991 enum type.
2992 * calls.c (emit_library_call_value_1): Likewise.
2993
2994 * c-typeck.c (c_build_va_arg): New function.
2995 * c-tree.h (c_build_va_arg): Declare.
2996 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2997 instead of build_va_arg.
2998
7a2faca1
EB
29992009-05-29 Eric Botcazou <ebotcazou@adacore.com>
3000
3001 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
3002 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
3003 (ptr_difference_cost): Use affine combinations to compute it.
3004 (difference_cost): Likewise.
3005 (get_computation_cost_at): Compute more accurate cost for addresses
3006 if the ratio is a multiplier allowed in addresses.
3007 For non-addresses, consider that an additional offset or symbol is
3008 added only once.
3009
725fd454
JJ
30102009-05-29 Jakub Jelinek <jakub@redhat.com>
3011
a0987204
JJ
3012 * config/i386/i386.c (ix86_decompose_address): Avoid useless
3013 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
3014
725fd454
JJ
3015 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
3016 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
3017 (prefix_rex): For UNIT_MMX don't imply the prefix by default
3018 if MODE_DI.
3019 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
3020 to 1 for TYPE_SSE{IADD1,CVT1}.
3021 (prefix_vex_imm8): Removed.
3022 (length_vex): Only pass 1 as second argument to
3023 ix86_attr_length_vex_default if prefix_extra is 0.
3024 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
3025 (length): For prefix vex computation use length_immediate
3026 attribute instead of prefix_vex_imm8.
3027 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
3028 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
3029 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
3030 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
3031 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
3032 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
3033 a space in between the operands.
3034 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
3035 if one operand is 0xff and the other one si, di, bp or sp.
3036 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
3037 other one si, di, bp or sp.
3038 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
3039 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
3040 type and mode attributes.
3041 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
3042 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
3043 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
3044 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
3045 prefix_data16 attribute iff MODE_DF.
3046 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
3047 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
3048 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
3049 constm128_operand in length_immediate computation.
3050 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
3051 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
3052 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
3053 length_immediate attribute to 1.
3054 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
3055 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
3056 for certain alternatives.
3057 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
3058 prefix_data16 attribute if MODE_V1DF.
3059 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
3060 length_immediate to 1.
3061 (set_got_rex64, set_rip_rex64): Remove length attribute, set
3062 length_address to 4, set mode attribute to MODE_DI.
3063 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
3064 (fxam<mode>2_i387): Set length attribute to 4.
3065 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
3066 *prefetch_3dnow_rex): Override length_address attribute.
3067 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
3068 attributes.
3069 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
3070 (constm128_operand): Removed.
3071 * config/i386/i386.c (memory_address_length): For
3072 disp && !index && !base in 64-bit mode account for SIB byte if
3073 print_operand_address can't optimize disp32 into disp32(%rip)
3074 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
3075 for fs: or gs: segment.
3076 (ix86_attr_length_immediate_default): When checking if shortform
3077 is possible, truncate immediate to the length of the non-shortened
3078 immediate.
3079 (ix86_attr_length_address_default): Ignore MEM_P operands
3080 with X constraint.
3081 (ix86_attr_length_vex_default): Only check for DImode on
3082 GENERAL_REG_P operands.
3083 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
3084 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
3085 (sse_cvttps2pi): Clear prefix_rep attribute.
3086 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
3087 attribute.
3088 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
3089 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
3090 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
3091 iff operand 2 is const_int_operand.
3092 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
3093 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
3094 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
3095 instead of vex.
3096 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
3097 prefix_data16.
3098 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
3099 prefix_data16 attribute for movlpd and movhpd instructions.
3100 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
3101 length_immediate for shufpd instruction.
3102 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
3103 (avx_cmpp<avxmodesuffixf2c><mode>3,
3104 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
3105 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
3106 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 3107 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
3108 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
3109 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
3110 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
3111 prefix_data16 attribute for the first alternative to 1.
3112 (*avx_loadlps): Override length_immediate for the first alternative.
3113 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
3114 attributes for second alternative.
3115 (*vec_concatv2sf_sse4_1): Override length_immediate and
3116 prefix_data16 attributes for second alternative.
3117 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
3118 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
3119 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
3120 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
3121 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
3122 prefix_data16 and length_immediate to 1.
3123 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
3124 to 1.
3125 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 3126 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
3127 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
3128 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
3129 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
3130 *sse4_1_pextrd): Set length_immediate to 1.
3131 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
3132 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
3133 to 1.
3134 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
3135 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
3136 length_immediate to 1 for second alternative.
3137 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
3138 prefix_extra and length_immediate attributes for the first
3139 alternative.
3140 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
3141 first alternative.
3142 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
3143 to 1 for the first and third alternative.
3144 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
3145 alternative.
3146 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
3147 attribute.
3148 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
3149 attribute to 0.
3150 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
3151 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
3152 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
3153 *avx_psign<mode>3): Set prefix_extra attribute to 1.
3154 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
3155 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
3156 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
3157 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 3158 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
3159 (ssse3_palignrti): Override length_immediate to 1.
3160 (ssse3_palignrdi): Override length_immediate to 1, override
3161 prefix_rex attribute.
f3afc8a7 3162 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
3163 (sse4a_extrqi): Override length_immediate to 2.
3164 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
3165 (sse4a_insertq): Override prefix_data16 to 0.
3166 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
3167 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
3168 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
3169 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
3170 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
3171 and length_immediate to 1.
3172 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
3173 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
3174 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
3175 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
3176 and length_immediate to 1.
3177 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
3178 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
3179 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
3180 avx_ptest256): Override prefix_extra to 1.
3181 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
3182 Override prefix_data16 and length_immediate to 1.
3183 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
3184 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
3185 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
3186 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
3187 prefix_data16 to 0 and prefix_extra to 2.
3188 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
3189 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
3190 attribute.
3191 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
3192 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
3193 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
3194 and prefix_extra to 2.
3195 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
3196 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
3197 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
3198 avx_vpermilvar<mode>3,
3199 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
3200 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
3201 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
3202 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
3203 Override prefix_extra to 1.
3204 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
3205 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
3206 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
3207 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
3208 prefix_extra and length_immediate to 1.
3209 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
3210 modrm to 0.
3211 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
3212 to 1 for the first alternative.
3213 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
3214 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
3215 cases.
3216 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
3217 *movv2sf_internal_avx, *movv2sf_internal): Override
3218 prefix_rep attribute for certain alternatives.
3219 (*mov<mode>_internal): Override prefix_rep or prefix_data16
3220 attributes for certain alternatives.
3221 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
3222 attributes for certain alternatives.
3223 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
3224 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
3225 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
3226 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
3227 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
3228 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
3229 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
3230 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
3231 length_immediate to 1 if operand 2 is const_int_operand.
3232 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 3233 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
3234 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
3235 using old 3DNOW insn rather than SSE/3DNOW_A.
3236 (mmx_emms, mmx_femms): Clear modrm attribute.
3237
0674b9d0
MJ
32382009-05-29 Martin Jambor <mjambor@suse.cz>
3239
3240 * tree-sra.c: New implementation of SRA.
3241
3242 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
3243 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
3244 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
3245 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
3246 (SRA_MAX_STRUCTURE_COUNT): Removed.
3247 (SRA_FIELD_STRUCTURE_RATIO): Removed.
3248 * doc/invoke.texi (sra-max-structure-size): Removed.
3249 (sra-field-structure-ratio): Removed.
3250
616f21df
JJ
32512009-05-29 Jakub Jelinek <jakub@redhat.com>
3252
3253 PR middle-end/40291
3254 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
3255 before expansion.
3256
da7ba240
AB
32572009-05-29 Andrey Belevantsev <abel@ispras.ru>
3258
3259 PR rtl-optimization/40101
3260 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
3261 seqno. Adjust comment.
3262 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
3263 inserting bookkeeping before a jump, the jump is not scheduled.
3264 When no positive seqno found, provide a value. Add comment.
3265
71dcd609
RG
32662009-05-29 Richard Guenther <rguenther@suse.de>
3267
3268 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
3269 short-cutting on the first component.
3270
a900ae6b
JJ
32712009-05-29 Jakub Jelinek <jakub@redhat.com>
3272
3273 PR middle-end/39958
3274 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
3275 for trees other than decls/types.
3276
821bb7f8
RG
32772009-05-29 Richard Guenther <rguenther@suse.de>
3278
3279 * tree-ssa-operands.c (get_expr_operands): Do not handle
3280 INDIRECT_REFs in the handled-component case. Remove
3281 unused get_ref_base_and_extent case.
3282 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
3283 tree_low_cst and host_integerp where possible.
3284 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
3285 codes for equivalence.
3286 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
3287
e997fb9c
DB
32882009-05-29 David Billinghurst <billingd@gcc.gnu.org>
3289
3290 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
3291 to tmake_file for i[34567]86-*-cygwin*.
3292
58195b74
JJ
32932009-05-29 Jakub Jelinek <jakub@redhat.com>
3294
3295 PR target/40017
3296 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
3297 (altivec_categorize_keyword, init_vector_keywords,
3298 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
3299 similar to bool.
3300
055df276
KT
33012009-05-29 Kai Tietz <kai.tietz@onevision.com>
3302
3303 * tree.c (handle_dll_attribute): Check if node is
3304 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
3305
f5939ef3
RE
33062009-05-29 Richard Earnshaw <rearnsha@arm.com>
3307
3308 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
3309 component.
3310 (thumb2_zero_extendqidi2): Likewise.
3311
c185de40
KK
33122009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3313
3314 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
3315 instead of gen_movrt.
3316 * config/sh/sh.md (movrt): Remove.
3317
bf3c6caf
SE
33182009-05-28 Steve Ellcey <sje@cup.hp.com>
3319
f3afc8a7 3320 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
3321 Add -msdata, -mfused-madd, -mno-inline-float-divide,
3322 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
3323 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
3324 -msched-prefer-non-control-spec-insns,
3325 -msched-stop-bits-after-every-cycle,
3326 -msched-count-spec-in-critical-path,
3327 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 3328 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
3329 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
3330 and -msched-spec-verbose.
3331
8a66e987
JM
33322009-05-28 Joseph Myers <joseph@codesourcery.com>
3333
f3afc8a7 3334 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
3335 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
3336 error if used.
3337 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
3338
b45d2719
RG
33392009-05-28 Richard Guenther <rguenther@suse.de>
3340
3341 * tree-ssa-alias.c (ao_ref_init): New function.
3342 (ao_ref_base): Likewise.
3343 (ao_ref_base_alias_set): Likewise.
3344 (ao_ref_alias_set): Likewise.
3345 (refs_may_alias_p_1): Change signature.
3346 (refs_may_alias_p): Adjust.
3347 (refs_anti_dependent_p): Likewise.
3348 (refs_output_dependent_p): Likewise.
3349 (call_may_clobber_ref_p_1): Change signature.
3350 (call_may_clobber_ref_p): Adjust.
3351 (stmt_may_clobber_ref_p_1): New function split out from ...
3352 (stmt_may_clobber_ref_p): ... here.
3353 (maybe_skip_until): Adjust signature.
3354 (get_continuation_for_phi): Likewise.
3355 (walk_non_aliased_vuses): Likewise.
3356 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
3357 (ao_ref_init): Declare.
3358 (ao_ref_base): Likewise.
3359 (ao_ref_alias_set): Likewise.
3360 (stmt_may_clobber_ref_p_1): Likewise.
3361 (walk_non_aliased_vuses): Adjust.
3362 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
3363 (get_ref_from_reference_ops): remove.
3364 (vn_reference_lookup_2): Adjust signature.
3365 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 3366 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
3367 (vn_reference_lookup): Adjust.
3368 (vn_reference_insert): Likewise.
3369 (vn_reference_insert_pieces): Adjust signature.
3370 (visit_reference_op_call): Adjust.
3371 * tree-ssa-pre.c (get_expr_type): Simplify.
3372 (phi_translate_1): Adjust.
3373 (compute_avail): Likewise.
3374 (translate_vuse_through_block): Do not re-build trees.
3375 (value_dies_in_block_x): Likewise.
3376 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
3377 fields.
3378 (vn_reference_lookup_pieces): Adjust declaration.
3379 (vn_reference_insert_pieces): Likewise.
3380
554223b6
BK
33812009-05-28 Benjamin Kosnik <bkoz@redhat.com>
3382
3383 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
3384 with checking disabled.
3385
233215fe
DK
33862009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
3387
3388 PR target/37216
3389
3390 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
3391 macro definition for support of three-operand format aligned
3392 .comm directive in assembler on cygwin/pe/mingw target OS.
3393 * configure: Regenerate.
3394 * config.h: Regenerate.
3395
3396 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
3397 aligned form of .comm directive if -mpe-aligned-commons is in effect.
3398 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
3399
3400 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
3401 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
3402
24adb18f
IR
34032009-05-28 Ira Rosen <irar@il.ibm.com>
3404
3405 PR tree-optimization/40254
3406 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
3407 in analysis of basic blocks.
3408
2c5bfdf7
AN
34092009-05-28 Adam Nemet <anemet@caviumnetworks.com>
3410
3411 PR middle-end/33699
f3afc8a7 3412 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
3413 * target-def.h (TARGET_CONST_ANCHOR): New macro.
3414 (TARGET_INITIALIZER): Use it.
3415 * cse.c (CHEAPER): Move it up to the other macros.
3416 (insert): Rename this ...
3417 (insert_with_costs): ... to this. Add cost parameters. Update
3418 function comment.
3419 (insert): New function. Call insert_with_costs.
3420 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
3421 find_reg_offset_for_const, try_const_anchors): New functions.
3422 (cse_insn): Call try_const_anchors. Adjust cost of src_related
3423 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 3424 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
3425 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
3426
9e6aced0
AO
34272009-05-28 Alexandre Oliva <aoliva@redhat.com>
3428
3429 * tree-inline.c (remap_decls): Enable nonlocalized variables
3430 when not optimizing.
3431
89fbbe4e
AO
34322009-05-28 Alexandre Oliva <aoliva@redhat.com>
3433
3434 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
3435 Simplify other tests involving optimize.
3436
e455776a
TT
34372009-05-27 Tom Tromey <tromey@redhat.com>
3438
3439 * unwind-dw2.c (_Unwind_DebugHook): New function.
3440 (uw_install_context): Call _Unwind_DebugHook.
3441
cea32bca
TT
34422009-05-27 Tom Tromey <tromey@redhat.com>
3443
3444 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
3445
c607156f
ILT
34462009-05-27 Ian Lance Taylor <iant@google.com>
3447
3448 * Makefile.in (LINKER, LINKER_FLAGS): Define.
3449 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
3450 (ALL_LINKERFLAGS): Define.
3451 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
3452 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3453 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
3454 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3455 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
3456 $(LINKER_FOR_BUILD).
3457 (build/gcov-iov$(build_exeext)): Likewise.
3458
ec0a1343
JB
34592009-05-27 Julian Brown <julian@codesourcery.com>
3460
3461 * gcse.c (target.h): Include.
3462 (can_assign_to_reg_without_clobbers_p): Check that the target allows
3463 copy of argument to a pseudo register.
3464
ac80ba07
DN
34652009-05-27 Diego Novillo <dnovillo@google.com>
3466
3467 * tree-ssa-live.c (dump_scope_block): Document arguments.
3468 (dump_scope_blocks): Document.
3469 (debug_scope_blocks): New.
3470 * tree-flow.h (debug_scope_blocks): Declare.
3471
d1803a17
DC
34722009-05-21 Denis Chertykov <denisc@overta.ru>
3473
f3afc8a7 3474 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 3475
51fb7760 34762009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
3477
3478 * expr.c (target_align): New function. Alignment the TARGET of an
3479 assignment may be assume to have.
3480 (highest_pow2_factor_for_target): Use it instead of relying on
3481 immediate tree attributes of TARGET, not necessarily honored when
3482 intermediate bitfields are involved.
3483
634fa334
L
34842009-05-27 H.J. Lu <hongjiu.lu@intel.com>
3485
3486 PR target/40266
3487 * config/i386/driver-i386.c (host_detect_local_cpu): Support
3488 AVX, SSE4, AES, PCLMUL and POPCNT.
3489
65332587
DN
34902009-05-27 Diego Novillo <dnovillo@google.com>
3491
3492 * tree-pretty-print.c (dump_location): New.
3493 (dump_generic_node): Call it.
3494 Factor code to handle BLOCK nodes ...
3495 (dump_block_node): ... here.
3496
3e17e31d
RAE
34972009-05-27 Rafael Avila de Espindola <espindola@google.com>
3498
f3afc8a7
UB
3499 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
3500 with it.
3e17e31d
RAE
3501 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
3502 included.
3503 * gcc-plugin.h: Include config.h and system.h.
3504 (IN_GCC): Define if not defined.
3505
5e370570
HPN
35062009-05-27 Hans-Peter Nilsson <hp@axis.com>
3507
3508 PR middle-end/40249
3509 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
3510 with -fno-inline.
3511
d000f0d9
SZ
35122009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
3513
3514 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
3515 applicable.
3516 * config/m32r/m32r.h: Ditto.
3517 * config/m32r/m32r.md: Ditto.
3518 * config/m32r/predicates.md: Ditto.
3519
82f331ff
AO
35202009-05-27 Alexandre Oliva <aoliva@redhat.com>
3521
3522 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
3523
ae2392a9
BS
35242009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
3525
3526 * doc/plugins.texi
3527 (Loading plugins): typo.
3528 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
3529 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3530 (Interacting with the GCC Garbage Collector): Added new section.
3531 (Giving information about a plugin): Added new section for
3532 PLUGIN_INFO.
ae2392a9
BS
3533 * ggc.h (ggc_register_root_tab): Added declaration.
3534 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
3535 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
3536 (register_callback): Improved comment in declaration.
f3afc8a7
UB
3537 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
3538 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
3539 (ggc_register_root_tab) Added new routine.
3540 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
3541 PLUGIN_GGC_MARKING event.
3542 * ggc-zone.c: Include plugin.h.
3543 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3544 * ggc-page.c: Include plugin.h.
3545 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3546 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
3547 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
3548 (register_callback): check lack of callbacks for
3549 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
3550 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
3551 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
3552 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3553 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
3554 dependency on plugin.h.
3555 (plugin.o): Added dependency on ggc.h...
3556
f0cfd3a8
RG
35572009-05-26 Richard Guenther <rguenther@suse.de>
3558
3559 PR middle-end/40248
3560 Revert
3561 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3562 with mismatched comparison modes.
3563
3564 * expr.c (expand_expr_real_1): Expand the operand of a
3565 VIEW_CONVERT_EXPR in its natural mode.
3566
7980bfb8
ILT
35672009-05-26 Ian Lance Taylor <iant@google.com>
3568
3569 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
3570 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
3571 (ALL_COMPILERFLAGS): Define.
3572 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
3573 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3574 (collect2$(exeext), collect2.o): Likewise.
3575 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
3576 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
3577 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
3578 (libbackend.o, intl.o, cppdefault.o): Likewise.
3579 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3580 (build/%.o): Use $(COMPILER_FOR_BUILD).
3581 (build/gen%$(build_exeext)): Likewise.
3582 (build/gcov-iov$(build_exeext)): LIkewise.
3583 * config/t-darwin (darwin.o): Use $(COMPILER).
3584 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
3585 * config/t-sol2 (sol2-c.o): Likewise.
3586 (sol2.o): Likewise.
3587 * config/t-vxworks (vxworks.o): Likewise.
3588 * config/x-darwin (host-darwin.o): Likewise.
3589 * config/x-hpux (host-hpux.o): Likewise.
3590 * config/x-linux (host-linux.o): Likewise.
3591 * config/x-solaris (host-solaris.o): Likewise.
3592 * config/alpha/x-alpha (driver-alpha.o): Likewise.
3593 * config/arm/t-arm (arm-c.o): Likewise.
3594 * config/arm/t-pe (pe.o): Likewise.
3595 * config/arm/t-wince-pe (pe.o): Likewise.
3596 * config/i386/t-cygming (winnt.o): Likewise.
3597 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
3598 * config/i386/t-cygwin (cygwin1.o): Likewise.
3599 (cygwin2.o): Likewise.
3600 * config/i386/t-i386 (i386-c.o): Likewise.
3601 * config/i386/t-interix (winnt.o): Likewise.
3602 * config/i386/t-netware (netware.o): Likewise.
3603 * config/i386/t-nwld (nwld.o): Likewise.
3604 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3605 * config/i386/x-i386 (driver-i386.o): Likewise.
3606 * config/i386/x-cygwin (host-cygwin.o): Likewise.
3607 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
3608 * config/ia64/t-ia64 (ia64-c.o): Likewise.
3609 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
3610 * config/mips/x-native (driver-native.o): Likewise.
3611 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
3612 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3613 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3614 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
3615 * config/score/t-score-elf (score7.o): Likewise.
3616 (score3.o): Likewise.
3617 * config/sh/t-sh (sh-c.o): Likewise.
3618 * config/sh/t-symbian (sh-c.o): Likewise.
3619 (symbian.o): Likewise.
3620 * config/spu/t-spu-elf (spu-c.o): Likewise.
3621 * config/v850/t-v850 (v850-c.o): Likewise.
3622 * config/v850/t-v850e (v850-c.o): Likewise.
3623
23977d3c
RG
36242009-05-26 Richard Guenther <rguenther@suse.de>
3625
3626 PR tree-optimization/40122
3627 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
3628 VECTOR_CSTs if possible.
3629 (fold_gimple_assign): Likewise.
3630
3d62b895
RG
36312009-05-26 Richard Guenther <rguenther@suse.de>
3632
3633 PR middle-end/40252
3634 * fold-const.c (fold_binary): Use the correct types for building
3635 rotates.
3636
12346147
RG
36372009-05-26 Richard Guenther <rguenther@suse.de>
3638
3639 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
3640 redundant calls to merge_alias_info.
3641 (bump_vector_ptr): Likewise.
3642 * tree-ssa-copy.c (merge_alias_info): Remove.
3643 (replace_exp_1): Remove call to merge_alias_info.
3644 (propagate_tree_value): Likewise.
3645 (fini_copy_prop): Propagate points-to info.
3646 * tree-flow.h (merge_alias_info): Remove.
3647
807d5e6f
HS
36482009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
3649
3650 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
3651
85057983
JH
36522009-05-25 Jan Hubicka <jh@suse.cz>
3653
3654 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3655 * cgraph.h (struct inline_summary): New filed self_wize,
3656 size_inlining_benefit, self_time and time_inlining_benefit.
3657 (struct cgraph_global_info): Replace insns by time ans size fields.
3658 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3659 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3660 (ipcp_update_callgraph): Do not touch function bodies.
3661 * ipa-inline.c: Include except.h
3662 (MAX_TIME): New constant.
3663 (overall_insns): Remove.
3664 (leaf_node_p): New.
3665 (overall_size, max_benefit): New static variables.
3666 (cgraph_estimate_time_after_inlining): New function.
3667 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3668 (cgraph_clone_inlined_nodes): Update size.
3669 (cgraph_mark_inline_edge): Update size.
3670 (cgraph_estimate_growth): Use size info.
3671 (cgraph_check_inline_limits): Check size.
3672 (cgraph_default_inline_p): Likewise.
3673 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3674 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3675 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3676 and times.
85057983
JH
3677 (cgraph_decide_inlining): Likewise.
3678 (cgraph_decide_inlining_incrementally): Likewise; honor
3679 PARAM_EARLY_INLINING_INSNS.
3680 (likely_eliminated_by_inlining_p): New predicate.
3681 (estimate_function_body_sizes): New function.
3682 (compute_inline_parameters): Use it.
3683 * except.c (must_not_throw_labels): New function.
3684 * except.h (must_not_throw_labels): Declare.
3685 * tree-inline.c (init_inline_once): Kill inlining_weigths
3686 * tree-ssa-structalias.c: Avoid uninitialized warning.
3687 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3688 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3689 (PARAM_INLINE_CALL_COST): Remove.
3690 (PARAM_EARLY_INLINING_INSNS): New.
3691
01df5c8a
RG
36922009-05-25 Richard Guenther <rguenther@suse.de>
3693
3694 PR tree-optimization/36327
3695 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 3696 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
3697 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
3698 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
3699 for union COMPONENT_REFs.
3700 (vn_reference_lookup_3): New callback. Lookup from memset
3701 and CONSTRUCTOR assignment, translate through struct copies.
3702 (vn_reference_lookup_pieces): Make sure to not free the
3703 passed operands array. Adjust walk_non_aliased_vuses call.
3704 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
3705 make sure we do not leak memory.
3706
6b8ed145
RG
37072009-05-25 Richard Guenther <rguenther@suse.de>
3708
3709 * tree-ssa-alias.h (dump_points_to_solution): Declare.
3710 * tree-inline.c (expand_call_inline): Reset the escaped and
3711 callused solutions.
3712 * tree-ssa-structalias.c (pass_build_ealias): New.
3713 * tree-pass.h (pass_build_ealias): Declare.
3714 * passes.c (init_optimization_passes): Add PTA during
3715 early optimizations.
3716 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
3717 and CALLUSED solutions.
3718 (dump_points_to_solution): New function, split out from ...
3719 (dump_points_to_info_for): ... here.
3720 * tree-parloops.c (parallelize_loops): Reset the escaped and
3721 callused solutions.
3722
0adcf178
RO
37232009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3724
3725 PR bootstrap/40027
3726 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
3727 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
3728
12aaf609
IR
37292009-05-25 Ira Rosen <irar@il.ibm.com>
3730
3731 PR tree-optimization/40238
3732 * tree-vect-stmts.c (vect_init_vector): Insert initialization
3733 statements after basic block's labels.
3734 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
3735 to free the allocated memory.
3736
7f9a14e3
KK
37372009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
3738
3739 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
3740 return address with a USE.
3741
b842d478
RG
37422009-05-24 Richard Guenther <rguenther@suse.de>
3743
3744 PR middle-end/40233
3745 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
3746 array type from the main variant of the inner type.
3747
8db7b33f
JBG
37482009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3749
3750 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
3751 definition to bool (from int) to un-break build.
3752 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
3753
cff4e50d
PB
37542009-05-24 Paolo Bonzini <bonzini@gnu.org>
3755
3756 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
3757 discard_stmt_changes): Delete.
3758 * tree-ssa-operands.c (scb_stack): Delete.
3759 (init_ssa_operands): Do not initialize it.
3760 (fini_ssa_operands): Do not free it.
3761 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
3762
3763 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
3764 update_stmt, remove the others. Fix comments.
3765 * tree-dfa.c (optimize_stack_restore): Likewise.
3766 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3767 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3768 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3769 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3770 Likewise.
3771 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3772 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
3773 (dom_opt_finalize_block): Likewise, adjusting access to
3774 stmts_to_rescan.
cff4e50d
PB
3775 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3776 (stmts_to_rescan): Change item type to gimple.
3777 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3778
a70d6342
IR
37792009-05-24 Ira Rosen <irar@il.ibm.com>
3780
3781 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3782 * tree-pass.h (pass_slp_vectorize): New pass.
3783 * params.h (SLP_MAX_INSNS_IN_BB): Define.
3784 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3785 * tree-vectorizer.c (timevar.h): Include.
3786 (user_vect_verbosity_level): Declare.
3787 (vect_location): Fix comment.
3788 (vect_set_verbosity_level): Update user_vect_verbosity_level
3789 instead of vect_verbosity_level.
3790 (vect_set_dump_settings): Add an argument. Ignore user defined
3791 verbosity if dump flags require higher level of verbosity. Print to
3792 stderr only for loop vectorization.
3793 (vectorize_loops): Update call to vect_set_dump_settings.
3794 (execute_vect_slp): New function.
3795 (gate_vect_slp): Likewise.
3796 (struct gimple_opt_pass pass_slp_vectorize): New.
3797 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
3798 access its members.
3799 (vec_info_for_bb): New function.
3800 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
3801 (VECTORIZATION_ENABLED): New macro.
3802 (SLP_ENABLED, SLP_DISABLED): Likewise.
3803 (vect_is_simple_use): Add bb_vec_info argument.
3804 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3805 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3806 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3807 vect_schedule_slp, vect_analyze_slp): Likewise.
3808 (vect_analyze_stmt): Add slp_tree argument.
3809 (find_bb_location): Declare.
3810 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3811 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3812 (vect_analyze_loop_operations, vect_analyze_loop,
3813 get_initial_def_for_induction, vect_create_epilog_for_reduction,
3814 vect_finalize_reduction, vectorizable_reduction,
3815 vectorizable_live_operation, vect_transform_loop): Likewise.
3816 * tree-data-ref.c (dr_analyze_innermost): Update comment,
3817 skip evolution analysis if analyzing a basic block.
3818 (dr_analyze_indices): Likewise.
3819 (initialize_data_dependence_relation): Skip the test whether the
3820 object is invariant for basic blocks.
3821 (compute_all_dependences): Skip dependence analysis for data
3822 references in basic blocks.
3823 (find_data_references_in_stmt): Don't fail in case of invariant
3824 access in basic block.
3825 (find_data_references_in_bb): New function.
3826 (find_data_references_in_loop): Move code to
782dc37a 3827 find_data_references_in_bb and add a call to it.
a70d6342
IR
3828 (compute_data_dependences_for_bb): New function.
3829 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3830 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3831 that STEP is 0.
3832 (vect_analyze_data_ref_dependence): Check for interleaving in case of
3833 unknown dependence in basic block and fail in case of dependence in
3834 basic block.
3835 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3836 dependence instances from either loop or basic block vectorization
3837 info.
3838 (vect_compute_data_ref_alignment): Check if it is loop vectorization
3839 before calling nested_in_vect_loop_p.
3840 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3841 dependence instances from either loop or basic block vectorization
3842 info.
3843 (vect_verify_datarefs_alignment): Likewise.
3844 (vect_enhance_data_refs_alignment): Adjust function calls.
3845 (vect_analyze_data_refs_alignment): Likewise.
3846 (vect_analyze_group_access): Fix printing. Skip different checks if
3847 DR_STEP is 0. Keep strided stores either in loop or basic block
3848 vectorization data structure. Fix indentation.
3849 (vect_analyze_data_ref_access): Fix comments, allow zero step in
3850 basic blocks.
3851 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3852 dependence instances from either loop or basic block vectorization
3853 info.
3854 (vect_analyze_data_refs): Update comment. Call
3855 compute_data_dependences_for_bb to analyze basic blocks.
3856 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3857 case of loop vectorization. In case of basic block vectorization use
782dc37a 3858 data-ref itself as a base.
a70d6342
IR
3859 (vect_create_data_ref_ptr): In case of basic block vectorization:
3860 don't advance the pointer, add new statements before the current
3861 statement. Adjust function calls.
3862 (vect_supportable_dr_alignment): Support only aligned accesses in
3863 basic block vectorization.
3864 * common.opt (ftree-slp-vectorize): New flag.
3865 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
3866 (vect_pattern_recog_1): Likewise.
3867 * tree-vect-stmts.c (process_use): Likewise.
3868 (vect_init_vector): Add new statements in the beginning of the basic
3869 block in case of basic block SLP.
3870 (vect_get_vec_def_for_operand): Adjust function calls.
3871 (vect_finish_stmt_generation): Likewise.
3872 (vectorizable_call): Add assert that it is loop vectorization, adjust
3873 function calls.
3874 (vectorizable_conversion, vectorizable_assignment): Likewise.
3875 (vectorizable_operation): In case of basic block SLP, take
3876 vectorization factor from statement's type and skip the relevance
3877 check. Adjust function calls.
3878 (vectorizable_type_demotion): Add assert that it is loop
3879 vectorization, adjust function calls.
3880 (vectorizable_type_promotion): Likewise.
3881 (vectorizable_store): Check for outer loop only in case of loop
3882 vectorization. Adjust function calls. For basic blocks, skip the
3883 relevance check and don't advance pointers.
3884 (vectorizable_load): Likewise.
3885 (vectorizable_condition): Add assert that it is loop vectorization,
3886 adjust function calls.
3887 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3888 that it is not reduction, get vector type, call only supported
782dc37a 3889 functions, skip loop specific parts.
a70d6342
IR
3890 (vect_transform_stmt): Check for outer loop only in case of loop
3891 vectorization.
3892 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3893 (vect_is_simple_use): Fix comment, add new argument, fix conditions
3894 for external definition.
3895 * passes.c (pass_slp_vectorize): New pass.
3896 * tree-vect-slp.c (find_bb_location): New function.
3897 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3898 check for patterns only in loops.
3899 (vect_build_slp_tree): Add argument, adjust function calls, fail in
3900 case of multiple types in basic block SLP.
3901 (vect_mark_slp_stmts_relevant): New function.
3902 (vect_supported_load_permutation_p): Fix comment.
3903 (vect_analyze_slp_instance): Add argument. In case of basic block
3904 SLP, take vectorization factor from statement's type, check that
3905 unrolling factor is 1. Adjust function call. Save SLP instance in
3906 either loop or basic block vectorization structure. Return FALSE,
3907 if SLP failed.
3908 (vect_analyze_slp): Add argument. Get strided stores groups from
3909 either loop or basic block vectorization structure. Return FALSE
3910 if basic block SLP failed.
3911 (new_bb_vec_info): New function.
3912 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3913 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3914 (vect_schedule_slp): Add argument. Get SLP instances from either
3915 loop or basic block vectorization structure. Set vectorization factor
3916 to be 1 for basic block SLP.
3917 (vect_slp_transform_bb): New function.
3918 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3919
0676c393
MM
39202009-05-23 Mark Mitchell <mark@codesourcery.com>
3921
3922 * final.c (shorten_branches): Do not align labels for jump tables.
3923 (final_scan_insn): Use JUMP_TABLE_DATA_P.
3924
94324dae
EB
39252009-05-23 Eric Botcazou <ebotcazou@adacore.com>
3926
3927 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3928 Remove outdated reference to flow.c and fix nits.
3929 * doc/gccint.texi: Tweak RTL description.
3930 * doc/rtl.texi: Likewise.
3931
92bffc14
DC
39322009-05-23 Denis Chertykov <chertykov@gmail.com>
3933
3934 * config/avr/avr.c: Change my email address.
3935 * config/avr/avr.h: Likewise.
3936 * config/avr/avr.md: Likewise.
3937 * config/avr/avr-protos.h: Likewise.
3938 * config/avr/libgcc.S: Likewise.
3939
eec9405e
TS
39402009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3941
3942 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3943 (spu_split_load, spu_split_store): Change return type to int.
3944 (spu_split_convert): Declare.
3945 * config/spu/predicates.md (spu_mem_operand): Remove.
3946 (spu_mov_operand): Update.
3947 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3948 * config/spu/spu.c (regno_aligned_for_load): Remove.
3949 (reg_aligned_for_addr, spu_expand_load): Define.
3950 (spu_expand_extv): Reimplement and handle MEM.
3951 (spu_expand_insv): Handle MEM.
3952 (spu_sched_reorder): Handle insn's with length 0.
3953 (spu_legitimate_address_p): Reimplement.
3954 (store_with_one_insn_p): Return TRUE for any mode with size
3955 larger than 16 bytes.
3956 (address_needs_split): Define.
3957 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3958 operands.
3959 (spu_convert_move): Define.
782dc37a 3960 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
3961 (spu_split_store): Change all MEM's to TImode.
3962 (spu_init_expanders): Preallocate registers that correspond to
3963 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3964 mark_reg_pointer.
3965 (spu_split_convert): Define.
3966 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3967 (_move<mode>, _movdi, _movti): Update predicate and condition.
3968 (load, store): Change to define_split.
3969 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3970 extend<mode>ti2.
3971 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3972 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3973 define_insn_and_split of lshr<mode>3.
3974 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3975 (<v>ashr<mode>3_imm): Define.
3976 (extv, extzv, insv): Allow MEM operands.
3977 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3978 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3979 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3980 (_spu_convert2): Change to define_insn_and_split and remove the
3981 corresponding define_peephole2.
3982 (stack_protect_set, stack_protect_test, stack_protect_test_si):
3983 Change predicates to memory_operand.
3984
7d31a807
MM
39852009-05-22 Mark Mitchell <mark@codesourcery.com>
3986
3987 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 3988
d021d274
MM
39892009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3990
3991 PR tree-optimization/40219
3992 * tree.c (iterative_hash_expr): Make sure the builtin function is
3993 a normal builtin function and not a front end or back end builtin
3994 before indexing into the built_in_decls array.
3995
4d7a65ea
RG
39962009-05-22 Richard Guenther <rguenther@suse.de>
3997
3998 PR middle-end/38964
3999 * alias.c (write_dependence_p): Do not use TBAA for answering
4000 anti-dependence or output-dependence.
782dc37a 4001 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
4002 (emit_pointer_definition): Remove.
4003 (emit_alias_warning): Likewise.
4004 (find_what_var_points_to): Remove TBAA pruning code.
4005 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
4006 violations.
4007 (compute_points_to_sets): Remove code computing the set of
4008 dereferenced pointers.
4009 * tree-data-ref.c (dr_may_alias_p): Properly use the split
4010 oracle for querying anti and output dependencies.
4011 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
4012 if TBAA may be applied.
4013 (refs_anti_dependent_p): New function.
4014 (refs_output_dependent_p): Likewise.
4015 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
4016 (refs_output_dependent_p): Likewise.
4017 * doc/tree-ssa.texi (Memory model): New section.
4018 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4019 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4020 * cfgexpand.c (expand_gimple_basic_block): Do not handle
4021 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
4022 * expr.c (expand_expr_real_1): Likewise.
4023 * gimple-low.c (lower_stmt): Likewise.
4024 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
4025 (dump_gimple_cdt): Remove.
4026 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4027 (gimple_size): Likewise.
4028 (walk_gimple_op): Likewise.
4029 (is_gimple_stmt): Likewise.
4030 (walk_stmt_load_store_addr_ops): Likewise.
4031 (gimple_build_cdt): Remove.
4032 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4033 * gimple.h (gimple_cdt_new_type): Remove.
4034 (gimple_cdt_new_type_ptr): Likewise.
4035 (gimple_cdt_set_new_type): Likewise.
4036 (gimple_cdt_location): Likewise.
4037 (gimple_cdt_location_ptr): Likewise.
4038 (gimple_cdt_set_location): Likewise.
4039 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4040 * tree-cfg.c (remove_useless_stmts_1): Do not handle
4041 GIMPLE_CHANGE_DYNAMIC_TYPE.
4042 (verify_types_in_gimple_stmt): Likewise.
4043 * tree-inline.c (estimate_num_insns): Likewise.
4044 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
4045 (copy_decl_to_var): Likewise.
4046 (copy_result_decl_to_var): Likewise.
4047 * tree-pretty-print.c (dump_generic_node): Do not handle
4048 CHANGE_DYNAMIC_TYPE_EXPR.
4049 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4050 * tree-ssa-operands.c (get_expr_operands): Likewise.
4051 * tree-ssa-structalias.c (struct variable_info): Remove
4052 no_tbaa_pruning member.
4053 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
4054 (unify_nodes): Do not copy it.
4055 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4056 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
4057 (set_uids_in_ptset): Do not check it.
4058 (find_what_var_points_to): Likewise.
4059 (compute_tbaa_pruning): Remove.
4060 (compute_points_to_sets): Do not call it.
4061 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4062 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4063 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
4064 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
4065 (DECL_NO_TBAA_P): Likewise.
4066 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
4067 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
4068 (expand_omp_atomic_pipeline): Do not set it.
4069 * print-tree.c (print_node): Do not dump it.
4070 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4071 redundant check.
4072
83a6ac60
VM
40732009-05-22 Vladimir Makarov <vmakarov@redhat.com>
4074
4075 PR target/39856
4076 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
4077 for clobber.
4078
fe2978fb
MM
40792009-05-22 Mark Mitchell <mark@codesourcery.com>
4080
4081 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
4082 non-external.
4083
134ef638
BE
40842009-05-22 Ben Elliston <bje@au.ibm.com>
4085
4086 * Makefile.in (bversion.h, s-bversion): New targets.
4087 (TOPLEV_H): Add bversion.h.
4088 * toplev.h: Include "bversion.h".
4089 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
4090 the __format__ attribute only if compiling with the same version
4091 of GCC as the sources (the "build version").
4092
52fc669d
BE
40932009-05-22 Ben Elliston <bje@au.ibm.com>
4094
4095 * c-format.c (handle_format_attribute): Fix comment typo.
4096
583ca921
SE
40972009-05-21 Steve Ellcey <sje@cup.hp.com>
4098
4099 PR target/37846
4100 * config/ia64/ia64.opt (mfused-madd): New.
4101 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
4102 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4103 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
4104 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
4105 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
4106 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
4107 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
4108 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
4109 instruction if !TARGET_FUSED_MADD.
4110 (fpma, fpms): Remove colon from name.
4111
150e3929
RG
41122009-05-22 Richard Guenther <rguenther@suse.de>
4113
4114 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
4115 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
4116 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
4117 TARGET_MEM_REF.
4118 (create_expression_by_pieces): Only convert if necessary.
4119 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
4120 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
4121
9a2b090c
AN
41222009-05-21 Adam Nemet <anemet@caviumnetworks.com>
4123
4124 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
4125 regular pattern from a template and rename it ...
4126 (*extzv_truncsi_exts): ... to this.
4127
33b92c9d
RG
41282009-05-21 Richard Guenther <rguenther@suse.de>
4129
4130 * cgraph.h (struct cgraph_node): Remove inline_decl member.
4131 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
4132 (cgraph_default_inline_p): Likewise.
4133 (cgraph_decide_inlining_incrementally): Likewise.
4134
cabf85c3
L
41352009-05-21 H.J. Lu <hongjiu.lu@intel.com>
4136 Uros Bizjak <ubizjak@gmail.com>
4137
4138 * config/i386/cpuid.h (bit_MOVBE): New.
4139
4140 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
4141
4142 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
4143 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
4144 (ix86_handle_option): Handle OPT_mmovbe.
4145 (ix86_target_string): Add -mmovbe.
4146 (pta_flags): Add PTA_MOVBE.
4147 (processor_alias_table): Add PTA_MOVBE to "atom".
4148 (override_options): Handle PTA_MOVBE.
4149
4150 * config/i386/i386.h (TARGET_MOVBE): New.
4151
4152 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
4153 (*bswapsi_movbe): New.
4154 (*bswapdi_movbe): Likewise.
4155 (bswapdi2): Renamed to ...
4156 (*bswapdi_1): This.
4157 (bswapdi2): New expander.
4158
4159 * config/i386/i386.opt (mmovbe): New.
4160
4161 * doc/invoke.texi: Document -mmovbe.
4162
9fefa0aa
TG
41632009-05-21 Taras Glek <tglek@mozilla.com>
4164
4165 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
4166 * gcc-plugin.h (plugin_init): Updated signature.
4167 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
4168 * doc/plugins.texi (plugin_init): Updated documention to reflect
4169 API change.
9fefa0aa
TG
4170 * doc/plugins.texi (plugin_name_args): Added to documention.
4171
1ea9fe56
MM
41722009-05-21 Mark Mitchell <mark@codesourcery.com>
4173
4174 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
4175 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
4176
52f84254
SZ
41772009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
4178
4179 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
4180 JUMP_TABLE_DATA_P predicates where applicable.
4181 * config/i386/predicates.md: Ditto.
4182 * config/i386/sse.md: Ditto.
4183
a952487c
JJ
41842009-05-21 Jakub Jelinek <jakub@redhat.com>
4185
93cac287
JJ
4186 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
4187 operand2 -128 override length_immediate attribute to 1.
4188 * config/i386/predicates.md (constm128_operand): New predicate.
4189
a952487c
JJ
4190 * config/i386/i386.c (memory_address_length): Handle %r12
4191 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
4192 also check REGNO.
4193 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
4194 mode look through optional ZERO_EXTEND and SUBREG.
4195 * config/i386/i386.md (R12_REG): New define_constant.
4196 (prefix_data16): For sse unit set also for MODE_TI insns.
4197 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
4198 insns set if operand 1 is ext_QIreg_operand.
4199 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
4200 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
4201 immediate.
4202 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
4203 mode from MODE_DI to MODE_SI.
4204 (movdi_1_rex64): Override modrm and length_immediate attributes
4205 only for movabs (TYPE_IMOV, alternative 2).
4206 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
4207 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4208 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4209 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4210 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
4211 prefix_rex attribute if DImode.
4212 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
4213 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
4214 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
4215 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
4216 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
4217 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
4218 Likewise. For TYPE_IMOV clear length_immediate attribute.
4219 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
4220 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
4221 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
4222 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
4223 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
4224 or one operand TYPE_ISHIFT.
4225 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
4226 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
4227 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
4228 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
4229 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
4230 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
4231 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
4232 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
4233 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
4234 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
4235 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
4236 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
4237 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
4238 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
4239 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
4240 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
4241 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
4242 set mode attribute, don't override length attribute.
4243 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
4244 to 1.
4245 (return_internal_long): Set length attribute to 2 instead of 1.
4246 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
4247 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
4248 prefix_rex attribute.
782dc37a
UB
4249 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
4250 New predicates.
4251 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 4252
64af62c2
RR
42532009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4254
4255 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
4256
c166b898
ILT
42572009-05-20 Ian Lance Taylor <iant@google.com>
4258
4259 * tree.c (build_tree_list_vec_stat): New function.
4260 (ctor_to_vec): New function.
4261 (build_nt_call_vec): New function.
4262 (build_call_array): Change args to be a const pointer.
4263 (build_call_vec): New function.
4264 * tree.h (build_nt_call_vec): Declare.
4265 (build_tree_list_vec_stat): Declare.
4266 (build_tree_list_vec): Define.
4267 (build_call_array): Update declaration.
4268 (build_call_vec): Declare.
4269 (ctor_to_vec): Declare.
4270 * c-common.c (tree_vector_cache): New static variable.
4271 (make_tree_vector): New function.
4272 (release_tree_vector): New function.
4273 (make_tree_vector_single): New function.
4274 (make_tree_vector_copy): New function.
4275 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
4276 (make_tree_vector_single, make_tree_vector_copy): Declare.
4277 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
4278 (c_parser_expr_list): Don't manage cache here, instead call
4279 make_tree_vector.
4280 (c_parser_release_expr_list): Remove static function.
4281 (c_parser_vec_to_tree_list): Remove static function.
4282 (c_parser_attributes): Call build_tree_list_vec instead of
4283 c_parser_vec_to_tree_list. Call release_tree_vector instead of
4284 c_parser_release_expr_list.
4285 (c_parser_postfix_expression_after_primary): Likewise.
4286 (c_parser_objc_keywordexpr): Likewise.
4287
40449a90
SL
42882009-05-20 Sandra Loosemore <sandra@codesourcery.com>
4289
4290 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
4291 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
4292 TARGET_CONVERT_TO_TYPE.
4293 * hooks.c (hook_tree_const_tree_null): Define.
4294 * hooks.h (hook_tree_const_tree_null): Declare.
4295 * target.h (struct gcc_target): Add invalid_parameter_type,
4296 invalid_return_type, promoted_type, and convert_to_type fields.
4297 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
4298 (TARGET_INVALID_RETURN_TYPE): Define.
4299 (TARGET_PROMOTED_TYPE): Define.
4300 (TARGET_CONVERT_TO_TYPE): Define.
4301 (TARGET_INITIALIZER): Update for new fields.
4302 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
4303 (grokparms): Check targetm.invalid_parameter_type.
4304 * c-typeck.c (default_conversion): Check targetm.promoted_type.
4305 * c-convert.c (convert): Check targetm.convert_to_type.
4306
642d97ff
AN
43072009-05-20 Adam Nemet <anemet@caviumnetworks.com>
4308
4309 * config/mips/mips.md (*extenddi_truncate<mode>,
4310 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
4311 defintions.
4312 (*extendhi_truncateqi): New define_insn_and_sptit.
4313
776248b8
JJ
43142009-05-20 Jakub Jelinek <jakub@redhat.com>
4315
4316 PR middle-end/40204
4317 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 4318 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 4319
d98e8686
EB
43202009-05-20 Eric Botcazou <ebotcazou@adacore.com>
4321
4322 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
4323 the operand of VIEW_CONVERT_EXPR.
4324
37c50435
L
43252009-05-20 H.J. Lu <hongjiu.lu@intel.com>
4326
4327 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 4328 extended family and model for Intel processors. Support Intel Atom.
37c50435 4329
dbb6088f
OH
43302009-05-20 Olivier Hainque <hainque@adacore.com>
4331
4332 * gstab.h (stab_code_type): Define, to be used instead of the
4333 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
4334 notice.
4335 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
4336 occurrences by stab_code_type.
4337 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
4338
7ec49257
MJ
43392009-05-20 Martin Jambor <mjambor@suse.cz>
4340
4341 * tree-flow.h (insert_edge_copies_seq): Undeclare.
4342 (sra_insert_before): Likewise.
4343 (sra_insert_after): Likewise.
4344 (sra_init_cache): Likewise.
4345 (sra_type_can_be_decomposed_p): Likewise.
4346 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
4347 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
4348 (sra_insert_before): Likewise.
4349 (sra_insert_after): Likewise.
4350 (sra_init_cache): Likewise.
4351 (insert_edge_copies_seq): Made static and moved upwards.
4352
4353 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
4354 case.
4355
4356 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
4357
4358 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
4359 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
4360 simple copies.
4361
0328ae4d
RG
43622009-05-20 Richard Guenther <rguenther@suse.de>
4363
4364 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
4365 with mismatched comparison modes.
4366
a7994a57 43672009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 4368
a7994a57 4369 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
4370 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
4371 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
4372 with shifts for Thumb2.
4373 (orsi_notsi): New for orn.
4374 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
4375 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
4376 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
4377 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
4378 Don't invert remainder for IOR.
a7994a57 4379
e36dc339
ZD
43802009-05-19 Zdenek Dvorak <ook@ucw.cz>
4381
4382 PR tree-optimization/40087
4383 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
4384 number_of_iterations_ne): Rename never_infinite argument.
4385 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
4386 number_of_iterations_le): Handle pointer-type ivs when
4387 exit_must_be_taken is false.
4388 (number_of_iterations_cond): Do not always assume that
4389 exit_must_be_taken if the control variable is a pointer.
4390
5cfd5d9b
AP
43912009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
4392
4393 * c-typeck.c (build_binary_op): Allow % on integal vectors.
4394 * doc/extend.texi (Vector Extension): Document that % is allowed too.
4395
2f1c7156
L
43962009-05-19 H.J. Lu <hongjiu.lu@intel.com>
4397
4398 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
4399 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
4400
7bb27074
MLI
44012009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4402
4403 PR c/40172
4404 * c.opt (Wlogical-op): Disabled by default.
4405 * c-opt (c_common_post_options): Do not enable Wlogical-op with
4406 Wextra.
4407 * doc/invoke.texi (Wlogical-op): Likewise.
4408
5aefc6a0
EB
44092009-05-19 Eric Botcazou <ebotcazou@adacore.com>
4410
4411 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
4412 into CASE_CONVERT.
4413 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
4414 Propagate the type of the first operand.
4415 <ASSERT_EXPR>: Simplify.
4416 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
4417 Rewrite using the RHS code as discriminant.
4418 <NOP_EXPR>: Turn into CASE_CONVERT.
4419 <PLUS_EXPR>: Propagate the type of the first operand.
4420
f3a83111
SE
44212009-05-19 Steve Ellcey <sje@cup.hp.com>
4422
4423 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
4424 (ia64_dconst_0_375): New.
4425 * config/ia64/ia64.c (ia64_override_options): Remove
4426 -minline-sqrt-min-latency warning.
4427 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
4428 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
4429 * config/ia64/ia64.md (*sqrt_approx): Remove.
4430 (sqrtsf2): Remove #if 0.
4431 (sqrtsf2_internal_thr): Rewrite and move to div.md.
4432 (sqrtdf): Remove assert.
4433 (sqrtdf2_internal_thr): Rewrite and move to div.md.
4434 (sqrtxf2): Remove #if 0.
4435 (sqrtxf2_internal_thr): Rewrite and move to div.md.
4436 * div.md (sqrt_approx_rf): New.
4437 (sqrtsf2_internal_thr): New implementation.
4438 (sqrtsf2_internal_lat): New.
4439 (sqrtdf2_internal_thr: New implementation.
4440 (sqrtxf2_internal): New implementation.
4441
1ffc7157
FXC
44422009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
4443 Hans-Peter Nilsson <hp@axis.com>
4444
4445 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
4446 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
4447 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
4448 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
4449 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
4450 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
4451 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
4452 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
4453 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
4454 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
4455 * c-common.c: ...from here.
4456
db91d9ef
MLI
44572009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4458
f3afc8a7 4459 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 4460
bbb9d91f
KG
44612009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4462
4463 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
4464
ce883f54
BE
44652009-05-19 Ben Elliston <bje@au.ibm.com>
4466
4467 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
4468 assignments with memcpy calls.
4469 (add_fdes): Likewise.
4470 (binary_search_unencoded_fdes): Likewise.
4471 (linear_search_fdes): Eliminate type puns.
4472
377f099a
RG
44732009-05-19 Richard Guenther <rguenther@suse.de>
4474
4475 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
4476 not falsely claim to have propagated into all uses.
4477
848bc769
BE
44782009-05-19 Ben Elliston <bje@au.ibm.com>
4479
4480 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
4481 version to v3.0.
4482
1bb99877
KK
44832009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
4484
4485 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
4486 * config/sh/sh.c (sh_legitimate_address_p): Make static.
4487 (TARGET_LEGITIMATE_ADDRESS_P): New.
4488 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4489 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4490
82725547
DS
44912009-05-18 Dodji Seketeli <dodji@redhat.com>
4492
4493 PR debug/40109
4494 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
4495 child of the containing namespace's DIE.
4496
f6a1e430
AN
44972009-05-18 Adam Nemet <anemet@caviumnetworks.com>
4498
4499 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
4500 *zero_extendhi_truncqi): Move after the zero_extend patterns.
4501 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
4502 extend patterns.
4503
6a90d232
L
45042009-05-18 H.J. Lu <hongjiu.lu@intel.com>
4505
4506 PR target/39942
4507 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
4508 gen_align with gen_pad.
4509 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
4510 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
4511
4512 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
4513 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
4514
4515 * config/i386/i386.md (align): Renamed to ...
4516 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
4517 ASM_OUTPUT_MAX_SKIP_PAD.
4518
c4406f74
AS
45192009-05-18 Andreas Schwab <schwab@linux-m68k.org>
4520
06555043
AS
4521 * config.gcc: Fix variable syntax.
4522
c4406f74
AS
4523 PR target/39531
4524 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
4525 before calling exact_log2.
4526 (output_iorsi3): Likewise.
4527 (output_xorsi3): Likewise.
4528
99052692
KK
45292009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
4530
4531 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
4532 for the none zero constant operand except for EQ and NE
4533 comprisons even when the first operand is R0.
4534
f4aa3848
AK
45352009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
4536
4537 * config/s390/2064.md: Remove trailing whitespaces.
4538 * config/s390/2084.md: Likewise.
4539 * config/s390/constraints.md: Likewise.
4540 * config/s390/fixdfdi.h: Likewise.
4541 * config/s390/libgcc-glibc.ver: Likewise.
4542 * config/s390/s390-modes.def: Likewise.
4543 * config/s390/s390-protos.h: Likewise.
4544 * config/s390/s390.c: Likewise.
4545 * config/s390/s390.h: Likewise.
4546 * config/s390/s390.md: Likewise.
4547 * config/s390/tpf-unwind.h: Likewise.
4548
ab7256e4
MK
45492009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
4550
4551 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
4552
75df395f
MK
45532009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
4554
4555 M68K TLS support.
4556 * configure.ac (m68k-*-*): Check if binutils support TLS.
4557 * configure: Regenerate.
4558 * config/m68k/predicates.md (symbolic_operand): Extend comment.
4559 * config/m68k/constraints.md (Cu): New constraint.
4560 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
4561 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
4562 (movsi): Handle TLS symbols.
4563 (addsi3_5200): Handle XTLS symbols, indent.
4564 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
4565 (m68k_tls_reference_p): Declare.
4566 (m68k_legitimize_address): Declare.
4567 (m68k_unwrap_symbol): Declare.
4568 * config/m68k/m68k.opt (mxtls): New option.
4569 * config/m68k/m68k.c (ggc.h): Include.
4570 (m68k_output_dwarf_dtprel): Implement hook.
4571 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
4572 (m68k_expand_prologue): Load GOT pointer when function needs it.
4573 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
4574 (m68k_legitimate_constant_address_p): Same.
4575 (m68k_decompose_address): Handle TLS references.
4576 (m68k_get_gp): New static function.
4577 (enum m68k_reloc): New contants.
4578 (TLS_RELOC_P): New macro.
4579 (m68k_wrap_symbol): New static function.
4580 (m68k_unwrap_symbol): New function.
4581 (m68k_final_prescan_insn_1): New static function.
4582 (m68k_final_prescan_insn): New function.
4583 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
4584 functions.
4585 (legitimize_pic_address): Handle TLS references..
4586 (m68k_tls_get_addr, m68k_get_tls_get_addr)
4587 (m68k_libcall_value_in_a0_p)
4588 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
4589 (m68k_call_m68k_read_tp): Helper variables and functions for ...
4590 (m68k_legitimize_tls_address): Handle TLS references.
4591 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
4592 New functions.
4593 (m68k_legitimize_address): Handle TLS symbols.
4594 (m68k_get_reloc_decoration): New static function.
4595 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
4596 UNSPEC_RELOC32.
4597 (m68k_output_dwarf_dtprel): Implement hook.
4598 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
4599 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
4600 m68k_call_* routines.
4601 (sched_attr_op_type): Handle TLS symbols.
4602 (gt-m68k.h): Include.
4603 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
4604 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
4605
8b75fc9b
MJ
46062009-05-18 Martin Jambor <mjambor@suse.cz>
4607
4608 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
4609 (visit_store_addr_for_mod_analysis): New function.
4610 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
4611 (determine_cst_member_ptr): Use gimple_assign_single_p.
4612 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
4613 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
4614 operands. Don't check number of operands of a NOP_EXPR.
4615
f133d4a2
EF
46162009-05-18 Eric Fisher <joefoxreal@gmail.com>
4617
4618 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
4619
ae8af500
L
46202009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
4621
4622 PR c/40172
4623 * c-common.c (warn_logical_operator): Don't warn if one of
4624 expression isn't always true or false.
4625
25e8fde8
KT
46262009-05-17 Kai Tietz <kai.tietz@onevision.com>
4627
ae8af500
L
4628 * config/i386/biarch32.h: New file.
4629 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 4630
ef67af22
AN
46312009-05-17 Adam Nemet <anemet@caviumnetworks.com>
4632
4633 * config/mips/mips.md (*zero_extend<mode>_trunchi,
4634 *zero_extend<mode>_truncqi): Merge these into ...
4635 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
4636 Name the pattern following this as *zero_extendhi_truncqi.
4637
e2d87023
BL
46382009-05-16 Brad Lucier <lucier@math.purdue.edu>
4639
4640 PR middle-end/39301
4641 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
4642 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
4643 (output_info): Make field HOST_WIDEST_INT.
4644 (print_statistics): Use HOST_WIDEST_INT_PRINT.
4645 (dump_bitmat_statistics): Same.
4646
428ddbf0
FXC
46472009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
4648
4649 * config.gcc (use_gcc_stdint): Set to wrap.
4650 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
4651 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
4652 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4653 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4654 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4655 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4656 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4657 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4658
1ab8a8c2
JM
46592009-05-16 Joseph Myers <joseph@codesourcery.com>
4660
4661 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
4662 tune_64.
4663 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
4664 Move definitions earlier.
4665 (OPT_ARCH64, OPT_ARCH32): Define.
4666 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
4667 and tune_64.
4668
70544f44
RE
46692009-05-16 Richard Earnshaw <rearnsha@arm.com>
4670
4671 PR target/40153
4672 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
4673 implies.
4674
6241ded1
RE
46752009-05-16 Richard Earnshaw <rearnsha@arm.com>
4676
4677 * arm.md (movdi2): Copy non-reg values to DImode registers.
4678
a99c6711
JJ
46792009-05-16 Jakub Jelinek <jakub@redhat.com>
4680
40a8f07a
JJ
4681 PR target/39942
4682 * final.c (label_to_max_skip): New function.
4683 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
4684 CODE_LABEL_NUMBER <= max_labelno.
4685 * output.h (label_to_max_skip): New prototype.
4686 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
4687 (ix86_avoid_jump_mispredicts): ... this. Don't define if
4688 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
4689 Handle CODE_LABELs with >= 16 byte alignment or with
4690 max_skip == (1 << align) - 1.
4691 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
4692 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
4693
a99c6711
JJ
4694 PR target/39942
4695 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
4696 .p2align 3 if MAX_SKIP is smaller than 7.
4697 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
4698
7e5487a2
ILT
46992009-05-15 Ian Lance Taylor <iant@google.com>
4700
4701 * alias.c (struct alias_set_entry_d): Rename from struct
4702 alias_set_entry. Change all uses.
4703 * except.c (struct call_site_record_d): Rename from struct
4704 call_site_record. Change all uses.
4705 * except.h (struct eh_region_d): Rename from struct eh_region.
4706 Change all uses.
4707 * gcse.c (struct hash_table_d): Rename from struct hash_table.
4708 Change all uses.
4709 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
4710 ivtype_map_elt. Change all uses.
4711 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
4712 Change all uses.
4713 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
4714 * graphite.h (struct name_tree_d): Rename from struct name_tree.
4715 Change all uses.
4716 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
4717 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
4718 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
4719 * optabs.h (struct optab_d): Rename from struct optab. Change all
4720 uses.
4721 (struct convert_optab_d): Rename from struct convert_optab.
4722 Change all uses.
4723 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
4724 ipa_opt_pass. Change all uses.
4725 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
4726 all uses.
4727
4728 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
4729 defined as a typedef.
4730 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
4731 defined as a tag.
4732
a243fb4a
MLI
47332009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
4734
4735 PR 16302
4736 * fold-const.c (make_range,build_range_check,merge_ranges): Move
4737 declaration to...
4738 (merge_ranges): Returns bool.
4739 * tree.h (make_range): .. to here.
4740 (build_range_check): Likewise.
4741 (merge_ranges): Likewise. Renamed from merge_ranges.
4742 * c-typeck.c (parser_build_binary_op): Update calls to
4743 warn_logical_operator.
4744 * c-common.c (warn_logical_operator): Add new warning.
4745 * c-common.h (warn_logical_operator): Update declaration.
4746
1b53c5f3
MLI
47472009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
4748
782dc37a 4749 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 4750
c128599a
KG
47512009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4752
f9bab007
KG
4753 * doc/install.texi: Document MPC requirements, flags etc.
4754
c128599a
KG
4755 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
4756 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
4757 Evaluate constant arguments.
4758 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
4759 (fold_builtin_1): Likewise, also evaluate constant arguments.
4760 Remove superfluous break.
4761 (do_mpc_ckconv): New.
4762 * real.h: Include mpc.h.
4763 * toplev.c (print_version): Output MPC version info if available.
4764
d33e4b70
SL
47652009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4766
782dc37a 4767 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 4768
a02ab464
L
47692009-05-15 H.J. Lu <hongjiu.lu@intel.com>
4770
4771 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
4772 only once.
4773
796bda22
JH
47742009-05-15 Jan Hubicka <jh@suse.cz>
4775
4776 * doc/invoke.texi (max-early-inliner-iterations): New flag.
4777 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
4778 (try_inline): Fix return value.
4779 (cgraph_decide_inlining_incrementally): Honor new value.
4780 (cgraph_early_inlining): Handle indirect inlining.
4781 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
4782
d88e5c37
JH
47832009-05-15 Jan Hubicka <jh@suse.cz>
4784
4785 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
4786 * cgraphunit.c (cgraph_finalize_function): Set it.
4787 (cgraph_expand_function): Use it.
4788
ae63687c
SL
47892009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4790
4791 * real.c (encode_ieee_half): Define.
4792 (decode_ieee_half): Define.
4793 (ieee_half_format): Define.
4794 (arm_half_format): Define.
4795 * real.h (ieee_half_format): Declare.
4796 (arm_half_format): Declare.
4797
1bd74ad9
SL
47982009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4799
4800 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
4801 swapped, and reversed optabs exist before trying to use them.
4802
dc34db56
PB
48032009-05-15 Paul Brook <paul@codesourcery.com>
4804 Sandra Loosemore <sandra@codesourcery.com>
4805
dc34db56
PB
4806 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
4807 loads. Allow PRE_DEC.
4808 (output_move_neon): Handle PRE_DEC.
4809 (arm_print_operand): Add 'A' for neon structure loads.
4810 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
4811 * config/arm/neon.md (neon_mov): Update comment.
4812 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
4813 calls.
4814 (Um): New constraint.
4815
1d405d7b
JH
48162009-05-15 Jan Hubicka <jh@suse.cz>
4817
4818 Revert the following patch until testsuite fallout is fixed:
4819 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4820 * cgraph.h (struct inline_summary): New filed self_wize,
4821 size_inlining_benefit, self_time and time_inlining_benefit.
4822 (struct cgraph_global_info): Replace insns by time ans size fields.
4823 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4824 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4825 (ipcp_update_callgraph): Do not touch function bodies.
4826 * ipa-inline.c: Include except.h
782dc37a 4827 (MAX_TIME): New constant.
1d405d7b
JH
4828 (overall_insns): Remove
4829 (overall_size, max_benefit): New static variables.
4830 (cgraph_estimate_time_after_inlining): New function.
4831 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4832 (cgraph_clone_inlined_nodes): Update size.
4833 (cgraph_mark_inline_edge): Update size.
4834 (cgraph_estimate_growth): Use size info.
4835 (cgraph_check_inline_limits): Check size.
4836 (cgraph_default_inline_p): Likewise.
4837 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4838 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4839 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4840 and times.
1d405d7b 4841 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4842 (cgraph_decide_inlining_incrementally): Likewise; honor
4843 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
4844 (likely_eliminated_by_inlining_p): New predicate.
4845 (estimate_function_body_sizes): New function.
4846 (compute_inline_parameters): Use it.
4847 * except.c (must_not_throw_labels): New function.
4848 * except.h (must_not_throw_labels): Declare.
4849 * tree-inline.c (init_inline_once): Kill inlining_weigths
4850 * tree-ssa-structalias.c: Avoid uninitialized warning.
4851 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4852 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4853 (PARAM_INLINE_CALL_COST): Remove.
4854 (PARAM_EARLY_INLINING_INSNS): New.
4855
7ffa47ca
RG
48562009-05-15 Richard Guenther <rguenther@suse.de>
4857
4858 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
4859 not TODO_update_ssa.
4860
828552ed
RG
48612009-05-15 Richard Guenther <rguenther@suse.de>
4862
4863 PR tree-optimization/39999
4864 * gimple.h (gimple_expr_type): Use the expression type looking
4865 through useless conversions.
4866 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
4867 (vn_nary_op_insert_stmt): Likewise.
4868 (simplify_binary_expression): Likewise.
4869
248fc9f3
RG
48702009-05-15 Richard Guenther <rguenther@suse.de>
4871
4872 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4873 New options, enabled by default.
4874 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4875 Document.
4876 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
4877 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
4878 * tree-ssa-structalias.c (gate_tree_pta): New function.
4879 (pass_build_alias): Use it.
4880
16b29cc4
JM
48812009-05-15 Joseph Myers <joseph@codesourcery.com>
4882
4883 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
4884 recurse on an invariant address if a conversion from a pointer
4885 type to a wider integer type is involved.
4886
125cae84
JH
48872009-05-15 Jan Hubicka <jh@suse.cz>
4888
4889 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4890 * cgraph.h (struct inline_summary): New filed self_wize,
4891 size_inlining_benefit, self_time and time_inlining_benefit.
4892 (struct cgraph_global_info): Replace insns by time ans size fields.
4893 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4894 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4895 (ipcp_update_callgraph): Do not touch function bodies.
4896 * ipa-inline.c: Include except.h
782dc37a 4897 (MAX_TIME): New constant.
125cae84
JH
4898 (overall_insns): Remove
4899 (overall_size, max_benefit): New static variables.
4900 (cgraph_estimate_time_after_inlining): New function.
4901 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4902 (cgraph_clone_inlined_nodes): Update size.
4903 (cgraph_mark_inline_edge): Update size.
4904 (cgraph_estimate_growth): Use size info.
4905 (cgraph_check_inline_limits): Check size.
4906 (cgraph_default_inline_p): Likewise.
4907 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4908 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4909 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4910 and times.
125cae84 4911 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4912 (cgraph_decide_inlining_incrementally): Likewise; honor
4913 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
4914 (likely_eliminated_by_inlining_p): New predicate.
4915 (estimate_function_body_sizes): New function.
4916 (compute_inline_parameters): Use it.
4917 * except.c (must_not_throw_labels): New function.
4918 * except.h (must_not_throw_labels): Declare.
4919 * tree-inline.c (init_inline_once): Kill inlining_weigths
4920 * tree-ssa-structalias.c: Avoid uninitialized warning.
4921 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4922 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4923 (PARAM_INLINE_CALL_COST): Remove.
4924 (PARAM_EARLY_INLINING_INSNS): New.
4925 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
4926 (inline-call-cost): Remove.
4927 (early-inlining-insns): New.
4928
84fb43a1
EB
49292009-05-15 Eric Botcazou <ebotcazou@adacore.com>
4930
4931 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
4932 for bounds.
4933 (print_int_cst_bounds_in_octal_p): Likewise.
4934 (dbxout_type): Adjust calls to above functions. Be prepared to deal
4935 with subtypes.
4936 * dwarf2out.c (base_type_die): Likewise.
4937 (is_subrange_type): Delete.
4938 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
4939 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
4940 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
4941 if the destination type is boolean.
84fb43a1
EB
4942 (build_range_check): Do not special-case subtypes.
4943 (fold_sign_changed_comparison): Likewise.
4944 (fold_unary): Likewise.
4945 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
4946 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
4947 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
4948 * tree.c (subrange_type_for_debug_p): New predicate based on the
4949 former is_subrange_type.
84fb43a1
EB
4950 * tree.h (subrange_type_for_debug_p): Declare.
4951 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
4952 (convert_affine_scev): Remove call to above function.
4953 (chrec_convert_aggressive): Likewise.
4954 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
4955 false for conversions involving subtypes.
4956 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
4957 (vrp_val_min): Likewise.
4958 (needs_overflow_infinity): Likewise.
4959 (extract_range_from_unary_expr): Likewise.
4960
331d9186
PB
49612009-05-15 Paolo Bonzini <bonzini@gnu.org>
4962
e9351712
L
4963 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4964 * config/frv/frv.c: Likewise.
4965 * config/s390/s390.c: Likewise.
4966 * config/sparc/sparc.h: Likewise.
4967 * config/i386/i386.h: Likewise.
4968 * config/i386/i386.c: Likewise.
4969 * config/crx/crx.c: Likewise.
4970 * config/m68hc11/m68hc11.h: Likewise.
4971 * config/iq2000/iq2000.c: Likewise.
4972 * config/mn10300/mn10300.h: Likewise.
4973 * config/mn10300/mn10300.c: Likewise.
4974 * config/m68k/m68k.c: Likewise.
4975 * config/rs6000/rs6000.c: Likewise.
4976 * config/rs6000/xcoff.h: Likewise.
4977 * config/rs6000/linux64.h: Likewise.
4978 * config/rs6000/sysv4.h: Likewise.
4979 * config/score/score3.c: Likewise.
4980 * config/score/score7.c: Likewise.
4981 * config/score/score.c: Likewise.
4982 * config/arm/arm.md: Likewise.
4983 * config/mips/mips.c: Likewise.
4984 * config/mips/mips.md: Likewise.
4985 * config/bfin/bfin.h: Likewise.
4986 * config/pa/pa.c: Likewise.
4987 * config/pa/constraints.md: Likewise.
4988
4989 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
4990 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
4991 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 4992
09639a83
ILT
49932009-05-14 Ian Lance Taylor <iant@google.com>
4994
4995 * passes.c (finish_optimization_passes): Change i to int.
4996 * plugin.c (plugins_active_p): Change event to int.
4997 (dump_active_plugins): Likewise.
4998 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
4999 Add cast.
5000 * tree.c (tree_range_check_failed): Change c to unsigned int.
5001 (omp_clause_range_check_failed): Likewise.
5002 (build_common_builtin_nodes): Change mode to int. Add cast.
5003 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
5004 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
5005
5006 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
5007 ++ or -- with a variable of enum type.
5008
c04a56bf
SB
50092009-05-14 Steven Bosscher <steven@gcc.gnu.org>
5010
5011 PR driver/40144
5012 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
5013
237ee620
SB
50142009-05-14 Steven Bosscher <steven@gcc.gnu.org>
5015
5016 * store-motion.c: Do not include params.h
5017 * Makefile.in: Fix dependencies for various files.
5018
1154c4fa
SB
50192009-05-14 Steven Bosscher <steven@gcc.gnu.org>
5020
5021 * auto-inc-dec.c: Fix pass description, remove apparent
5022 accidental duplication.
5023
61c27353
L
50242009-05-14 H.J. Lu <hongjiu.lu@intel.com>
5025
5026 PR middle-end/40147
5027 * ipa-utils.h (memory_identifier_string): Moved to ...
5028 * tree.h (memory_identifier_string): Here. Add GTY(()).
5029
c6c3dba9
PB
50302009-05-14 Paolo Bonzini <bonzini@gnu.org>
5031
5032 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
5033 in the former documentation of...
5034 (GO_IF_LEGITIMATE_ADDRESS): ... this.
5035 * ira-conflicts.c (get_dup_num): Use address_operand.
5036 * targhooks.c (default_legitimate_address_p): New.
5037 * targhooks.h (default_legitimate_address_p): New.
5038 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
5039 Call hook.
5040 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
5041 * target.h (struct target): Add legitimate_address_p.
5042 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
5043 (TARGET_INITIALIZER): Include it.
5044
5045 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5046 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
5047 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
5048 (TARGET_LEGITIMATE_ADDRESS_P): New.
5049
5050 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5051 (REG_OK_STRICT_P): Delete.
5052 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
5053 (frv_legitimate_address_p_1): ... this.
5054 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
5055 (frv_legitimate_address_p_1): ... the renamed old
5056 frv_legitimate_address_p.
5057 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
5058 (TARGET_LEGITIMATE_ADDRESS_P): New.
5059
5060 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5061 * config/s390/s390-protos.h (legitimate_address_p): Remove.
5062 * config/s390/s390.c (legitimate_address_p): Rename to...
5063 (s390_legitimate_address_p): ... this, make static.
5064 (legitimize_address): Adjust call.
5065 (TARGET_LEGITIMATE_ADDRESS_P): New.
5066 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
5067
5068 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5069 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
5070 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
5071 (TARGET_LEGITIMATE_ADDRESS_P): New.
5072
5073 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5074 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
5075 * config/spu/spu.c (spu_legitimate_address): Rename to...
5076 (spu_legitimate_address_p): ... this, make static.
5077 (TARGET_LEGITIMATE_ADDRESS_P): New.
5078
5079 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5080 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
5081 * config/sparc/sparc.c (legitimate_address_p): Rename to...
5082 (sparc_legitimate_address_p): ... this, make static and return bool.
5083 (legitimize_address): Adjust call.
5084 (TARGET_LEGITIMATE_ADDRESS_P): New.
5085
5086 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5087 * config/i386/i386-protos.h (legitimate_address_p): Remove.
5088 * config/i386/i386.c (legitimate_address_p): Rename to...
5089 (ix86_legitimate_address_p): ... this, make static.
5090 (constant_address_p): Move after it, adjust call.
5091 (TARGET_LEGITIMATE_ADDRESS_P): New.
5092
5093 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5094 * config/avr/avr-protos.h (legitimate_address_p): Remove.
5095 * config/avr/avr.c (legitimate_address_p): Rename to...
5096 (avr_legitimate_address_p): ... this, make static.
5097 (legitimize_address): Adjust call.
5098 (TARGET_LEGITIMATE_ADDRESS_P): New.
5099
5100 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5101 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
5102 * config/crx/crx.c (crx_legitimate_address_p): Make static.
5103 (TARGET_LEGITIMATE_ADDRESS_P): New.
5104
5105 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5106 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
5107 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
5108 (TARGET_LEGITIMATE_ADDRESS_P): New.
5109
5110 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5111 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
5112 Remove.
5113 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
5114 Make static.
5115 (TARGET_LEGITIMATE_ADDRESS_P): New.
5116
5117 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5118 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
5119 Remove.
5120 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
5121 Rename to...
5122 (m68hc11_legitimate_address_p): ... this, make static.
5123 (go_if_legitimate_address_internal): Rename to...
5124 (m68hc11_legitimate_address_p_1): ... this.
5125 (legitimize_address): Adjust call.
5126 (TARGET_LEGITIMATE_ADDRESS_P): New.
5127
5128 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
5129 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
5130 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
5131 (TARGET_LEGITIMATE_ADDRESS_P): New.
5132
5133 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5134 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
5135 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
5136 (mn10300_legitimate_address_p): ... this, make static.
5137 (TARGET_LEGITIMATE_ADDRESS_P): New.
5138
5139 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5140 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
5141 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
5142 (TARGET_LEGITIMATE_ADDRESS_P): New.
5143
5144 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5145 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
5146 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
5147 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5148 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
5149 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
5150 (rs6000_legitimate_address_p): ... this, make static.
5151 (TARGET_LEGITIMATE_ADDRESS_P): New.
5152 (REG_MODE_OK_FOR_BASE_P): Delete.
5153 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
5154
5155 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5156 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
5157 Delete.
5158 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
5159 static, adjust types.
5160 (TARGET_LEGITIMATE_ADDRESS_P): New.
5161
5162 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5163 * config/score/score.c (score_address_p): Rename to...
5164 (score_legitimate_address_p): ... this.
5165 (TARGET_LEGITIMATE_ADDRESS_P): New.
5166 * config/score/score3.c (score3_address_p): Rename to...
5167 (score3_legitimate_address_p): ... this.
5168 * config/score/score7.c (score7_address_p): Rename to...
5169 (score7_legitimate_address_p): ... this.
5170
5171 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
5172 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
5173 GO_IF_LEGITIMATE_ADDRESS): Delete.
5174 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
5175 thumb2_legitimate_address_p): Delete.
5176 (arm_legitimate_address_p): Rename to...
5177 (arm_legitimate_address_outer_p): ... this.
5178 * config/arm/constraints.md ("Uq"): Adjust call.
5179 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
5180 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
5181 to...
c6c3dba9 5182 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
5183 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
5184 static.
c6c3dba9
PB
5185 (TARGET_LEGITIMATE_ADDRESS_P): New.
5186
5187 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5188 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
5189 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
5190 (TARGET_LEGITIMATE_ADDRESS_P): New.
5191
5192 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5193 * config/vax/vax-protos.h (legitimate_address_p): Remove.
5194 * config/vax/vax.c (legitimate_address_p): Rename to...
5195 (vax_legitimate_address_p): ... this, make static.
5196 (TARGET_LEGITIMATE_ADDRESS_P): New.
5197
5198 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5199 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
5200 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
5201 (TARGET_LEGITIMATE_ADDRESS_P): New.
5202
5203 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5204 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
5205 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
5206 (mmix_legitimate_address_p): ... this, make static.
5207 (TARGET_LEGITIMATE_ADDRESS_P): New.
5208
5209 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5210 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
5211 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
5212 (TARGET_LEGITIMATE_ADDRESS_P): New.
5213
3bd0d9c8
PB
52142009-05-14 Paolo Bonzini <bonzini@gnu.org>
5215
5216 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
5217 of MODE_COMPLEX_INT.
5218
fe049033
RO
52192009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5220
5221 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
5222 LCT_NORMAL in function call.
5223 * mips-tdump.c (print_file_desc): Add cast to enum type.
5224 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
5225 (mark_stabs): Add casts to enum types.
5226 (parse_stabs_common): Add casts to enum types.
16f7ad42 5227
b0907a6c
AN
52282009-05-13 Adam Nemet <anemet@caviumnetworks.com>
5229
5230 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
5231 Check for invalid values of LETTER.
5232
d1c8e08a
TG
52332009-05-13 Taras Glek <tglek@mozilla.com>
5234
f3afc8a7
UB
5235 * attribs.c (register_attribute): moved out attribute registration
5236 into register_attribute.
5237 * doc/plugins.texi: Documented register_attribute and
5238 PLUGIN_ATTRIBUTES.
16f7ad42
TG
5239 * gcc-plugin.h: Added forward decl for register_attribute.
5240 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
5241 * plugin.c (register_callback, invoke_plugin_callbacks): Added
5242 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 5243
4ed7f970
DK
52442009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
5245
5246 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
5247 values even in sentinel and empty entries.
5248 (ms_printf_flag_specs): Likewise.
5249 (ms_scanf_flag_specs): Likewise.
5250 (ms_strftime_flag_specs): Likewise.
5251 (ms_print_char_table): Likewise.
5252 (ms_scan_char_table): Likewise.
5253 (ms_time_char_table): Likewise.
5254
3d8fa148
DK
52552009-05-13 Doug Kwan <dougkwan@google.com>
5256
5257 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
5258
f06257d3
AN
52592009-05-13 Adam Nemet <anemet@caviumnetworks.com>
5260
5261 * config/mips/mips.md (store): Add attributes for QI and HI.
5262 Update comment.
5263 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
5264 (truncdi<mode>2): ... this new pattern.
5265
fb201767
BH
52662009-05-13 Brad Hards <bradh@kde.org>
5267
5268 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
5269
c7bda60e 52702009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
5271 Ben Elliston <bje@au.ibm.com>
5272
5273 PR middle-end/40035
5274 * dse.c (check_mem_read_rtx): Guard against width == -1.
5275
ce985b43
MM
52762009-05-13 Michael Matz <matz@suse.de>
5277
5278 PR middle-end/39976
5279 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
5280 (trivially_conflicts_p): New function.
5281 (insert_backedge_copies): Use it.
5282
7de1d221
JJ
52832009-05-13 Janis Johnson <janis187@us.ibm.com>
5284
5285 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
5286 (handle_stdc_pragma): Use new enum constant names.
5287 (handle_pragma_float_const_decimal64): Ditto.
5288
bfefafc6
ILT
52892009-05-13 Ian Lance Taylor <iant@google.com>
5290
5291 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
5292 tree.def.
5293
286c4fcb
NS
52942009-05-13 Nathan Sidwell <nathan@codesourcery.com>
5295
5296 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
5297 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
5298 multilibs.
5299 * config/m68k/m68k.h (FL_UCLINUX): Define.
5300
ebaa6ea7
JH
53012009-05-13 Jan Hubicka <jh@suse.cz>
5302
5303 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
5304
2b703e1a
KK
53052009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5306
5307 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
5308 unless -fschedule-insns is specified.
5309
c3537723
KK
53102009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5311
5312 PR target/39561
5313 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
5314 TARGET_EXPAND_CBRANCHDI4.
5315 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
5316 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
5317 (cmpeqdi): Fix comment.
5318
cdeed45a
KK
53192009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5320
5321 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
5322 (sh_legitimate_address_p): Likewise.
5323 * config/sh/sh.c (sh_legitimate_index_p): New.
5324 (sh_legitimate_address_p): Likewise.
5325 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
5326 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
5327 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
5328 (MAYBE_BASE_REGISTER_RTX_P): New macro.
5329 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
5330 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
5331 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
5332 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
5333 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
5334
02f0b13a
JH
53352009-05-12 Jan Hubicka <jh@suse.cz>
5336
5337 * tree-inline.c (estimate_operator_cost): Add operands;
5338 when division happens by constant, it is cheap.
5339 (estimate_num_insns): Loads and stores are not having cost of 0;
5340 EH magic stuff is cheap; when computing runtime cost of switch,
5341 use log2 base of amount of its cases; builtin_expect has cost of 0;
5342 compute cost for moving return value of call.
5343 (init_inline_once): Initialize time_based flags.
5344 * tree-inline.h (eni_weights_d): Add time_based flag.
5345
ecb7f6de
PB
53462009-05-12 Paolo Bonzini <bonzini@gnu.org>
5347
5348 * df-core.c: Update head documentation.
5349
c24151ce
MM
53502009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5351
5352 PR bootstrap/40118
5353 * rs6000.c (rs6000_generate_compare): Use op1b instead of
5354 shadowing exisiting variable op1.
5355
fbdf817d
UB
53562009-05-12 Uros Bizjak <ubizjak@gmail.com>
5357
704bf7c8 5358 PR target/37179
fbdf817d
UB
5359 * config/i386/driver-i386.c (processor_signatures): New enum.
5360 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
5361 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
5362 processor signature to detect geode processor.
5363
5e8d1826
PB
53642009-05-12 Paolo Bonzini <bonzini@gnu.org>
5365
5366 Revert:
5367
5368 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
5369
5370 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5371 causes spurious differences between trunk and cond-optab branch.
5372
f90b7a5a
PB
53732009-05-12 Paolo Bonzini <bonzini@gnu.org>
5374
fbdf817d
UB
5375 * dojump.c (compare_from_rtx): Delete.
5376 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
5377 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
5378 if the comparison does not satisfy the predicate; test predicates for
5379 operands 2 and 3 of a cstore pattern. Don't try cstore optab
5380 further if one existing pattern fails.
fbdf817d 5381 * expr.h (compare_from_rtx): Delete.
f90b7a5a 5382 (prepare_operand): Declare it.
fbdf817d 5383 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 5384 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
5385 HAVE_conditional_trap, emit_cmp_insn): Delete.
5386 (can_compare_p): Delete cmp_optab case.
f90b7a5a 5387 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
5388 Accept other parameters by value.
5389 (prepare_operand): Make non-static.
5390 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
5391 other parameters by value. Try to widen operands here based on
5392 an optab_methods argument and looking at cbranch_optab.
5393 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
5394 loop. Use cbranch_optab directly.
5395 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
5396 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
5397 assertion.
5398 (emit_conditional_move, emit_conditional_add): Inline what's needed
5399 of compare_from_rtx, using new prepare_cmp_insn for the rest.
5400 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
5401 with COMPARE. Move cmov_optab and cstore_optab above
5402 with cbranch_optab, move cmp_optab down with ucmp_optab,
5403 remove tst_otpab. Do not initialize trap_rtx.
5404 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
5405 for trap code. Do not check HAVE_conditional_trap. Use
5406 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
5407 * optabs.h (OTI_cmp): Mark as used only for libcalls.
5408 (OTI_ctrap, ctrap_optab): New.
5409 (tst_optab): Delete.
5410 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
5411 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
5412 with lookup of ctrap_optab.
f3afc8a7
UB
5413 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
5414 Delete.
fbdf817d
UB
5415 (ctrap_optab): New.
5416
5417 * combine.c (combine_simplify_rtx, simplify_set): Do not
5418 special case comparing against zero for cc0 machines.
f90b7a5a
PB
5419 * simplify-rtx.c (simplify_binary_operation_1): Never remove
5420 COMPARE on cc0 machines.
5421 (simplify_relational_operation): Return a new expression when
5422 a COMPARE could be removed.
fbdf817d
UB
5423 * final.c (final_scan_insn): Compare cc_status values
5424 against LHS of a (compare FOO (const_int 0)) cc0 source.
5425 Also check if cc_status.value is the full compare.
f90b7a5a 5426
fbdf817d
UB
5427 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
5428 (cstoreMM4): Document.
f90b7a5a 5429 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 5430 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
5431 (Dependent Patterns): Eliminate obsolete information referring to
5432 the old jump optimization phase.
fbdf817d 5433 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
5434 of compares with 0 on cc0 machines.
5435 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
5436 avoiding references to cc0. Remove text about storing operands
5437 in cmpMM.
5438 * doc/tm.texi (Condition Codes): Include blurb on different
5439 condition code representations, separate into subsections for
5440 CC0, MODE_CC and conditional execution.
5441
fbdf817d
UB
5442 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
5443 alpha_emit_setcc): Accept operands and a machine mode.
5444 * config/alpha/alpha.c (alpha_emit_conditional_branch):
5445 Get code/op0/op1 from operands, use machine mode argument
5446 instead of alpha_compare.fp_p. Emit the branch here.
5447 (alpha_emit_setcc): Likewise, and return boolean.
5448 (alpha_emit_conditional_move): Likewise. Assert that
5449 cmp_op_mode == cmp_mode, and simplify accordingly.
5450 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
5451 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
5452 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
5453 Delete.
5454 (stack probe test): Use cbranchdi4.
5455 * config/alpha/predicates.md (alpha_cbranch_operator): New.
5456
5457 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
5458 * config/arc/arc.h (movsicc, movsfcc): Use it.
5459 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
5460 (cbranchsi4, cstoresi4): New.
5461 (cmpsi, bCC and sCC expanders): Remove.
5462
5463 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
5464 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
5465 * config/arm/predicates.md (arm_comparison_operator): Only include
5466 floating-point operators if there is a hardware floating-point unit.
5467 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
5468 deferring to cbranch_cc and cstore_cc respectively.
5469 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
5470 cbranch_cc, cstore_cc): New.
5471 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 5472 arm_compare_op1.
fbdf817d
UB
5473 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
5474
5475 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
5476 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
5477 as an argument.
5478 (adjust_insn_length): Adjust calls.
5479 (avr_reorg): Handle (compare (foo) (const_int 0)).
5480 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
5481 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
5482 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
5483 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
5484 (bCC): Remove.
5485 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
5486 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
5487
fbdf817d
UB
5488 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
5489 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 5490 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
5491 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
5492 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
5493 (bfin_optimize_loop): Use cbranch expander.
5494 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
5495 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
5496 (bfin_bimode_comparison_operator): ... this.
5497 (bfin_direct_comparison_operator): New.
f90b7a5a 5498
fbdf817d
UB
5499 * config/cris/cris.c (cris_normal_notice_update_cc): Look
5500 inside (compare FOO (const_int 0)).
5501 (cris_rtx_costs): Handle ZERO_EXTRACT.
5502 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
5503 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
5504 (*tstdi_v32): Delete.
5505 (*cmpdi_non_v32): Add M alternative for operand 1.
5506 (cmpsi, cmp<mode>): Make private.
5507 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
5508 with COMPARE.
5509 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
5510
5511 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
5512 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
5513 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
5514 (cc_reg_operand): New.
5515 (any_cond): Delete.
fbdf817d
UB
5516 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
5517 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
5518 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
5519 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
5520 crx_expand_scond): Delete.
5521
5522 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
5523 (cbranchsi4): New.
5524 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
5525 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
5526
5527 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
5528 cstoresi4, cstoresf4, cstoredf4): New.
5529 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
5530 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5531 Receive the entire operands array.
5532 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
5533 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
5534 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5535 Get test/op0/op1 from the operands array.
5536 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
5537
5538 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
5539 (h8300_expand_store): New.
5540 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
5541 (const_int 0)).
5542 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
5543 (h8300_expand_store): New.
5544 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
5545 or do not try to produce (set (cc0) REG).
5546 (peepholes): Wrap arguments with COMPARE. Add a peephole to
5547 change a compare into a move to a scratch register. Disable some
5548 peepholes when comparing with zero.
5549 (tstsi, tsthi, tstsi, cmpqi): Make private.
5550 (cmphi): Delete.
5551 (bCC, sCC): Delete.
5552 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
5553 cstoresi4): New.
f90b7a5a
PB
5554
5555 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
5556 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
5557 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
5558 (ix86_emit_i387_log1p): Use cbranchxf2.
5559 (ix86_expand_setcc): Return void.
5560 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
5561 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
5562 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
5563 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
5564 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
5565 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
5566 (sCC and bCC expanders): Remove.
5567 (stack_protect_test): Use cbranchcc4.
5568
fbdf817d
UB
5569 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
5570 Delete.
5571 (ia64_expand_compare): Accept three rtx by reference and return void.
5572 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
5573 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
5574 from *expr. Update *expr with the BImode comparison to do.
5575 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
5576 cmptf, bCC, sCC, conditional_trap): Delete.
5577 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
5578 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
5579 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
5580 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
5581 * config/ia64/predicates.md (ia64_cbranch_operator): New.
5582
5583 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
5584 type of last argument.
5585 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
5586 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
5587 use machine mode argument instead of branch_type. Remove dead
5588 code for floating-point comparisons.
5589 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
5590 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
5591 Remove.
5592 (cbranchsi4, cstoresi4): New.
5593 * config/iq2000/predicates.md (reg_or_const_operand): New.
5594
5595 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
5596 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
5597 (b<code>_op): Rewrite to...
5598 (bcc_op): ... this, using match_operator.
5599 (s<code>_op): Rewrite to...
5600 (scc_op): ... this, using match_operator.
5601 (s<code>_24_op): Rewrite to...
5602 (scc_op_24): ... this, using match_operator.
5603 (s<code>_<mode>): Rewrite to...
5604 (cstore<mode>4): ... this, using match_operator.
5605 (s<code>_<mode>_24): Rewrite to...
5606 (cstore<mode>4_24): ... this, using match_operator.
5607 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
5608 m32c_unpend_compare, m32c_expand_scc): Delete.
5609 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
5610 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
5611 (m32c_expand_movcc): Change NE to EQ if necessary.
5612 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
5613
5614 * config/m32r/m32r-protos.h (gen_cond_store): New.
5615 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
5616 (gen_cond_store): New, from sCC patterns.
5617 (m32r_expand_block_move): Use cbranchsi4.
5618 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
5619 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
5620 (cbranchsi4, cstoresi4): New.
5621
5622 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
5623 Delete.
5624 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 5625 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
5626 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
5627 Delete.
5628 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
5629 cmphi, cmpqi, bCC): Delete.
5630 (cbranchsi4, cbranchhi4, cbranchqi4): New.
5631 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
5632 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
5633 sets with COMPARE.
5634
5635 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
5636 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
5637 * config/m68k/constraints.md (H): New.
5638 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
5639 the define_insn below.
5640 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
5641 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
5642 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
5643 patterns): Wrap RHS with COMPARE.
5644 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
5645 (*cmpdi_internal): Name this pattern.
5646 (cmpdi): Change to define_insn.
5647 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
5648 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
5649 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
5650 predicate.
5651 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
5652 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
5653 (conditional_trap): Change to...
5654 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
5655 (*conditional_trap): Use the ordered_comparison_operator and
5656 const1_operand predicates.
5657 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
5658 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
5659 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
5660 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
5661
5662 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
5663 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
5664 (mcore_gen_compare): New.
5665 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
5666 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
5667 (mcore_gen_compare): ... this.
5668 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
5669 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
5670 (stack probe pattern): Use cbranchsi4.
5671
5672 * config/mips/predicates.md (mips_cstore_operator): New.
5673 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
5674 * config/mips/mips.md (any_cond): Delete.
5675 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
5676 always succeed.
5677 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
5678 fixuns_truncsfdi2): Use cbranch patterns.
5679 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
5680 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
5681 Adjust call to mips_expand_conditional_branch.
5682 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
5683 cstore<GPR:mode>4.
5684 * config/mips/mips-protos.h (mips_expand_conditional_branch,
5685 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
5686 * config/mips/mips.c (cmp_operands): Delete.
5687 (mips_emit_compare): Get comparison operands from *op0/*op1.
5688 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
5689 that it succeeds. Use op0/op1 instead of cmp_operands.
5690 (mips_expand_conditional_branch, mips_expand_conditional_move,
5691 mips_expand_conditional_trap): Likewise.
5692 (mips_block_move_loop): Use cbranch patterns.
5693 * config/mips/mips.h (cmp_operands): Delete.
5694
5695 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
5696 (mmix_gen_compare_reg): Just return a register in the right CC mode.
5697 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
5698 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
5699 (*cmpcc_folded): Rename to...
5700 (*cmpdi_folded): this.
5701 (*cmpcc): Rename to...
5702 (*cmps): ... this.
5703 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
5704 (bCC): Remove.
5705 (cbranchdi4): New.
5706 (cbranchdf4): New. Handle invalid comparisons here.
5707 * config/mmix/predicates.md (float_comparison_operator): New.
5708
5709 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
5710 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
5711 * config/mn10300/mn10300.md (tst): Delete.
5712 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
5713 Name these patterns and wrap RHS in a compare.
5714 (*cmpsi): Make this pattern private. Include tst.
5715 (*cmpsf): Make this pattern private.
5716 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
5717 (compare with zero peepholes): Likewise.
5718 (bCC): Remove.
5719 (cbranchsi4, cbranchsf4): New.
5720 (casesi): Use cbranchsi4.
5721
5722 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
5723 hppa_branch_type): Delete.
5724 (return_addr_rtx): Use cbranchsi4.
5725 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
5726 Emit CCFPmode comparison here.
5727 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
5728 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
5729 hppa_branch_type): Delete.
5730 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
5731 (movsicc, movdicc): Remove references to hppa_compare_op0,
5732 hppa_compare_op1 and compare_from_rtx.
5733 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
5734 (casesi): Use cbranchsi4.
5735
5736 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
5737 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
5738 * config/pdp11/pdp11.md (register_or_const0_operand): New.
5739 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
5740 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
5741 (bCC): Delete.
5742 (cbranchdf4, cbranchhi4, cbranchqi4): New.
5743 (*branch, *branch_inverted): New.
5744
5745 * config/picochip/picochip.md (cbranchhi4): Use
5746 ordered_comparison_operator.
5747 (cmphi, bCC): Remove.
5748
5749 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
5750 (trap_comparison_operator): Delete.
5751 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
5752 rs6000_emit_cbranch): Accept mode and operands.
5753 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
5754 rs6000_compare_fp_p): Delete.
5755 (rs6000_generate_compare): Accept mode and comparison. Extract code
5756 and op0/op1 from there. Replace references to rs6000_compare_op0
5757 and rs6000_compare_op1.
5758 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
5759 extract result from passed operands.
5760 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
5761 extract loc from passed operands.
5762 (rs6000_emit_cmove): Likewise.
5763 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
5764 rs6000_compare_fp_p): Delete.
5765 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
5766 (cbranch<GPR>4, cbranch<FP>4): New.
5767 (cstore<mode>4): New. Consolidate here all choices about when to use
5768 portable or specialized sCC sequences.
5769 (stack_protect_test): Use cbranchsi4.
5770 (conditional_trap): Replace with ctrap<GPR>4.
5771 (conditional trap insn): Replace trap_comparison_operator with
5772 ordered_comparison_operator.
5773
5774 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
5775 (s390_emit_prologue): Use ctrap.
5776 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
5777 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
5778 New predicates replacing...
5779 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
5780 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
5781 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
5782 (add<mode>cc): Do not use s390_compare_op0/op1.
5783 (s<code>): Change to...
5784 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
5785 (seq): Change to...
5786 (cstorecc4): ... this. Handle EQ or NE equally.
5787 (*sne): Un-privatize for use in cstorecc4.
5788 (b<code>): Change to...
5789 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
5790 (conditional_trap): Replace with...
5791 (ctrap<GPR>4, ctrap<FP>4): ... these.
5792 (stack_protect): Use cbranchcc4.
5793
5794 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
5795 * config/score/score-protos.h (score_gen_cmp): Delete.
5796 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
5797 (score_block_move-loop): Use cbranchsi4.
5798 * config/score/score.md (cbranchsi4): New.
5799 (cmpsi, bCC): Delete.
5800 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
5801 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5802 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
5803 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5804 * config/score/score3.h (score3_gen_cmp): Delete.
5805 * config/score/score7.h (score7_gen_cmp): Delete.
5806
5807 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
5808 (sh_emit_scc_to_t): ... this. Return void.
5809 (from_compare): Rename to...
5810 (sh_emit_compare_and_branch): ... this.
5811 (sh_emit_compare_and_set): New.
5812 (sh_expand_t_scc): Accept operands.
5813 * config/sh/predicates.md (sh_float_comparison_operator): New.
5814 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
5815 (prepare_scc_operands): Rename to...
5816 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
5817 arguments.
5818 (sh_emit_cheap_store_flag): New.
f90b7a5a 5819 (sh_emit_set_t_insn): New.
fbdf817d
UB
5820 (from_compare): Rename to...
5821 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
5822 handling of TARGET_SH2E floating point to avoid recursive call.
5823 Generate branch here.
5824 (sh_emit_compare_and_set): New.
5825 (sh_expand_t_scc): Get op0/op1 from arguments.
5826 (sh_emit_cheap_store_flag): New.
5827 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
5828 cases.
f90b7a5a 5829 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
5830 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
5831 (movsicc, movdicc): Do nothing when it recreated operands from
5832 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
5833 prepare_scc_operands (now sh_emit_scc_to_t).
5834 (udivdi3): Use cstoresi4.
5835 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
5836 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
5837 (cbranchint4_media, cbranchfp4_media): New.
5838 (casesi): Use cbranchdi4.
5839 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
5840 Delete.
5841 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
5842 (movnegt): Remove second operand.
5843 (cbranchsf4, cbranchdf4): New.
5844 (stack_protect): Use cbranchdi4/cbranchsi4.
5845
5846 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
5847 (gen_compare_reg): Accept comparison, extract part of it to...
5848 (gen_compare_reg_1): ... this.
5849 (gen_compare_operator): Delete.
5850 (gen_v9_scc): Accept separate destination, comparison code and arms.
5851 Do not use sparc_compare_op0/sparc_compare_op1.
5852 (emit_scc_insn, emit_conditional_branch_insn): New.
5853 (emit_v9_brxx): Make static. Remove useless assertion.
5854 (sparc_emit_float_lib_cmp): Return RTL instead of calling
5855 emit_cmp_insn.
5856 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
5857 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
5858 sparc_emit_float_lib_cmp): Adjust prototype.
5859 (emit_scc_insn, emit_conditional_branch_insn): New.
5860 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
5861 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
5862 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
5863 iterators to the top.
5864 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
5865 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 5866 snedi_special_trunc): Delete.
fbdf817d 5867 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 5868 and snedi_special_trunc.
fbdf817d
UB
5869 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
5870 cbranchdi4, cbranch<F:mode>4): New.
5871 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
5872 here. Use gen_compare_reg instead of gen_compare_operator.
5873 (conditional_trap): Replace with...
5874 (ctrapsi4, ctrapdi4): ... this.
5875 (stack_protect_test): Use cbranchcc4.
5876
5877 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
5878 argument to rtx.
5879 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
5880 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
5881 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
5882 from operands[0] or operands[3] depending on is_set.
5883 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
5884 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
5885 cmpdf, bCC), sCC: Remove.
5886 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
5887 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
5888 cstoredf4): New.
5889 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
5890 spu_emit_branch_or_set.
5891
5892 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
5893 Add two arguments.
5894 * config/stormy16/stormy16.h (xstormy16_compare_op0,
5895 xstormy16_compare_op1): Delete.
5896 * config/stormy16/stormy16.c (xstormy16_compare_op0,
5897 xstormy16_compare_op1): Delete.
5898 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
5899 Adjust calls.
5900 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
5901 (cmphi, cmpsi, bCC): Remove.
5902
5903 * config/v850/v850.md (tstsi, cmpsi): Fold into...
5904 (*cmpsi): ... this one.
5905 (cbranchsi4, cstoresi4): New.
5906 (bCC expanders): Delete.
5907 (sCC insns): Fold into...
5908 (*setcc): ... this one.
5909 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
5910 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
5911 (movsicc): Simplify.
5912 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
5913
fbdf817d
UB
5914 * config/vax/vax-protos.h (cond_name): New.
5915 (vax_output_conditional_branch): Remove.
5916 * config/vax/vax.c (cond_name): New.
5917 (vax_output_conditional_branch): Remove.
5918 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
5919 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
5920 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
5921 (bit<VAXint>): Wrap source with (compare).
5922 (b<code> and following unnamed pattern): Rename to *branch and
5923 *branch_reversed. Change macroization to match_operator.
5924 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
5925
5926 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
5927 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
5928 Change last argument to machine_mode.
5929 (xtensa_expand_scc): Add machine_mode argument.
5930 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
5931 (gen_conditional_move, xtensa_expand_conditional_branch,
5932 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
5933 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
5934 Adjust operand numbers.
5935 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
5936 Delete.
5937 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
5938 (cmpsi, cmpsf, b<code>, s<code>): Delete.
5939 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 5940
16670495
PB
59412009-05-12 Paolo Bonzini <bonzini@gnu.org>
5942
5943 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5944 causes spurious differences between trunk and cond-optab branch.
5945
4a4a4e99
AO
59462009-05-12 Alexandre Oliva <aoliva@redhat.com>
5947
5948 PR target/37137
5949 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
5950
72b9acff
AO
59512009-05-12 Alexandre Oliva <aoliva@redhat.com>
5952
5953 * tree.c (iterative_hash_pointer): Delete.
5954 (iterative_hash_expr): Short-circuit handling of NULL pointer.
5955 Hash UIDs and versions of SSA names. Don't special-case built-in
5956 function declarations.
5957
b7dd69ac
ILT
59582009-05-11 Ian Lance Taylor <iant@google.com>
5959
5960 PR bootstrap/40103
5961 * graphite.c: Force -Wc++-compat to only be a warning before
5962 #including "cloog/cloog.h".
5963
ed102b70
MJ
59642009-05-11 Martin Jambor <mjambor@suse.cz>
5965
5966 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
5967
08f1af2e
JH
59682009-05-11 Jan Hubicka <jh@suse.cz>
5969
5970 * tree-ssa-loop-ivcanon.c: Include target.h
5971 (struct loop_size): new structure.
5972 (constant_after_peeling): New predicate.
5973 (tree_estimate_loop_size): New function.
5974 (estimated_unrolled_size): Rewrite for new estimates.
5975 (try_unroll_loop_completely): Use new estimates.
5976 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
5977
a7d39bd3
AP
59782009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5979
5980 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
5981 libcpp interface change.
5982 (spu_macro_to_expand): Likewise.
5983
f5a1f0d0
PB
59842009-05-11 Paolo Bonzini <bonzini@gnu.org>
5985
5986 PR tree-optimization/40026
5987 * gimplify.c (gimplify_init_constructor): Change initial conditional
5988 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
5989 optimize_compound_literals_in_ctor.
5990
c260f01f
NS
59912009-05-11 Nathan Sidwell <nathan@codesourcery.com>
5992
5993 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
5994 New devices.
5995 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
5996
df398a37
L
59972009-05-11 H.J. Lu <hongjiu.lu@intel.com>
5998
5999 * tree-vect-data-refs.c (vect_analyze_group_access): Use
6000 HOST_WIDE_INT for gap.
6001
4da39468
IR
60022009-05-11 Ira Rosen <irar@il.ibm.com>
6003
6004 PR tree-optimization/40074
6005 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
6006 account in group size and step comparison.
6007
4effdf02
RG
60082009-05-11 Richard Guenther <rguenther@suse.de>
6009
6010 * passes.c (init_optimization_passes): Strip now incorrect comment.
6011 (execute_function_todo): Do not set PROP_alias.
6012 * tree-pass.h (PROP_alias): Remove.
6013 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
6014 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
6015 * tree-nrv.c (pass_return_slot): Likewise.
6016 * tree-object-size.c (pass_object_sizes): Likewise.
6017 * tree-ssa-dom.c (pass_dominator): Likewise.
6018 (pass_phi_only_cprop): Likewise.
6019 * tree-ssa-dse.c (pass_dse): Likewise.
6020 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
6021 (pass_cselim): Likewise.
6022 * tree-ssa-pre.c (pass_pre): Likewise.
6023 (pass_fre): Likewise.
6024 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
6025 * tree-ssa-sink.c (pass_sink_code): Likewise.
6026 * tree-stdarg.c (pass_stdarg): Likewise.
6027 * tree-tailcall.c (pass_tail_calls): Likewise.
6028 * tree-vrp.c (pass_vrp): Likewise.
6029
24b97832
ILT
60302009-05-10 Ian Lance Taylor <iant@google.com>
6031
6032 * basic-block.h (enum profile_status): Break out of struct
6033 control_flow_graph.
6034 * cgraph.h (struct inline_summary): Break out of struct
6035 cgraph_local_info.
6036 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
6037 of struct cgraph_order_sort.
fbdf817d 6038 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
6039 * cse.c (struct branch_path): Break out of struct
6040 cse_basic_block_data.
6041 * except.h (enum eh_region_type): Break out of struct eh_region.
6042 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 6043 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
6044 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
6045 ggc_pch_data.
fbdf817d
UB
6046 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
6047 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
6048 * sched-int.h (enum post_call_group): New enum, broken out of
6049 struct deps.
6050 (struct deps_reg): Break out of struct deps.
6051 * target.h (struct asm_int_op): Break out of struct gcc_target.
6052 * tree-eh.c (struct goto_queue_node): Break out of struct
6053 leh_tf_state.
6054 * tree-inline.h (enum copy_body_cge_which): Break out of
6055 copy_body_data.
6056 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
6057
6058 * c-decl.c (in_struct, struct_types): New static variables.
6059 (pushtag): Add loc parameter. Change all callers.
6060 (lookup_tag): Add ploc parameter. Change all callers.
6061 (check_compound_literal_type): New function.
6062 (parser_xref_tag): Add loc parameter. Change all callers. If
6063 -Wc++-compat, warn about struct/union/enum types defined within a
6064 struct or union.
6065 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
6066 and loc parameters. Change all callers. Change error calls to
6067 error_at, using loc. For a redefinition, if the location of the
6068 original definition is known, report it. Set in_struct and
fbdf817d 6069 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
6070 (finish_struct): Add new parameters enclosing_in_struct and
6071 enclosing_struct_types. Change all callers. Set
6072 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
6073 in the struct. If in a struct, add this struct to struct_types.
6074 (start_enum): Add loc parameter. Change all callers. Use
6075 error_at for errors, using loc. For a redefinition, if the
6076 location of the original definition is known, report it. If in a
6077 struct, add this enum type to struct_types. If -Wc++-compat warn
6078 if in sizeof, typeof, or alignof.
fbdf817d
UB
6079 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
6080 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
6081 (c_parser_enum_specifier): Get enum location for start_enum.
6082 (c_parser_struct_or_union_specifier): Get struct location for
6083 start_struct. Save in_struct and struct_types status between
6084 start_struct and finish_struct.
6085 (c_parser_cast_expression): Get location of cast.
6086 (c_parser_alignof_expression): Get location of type.
6087 (c_parser_postfix_expression): Likewise.
6088 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
6089 parameter. Change all callers. Call check_compound_literal_type.
6090 Use type_loc for error about variable size type.
6091 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
6092 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
6093 (c_cast_expr): Add loc parameter. Change all callers. If
6094 -Wc++-compat, warn about defining a type in a cast.
6095 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
6096 (start_enum, start_struct, finish_struct): Update declarations.
6097 (parser_xref_tag, c_cast_expr): Update declarations.
6098 (check_compound_literal_type): Declare.
6099
7a2738fa
BE
61002009-05-11 Ben Elliston <bje@au.ibm.com>
6101
6102 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
6103 for recent libcpp interface change.
6104 (rs6000_macro_to_expand): Likewise.
6105
af618949
MM
61062009-05-10 Michael Matz <matz@suse.de>
6107
6108 PR target/40031
6109 * config/arm/arm.c (require_pic_register): Emit on entry edge,
6110 not at entry of function.
6111
b7d7a473
RG
61122009-05-10 Richard Guenther <rguenther@suse.de>
6113
6114 PR tree-optimization/40081
6115 Revert
6116 * tree-sra.c (instantiate_element): Instantiate scalar replacements
6117 using the main variant of the element type. Do not fiddle with
6118 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6119
6120 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
6121 structs with volatile fields.
6122
078c3644
JH
61232009-05-10 Jan Hubicka <jh@suse.cz>
6124
6125 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
6126 (estimate_move_cost): Assert that it does not get called for
6127 VOID_TYPE_P.
078c3644
JH
6128 (estimate_num_insns): Skip VOID types in argument handling.
6129 (optimize_inline_calls): Delete unreachable blocks and verify that
6130 callgraph is valid.
6131
39ff5a96
JH
61322009-05-10 Jan Hubicka <jh@suse.cz>
6133
6134 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
6135 * cgraph.c (cgraph_mark_address_taken_node): New function.
6136 (dump_cgraph_node): Dump new flag.
6137 * cgraph.h (struct cgraph_node): Add address_taken.
6138 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
6139 * ipa.c (cgraph_postorder): Prioritize functions with address taken
6140 since new direct calls can be born.
6141
9a0c6187
JM
61422009-05-10 Joseph Myers <joseph@codesourcery.com>
6143
6144 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
6145 tok->val.node.node.
6146
4b685e14
JH
61472009-05-10 Jan Hubicka <jh@suse.cz>
6148
6149 PR middle-end/40084
fb0be169
EB
6150 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
6151 argument; rewrite.
4b685e14
JH
6152 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
6153 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
6154 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
6155 (fold_marked_statements): Update call to
6156 cgraph_update_edges_for_call_stmt.
4b685e14 6157
29d08eba
JM
61582009-05-10 Joseph Myers <joseph@codesourcery.com>
6159
6160 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
6161 identifiers in diagnostics.
6162 * config/arm/arm.c (arm_handle_fndecl_attribute,
6163 arm_handle_isr_attribute): Likewise.
6164 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 6165 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
6166 * config/bfin/bfin.c (handle_int_attribute,
6167 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
6168 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
6169 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
6170 Likewise.
6171 * config/darwin.c (darwin_handle_kext_attribute,
6172 darwin_handle_weak_import_attribute): Likewise.
6173 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
6174 h8300_handle_eightbit_data_attribute,
6175 h8300_handle_tiny_data_attribute): Likewise.
6176 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 6177 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
6178 * config/i386/winnt.c (ix86_handle_shared_attribute,
6179 ix86_handle_selectany_attribute): Likewise.
6180 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
6181 * config/m32c/m32c.c (function_vector_handler): Likewise.
6182 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
6183 m68hc11_handle_fntype_attribute): Likewise.
6184 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
6185 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
6186 * config/mips/mips.c (mips_insert_attributes,
6187 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
6188 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
6189 rs6000_handle_struct_attribute): Likewise.
6190 * config/sh/sh.c (sh_insert_attributes,
6191 sh_handle_resbank_handler_attribute,
6192 sh_handle_interrupt_handler_attribute,
6193 sh2a_handle_function_vector_handler_attribute,
6194 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
6195 Likewise.
6196 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
6197 * config/spu/spu.c (spu_handle_fndecl_attribute,
6198 spu_handle_vector_attribute): Likewise.
6199 * config/stormy16/stormy16.c
6200 (xstormy16_handle_interrupt_attribute): Likewise.
6201 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
6202 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
6203
f41c4af3
JM
62042009-05-10 Joseph Myers <joseph@codesourcery.com>
6205
782dc37a 6206 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
6207 (pp_translate_identifiers): New.
6208 (pp_identifier): Only conditionally translate identifier to locale
6209 character set.
6210 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
6211 (pp_base_tree_identifier): Only conditionally translate identifier
6212 to locale character set.
6213 * c-pretty-print.c (M_): Define.
6214 (pp_c_type_specifier, pp_c_primary_expression): Mark English
6215 fragments for conditional translation with M_.
6216 * tree-pretty-print.c (maybe_init_pretty_print): Disable
6217 identifier translation.
6218
896d7dbd
RG
62192009-05-10 Richard Guenther <rguenther@suse.de>
6220
6221 PR tree-optimization/40081
6222 * tree-sra.c (instantiate_element): Instantiate scalar replacements
6223 using the main variant of the element type. Do not fiddle with
6224 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6225
9a23acef
JH
62262009-05-09 Jan Hubicka <jh@suse.cz>
6227
6228 PR middle-end/40080
6229 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
6230 indirect calls; verify cgraph afterwards.
6231
d563610d
JH
62322009-05-09 Jan Hubicka <jh@suse.cz>
6233
6234 PR bootstrap/40082
6235 * ipa.c (update_inlined_to_pointer): New function.
6236 (cgraph_remove_unreachable_nodes): Use it.
6237
f08a18d0
JH
62382009-05-09 Jan Hubicka <jh@suse.cz>
6239
6240 * tree-eh.c (struct leh_state): Remove prev_try.
6241 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
6242 not track prev_try.
6243 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
6244 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
6245 remove_eh_handler_and_replace, foreach_reachable_handler,
6246 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
6247 * except.h (struct eh_region): Remove eh_region_u_cleanup.
6248 (gen_eh_region_cleanup): Update prototype.
6249
0afd7219
JH
62502009-05-09 Jan Hubicka <jh@suse.cz>
6251
6252 PR middle-end/40043
6253 * except.c (copy_eh_region): Always set prev_try.
6254 (redirect_eh_edge_to_label): Find outer try.
6255 (foreach_reachable_handler): When looking for prev try
6256 handle case where previous try is not going to be taken.
6257
ad6c0864
MM
62582009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
6259
6260 PR tree-optimization/40049
6261 * tree-vect-stmts.c (vectorizable_operation): If the machine has
6262 only vector/vector shifts, convert the type of the constant to the
6263 appropriate type to avoid building incorrect trees, which
6264 eventually have problems with garbage collection.
6265
c94f9067
JM
62662009-05-08 Joseph Myers <joseph@codesourcery.com>
6267
6268 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
6269 -1 for complex floating-point types if honoring signed zeros.
6270
9187e02d
JH
62712009-05-08 Jan Hubicka <jh@suse.cz>
6272
20acb8a2
EB
6273 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
6274 argument; handle correctly when profile is absent.
9187e02d
JH
6275 (build_cgraph_edges): Update.
6276 (rebuild_cgraph_edges): Update.
20acb8a2
EB
6277 * cgraph.c: Do not include varray.h.
6278 (cgraph_set_call_stmt_including_clones): New function.
6279 (cgraph_create_edge_including_clones): Likewise
6280 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
6281 (cgraph_update_edges_for_call_stmt): Handle clones.
6282 (cgraph_remove_node): Handle clone tree.
6283 (cgraph_remove_node_and_inline_clones): New function.
6284 (dump_cgraph_node): Dump clone tree.
6285 (cgraph_clone_node): Handle clone tree.
20acb8a2 6286 (clone_function_name): Bring here from tree-inline.c.
9187e02d 6287 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
6288 * cgraph.h (ipa_replace_map): Move here from ipa.h.
6289 (cgraph_clone_info): New function.
9187e02d 6290 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
6291 (cgraph_remove_node_and_inline_clones,
6292 cgraph_set_call_stmt_including_clones,
6293 cgraph_create_edge_including_clones,
6294 cgraph_create_virtual_clone): Declare.
9187e02d
JH
6295 (cgraph_function_versioning): Use VEC argument.
6296 (compute_call_stmt_bb_frequency): Update prototype.
6297 (cgraph_materialize_all_clones): New function.
6298 * ipa-cp.c (ipcp_update_cloned_node): Remove.
6299 (ipcp_create_replace_map): Update to VECtors.
6300 (ipcp_update_callgraph): Use virtual clones.
6301 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
6302 (ipcp_update_profiling): Do not update local profiling.
6303 (ipcp_insert_stage): Use VECtors and virtual clones.
6304 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
6305 (clone_of_p): New function.
6306 (cgraph_preserve_function_body_p): Use clone tree.
6307 (cgraph_optimize): Materialize clones.
6308 (cgraph_function_versioning): Update for VECtors.
6309 (save_inline_function_body): Use clone tree.
20acb8a2
EB
6310 (cgraph_materialize_clone): New function.
6311 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
6312 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
6313 * ipa.c: Include gimple.h.
6314 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
6315 * ipa-prop.c (ipa_note_param_call): Update call to
6316 compute_call_stmt_bb_frequencycall.
9187e02d 6317 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 6318 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
6319 (copy_bb): Handle updating of clone tree; add new edge when new call
6320 appears.
6321 (expand_call_inline): Be strict about every call having edge.
6322 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
6323 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
6324 (tree_function_versioning): Use VECtors; always remove unreachable
6325 blocks and fold conditionals.
6326 * tree-inline.h: Do not include varray.h.
9187e02d
JH
6327 (tree_function_versioning): Remove.
6328 * Makefile.in (GTFILES): Remove tree-inline.c
6329 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
6330 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
6331 tree.
9187e02d 6332
9b86d6bb
L
63332009-05-08 H.J. Lu <hongjiu.lu@intel.com>
6334 Andrew Morrow <acm@google.com>
6335
6336 PR c/36892
6337 * c-common.c (c_common_attribute_table): Permit deprecated
6338 attribute to take an optional argument.
6339 (handle_deprecated_attribute): If the optional argument to
6340 __attribute__((deprecated)) is not a string ignore the attribute
6341 and emit a warning.
6342
6343 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
6344 * c-typeck.c (build_component_ref): Likewise.
6345 (build_external_ref): Likewise.
6346
6347 * toplev.c (warn_deprecated_use): Add an attribute argument.
6348 Emit the message associated with __attribute__((deprecated)).
6349
6350 * toplev.h (warn_deprecated_use): Updated.
6351
6352 * doc/extend.texi: Document new optional parameter to
6353 __attribute__((deprecated))
6354
82ad047f
ME
63552009-05-08 Michael Eager <eager@eagercon.com>
6356
6357 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
6358 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
6359
788d3075
RG
63602009-05-08 Richard Guenther <rguenther@suse.de>
6361
6362 PR tree-optimization/40062
6363 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
6364 Avoid exponential behavior.
6365
00952e97
PB
63662009-05-08 Paolo Bonzini <bonzini@gnu.org>
6367
6368 PR rtl-optimization/33928
6369 PR 26854
6370 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
6371 process_uses, build_single_def_use_links): New.
6372 (update_df): Update use_def_ref.
6373 (forward_propagate_into): Use get_def_for_use instead of use-def
6374 chains.
6375 (fwprop_init): Call build_single_def_use_links and let it initialize
6376 dataflow.
6377 (fwprop_done): Free use_def_ref.
6378 (fwprop_addr): Eliminate duplicate call to df_set_flags.
6379 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
6380 df_rd_simulate_one_insn): New.
6381 (df_rd_bb_local_compute_process_def): Update head comment.
6382 (df_chain_create_bb): Use the new RD simulation functions.
6383 * df.h (df_rd_simulate_artificial_defs_at_top,
6384 df_rd_simulate_one_insn): New.
6385 * opts.c (decode_options): Enable fwprop at -O1.
6386 * doc/invoke.texi (-fforward-propagate): Document this.
6387
2ca862e9
JM
63882009-05-08 Joseph Myers <joseph@codesourcery.com>
6389
6390 PR c/24581
6391 * c-typeck.c (build_binary_op): Handle arithmetic between one real
6392 and one complex operand specially.
6393 * tree-complex.c (some_nonzerop): Do not identify a real value as
6394 zero if flag_signed_zeros.
6395
3e807ffc
PB
63962009-05-08 Paolo Bonzini <bonzini@gnu.org>
6397
6398 PR rtl-optimization/33928
7925c06c 6399 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 6400
1bfdbb29
PB
64012009-05-08 Paolo Bonzini <bonzini@gnu.org>
6402
6403 PR rtl-optimization/33928
e913423f
EB
6404 * loop-invariant.c (struct use): Add addr_use_p.
6405 (struct def): Add n_addr_uses.
6406 (struct invariant): Add cheap_address.
6407 (create_new_invariant): Set cheap_address.
6408 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
6409 (record_uses): Pass df_ref to record_use.
6410 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
6411 used only as such.
1bfdbb29 6412
702cb2a0
KK
64132009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
6414
6415 * config/sh/sh.c: Do not include c-pragma.h.
6416
5e8df753
AP
64172009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
6418
6419 * config/spu/spu.c: Remove include of c-common.h.
6420
6ec637a4
JJ
64212009-05-07 Janis Johnson <janis187@us.ibm.com>
6422
6423 PR c/39037
6424 * c-common.h (mark_valid_location_for_stdc_pragma,
6425 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
6426 clear_float_const_decimal64, float_const_decimal64_p): New.
6427 * c.opt (Wunsuffixed-float-constants): New.
6428 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
6429 unsuffixed float constant, handle new warning.
6430 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
6431 * c-decl.c (c_scope): New flag float_const_decimal64.
6432 (set_float_const_decimal64, clear_float_const_decimal64,
6433 float_const_decimal64_p): New.
6434 (push_scope): Set new flag.
6435 * c-parser.c (c_parser_translation_unit): Mark when it's valid
6436 to use STDC pragmas.
6437 (c_parser_external_declaration): Ditto.
6438 (c_parser_compound_statement_nostart): Ditto.
6439 * c-pragma.c (valid_location_for_stdc_pragma,
6440 mark_valid_location_for_stdc_pragma,
6441 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
6442 handle_pragma_float_const_decimal64): New.
6443 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
6444 * cp/semantics.c (valid_location_for_stdc_pragma_p,
6445 set_float_const_decimal64, clear_float_const_decimal64,
6446 float_const_decimal64_p): New dummy functions.
6447 * doc/extend.texi (Decimal Float): Remove statement that the
6448 pragma, and suffix for double constants, are not supported.
6449 * doc/invoke.texi (Warning Options): List new option.
6450 (-Wunsuffixed-float-constants): New.
6451
45b9b2e9
SB
64522009-05-08 Steven Bosscher <steven@gcc.gnu.org>
6453
6454 * config/i386/i386.c: Do not include c-common.h.
6455
e71da632
MH
64562009-05-07 Mark Heffernan <meheff@google.com>
6457
6458 * doc/invoke.texi (Debugging Options): Document change of debugging
6459 dump location.
e913423f 6460 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
6461 aux_base_name directory.
6462
fe4c7bc6
HS
64632009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
6464
6465 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
6466 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
6467
3b3e44eb
RAE
64682009-05-07 Rafael Avila de Espindola <espindola@google.com>
6469
6470 * Makefile.in (install-plugin): Simplify a bit.
6471
fac41238
PB
64722009-05-07 Paolo Bonzini <bonzini@gnu.org>
6473
6474 * Makefile.in (OBJS-common): Add regcprop.o.
6475 (regcprop.o): New.
6476 * timevar.def (TV_CPROP_REGISTERS): New.
6477 * regrename.c (regrename_optimize): Return 0.
6478 (rest_of_handle_regrename): Delete.
6479 (pass_rename_registers): Point to regrename_optimize.
6480 (struct value_data_entry, struct value_data,
6481 kill_value_one_regno, kill_value_regno, kill_value,
6482 set_value_regno, init_value_data, kill_clobbered_value,
6483 kill_set_value, kill_autoinc_value, copy_value,
6484 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
6485 replace_oldest_value_reg, replace_oldest_value_addr,
6486 replace_oldest_value_mem, copyprop_hardreg_forward_1,
6487 debug_value_data, validate_value_data): Move...
6488 * regcprop.c: ... here.
6489 (rest_of_handle_cprop): Delete.
6490 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
6491
472e0df9
JJ
64922009-05-07 Jakub Jelinek <jakub@redhat.com>
6493
6494 PR middle-end/40057
6495 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
6496 GEN_INT for 1 << bitnum.
6497 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
6498 build_int_cst_type.
6499
0d50d55a
UB
65002009-05-07 Uros Bizjak <ubizjak@gmail.com>
6501
6502 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 6503 Remove wrong description of "nand" operation.
0d50d55a 6504
22f597f1
RG
65052009-05-06 Richard Guenther <rguenther@suse.de>
6506 Adam Nemet <anemet@caviumnetworks.com>
6507
6508 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
6509 comment. Add that if LHS is not a gimple register, then RHS1 has
6510 to be a single object (GIMPLE_SINGLE_RHS).
6511
641cac0b
AN
65122009-05-06 Adam Nemet <anemet@caviumnetworks.com>
6513
6514 * expr.c (get_def_for_expr): Move it up in the file.
6515 (store_field): When expanding a bit-field store, look at the
6516 defining gimple stmt for the masking conversion.
6517
5a5c6435
JJ
65182009-05-06 Janis Johnson <janis187@us.ibm.com>
6519
6520 PR middle-end/39986
6521 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
6522 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
6523 32-bit memcpy into long.
6524
96474f36
JJ
65252009-05-06 Jakub Jelinek <jakub@redhat.com>
6526
6527 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
6528 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
6529 new_reg_loc_descr.
6530 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
6531 instead of appending DW_OP_deref*.
6532
529ff441
MM
65332009-05-06 Michael Matz <matz@suse.de>
6534
6535 PR middle-end/40021
6536 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
6537 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
6538
9419a9fd
RAE
65392009-05-06 Rafael Avila de Espindola <espindola@google.com>
6540
6541 * Makefile.in (install-plugin): Fix srcdir handling.
6542
fff1894c
AB
65432009-05-06 Andrey Belevantsev <abel@ispras.ru>
6544
6545 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
6546 when processing for not_regs_needed bitmap.
6547 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
6548 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
6549 handling it for rhs.
6550
700ae70c
L
65512009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6552
ab3426a7 6553 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 6554 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
6555 * config/i386/predicates.md (incdec_operand): Likewise.
6556 (aligned_operand): Likewise.
6557 * config/i386/sse.md (divv8sf3): Likewise.
6558 (sqrtv8sf2): Likewise.
6559
67341fb5
L
65602009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6561
6562 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
6563
6564 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
6565
87946f42
L
65662009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6567
6568 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
6569 ssemodesuffixf2c with avxmodesuffixf2c.
6570
1202aec1
JM
65712009-05-06 Joseph Myers <joseph@codesourcery.com>
6572
6573 PR c/40032
aa016ff7 6574 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 6575
6e57a01d
JJ
65762009-05-05 Jakub Jelinek <jakub@redhat.com>
6577
6578 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
6579 (struct tree_base): Adjust spacing for 8 bit boundaries.
6580 (struct tree_decl_common): Add decl_by_reference_flag bit.
6581 (DECL_BY_REFERENCE): Adjust.
6582 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
6583 print DECL_BY_REFERENCE bit.
6584 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
6585 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
6586 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
6587 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
6588 unconditionally.
6589
32f579f6
JJ
6590 PR middle-end/39666
6591 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
6592 range of the type, but default label is missing, add it with one
6593 of the existing labels instead of adding a new label for it.
6594
617ab743
JM
65952009-05-05 Joseph Myers <joseph@codesourcery.com>
6596
6597 * dwarf.h: Remove.
6598
bf016de8
RAE
65992009-05-05 Rafael Avila de Espindola <espindola@google.com>
6600
6601 * Makefile.in (enable_plugin, plugin_includedir): New.
6602 (install): Depend on install-plugin.
6603 (PLUGIN_HEADERS): New.
6604 (install-plugin): New.
6605 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
6606
7f8fdb9f
RG
66072009-05-05 Richard Guenther <rguenther@suse.de>
6608
6609 PR tree-optimization/40022
6610 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
6611 the only vuse.
6612 (phivn_valid_p): Fix tuplification error, simplify.
6613 (phiprop_insert_phi): Add dumps.
6614 (propagate_with_phi): Simplify.
6615
8d972839
RG
66162009-05-05 Richard Guenther <rguenther@suse.de>
6617
6618 PR middle-end/40023
aa016ff7 6619 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 6620
66ba9b0b
SZ
66212009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
6622
6623 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
6624 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
6625 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
6626 block_ultimate_origin): Rearrange the declarations line to match the
6627 comment that indicates the .c file which the functions are defined.
6628 (dwarf2out_*, set_decl_rtl): Add comment.
6629 (get_base_address): Adjust comment.
6630 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
6631 declarations line and add comment.
6632 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 6633
4f1e4960
JM
66342009-05-04 Joseph Myers <joseph@codesourcery.com>
6635
6636 * attribs.c (decl_attributes): Use %qE for identifiers in
6637 diagnostics.
6638 * cgraphunit.c (verify_cgraph_node): Translate function names to
6639 locale character set in diagnostics.
6640 * coverage.c (get_coverage_counts): Use %qE for identifiers in
6641 diagnostics.
6642 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
6643 Document that functions are named in UTF-8.
6644 * expr.c (expand_expr_real_1): Translate function names to locale
6645 character set in diagnostics.
6646 * gimplify.c (omp_notice_variable, omp_is_private,
6647 gimplify_scan_omp_clauses): Use %qE for identifiers in
6648 diagnostics.
6649 * langhooks.c (lhd_print_error_function): Translate function names
6650 to locale character set.
6651 * langhooks.h (decl_printable_name): Document that return value is
6652 in internal character set.
6653 * stmt.c: Include pretty-print.h
6654 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
6655 diagnostics.
6656 (resolve_operand_name_1): Translate named operand name to locale
6657 character set.
6658 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
6659 diagnostics.
6660 * toplev.c (announce_function): Translate function names to locale
6661 character set.
6662 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
6663 (default_tree_printer): Use pp_identifier or translate identifiers
6664 to locale character set. Mark "<anonymous>" for translation.
6665 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
6666 for identifiers in diagnostics.
6667 * tree.c (handle_dll_attribute): Use %qE for identifiers in
6668 diagnostics.
6669 * varasm.c (output_constructor): Use %qE for identifiers in
6670 diagnostics.
6671
40540e68
RAE
66722009-05-04 Rafael Avila de Espindola <espindola@google.com>
6673
6674 * configure.ac: use ` ` instead of $()
6675 * configure: Regenerate.
6676
33fc884c
BE
66772009-05-05 Ben Elliston <bje@au.ibm.com>
6678
6679 * config/pa/linux-atomic.c: Eliminate conditional include of
6680 errno.h on non-LP64 systems to simplify build requirements.
6681
88388a52
JM
66822009-05-04 Joseph Myers <joseph@codesourcery.com>
6683
6684 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
6685 diagnostics.
6686 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
6687 and pass value to identifier_to_locale.
6688 (warn_variable_length_array): Make name a tree.
6689 (grokdeclarator): Separate diagnostic texts for named and unnamed
6690 declarators. Use %qE for named declarators.
6691 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
6692 diagnostics.
6693 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
6694 identifiers in diagnostics.
6695 * c-typeck.c (push_member_name, start_init): Pass identifiers to
6696 identifier_to_locale. Mark "anonymous" strings for translation.
6697
960c5c79
ME
66982009-05-04 Michael Eager <eager@eagercon.com>
6699
6700 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 6701 address for DImode/DFmode only if double-precision FP regs.
960c5c79 6702
d083fbba
ME
67032009-05-04 Michael Eager <eager@eagercon.com>
6704
6705 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
6706 TARGET_SINGLE_FLOAT check.
6707
c3ba8d32
ME
67082009-05-04 Michael Eager <eager@eagercon.com>
6709
6710 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
6711
edce9f18
ME
67122009-05-04 Michael Eager <eager@eagercon.com>
6713
6714 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
6715 * config/rs6000/t-xilinx: New
6716
506d7b68
PB
67172009-05-04 Paolo Bonzini <bonzini@gnu.org>
6718
e913423f 6719 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
6720 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
6721 * gcc/explow.c (memory_address): Use target hook.
6722 * gcc/targhooks.c (default_legitimize_address): New.
6723 * gcc/targhooks.h (default_legitimize_address): New.
6724 * gcc/target.h (legitimize_address): New.
6725 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
6726 (TARGET_INITIALIZER): Include it.
6727 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
6728
6729 * config/bfin/bfin-protos.h (legitimize_address): Remove.
6730 * config/bfin/bfin.c (legitimize_address): Remove.
6731 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
6732 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
6733 Remove.
506d7b68
PB
6734 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
6735 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
6736
6737 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
6738 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
6739 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
6740 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
6741 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
6742 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
6743 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
6744 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
6745 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
6746 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
6747 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
6748 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
6749 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
6750 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
6751 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
6752 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
6753 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
6754 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
6755 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
6756 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
6757 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
6758 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
6759 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
6760
6761 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
6762 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
6763 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
6764 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
6765 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
6766 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
6767 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
6768 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
6769 (thumb_legitimize_address): Delete.
6770 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
6771 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
6772 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
6773 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
6774 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
6775 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
6776 Delete.
6777 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
6778 Delete.
506d7b68
PB
6779
6780 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
6781 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
6782 * config/m32r/m32r.c (m32r_legitimize_address): New.
6783 * config/m68k/m68k.c (m68k_legitimize_address): New.
6784 * config/score/score.c (score_legitimize_address): Standardize.
6785 * config/score/score3.c (score3_legitimize_address): Standardize.
6786 * config/score/score3.h (score3_legitimize_address): Adjust.
6787 * config/score/score7.c (score7_legitimize_address): Standardize.
6788 * config/score/score7.h (score7_legitimize_address): Adjust.
6789 * config/sh/sh.c (sh_legitimize_address): New.
6790 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
6791
6792 * gcc/config/s390/s390.c (legitimize_address): Rename to...
6793 (s390_legitimize_address): ... this.
6794 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
6795 (sparc_legitimize_address): ... this.
6796 * gcc/config/i386/i386.c (legitimize_address): Rename to...
6797 (ix86_legitimize_address): ... this.
6798 * gcc/config/avr/avr.c (legitimize_address): Rename to...
6799 (avr_legitimize_address): ... this.
6800 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
6801 (mn10300_legitimize_address): ... this.
6802 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
6803 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
6804 (alpha_expand_mov): Adjust call.
6805
6806 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
6807 * config/spu/spu.c (spu_legitimize_address): Likewise.
6808 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
6809 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
6810
a3af5087
JM
68112009-05-04 Joseph Myers <joseph@codesourcery.com>
6812
6813 * intl.c (locale_encoding, locale_utf8): New.
6814 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
6815 * intl.h (locale_encoding, locale_utf8): Declare.
6816 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
6817 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
6818 New.
6819 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
6820 argument.
6821 (pp_tree_identifier): Define to call pp_base_tree_identifier.
6822 (pp_base_tree_identifier): Declare as function.
6823 (identifier_to_locale): Declare.
6824 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 6825 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 6826
ea5cd5f1
RG
68272009-05-04 Richard Guenther <rguenther@suse.de>
6828
6829 PR middle-end/40015
6830 * builtins.c (fold_builtin_memory_op): Do not decay to element
6831 type if the size matches the whole array.
6832
ddc2690a
KH
68332009-05-04 Kazu Hirata <kazu@codesourcery.com>
6834
6835 * expmed.c (synth_mult): When trying out a shift, pass the result
6836 of a signed shift.
6837
ef268d34
KH
68382009-05-04 Kazu Hirata <kazu@codesourcery.com>
6839
6840 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
6841 (shiftsub1_cost): New.
6842 (init_expmed): Compute shiftsub1_cost.
6843 (synth_mult): Optimize multiplications by constants of the form
6844 -(2^^m-1) for some constant positive integer m.
6845
255d3827
RG
68462009-05-03 Richard Guenther <rguenther@suse.de>
6847
6848 PR c/39983
6849 * c-typeck.c (array_to_pointer_conversion): Do not built
6850 ADDR_EXPRs of arrays of pointer-to-element type.
6851 * c-gimplify.c (c_gimplify_expr): Revert change fixing
6852 up wrong ADDR_EXPRs after-the-fact.
6853 * c-common.c (strict_aliasing_warning): Strip pointer
6854 conversions for obtaining the original type.
6855 * builtins.c (fold_builtin_memset): Handle array types.
6856 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
6857 and array types
6858
16c33770
RG
68592009-05-03 Richard Guenther <rguenther@suse.de>
6860
6861 PR middle-end/23329
6862 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
6863 Do not lose casts from array types with unknown extent to array
6864 types with known extent.
6865 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
6866 alias set compatibility.
6867
62a67c94
MLI
68682009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
6869
6870 * flags.h (extra_warnings): Delete.
6871 * toplev.c (process_options): Handle Wuninitialized here.
6872 * opts.c (extra_warnings): Delete.
6873 (set_Wextra): Delete.
6874 (common_handle_option): -Wextra can be handled automatically.
6875 * c-opts.c (c_common_handle_option): Delete obsolete code.
6876 (c_common_post_options): Simplify comment.
6877 * common.opt (W): Add Var.
6878 (Wextra): Add Var.
6879 (Wuninitialized): Initialize to -1.
6880
8c7926c4
AN
68812009-05-03 Adam Nemet <anemet@caviumnetworks.com>
6882 Richard Guenther <rguenther@suse.de>
6883
6884 * expr.c (get_def_for_expr): New function.
6885 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
6886 SSA rather than trees.
6887 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
6888 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
6889
fa5da7de
JM
68902009-05-03 Joseph Myers <joseph@codesourcery.com>
6891
6892 * c-common.c (reswords): Add _Imaginary.
6893 * c-common.c (enum rid): Add RID_IMAGINARY.
6894
2ddd5020
PB
68952009-05-03 Paolo Bonzini <bonzini@gnu.org>
6896
6897 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
6898 Patch by Richard Guenther.
6899
aea88c05
AS
69002009-05-03 Anatoly Sokolov <aesok@post.ru>
6901
6902 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
6903 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
6904 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
6905 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
6906 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
6907 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
6908 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
6909 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
6910 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
6911 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
6912 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
6913 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
6914 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
6915 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
6916 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
6917 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
6918 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
6919 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
6920
85e59f3a
RG
69212009-05-02 Richard Guenther <rguenther@suse.de>
6922
6923 PR tree-optimization/39940
6924 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
6925 doing so.
6926
4636b850
RG
69272009-05-02 Richard Guenther <rguenther@suse.de>
6928
6929 PR middle-end/40001
6930 * tree-ssa.c (execute_update_addresses_taken): Properly check
6931 if we can mark a variable DECL_GIMPLE_REG_P.
6932 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
6933 back to the end of the function.
6934 (is_gimple_reg_type): Remove complex type special casing.
6935 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
6936 if not optimizing.
6937
5e10cb5a
BE
69382009-05-02 Ben Elliston <bje@au.ibm.com>
6939
6940 * doc/collect2.texi (Collect2): Document search path behaviour
6941 when configured with --with-ld.
6942
048bf48b
JH
69432009-05-02 Jan Hubicka <jh@suse.cz>
6944
6945 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
6946 parameter; update callers.
aa016ff7
UB
6947 (coalesce_cost_edge): EH edges are costier because they needs
6948 splitting even if not critical and even more costier when there are
6949 multiple EH predecestors.
048bf48b 6950
d5c5f9ab
JH
69512009-05-02 Jan Hubicka <jh@suse.cz>
6952
6953 * except.c (remove_eh_handler_and_replace): Handle updating after
6954 removing TRY blocks.
6955
2ed1959a
EB
69562009-05-02 Eric Botcazou <ebotcazou@adacore.com>
6957
6958 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
6959
d363a7e7
SB
69602009-05-02 Steven Bosscher <steven@gcc.gnu.org>
6961
6962 * varasm.c: Do not include c-pragma.h.
6963 * attribs.c: Do not incude c-common.h.
6964
9c3d55b4
MM
69652009-05-01 Michael Matz <matz@suse.de>
6966
6967 * calls.c (initialize_argument_information): Handle SSA names like
6968 decls with a non MEM_P DECL_RTL.
6969
ea264ca5
SB
69702009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6971
6972 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
6973 * ipa-utils.c: Likewise.
6974 * ipa-type-escape.c: Likewise.
6975 * cgraphunit.c Do not include c-common.h.
6976 * ipa-pure-const.c: Likewise.
6977 * tree-if-conv.c: Likewise.
6978 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
6979 * ipa-struct-reorg.c: Likewise.
6980 * tree-nomudflap.c: Likewise.
6981 * tree-ssa-structalias.c: Likewise.
6982
6c5d4d1a
SB
69832009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6984
6985 * store-motion.c: Many cleanups to make this pass a first-class
6986 citizen instead of an appendix to gcse load motion. Add TODO list
6987 to make this pass faster/cleaner/better.
6988
6989 (struct ls_expr): Post gcse.c-split cleanups.
6990 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
6991 "stores" field to "avail_stores".
6992 (pre_ldst_mems): Rename to store_motion_mems.
6993 (pre_ldst_table): Rename to store_motion_mems_table.
6994 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
6995 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
6996 (ldst_entry): Rename to st_expr_entry, update users.
6997 (free_ldst_entry): Rename to free_st_expr_entry, update users.
6998 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
6999 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
7000 update caller.
6c5d4d1a
SB
7001 (first_ls_expr): Rename to first_st_expr, update users.
7002 (next_ls_expr): Rename to next_st_expr, update users.
7003 (print_ldst_list): Rename to print_store_motion_mems. Print names of
7004 fields properly for store motion instead of names inherited from load
7005 motion in gcse.c.
7006 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
7007 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
7008 are done with it.
7009
7010 (ae_kill): Rename to st_kill, update users.
7011 (ae_gen): Rename to st_avloc, update users.
7012 (transp): Rename to st_transp, update users.
7013 (pre_insert_map): Rename to st_insert_map, update users.
7014 (pre_delete_map): Rename to st_delete_map, update users.
7015 (insert_store, build_store_vectors, free_store_memory,
7016 one_store_motion_pass): Update for abovementioned changes.
7017
7018 (gcse_subst_count, gcse_create_count): Remove.
7019 (one_store_motion_pass): New statistics counters "n_stores_deleted"
7020 and "n_stores_created", local variables.
7021
7022 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
7023 use for_each_rtx.
7024
7025 (regvec, compute_store_table_current_insn): Remove.
7026 (reg_set_info, reg_clear_last_set): Remove.
7027 (compute_store_table): Use DF caches instead of local dataflow
7028 solvers.
7029
b02cec6e
JM
70302009-05-01 Joseph Myers <joseph@codesourcery.com>
7031
7032 * c-objc-common.c (c_tree_printer): Print identifiers with
7033 pp_identifier, not pp_string. Mark "({anonymous})" for
7034 translation.
7035 * c-pretty-print.c (pp_c_ws_string): New.
7036 (pp_c_cv_qualifier, pp_c_type_specifier,
7037 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
7038 pp_c_storage_class_specifier, pp_c_function_specifier,
7039 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
7040 pp_c_primary_expression, pp_c_postfix_expression,
7041 pp_c_unary_expression, pp_c_shift_expression,
7042 pp_c_relational_expression, pp_c_equality_expression,
7043 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
7044 use pp_string and pp_c_ws_string in place of pp_identifier and
7045 pp_c_identifier for non-identifiers. Mark English strings for
7046 translation.
7047 * c-pretty-print.h (pp_c_ws_string): Declare.
7048
cd533689
PP
70492009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
7050 Roland McGrath <roland@redhat.com>
7051
aa016ff7 7052 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
7053 (ENABLE_LD_BUILDID): New configuration option.
7054 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
7055 (LINK_BUILDID_SPEC): New macro.
7056 (init_spec): If defined, prepend it between LINK_EH_SPEC and
7057 link_spec.
7058 * doc/install.texi: Document --enable-linker-build-id option.
7059 * configure: Rebuild.
7060 * config.in: Rebuild.
7061
ba6adec4
AN
70622009-04-30 Adam Nemet <anemet@caviumnetworks.com>
7063
7064 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
7065 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
7066 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
7067 MIPS_GP_SAVE_AREA_SIZE.
7068 * config/mips/mips.c (struct mips_frame_info): Update comment
7069 before arg_pointer_offset and hard_frame_pointer_offset.
7070 (mips_compute_frame_info): Update diagram before function: to
7071 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
7072 indicate the position of frame_pointer_rtx with -fstack-protector and
7073 to show args_size. Don't allocate cprestore area for leaf functions
7074 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
7075 cprestore_size.
7076 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
7077
48f5b722
MM
70782009-04-30 Michael Matz <matz@suse.de>
7079
ba6adec4
AN
7080 PR tree-optimization/39955
7081 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 7082
b65d6744
DK
70832009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
7084
7085 * ira.c (setup_cover_and_important_classes): Use safe macro
7086 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
7087 directly.
7088 * genpreds.c (write_tm_preds_h): Output suitable definition of
7089 REG_CLASS_FOR_CONSTRAINT.
7090
f136c8ae
RAE
70912009-04-30 Rafael Avila de Espindola <espindola@google.com>
7092
7093 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
7094 instead of an int.
7095 * bitmap.c (bitmap_descriptor): Likewise.
7096 * ggc-common.c (loc_descriptor): Likewise.
7097 * varray.c (varray_descriptor): Likewise.
7098 * vec.c (vec_descriptor): Likewise.
7099
43fcece8 71002009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
7101
7102 * Makefile.in (dce.o): Add $(EXCEPT_H).
7103 * dce.c: Include except.h and delete redundant vector definitions.
7104 (deletable_insn_p): Return false for non-call insns that can throw
7105 if DF is running.
7106
df35c271
SB
71072009-04-30 Steven Bosscher <steven@gcc.gnu.org>
7108
7109 * gcse.c (ae_gen): Remove.
7110 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
7111 and make non-static function to make it available in store-motion.c.
7112 Update call sites with search-and-replace.
7113 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
7114 extract_mentioned_regs, extract_mentioned_regs_helper,
7115 find_moveable_store, compute_store_table, load_kills_store, find_loads,
7116 store_killed_in_insn, store_killed_after, store_killed_before,
7117 build_store_vectors, insert_insn_start_basic_block, insert-store,
7118 remove_reachable_equiv_notes, replace_store_insn, delete_store,
7119 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
7120 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
7121 * store-motion.c: ...new file. Also copy data structures from gcse.c
7122 and clean up to remove parts not used by store motion.
7123 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
7124 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
7125
f711a87a
RR
71262009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7127
7128 PR target/38571
7129 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
7130 when optimizing for size.
7131
fa5ed76e
HPN
71322009-04-30 Hans-Peter Nilsson <hp@axis.com>
7133
7134 * gcse.c (gcse_constant_p): Fix typo in last change.
7135
0acbbdb0
RAE
71362009-04-30 Rafael Avila de Espindola <espindola@google.com>
7137
7138 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
7139
82f5c05d
AK
71402009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
7141
7142 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
7143
6d8f135b
JW
71442009-04-29 James E. Wilson <wilson@codesourcery.com>
7145
7146 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
7147 CONST_HIGH_PART result.
7148
c21ca196
AS
71492009-04-29 Anatoly Sokolov <aesok@post.ru>
7150
7151 * config/avr/avr.c (initial_elimination_offset): Rename to
7152 avr_initial_elimination_offset.
7153 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
7154 change return type to bool.
7155 (avr_can_eliminate): New function.
7156 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
7157 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
7158 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 7159 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
7160 avr_initial_elimination_offset.
7161 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
7162 (avr_initial_elimination_offset): Define.
7163
2a34bece 71642009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 7165 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
7166
7167 PR rtl-optimization/39938
7168 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
7169 * cfgrtl.c: Include insn-attr.h.
7170 (rest_of_pass_free_cfg): New function.
7171 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
7172 * resource.c (init_resource_info): Remove call to df_analyze.
7173
5dc7911e
RG
71742009-04-29 Richard Guenther <rguenther@suse.de>
7175
7176 PR target/39943
7177 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
7178 allow conversion to signed integers.
7179
1fe479fd
RG
71802009-04-29 Richard Guenther <rguenther@suse.de>
7181
7182 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
7183 shifts of floating point vectors if the shift amount is
7184 a constant multiple of the element size.
7185
8e001680
AK
71862009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
7187 Michael Matz <matz@suse.de>
7188
7189 PR middle-end/39927
7190 PR bootstrap/39929
7191 * tree-outof-ssa.c (emit_partition_copy): New function.
7192 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7193 insert_part_to_rtx_on_edge): Perform the partition base var
7194 copy using emit_partition_copy.
7195 (insert_value_copy_on_edge): Convert constants to the right mode.
7196 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
7197 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
7198
e50e3081
BS
71992009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7200
7201 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
7202 scan backwards to try to find a constant to initialize it.
7203
4e5d521b
BS
7204 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
7205 insn before the loop_end instruction, don't look past labels.
7206
7c90021d
RG
72072009-04-29 Richard Guenther <rguenther@suse.de>
7208
7209 PR middle-end/39937
7210 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
7211 loose type conversions.
7212 (forward_propagate_addr_expr): Fix tuplification bug. Remove
7213 stmts only if there are no uses of its definition.
7214
97a988bc
BS
72152009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7216
7217 * config/bfin/bfin.h (splitting_loops): Declare.
7218 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
7219 Reorder bit definitions to be ascending.
7220 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
7221 * config/bfin/bfin.c (splitting_loops): New variable.
7222 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
7223 (struct loop_info): Remove members INIT and LOOP_INIT.
7224 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
7225 the LSETUP sequence. Allow LC to be loaded from any register, but
7226 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
7227 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
7228 set to 1.
7229 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
7230 of reload_completed.
aa016ff7 7231
97a988bc
BS
7232 From Jie Zhang:
7233 * config/bfin/bfin.md (movsi_insn): Refine constraints.
7234
0c463e16
RAE
72352009-04-29 Rafael Avila de Espindola <espindola@google.com>
7236
7237 * Makefile.in (PLUGIN_VERSION_H): New.
7238 (OBJS-common): Remove plugin-version.o.
7239 (plugin.o): Depend on (PLUGIN_VERSION_H).
7240 (plugin-version.o): Remove.
7241 * configure: Regenerate
7242 * configure.ac: Create plugin-version.h.
7243 * gcc-plugin.h (plugin_gcc_version): Remove.
7244 (plugin_default_version_check): Change signature.
7245 * plugin-version.c: Remove.
7246 * plugin.c: Include plugin-version.h.
7247 (str_plugin_gcc_version_name): Remove.
7248 (try_init_one_plugin): Pass gcc version to plugin_init.
7249 (plugin_default_version_check): Both gcc and plugin versions are now
7250 arguments.
7251
307e7eab
BS
72522009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7253
7254 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
7255 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
7256 Remove special case testing for last insn of inner loops. Don't fail
7257 if the loop ends with a jump, emit an extra nop instead.
307e7eab 7258
c5d96723
BS
7259 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
7260 DREGS rather than comparing directly. Remove code that tries to
7261 account for latencies.
7262
de0b4ad5
RG
72632009-04-29 Richard Guenther <rguenther@suse.de>
7264
7265 PR tree-optimization/39941
7266 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
7267 eliminating an indirect call.
7268
3a19701a
RG
72692009-04-29 Richard Guenther <rguenther@suse.de>
7270
7271 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
7272 parameter. Allow invariants as base if !require_lvalue.
7273 (verify_gimple_assign_single): Adjust.
7274
a0a31d1e
BS
72752009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7276
7277 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
7278 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
7279 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
7280 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
7281 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
7282 a VEC_SELECT.
aa016ff7
UB
7283 * config/bfin/bfin.c (bfin_expand_builtin,
7284 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 7285
795bd26a
RG
72862009-04-28 Richard Guenther <rguenther@suse.de>
7287
7288 * tree-vect-loop.c (get_initial_def_for_induction): Use
7289 correct types for pointer increment.
7290
04be270f
KG
72912009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7292
7293 * toplev.c (print_version): Update GMP version string calculation.
7294
e1a3b85c
EB
72952009-04-28 Eric Botcazou <ebotcazou@adacore.com>
7296
7297 PR rtl-optimization/39938
7298 * resource.c (init_resource_info): Add call to df_analyze.
7299
8224166e
UB
73002009-04-28 Uros Bizjak <ubizjak@gmail.com>
7301
7302 * config/alpha/alpha.md (usegp): Cast the result of
7303 alpha_find_lo_sum_using_gp to enum attr_usegp.
7304 * config/alpha/alpha.c (override_options): Remove end-of-structure
7305 marker element from cpu_table. Use array size of cpu_table to handle
7306 -mcpu and -mtune options.
7307 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
7308
c5f0fe67
JM
73092009-04-28 Joseph Myers <joseph@codesourcery.com>
7310
7311 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
7312 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
7313 tune_32 and tune_64.
7314 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
7315 support on PowerPC.
7316 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
7317 * config/rs6000/option-defaults.h: ... here. New file.
7318 (OPT_64, OPT_32): Define.
7319 (MASK_64BIT): Define to 0 if not already defined.
7320 (OPT_ARCH64, OPT_ARCH32): Define.
7321 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
7322 and tune_64.
7323
0c48a567
RR
73242009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7325
7326 * config/arm/arm.c (arm_override_options): Emit error on using
7327 fpa with AAPCS.
7328
f1028b9d
UB
73292009-04-28 Uros Bizjak <ubizjak@gmail.com>
7330
7331 PR rtl-optimization/39914
7332 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7333 registers for allocnos created from user-defined variables only
7334 when not optimizing.
7335
e0dd989a
RG
73362009-04-28 Richard Guenther <rguenther@suse.de>
7337
7338 PR middle-end/39937
7339 * fold-const.c (fold_binary): Use distribute_real_division only
7340 on float types.
7341
9a17c91d
SE
73422009-04-28 Steve Ellcey <sje@cup.hp.com>
7343
7344 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
7345 add hpux-stdint.h to tm_file.
7346 (hppa[12]*-*-hpux11*): Ditto.
7347 (ia64*-*-hpux*): Ditto.
7348 * config/hpux-stdint.h: New.
60839f5d 7349 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 7350 __STDC_EXT__ for all compiles.
60839f5d
EB
7351 * config/pa/pa-hpux.h: Ditto.
7352 * config/pa/pa-hpux10.h: Ditto.
7353 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 7354
af04e659
CM
73552009-04-28 Catherine Moore <clm@codesourcery.com>
7356
7357 * debug.h (set_name): Add comment.
7358
04ef80ce
AP
73592009-04-28 Andrew Pinski <pinskia@gmail.com>
7360
7361 PR target/39929
7362 * config/darwin.c (machopic_gen_offset): Check
7363 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
7364 * config/arm/arm.c (require_pic_register): Likewise.
7365
65ad77af
PB
73662009-04-28 Paolo Bonzini <bonzini@gnu.org>
7367
8224166e
UB
7368 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
7369 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
7370 m32c_promote_prototypes): Delete.
65ad77af 7371
1b15a008
MM
73722009-04-28 Michael Matz <matz@suse.de>
7373
7374 PR middle-end/39922
7375 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
7376 constants.
7377
7569a6cc
RG
73782009-04-28 Richard Guenther <rguenther@suse.de>
7379
f1028b9d 7380 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 7381
ead204d9
RR
73822009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7383
7384 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
7385 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
7386 * config/arm/arm-tune.md: Regenerate.
7387
f2c45f08 73882009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 7389
f2c45f08
AM
7390 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
7391 block if there are complex incoming edges.
7392 (sel_merge_blocks): Remove useless assert.
7393 (sel_redirect_edge_and_branch): Check that edge was redirected.
7394 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
7395 (sel_find_rgns): Delete declaration.
7396 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
7397 the region when it is not a preheader.
7398
7a00d767
UB
73992009-04-28 Uros Bizjak <ubizjak@gmail.com>
7400
7401 PR c/39323
7402 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
7403
448ee662
RG
74042009-04-28 Richard Guenther <rguenther@suse.de>
7405
7406 * tree.h (SSA_NAME_VALUE): Remove.
7407 (struct tree_ssa_name): Remove value_handle member.
7408 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
7409 array for jump threading.
7410 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
7411 SSA_NAME_VALUEs.
7412 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
7413 * tree-flow.h (threadedge_initialize_values): Declare.
7414 (threadedge_finalize_values): Likewise.
7415 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
7416 (SSA_NAME_VALUE): Define.
7417 (threadedge_initialize_values): New function.
7418 (threadedge_finalize_values): Likewise.
7419 * tree-ssa-dom.c (ssa_name_values): New global variable.
7420 (SSA_NAME_VALUE): Define.
f1028b9d 7421 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 7422
8644a673
IR
74232009-04-28 Ira Rosen <irar@il.ibm.com>
7424
7425 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
7426 Use REPORT_VECTORIZED_LOCATIONS instead
7427 REPORT_VECTORIZED_LOOPS.
7428 * tree-vectorizer.c (vect_verbosity_level): Make static.
7429 (vect_loop_location): Rename to vect_location.
7430 (vect_set_verbosity_level): Update comment.
7431 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
7432 and vect_location.
7433 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
7434 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
7435 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
7436 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
7437 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 7438 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 7439 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
7440 REPORT_UNVECTORIZED_LOCATIONS.
7441 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
7442 and vect_used_in_loop and to vect_unused_in_scope and
7443 vect_used_in_scope.
7444 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
7445 (vect_verbosity_level): Remove declaration.
7446 (vect_analyze_operations): Likewise.
7447 (vect_analyze_stmt): Declare.
7448 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
7449 REPORT_UNVECTORIZED_LOCATIONS.
7450 (vect_get_loop_niters): Fix indentation.
7451 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
7452 (vect_analyze_loop_operations): New function.
7453 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
7454 vect_analyze_operations.
7455 (vect_is_simple_reduction): Use new names.
7456 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
7457 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
7458 to specify whether the data references can be a part of interleaving
7459 chain.
8644a673
IR
7460 (vect_analyze_data_ref_dependence): Use new names.
7461 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
7462 (vect_create_addr_base_for_vector_ref): Remove redundant code.
7463 * tree-vect-patterns.c (widened_name_p): Use new names.
7464 (vect_recog_dot_prod_pattern): Likewise.
7465 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
7466 (process_use, vect_mark_stmts_to_be_vectorized,
7467 vect_model_simple_cost, vect_model_store_cost,
7468 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
7469 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
7470 vectorizable_operation, vectorizable_type_demotion,
7471 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
7472 vectorizable_condition): Likewise.
7473 (vect_analyze_operations): Split into vect_analyze_loop_operations
7474 and ...
7475 (vect_analyze_stmt): ... new function.
7476 (new_stmt_vec_info): Use new names.
7477 (vect_is_simple_use): Use new names and fix comment.
7478 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
7479 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
7480
b91322f2
UB
74812009-04-28 Uros Bizjak <ubizjak@gmail.com>
7482
7483 PR target/39911
7484 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
7485 and integer modes for x87 operands. Do not ICE for unsupported size,
7486 generate error instead. Generate error for unsupported operand types.
7487 ['z']: Do not handle HImode memory operands specially. Warning
7488 for floating-point operands. Fallthru to 'Z' for unsupported operand
7489 types. Do not ICE for unsupported size, generate error instead.
7490 (output_387_binary_op): Use %Z to output operands.
7491 (output_fp_compare): Ditto.
7492 (output_387_reg_move): Ditto.
7493
b2ed71b6
BE
74942009-04-28 Ben Elliston <bje@au.ibm.com>
7495
7496 PR c++/35652
7497 Revert:
7498
7499 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7500
7501 * builtins.c (c_strlen): Do not warn here.
7502 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7503 * c-common.c (pointer_int_sum): Take an explicit location.
7504 Warn about offsets out of bounds.
7505 * c-common.h (pointer_int_sum): Adjust declaration.
7506
81f40b79
ILT
75072009-04-27 Ian Lance Taylor <iant@google.com>
7508
7509 * collect2.c (is_ctor_dtor): Change type of ret field in struct
7510 names to symkind.
7511 * dce.c (run_fast_df_dce): Change type of old_flags to int.
7512 * df-core.c (df_set_flags): Change return type to int. Change
7513 type of old_flags to int.
7514 (df_clear_flags): Likewise.
7515 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
7516 (df_get_conditional_uses): Likewise.
7517 * df.h (df_set_flags, df_clear_flags): Update declarations.
7518 * dwarf2out.c (struct indirect_string_node): Change type of form
7519 field to enum dwarf_form.
7520 (AT_string_form): Change return type to enum dwarf_form.
7521 * fixed-value.c (fixed_compare): Add cast to enum type.
7522 * fwprop.c (update_df): Change 0 to VOIDmode.
7523 * gensupport.c: Change 0 to UNKNOWN.
7524 * gimple.h (gimple_cond_code): Add cast to enum type.
7525 * haifa-sched.c (reemit_notes): Add cast to enum type.
7526 * hooks.c (hook_int_void_no_regs): Remove function.
7527 * hooks.h (hook_int_void_no_regs): Remove declaration.
7528 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 7529 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
7530 * real.c (real_arithmetic): Add cast to enum type.
7531 (real_compare): Likewise.
7532 * target.h (struct gcc_target): Change return type of
7533 branch_target_register_class to enum reg_class.
7534 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
7535 default_branch_target_register_class.
7a00d767 7536 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 7537 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 7538 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
7539 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
7540 cast to int.
7541 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
7542 ERROR_MARK.
7543 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
7544 vect_uninitialized_def. Change 0 to ERROR_MARK.
7545 * tree-vect-stmts.c (supportable_widening_operation): Don't
7546 initialize icode1 and icode2.
7a00d767 7547 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
7548 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
7549 and to STD_C89.
7550 (cmn_err_flag_specs): Change 0 to STD_C89.
7551 (cmn_err_char_table): Likewise.
7552 * config/arm/arm.c (get_arm_condition_code): Change type of code
7553 to enum arm_cond_code.
7554 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
7555 (IWMMXT_BUILTIN2): Likewise.
7556 (neon_builtin_type_bits): Don't define typedef.
7557 (neon_builtin_datum): Change type of bits field to int.
7558 (arm_expand_neon_args): Add cast to enum type.
7559 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
7560 TLS_MODEL_NONE.
7561 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
7562 casts to enum type.
7563 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
7564 MIPS_FP_COND_f.
7565 * config/mips/mips.md (jal_macro): Return enum constant.
7566 (single_insn): Likewise.
7567 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
7568 CODE_FOR_nothing.
7569 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7570 casts to enum type.
7571 * config/s390/s390.c (s390_tune_flags): Change type to int.
7572 (s390_arch_flags): Likewise.
7a00d767 7573 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
7574 * config/s390/s390.h (s390_tune_flags): Update declaration.
7575 (s390_arch_flags): Likewise.
7576 * config/sh/sh.c (prepare_move_operands): Compare
7577 tls_symbolic_operand result with enum constant.
7578 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
7579 (sh_expand_prologue): Add cast to enum type.
7580 (sh_expand_epilogue): Likewise.
7581 (tls_symbolic_operand): Change return type to enum tls_model.
7582 (fpscr_set_from_mem): Add cast to enum type.
7583 (legitimize_pic_address): Compare tls_symbolic_operand result with
7584 enum constant.
7585 (sh_target_reg_class): Change return type to enum reg_class.
7586 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
7587 PROCESSOR_xxx.
7a00d767
UB
7588 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
7589 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
7590 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
7591 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
7592 (delayed_branch, tls_call_delay): Likewise.
7593 (eligible_for_sibcall_delay): Likewise.
7594 (eligible_for_return_delay): Likewise.
7595 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
7596 (spu_expand_builtin_1): Likewise.
7597
7598 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
7599 for all types of conversions.
7600 (output_init_element): Issue -Wc++-compat warning if needed when
7601 initializing a bitfield with enum type.
7602 * c-parser.c (c_parser_expression): Set original_type to
7603 original_type of right hand operand of comman operator.
7604
e4ae5e77
RW
76052009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7606
7607 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
7608 grammar nits.
7a00d767 7609 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
7610 * doc/cpp.texi (Standard Predefined Macros)
7611 (Implementation-defined behavior): Likewise.
7a00d767 7612 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
7613 * doc/gimple.texi (GIMPLE Exception Handling)
7614 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 7615 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
7616 * doc/invoke.texi (Warning Options, Optimize Options)
7617 (AVR Options, Darwin Options): Likewise.
7618 (Optimize Options): Reformulate -fwhole-program description.
7619 * doc/loop.texi (Lambda): Likewise.
7620 * doc/md.texi (Output Template, Define Constraints)
7621 (Standard Names, Insn Splitting): Likewise.
7622 * doc/options.texi (Option properties): Likewise.
7623 * doc/passes.texi (Tree-SSA passes): Likewise.
7624 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
7625 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
7626 (File Names and DBX): Likewise.
7627 * doc/trouble.texi (Incompatibilities): Likewise.
7628
1883802f 76292009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
7630
7631 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
7632 instruction is correct.
7633
1883802f 76342009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
7635
7636 Allow non-constant arguments to conversion intrinsics.
7637 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
7638 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
7639 * spu.c (print_operand): Handle 'v' and 'w'.
7640 (exp2_immediate_p, spu_gen_exp2): Define.
7641 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
7642 spu_convtf_1): Update parameter descriptions.
7a00d767 7643 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
7644 * constraints.md ('v', 'w'): New.
7645 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
7646 Remove.
7647 (i2f, I2F): New define_mode_attr.
7648 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
7649 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
7650 fixuns_truncv4sfv4si2): Update to use mode attribute.
7651 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
7652 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
7653 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
7654 patterns for combine.
7655
5f39ad47
SB
76562009-04-27 Steven Bosscher <steven@gcc.gnu.org>
7657
7658 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
7659 (cprop, hoist, pre, store_motion): New debug counters.
7660 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
7661 is not an RTL pass anymore.
7662 (pass_profiling): Remove extern decl for pass removed in 2005.
7663 (pass_gcse, pass_jump_bypass): Remove.
7664 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
7665 to 0 for clean state.
7666 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
7667 * cse.c (gate_handle_cse_after_global_opts,
7668 rest_of_handle_cse_after_global_opts): New functions.
7669 (pass_cse_after_global_opts): New pass, does local CSE.
7670 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
7671 (TV_CPROP): New timevar.
7672 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
7673 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
7674 (gcse_main, recompute_all_luids): Remove.
7675 (compute_hash_table_work): Call max_reg_num instead of reading
7676 max_gcse_regno.
7677 (cprop_jump): Don't set run_jump_opt_after_gcse.
7678 (constprop_register): Always allow to alter jumps.
7679 (cprop_insn): Likewise.
7680 (do_local_cprop): Likewise.
7681 (local_cprop_pass): Likewise. Return non-zero if something changed.
7682 (cprop): Remove function, fold interesting bits into one_cprop_pass.
7683 (find_implicit_sets): Add note about missed optimization opportunity.
7684 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
7685 pass_rtl_cprop execute function.
7686 Don't bother tracking the pass number, each pass gets its own dumpfile
7687 now anyway.
7688 Always allow to alter jumpsand bypass jumps.
7689 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
7690 will just find no suitable set.
7691 (pre_edge_insert): Fix dumping, this function is for PRE only.
7692 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
7693 pass_rtl_pre execute function.
7694 (hoist_code): Return non-zero if something changed. Keep track of
7695 substitutions and insertions for statistics gathering similar to PRE.
7696 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
7697 called from the pass_rtl_hoist execute function. Show pass statistics.
7698 (compute_store_table): Use max_reg_num directly instead of using the
7699 formerly global max_gcse_regno.
7700 (build_store_vectors): Likewise.
7701 (replace_store_insn): Fix dumping.
7702 (store_motion): Rename to ...
7703 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
7704 pass, called from the pass_rtl_store_motion execute function. Keep
7705 track of substitutions and insertions for statistics gathering similar
7706 to PRE.
7707 (bypass_jumps): Remove, fold interesting bits into ...
7708 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
7709 from the pass_rtl_cprop execute function.
7710 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
7711 pass_jump_bypass): Remove.
7712 (gate_handle_gcse, rest_of_handle_gcse): Remove.
7713 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
7714 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
7715 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
7716 (gate_rtl_store_motion, execute_rtl_store_motion,
7717 pass_rtl_store_motion): New.
7718 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
7719 make it clear that -fcse-skip-blocks is a no-op for backward compat.
7720 * passes.c (init_optimization_passes): Remove pass_gcse and
7721 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
7722 and cse_after_global_opts in place of pass_gcse. Schedule cprop
7723 instead of pass_jump_bypass.
7724
c685de4a
RG
77252009-04-27 Richard Guenther <rguenther@suse.de>
7726
7727 PR middle-end/39928
7728 * gimplify.c (gimplify_expr): If we are required to create
7729 a temporary make sure it ends up as register.
7730
72d41f29
L
77312009-04-27 H.J. Lu <hongjiu.lu@intel.com>
7732
7733 PR target/39903
7734 * config/i386/i386.c (construct_container): Don't call
7735 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
7736 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
7737
e97809c6
MM
77382009-04-27 Michael Matz <matz@suse.de>
7739
7740 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
7741 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
7742 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
7743 (dump_replaceable_exprs): Take a bitmap.
7744 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
7745 array.
7746 (expand_gimple_basic_block): Likewise.
7747 * tree-ssa-ter.c (struct temp_expr_table_d): Make
7748 replaceable_expressions member a bitmap.
7749 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
7750 (mark_replaceable): Likewise.
7751 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
7752 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
7753
211ca15c
RG
77542009-04-27 Richard Guenther <rguenther@suse.de>
7755
7756 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
7757 (verify_stmts): Dispatch to gimple/type verification code.
7758 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
7759 issue with call argument types.
7760
fca5f3d1
MM
77612009-04-27 Michael Matz <matz@suse.de>
7762
7763 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
7764 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
7765 to above.
7766
a1fa3e79 77672009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 7768 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
7769
7770 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
7771 a label's basic block.
7772 (mark_target_live_regs): Tidy and rework obsolete comments.
7773 Change back DF problem to LIVE. If a label starts a basic block,
7774 assume that all registers that used to be live then still are.
7775 (init_resource_info): If a label starts a basic block, set its
7776 BLOCK_FOR_INSN accordingly.
7777 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
7778
33b223c0
RG
77792009-04-27 Richard Guenther <rguenther@suse.de>
7780
7781 * tree-flow-inline.h (function_ann): Remove.
7782 (get_function_ann): Likewise.
7783 * tree-dfa.c (create_function_ann): Remove.
7784 * tree-flow.h (struct static_var_ann_d): Remove.
7785 (struct function_ann_d): Likewise.
7786 (union tree_ann_d): Remove fdecl member.
7787 (function_ann_t): Remove.
7788 (function_ann, get_function_ann, create_function_ann): Remove
7789 declarations.
7790
e3136fa2
UB
77912009-04-27 Uros Bizjak <ubizjak@gmail.com>
7792
7793 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
7794
f87c9042
JH
77952009-04-27 Jan Hubicka <jh@suse.cz>
7796
7797 * ipa-pure-const.c (struct funct_state_d): New fields
7798 state_previously_known, looping_previously_known; remove
7799 state_set_in_source.
7800 (analyze_function): Use new fields.
7801 (propagate): Avoid assumption that state_set_in_source imply
7802 nonlooping.
7803
7804 * tree-ssa-loop-niter.c (finite_loop_p): New function.
7805 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
7806 * cfgloop.h (finite_loop_p): Declare.
7807
33abd718
MM
78082009-04-26 Michael Matz <matz@suse.de>
7809
e3136fa2 7810 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 7811
ddc34084
MM
78122009-04-26 Michael Matz <matz@suse.de>
7813
7814 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
7815 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
7816 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
7817 pass_mark_used_blocks): Remove.
7818 * tree-optimize.c (pass_free_datastructures,
7819 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
7820 * passes.c (init_optimization_passes): Don't call
7821 pass_mark_used_blocks, remove dead code.
7822
1fec7ed4
L
78232009-04-26 H.J. Lu <hongjiu.lu@intel.com>
7824
7825 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
7826 * tree-ssa-live.h (register_ssa_partition): Likewise.
7827
4e3825db
MM
78282009-04-26 Michael Matz <matz@suse.de>
7829
7830 Expand from SSA.
7831 * builtins.c (fold_builtin_next_arg): Handle SSA names.
7832 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
7833 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
7834 SSA names.
7835 (compare_pairs): Swap cost comparison.
7836 (coalesce_ssa_name): Don't use change_partition_var.
7837 * tree-nrv.c (struct nrv_data): Add modified member.
7838 (finalize_nrv_r): Set it.
7839 (tree_nrv): Use it to update statements.
7840 (pass_nrv): Require PROP_ssa.
7841 * tree-mudflap.c (mf_decl_cache_locals,
7842 mf_build_check_statement_for): Use make_rename_temp.
7843 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
7844 * alias.c (find_base_decl): Handle SSA names.
7845 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
7846 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
7847 * rtl.h (set_reg_attrs_for_parm): Declare.
7848 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
7849 to "optimized", remove unused locals at finish.
7850 (execute_free_datastructures): Make global, call
7851 delete_tree_cfg_annotations.
7852 (execute_free_cfg_annotations): Don't call
7853 delete_tree_cfg_annotations.
7854
7855 * ssaexpand.h: New file.
7856 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 7857 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
7858 (expand_expr_real_1): Expand SSA names.
7859 * cfgexpand.c (toplevel): Include ssaexpand.h.
7860 (SA): New global variable.
7861 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
7862 (SSAVAR): New macro.
7863 (set_rtl): New helper function.
7864 (add_stack_var): Deal with SSA names, use set_rtl.
7865 (expand_one_stack_var_at): Likewise.
7866 (expand_one_stack_var): Deal with SSA names.
7867 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
7868 before unique numbers.
7869 (expand_stack_vars): Use set_rtl.
7870 (expand_one_var): Accept SSA names, add asserts for them, feed them
7871 to above subroutines.
7872 (expand_used_vars): Expand all partitions (without default defs),
7873 then only the local decls (ignoring those expanded already).
7874 (expand_gimple_cond): Remove edges when jumpif() expands an
7875 unconditional jump.
7876 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
7877 or remove abnormal edges. Ignore insns setting the LHS of a TERed
7878 SSA name.
7879 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
7880 members of SA; deal with PARM_DECL partitions here; expand
7881 all PHI nodes, free tree datastructures and SA. Commit instructions
7882 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
7883 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
7884 info and statements at start, collect garbage at finish.
7885 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
7886 (VAR_ANN_PARTITION) Remove.
7887 (change_partition_var): Don't declare.
7888 (partition_to_var): Always return SSA names.
7889 (var_to_partition): Only accept SSA names.
7890 (register_ssa_partition): Only check argument.
7891 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
7892 member.
7893 (delete_var_map): Don't free it.
7894 (var_union): Only accept SSA names, simplify.
7895 (partition_view_init): Mark only useful SSA names as used.
7896 (partition_view_fini): Only deal with SSA names.
7897 (change_partition_var): Remove.
7898 (dump_var_map): Use ssa_name instead of partition_to_var member.
7899 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
7900 basic blocks.
7901 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
7902 (struct _elim_graph): New member const_dests; nodes member vector of
7903 ints.
7904 (set_location_for_edge): New static helper.
7905 (create_temp): Remove.
7906 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 7907 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
7908 (new_elim_graph): Allocate const_dests member.
7909 (clean_elim_graph): Truncate const_dests member.
7910 (delete_elim_graph): Free const_dests member.
7911 (elim_graph_size): Adapt to new type of nodes member.
7912 (elim_graph_add_node): Likewise.
7913 (eliminate_name): Likewise.
7914 (eliminate_build): Don't take basic block argument, deal only with
7915 partition numbers, not variables.
7916 (get_temp_reg): New static helper.
7917 (elim_create): Use it, deal with RTL temporaries instead of trees.
7918 (eliminate_phi): Adjust all calls to new signature.
7919 (assign_vars, replace_use_variable, replace_def_variable): Remove.
7920 (rewrite_trees): Only do checking.
7921 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
7922 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
7923 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
7924 contains_tree_r, MAX_STMTS_IN_LATCH,
7925 process_single_block_loop_latch, analyze_edges_for_bb,
7926 perform_edge_inserts): Remove.
7927 (expand_phi_nodes): New global function.
7928 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
7929 functions, initialize new parameter, remember partitions having a
7930 default def.
7931 (finish_out_of_ssa): New global function.
7932 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
7933 don't reset in_ssa_p here, don't disable TER when mudflap.
7934 (pass_del_ssa): Remove.
7935 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
7936 partition members.
7937 (execute_free_datastructures): Declare.
7938 * Makefile.in (SSAEXPAND_H): New variable.
7939 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
7940 * basic-block.h (commit_one_edge_insertion): Declare.
7941 * passes.c (init_optimization_passes): Move pass_nrv and
7942 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
7943 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
7944 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
7945 (redirect_branch_edge): Deal with super block when expanding, split
7946 out jump patching itself into ...
7947 (patch_jump_insn): ... here, new static helper.
7948
17c665a9
MM
79492009-04-26 Michael Matz <matz@suse.de>
7950
7951 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
7952 beyond num_ssa_names.
7953 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7954 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
7955
92061771
JJ
79562009-04-26 Jakub Jelinek <jakub@redhat.com>
7957
ce372372
JJ
7958 PR inline-asm/39543
7959 * fwprop.c (forward_propagate_asm): New function.
7960 (forward_propagate_and_simplify): Propagate also into __asm, if it
7961 doesn't increase the number of referenced registers.
7962
92061771
JJ
7963 PR c/39889
7964 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
7965
79662009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
7967
7968 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
7969 note_nonlocal_vla_type for nonlocal VLAs.
7970 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
7971 contains_remapped_vars, remap_vla_decls): New functions.
7972 (convert_nonlocal_reference_stmt): If not optimizing, call
7973 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
7974 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
7975 if it wasn't found in var_map.
7976 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
7977 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
7978 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
7979 declare_vars.
7980 * gimplify.c (nonlocal_vlas): New variable.
7981 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
7982 referenced VLAs.
7983 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 7984
4561e242
JJ
7985 * dwarf2out.c (loc_descr_plus_const): New function.
7986 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
7987 mem_loc_descriptor, loc_descriptor_from_tree_1,
7988 descr_info_loc, gen_variable_die): Use it.
7989
a9548ddf
JJ
7990 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
7991 !TREE_STATIC VAR_DECLs.
7992 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
7993 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
7994 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
7995 DECL_BY_REFERENCE is valid.
7996 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
7997 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
7998 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
7999 Copy DECL_BY_REFERENCE.
8000 (struct nesting_copy_body_data): New type.
8001 (nesting_copy_decl): New function.
8002 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
8003 if they have variable length.
8004
10555d08
MM
80052009-04-26 Michael Matz <matz@suse.de>
8006
8007 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
8008 mark new temporaries for renaming.
8009
e11187cc
JM
80102009-04-26 Joseph Myers <joseph@codesourcery.com>
8011
8012 PR c/39581
8013 * c-decl.c (global_bindings_p): Return negative value.
8014 (c_variable_size): New. Based on variable_size from
8015 stor-layout.c.
8016 (grokdeclarator): Call c_variable_size not variable_size.
8017
f6a51d31
UB
80182009-04-26 Uros Bizjak <ubizjak@gmail.com>
8019
8020 * config/i386/i386.c (print_operand) ['z']: Fix typo.
8021
4b97723d
KT
80222009-04-26 Kai Tietz <kai.tietz@onevision.com>
8023
8024 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
8025 Redefine it to just use mingw/include.
8026 (ASM_SPEC): Rules for -m32 and -m64.
8027 (LINK_SPEC): Use Likewise.
8028 (SPEC_32): New define.
8029 (SPEC_64): Likewise.
8030 (SUB_LINK_SPEC): Likewise.
8031 (MULTILIB_DEFAULTS): New define.
8032 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
8033 Add multilib options.
8034 (MULTILIB_DIRNAMES): Likewise.
8035 (MULTILIB_OSDIRNAMES): Likewise.
8036 (LIBGCC): Likewise.
8037 (INSTALL_LIBGCC): Likewise.
8038
991d6621
JM
80392009-04-26 Joseph Myers <joseph@codesourcery.com>
8040
8041 PR c/39556
8042 * c-tree.h (enum c_inline_static_type): New.
8043 (record_inline_static): Declare.
8044 * c-decl.c (struct c_inline_static, c_inline_statics,
8045 record_inline_static, check_inline_statics): New.
8046 (pop_file_scope): Call check_inline_statics.
8047 (start_decl): Call record_inline_static instead of pedwarning
8048 directly for static in inline function.
8049 * c-typeck.c (build_external_ref): Call record_inline_static
8050 instead of pedwarning directly for static referenced in inline
8051 function.
8052
4a81774c
SB
80532009-04-26 Steven Bosscher <steven@gcc.gnu.org>
8054
8055 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
8056 not new but only being rescanned.
8057 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
8058 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
8059 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
8060 record_set_info, compute_set, grealloc): Remove.
8061 (recompute_all_luids): New function.
8062 (gcse_main): Don't compute sets, and don't do related memory
8063 allocations/free-ing. If something changed before the end of the
8064 pass, update LUIDs using recompute_all_luids.
8065 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
8066 (free_gcse_mem): Don't free it either.
8067 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
8068 Use the df insn LUIDs.
8069 (load_killed_in_block): Likewise.
8070 (compute_hash_table_work): Don't compute reg_set_in_block.
8071 (compute_transp): Use DF_REG_DEF_CHAINs.
8072 (local_cprop_pass): Don't use compute_sets and related functions.
8073 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
8074 Use get_max_uid() instead of max_cuid.
8075 (insert_insn_end_basic_block, pre_insert_copy_insn,
8076 update_ld_motion_stores): Don't try to
8077 keep reg_set tables up to date.
8078 (pre_insert_copies): Use df insn LUIDs.
8079 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
8080 (reg_set_info): Don't use extra bitmap argument.
8081 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
8082 information to compute regs_set_in_block.
8083 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
8084 (bypass_jumps): Don't use compute_sets and friends.
8085
e8f99a9d
RW
80862009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8087
8088 PR testsuite/39710
8089 * opts.c (undocumented_msg): Do not leave blank even with
8090 ENABLE_CHECKING.
8091
6895bac8
JM
80922009-04-25 Joseph Myers <joseph@codesourcery.com>
8093
8094 * c-decl.c (build_enumerator): Allow values folding to integer
8095 constants but not integer constant expressions with a pedwarn if
8096 pedantic.
8097
24070fcb
JM
80982009-04-25 Joseph Myers <joseph@codesourcery.com>
8099
8100 PR c/39582
8101 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
8102 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
8103 type is an integer constant.
8104
d6d89aa1
UB
81052009-04-25 Uros Bizjak <ubizjak@gmail.com>
8106
8107 PR target/39897
8108 * config/i386/i386.c (print_operand) ['z']: Revert handling of
8109 HImode operands.
8110
92f6fd0b
JM
81112009-04-25 Joseph Myers <joseph@codesourcery.com>
8112
8113 PR c/39564
8114 * c-decl.c (grokdeclarator): Diagnose declarations of functions
8115 with variably modified return type and no storage class
8116 specifiers, except for the case of nested functions. Distinguish
8117 extern declarations of functions with variably modified return
8118 types from those of objects with variably modified types.
8119
a3710436
JH
81202009-04-25 Jan Hubicka <jh@suse.cz>
8121
8122 * tree.c (list_equal_p): New function.
8123 * tree.h (list_equal_p): Declare.
8124 * coretypes.h (edge_def, edge, const_edge, basic_block_def
8125 basic_block_def, basic_block, const_basic_block): New.
8126 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
8127 (redirect_eh_edge): New function.
8128 (make_eh_edge_update_phi): EH edges are not abnormal.
8129 * except.c: Include tree-flow.h.
8130 (list_match): New function.
8131 (eh_region_replaceable_by_p): New function.
8132 (replace_region): New function.
8133 (hash_type_list): New function.
8134 (hash_eh_region): New function.
8135 (eh_regions_equal_p): New function.
8136 (merge_peers): New function.
8137 (remove_unreachable_regions): Verify EH tree when checking;
8138 merge peers.
8139 (copy_eh_region_1): New function.
8140 (copy_eh_region): New function.
8141 (push_reachable_handler): New function.
8142 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
8143 regions without label but with live RESX.
8144 * except.h (redirect_eh_edge_to_label): New.
8145 * tree-flow.h (redirect_eh_edge): New.
8146 * coretypes.h (edge_def, edge, const_edge, basic_block_def
8147 basic_block_def, basic_block, const_basic_block): Remove.
8148 * Makefile.in (except.o): Add dependency on tree-flow.h
8149 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
8150 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
8151 Remove.
8152
3764d512
EB
81532009-04-25 Eric Botcazou <ebotcazou@adacore.com>
8154
8155 PR bootstrap/39645
8156 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
8157 on the destination of memcpy.
8158
1c62e8f2
PB
81592009-04-25 Paolo Bonzini <bonzini@gnu.org>
8160
8161 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
8162 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
8163 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
8164
496a4ef5
JH
81652009-04-25 Jan Hubicka <jh@suse.cz>
8166
8167 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
8168 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
8169 to be reached by different label than left.
8170 (update_eh_edges): Update comment; remove edge_to_remove if possible
8171 and return true if suceeded.
8172 (cleanup_empty_eh): Accept sharing map; handle shared regions.
8173 (cleanup_eh): Compute sharing map.
8174 * except.c (remove_eh_handler_and_replace): Add argument if we should
8175 update regions.
8176 (remove_unreachable_regions): Update for label sharing.
8177 (label_to_region_map): Likewise.
8178 (get_next_region_sharing_label): New function.
8179 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
8180 prev_try pointers.
8181 (remove_eh_handler): Update.
8182 (remove_eh_region_and_replace_by_outer_of): New function.
8183 * except.h (struct eh_region): Add next_region_sharing_label.
8184 (remove_eh_region_and_replace_by_outer_of,
8185 get_next_region_sharing_label): Declare.
8186 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
8187
81882009-04-25 Jan Hubicka <jh@suse.cz>
8189
8190 * tree-cfg.c (split_critical_edges): Split also edges where we can't
8191 insert code even if they are not critical.
8192
81932009-04-25 Jan Hubicka <jh@suse.cz>
8194
8195 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8196 (gimple_can_remove_branch_p): EH edges won't remove branch by
8197 redirection.
8198 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
8199 updating of non-abnormal EH edges.
8200 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8201 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
8202 (split_critical_edges): Split also edges where emitting code on them
8203 will lead to splitting later.
8204
a3a5e3d1
UB
82052009-04-25 Uros Bizjak <ubizjak@gmail.com>
8206 H.J. Lu <hongjiu.lu@intel.com>
8207
8208 PR target/39590
8209 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
8210 the configured assembler supports fildq and fistpq mnemonics.
8211 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
8212 * configure: Regenerated.
8213 * config.in: Ditto.
8214
8215 * config/i386/i386.c (print_operand): Handle 'Z'.
8216 ['z']: Remove handling of special fild/fist suffixes.
8217 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
8218 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
8219 suffix of fild insn.
8220 (*floatsi<mode>2_vector_mixed): Ditto.
8221 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
8222 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
8223 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8224 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
8225 * config/i386/gas.h (GAS_MNEMONICS): Remove.
8226
23750d7f
BE
82272009-04-25 Ben Elliston <bje@au.ibm.com>
8228
8229 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
8230 the source of a set operation.
8231
e6ff3083
AS
82322009-04-25 Anatoly Sokolov <aesok@post.ru>
8233
8234 * target.h (struct gcc_target): Add case_values_threshold field.
8235 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
8236 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
8237 * targhooks.c (default_case_values_threshold): New function.
8238 * targhooks.h (default_case_values_threshold): Declare function.
8239 * stmt.c (expand_case): Use case_values_threshold target hook.
8240 * expr.h (case_values_threshold): Remove declartation.
8241 * expr.c (case_values_threshold): Remove function.
8242 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
8243
8244 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
8245 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8246 (avr_case_values_threshold): Declare as static.
8247 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
8248
8249 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
8250 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8251 (mn10300_case_values_threshold): New function.
8252
569c72fc
L
82532009-04-24 H.J. Lu <hongjiu.lu@intel.com>
8254
8255 * ira.c (setup_cover_and_important_classes): Add enum cast.
8256
ff3cb468
VM
82572009-04-24 Vladimir Makarov <vmakarov@redhat.com>
8258
8259 * genpreds.c (write_enum_constraint_num): Output definition of
8260 CONSTRAINT_NUM_DEFINED_P macro.
8261 * ira.c (setup_cover_and_important_classes): Use
8262 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
8263
4f7be849
DD
82642009-04-24 DJ Delorie <dj@redhat.com>
8265
8266 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
8267 __SH2A_SINGLE_ONLY__ also.
8268
735b94a7
SE
82692009-04-24 Steve Ellcey <sje@cup.hp.com>
8270
8271 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
8272 (movdf_internal): Ditto.
8273 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
8274 SFmode and DFmode constants.
8275 (ia64_print_operand): Add 'G' format for printing
8276 floating point constants.
8277
77a30264
RG
82782009-04-24 Richard Guenther <rguenther@suse.de>
8279
8280 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
8281 from unsigned additions.
8282
2b6da65c
JM
82832009-04-24 Joseph Myers <joseph@codesourcery.com>
8284
8285 * c-typeck.c (set_init_index): Allow array designators that are
8286 not integer constant expressions with a pedwarn if pedantic.
8287
f5a17c43
BS
82882009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
8289
8290 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
8291 zero if no overlap in nonzero bits between the operands.
8292
32e8bb8e
ILT
82932009-04-24 Ian Lance Taylor <iant@google.com>
8294
8295 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
8296 (record_dead_and_set_regs): Likewise.
8297 * df.h (struct df_mw_hardreg): Change flags field to int.
8298 (struct df_base_ref): Likewise.
8299 (struct df): Change changeable_flags field to int.
8300 * df-scan.c (df_defs_record): Change clobber_flags to int.
8301 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
8302 constants rather than #define macros.
8303 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
8304 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
8305 (enum dwarf_calling_convention): Likewise.
8306 (enum dwarf_line_number_x_ops): Likewise.
8307 (enum dwarf_call_frame_info): Likewise.
8308 (enum dwarf_source_language): Likewise.
8309 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
8310 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
8311 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
8312 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
8313 * genrecog.c (maybe_both_true_2): Change c to int.
8314 (write_switch): Likewise. Add cast to enum type.
8315 * gimplify.c (gimplify_omp_for): Handle return values from
8316 gimplify_expr using MIN rather than bitwise or.
8317 (gimplify_expr): Add cast to enum type.
8318 * ipa-prop.c (update_jump_functions_after_inlining): Change
8319 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
8320 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
8321 Add casts to enum type.
32e8bb8e
ILT
8322 (setup_cover_and_important_classes): Change cl to int. Add casts
8323 to enum type.
8324 (setup_class_translate): Change cl and mode to int.
8325 (ira_init_once): Change mode to int.
8326 (free_register_move_costs): Likewise.
8327 (setup_prohibited_mode_move_regs): Add casts to enum type.
8328 * langhooks.c (add_builtin_function_common): Rework assertion that
8329 value fits bitfield.
8330 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
8331 * omega.c (omega_do_elimination): Avoid math on enum types.
8332 * optabs.c (expand_vec_shift_expr): Remove casts to int.
8333 * opts.c (set_debug_level): Change 2 to enum constant. Use new
8334 int local to handle integral_argment value.
8335 * regmove.c (try_auto_increment): Change PUT_MODE to
8336 PUT_REG_NOTE_KIND.
8337 * reload.c (push_secondary_reload): Add casts to enum type.
8338 (secondary_reload_class, find_valid_class): Likewise.
8339 * reload1.c (emit_input_reload_insns): Likewise.
8340 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
8341 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
8342 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
8343 constant.
8344 * tree.c (build_common_builtin_nodes): Add casts to enum type.
8345 * tree-complex.c (complex_lattice_t): Typedef to int rather than
8346 enum type.
8347 (expand_complex_libcall): Add casts to enum type.
8348 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
8349 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
8350 with ERROR_MARK, not NUM_TREE_CODES.
8351 (vect_create_epilog_for_reduction): Likewise.
8352 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 8353 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
8354 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
8355 enum machine_mode.
8356 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
8357 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 8358 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
8359 * var-tracking.c (get_init_value): Change return type to enum
8360 var_init_status.
8361 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
8362 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
8363 arm_fp_model.
8364 (arm_override_options): Add casts to enum type.
8365 (arm_emit_tls_decoration): Likewise.
8366 * config/i386/i386.c (ix86_function_specific_restore): Add casts
8367 to enum type.
8368 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
8369 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
8370 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
8371 enum type.
8372 * config/s390/s390.c (code_for_builtin_64): Change to array of
8373 enum insn_code.
8374 (code_for_builtin_31): Likewise.
8375 (s390_expand_builtin): Change code_for_builtin to enum insn_code
8376 const *.
8377 * config/sparc/sparc.c (sparc_override_options): Change value
8378 field in struct code_model to enum cmodel. In initializer change
8379 0 to NULL and add cast to enum type.
8380
8381 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
8382 Change all callers. Issue a -Wc++-compat warning using
8383 lhs_origtype if necessary.
8384 (convert_for_assignment): Issue -Wc++-compat warnings about
8385 invalid conversions to enum type on assignment.
8386 * c-common.h (build_modify_expr): Update declaration.
8387
ac4fc08a
NC
83882009-04-24 Nick Clifton <nickc@redhat.com>
8389
8390 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
8391 (function_arg_advance): Likewise.
8392 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
8393 5th alternative.
8394
f22e891a
AK
83952009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
8396
8397 * config/s390/constraints.md ('I', 'J'): Fix condition.
8398
ad58aabe
DN
83992009-04-24 Diego Novillo <dnovillo@google.com>
8400
8401 * gengtype-parse.c (parse_error): Add newline after message.
8402
879a4a01
L
84032009-04-24 H.J. Lu <hongjiu.lu@intel.com>
8404
8405 * config/i386/sse.md (avxmodesuffixs): Removed.
8406 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
8407 (*avx_pinsr<ssevecsize>): This.
8408
f63426af
BS
84092009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
8410
8411 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
8412 follow chains of regs with a single definition, and allow expressions
8413 that are function_invariant_p.
ce72fe6c 8414 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 8415
30349c74
PB
84162009-04-24 Paolo Bonzini <bonzini@gnu.org>
8417
8418 PR middle-end/39867
8419 * fold-const.c (fold_cond_expr_with_comparison): When folding
8420 > and >= to MAX, make sure the MAX uses the same type as the
8421 comparison's operands.
8422
8d8256c1
NC
84232009-04-24 Nick Clifton <nickc@redhat.com>
8424
8425 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
8426 addressing for DImode accesses.
8427 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 8428 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 8429
6216f94e
JJ
84302009-04-24 Jakub Jelinek <jakub@redhat.com>
8431
8432 PR rtl-optimization/39794
8433 * alias.c (canon_true_dependence): Add x_addr argument.
8434 * rtl.h (canon_true_dependence): Adjust prototype.
8435 * cse.c (check_dependence): Adjust canon_true_dependence callers.
8436 * cselib.c (cselib_invalidate_mem): Likewise.
8437 * gcse.c (compute_transp): Likewise.
8438 * dse.c (scan_reads_nospill): Likewise.
8439 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
8440 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
8441 canon_base_addr of the group, plus optional offset.
8442 (struct group_info): Rename canon_base_mem to
8443 canon_base_addr.
8444 (get_group_info): Set canon_base_addr to canon_rtx of base, not
8445 canon_rtx of base_mem.
8446
6de7a512
PB
84472009-04-23 Paolo Bonzini <bonzini@gnu.org>
8448
8449 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8450 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
8451
4a3a2376
UW
84522009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8453
8454 * config/spu/spu-builtins.h: Delete file.
8455
8456 * config/spu/spu.h (enum spu_builtin_type): Move here from
8457 spu-builtins.h.
8458 (struct spu_builtin_description): Likewise. Add GTY marker.
8459 Do not use enum spu_function_code or enum insn_code.
8460 (spu_builtins): Add extern declaration.
8461
8462 * config/spu/spu.c: Do not include "spu-builtins.h".
8463 (enum spu_function_code, enum spu_builtin_type_index,
8464 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
8465 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
8466 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
8467 unsigned_V2DI_type_node): Move here from spu-builtins.h.
8468 (spu_builtin_types): Make static. Add GTY marker.
8469 (spu_builtins): Add extern declaration with GTY marker.
8470 Include "gt-spu.h".
8471
8472 * config/spu/spu-c.c: Do not include "spu-builtins.h".
8473 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
8474 Check programmatically whether all parameters are scalar.
8475
8476 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
8477
bbaba73f
EB
84782009-04-23 Eric Botcazou <ebotcazou@adacore.com>
8479
8480 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
8481 assignment from the constructor either if the target is volatile.
8482
ee93c1c6
DJ
84832009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
8484
8485 * config/arm/arm.md (insv): Do not share operands[0].
8486
b2f21330
NS
84872009-04-23 Nathan Sidwell <nathan@codesourcery.com>
8488
8489 * config/vxlib-tls.c (active_tls_threads): Delete.
8490 (delete_hook_installed): New.
8491 (tls_delete_hook): Don't delete the delete hook.
8492 (tls_destructor): Delete it here.
8493 (__gthread_set_specific): Adjust installing the delete hook.
8494 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
8495 __gthread_leave_tsd_dtor_context.
8496
4782dfa7
RAE
84972009-04-23 Rafael Avila de Espindola <espindola@google.com>
8498
8499 * c-format.c (gcc_tdiag_char_table): Add support for %E.
8500
bf758008
UB
85012009-04-23 Uros Bizjak <ubizjak@gmail.com>
8502
8503 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
8504 enum type.
8505 (alpha_rtx_costs): Ditto.
8506 (emit_unlikely_jump): Use add_reg_note.
8507 (emit_frame_store_1): Ditto.
8508 (alpha_expand_prologue): Ditto.
8509 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8510 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
8511
7323a100
NC
85122009-04-23 Nick Clifton <nickc@redhat.com>
8513
8514 * config/v850/v850.md (epilogue): Remove suppressed code.
8515 (return): Rename to return_simple and remove test of frame size.
8516 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
8517 to gen_return_simple.
8518
360032ba
JY
85192009-04-22 Jing Yu <jingyu@google.com>
8520
8521 PR testsuite/39781
8522 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
8523
53650abe
AP
85242009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
8525
8526 PR C/31499
8527 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
8528 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
8529 value is a VECTOR_CST, the element type is the element type of the
8530 vector.
8531
89043e8a
DD
85322009-04-22 DJ Delorie <dj@redhat.com>
8533
8534 * config/m32c/m32c.h: Update GTY annotations to new syntax.
8535
023f059b
JJ
85362009-04-22 Jakub Jelinek <jakub@redhat.com>
8537
8538 * alias.c (find_base_term): Move around LO_SUM case, so that
8539 CONST falls through into PLUS/MINUS handling.
8540
2c0eba5a
JJ
8541 PR c/39855
8542 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
8543 into 0, use omit_one_operand.
8544
9a461028
BE
85452009-04-23 Ben Elliston <bje@au.ibm.com>
8546
8547 * config/rs6000/linux-unwind.h (get_regs): Remove type
8548 puns. Change the type of `pc' to an array of unsigned ints and
8549 update all users. Constify frame24.
8550
653e2568
DD
85512009-04-22 DJ Delorie <dj@redhat.com>
8552
8553 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
8554 declarations before code.
8555 (current_function_special_page_vector): Likewise.
8556 (m32c_expand_insv): Silence a warning.
8557
60839f5d 85582009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
8559
8560 * alias.c: Update GTY annotations to new syntax.
8561 * basic-block.h: Likewise.
8562 * bitmap.h: Likewise.
8563 * c-common.h: Likewise.
8564 * c-decl.c: Likewise.
8565 * c-parser.c: Likewise.
8566 * c-pragma.c: Likewise.
8567 * c-tree.h: Likewise.
8568 * cfgloop.h: Likewise.
8569 * cgraph.h: Likewise.
8570 * config/alpha/alpha.c: Likewise.
8571 * config/arm/arm.h: Likewise.
8572 * config/avr/avr.h: Likewise.
8573 * config/bfin/bfin.c: Likewise.
8574 * config/cris/cris.c: Likewise.
8575 * config/darwin.c: Likewise.
8576 * config/frv/frv.c: Likewise.
8577 * config/i386/i386.c: Likewise.
8578 * config/i386/i386.h: Likewise.
8579 * config/i386/winnt.c: Likewise.
8580 * config/ia64/ia64.h: Likewise.
8581 * config/iq2000/iq2000.c: Likewise.
8582 * config/mips/mips.c: Likewise.
8583 * config/mmix/mmix.h: Likewise.
8584 * config/pa/pa.c: Likewise.
8585 * config/pa/pa.h: Likewise.
8586 * config/rs6000/rs6000.c: Likewise.
8587 * config/s390/s390.c: Likewise.
8588 * config/sparc/sparc.c: Likewise.
8589 * config/xtensa/xtensa.c: Likewise.
8590 * cselib.h: Likewise.
8591 * dbxout.c: Likewise.
8592 * dwarf2out.c: Likewise.
8593 * except.c: Likewise.
8594 * except.h: Likewise.
8595 * fixed-value.h: Likewise.
8596 * function.c: Likewise.
8597 * function.h: Likewise.
8598 * gimple.h: Likewise.
8599 * integrate.c: Likewise.
8600 * optabs.c: Likewise.
8601 * output.h: Likewise.
8602 * real.h: Likewise.
8603 * rtl.h: Likewise.
8604 * stringpool.c: Likewise.
8605 * tree-data-ref.c: Likewise.
8606 * tree-flow.h: Likewise.
8607 * tree-scalar-evolution.c: Likewise.
8608 * tree-ssa-address.c: Likewise.
8609 * tree-ssa-alias.h: Likewise.
8610 * tree-ssa-operands.h: Likewise.
8611 * tree.c: Likewise.
8612 * tree.h: Likewise.
8613 * varasm.c: Likewise.
8614 * varray.h: Likewise.
8615 * vec.h: Likewise.
bf758008 8616 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
8617 * doc/gty.texi: Update GTY documentation to new syntax.
8618 * gengtype-lex.l: Enforce attribute-like syntax for GTY
8619 annotations on structs.
8620 * gengtype-parse.c: Likewise.
8621
a123d175
MH
86222009-04-22 Mark Heffernan <meheff@google.com>
8623
bf758008 8624 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 8625
4c7c486a
KH
86262009-04-22 Kazu Hirata <kazu@codesourcery.com>
8627
8628 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
8629 where appropriate.
8630
6e782a29
KH
86312009-04-22 Kazu Hirata <kazu@codesourcery.com>
8632
8633 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
8634 the same as a PLUS without a shift. Increase the cost of a
8635 CONST_INT in MULT.
8636
38d2336a
MLI
86372009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8638
8639 * Makefile.in: Update dependencies.
bf758008 8640 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
8641 * errors.h: Remove bogus comment about compatibility.
8642 (warning): Update declaration.
8643 * genautomata.c: Update all calls to warning.
8644 * gimple.c: Do not include errors.h. Include toplev.h.
8645 * tree-ssa-structalias.c: Do not include errors.h.
8646 * omega.c: Likewise.
8647 * tree-ssa-reassoc.c: Likewise.
8648 * config/spu/spu-c.c: Likewise.
8649 * config/spu/t-spu-elf: Update dependencies.
8650
aea4deba
RG
86512009-04-22 Richard Guenther <rguenther@suse.de>
8652
8653 PR tree-optimization/39824
8654 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
8655 make sure the types are compatible.
8656
cfc93532
MLI
86572009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8658
8659 PR c++/14875
8660 * c-common.c (c_parse_error): Take a token_flags parameter.
8661 Use token_type for the token type instead.
8662 Pass token_flags to cpp_type2name.
8663 * c-common.h (c_parse_error): Update declaration.
8664 * c-parser.c (c_parser_error): Pass 0 as token flags.
8665
8632d02a
AB
86662009-04-22 Andrey Belevantsev <abel@ispras.ru>
8667
8668 PR rtl-optimization/39580
8669 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
8670
4c33221c
UW
86712009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8672
8673 * function.c (expand_function_end): Do not emit a jump to the "naked"
8674 return label for fall-through returns.
8675 * except.c (sjlj_emit_function_exit): Always place the call to the
8676 unregister function at the location installed by expand_function_end.
8677
9925bce0
RG
86782009-04-22 Richard Guenther <rguenther@suse.de>
8679
8680 PR tree-optimization/39845
8681 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
8682 (gen_inbound_check): Likewise.
8683
24a40b35
NS
86842009-04-22 Nathan Sidwell <nathan@codesourcery.com>
8685
8686 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
8687 padding for PPC.
8688 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
8689 * config/vxlib.c (__gthread_once): Add race guard for PPC.
8690
6c34a092
PB
86912009-04-22 Paolo Bonzini <bonzini@gnu.org>
8692
8693 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
8694 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
8695 shift counts to avoid out-of-bounds array accesses.
8696
baa48dfa
PB
86972009-04-22 Paolo Bonzini <bonzini@gnu.org>
8698
8699 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
8700 (Pmode): Move above.
8701
7d83f4f5
UB
87022009-04-22 Uros Bizjak <ubizjak@gmail.com>
8703
8704 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
8705 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
8706 GET_CODE macro. Use IN_RANGE macro where appropriate.
8707 * config/alpha/alpha.h: Ditto.
8708 * config/alpha/alpha.md: Ditto.
8709 * config/alpha/constraints.md: Ditto.
8710 * config/alpha/predicates.md: Ditto.
8711
3ad606bc
PB
87122009-04-22 Paolo Bonzini <bonzini@gnu.org>
8713
8714 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
8715 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8716 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8717 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8718 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8719 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8720 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8721 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8722 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8723 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8724 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8725 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8726 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8727 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8728 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8729 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8730 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8731 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8732 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8733 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8734 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8735 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8736 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8737 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8738 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8739 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8740 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8741
3cabd6d1
LB
87422009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8743
8744 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
8745 references from comments.
8746 * cfgbuild.c: (count_basic_blocks): Delete.
8747 (find_basic_blocks_1): Delete.
8748 (find_basic_blocks): Delete.
8749 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 8750 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
8751 * except.h (finish_eh_generation): Delete.
8752 * basic-block.h (find_basic_blocks): Delete.
8753 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
8754
270d1bcd
DK
87552009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
8756
8757 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
8758 (sdbout_parms): Likewise.
8759
b757d36f
KK
87602009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
8761
8762 * config/sh/sh.c (prepare_cbranch_operands): Use
8763 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
8764 (expand_cbranchdi4): Likewise.
8765 (from_compare): Add cast to enum type.
8766 (expand_cbranchsi4): Use add_reg_note.
8767 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
8768 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
8769 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
8770 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8771 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
8772 instead of CODE_FOR_nothing.
8773 (cbranchdi4): Likewise. Fix the order of arguments for
8774 gen_rtx_fmt_ee.
8775 (push_fpscr): Use add_reg_note.
8776 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
8777 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
8778
ad41bd84
JM
87792009-04-21 Joseph Myers <joseph@codesourcery.com>
8780
8781 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
8782 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8783 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8784 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
8785 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
8786 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
8787 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
8788 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
8789 config/alpha/x-vms, config/arc/t-arc,
8790 config/arm/README-interworking, config/arm/arm-c.c,
8791 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
8792 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
8793 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
8794 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
8795 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
8796 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
8797 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
8798 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
8799 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
8800 config/cris/t-elfmulti, config/crx/t-crx,
8801 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
8802 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
8803 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
8804 config/h8300/t-h8300, config/i386/athlon.md,
8805 config/i386/darwin-libgcc.10.4.ver,
8806 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
8807 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
8808 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
8809 config/i386/t-linux64, config/i386/t-nwld,
8810 config/i386/t-rtems-i386, config/i386/t-sol2-10,
8811 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
8812 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
8813 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
8814 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
8815 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
8816 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
8817 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
8818 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
8819 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
8820 config/m68k/t-uclinux, config/mcore/t-mcore,
8821 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
8822 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
8823 config/mips/crtn.asm, config/mips/irix-crti.asm,
8824 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
8825 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
8826 config/mips/mips-fixed.md, config/mips/sb1.md,
8827 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
8828 config/mips/t-iris6, config/mips/t-isa3264,
8829 config/mips/t-libgcc-mips16, config/mips/t-linux64,
8830 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
8831 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
8832 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
8833 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
8834 config/mn10300/t-linux, config/mn10300/t-mn10300,
8835 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
8836 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
8837 config/picochip/libgccExtras/clzsi2.asm,
8838 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
8839 config/rs6000/darwin-libgcc.10.4.ver,
8840 config/rs6000/darwin-libgcc.10.5.ver,
8841 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
8842 config/rs6000/t-aix43, config/rs6000/t-aix52,
8843 config/rs6000/t-darwin, config/rs6000/t-fprules,
8844 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
8845 config/rs6000/t-lynx, config/rs6000/t-netbsd,
8846 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
8847 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
8848 config/rs6000/t-rtems, config/rs6000/t-spe,
8849 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
8850 config/score/t-score-elf, config/sh/divcost-analysis,
8851 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
8852 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
8853 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
8854 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
8855 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
8856 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
8857 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
8858 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
8859 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
8860 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
8861 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
8862 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
8863 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
8864 limitx.h, version.c, xcoff.h: Add copyright and license notices.
8865 * config/h8300/genmova.sh: Include copyright and license notices
8866 in generated output.
8867 * config/h8300/mova.md: Regenerate.
8868 * doc/install.texi2html: Include word "Copyright" in copyright
8869 notice and use name "Free Software Foundation, Inc.".
8870 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8871 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8872 ChangeLog-2007, ChangeLog-2008: Correct dates.
8873
ca80e52b
EB
88742009-04-21 Eric Botcazou <ebotcazou@adacore.com>
8875
8876 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
8877 NE_EXPR operations as well.
8878 * c-parser.c (c_parser_condition): Do not set location information on
8879 the condition.
8880 (c_parser_conditional_expression): Likewise.
8881 (c_parser_binary_expression): Set location information on operators.
8882 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
8883 TRUTH_NOT_EXPR has been folded.
8884 * fold-const.c (fold_truth_not_expr): Copy location information from
8885 the incoming expression to the outgoing one.
8886 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
8887 recursive calls on the LHS of the operator but pass that of the
8888 operator to recursive calls on the RHS of the operator. Set it
8889 on the COND_EXPR.
8890 (shortcut_cond_expr): Set the locus of the operator on the second
8891 COND_EXPR and that of the expression on the first in degenerate cases.
8892 Pass the locus of the expression to calls to shortcut_cond_r.
8893 Set the locus of the 'then' block on the associated jump, if any.
8894 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
8895 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
8896 expression to call to gimplify_boolean_expr.
8897
35091630
KT
88982009-04-21 Kai Tietz <kai.tietz@onevision.com>
8899
8900 * config.gcc: Add additional configuration for
8901 i686-w64-mingw* and x86_64-w64-mingw* triplet.
8902 * config/i386/mingw-w64.h: New mingw-w64 specific header.
8903 (CPP_SPEC): Redefine for allowing -municode option.
8904 (STARTFILE_SPEC): Likewise.
8905 * config/i386/t-mingw-w64: New.
8906 * config/i386/mingw-w64.opt: New.
8907 (municode): Add new target option.
8908 * doc/invoke.texi (municode): Add documentation for new option.
8909
0267afc4
ILT
89102009-04-21 Ian Lance Taylor <iant@google.com>
8911
8912 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8913 Correct test for number of arguments.
8914 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8915
2ba9daa7
AS
89162009-04-21 Andreas Schwab <schwab@linux-m68k.org>
8917
8918 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
8919 argument of emit_library_call.
8920
ad8a1ac0
RG
89212009-04-21 Richard Guenther <rguenther@suse.de>
8922
8923 PR middle-end/39829
8924 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
8925 inside VIEW_CONVERT_EXPRs.
8926
7156c8ab
MJ
89272009-04-21 Martin Jambor <mjambor@suse.cz>
8928
8929 * tree-switch-conversion.c (build_constructors): Split a long line.
8930 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
8931 (build_one_array): Create assigns of constants if possible, do not
8932 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
8933 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
8934 make_rename_temp. Do not call mark_symbols_for_renaming, call
8935 update_stmt.
8936 (gen_def_assigns): Do not call mark_symbols_for_renaming or
8937 find_new_referenced_vars, call update_stmt.
8938 (gen_inbound_check): Use create_tmp_var and create ssa names manually
8939 instead of calling make_rename_temp. Do not call
8940 find_new_referenced_vars or mark_symbols_for_renaming, call
8941 update_stmt.
8942
2970ccb3
RG
89432009-04-21 Richard Guenther <rguenther@suse.de>
8944
8945 PR tree-optimization/39827
7d83f4f5 8946 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
8947 (tree_ssa_phiprop): Pass the correct array size.
8948
47f402d1
UB
89492009-04-21 Uros Bizjak <ubizjak@gmail.com>
8950
8951 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
8952
1e4ae551
MLI
89532009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
8954
8955 PR 16202
8956 * c-typeck.c (lvalue_p): Move declaration ...
8957 * c-common.h (lvalue_p): ... to here.
8958 * c-common.c (candidate_equal_p): New.
8959 (add_tlist): Use it.
8960 (merge_tlist): Use it.
8961 (warn_for_collisions_1): Likewise.
8962 (warning_candidate_p): Accept more candidates.
8963 (verify_tree): A warning candidate can be an expression. Use
8964 candidate_equal_p.
8965
244609a6
BE
89662009-04-21 Ben Elliston <bje@au.ibm.com>
8967
8968 PR target/5267
8969 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
8970 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
8971 options. Remove -mcall-solaris documentation.
8972
9c650d90
MLI
89732009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8974
8975 PR c++/13358
8976 * doc/invoke.texi (-Wlong-long): Update description.
8977 * c-lex (interpret_integer): Only warn if there was no previous
8978 overflow and -Wlong-long is enabled.
8979 * c-decl.c (declspecs_add_type): Drop redundant flags.
8980 * c.opt (Wlong-long): Init to -1.
8981 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
8982 and front-end warn_long_long. Wlong-long only depends on other
8983 flags if it is uninitialized.
8984 * c-parser.c (disable_extension_diagnostics): warn_long_long is
8985 the same for CPP and FE.
8986 (restore_extension_diagnostics): Likewise.
8987
bbbbb16a
ILT
89882009-04-20 Ian Lance Taylor <iant@google.com>
8989
8990 Fix enum conversions which are invalid in C++:
47f402d1
UB
8991 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
8992 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8993 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
8994 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 8995 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 8996 (dbxout_parms): Likewise.
47f402d1 8997 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
8998 (df_clear_flags): Likewise.
8999 * df-problems.c (df_rd_bb_local_compute_process_def): Change
9000 top_flag parameter to int.
9001 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
9002 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
9003 Remove cast.
bbbbb16a
ILT
9004 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
9005 (df_ref_create_structure, df_def_record_1): Likewise.
9006 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
9007 (df_notes_rescan): Change 0 to VOIDmode in function call.
9008 (df_get_call_refs, df_insn_refs_collect): Likewise.
9009 (df_bb_regs_collect): Likewise.
9010 (df_entry_block_defs_collect): Likewise.
9011 (df_exit_block_uses_collect): Likewise.
9012 * df.h: Update declarations.
9013 * double-int.c (double_int_divmod): Add cast to enum type.
9014 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
9015 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
9016 (based_loc_descr): Likewise.
9017 (loc_descriptor_from_tree_1): Change first_op and second_op to
9018 enum dwarf_location_atom. Add cast to enum type.
9019 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 9020 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
9021 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
9022 (do_store_flag): Likewise.
9023 * fixed-value.h (struct fixed_value): Change mode to enum
9024 machine_mode.
47f402d1 9025 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
9026 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
9027 function call.
9028 (insert_insn_decl, insert_decl, insert_state): Likewise.
9029 (automata_list_finish): Likewise.
9030 * genrecog.c (process_define_predicate): Add cast to enum type.
9031 * gensupport.c (init_predicate_table): Add cast to enum type.
9032 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
9033 function call.
9034 (gimple_build_call_1, gimple_build_label): Likewise.
9035 (gimple_build_goto, gimple_build_asm_1): Likewise.
9036 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 9037 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
9038 (enum fallback): Rename from enum fallback_t.
9039 (fallback_t): Typedef as int.
9040 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
9041 GSI_SAME_STMT in function call.
9042 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
9043 enum type.
9044 (setup_reg_class_relations): Likewise.
47f402d1 9045 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
9046 (setup_prohibited_class_mode_regs): Add cast to enum type.
9047 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 9048 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
9049 (record_address_regs): Change i to enum reg_class.
9050 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
9051 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
9052 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
9053 (GET_MODE_2XWIDER_MODE): Likewise.
9054 (GET_CLASS_NARROWEST_MODE): Likewise.
9055 * omp-low.c (expand_omp_for): Add cast to enum type.
9056 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
9057 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
9058 * postreload.c (reload_cse_simplify_operands): Change rclass local
9059 to enum reg_class.
9060 * predict.c (combine_predictions_for_insn): Change best_predictor
9061 and predictor to enum br_predictor.
9062 (combine_predictions_for_bb): Likewise.
9063 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
9064 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 9065 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
9066 * reginfo.c (init_move_cost): Add casts to enum type.
9067 (init_reg_sets_1, init_fake_stack_mems): Likewise.
9068 * regmove.c (regclass_compatible_p): Change class0 and class1 to
9069 enum reg_class.
9070 * reload.c (find_valid_class): Add casts to enum type.
9071 (push_reload): Change 0 to NO_REGS in function call.
9072 (find_reloads): Change this_alternative to array of enum
9073 reg_class. Remove some now-unnecessary casts.
9074 (make_memloc): Change 0 to VOIDmode in function call.
9075 * reload1.c (reload): Change 0 to VOIDmode in function call.
9076 (eliminate_regs_1, elimination_effects): Likewise.
9077 (eliminate_regs_in_insn): Likewise.
9078 (emit_input_reload_insns): Add cast to enum type.
9079 (delete_output_reload): Change 0 to VOIDmode in function call.
9080 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
9081 to enum type in function call.
9082 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
9083 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 9084 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
9085 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
9086 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
9087 (dump_function): Likewise.
9088 * tree-dump.h: Update declarations.
9089 * tree-pass.h: Update declarations.
9090 * varasm.c (assemble_integer): Change mclass to enum mode_class.
9091 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
9092 enum type.
9093 (arm_rtx_costs_1): Correct parenthesization.
9094 (arm_rtx_costs): Add casts to enum type.
9095 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
9096 (vfp_emit_fstmd): Use add_rg_note.
9097 (emit_multi_reg_push, emit_sfm): Likewise.
9098 (thumb_set_frame_pointer): Likewise.
9099 (arm_expand_prologue): Likewise.
9100 (arm_regno_class): Change return type to enum reg_class.
9101 (thumb1_expand_prologue): Use add_reg_note.
9102 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
9103 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
9104 in function call.
9105 * config/arm/gentune.sh: Add cast to enum type.
9106 * config/arm/arm-tune.md: Rebuild.
9107 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
9108 (ix86_split_fp_branch, predict_jump): Likewise.
9109 (ix86_expand_multi_arg_builtin): Change sub_code from enum
9110 insn_code to enum rtx_code.
9111 (ix86_builtin_vectorized_function): Add cast to enum type.
9112 * config/i386/i386.md (truncdfsf2): Change slot to enum
9113 ix86_stack_slot.
9114 (truncxf<mode>2, isinf<mode>2): Likewise.
9115 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
9116 enum type.
9117 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
9118 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
9119 (insert_bundle_state): Change 1 to INSERT in function call.
9120 (ia64_add_bundle_selector_before): Likewise.
9121 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
9122 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
9123 (restore_stack_nonlocal): Likewise.
9124 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
9125 function call.
9126 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
9127 function call.
9128 (mips_rtx_costs): Likewise.
9129 (mips_override_options): Add casts to enum type.
9130 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
9131 in function call.
9132 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
9133 (store_reg, set_reg_plus_d): Likewise.
9134 (hppa_expand_prologue, hppa_profile_hook): Likewise.
9135 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9136 cast to enum type.
9137 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
9138 function call.
9139 (emit_unlikely_jump): Use add_reg_note.
9140 (rs6000_emit_allocate_stack): Likewise.
9141 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
9142 (output_toc): Change 1 to INSERT in function call.
9143 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
9144 (rs6000_initialize_trampoline): Likewise.
9145 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
9146 function call.
9147 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
9148 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
9149 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
9150 (save_gprs): Use add_reg_note.
9151 (s390_emit_prologue): Likewise.
47f402d1 9152 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
9153 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
9154 (sparc_fold_builtin): Add cast to enum type.
9155 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
9156 enum insn_code.
9157 (spu_expand_prologue): Use add_reg_note.
47f402d1 9158 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
9159
91602009-04-20 Ian Lance Taylor <iant@google.com>
9161
9162 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
9163 (c_parser_postfix_expression_after_primary): Get VEC for list of
9164 arguments. Get original types of arguments. Call
9165 build_function_call_vec.
9166 (cached_expr_list_1, cached_expr_list_2): New static variables.
9167 (c_parser_expr_list): Change return type to VEC *. Add
9168 p_orig_types parameter. Change all callers.
9169 (c_parser_release_expr): New static function.
9170 (c_parser_vec_to_tree_list): New static function.
9171 * c-typeck.c (build_function_call): Rewrite to build a VEC and
9172 call build_function_call_vec.
9173 (build_function_call_vec): New function, based on old
9174 build_function_call.
9175 (convert_arguments): Remove nargs and argarray parameters. Change
9176 values to a VEC. Add origtypes parameter.
47f402d1 9177 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
9178 (convert_for_assignment): Add origtype parameter. Change all
9179 callers. If warn_cxx_compat, check for conversion to an enum
9180 type when calling a function.
9181 (store_init_value): Add origtype parameter. Change all callers.
9182 (digest_init): Likewise.
9183 (struct init_node): Add origtype field.
9184 (add_pending_init): Add origtype parameter. Change all callers.
9185 (output_init_element): Likewise.
9186 (output_pending_init_elements): Pass origtype from init_node to
9187 output_init_element.
f28a61ab 9188 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
9189 output_init_element.
9190 (c_finish_return): Add origtype parameter. Change all callers.
9191 * c-common.c (sync_resolve_size): Change params to VEC *. Change
9192 caller.
9193 (sync_resolve_params): Likewise.
47f402d1 9194 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 9195 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 9196 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
9197 * c-decl.c (finish_decl): Add origtype parameter. Change all
9198 callers. Call build_function_call_vec rather than
9199 build_function_call for cleanup.
9200 * c-tree.h: Update declarations.
9201 * c-common.h: Update declarations.
9202 * stub-objc.c (objc_rewrite_function_call): Change parameter from
9203 params to first_param.
9204 * target.h (struct gcc_target): Change resolve_overloaded_builtin
9205 params parameter from tree to void *.
9206 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9207 Change arglist parameter to have type void *, and to be a pointer
9208 to a VEC.
9209 * config/rs6000/rs6000-protos.h
9210 (altivec_resolve_overloaded_builtin): Update declaration.
9211 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
9212 fnargs parameter to have type void *, and to be a pointer to a
9213 VEC. Call build_function_call_vec instead of
9214 build_function_call.
47f402d1 9215 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 9216
6ff078d4 92172009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 9218 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
9219 H.J. Lu <hongjiu.lu@intel.com>
9220
9221 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
9222
9223 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
9224 (IX86_LEA_PRIORITY): Likewise.
9225 (distance_non_agu_define): New function.
9226 (distance_agu_use): Likewise.
9227 (ix86_lea_for_add_ok): Likewise.
9228 (ix86_dep_by_shift_count): Likewise.
9229
9230 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
9231 should split for LEA.
9232
9233 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
9234 function.
9235 (ix86_dep_by_shift_count): Likewise.
9236
87a5b4cc
RG
92372009-04-20 Richard Guenther <rguenther@suse.de>
9238
9239 * expr.c (handled_component_p): Move ...
9240 * tree.h (handled_component_p): ... here.
9241 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
9242 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
9243 and REALPART_EXPR to be in one group.
9244
438c239d
RG
92452009-04-20 Richard Guenther <rguenther@suse.de>
9246
9247 * basic-block.h (get_all_dominated_blocks): Declare.
9248 * dominance.c (get_all_dominated_blocks): New function.
9249 * tree-cfg.c (get_all_dominated_blocks): Remove.
9250 (remove_edge_and_dominated_blocks): Adjust.
9251 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
9252 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
9253 instead of recursing.
9254
fed5ae11
DK
92552009-04-20 Doug Kwan <dougkwan@google.com>
9256
9257 * cgraph.h (cgraph_node_ptr): New type for vector functions.
9258 (struct cgraph_node_set_def): New type.
9259 (cgraph_node_set) New type. Also declare vector functions.
9260 (struct cgraph_node_set_element_def): New type.
9261 (cgraph_node_set_element): Ditto.
9262 (cgraph_node_set_iterator): New iterator type.
9263 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
9264 cgraph_node_set_remove, dump_cgraph_node_set,
9265 debug_cgraph_node_set): New prototypes.
9266 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
9267 cgraph_node_set_size): New inlines.
9268 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
9269 including cgraph.h.
9270 (struct ipa_opt_pass): Add struct cgraph_node_set_def
9271 argument to function 'write_summary'.
9272 * ipa.c: Include ggc.h.
9273 (hash_cgraph_node_set_element,
9274 eq_cgraph_node_set_element, cgraph_node_set_new,
9275 cgraph_node_set_add, cgraph_node_set_remove,
9276 cgraph_node_set_find, dump_cgraph_node_set,
9277 debug_cgraph_node_set): New functions.
9278 * Makefile.in (ipa.o): Add dependency on GGC_H.
9279
c4551b28
IR
92802009-04-20 Ira Rosen <irar@il.ibm.com>
9281
9282 PR tree-optimization/39675
2ba9daa7 9283 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
9284 check of the return code of vect_schedule_slp. Check that
9285 stmt_vec_info still exists for the statement, before checking its
9286 vectorization type.
c4551b28 9287
21a495fb
MM
92882009-04-20 Michael Matz <matz@suse.de>
9289
9290 * Makefile.in (generated_files): Take out $(simple_generated_c).
9291
8e208874
DK
92922009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
9293
9294 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
9295 (UINTPTR_TYPE): Likewise.
9296
a45e580b
JM
92972009-04-19 Joseph Myers <joseph@codesourcery.com>
9298
9299 PR c/37481
9300 * c-typeck.c (digest_init): Check for initializing an array with a
9301 string literal.
9302
20845d35
JM
93032009-04-19 Joseph Myers <joseph@codesourcery.com>
9304
9305 PR c/19771
9306 * c-semantics.c (pop_stmt_list): Propagate
9307 STATEMENT_LIST_HAS_LABEL to parent statement list.
9308
28143fdd
AN
93092009-04-19 Adam Nemet <anemet@caviumnetworks.com>
9310
9311 * config/mips/mips.h (mips_tune_attr): New macro.
9312 * config/mips/mips.md (cpu): Use it.
9313
da377db9
JM
93142009-04-19 Joseph Myers <joseph@codesourcery.com>
9315
9316 PR c/38243
9317 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
9318 declaring a tag.
9319
3baf459d
DN
93202009-04-19 Diego Novillo <dnovillo@google.com>
9321
9322 * toplev.c (compile_file): Move call to coverage_finish ...
9323 * cgraphunit.c (ipa_passes): ... here.
9324 Call cgraph_process_new_functions.
9325 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
9326 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
9327
b6fa5b01
JH
93282009-04-19 Jan Hubicka <jh@suse.cz>
9329
47f402d1
UB
9330 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
9331 cfun.
b6fa5b01
JH
9332 (dump_cgraph_node): Dump can throw external flag.
9333 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
9334
ca409efd
MLI
93352009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
9336
9337 PR c/32061
9338 PR c++/36954
9339 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
9340 * common.opt (Wlogical-op): Move from here...
9341 * c.opt (Wlogical-op): ... to here.
9342 * c-typeck.c (parser_build_binary_op): Update call to
9343 warn_logical_operator.
9344 * c-opts.c (c_common_post_options): Enable warn_logical_op with
9345 extra_warnings.
9346 * c-common.c (warn_logical_op): Update.
9347 * c-common.h (warn_logical_op): Update declaration.
9348
9db4cdd3
EB
93492009-04-19 Eric Botcazou <ebotcazou@adacore.com>
9350
9351 * tree.c (protected_set_expr_location): Fix formatting.
9352
f37acdf9
JM
93532009-04-18 Joseph Myers <joseph@codesourcery.com>
9354
9355 PR c/27676
9356 * c-typeck.c (readonly_warning): new.
9357 (build_unary_op, build_modify_expr): Use readonly_warning for
9358 storing into something readonly but not const-qualified.
9359
2b4b7036
JM
93602009-04-18 Joseph Myers <joseph@codesourcery.com>
9361
9362 PR c/22367
9363 * c-typeck.c (build_unary_op): Check for taking address of
9364 expression of type void.
9365
3ce62965
JM
93662009-04-18 Joseph Myers <joseph@codesourcery.com>
9367
9368 PR c/35210
9369 * c-typeck.c (build_function_call): Check for calling a function
9370 with qualified void return types. Call require_complete_type when
9371 generating a trap.
9372
2505c5ed
JH
93732009-04-18 Jan Hubicka <jh@suse.cz>
9374
9375 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
9376 Set nothrow flag.
9377 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
9378 can_throw_external flag.
9379 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
9380 * ipa-pure-const.c (ignore_edge): New function.
9381 (propagate): Compute order for NOTHROW computation; set NOTHROWs
9382 only over can_throw_external edges.
9383 (local_pure_const): Add nothrow flag.
9384 * ipa-utils.c (searchc): Add ignore_edge callback.
9385 (ipa_utils_reduced_inorder): Add ignore_edge callback.
9386 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
9387 (set_nothrow_function_flags): Update cgraph.
9388 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
9389
2586ba4b
RG
93902009-04-18 Richard Guenther <rguenther@suse.de>
9391
9392 PR middle-end/39804
9393 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
9394 (fold_stmt): ... this and ...
9395 (fold_stmt_inplace): ... this.
9396 (fold_stmt_1): Fold references in calls and asms.
9397 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
9398
1eefab17
KH
93992009-04-18 Kazu Hirata <kazu@codesourcery.com>
9400
9401 * tree-vrp.c (ssa_name_nonzero_p): Remove.
9402 * tree.h: Remove the prototype for ssa_name_nonzero_p.
9403
aa424b01
KH
94042009-04-18 Kazu Hirata <kazu@codesourcery.com>
9405
9406 * tree.c (function_args_count): Remove.
9407 * tree.h: Remove the prototype for function_args_count.
9408
613a896b
KH
94092009-04-18 Kazu Hirata <kazu@codesourcery.com>
9410
9411 * tree-iterator.c (expr_only): Remove.
9412 * tree.h: Remove the prototype for expr_only.
9413
579e694c
KH
94142009-04-18 Kazu Hirata <kazu@codesourcery.com>
9415
9416 * reginfo.c (cannot_change_mode_set_regs): Remove.
9417 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
9418
ee7e3ad3
AS
94192009-04-08 Anatoly Sokolov <aesok@post.ru>
9420
9421 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
9422 whether operands 0 and 1 overlaps.
9423
92ef7fb1
MLI
94242009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
9425
9426 PR middle-end/36902
9427 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
9428 pointer. Use warning_at instead of warning.
9429 (search_for_addr_array): Likewise.
9430 (check_array_bounds): Likewise.
9431 (check_all_array_refs): Check that the incoming edge is not in the
9432 list of edges to be removed.
9433 (check_all_array_refs): Avoid the temporal pointer.
9434 (vrp_visit_cond_stmt): Fix typo.
9435 (simplify_switch_using_ranges): Handle the case where the switch
9436 index is an integer constant.
9437
0e097268
AN
94382009-04-18 Adam Nemet <anemet@caviumnetworks.com>
9439
9440 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
9441
c782f1dd
KH
94422009-04-18 Kazu Hirata <kazu@codesourcery.com>
9443
9444 * doc/extend.texi, doc/invoke.texi: Fix typos.
9445
668fb0e8
CC
94462009-04-17 Cary Coutant <ccoutant@google.com>
9447
9448 * tree-flow-inline.h (get_lineno): Fix inverted test.
9449
4d4014c1
DN
94502009-04-17 Diego Novillo <dnovillo@google.com>
9451
9452 * tree-ssa-pre.c (create_expression_by_pieces): Remove
9453 assertion for AVAIL_OUT.
9454
2984e1b6
MF
94552009-04-17 Mike Frysinger <vapier@gentoo.org>
9456
9457 PR target/38627
9458 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
9459 * config/sh/linux-atomic.asm: Likewise.
9460
9994a182
DN
94612009-04-17 Diego Novillo <dnovillo@google.com>
9462
9463 * except.c (debug_eh_tree): New.
9464 (struct eh_region, struct eh_status): Move ...
9465 * except.h: ... here.
9466 (add_type_for_runtime): Declare extern.
9467 (lookup_type_for_runtime): Likewise.
9468 (debug_eh_tree): Declare.
9469 * Makefile.in (GTFILES): List except.h before except.c
9470
07485407
DN
94712009-04-17 Diego Novillo <dnovillo@google.com>
9472
47f402d1 9473 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
9474 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9475 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
9476 (find_vars_r): ... here.
9477 * tree-flow.h (find_referenced_vars_in): Declare.
9478 * tree-ssa-pre.c (create_expression_by_pieces): Assert
9479 that AVAIL_OUT exists for BLOCK.
9480 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
9481 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
9482 (tree-parloops.o): Likewise.
9483
4e53d196
SB
94842009-04-17 Simon Baldwin <simonb@google.com>
9485
9486 * toplev.c (default_tree_printer): Add handling for %E format.
9487
413d3aa8
DN
94882009-04-17 Diego Novillo <dnovillo@google.com>
9489
47f402d1
UB
9490 * tree-pretty-print.c (dump_generic_node): Add break after
9491 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
9492 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
9493 FUNCTION_TYPE together. Call print_struct_decl when printing
9494 structures and TDF_SLIM is not given.
413d3aa8
DN
9495 (print_struct_decl): Fix logic for detecting recursion.
9496
5a691e98
RAE
94972009-04-17 Rafael Avila de Espindola <espindola@google.com>
9498
9499 PR 31567
9500 * gcc.c (create_at_file): New.
9501 (compile_input_file_p): New.
9502 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
9503 * main.c (main): Update call to toplev_main.
9504 * toplev.c (toplev_main): Change signature. Call expandargv.
9505 * toplev.h (toplev_main): Change signature.
9506
9eacf7a6
EB
95072009-04-17 Eric Botcazou <ebotcazou@adacore.com>
9508
9509 * dwarf2out.c (field_byte_offset): Use the type size as the field size
9510 if the latter is not constant.
9511
58298177
DE
95122009-04-17 David Edelsohn <edelsohn@gnu.org>
9513
9514 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
9515
5b4c43d7
EB
95162009-04-17 Eric Botcazou <ebotcazou@adacore.com>
9517
9518 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
9519 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
9520
b51605c4
RG
95212009-04-17 Richard Guenther <rguenther@suse.de>
9522
9523 * tree-ssa-structalias.c (get_constraint_for_component_ref):
9524 Handle component references view-converting an invariant address.
9525
9e3be889
AN
95262009-04-17 Adam Nemet <anemet@caviumnetworks.com>
9527
9528 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
9529 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
9530 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
9531 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
9532 Use @deftypevr rather than @deftypevar.
9533
7c3e9dc3
RG
95342009-04-17 Richard Guenther <rguenther@suse.de>
9535
47f402d1 9536 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
9537 (get_prop_source_stmt): Likewise.
9538 (can_propagate_from): Likewise.
9539
aca600aa
AS
95402009-04-17 Andrew Stubbs <ams@codesourcery.com>
9541
9542 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
9543 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
9544 (--with-multilib-list): Add default value.
9545 * configure: Regenerate.
9546 * Makefile.in (TM_ENDIAN_CONFIG): Define.
9547 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
9548 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
9549 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
9550 Don't add default cpu to multilib list unnecessarily, but do enable
9551 the relevant compiler option..
9552 Add support for --with-multilib-list=<blank> and
9553 --with-multilib-list=!<somelib> to supress unwanted multilibs.
9554 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
9555 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
9556 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
9557 TM_MULTILIB_CONFIG.
9558 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
9559 (MULTILIB_OSDIRNAMES): New variable.
9560 * config/sh/t-1e: Delete file.
9561 * config/sh/t-mlib-sh1: Delete file.
9562 * config/sh/t-mlib-sh2: Delete file.
9563 * config/sh/t-mlib-sh2a: Delete file.
9564 * config/sh/t-mlib-sh2a-nofpu: Delete file.
9565 * config/sh/t-mlib-sh2a-single: Delete file.
9566 * config/sh/t-mlib-sh2a-single-only: Delete file.
9567 * config/sh/t-mlib-sh2e: Delete file.
9568 * config/sh/t-mlib-sh3e: Delete file.
9569 * config/sh/t-mlib-sh4: Delete file.
9570 * config/sh/t-mlib-sh4-nofpu: Delete file.
9571 * config/sh/t-mlib-sh4-single: Delete file.
9572 * config/sh/t-mlib-sh4-single-only: Delete file.
9573 * config/sh/t-mlib-sh4a: Delete file.
9574 * config/sh/t-mlib-sh4a-nofpu: Delete file.
9575 * config/sh/t-mlib-sh4a-single: Delete file.
9576 * config/sh/t-mlib-sh4a-single-only: Delete file.
9577 * config/sh/t-mlib-sh4al: Delete file.
9578 * config/sh/t-mlib-sh5-32media: Delete file.
9579 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
9580 * config/sh/t-mlib-sh5-64media: Delete file.
9581 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
9582 * config/sh/t-mlib-sh5-compact: Delete file.
9583 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
9584 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
9585 * doc/install.texi (Options specification): Add
9586 --with-multilib-list and --with-endian.
9587
cf8aba7f
RAE
95882009-04-17 Rafael Avila de Espindola <espindola@google.com>
9589
9590 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
9591 REVISION_c.
9592 (OBJS-common): Add plugin-version.o.
9593 (plugin-version.o): New.
9594 * gcc-plugin.h (plugin_gcc_version): New.
9595 (plugin_default_version_check): New.
9596 (plugin_init_func, plugin_init): Add version argument.
9597 * plugin-version.c: New.
9598 * plugin.c (str_plugin_gcc_version_name): New.
9599 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
9600 pass it to the init function.
9601 (plugin_default_version_check): New.
9602
61e20b90
RG
96032009-04-17 Richard Guenther <rguenther@suse.de>
9604
9605 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
9606 for decl-vs-decl disambiguation.
9607
90c6fd8a
AK
96082009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
9609
9610 * config/s390/s390.h (s390_tune_attr): New macro definition.
9611 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
9612
9fe9fe04
RG
96132009-04-17 Richard Guenther <rguenther@suse.de>
9614
9615 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
9616 (fold_stmt_r): Likewise.
9617 (maybe_fold_reference): New function.
9618 (fold_gimple_assign): Handle cases fold_stmt_r did.
9619 (fold_stmt): Do not use fold_stmt_r.
9620 (fold_stmt_inplace): Likewise.
9621
7e673273
RG
96222009-04-17 Richard Guenther <rguenther@suse.de>
9623
9624 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
9625 (record_equivalences_from_stmt): Remove useless checks and
9626 simplifications.
9627 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
9628 the type is already suitable.
9629
fabf2749
PB
96302009-04-17 Paolo Bonzini <bonzini@gnu.org>
9631
9632 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
9633
68f7b061
UB
96342009-04-17 Uros Bizjak <ubizjak@gmail.com>
9635
9636 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
9637 (CMPtype): Define as __gcc_CMPtype.
9638
532bfb0a
AJ
96392009-04-17 Aurelien Jarno <aurelien@aurel32.net>
9640
9641 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
9642 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
9643
e3ac77ff
RG
96442009-04-17 Richard Guenther <rguenther@suse.de>
9645
9646 PR tree-optimization/39746
9647 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
9648 special-casing for builtins and static variable use/def.
9649 (call_may_clobber_ref_p_1): Likewise.
9650
7072a650
ILT
96512009-04-16 Ian Lance Taylor <iant@google.com>
9652
9653 * df.h: Include "timevar.h".
9654 (struct df_problem): Change tv_id field to timevar_id_t.
9655 * tree-pass.h: Include "timevar.h".
9656 (struct opt_pass): Change tv_id field to timevar_id_t.
9657 * timevar.h (timevar_id_t): Define TV_NONE.
9658 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
9659 TV_NONE rather than tv_id != 0.
9660 (execute_one_pass): Likewise.
9661 * Makefile.in (DF_H): Add $(TIMEVAR_H).
9662 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
9663 dependencies to $(TREE_PASS_H).
9664 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
9665 to TV_NONE.
9666 (pass_branch_target_load_optimize2): Likewise.
9667 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
9668 (pass_outof_cfg_layout_mode): Likewise.
9669 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
9670 (pass_rebuild_cgraph_edges): Likewise.
9671 (pass_remove_cgraph_callee_edges): Likewise.
9672 * df-core.c (pass_df_initialize_opt): Likewise.
9673 (pass_df_initialize_no_opt): Likewise.
9674 (pass_df_finish): Likewise.
9675 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
9676 * except.c (pass_set_nothrow_function_flags): Likewise.
9677 (pass_convert_to_eh_region_ranges): Likewise.
9678 * final.c (pass_compute_alignments): Likewise.
9679 * function.c (pass_instantiate_virtual_regs): Likewise.
9680 (pass_init_function): Likewise.
9681 (pass_leaf_regs): Likewise.
9682 (pass_match_asm_constraints): Likewise.
9683 * gimple-low.c (pass_lower_cf): Likewise.
9684 (pass_mark_used_blocks): Likewise.
9685 * init-regs.c (pass_initialize_regs): Likewise.
9686 * integrate.c (pass_initial_value_sets): Likewise.
9687 * ira.c (pass_ira): Likewise.
9688 * jump.c (pass_cleanup_barriers): Likewise.
9689 * omp-low.c (pass_expand_omp): Likewise.
9690 (pass_lower_omp): Likewise.
9691 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
9692 * recog.c (pass_split_all_insns): Likewise.
9693 (pass_split_after_reload): Likewise.
9694 (pass_split_before_regstack): Likewise.
9695 (pass_split_before_sched2): Likewise.
9696 (pass_split_for_shorten_branches): Likewise.
9697 * reginfo.c (pass_reginfo_init): Likewise.
9698 (pass_subregs_of_mode_init): Likewise.
9699 (pass_subregs_of_mode_finish): Likewise.
9700 * passes.c (pass_postreload): Likewise.
9701 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
9702 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
9703 (pass_warn_function_return): Likewise.
9704 (pass_warn_function_noreturn): Likewise.
9705 * tree-complex.c (pass_lower_complex): Likewise.
9706 (pass_lower_complex_O0): Likewise.
9707 * tree-if-conv.c (pass_if_conversion): Likewise.
9708 * tree-into-ssa.c (pass_build_ssa): Likewise.
9709 * tree-mudflap.c (pass_mudflap_1): Likewise.
9710 (pass_mudflap_2): Likewise.
9711 * tree-nomudflap.c (pass_mudflap_1): Likewise.
9712 (pass_mudflap_2): Likewise.
9713 * tree-nrv.c (pass_return_slot): Likewise.
9714 * tree-object-size.c (pass_object_sizes): Likewise.
9715 * tree-optimize.c (pass_all_optimizations): Likewise.
9716 (pass_early_local_passes): Likewise.
9717 (pass_all_early_optimizations): Likewise.
9718 (pass_cleanup_cfg): Likewise.
9719 (pass_cleanup_cfg_post_optimizing): Likewise.
9720 (pass_free_datastructures): Likewise.
9721 (pass_free_cfg_annotations): Likewise.
9722 (pass_fixup_cfg): Likewise.
9723 (pass_init_datastructures): Likewise.
9724 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
9725 (pass_late_warn_uninitialized): Likewise.
9726 (pass_update_address_taken): Likewise.
9727 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
9728 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
9729 (pass_cse_sincos): Likewise.
9730 (pass_convert_to_rsqrt): Likewise.
9731 * tree-ssa-structalias.c (pass_build_alias): Likewise.
9732 * tree-stdarg.c (pass_stdarg): Likewise.
9733 * tree-tailcall.c (pass_tail_recursion): Likewise.
9734 (pass_tail_calls): Likewise.
9735 * tree-vect-generic.c (pass_lower_vector): Likewise.
9736 (pass_lower_vector_ssa): Likewise.
9737 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
9738
0051ef59
JM
97392009-04-16 Joseph Myers <joseph@codesourcery.com>
9740
9741 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
9742 XLR entry.
9743 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
9744 Handle -march=xlr.
9745 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
9746 logical and signext.
9747
b3f8558a
KK
97482009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
9749
9750 PR target/39767
9751 * config/sh/predicates.md (arith_operand): Check if the operand
9752 of TRUNCATE is a REG.
9753
f57597d9
KH
97542009-04-16 Kazu Hirata <kazu@codesourcery.com>
9755
9756 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
9757 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
9758
b172d063
KH
97592009-04-16 Kazu Hirata <kazu@codesourcery.com>
9760
9761 * tree-iterator.c (tsi_split_statement_list_after,
9762 tsi_split_statement_list_before): Remove.
9763 * tree-iterator.h: Remove the prototypes for
532bfb0a 9764 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 9765
78fe4f1f
KH
97662009-04-16 Kazu Hirata <kazu@codesourcery.com>
9767
9768 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
9769 * tree-ssa-propagate.h: Remove the prototype for
9770 stmt_makes_single_load.
9771
43dd3201
KH
97722009-04-16 Kazu Hirata <kazu@codesourcery.com>
9773
9774 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
9775 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
9776
4252a4aa
KH
97772009-04-16 Kazu Hirata <kazu@codesourcery.com>
9778
9779 * tree-iterator.c (EXPR_LAST_BODY): Remove.
9780
bfb69968
KH
97812009-04-16 Kazu Hirata <kazu@codesourcery.com>
9782
9783 * except.c (eh_region_outer_p): Remove.
9784 * except.h: Remove the prototype for eh_region_outer_p.
9785
c7db7fa5
KH
97862009-04-16 Kazu Hirata <kazu@codesourcery.com>
9787
9788 * function.c (current_function_assembler_name): Remove.
9789 * function.h: Remove the prototype for
9790 current_function_assembler_name.
9791
efc0b2bd
ILT
97922009-04-16 Ian Lance Taylor <iant@google.com>
9793
532bfb0a 9794 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
9795 (add_reg_note): Call alloc_reg_note.
9796 * rtl.h (alloc_reg_note): Declare.
9797 * combine.c (try_combine): Use alloc_reg_note.
9798 (recog_for_combine, move_deaths): Likewise.
9799 (distribute_notes): Use alloc_reg_note and add_reg_note.
9800 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
9801 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
9802 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
9803
6080348f
VM
98042009-04-16 Vladimir Makarov <vmakarov@redhat.com>
9805
9806 PR rtl-optimization/39762
9807 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
9808 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 9809 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 9810
6080348f
VM
9811 * ira-conflicts.c (process_regs_for_copy): Use function
9812 ira_get_register_move_cost instead of global
9813 ira_register_move_cost.
9814
9815 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
9816 color_pass, move_spill_restore, update_curr_costs): Ditto.
9817
9818 * ira-lives.c (process_single_reg_class_operands): Ditto.
9819
9820 * ira-emit.c (emit_move_list): Ditto.
9821
9822 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
9823 (record_reg_classes): Ditto. Use functions
9824 ira_get_register_move_cost and ira_get_may_move_cost instead of
9825 global vars ira_register_move_cost, ira_may_move_out_cost and
9826 ira_may_move_in_cost.
9827 (record_address_regs): Don't call ira_init_register_move_cost.
9828 Use function ira_get_may_move_cost instead of global
9829 ira_may_move_in_cost.
9830 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 9831 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 9832 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 9833
646bea10
RG
98342009-04-16 Richard Guenther <rguenther@suse.de>
9835
9836 * tree-cfg.c (verify_gimple_assign_binary):
9837 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
9838 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
9839 (create_general_new_stmt): Note that this function is broken.
9840
02e819ff
RAE
98412009-04-16 Rafael Avila de Espindola <espindola@google.com>
9842
9843 * common.opt (fhelp): Add Var(help_flag).
9844 * gcc-plugin.h (plugin_info): Add help.
9845 * plugin.c (plugin_name_args): Add help.
9846 (register_plugin_info): Set plugin->help.
9847 (print_help_one_plugin): New.
9848 (print_plugins_help): New.
9849 * plugin.h (print_plugins_help): New.
9850 * toplev.c (toplev_main): Call print_plugins_help if needed.
9851
ccacdf06
RG
98522009-04-16 Richard Guenther <rguenther@suse.de>
9853
9854 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
9855 (gimple_ior_addresses_taken_1): New function.
9856 (gimple_ior_addresses_taken): Likewise.
9857 * gimple.h (struct gimple_statement_with_ops_base): Remove
9858 addresses_taken member.
9859 (gimple_ior_addresses_taken): Declare.
9860 (gimple_addresses_taken, gimple_addresses_taken_ptr,
9861 gimple_set_addresses_taken): Remove.
9862 * ipa-reference.c (mark_address): New function.
9863 (scan_stmt_for_static_refs): Use it for marking addresses taken.
9864 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
9865 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
9866 (gimple_add_to_addresses_taken): Remove.
9867 (get_tmr_operands): Call mark_address_taken.
9868 (get_asm_expr_operands): Likewise.
9869 (get_expr_operands): Likewise.
9870 (build_ssa_operands): Do not clear the addresses_taken bitmap.
9871 (free_stmt_operands): Do not free it.
9872 * tree-ssa.c (delete_tree_ssa): Likewise.
9873 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
9874
346ef3fa
RG
98752009-04-16 Richard Guenther <rguenther@suse.de>
9876
9877 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
9878 (walk_stmt_load_store_ops): Likewise.
9879 * gimple.c (get_base_loadstore): New function.
9880 (walk_stmt_load_store_addr_ops): Likewise.
9881 (walk_stmt_load_store_ops): Likewise.
9882 * ipa-pure-const.c (check_op): Simplify.
9883 (check_load, check_store): New functions.
9884 (check_stmt): Use walk_stmt_load_store_ops.
9885 * ipa-reference.c (mark_load): Adjust signature.
9886 (mark_store): Likewise.
9887 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
9888
44e9f006
RAE
98892009-04-16 Rafael Avila de Espindola <espindola@google.com>
9890
9891 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
9892 (plugin_info): New.
9893 * opts.c (common_handle_option): Don't call print_version.
9894 * plugin.c (plugin_name_args): Add version.
9895 (register_plugin_info): New.
9896 (register_callback): Handle PLUGIN_INFO.
9897 (try_init_one_plugin): New.
9898 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
9899 if failed to init.
9900 (finalize_one_plugin): New.
9901 (finalize_plugins): New.
9902 (print_one_plugin): New.
9903 (print_plugins_versions): New.
9904 * plugin.h (print_plugins_versions): New.
9905 (finalize_plugins): New.
9906 * toplev.c (compile_file): Don't call initialize_plugins.
9907 (print_version): Call print_plugins_versions.
9908 (toplev_main): Call initialize_plugins. Print version if needed.
9909 Call finalize_plugins.
9910
41fd0f9b
RAE
99112009-04-16 Rafael Avila de Espindola <espindola@google.com>
9912
9913 * common.opt (fversion): New.
9914 * gcc.c (print_version): New.
9915 (process_command): Don't print the version. Just set print_version.
9916 (main): Print version. Call subprocesses if print_version and
9917 verbose_flag are set.
9918 * opts.c (common_handle_option): Handle OPT_fversion.
9919
550918ca 99202009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 9921 Ira Rosen <irar@il.ibm.com>
550918ca
RG
9922
9923 PR tree-optimization/39698
9924 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
9925 type of the reduction variable. Only generate the def if
9926 it is needed.
9927
9928 * omp-low.c (expand_omp_for_generic): When converting to a pointer
9929 make sure to first convert to an integer of the same precision.
9930 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
9931 the type of the evolution correctly in computing the new
9932 induction variable base.
9933
54634841
RG
99342009-04-16 Richard Guenther <rguenther@suse.de>
9935
9936 PR middle-end/39625
9937 * tree-cfg.c (make_blocks): Split statements with to-be
9938 abnormal SSA names on the lhs.
9939
b6fc2cdb
PB
99402009-04-16 Paolo Bonzini <bonzini@gnu.org>
9941
9942 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
9943 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
9944 * c-typeck.c (really_start_incremental_init): Likewise.
9945 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
9946 (TARGET_INITIALIZER): Remove it.
9947 * target.h (struct target): Remove vector_opaque_p.
9948 * tree.c (build_opaque_vector_type): New.
9949 * tree.h (TYPE_VECTOR_OPAQUE): New.
9950 (build_opaque_vector_type): Declare.
9951 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
9952 * config/rs6000/rs6000.c (build_opaque_vector_type,
9953 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
9954 (rs6000_init_builtins): Use build_opaque_vector_type for
9955 opaque_V4SI_type_node.
9956
a417cdd9
CM
99572009-04-15 Catherine Moore <clm@codesourcery.com>
9958
532bfb0a
AJ
9959 * debug.h (set_name): Declare.
9960 * dwarf2out.c (dwarf2out_set_name): Declare.
9961 (dwarf2_debug_hooks): Add set_name.
9962 (find_AT_string): New.
9963 (add_AT_string): Call find_AT_string.
9964 (dwarf2out_set_name): New.
9965 * cp/decl.c (grokdeclarator): Call set_name.
9966 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
9967 * debug.c (do_nothing_debug_hooks): Likewise.
9968 * dbxout.c (dbx_debug_hooks): Likewise.
9969 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 9970
60839f5d 99712009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 9972
532bfb0a
AJ
9973 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
9974 reg for single-precision FPU.
9975 * config/rs6000/rs6000.md (movsi_internal1): Only for
9976 !TARGET_SINGLE_FPU.
9977 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
9978 single-precision FP regs.
9979
ada39f0b
RG
99802009-04-15 Richard Guenther <rguenther@suse.de>
9981
9982 * omp-low.c (lower_rec_input_clauses): Build correct address
9983 expressions.
9984 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 9985 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
9986 (generate_memset_zero): Fix types.
9987 * tree-profile.c (prepare_instrumented_value): Correctly
9988 widen a pointer.
9989
6866c6e8
ILT
99902009-04-15 Ian Lance Taylor <iant@google.com>
9991
9992 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
9993 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
9994 for -Wall and for -Wc++-compat.
9995 (c_common_post_options): For C++, set warn_enum_compare if not
9996 already set.
9997 * c-tree.h (struct c_expr): Add field original_type.
9998 (build_external_ref): Update declaration.
9999 * c-parser.c (c_parser_braced_init): Set original_type.
10000 (c_parser_initelt): Likewise.
10001 (c_parser_expr_no_commas): Likewise.
10002 (c_parser_conditional_expression): Likewise.
10003 (c_parser_cast_expression): Likewise.
10004 (c_parser_unary_expression): Likewise. Pull setting of
10005 original_code to top of function.
10006 (c_parser_sizeof_expression): Set original_type.
10007 (c_parser_alignof_expression): Likewise.
10008 (c_parser_postfix_expression): Likewise. Pull setting of
10009 original_code to top of function.
532bfb0a 10010 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
10011 (c_parser_postfix_expression_after_primary): Likewise.
10012 (c_parser_expression): Likewise.
10013 * c-typeck.c (build_external_ref): Add type parameter. Change all
10014 callers.
10015 (c_expr_sizeof_expr): Set original_type field.
10016 (parser_build_unary_op): Likewise.
10017 (parser_build_binary_op): Likewise. Optionally warn about
10018 comparisons of enums of different types.
10019 (digest_init): Set original_type field.
10020 (really_start_incremental_init): Likewise.
10021 (push_init_level, pop_init_level): Likewise.
10022 * doc/invoke.texi (Warning Options): -Wenum-compare now
10023 supported in C.
10024
f116fecf
RG
100252009-04-15 Richard Guenther <rguenther@suse.de>
10026
10027 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
10028 out a necessary conversion.
10029 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
10030 names we didn't value number.
10031 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
10032
25e20805
RG
100332009-04-15 Richard Guenther <rguenther@suse.de>
10034
10035 PR tree-optimization/39764
10036 * tree-ssa-ccp.c (get_value): Canonicalize value with
10037 canonicalize_float_value.
10038
90cc3676
JH
100392009-04-15 Jan Hubicka <jh@suse.cz>
10040
10041 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
10042 Wrong version of patch.
10043
6d14c006
JH
100442009-04-15 Jan Hubicka <jh@suse.cz>
10045
10046 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
10047
5afaa917
NS
100482009-04-15 Nathan Sidwell <nathan@codesourcery.com>
10049
10050 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
10051 our distinct integral and vector types.
10052
3b482fca
RAE
100532009-04-15 Rafael Avila de Espindola <espindola@google.com>
10054
10055 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
10056 * init.c (build_vtbl_address): Remove call to assemble_external.
10057
6cd1d2e2
DJ
100582009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
10059
10060 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
10061 output for other floating point modes.
10062
dab71827
DN
100632009-04-14 Diego Novillo <dnovillo@google.com>
10064
10065 * diagnostic.c (diagnostic_report_diagnostic): Do not
10066 warn about loaded plugins for DK_ERROR and DK_WARNING.
10067 * c-decl.c (declspecs_add_type): Move call to
10068 invoke_plugin_callbacks ...
10069 * c-parser.c (c_parser_declspecs): ... here.
10070 * plugin.c (dump_active_plugins): Tidy output.
10071
68a607d8
DN
100722009-04-14 Diego Novillo <dnovillo@google.com>
10073 Le-Chun Wu <lcwu@google.com>
10074
10075 * configure.ac: Add --enable-plugin support.
10076 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
10077 * Makefile.in (PLUGIN_H): Define.
10078 Export ENABLE_PLUGIN and GMPINC to site.exp.
10079 Add PLUGINLIBS to link command.
10080 Add/modify dependencies for plugin.o and files including plugin.h.
10081 (plugin.o): New.
10082 * config.in: Regenerate.
2ba9daa7 10083
68a607d8
DN
10084 * opts.c (common_handle_option): Handle OPT_fplugin_ and
10085 OPT_fplugin_arg_.
10086
100872009-04-14 Le-Chun Wu <lcwu@google.com>
10088
10089 * tree-pass.h (register_one_dump_file): Add a prototype for
10090 register_one_dump_file.
10091 * toplev.c (compile_file): Call initialize_plugins.
10092 (do_compile): Call invoke_plugin_callbacks.
10093 (toplev_main): Call invoke_plugin_callbacks.
10094 * common.opt: Add -fplugin= and -fplugin-arg-.
10095 * gcc-plugin.h: New public header file for plugins to include.
10096 * plugin.c: New source file.
10097 * plugin.h: New internal header file.
10098 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 10099
68a607d8
DN
10100 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
10101
101022009-04-14 Diego Novillo <dnovillo@google.com>
10103
10104 * doc/plugins.texi: New.
10105 * doc/gccint.texi: Add reference to Plugins chapter.
10106 * doc/invoke.texi: Document -fplugin and -fplugin-arg
10107 * diagnostic.c (diagnostic_report_diagnostic): Warn about
10108 loaded plugins, if any.
10109 * timevar.def (TV_PLUGIN_INIT): Define.
10110 (TV_PLUGIN_RUN): Define.
10111 * plugin.c: Include timevar.h
10112 (plugins_active_p): New.
10113 (dump_active_plugins): New.
10114 (debug_active_plugins): New.
10115
50617257
JM
101162009-04-14 Joseph Myers <joseph@codesourcery.com>
10117
10118 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
10119 library paths.
10120 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
10121
b32f6fff
KH
101222009-04-14 Kazu Hirata <kazu@codesourcery.com>
10123
10124 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
10125 the same as a minus without a shift.
10126
85d04fa2
NC
101272009-04-14 Nick Clifton <nickc@redhat.com>
10128
10129 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
10130 comparisons with small integers will always produce a short
10131 branch.
10132
e495a0c8
RAE
101332009-04-14 Rafael Avila de Espindola <espindola@google.com>
10134
10135 Merge:
e495a0c8
RAE
10136 2008-12-19 Diego Novillo <dnovillo@google.com>
10137
532bfb0a 10138 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 10139
ad41bd84 101402009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
10141
10142 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
10143 verification.
10144 (verify_gimple_assign_binary): Likewise. Handle shifts and
10145 rotates correctly.
10146 (verify_gimple_phi): Print the mismatched argument position.
10147 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10148 Fix types.
10149 (vect_update_init_of_dr): Likewise.
10150 * matrix-reorg.c (transform_access_sites): Do what the
10151 comment suggests.
10152 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
10153
60839f5d 101542009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
10155
10156 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
10157 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
10158 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 10159 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
10160 remove duplicate config
10161
b0e2d008
DR
101622009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
10163
10164 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
10165 file_name:line_number type locator of the call site.
2ba9daa7 10166
1244a8b7
VM
101672009-04-13 Vladimir Makarov <vmakarov@redhat.com>
10168
10169 * genautomata.c: Put blank after comma.
10170 (automaton_decls): New.
10171 (struct unit_usage): Add comments to member next.
10172 (store_alt_unit_usage): Keep the list ordered.
10173 (unit_present_on_list_p, equal_alternatives_p): New.
10174 (check_regexp_units_distribution): Check units distribution
10175 correctness correctly.
10176 (main): Don't write automata if error is found. Return correct
10177 exit code.
2ba9daa7 10178
1244a8b7
VM
10179 * config/m68k/cf.md (cfv4_ds): Remove.
10180 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
10181 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
10182
10183 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
10184 power4-load-ext, power4-store, power4-store-update,
10185 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
10186 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
10187 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
10188 power4-sqrt, power4-isync): Modify reservation to make correct
10189 unit distribution to automata.
10190
10191 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
10192 power5-store-update, power5-two, power5-three, power5-lmul,
10193 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 10194
f7dd1864
AN
101952009-04-13 Adam Nemet <anemet@caviumnetworks.com>
10196
10197 * except.c (pass_set_nothrow_function_flags): Set name and add
10198 TODO_dump_func.
10199 (set_nothrow_function_flags): Mention in the dump file when
10200 changing a function to nothrow.
10201
59a1171f
OS
102022009-04-13 Ozkan Sezer <sezeroz@gmail.com>
10203
10204 PR/39066
10205 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
10206 instead of unsigned long.
10207
934c2060
RR
102082009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10209
f7dd1864
AN
10210 * config/arm/arm.c (return_used_this_function): Remove.
10211 (arm_output_function_prologue): Remove use of
934c2060 10212 return_used_this_function.
f7dd1864 10213 (output_return_instruction): Replace use of
934c2060
RR
10214 return_used_this_function
10215 by cfun->machine->return_used_this_function.
f7dd1864
AN
10216 (arm_output_epilogue): Likewise.
10217 (arm_output_function_epilogue): Likewise.
10218 (thumb_unexpanded_epilogue): Likewise.
10219 * config/arm/arm.h (struct machine_function):
934c2060 10220 New member return_used_this_function.
f7dd1864 10221
ae5cc016
MM
102222009-04-12 Mark Mitchell <mark@codesourcery.com>
10223
10224 * doc/install.texi: Correct description of default directory for
10225 --with-gxx-include-dir.
10226
a0ce68df 102272009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
10228
10229 * fold-const.c (build_range_check): Properly deal with enumeral and
10230 boolean base types.
10231
3906a4a1
SB
102322009-04-12 Steven Bosscher <steven@gcc.gnu.org>
10233
10234 * doc/invoke.texi (max_gcse_passes): Remove documentation.
10235 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
10236 * params.h (MAX_GCSE_PASSES): Remove.
10237 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
10238 in sequence. Remove ability to run multiple passes.
10239 (bypass_jumps): Report run as third CPROP pass.
10240
efaadb93
AN
102412009-04-12 Adam Nemet <anemet@caviumnetworks.com>
10242
10243 PR middle-end/39651
10244 * except.c (can_throw_external): Look at each insn in a SEQUENCE
10245 when deciding whether the whole SEQUENCE can throw.
10246
4c48007b
UB
102472009-04-12 Uros Bizjak <ubizjak@gmail.com>
10248
10249 PR target/39740
10250 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
10251 offseted label references.
10252
b4104018
JH
102532009-04-11 Jan Hubicka <jh@suse.cz>
10254
10255 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
10256
32848948
RG
102572009-04-11 Richard Guenther <rguenther@suse.de>
10258
10259 PR middle-end/39732
10260 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
10261 return variables as TREE_ADDRESSABLE.
10262
8810712e
RG
102632009-04-11 Richard Guenther <rguenther@suse.de>
10264
10265 PR tree-optimization/39713
10266 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
10267 reference trees have SSA_NAME operands.
10268
fa78c0c1
RG
102692009-04-11 Richard Guenther <rguenther@suse.de>
10270
10271 PR c/39712
10272 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
10273 address expressions.
10274
4d722130
DK
102752009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
10276
10277 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
10278 match changes in Cygwin 1.7
10279 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
10280 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
10281
567a90f5
PB
102822009-04-10 Paolo Bonzini <bonzini@gnu.org>
10283
10284 PR tree-optimization/39701
10285 * doc/invoke.texi (Optimization Options): Document change in
10286 meaning and initialization of -fdelete-null-pointer-checks.
10287
1ad2f450
L
102882009-04-10 H.J. Lu <hongjiu.lu@intel.com>
10289
10290 PR middle-end/39701
10291 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
10292
10293 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
10294 here.
10295
10296 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
10297
1afc5373
CF
102982009-04-10 Chao-ying Fu <fu@mips.com>
10299
10300 * doc/tm.texi (Instruction Output): Document
10301 TARGET_ASM_FINAL_POSTSCAN_INSN.
10302 * target.h (final_postscan_insn): New field in asm_out.
10303 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10304 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
10305 * final.c (final_scan_insn): Call
10306 targetm.asm_out.final_postscan_insn after outputting
10307 an asm macro and a normal instruction.
10308
10309 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
10310 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
10311 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
10312 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
10313 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10314
4d35e75c
PB
103152009-04-10 Paolo Bonzini <bonzini@gnu.org>
10316
10317 PR middle-end/39701
1ad2f450
L
10318 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
10319 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 10320
62c49b83
L
103212009-04-10 H.J. Lu <hongjiu.lu@intel.com>
10322
10323 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
10324
80558628
L
103252009-04-09 H.J. Lu <hongjiu.lu@intel.com>
10326
10327 PR target/39678
10328 * config/i386/i386.c (classify_argument): Handle SCmode with
10329 (bit_offset % 64) != 0.
10330
8c70d28b
SL
103312009-04-09 Sandra Loosemore <sandra@codesourcery.com>
10332
10333 * doc/invoke.texi (Optimize Options): Add cross-reference to
10334 -Q --help=optimizers examples.
10335
e1ff19bf
BE
103362009-04-10 Ben Elliston <bje@au.ibm.com>
10337
10338 PR target/36800
10339 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
10340 regalign for the reg == fpr and TDmode case.
10341
52daca75
DA
103422009-04-09 David Ayers <ayers@fsfe.org>
10343
10344 PR objc/29200
10345 * objc/objc-act.c (warn_with_method): Remove helper function.
10346 (check_duplicates): Call warning and inform directly.
10347 (really_start_method): Likewise.
10348
b45f0e58
PB
103492009-04-09 Paolo Bonzini <bonzini@gnu.org>
10350
10351 * expmed.c (expand_divmod): Always use a comparison for a division
10352 by a large unsigned integer.
10353
1ad2f450
L
10354 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
10355 for things others than variables or functions as nonzero.
b45f0e58 10356
748086b7
JJ
103572009-04-09 Nick Clifton <nickc@redhat.com>
10358
10359 * unwind-compat.c: Change copyright header to refer to version
10360 3 of the GNU General Public License with version 3.1 of the
10361 GCC Runtime Library Exception and to point readers at the
7a715bba 10362 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
10363 * config/alpha/crtfastmath.c: Likewise.
10364 * config/alpha/linux-unwind.h: Likewise.
10365 * config/alpha/qrnnd.asm: Likewise.
10366 * config/alpha/vms-crt0-64.c: Likewise.
10367 * config/alpha/vms-crt0.c: Likewise.
10368 * config/alpha/vms-dwarf2.asm: Likewise.
10369 * config/alpha/vms-dwarf2eh.asm: Likewise.
10370 * config/alpha/vms-psxcrt0-64.c: Likewise.
10371 * config/alpha/vms-psxcrt0.c: Likewise.
10372 * config/alpha/vms_tramp.asm: Likewise.
10373 * config/arc/initfini.c: Likewise.
10374 * config/arc/lib1funcs.asm: Likewise.
10375 * config/arm/bpabi-v6m.S: Likewise.
10376 * config/arm/bpabi.S: Likewise.
10377 * config/arm/bpabi.c: Likewise.
10378 * config/arm/crti.asm: Likewise.
10379 * config/arm/crtn.asm: Likewise.
10380 * config/arm/ieee754-df.S: Likewise.
10381 * config/arm/ieee754-sf.S: Likewise.
10382 * config/arm/lib1funcs.asm: Likewise.
10383 * config/arm/libunwind.S: Likewise.
10384 * config/arm/linux-atomic.c: Likewise.
10385 * config/arm/mmintrin.h: Likewise.
10386 * config/arm/pr-support.c: Likewise.
10387 * config/arm/unaligned-funcs.c: Likewise.
10388 * config/arm/unwind-arm.c: Likewise.
10389 * config/arm/unwind-arm.h: Likewise.
10390 * config/avr/libgcc.S: Likewise.
10391 * config/bfin/crti.s: Likewise.
10392 * config/bfin/crtlibid.s: Likewise.
10393 * config/bfin/crtn.s: Likewise.
10394 * config/bfin/lib1funcs.asm: Likewise.
10395 * config/bfin/linux-unwind.h: Likewise.
10396 * config/cris/arit.c: Likewise.
10397 * config/cris/cris_abi_symbol.c: Likewise.
10398 * config/darwin-64.c: Likewise.
10399 * config/darwin-crt2.c: Likewise.
10400 * config/darwin-crt3.c: Likewise.
10401 * config/darwin.h: Likewise.
10402 * config/dbxelf.h: Likewise.
10403 * config/dfp-bit.c: Likewise.
10404 * config/dfp-bit.h: Likewise.
10405 * config/elfos.h: Likewise.
10406 * config/fixed-bit.c: Likewise.
10407 * config/fixed-bit.h: Likewise.
10408 * config/fp-bit.c: Likewise.
10409 * config/fp-bit.h: Likewise.
10410 * config/fr30/crti.asm: Likewise.
10411 * config/fr30/crtn.asm: Likewise.
10412 * config/fr30/lib1funcs.asm: Likewise.
10413 * config/freebsd-spec.h: Likewise.
10414 * config/frv/cmovd.c: Likewise.
10415 * config/frv/cmovh.c: Likewise.
10416 * config/frv/cmovw.c: Likewise.
10417 * config/frv/frvbegin.c: Likewise.
10418 * config/frv/frvend.c: Likewise.
10419 * config/frv/lib1funcs.asm: Likewise.
10420 * config/glibc-stdint.h: Likewise.
10421 * config/h8300/clzhi2.c: Likewise.
10422 * config/h8300/crti.asm: Likewise.
10423 * config/h8300/crtn.asm: Likewise.
10424 * config/h8300/ctzhi2.c: Likewise.
10425 * config/h8300/fixunssfsi.c: Likewise.
10426 * config/h8300/lib1funcs.asm: Likewise.
10427 * config/h8300/parityhi2.c: Likewise.
10428 * config/h8300/popcounthi2.c: Likewise.
10429 * config/i386/ammintrin.h: Likewise.
10430 * config/i386/att.h: Likewise.
10431 * config/i386/avxintrin.h: Likewise.
10432 * config/i386/biarch64.h: Likewise.
10433 * config/i386/bmmintrin.h: Likewise.
10434 * config/i386/cpuid.h: Likewise.
10435 * config/i386/cross-stdarg.h: Likewise.
10436 * config/i386/crtfastmath.c: Likewise.
10437 * config/i386/crtprec.c: Likewise.
10438 * config/i386/cygming-crtbegin.c: Likewise.
10439 * config/i386/cygming-crtend.c: Likewise.
10440 * config/i386/cygwin.asm: Likewise.
10441 * config/i386/emmintrin.h: Likewise.
10442 * config/i386/gmm_malloc.h: Likewise.
10443 * config/i386/gthr-win32.c: Likewise.
10444 * config/i386/i386.h: Likewise.
10445 * config/i386/immintrin.h: Likewise.
10446 * config/i386/linux-unwind.h: Likewise.
10447 * config/i386/linux64.h: Likewise.
10448 * config/i386/mm3dnow.h: Likewise.
10449 * config/i386/mmintrin-common.h: Likewise.
10450 * config/i386/mmintrin.h: Likewise.
10451 * config/i386/nmmintrin.h: Likewise.
10452 * config/i386/pmm_malloc.h: Likewise.
10453 * config/i386/pmmintrin.h: Likewise.
10454 * config/i386/smmintrin.h: Likewise.
10455 * config/i386/sol2-c1.asm: Likewise.
10456 * config/i386/sol2-ci.asm: Likewise.
10457 * config/i386/sol2-cn.asm: Likewise.
10458 * config/i386/sol2-gc1.asm: Likewise.
10459 * config/i386/tmmintrin.h: Likewise.
10460 * config/i386/unix.h: Likewise.
10461 * config/i386/w32-unwind.h: Likewise.
10462 * config/i386/wmmintrin.h: Likewise.
10463 * config/i386/x86-64.h: Likewise.
10464 * config/i386/x86intrin.h: Likewise.
10465 * config/i386/xmmintrin.h: Likewise.
10466 * config/ia64/crtbegin.asm: Likewise.
10467 * config/ia64/crtend.asm: Likewise.
10468 * config/ia64/crtfastmath.c: Likewise.
10469 * config/ia64/crti.asm: Likewise.
10470 * config/ia64/crtn.asm: Likewise.
10471 * config/ia64/fde-glibc.c: Likewise.
10472 * config/ia64/lib1funcs.asm: Likewise.
10473 * config/ia64/linux-unwind.h: Likewise.
10474 * config/ia64/quadlib.c: Likewise.
10475 * config/ia64/unwind-ia64.c: Likewise.
10476 * config/linux.h: Likewise.
10477 * config/m32c/m32c-lib1.S: Likewise.
10478 * config/m32c/m32c-lib2-trapv.c: Likewise.
10479 * config/m32c/m32c-lib2.c: Likewise.
10480 * config/m32r/initfini.c: Likewise.
10481 * config/m68hc11/larith.asm: Likewise.
10482 * config/m68hc11/m68hc11-crt0.S: Likewise.
10483 * config/m68k/cf.md: Likewise.
10484 * config/m68k/crti.s: Likewise.
10485 * config/m68k/crtn.s: Likewise.
10486 * config/m68k/lb1sf68.asm: Likewise.
10487 * config/m68k/linux-unwind.h: Likewise.
10488 * config/mcore/crti.asm: Likewise.
10489 * config/mcore/crtn.asm: Likewise.
10490 * config/mcore/lib1.asm: Likewise.
10491 * config/mips/linux-unwind.h: Likewise.
10492 * config/mips/loongson.h: Likewise.
10493 * config/mips/mips16.S: Likewise.
10494 * config/mmix/crti.asm: Likewise.
10495 * config/mmix/crtn.asm: Likewise.
10496 * config/pa/fptr.c: Likewise.
10497 * config/pa/hpux-unwind.h: Likewise.
10498 * config/pa/lib2funcs.asm: Likewise.
10499 * config/pa/linux-atomic.c: Likewise.
10500 * config/pa/linux-unwind.h: Likewise.
10501 * config/pa/milli64.S: Likewise.
10502 * config/pa/quadlib.c: Likewise.
10503 * config/pa/stublib.c: Likewise.
10504 * config/picochip/libgccExtras/adddi3.asm: Likewise.
10505 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
10506 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
10507 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
10508 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
10509 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
10510 * config/picochip/libgccExtras/divmod15.asm: Likewise.
10511 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
10512 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
10513 * config/picochip/libgccExtras/longjmp.asm: Likewise.
10514 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
10515 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
10516 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
10517 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
10518 * config/picochip/libgccExtras/setjmp.asm: Likewise.
10519 * config/picochip/libgccExtras/subdi3.asm: Likewise.
10520 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
10521 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
10522 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
10523 * config/rs6000/750cl.h: Likewise.
10524 * config/rs6000/altivec.h: Likewise.
10525 * config/rs6000/biarch64.h: Likewise.
10526 * config/rs6000/crtresfpr.asm: Likewise.
10527 * config/rs6000/crtresgpr.asm: Likewise.
10528 * config/rs6000/crtresxfpr.asm: Likewise.
10529 * config/rs6000/crtresxgpr.asm: Likewise.
10530 * config/rs6000/crtsavfpr.asm: Likewise.
10531 * config/rs6000/crtsavgpr.asm: Likewise.
10532 * config/rs6000/darwin-asm.h: Likewise.
10533 * config/rs6000/darwin-fallback.c: Likewise.
10534 * config/rs6000/darwin-fpsave.asm: Likewise.
10535 * config/rs6000/darwin-ldouble.c: Likewise.
10536 * config/rs6000/darwin-tramp.asm: Likewise.
10537 * config/rs6000/darwin-unwind.h: Likewise.
10538 * config/rs6000/darwin-vecsave.asm: Likewise.
10539 * config/rs6000/darwin-world.asm: Likewise.
10540 * config/rs6000/e500crtres32gpr.asm: Likewise.
10541 * config/rs6000/e500crtres64gpr.asm: Likewise.
10542 * config/rs6000/e500crtres64gprctr.asm: Likewise.
10543 * config/rs6000/e500crtrest32gpr.asm: Likewise.
10544 * config/rs6000/e500crtrest64gpr.asm: Likewise.
10545 * config/rs6000/e500crtresx32gpr.asm: Likewise.
10546 * config/rs6000/e500crtresx64gpr.asm: Likewise.
10547 * config/rs6000/e500crtsav32gpr.asm: Likewise.
10548 * config/rs6000/e500crtsav64gpr.asm: Likewise.
10549 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
10550 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
10551 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
10552 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
10553 * config/rs6000/eabi-ci.asm: Likewise.
10554 * config/rs6000/eabi-cn.asm: Likewise.
10555 * config/rs6000/eabi.asm: Likewise.
10556 * config/rs6000/linux-unwind.h: Likewise.
10557 * config/rs6000/linux64.h: Likewise.
10558 * config/rs6000/paired.h: Likewise.
10559 * config/rs6000/paired.md: Likewise.
10560 * config/rs6000/ppc64-fp.c: Likewise.
10561 * config/rs6000/ppu_intrinsics.h: Likewise.
10562 * config/rs6000/rs6000.h: Likewise.
10563 * config/rs6000/si2vmx.h: Likewise.
10564 * config/rs6000/sol-ci.asm: Likewise.
10565 * config/rs6000/sol-cn.asm: Likewise.
10566 * config/rs6000/spe.h: Likewise.
10567 * config/rs6000/spu2vmx.h: Likewise.
10568 * config/rs6000/sysv4.h: Likewise.
10569 * config/rs6000/tramp.asm: Likewise.
10570 * config/rs6000/vec_types.h: Likewise.
10571 * config/s390/linux-unwind.h: Likewise.
10572 * config/s390/tpf-unwind.h: Likewise.
10573 * config/score/crti.asm: Likewise.
10574 * config/score/crtn.asm: Likewise.
10575 * config/sh/crt1.asm: Likewise.
10576 * config/sh/crti.asm: Likewise.
10577 * config/sh/crtn.asm: Likewise.
10578 * config/sh/divtab-sh4-300.c: Likewise.
10579 * config/sh/divtab-sh4.c: Likewise.
10580 * config/sh/divtab.c: Likewise.
10581 * config/sh/lib1funcs-4-300.asm: Likewise.
10582 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
10583 * config/sh/lib1funcs.asm: Likewise.
10584 * config/sh/lib1funcs.h: Likewise.
10585 * config/sh/linux-atomic.asm: Likewise.
10586 * config/sh/linux-unwind.h: Likewise.
10587 * config/sh/shmedia.h: Likewise.
10588 * config/sh/sshmedia.h: Likewise.
10589 * config/sh/ushmedia.h: Likewise.
10590 * config/sparc/crtfastmath.c: Likewise.
10591 * config/sparc/linux-unwind.h: Likewise.
10592 * config/sparc/sol2-c1.asm: Likewise.
10593 * config/sparc/sol2-ci.asm: Likewise.
10594 * config/sparc/sol2-cn.asm: Likewise.
10595 * config/spu/divmodti4.c: Likewise.
10596 * config/spu/divv2df3.c: Likewise.
10597 * config/spu/float_disf.c: Likewise.
10598 * config/spu/float_unsdidf.c: Likewise.
10599 * config/spu/float_unsdisf.c: Likewise.
10600 * config/spu/float_unssidf.c: Likewise.
10601 * config/spu/mfc_multi_tag_release.c: Likewise.
10602 * config/spu/mfc_multi_tag_reserve.c: Likewise.
10603 * config/spu/mfc_tag_release.c: Likewise.
10604 * config/spu/mfc_tag_reserve.c: Likewise.
10605 * config/spu/mfc_tag_table.c: Likewise.
10606 * config/spu/multi3.c: Likewise.
10607 * config/spu/spu_internals.h: Likewise.
10608 * config/spu/spu_intrinsics.h: Likewise.
10609 * config/spu/spu_mfcio.h: Likewise.
10610 * config/spu/vec_types.h: Likewise.
10611 * config/spu/vmx2spu.h: Likewise.
10612 * config/stormy16/stormy16-lib2.c: Likewise.
10613 * config/svr4.h: Likewise.
10614 * config/sync.c: Likewise.
10615 * config/v850/lib1funcs.asm: Likewise.
10616 * config/vxlib-tls.c: Likewise.
10617 * config/vxlib.c: Likewise.
10618 * config/vxworks-dummy.h: Likewise.
10619 * config/xtensa/crti.asm: Likewise.
10620 * config/xtensa/crtn.asm: Likewise.
10621 * config/xtensa/ieee754-df.S: Likewise.
10622 * config/xtensa/ieee754-sf.S: Likewise.
10623 * config/xtensa/lib1funcs.asm: Likewise.
10624 * config/xtensa/lib2funcs.S: Likewise.
10625 * config/xtensa/linux-unwind.h: Likewise.
10626 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
10627 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
10628 * coretypes.h: Likewise.
10629 * crtstuff.c: Likewise.
10630 * defaults.h: Likewise.
10631 * dwarf2.h: Likewise.
10632 * emutls.c: Likewise.
10633 * gbl-ctors.h: Likewise.
10634 * gcov-io.h: Likewise.
10635 * ginclude/float.h: Likewise.
10636 * ginclude/iso646.h: Likewise.
10637 * ginclude/stdarg.h: Likewise.
10638 * ginclude/stdbool.h: Likewise.
10639 * ginclude/stddef.h: Likewise.
10640 * ginclude/stdfix.h: Likewise.
10641 * ginclude/stdint-gcc.h: Likewise.
10642 * ginclude/tgmath.h: Likewise.
10643 * gthr-aix.h: Likewise.
10644 * gthr-dce.h: Likewise.
10645 * gthr-gnat.c: Likewise.
10646 * gthr-gnat.h: Likewise.
10647 * gthr-lynx.h: Likewise.
10648 * gthr-mipssde.h: Likewise.
10649 * gthr-nks.h: Likewise.
10650 * gthr-posix.c: Likewise.
10651 * gthr-posix.h: Likewise.
10652 * gthr-posix95.h: Likewise.
10653 * gthr-rtems.h: Likewise.
10654 * gthr-single.h: Likewise.
10655 * gthr-solaris.h: Likewise.
10656 * gthr-tpf.h: Likewise.
10657 * gthr-vxworks.h: Likewise.
10658 * gthr-win32.h: Likewise.
10659 * gthr.h: Likewise.
10660 * libgcc2.c: Likewise.
10661 * libgcc2.h: Likewise.
10662 * libgcov.c: Likewise.
10663 * tsystem.h: Likewise.
10664 * typeclass.h: Likewise.
10665 * unwind-c.c: Likewise.
10666 * unwind-compat.h: Likewise.
10667 * unwind-dw2-fde-compat.c: Likewise.
10668 * unwind-dw2-fde-darwin.c: Likewise.
10669 * unwind-dw2-fde-glibc.c: Likewise.
10670 * unwind-dw2-fde.c: Likewise.
10671 * unwind-dw2-fde.h: Likewise.
10672 * unwind-dw2.c: Likewise.
10673 * unwind-dw2.h: Likewise.
10674 * unwind-generic.h: Likewise.
10675 * unwind-pe.h: Likewise.
10676 * unwind-sjlj.c: Likewise.
10677 * unwind.inc: Likewise.
10678 * config/arm/neon-gen.ml: Change generated copyright header to
10679 refer to version 3 of the GNU General Public License with
10680 version 3.1 of the GCC Runtime Library Exception and to point
10681 readers at the COPYING3 and COPYING3.RUNTIME files and the
10682 FSF's license web page.
10683 * config/arm/arm_neon.h: Regenerate.
10684
106852009-04-09 Jakub Jelinek <jakub@redhat.com>
10686
10687 * config/cris/cris.md: Change copyright header to refer to version
10688 3 of the GNU General Public License.
10689 * doc/install.texi2html: Change copyright header to refer to version
10690 3 of the GNU General Public License and to point readers at the
10691 COPYING3 file and the FSF's license web page.
10692 * config/vax/linux.h: Likewise.
10693
4a77c72b
PB
106942009-04-09 Paolo Bonzini <bonzini@gnu.org>
10695
1ad2f450
L
10696 * config/i386/i386.md (cmpcc): New.
10697 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
10698 (sync_compare_and_swap_cc*): Delete.
10699
10700 * config/s390/s390.c (s390_compare_emitted): Remove.
10701 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
10702 s390_compare_emitted used to be handled. Assert that modes match.
10703 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
10704 refer to sync_compare_and_swap_ccsi.
10705 * config/s390/s390.h (s390_compare_emitted): Remove.
10706 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
10707 instead of s390_compare_emitted.
10708 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
10709 instead of s390_compare_emitted.
10710 * config/s390/s390.md (cmpcc): New.
10711 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
10712 CC_REGNUM, do not pretend it's set.
10713 (sync_compare_and_swap_cc*): Delete.
10714 * config/s390/predicates.md (cc_reg_operand): New.
10715
10716 * expr.c (sync_compare_and_swap_cc): Delete.
10717 * optabs.h (sync_compare_and_swap_cc): Delete.
10718 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
10719 is being used with can_compare_p.
10720 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
10721 (find_cc_set): New.
10722 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
10723 look for a MODE_CC set instead. Use emit_store_flag.
10724 (expand_compare_and_swap_loop): Likewise, with some additional
10725 complication to avoid a force_reg when useless. Use
10726 emit_cmp_and_jump_insns.
10727 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
10728 * doc/md.texi (sync_compare_and_swap_cc): Merge with
10729 sync_compare_and_swap documentation.
4a77c72b 10730
0c0efb33
JH
107312009-04-09 Jan Hubicka <jh@suse.cz>
10732
10733 * except.c (find_prev_try): Break out from ....
10734 (duplicate_eh_regions): ... here; properly update prev_try pointers
10735 when duplication part of tree.
10736 (dump_eh_tree): Improve dumping.
10737 (verify_eh_region): New.
10738 (verify_eh_tree): Use it.
10739
22a65a54
RG
107402009-04-06 Richard Guenther <rguenther@suse.de>
10741
10742 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
10743 &ARRAY addresses by adjusting their types and prepending
10744 a conversion.
10745 * tree-cfg.c (verify_gimple_assign_single): Verify that
10746 addresses are correct.
10747
f76968e6
RG
107482009-04-09 Richard Guenther <rguenther@suse.de>
10749
10750 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
10751 indices into an array reference if possible.
10752 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10753 Fold POINTER_PLUS_EXPR statements with invariant address.
10754
c90c5fb5
AM
107552009-04-09 Alan Modra <amodra@bigpond.net.au>
10756
10757 PR target/39634
10758 * config.gcc (powerpc64-*-linux*): Always build biarch.
10759
17cede2e
JM
107602009-04-09 Joseph Myers <joseph@codesourcery.com>
10761
10762 PR c/39613
10763 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
10764 it and pedwarn if this results in an INTEGER_CST.
10765
a3337ea2
KG
107662009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10767
10768 * doc/install.texi: Update minimum GMP version. Remove obsolete
10769 text in MPFR section.
10770
ce9ba79b
JJ
107712009-04-08 Jakub Jelinek <jakub@redhat.com>
10772
10773 * dwarf2out.c (class_scope_p): New static inline.
10774 (class_or_namespace_scope_p): Use it.
10775 (gen_variable_die): Use DW_TAG_member tag for static data member
10776 declarations instead of DW_TAG_variable.
10777
4f0ae266
JJ
10778 PR middle-end/39573
10779 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
10780 variables.
10781
d27f0ddc
RG
107822009-04-08 Richard Guenther <rguenther@suse.de>
10783
10784 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
10785 valueize random data.
10786
557cc596
DE
107872009-04-08 David Edelsohn <edelsohn@gnu.org>
10788
10789 * config.gcc (aix tm_file): Add aix-stdint.h.
10790 (aix tm clause use_gcc_stdint): Set to wrap.
10791 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 10792
75ccc1e7
RG
107932009-04-08 Richard Guenther <rguenther@suse.de>
10794
10795 PR middle-end/36291
10796 * tree-dfa.c (add_referenced_var): Do not recurse into
10797 global initializers.
10798 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
10799 exposed variables.
10800 (fold_const_aggregate_ref): Likewise.
10801
c6963675
PB
108022009-04-08 Paolo Bonzini <bonzini@gnu.org>
10803
6c44cf79
L
10804 * recog.c (ordered_comparison_operator): New.
10805 * gensupport.c (std_preds): Add it.
c6963675
PB
10806 * doc/md.texi (Machine-Independent Predicates): Document it.
10807
6d07ad98
JH
108082009-04-08 Jan Hubicka <jh@suse.cz>
10809
10810 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
10811 * function.h (rtl_eh): Remove exception_handler_label_map.
10812 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
10813 remove_exception_handler_label, for_each_eh_label_1): Remove.
10814 (rtl_remove_unreachable_regions): Remove.
10815 (convert_from_eh_region_ranges): Do not remove unreachable regions.
10816 (find_exception_handler_labels): Don't build the hashtable.
10817 (maybe_remove_eh_handler): Remove.
10818 (for_each_eh_label): Rewrite to walk the tree.
10819 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
10820 * except.h (maybe_remove_eh_handler): Remove.
10821 * passes.c (init_optimization_passes): Schedule second EH cleanup
10822 before out-of-ssa.
10823 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
10824 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
10825
7ddf71e3
PB
108262009-04-08 Paolo Bonzini <bonzini@gnu.org>
10827
10828 * genoutput.c (validate_optab_operands): New.
10829 (gen_insn, gen_expand): Call it.
10830
10831 * genflags.c (gen_insn): Detect misused iterators.
10832 (main): Pass line_no to gen_insn, exit with status 1 on error.
10833
10834 * genextract.c (line_no): Make global.
10835 (VEC_safe_set_locstr): Change assertion to error message.
10836 (main): Exit with status 1 on error.
10837
4d84fe7c
JM
108382009-04-08 Joseph Myers <joseph@codesourcery.com>
10839
10840 PR c/39614
10841 PR c/39673
10842 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10843 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10844 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
10845 * c-convert.c (convert): Do not call fold on results of conversion
10846 functions when the result is a C_MAYBE_CONST_EXPR.
10847 * c-parser.c (c_parser_postfix_expression): Do not fold condition
10848 of __builtin_choose_expr.
10849 * c-typeck.c (remove_c_maybe_const_expr): New.
10850 (build_unary_op, build_conditional_expr, build_compound_expr,
10851 build_binary_op, c_objc_common_truthvalue_conversion): Call
10852 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
10853 integer operands.
10854
60839f5d 108552009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 10856
2ba9daa7 10857 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 10858 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 10859
8e481a2c
DS
108602009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
10861
10862 PR bootstrap/39660
10863 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
10864 mix declarations and code.
10865
ee618c17
BE
108662009-04-08 Ben Elliston <bje@au.ibm.com>
10867
10868 * gcc.c: Replace `CC' with `GCC' throughout.
10869
f2a758a2
L
108702009-04-07 H.J. Lu <hongjiu.lu@intel.com>
10871
10872 * doc/invoke.texi: Document Atom support.
10873
6ea2bd47
JM
108742009-04-07 Jason Merrill <jason@redhat.com>
10875
10876 PR c++/25185
10877 * c-common.h, c-common.c: Add flag_pretty_templates.
10878 * c-opts.c (c_common_handle_option): Set it.
10879 * c.opt: Add -fno-pretty-templates.
10880 * doc/invoke.texi (C++ Dialect Options): Likewise.
10881
fcb82ab0
UB
108822009-04-07 Uros Bizjak <ubizjak@gmail.com>
10883
10884 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
10885 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
10886 (ia64_expand_builtin): Likewise.
10887
dc5e7298
MJ
108882009-04-07 Martin Jambor <mjambor@suse.cz>
10889
10890 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
10891 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
10892 ADDR_EXPRS are include too.
10893
0609b355
RG
108942009-04-07 Richard Guenther <rguenther@suse.de>
10895
10896 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
10897 decls are only used if passes as parameters or if they are
10898 local statics and the call is not to a builtin.
10899 (call_may_clobber_ref_p_1): Likewise.
10900
d8e535fa
PB
109012009-04-07 Paolo Bonzini <bonzini@gnu.org>
10902
10903 * expr.c (do_store_flag): Remove last argument. Simplify code
10904 to avoid duplication of tests already done by can_compare_p.
10905 (expand_expr_real_1): Adjust caller.
10906
c3c64f50
PB
109072009-04-07 Paolo Bonzini <bonzini@gnu.org>
10908
fcb82ab0
UB
10909 * optabs.c (can_compare_p): Test the predicate of a
10910 cbranch and cstore pattern.
c3c64f50 10911
9a53bc17
PB
109122009-04-07 Paolo Bonzini <bonzini@gnu.org>
10913
fcb82ab0
UB
10914 * expr.c (convert_move): Use emit_store_flag instead of
10915 "emulating" it.
9a53bc17 10916
67b8f1c1
PB
109172009-04-07 Paolo Bonzini <bonzini@gnu.org>
10918
fcb82ab0
UB
10919 * config/i386/i386.c (ix86_compare_emitted): Remove.
10920 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
10921 ix86_compare_op0 like ix86_compare_emitted used to be handled.
10922 * config/i386/i386.h (ix86_compare_emitted): Remove.
10923 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
10924 instead of ix86_compare_emitted.
10925 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 10926
44509946
AS
109272009-04-07 Andrew Stubbs <ams@codesourcery.com>
10928
10929 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
10930 Add t-sysroot-suffix to tmake_file.
10931 * config/print-sysroot-suffix.sh: New file.
10932 * config/t-sysroot-suffix: New file.
10933
ca22d882
BE
109342009-04-07 Ben Elliston <bje@au.ibm.com>
10935
10936 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
10937 as the latter produces a warning when the target does not support
10938 infinity.
10939
95aac11b
BE
109402009-04-07 Ben Elliston <bje@au.ibm.com>
10941
10942 * dfp.c: Replace type punning assignments with memcpy throughout.
10943 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 10944
633dd061
AM
109452009-04-07 Alan Modra <amodra@bigpond.net.au>
10946
10947 PR target/39634
10948 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
10949 Include soft-fp/t-softfp after rs6000/t-linux64.
10950
fe0a25ec
EB
109512009-04-06 Eric Botcazou <ebotcazou@adacore.com>
10952
10953 * stor-layout.c (set_sizetype): Use the full precision of their
10954 machine mode for bitsize types.
10955
0c011bc3
L
109562009-04-06 H.J. Lu <hongjiu.lu@intel.com>
10957
10958 * config/i386/i386.md: Revert 2 accidental checkins.
10959
b6837b94 109602009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 10961 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
10962 H.J. Lu <hongjiu.lu@intel.com>
10963
10964 Atom pipeline model, tuning and insn selection.
10965 * config.gcc (atom): Add atom config options and target.
10966
10967 * config/i386/atom.md: New.
10968
10969 * config/i386/i386.c (atom_cost): New cost.
10970 (m_ATOM): New macro flag.
10971 (initial_ix86_tune_features): Set m_ATOM.
10972 (x86_accumulate_outgoing_args): Likewise.
10973 (x86_arch_always_fancy_math_387): Likewise.
10974 (processor_target): Add Atom cost.
10975 (cpu_names): Add Atom cpu name.
10976 (override_options): Set Atom ISA.
10977 (ix86_issue_rate): New case PROCESSOR_ATOM.
10978 (ix86_adjust_cost): Likewise.
10979
10980 * config/i386/i386.h (TARGET_ATOM): New target macro.
10981 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
10982 (TARGET_OPT_AGU): New target option.
10983 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
10984 (processor_type): Add PROCESSOR_ATOM.
10985
10986 * config/i386/i386.md (cpu): Add new value "atom".
10987 (use_carry, movu): New attr.
10988 (atom.md): Include atom.md.
10989 (adddi3_carry_rex64): Set attr "use_carry".
10990 (addqi3_carry): Likewise.
10991 (addhi3_carry): Likewise.
10992 (addsi3_carry): Likewise.
10993 (*addsi3_carry_zext): Likewise.
10994 (subdi3_carry_rex64): Likewise.
10995 (subqi3_carry): Likewise.
10996 (subhi3_carry): Likewise.
10997 (subsi3_carry): Likewise.
10998 (x86_movdicc_0_m1_rex64): Likewise.
10999 (*x86_movdicc_0_m1_se): Likewise.
11000 (x86_movsicc_0_m1): Likewise.
11001 (*x86_movsicc_0_m1_se): Likewise.
11002 (*adddi_1_rex64): Emit add insn as much as possible.
11003 (*addsi_1): Likewise.
11004 (return_internal): Set atom_unit.
11005 (return_internal_long): Likewise.
11006 (return_pop_internal): Likewise.
11007 (*rcpsf2_sse): Set atom_sse_attr attr.
11008 (*qrt<mode>2_sse): Likewise.
11009 (*prefetch_sse): Likewise.
11010
11011 * config/i386/i386-c.c (ix86_target_macros_internal): New case
11012 PROCESSOR_ATOM.
11013 (ix86_target_macros_internal): Likewise.
11014
11015 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
11016 (*prefetch_sse_rex): Likewise.
11017 (sse_rcpv4sf2): Likewise.
11018 (sse_vmrcpv4sf2): Likewise.
11019 (sse_sqrtv4sf2): Likewise.
11020 (<sse>_vmsqrt<mode>2): Likewise.
11021 (sse_ldmxcsr): Likewise.
11022 (sse_stmxcsr): Likewise.
11023 (*sse_sfence): Likewise.
11024 (sse2_clflush): Likewise.
11025 (*sse2_mfence): Likewise.
11026 (*sse2_lfence): Likewise.
11027 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
11028 (<sse>_movup<ssemodesuffixf2c>): Likewise.
11029 (avx_movdqu<avxmodesuffix>): Likewise.
11030 (avx_lddqu<avxmodesuffix>): Likewise.
11031 (sse2_movntv2di): Change attr "type" to "ssemov".
11032 (sse2_movntsi): Likewise.
11033 (rsqrtv8sf2): Change attr "type" to "sseadd".
11034 (sse3_addsubv2df3): Set attr "atom_unit".
11035 (sse3_h<plusminus_insn>v4sf3): Likewise.
11036 (*sse2_pmaddwd): Likewise.
11037 (*vec_extractv2di_1_rex64): Likewise.
11038 (*vec_extractv2di_1_avx): Likewise.
11039 (sse2_psadbw): Likewise.
11040 (ssse3_phaddwv8hi3): Likewise.
11041 (ssse3_phaddwv4hi3): Likewise.
11042 (ssse3_phadddv4si3): Likewise.
11043 (ssse3_phadddv2si3): Likewise.
11044 (ssse3_phaddswv8hi3): Likewise.
11045 (ssse3_phaddswv4hi3): Likewise.
11046 (ssse3_phsubwv8hi3): Likewise.
11047 (ssse3_phsubwv4hi3): Likewise.
11048 (ssse3_phsubdv4si3): Likewise.
11049 (ssse3_phsubdv2si3): Likewise.
11050 (ssse3_phsubswv8hi3): Likewise.
11051 (ssse3_phsubswv4hi3): Likewise.
11052 (ssse3_pmaddubsw128): Likewise.
11053 (sse3_pmaddubsw: Likewise.
11054 (ssse3_palignrti): Likewise.
11055 (ssse3_palignrdi): Likewise.
11056
53e350d3
GP
110572009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
11058
11059 * doc/install.texi (Specific): Fix two cross-references to MinGW.
11060
439ef907
RG
110612009-04-06 Richard Guenther <rguenther@suse.de>
11062
11063 PR tree-optimization/28868
11064 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
11065 of which PHI results we inserted.
11066 (insert_into_preds_of_block): Record inserted PHIs.
11067 (eliminate): Eliminate redundant PHI nodes.
11068 (init_pre): Init inserted_phi_names.
11069
4bad83f5
RG
110702009-04-06 Richard Guenther <rguenther@suse.de>
11071
11072 PR tree-optimization/39643
11073 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
11074 IMAGPART_EXPRs of complex constants.
11075 (execute_fold_all_builtins): If we folded a call queue
11076 TODO_update_address_taken.
11077
570c4247
JH
110782009-04-06 Jan Hubicka <jh@suse.cz>
11079
11080 PR middle-end/39659
11081 * except.c (remove_unreachable_regions): Propagate may_contain_throw
11082 flag.
11083
a460d7a1
AS
110842009-04-06 Andrew Stubbs <ams@codesourcery.com>
11085
11086 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
11087 delay slot.
11088 (ic_invalidate_array): Likewise.
11089
60839f5d 110902009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
11091
11092 * calls.c (emit_library_call_value_1): Fix a problem with parameter
11093 alignment for library calls.
11094
7d253f6e
DS
110952009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
11096
11097 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
11098 (mingw32 tm clause use_gcc_stdint): Set to wrap.
11099 * config/i386/mingw-stdint.h: New file.
11100
941c3614
RB
111012009-04-05 Richard Guenther <rguenther@suse.de>
11102
11103 PR tree-optimization/39648
11104 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
11105 our &A vs. &A[0] IL deficiencies.
11106
12633413
JH
111072009-04-04 Jan Hubicka <jh@suse.cz>
11108
941c3614
RB
11109 * except.c (sjlj_find_directly_reachable_regions): Be ready for
11110 removed toplevel regions.
12633413
JH
11111 (sjlj_mark_call_sites): Likewise.
11112
bb2aaded
DK
111132009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
11114
11115 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
11116 (cygwin tm clause use_gcc_stdint): Set to wrap.
11117 * config/i386/cygwin-stdint.h: New file.
11118
86290011
RG
111192009-04-04 Richard Guenther <rguenther@suse.de>
11120
11121 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
11122 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
11123 single-argument PHIs if we are in loop-closed SSA form.
11124 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
11125 for the pre-condition.
11126 (slpeel_tree_peel_loop_to_edge): Likewise.
11127 (vect_build_loop_niters): Take an optional sequence to append stmts.
11128 (vect_generate_tmps_on_preheader): Likewise.
11129 (vect_do_peeling_for_loop_bound): Take extra guards for the
11130 pre-condition.
11131 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
11132 the cost model check.
11133 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 11134 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
11135 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
11136 (vect_do_peeling_for_loop_bound): Likewise.
11137 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
11138 loop bound only record extra pre-conditions, do not apply loop
11139 versioning.
11140
5eeeac64
RG
111412009-04-04 Richard Guenther <rguenther@suse.de>
11142
11143 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
11144 renaming code.
11145
1ff7d06b
JH
111462009-04-04 Jan Hubicka <jh@suse.cz>
11147
11148 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
11149 last_basic_block for size of bb->index indexed array.
11150 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
11151 compute_out, link_btr_uses, build_btr_def_use_webs,
11152 build_btr_def_use_webs, migrate_btr_defs): Likewise.
11153
14925fcd
JH
111542009-04-04 Jan Hubicka <jh@suse.cz>
11155
11156 * except.c (remove_eh_handler_and_replace): Break out from ...
11157 (remove_eh_handler): ... here.
11158 (bring_to_root): New function.
11159 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
11160 handled ones, bring others to root of tree.
11161
4e6d1743
JH
111622009-04-04 Jan Hubicka <jh@suse.cz>
11163
4cb735f7
JH
11164 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
11165 (all_phis_safe_to_merge): New function.
11166 (update_info): New structure.
11167 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
11168 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 11169
c6803d43
RG
111702009-04-04 Richard Guenther <rguenther@suse.de>
11171
11172 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
11173 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
11174 (append_vuse): Likewise.
11175
54f5943c
JJ
111762009-04-04 Jakub Jelinek <jakub@redhat.com>
11177
11178 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
11179 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
11180 instead of REG_UNSAVED for DW_CFA_undefined.
11181 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
11182 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
11183 outermost frame.
11184
aad2bccb
RE
111852009-04-04 Richard Earnshaw <rearnsha@arm.com>
11186
11187 PR target/39501
11188 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
11189 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
11190 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
11191
aa7069aa
RG
111922009-04-04 Richard Guenther <rguenther@suse.de>
11193
11194 PR tree-optimization/8781
11195 PR tree-optimization/37892
11196 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
11197 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
11198 (valueize_refs): Call it for *& valueizations.
11199 (shared_reference_ops_from_ref): Rename to ...
11200 (valueize_shared_reference_ops_from_ref): ... this and valueize.
11201 (shared_reference_ops_from_call): Rename to ...
11202 (valueize_shared_reference_ops_from_call): ... this and valueize.
11203 (vn_reference_lookup): Update.
11204 (visit_reference_op_call): Likewise.
11205 * tree-ssa-pre.c (phi_translate_1): Fold *&.
11206 (eliminate): Value-replace the call address in call statements.
11207
cd15ad3e
RG
112082009-04-04 Richard Guenther <rguenther@suse.de>
11209
11210 PR tree-optimization/39636
11211 * tree-ssa-forwprop.c
11212 (forward_propagate_addr_into_variable_array_index): Check for
11213 GIMPLE_ASSIGN before accessing the rhs code.
11214
462f3262
JM
112152009-04-03 Jason Merrill <jason@redhat.com>
11216
11217 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
11218
6adb807e
SE
112192009-04-03 Steve Ellcey <sje@cup.hp.com>
11220
11221 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
11222 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
11223 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
11224 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
11225 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
11226 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
11227 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
11228 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
11229 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
11230 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
11231 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
11232 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
11233 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
11234 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
11235 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
11236 Use fr_reg_or_fp01_operand instead of fr_register_operand
11237
11238 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
11239 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
11240 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
11241
174b3107
VM
112422009-04-03 Vladimir Makarov <vmakarov@redhat.com>
11243
b844e5d8
L
11244 PR rtl-optimization/39607
11245 PR rtl-optimization/39631
7a715bba
UB
11246
11247 Revert:
2ba9daa7 11248
174b3107
VM
11249 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11250 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11251 instead of DF_LR_OUT.
11252 * ira-lives.c (process_bb_node_lives): Ditto.
11253 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11254 instead of DF_LR_{OUT,IN}.
11255 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11256 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11257
535b544a
SB
112582009-04-03 Steven Bosscher <steven@gcc.gnu.org>
11259
11260 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
11261 (execute_lower_omp): Always run but take the short way out if -fopenmp
11262 is not given.
11263 (gate_lower_omp): Remove, forcing the pass manager to always run the
11264 pass and always set PROP_gimple_lomp.
11265 (pass_lower_omp): Remove gate function.
11266 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
11267 PROP_trees. Instead, require it.
11268 * ipa-cp.c (pass_ipa_cp): Likewise.
11269 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
11270 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
11271 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
11272 and PROP_gimple_leh.
11273
5006671f
RG
112742009-04-03 Richard Guenther <rguenther@suse.de>
11275
11276 PR middle-end/13146
11277 PR tree-optimization/23940
11278 PR tree-optimization/33237
11279 PR middle-end/33974
11280 PR middle-end/34093
11281 PR tree-optimization/36201
11282 PR tree-optimization/36230
11283 PR tree-optimization/38049
11284 PR tree-optimization/38207
11285 PR tree-optimization/38230
11286 PR tree-optimization/38301
11287 PR tree-optimization/38585
11288 PR middle-end/38895
11289 PR tree-optimization/38985
11290 PR tree-optimization/39299
11291 * tree-ssa-structalias.h: Remove.
11292 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
11293 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
11294 (struct vuse_element_d): Remove.
11295 (struct vuse_vec_d): Likewise.
11296 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
11297 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
11298 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
11299 VUSE_ELEMENT_VAR): Likewise.
11300 (struct voptype_d): Likewise.
11301 (NUM_VOP_FREE_BUCKETS): Likewise.
11302 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
11303 (struct stmt_operands_d): Remove.
11304 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
11305 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
11306 VDEF_NUM, VDEF_VECT): Likewise.
11307 (copy_virtual_operands): Remove.
11308 (operand_build_cmp): Likewise.
11309 (create_ssa_artificial_load_stmt): Likewise.
11310 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
11311 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
11312 vuse_index and mayuse_index members. Pack and move done and iter_type
11313 members to the front.
11314 (SSA_OP_VMAYUSE): Remove.
11315 (SSA_OP_VIRTUAL_USES): Adjust.
11316 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
11317 (unlink_stmt_vdef): Declare.
11318 (add_to_addressable_set): Remove.
11319 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
11320 (vrp_visit_stmt): Likewise.
11321 * doc/tree-ssa.texi (Alias analysis): Update.
11322 * doc/invoke.texi (max-aliased-vops): Remove docs.
11323 (avg-aliased-vops): Likewise.
11324 * tree-into-ssa.c (syms_to_rename): Remove.
11325 (need_to_update_vops_p): Likewise.
11326 (need_to_initialize_update_ssa_p): Rename to ...
11327 (update_ssa_initialized_fn): ... this. Track function we are
11328 initialized for.
11329 (symbol_marked_for_renaming): Simplify.
11330 (add_new_name_mapping): Do not set need_to_update_vops_p.
11331 (dump_currdefs): Use SYMS_TO_RENAME.
11332 (rewrite_update_stmt): Always walk all uses/defs.
11333 (dump_update_ssa): Adjust.
11334 (init_update_ssa): Take function argument. Track what we are
11335 initialized for.
11336 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
11337 (create_new_def_for): Initialize for cfun, assert we are initialized
11338 for cfun.
11339 (mark_sym_for_renaming): Simplify.
11340 (mark_set_for_renaming): Do not initialize update-ssa.
11341 (need_ssa_update_p): Simplify. Take function argument.
11342 (name_mappings_registered_p): Assert we ask for the correct function.
11343 (name_registered_for_update_p): Likewise.
11344 (ssa_names_to_replace): Likewise.
11345 (release_ssa_name_after_update_ssa): Likewise.
11346 (update_ssa): Likewise. Use SYMS_TO_RENAME.
11347 (dump_decl_set): Do not print a newline.
11348 (debug_decl_set): Do it here.
11349 (dump_update_ssa): And here.
11350 * tree-ssa-loop-im.c (move_computations): Adjust.
11351 (movement_possibility): Likewise.
11352 (determine_max_movement): Likewise.
11353 (gather_mem_refs_stmt): Likewise.
11354 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
11355 or NAME_MEMORY_TAG.
11356 * tree-complex.c (update_all_vops): Remove.
11357 (expand_complex_move): Adjust.
11358 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
11359 Simplify test for memory referencing statement. Exclude
11360 non-invariant ADDR_EXPRs.
11361 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
11362 * tree-loop-distribution.c (generate_memset_zero): Adjust.
11363 (rdg_flag_uses): Likewise.
11364 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
11365 related code.
11366 (tree_optimize_tail_calls_1): Also split the
11367 edge from the entry block if we have degenerate PHI nodes in
11368 the first basic block.
11369 * tree.c (init_ttree): Remove memory-tag related code.
11370 (tree_code_size): Likewise.
11371 (tree_node_structure): Likewise.
11372 (build7_stat): Re-write to be build6_stat.
11373 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
11374 (SSA_VAR_P): Adjust.
11375 (struct tree_memory_tag): Remove.
11376 (struct tree_memory_partition_tag): Likewise.
11377 (union tree_node): Adjust.
11378 (build7): Re-write to be build6.
11379 * tree-pass.h (pass_reset_cc_flags): Remove.
11380 (TODO_update_address_taken): New flag.
11381 (pass_simple_dse): Remove.
11382 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
11383 * params.h (MAX_ALIASED_VOPS): Remove.
11384 (AVG_ALIASED_VOPS): Likewise.
11385 * omp-low.c (expand_omp_taskreg): Update SSA form.
11386 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
11387 aliases the lhs in a copy stmt.
11388 * tree-ssa-dse.c (struct address_walk_data): Remove.
11389 (memory_ssa_name_same): Likewise.
11390 (memory_address_same): Likewise.
11391 (get_kill_of_stmt_lhs): Likewise.
11392 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
11393 unused stores. Look through PHI nodes into post-dominated regions.
11394 (dse_optimize_stmt): Simplify. Properly remove stores.
11395 (tree_ssa_dse): Compute dominators.
11396 (execute_simple_dse): Remove.
11397 (pass_simple_dse): Likewise.
11398 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
11399 gimple_loaded_syms and gimple_stored_syms computation.
11400 * toplev.c (dump_memory_report): Dump alias and pta stats.
11401 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
11402 (vn_reference_eq): Likewise.
11403 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
11404 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
11405 valueize_vuses): Remove.
11406 (get_def_ref_stmt_vuses): Simplify. Rename to ...
11407 (get_def_ref_stmt_vuse): ... this.
11408 (vn_reference_lookup_2): New function.
11409 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
11410 walking equivalent vuses. Simplify.
11411 (vn_reference_lookup): Likewise.
11412 (vn_reference_insert): Likewise.
11413 (vn_reference_insert_pieces): Likewise.
11414 (visit_reference_op_call): Simplify.
11415 (visit_reference_op_load): Likewise.
11416 (visit_reference_op_store): Likewise.
11417 (init_scc_vn): Remove shared_lookup_vuses initialization.
11418 (free_scc_vn): Remove shared_lookup_vuses freeing.
11419 (sort_vuses, sort_vuses_heap): Remove.
11420 (get_ref_from_reference_ops): Export.
11421 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
11422 vector with single vuse pointer.
11423 (vn_reference_lookup_pieces, vn_reference_lookup,
11424 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
11425 (shared_vuses_from_stmt): Remove.
11426 (get_ref_from_reference_ops): Declare.
11427 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
11428 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
11429 memory-tag related code.
11430 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
11431 (likely_value): Add comment, skip static-chain of call statements.
11432 (surely_varying_stmt_p): Adjust.
11433 (gimplify_and_update_call_from_tree): Likewise.
11434 (execute_fold_all_builtins): Do not rebuild alias info.
11435 (gimplify_and_update_call_from_tree): Properly update VOPs.
11436 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
11437 (copy_ref_info): Remove memory-tag related code.
11438 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
11439 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
11440 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
11441 computation.
11442 * tree-ssa-dom.c (gimple_p): Remove typedef.
11443 (eliminate_redundant_computations): Adjust.
11444 (record_equivalences_from_stmt): Likewise.
11445 (avail_expr_hash): Likewise.
11446 (avail_expr_eq): Likewise.
7a715bba 11447 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
11448 (stmt_makes_single_load): Likewise.
11449 (stmt_makes_single_store): Likewise.
11450 * tree-ssa-alias.c: Rewrite completely.
11451 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
11452 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
11453 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
11454 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
11455 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
11456 Remove public functions.
11457 (pass_reset_cc_flags): Remove.
11458 (pass_build_alias): Move ...
11459 * tree-ssa-structalias.c (pass_build_alias): ... here.
11460 * tree-ssa-alias.c (may_be_aliased): Move ...
11461 * tree-flow-inline.h (may_be_aliased): ... here.
11462 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
11463 count_uses_and_derefs): Move ...
11464 * gimple.c: ... here.
11465 * gimple.h (count_uses_and_derefs): Declare.
11466 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
11467 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
11468 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
11469 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
11470 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
11471 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
11472 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
11473 New functions.
11474 * tree-dfa.c (refs_may_alias_p): Move ...
11475 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
11476 * tree-ssa-alias.h: New file.
11477 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
11478 (statement_sink_location): Likewise.
11479 * opts.c (decode_options): Do not adjust max-aliased-vops or
11480 avg-aliased-vops values.
11481 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
11482 (TV_CALL_CLOBBER): Likewise.
11483 (TV_FLOW_SENSITIVE): Likewise.
11484 (TV_FLOW_INSENSITIVE): Likewise.
11485 (TV_MEMORY_PARTITIONING): Likewise.
11486 (TV_ALIAS_STMT_WALK): New timevar.
11487 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
11488 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
11489 (get_address_description): Remove memory-tag related code.
11490 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
11491 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
11492 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
11493 and immediate uses in statements. Document.
11494 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
11495 (dump_symbols): Remove.
11496 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
11497 * alias.c (get_deref_alias_set): New function split out from ...
11498 (get_alias_set): ... here.
11499 * alias.h (get_deref_alias_set): Declare.
11500 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
11501 type parameter. Remove restrict pointer handling. Create a
11502 ref-all pointer in case type-based alias sets do not conflict.
11503 (vect_analyze_data_refs): Remove SMT related code.
11504 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
11505 (vectorizable_load): Likewise.
11506 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
11507 (DR_SYMBOL_TAG, DR_VOPS): Remove.
11508 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
11509 Ignore vops and SMTs.
11510 (dr_analyze_alias): Likewise..
11511 (free_data_ref): Likewise.
11512 (create_data_ref): Likewise.
11513 (analyze_all_data_dependences): Likewise.
11514 (get_references_in_stmt): Adjust.
11515 * tree-flow-inline.h (gimple_aliases_computed_p,
11516 gimple_addressable_vars, gimple_call_clobbered_vars,
11517 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
11518 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
11519 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
11520 gimple_mem_ref_stats): Remove.
11521 (gimple_vop): New function.
11522 (op_iter_next_use): Remove vuses and mayuses cases.
11523 (op_iter_next_def): Remove vdefs case.
11524 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
11525 (clear_and_done_ssa_iter): Do not set removed fields.
11526 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
11527 Assert we are not iterating over vuses or vdefs if not also
11528 iterating over uses or defs.
11529 (op_iter_init_use): Likewise.
11530 (op_iter_init_def): Likewise.
11531 (op_iter_next_vdef): Remove.
11532 (op_iter_next_mustdef): Likewise.
11533 (op_iter_init_vdef): Likewise.
11534 (compare_ssa_operands_equal): Likewise.
11535 (link_use_stmts_after): Handle vuse operand.
11536 (is_call_used): Use is_call_clobbered.
11537 (is_call_clobbered): Global variables are always call clobbered,
11538 query the call-clobbers bitmap.
11539 (mark_call_clobbered): Ignore global variables.
11540 (clear_call_clobbered): Likewise.
11541 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
11542 virtual operands sanity check.
11543 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
11544 Remove.
11545 (TARGET_MEM_REF): Remove TMR_TAG operand.
11546 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
11547 Remove call-clobber related code.
11548 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
11549 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
11550 partitions or escape reason.
11551 (get_single_def_stmt, get_single_def_stmt_from_phi,
11552 get_single_def_stmt_with_phi): Remove.
11553 (dump_referenced_vars): Tidy.
11554 (get_ref_base_and_extent): Allow bare decls.
11555 (collect_dfa_stats): Adjust.
11556 * graphite.c (rename_variables_in_stmt): Adjust.
11557 (graphite_copy_stmts_from_block): Likewise.
11558 (translate_clast): Likewise.
11559 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
11560 (EXPR_DIES): New.
11561 (translate_vuse_through_block): Use the oracle.
11562 (phi_translate_1): Adjust.
11563 (value_dies_in_block_x): Use the oracle. Cache the outcome
11564 in EXPR_DIES.
11565 (valid_in_sets): Check if the VUSE for
11566 a REFERENCE is available.
11567 (eliminate): Do not remove stmts during elimination,
11568 instead queue and remove them afterwards.
11569 (do_pre): Do not rebuild alias info.
11570 (pass_pre): Run TODO_rebuild_alias before PRE.
11571 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
11572 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
11573 (mark_all_v_defs_stmt): Remove.
11574 (mark_all_v_defs_seq): Adjust.
11575 (sra_replace): Likewise.
11576 (scalarize_use): Likewise.
11577 (scalarize_copy): Likewise.
11578 (scalarize_init): Likewise.
11579 (scalarize_ldst): Likewise.
11580 (todoflags): Remove.
11581 (tree_sra): Do not rebuild alias info.
11582 (tree_sra_early): Adjust.
11583 (pass_sra): Run TODO_update_address_taken before SRA.
11584 * tree-predcom.c (set_alias_info): Remove.
11585 (prepare_initializers_chain): Do not call it.
11586 (mark_virtual_ops_for_renaming): Adjust.
11587 (mark_virtual_ops_for_renaming_list): Remove.
11588 (initialize_root_vars): Adjust.
11589 (initialize_root_vars_lm): Likewise.
11590 (prepare_initializers_chain): Likewise.
11591 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
11592 (may_propagate_copy_into_stmt): Likewise.
11593 (merge_alias_info): Do nothing for now.
11594 (propagate_tree_value_into_stmt): Adjust.
11595 (stmt_may_generate_copy): Likewise.
11596 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
11597 not mark symbols for renaming.
11598 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
11599 with the same statement, make sure to update the new pointed-to one.
11600 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
11601 call statements, do not mark symbols for renaming.
11602 (mark_operand_necessary): Dump something.
11603 (ref_may_be_aliased): New function.
11604 (mark_aliased_reaching_defs_necessary_1): New helper function.
11605 (mark_aliased_reaching_defs_necessary): Likewise.
11606 (mark_all_reaching_defs_necessary_1): Likewise.
11607 (mark_all_reaching_defs_necessary): Likewise.
11608 (propagate_necessity): Do not process virtual PHIs. For
11609 non-aliased loads mark all reaching definitions as necessary.
11610 For aliased loads and stores mark the immediate dominating
11611 aliased clobbers as necessary.
11612 (visited): New global static.
11613 (perform_tree_ssa_dce): Free visited bitmap after propagating
11614 necessity.
11615 (remove_dead_phis): Perform simple dead virtual PHI removal.
11616 (remove_dead_stmt): Properly unlink virtual operands when
11617 removing stores.
11618 (eliminate_unnecessary_stmts): Schedule PHI removal after
11619 stmt removal.
11620 * tree-ssa-ter.c (is_replaceable_p): Adjust.
11621 (process_replaceable): Likewise.
11622 (find_replaceable_in_bb): Likewise.
11623 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
11624 based on the single gimple vop.
11625 (verify_flow_insensitive_alias_info): Remove.
11626 (verify_flow_sensitive_alias_info): Likewise.
11627 (verify_call_clobbering): Likewise.
11628 (verify_memory_partitions): Likewise.
11629 (verify_alias_info): Likewise.
11630 (verify_ssa): Adjust..
11631 (execute_update_addresses_taken): Export. Update SSA
11632 manually. Optimize only when optimizing. Use a local bitmap.
11633 (pass_update_address_taken): Remove TODO_update_ssa, add
11634 TODO_dump_func.
11635 (pass_update_address_taken): Just use TODO_update_address_taken.
11636 (init_tree_ssa): Do not initialize addressable_vars.
11637 (verify_ssa): Verify new VUSE / VDEF properties.
11638 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
11639 Do not call verify_alias_info.
11640 (delete_tree_ssa): Clear the VUSE, VDEF operands.
11641 Do not free the loaded and stored syms bitmaps. Reset the escaped
11642 and callused solutions. Do not free addressable_vars.
11643 Remove memory-tag related code.
11644 (warn_uninitialized_var): Aliases are always available.
11645 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
11646 * lambda-code.c (can_put_in_inner_loop): Adjust.
11647 (can_put_after_inner_loop): Likewise.
11648 (perfect_nestify): Likewise.
11649 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
11650 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
11651 (vectorizable_conversion): Do not mark symbols for renaming.
11652 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
11653 (expand_call_inline): Unlink the calls virtual operands before
11654 replacing it.
11655 (tree_function_versioning): Do not call update_ssa if we are not
11656 updating clones. Simplify.
11657 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
11658 (propagate_with_phi): Likewise..
11659 * tree-outof-ssa.c (create_temp): Remove memory tag and call
11660 clobber code. Assert we are not aliased or global.
11661 * tree-flow.h: Include tree-ssa-alias.h
11662 (enum escape_type): Remove.
11663 (struct mem_sym_stats_d): Likewise.
11664 (struct mem_ref_stats_d): Likewise.
11665 (struct gimple_df): Add vop member. Remove global_var,
11666 call_clobbered_vars, call_used_vars, addressable_vars,
11667 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
11668 escaped and callused members.
11669 (struct ptr_info_def): Remove all members, add points-to solution
11670 member pt.
11671 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
11672 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
11673 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
11674 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
11675 (tree-ssa-alias.o): Likewise.
11676 (toplev.o): Add tree-ssa-alias.h
11677 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
11678 * gimple.c (gimple_set_bb): Fix off-by-one error.
11679 (is_gimple_reg): Do not handle memory tags.
11680 (gimple_copy): Also copy virtual operands.
11681 Delay updating the statement. Do not reset loaded and stored syms.
11682 (gimple_set_stored_syms): Remove.
11683 (gimple_set_loaded_syms): Likewise.
11684 (gimple_call_copy_skip_args): Copy the virtual operands
11685 and mark the new statement modified.
11686 * tree-ssa-structalias.c (may_alias_p): Remove.
11687 (set_uids_in_ptset): Take the alias set to prune with as
11688 parameter. Fold in the alias test of may_alias_p.
11689 (compute_points_to_sets): Compute whether a ptr is dereferenced
11690 in a local sbitmap.
11691 (process_constraint): Deal with &ANYTHING on the lhs, reject all
11692 other ADDRESSOF constraints on the lhs.
11693 (get_constraint_for_component_ref): Assert that we don't get
11694 ADDRESSOF constraints from the base of the reference.
11695 Properly generate UNKNOWN_OFFSET for DEREF if needed.
11696 (struct variable_info): Remove collapsed_to member.
11697 (get_varinfo_fc): Remove.
11698 (new_var_info): Do not set collapsed_to.
11699 (dump_constraint): Do not follow cycles.
11700 (dump_constraint_graph): Likewise.
11701 (build_pred_graph): Likewise.
11702 (build_succ_graph): Likewise.
11703 (rewrite_constraints): Likewise.
11704 (do_simple_structure_copy): Remove.
11705 (do_rhs_deref_structure_copy): Remove.
11706 (do_lhs_deref_structure_copy): Remove.
11707 (collapse_rest_of_var): Remove.
11708 (do_structure_copy): Re-implement.
11709 (pta_stats): New global variable.
11710 (dump_pta_stats): New function.
11711 (struct constraint_expr): Make offset signed.
11712 (UNKNOWN_OFFSET): Define special value.
11713 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
11714 (solution_set_expand): New helper function split out from ...
11715 (do_sd_constraint): ... here.
11716 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
11717 (do_ds_constraint): Likewise.
11718 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
11719 and CALLUSED = *CALLUSED.
11720 (set_union_with_increment): Make inc argument signed.
11721 (type_safe): Remove.
11722 (get_constraint_for_ptr_offset): Handle unknown and negative
11723 constant offsets.
11724 (first_vi_for_offset): Handle offsets before start. Bail
11725 out early for offsets beyond the variable extent.
11726 (first_or_preceding_vi_for_offset): New function.
11727 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
11728 Together with ESCAPED = *ESCAPED this properly computes reachability.
11729 (find_what_var_points_to): New function.
11730 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
11731 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
11732 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
11733 pt_solutions_intersect): New functions.
11734 (compute_call_used_vars): Remove.
11735 (compute_may_aliases): New main entry into PTA computation.
11736 * gimple.h (gimple_p): New typedef.
11737 (struct gimple_statement_base): Remove references_memory_p.
11738 (struct gimple_statement_with_memory_ops_base): Remove
11739 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
11740 members.
11741 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
11742 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
11743 gimple_set_references_memory): Remove.
11744 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
11745 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
11746 New functions.
11747 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
11748 (verify_expr): Allow RESULT_DECL.
11749 (gimple_duplicate_bb): Do not copy virtual operands.
11750 (gimple_duplicate_sese_region): Adjust.
11751 (gimple_duplicate_sese_tail): Likewise.
11752 (mark_virtual_ops_in_region): Remove.
11753 (move_sese_region_to_fn): Do not call it.
11754 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
11755 and pass_simple_dse.
11756 (execute_function_todo): Handle TODO_update_address_taken,
11757 call execute_update_addresses_taken for TODO_rebuild_alias.
11758 (execute_todo): Adjust.
11759 (execute_one_pass): Init dump files early.
11760 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
11761 call-clobbered.
11762 (create_general_new_stmt): Clear vops.
11763 * tree-ssa-reassoc.c (get_rank): Adjust.
11764 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
11765 symbols for renaming.
11766 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
11767 (PARAM_AVG_ALIASED_VOPS): Likewise.
11768 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
11769 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 11770 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
11771 (operand_build_cmp, copy_virtual_operands,
11772 create_ssa_artificial_load_stmt, add_to_addressable_set,
11773 gimple_add_to_addresses_taken): Remove public functions.
11774 (unlink_stmt_vdef): New function.
11775
457d1d00
AM
117762009-04-03 Alan Modra <amodra@bigpond.net.au>
11777
11778 * config.gcc (powerpc-*-linux*): Merge variants.
11779
e19da24c 117802009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 11781 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
11782
11783 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
11784 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
11785 cop0_sp_offset.
11786 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
11787 keep_interrupts_masked_p, use_debug_exception_return_p.
11788 (mips_attribute_table): Add interrupt, use_shadow_register_set,
11789 keep_interrupts_masked, use_debug_exception_return.
11790 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
11791 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
11792 New functions.
11793 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
11794 (mips_print_operand): Process COP0 registers to print $0 .. $31
11795 correctly for GAS to process.
11796 (mips_interrupt_extra_call_saved_reg_p): New function.
11797 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
11798 extra registers.
11799 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
11800 (mips_compute_frame_info): Add supports for interrupt context that
11801 includes doubleword accumulators and COP0 registers.
11802 (mips_for_each_saved_acc): New function.
11803 (mips_for_each_saved_gpr_and_fpr): Change the function name from
11804 mips_for_each_saved_reg.
11805 (mips_save_reg): Save accumulators.
11806 (mips_kernel_reg_p): A new for_each_rtx callback.
11807 (mips_expand_prologue): Support interrupt handlers.
11808 (mips_restore_reg): Restore accumulators.
11809 (mips_expand_epilogue): Support interrupt handlers.
11810 (mips_can_use_return_insn): Return false for interrupt handlers.
11811 (mips_epilogue_uses): New function.
11812 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
11813 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
11814 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
11815 cop0_move): New instructions.
11816 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
11817 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
11818 defines.
11819 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
11820 New defines.
11821 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
11822 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
11823 interrupt handlers, we use K0 as the temporary register.
11824 (EPILOGUE_USES): Change to a function call.
11825 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
11826 handlers, we use K0 as the temporary register.
2ba9daa7 11827
e19da24c
CF
11828 * doc/extend.texi (Function Attributes): Document interrupt,
11829 use_shadow_register_set, keep_interrupts_masked,
11830 use_debug_exception_return for MIPS attributes.
11831
aa1ca044
AM
118322009-04-03 Alan Modra <amodra@bigpond.net.au>
11833
11834 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
11835 Remove a number of t-files from tmake_file.
11836 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
11837 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
11838 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11839 target_prototype, not TARGET_PROTOTYPE.
11840 (LINK_OS_GNU_SPEC): Define.
11841 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
11842 and darwin-ldoubdle.c.
11843
14fdc613
MM
118442009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
11845
11846 PR driver/39293
11847 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
11848 (cpp_options): Ditto.
11849 (default_compilers): Ditto.
11850 (display_help): Ditto.
11851 (process_command): Ditto.
11852 (do_spec_1): Ditto.
11853 (set_input): Use lbasename instead of duplicate code.
11854 (save_temps_prefix): New static for -save-temps=obj.
11855 (save_temps_length): Ditto.
2ba9daa7 11856
14fdc613
MM
11857 * doc/invoke.texi (-save-temps=obj): Document new variant to
11858 -save-temps switch.
11859
d3aa398e
JL
118602009-04-02 Jeff Law <law@redhat.com>
11861
11862 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
11863 variable.
11864
83f0ccb8
L
118652009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11866
11867 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
11868 * configure: Regenerated.
11869
dcb6e951
RAE
118702009-04-02 Rafael Avila de Espindola <espindola@google.com>
11871
11872 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
11873 share the argument list.
11874
d85478c2
RAE
118752009-04-02 Rafael Avila de Espindola <espindola@google.com>
11876
11877 Merge
11878
11879 2009-02-12 Diego Novillo <dnovillo@google.com>
11880
83f0ccb8
L
11881 * varpool.c (debug_varpool): New.
11882 * cgraph.h (debug_varpool): Declare.
d85478c2 11883
34f42a49
JH
118842009-04-02 Jan Hubicka <jh@suse.cz>
11885
11886 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
11887 pass.
11888
a4747b4a
L
118892009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11890
11891 * config/i386/i386.c (ix86_abi): Move initialization to ...
11892 (override_options): Here.
11893
63a9de54
CB
118942009-04-02 Christian Bruel <christian.bruel@st.com>
11895
11896 * config/sh/sh.c (sh_dwarf_register_span): New function.
11897 (TARGET_DWARF_REGISTER_SPAN): Define.
11898 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 11899
2f0fa28e
IR
119002009-04-02 Ira Rosen <irar@il.ibm.com>
11901
11902 PR tree-optimization/39595
2ba9daa7 11903 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
11904 interleaved loads group is not greater than the SLP group size.
11905
bbf7ce11
RAE
119062009-04-02 Rafael Avila de Espindola <espindola@google.com>
11907
11908 * builtins.c (is_builtin_name): New.
11909 (called_as_built_in): Use is_builtin_name.
11910 * tree.h (is_builtin_name): New.
11911 * varasm.c (incorporeal_function_p): Use is_builtin_name
11912
47e4dfcf
AS
119132009-04-02 Andrew Stubbs <ams@codesourcery.com>
11914
11915 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
11916
d0940d56
DS
119172009-04-02 Dodji Seketeli <dodji@redhat.com>
11918
11919 PR c++/26693
532bfb0a 11920 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
11921 * c-common.c (set_underlying_type): ... here.
11922 Also, make sure the function properly sets TYPE_STUB_DECL() on
11923 the newly created typedef variant type.
11924 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
11925 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
11926 points.
d0940d56 11927
bf1cbdc6
RG
119282009-04-02 Richard Guenther <rguenther@suse.de>
11929
11930 PR tree-optimization/37221
11931 * tree-flow.h (degenerate_phi_result): Declare.
11932 * tree-ssa-dom.c (degenerate_phi_result): Export.
11933 * tree-scalar-evolution.c (analyze_initial_condition): If
11934 the initial condition is defined by a degenerate PHI node
11935 use the degenerate value.
11936
87cfb32c
EB
119372009-04-01 Eric Botcazou <ebotcazou@adacore.com>
11938
11939 PR rtl-optimization/39588
11940 * combine.c (merge_outer_ops): Do not set the constant when this
11941 is not necessary.
11942 (simplify_shift_const_1): Do not modify it either in this case.
11943
bbb6eae8
SB
119442009-04-01 Steven Bosscher <steven@gcc.gnu.org>
11945
11946 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
11947 tuning is deprecated if -mtune value is set to an Itanium1 variant.
11948
839a3b8a
JJ
119492009-04-01 Janis Johnson <janis187@us.ibm.com>
11950
11951 PR c/29027
11952 * c-lex.c (interpret_float): Default (no suffix) is double.
11953
667e8acb
XDL
119542009-04-1 Xinliang David Li <davidxl@google.com>
11955
11956 * config/i386/i386.c (legitimate_constant_p): Recognize
11957 all one vector constant.
11958
60839f5d 119592009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11960
60839f5d 11961 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
11962 Change #include order to silence two warnings.
11963
60839f5d 119642009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11965
60839f5d 11966 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
11967 (ASM_SPEC): Pass -k to the assembler for PIC code.
11968
60839f5d 119692009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11970
60839f5d
EB
11971 * config.gcc: Add vax-*-linux* to the switch.
11972 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
11973 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
11974
60839f5d 119752009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11976
60839f5d 11977 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 11978 Use predicate macros instead of GET_CODE() == foo.
60839f5d 11979 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
11980 ashlsi3, rotrsi3, <unnamed>): Likewise.
11981
60839f5d 119822009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11983
60839f5d 11984 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 11985 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
11986 * config/vax/constraints.md: Likewise.
11987 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11988 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
11989 * config/vax/predicates.md: Likewise.
11990 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 11991 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
11992 * config/vax/vax.h: Likewise.
11993 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 11994
60839f5d 119952009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11996
60839f5d 11997 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
11998 (indirectable_address_p, adjacent_operands_p): Add spaces around
11999 braces.
60839f5d 12000 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 12001
60839f5d 120022009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 12003
60839f5d 12004 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
12005 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
12006 index_term_p, reg_plus_index_p, legitimate_address_p,
12007 vax_mode_dependent_address_p): Update comments to match functions
12008 modified by the recent int->bool conversion.
12009
60839f5d 120102009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 12011
60839f5d
EB
12012 * config/vax/builtins.md: Update copyright message.
12013 * config/vax/constraints.md: Likewise.
12014 * config/vax/netbsd-elf.h: Likewise.
12015 * config/vax/predicates.md: Likewise.
12016 * config/vax/vax-protos.h: Likewise.
12017 * config/vax/vax.c: Likewise.
12018 * config/vax/vax.h: Likewise.
12019 * config/vax/vax.md: Likewise.
12020 * config/vax/vax.opt: Likewise.
c4e75102 12021
60839f5d 120222009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 12023
60839f5d 12024 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 12025 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
12026 * config/vax/constraints.md (B, R): Likewise.
12027 * config/vax/predicates.md (external_memory_operand,
c4e75102 12028 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
12029 * config/vax/vax.c (vax_output_int_add): Likewise.
12030 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
12031 untyped_call): Likewise.
12032
60839f5d 120332009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 12034
7a715bba
UB
12035 * config/vax/predicates.md: New file.
12036 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
12037 external_const_operand, nonsymbolic_operand, external_memory_operand,
12038 indirect_memory_operand, indexed_memory_operand,
12039 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
12040 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
12041 predicate.
7a715bba
UB
12042 * config/vax/constraints.md: New file.
12043 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
12044 New constraint.
12045 * config/vax/builtins.md: New file.
12046 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
12047 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
12048 jbbccisi): Define.
c4e75102
MT
12049 * config/vax/vax.opt (mqmath): Add option.
12050 * config/vax/vax.md (isfx): Extend with DI.
12051 (VAXintQH, VAXintQHSD): Define.
12052 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
12053 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
12054 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
12055 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
12056 (movdi): Update constraints and use vax_output_int_move().
12057 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
12058 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
12059 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
12060 nonlocal_goto): New.
12061 (mov<mode>): Extend accepted operand types.
12062 (subdi3_old): Rename from subdi3, change update constraints and use
12063 a new implementation.
60839f5d 12064 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
12065 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
12066 MOVE_RATIO, CLEAR_RATIO): Define.
12067 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
12068 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
12069 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 12070 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
12071 (split_quadword_operands): Make static and really allow variable
12072 splitting.
12073 (print_operand_address): Update for PIC generation.
12074 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
12075 indexable_address_p, fixup_mathdi_operand,
12076 vax_expand_addsub_di_operands, adjacent_operands_p): New.
12077 (vax_float_literal, legitimate_constant_p,
12078 indirectable_constant_address_p, index_term_p,
12079 reg_plus_index_p): Return bool instead of int.
12080 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
12081 where needed.
12082 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
12083 generation.
12084 (vax_output_conditional_branch): Indent.
12085 (legitimate_constant_address_p, indirectable_constant_address_p,
12086 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
12087 vax_mode_dependent_address_p): Return bool instead of int, update for
12088 PIC generation.
12089 * config/vax/vax-protos.h (legitimate_constant_address_p,
12090 legitimate_constant_p, legitimate_address_p,
12091 vax_mode_dependent_address_p): Change declaration to bool.
12092 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
12093 vax_expand_addsub_di_operands, vax_output_int_subtract,
12094 vax_output_movmemsi): Declare.
12095 (split_quadword_operands, vax_float_literal): Delete declaration.
12096 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
12097 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
12098 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
12099 ASM_OUTPUT_DWARF_PCREL): Define.
12100 (ASM_SPEC): Change definition to allow PIC generation.
12101
9332c6eb
L
121022009-04-01 Steve Ellcey <sje@cup.hp.com>
12103
12104 * doc/sourcebuild.texi: Update front-end requirements.
12105
d93e052c
JJ
121062009-04-01 Jakub Jelinek <jakub@redhat.com>
12107
12108 PR target/39226
12109 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
12110 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
12111 (booldi3_internal3): Use boolean_or_operator instead of
12112 boolean_operator.
12113
6ccb2a4a
JM
121142009-04-01 Joseph Myers <joseph@codesourcery.com>
12115
12116 PR c/39605
12117 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
12118 declarator whose size is not an integer constant expression but
12119 folds to an integer constant, then treat it as a constant
12120 subsequently.
12121
299b87f8
RG
121222009-04-01 Richard Guenther <rguenther@suse.de>
12123
12124 * fold-const.c (fold_plusminus_mult_expr): Do not fold
12125 i * 4 + 2 to (i * 2 + 1) * 2.
12126
b85eb797
JJ
121272009-04-01 Jakub Jelinek <jakub@redhat.com>
12128
12129 PR c/37772
12130 * c-parser.c (c_parser_asm_statement): Skip until close paren and
12131 return if c_parser_asm_string_literal returned NULL.
12132
235e1fe8
NC
121332009-04-01 Nick Clifton <nickc@redhat.com>
12134
12135 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
12136 already defined.
12137 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
12138 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
12139 other typedefs to avoid conflicts with libgcc2.c. Define labels
12140 to gain 16-bit bit-manipulation functions from libgcc2.c and then
12141 include it.
12142 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
12143 to gain 16-bit trapping arithmetic functions from libgcc2.c and
12144 then include it.
12145
d6868399
RAE
121462009-04-01 Rafael Avila de Espindola <espindola@google.com>
12147
7a715bba
UB
12148 * varasm.c (default_function_rodata_section): Declare DOT as
12149 const char*.
d6868399 12150
73d21f56 121512009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 12152 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
12153
12154 PR/39492
12155 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
12156 Make object_name unique for each process.
12157
03742a9b
JJ
121582009-04-01 Jakub Jelinek <jakub@redhat.com>
12159
12160 PR other/39591
12161 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
12162 addressable variables in the parallel that could go out of scope while
12163 running queued tasks.
12164
4223ff5f
AS
121652009-04-01 Anatoly Sokolov <aesok@post.ru>
12166
12167 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
12168 (CASE_VALUES_THRESHOLD): Redefine.
12169 * config/avr/avr.c (avr_override_options): Remove initialization of
12170 avr_case_values_threshold variable.
12171 (avr_case_values_threshold): Remove variable. Add new function.
12172 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
12173 * config/avr/avr.opt (mno-tablejump): Remove option.
12174 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
12175
e893f6f3
DD
121762009-04-01 DJ Delorie <dj@redhat.com>
12177
12178 * varasm.c (default_function_rodata_section): Don't assume
12179 anything about where the first '.' in the section name is.
12180
b246d100
AM
121812009-04-01 Alan Modra <amodra@bigpond.net.au>
12182
12183 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
12184 rs6000_emit_stack_tie.
12185
d3e37a9e
ILT
121862009-03-31 Ian Lance Taylor <iant@google.com>
12187
12188 * tree-eh.c (tree_remove_unreachable_handlers): Compare
12189 gimple_code with GIMPLE_RESX, not RESX.
12190
c1b61fca
JM
121912009-03-31 Joseph Myers <joseph@codesourcery.com>
12192
12193 * c-common.c (c_get_ident): New.
7a715bba 12194 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 12195
c2d2ad48
BE
121962009-04-01 Ben Elliston <bje@au.ibm.com>
12197
12198 * config/rs6000/sysv4.opt (msdata): Improve option description.
12199
13d1a6e7
SE
122002009-03-31 Steve Ellcey <sje@cup.hp.com>
12201
12202 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
12203 (divdf3_internal_lat): Remove.
12204 (divxf3_internal_lat): Remove.
12205 (divxf3_internal_thr): Remove.
12206 (divxf): Use divxf3_internal.
12207 * config/ia64/div.md (divsf3_internal_lat): New.
12208 (divdf3_internal_lat): New.
12209 (divxf3_internal): New.
12210
207bf79d
JM
122112009-03-31 Joseph Myers <joseph@codesourcery.com>
12212
12213 PR c/448
12214 * Makefile.in (USE_GCC_STDINT): Define.
12215 (stmp-int-hdrs): Install stdint.h if applicable.
12216 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
12217 if known.
12218 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
12219 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
12220 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12221 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12222 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12223 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12224 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12225 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12226 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12227 (c_common_nodes_and_builtins): Initialize
12228 underlying_wchar_type_node. Do not initialize
12229 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
12230 nodes for new types.
12231 (c_stddef_cpp_builtins): Define macros for new types.
12232 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
12233 Remove.
12234 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
12235 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
12236 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
12237 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
12238 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
12239 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
12240 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
12241 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
12242 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
12243 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
12244 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
12245 int16_type_node, int32_type_node, int64_type_node,
12246 uint8_type_node, uint16_type_node, c_uint32_type_node,
12247 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
12248 int_least32_type_node, int_least64_type_node,
12249 uint_least8_type_node, uint_least16_type_node,
12250 uint_least32_type_node, uint_least64_type_node,
12251 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
12252 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
12253 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
12254 uintptr_type_node): Define.
12255 * c-cppbuiltin.c (builtin_define_constants,
12256 builtin_define_type_minmax): New.
12257 (builtin_define_stdint_macros): Define more macros.
12258 (c_cpp_builtins): Define more limit macros.
12259 (type_suffix): New.
12260 (builtin_define_type_max): Define in terms of
12261 builtin_define_type_minmax. Remove is_long parameter. All
12262 callers changed.
12263 * config.gcc (use_gcc_stdint): Define.
12264 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
12265 Add newlib-stdint.h for generic targets.
12266 * config/glibc-stdint.h, config/newlib-stdint.h,
12267 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
12268 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
12269 * config/score/score.h (UINTPTR_TYPE): Define.
12270 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
12271 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
12272 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12273 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12274 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12275 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12276 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12277 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12278 * config/spu/spu.h (STDINT_LONG32): Define.
12279 * configure.ac (use_gcc_stdint): Substitute.
12280 * configure: Regenerate.
12281 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
12282 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
12283 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
12284 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
12285 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
12286 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
12287 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
12288 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
12289 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
12290 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
12291 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
12292 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
12293 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
12294 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
12295 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
12296 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
12297 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
12298 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
12299 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
12300 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
12301 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
12302 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
12303 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12304 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12305 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12306 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12307 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12308 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12309 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
12310
ed853664
BS
123112009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
12312
12313 * loop-iv.c (suitable_set_for_replacement): Renamed from
12314 simplify_using_assignment; changed to return bool and to accept new
12315 args DEST and SRC. Return true iff we find a source/destination pair
12316 that can be used to make a replacement, and fill SRC and DEST if so.
12317 Remove arg ALTERED. Don't deal with altered regs here. All callers
12318 changed.
12319 (simplify_using_initial_values): Deal with altered regs here and track
12320 more precisely the effect they have on the validity of our expression.
12321
1569e190
BS
12322 * loop-iv.c (simplify_using_condition): A condition of the form
12323 (EQ REG CONST) can be used to simply make a substitution.
12324 (simplify_using_initial_values): Keep track of conditions we have seen
12325 and keep using them to simplify new expressions, while applying the
12326 same substitutions to them as to the expression.
12327
1d1eb80c
BS
12328 * simplify-rtx.c (simplify_relational_operation_1): Simplify
12329 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
12330 GEU/LTU reversed.
12331
28af33b0
BS
12332 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
12333 changed. Use this when trying to improve the upper bound.
12334 Generate the comparison by using simplify_gen_relational.
12335
b30321cd
BS
12336 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
12337
60081874
BS
12338 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
12339 functions.
2ba9daa7 12340 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
12341 replace_in_expr to make replacements. Call replace_single_def_regs
12342 once on the initial version of the expression.
12343
bebc6e07
RR
123442009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12345
fcb82ab0 12346 PR target/27237
bebc6e07 12347 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 12348
6b12efe9
RG
123492009-03-31 Richard Guenther <rguenther@suse.de>
12350
12351 PR middle-end/31029
12352 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
12353 equality comparisons. Fold C - X CMP X if C % 2 == 1.
12354
108f6c2f
RG
123552009-03-31 Richard Guenther <rguenther@suse.de>
12356
12357 * tree.h (div_if_zero_remainder): Declare.
12358 * fold-const.c (div_if_zero_remainder): Export.
12359 * tree-ssa-forwprop.c
12360 (forward_propagate_addr_into_variable_array_index): Handle
12361 constant array index addition outside of the variable index.
12362
8f612190
JM
123632009-03-31 Joseph Myers <joseph@codesourcery.com>
12364
12365 PR target/39592
12366 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
12367 define_splits, floatunssi<mode>2): Require x87 conversions from
12368 DImode to be permitted.
12369
47580d22
JM
123702009-03-31 Joseph Myers <joseph@codesourcery.com>
12371
12372 PR preprocessor/15638
12373 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
12374
ba4d8f9d
RG
123752009-03-31 Richard Guenther <rguenther@suse.de>
12376
12377 PR middle-end/23401
12378 PR middle-end/27810
12379 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
12380 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
12381 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
12382 a separate statement.
12383 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
12384 (lookup_tmp_var): Likewise.
12385 (is_gimple_formal_tmp_or_call_rhs): Remove.
12386 (is_gimple_reg_or_call_rhs): Rename to ...
12387 (is_gimple_reg_rhs_or_call): ... this.
12388 (is_gimple_mem_or_call_rhs): Rename to ...
12389 (is_gimple_mem_rhs_or_call): ... this.
12390 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
12391 DECL_GIMPLE_REG_P only if is_formal is true.
12392 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
12393 for non-proper post-modify expression gimplification.
12394 (gimplify_self_mod_expr): For post-modify expressions gimplify
12395 the lvalue to a minimal lvalue.
12396 (rhs_predicate_for): Remove formal temp case.
12397 (gimplify_modify_expr_rhs): Likewise.
12398 (gimplify_addr_expr): Use is_gimple_reg.
12399 (gimplify_expr): Remove formal temp cases.
12400 (gimple_regimplify_operands): Likewise.
12401 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
12402 and FILTER_EXPR like constants.
12403 * gimple.c (walk_gimple_op): Fix val_only initialization, use
12404 is_gimple_reg.
12405 (is_gimple_formal_tmp_rhs): Remove.
12406 (is_gimple_reg_rhs): Remove special casing.
12407 (is_gimple_mem_rhs): Fix.
12408 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
12409 (is_gimple_formal_tmp_var): Remove.
12410 (is_gimple_formal_tmp_reg): Likewise.
12411 (is_gimple_min_lval): Allow invariant component ref parts.
12412 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
12413 is_gimple_formal_tmp_reg): Remove declarations.
12414 * tree-cfg.c (verify_expr): Verify that variables with address
12415 taken do not have DECL_GIMPLE_REG_P set.
12416 * tree-mudflap.c (mf_build_check_statement_for): Use
12417 force_gimple_operand instead of gimplify_expr.
12418
8de9b877
AZ
124192009-03-31 Ayal Zaks <zaks@il.ibm.com>
12420
12421 * modulo-sched.c (sms_schedule_by_order): Pass the actual
12422 schedulable rows to compute_split_row.
12423
b5e3caf2
BE
124242009-03-31 Ben Elliston <bje@au.ibm.com>
12425
12426 PR target/31635
12427 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
12428 OPT_mvrsave.
12429
9752c4ad
AM
124302009-03-31 Alan Modra <amodra@bigpond.net.au>
12431
12432 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
12433 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
12434 * configure: Regenerate.
12435 * config.in: Regenerate.
12436 * config/rs6000/rs6000.opt (mtls-markers): Add.
12437 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
12438 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
12439 (tls_ld_aix, tls_ld_sysv): Likewise.
12440 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
12441 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
12442
b597d1b6
AM
124432009-03-31 Alan Modra <amodra@bigpond.net.au>
12444
12445 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
12446
a203a221
JH
124472009-03-30 Jan Hubicka <jh@suse.cz>
12448
b597d1b6
AM
12449 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
12450 out of RESX.
12451 (tree_remove_unreachable_handlers): Cleanup EH predecestor
12452 detection and label handling.
a203a221 12453
5b0c0b2c
VM
124542009-03-30 Vladimir Makarov <vmakarov@redhat.com>
12455
12456 * ira-int.h (ira_allocno): Rename left_conflicts_num to
12457 left_conflicts_size.
12458 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
12459 ALLOCNO_LEFT_CONFLICTS_SIZE.
12460
12461 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
12462 remove_allocno_from_bucket_and_push,
12463 allocno_spill_priority_compare, push_allocnos_to_stack,
12464 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12465 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
12466 (setup_allocno_left_conflicts_num): Ditto. Rename to
12467 setup_allocno_left_conflicts_size.
12468 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12469 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
12470 setup_allocno_left_conflicts_size instead of
12471 setup_allocno_left_conflicts_num.
12472
12473 * ira-build.c (ira_create_allocno): Use
12474 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
12475 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 12476
9a48a93f
VM
124772009-03-30 Vladimir Makarov <vmakarov@redhat.com>
12478
12479 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
12480 instead of DF_LR_OUT.
12481
12482 * ira-lives.c (process_bb_node_lives): Ditto.
12483
12484 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
12485 instead of DF_LR_{OUT,IN}.
12486
12487 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
12488
12489 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
12490
4c936d4f
JH
124912009-03-30 Jan Hubicka <jh@suse.cz>
12492
12493 * except.c (label_to_region_map): Fix thinko.
12494
f4d9f129
SE
124952009-03-30 Steve Ellcey <sje@cup.hp.com>
12496
12497 PR middle-end/38237
12498 * tree.h (tree_find_value): New declaration.
12499 * tree.c (tree_find_value): New function.
12500 * varasm.c (assemble_external): Avoid duplicate entries on lists.
12501
b3f27c15
JJ
125022009-03-30 Jakub Jelinek <jakub@redhat.com>
12503
12504 PR debug/39563
12505 * c-decl.c (struct c_binding): Add locus field.
12506 (bind): Add locus argument, set locus field from it.
12507 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
12508 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
12509 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
12510 implicitly_declare, undeclared_variable, lookup_label,
12511 declare_label, c_make_fname_decl, c_builtin_function,
12512 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
12513 bind callers.
12514
ad41bd84 125152009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
12516
12517 PR target/38781
12518 * config/i386/i386.c (classify_argument): Check total size of
12519 structure.
12520
133f9369
MJ
125212009-03-30 Martin Jambor <mjambor@suse.cz>
12522
12523 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
12524 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
12525 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
12526 respectively.
12527
12528 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
12529 seen_variable_array_ref while also traversing a union.
12530
12531 * tree-inline.c (optimize_inline_calls): Do not call
12532 cgraph_node_remove_callees.
12533 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
12534 (pass_remove_cgraph_callee_edges): New variable.
12535 * passes.c (init_optimization_passes): Add
12536 pass_remove_cgraph_callee_edges after early inlining and before all
12537 late intraprocedural passes.
12538
12539 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
12540
1190f2eb
PB
125412009-03-30 Paolo Bonzini <bonzini@gnu.org>
12542
12543 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
12544 Fix typos in names.
12545
fedc1775
PB
125462009-03-30 Paolo Bonzini <bonzini@gnu.org>
12547
fcb82ab0
UB
12548 * combine.c (simplify_comparison): Use have_insn_for.
12549 * dojump.c (do_jump): Likewise.
fedc1775 12550
65c5ae8b
PB
125512009-03-30 Paolo Bonzini <bonzini@gnu.org>
12552
12553 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
12554 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
12555 sparc_compare_op0 like sparc_compare_emitted used to be handled.
12556 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
12557 instead of sparc_compare_emitted.
12558 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
12559 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
12560 instead of sparc_compare_emitted.
12561
d25aa7ab
PB
125622009-03-30 Paolo Bonzini <bonzini@gnu.org>
12563
12564 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
12565 enter/exit cfglayout mode.
12566 (pass_partition_block): Require it.
12567 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
12568 (combine_instructions): Track basic blocks instead of labels.
12569 (update_cfg_for_uncondjump): New.
12570 (try_combine): Use it. Update jumps after rescanning.
12571 (pass_combine): Require PROP_cfglayout.
12572 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
12573
9c9e26f5
PB
125742009-03-30 Paolo Bonzini <bonzini@gnu.org>
12575
fcb82ab0
UB
12576 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
12577 Provide/destroy PROP_cfglayout respectively.
12578 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
12579 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 12580
28ddeea1
PB
125812009-03-30 Paolo Bonzini <bonzini@gnu.org>
12582
12583 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
12584 fold_convert_const_fixed_from_fixed,
12585 fold_convert_const_fixed_from_int,
12586 fold_convert_const_fixed_from_real, fold_negate_const): Do not
12587 set TREE_CONSTANT_OVERFLOW.
12588 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
12589 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
12590
ebfd146a
IR
125912009-03-30 Ira Rosen <irar@il.ibm.com>
12592
12593 * tree-vect-loop-manip.c: New file.
12594 * tree-vectorizer.c: Update documentation and included files.
12595 (vect_loop_location): Make extern.
12596 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
12597 (rename_variables_in_bb, rename_variables_in_loop,
12598 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
12599 slpeel_update_phi_nodes_for_guard1,
12600 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
12601 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
12602 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 12603 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
12604 find_loop_location): Likewise.
12605 (new_stmt_vec_info): Move to tree-vect-stmts.c.
12606 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
12607 get_vectype_for_scalar_type, vect_is_simple_use,
12608 supportable_widening_operation, supportable_narrowing_operation):
12609 Likewise.
12610 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
12611 (new_loop_vec_info, destroy_loop_vec_info,
12612 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
12613 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
12614 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
12615 (vect_supportable_dr_alignment): Likewise.
12616 * tree-vectorizer.h (tree-data-ref.h): Include.
12617 (vect_loop_location): Declare.
12618 Reorganize function declarations according to the new file structure.
12619 * tree-vect-loop.c: New file.
2ba9daa7 12620 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
12621 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
12622 * tree-vect-data-refs.c: New file.
12623 * tree-vect-patterns.c (timevar.h): Don't include.
12624 * tree-vect-stmts.c: New file.
2ba9daa7 12625 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 12626 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
12627 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
12628 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
12629 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
12630 (tree-vect-analyze.o): Remove.
12631 (tree-vect-transform.o): Likewise.
12632 (tree-vect-data-refs.o): Add rule.
2ba9daa7 12633 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
12634 tree-vect-slp.o): Likewise.
12635 (tree-vect-patterns.o): Remove redundant dependencies.
12636 (tree-vectorizer.o): Likewise.
12637 * tree-vect-slp.c: New file.
12638
40a1cfba
RW
126392009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12640
12641 * optc-gen.awk: Warn if an option flag has multiple different
12642 help strings.
12643
a9a7a9a2
SP
126442009-03-30 Sebastian Pop <sebastian.pop@amd.com>
12645
12646 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
12647 -floop-block): Document dependences on PPL, CLooG and Graphite.
12648
8ce94e44
JM
126492009-03-30 Joseph Myers <joseph@codesourcery.com>
12650
12651 PR rtl-optimization/323
12652 * c-common.c (c_fully_fold, convert_and_check,
12653 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
12654 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
12655 * c-common.def (EXCESS_PRECISION_EXPR): New.
12656 * c-cppbuiltin.c (builtin_define_float_constants): Define
12657 constants with enough digits for long double.
12658 * c-lex.c (interpret_float): Interpret constant with excess
12659 precision where appropriate.
12660 * c-opts.c (c_common_post_options): Set
12661 flag_excess_precision_cmdline. Give an error for
12662 -fexcess-precision=standard for C++ for processors where the
12663 option is significant.
12664 * c-parser.c (c_parser_conditional_expression): Handle excess
12665 precision in condition.
12666 * c-typeck.c (convert_arguments): Handle arguments with excess
12667 precision.
12668 (build_unary_op): Move excess precision outside operation.
12669 (build_conditional_expr): Likewise.
12670 (build_compound_expr): Likewise.
12671 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
12672 (build_modify_expr): Handle excess precision in RHS.
12673 (convert_for_assignment): Handle excess precision in converted
12674 value.
12675 (digest_init, output_init_element, process_init_element): Handle
12676 excess precision in initializer.
12677 (c_finish_return): Handle excess precision in return value.
12678 (build_binary_op): Handle excess precision in operands and add
12679 excess precision as needed for operation.
12680 * common.opt (-fexcess-precision=): New option.
12681 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
12682 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
12683 For standard excess precision, output explicit conversion to and
12684 truncation from XFmode.
12685 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
12686 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
12687 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
12688 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
12689 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
12690 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
12691 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
12692 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
12693 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
12694 define_splits, sqrt<mode>2): Disable where appropriate for
12695 standard excess precision.
12696 * convert.c (convert_to_real): Do not shorten arithmetic to type
12697 for which excess precision would be used.
12698 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
12699 * doc/invoke.texi (-fexcess-precision=): Document option.
12700 (-mfpmath=): Correct index entry.
12701 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
12702 flag_excess_precision): New.
12703 * langhooks.c (lhd_post_options): Set
12704 flag_excess_precision_cmdline.
12705 * opts.c (common_handle_option): Handle -fexcess-precision=.
12706 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
12707 init_excess_precision): New.
12708 (lang_dependent_init_target): Call init_excess_precision.
12709 * tree.c (excess_precision_type): New.
12710 * tree.h (excess_precision_type): Declare.
12711
1e57bf47
JM
127122009-03-30 Joseph Myers <joseph@codesourcery.com>
12713
12714 PR c/35235
12715 * c-typeck.c (build_component_ref): Do not copy qualifiers from
12716 non-lvalue to component.
12717
148e4216
JM
127182009-03-29 Joseph Myers <joseph@codesourcery.com>
12719
12720 PR preprocessor/34695
12721 * Makefile.in (c-opts.o): Depend on c-tree.h.
12722 * c-common.c: Move down include of diagnostic.h.
12723 (done_lexing, c_cpp_error): New.
12724 * c-common.h (done_lexing): Declare.
12725 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
12726 (parse_in).
12727 * c-opts.c: Include c-tree.h.
12728 (c_common_init_options): Set preprocessor error callback.
12729 (c_common_handle_option): Do not set preprocessor
12730 inhibit_warnings, warnings_are_errors, warn_system_headers,
12731 pedantic_errors or inhibit_warnings flags.
12732 (c_common_post_options): Do not check cpp_errors (parse_in).
12733 (c_common_finish): Do not output dependencies if there were
12734 errors. Do not check return value of cpp_finish.
12735 * c-ppoutput.c (pp_file_change): Set input_location.
12736 * c-tree.h (c_cpp_error): Declare.
12737 * diagnostic.c (diagnostic_set_info_translated): Also initialize
12738 override_column.
12739 (diagnostic_build_prefix): Check override_column.
12740 * diagnostic.h (diagnostic_info): Add override_column field.
12741 (diagnostic_override_column): Define.
12742
2ec5deb5
PB
127432009-03-28 Paolo Bonzini <bonzini@gnu.org>
12744
ba20e309
UB
12745 * c-common.c (c_expand_expr, c_staticp): Remove.
12746 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
12747 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
12748 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
12749 * c-gimplify.c (gimplify_compound_literal_expr,
12750 optimize_compound_literals_in_ctor): Remove.
12751 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
12752 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
12753 * c-semantics.c (emit_local_var): Remove.
12754
12755 * langhooks-def.h (lhd_expand_expr): Remove.
12756 * langhooks.c (lhd_expand_expr): Remove.
12757 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
12758
12759 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
12760 handling from c-semantics.c; don't call into langhook.
12761 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
12762 * gimplify.c (gimplify_compound_literal_expr,
12763 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
12764 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
12765 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
12766 as was done in c-gimplify.c.
12767 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
12768 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
12769 Move from c-common.h.
12770 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
12771
12772 * tree.c (staticp): Do not call langhook.
12773 * langhooks.c (lhd_staticp): Delete.
12774 * langhooks-def.h (lhd_staticp): Delete prototype.
12775 (LANG_HOOKS_STATICP): Delete.
12776 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
12777
ba20e309
UB
12778 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
12779 instead of DECL_STMTs.
2ec5deb5 12780
928c19bb
JM
127812009-03-29 Joseph Myers <joseph@codesourcery.com>
12782
12783 PR c/456
12784 PR c/5675
12785 PR c/19976
12786 PR c/29116
12787 PR c/31871
12788 PR c/35198
12789 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
12790 void_type_node.
12791 (fold_call_expr): Return a NOP_EXPR from folding rather than the
12792 contained expression.
ba20e309 12793 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
12794 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
12795 conditional expressions for C.
12796 (decl_constant_value_for_optimization): Move from
ba20e309 12797 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
12798 whether optimizing and that the expression is a VAR_DECL not of
12799 array type instead of doing such checks in the caller. Do not
12800 check pedantic. Call gcc_unreachable for C++.
12801 * c-common.def (C_MAYBE_CONST_EXPR): New.
12802 * c-common.h (c_fully_fold, c_save_expr,
12803 decl_constant_value_for_optimization): New prototypes.
12804 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12805 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12806 EXPR_INT_CONST_OPERANDS): Define.
12807 * c-convert.c (convert): Strip nops from expression.
12808 * c-decl.c (groktypename): Take extra parameters expr and
12809 expr_const_operands. Update call to grokdeclarator.
12810 (start_decl): Update call to grokdeclarator. Add statement for
12811 expressions used in type of decl.
12812 (grokparm): Update call to grokdeclarator.
12813 (push_parm_decl): Update call to grokdeclarator.
12814 (build_compound_literal): Add parameter non_const and build a
12815 C_MAYBE_COSNT_EXPR if applicable.
12816 (grokdeclarator): Take extra parameters expr and
12817 expr_const_operands. Track expressions used in declaration
12818 specifiers and declarators. Fold array sizes and track whether
12819 they are constant expressions and whether they are integer
12820 constant expressions.
12821 (parser_xref_tag): Set expr and expr_const_operands fields in
12822 return value.
12823 (grokfield): Update call to grokdeclarator.
12824 (start_function): Update call to grokdeclarator.
12825 (build_null_declspecs): Set expr and expr_const_operands fields in
12826 return value.
12827 (declspecs_add_type): Handle expressions in typeof specifiers.
12828 * c-parser.c (c_parser_declspecs): Set expr and
12829 expr_const_operands fields for declaration specifiers.
12830 (c_parser_enum_specifier): Likewise.
12831 (c_parser_struct_or_union_specifier): Likewise.
12832 (c_parser_typeof_specifier): Likewise. Update call to
12833 groktypename. Fold expression as needed. Return expressions with
12834 type instead of adding statements.
12835 (c_parser_attributes): Update calls to c_parser_expr_list.
12836 (c_parser_statement_after_labels): Fold expression before passing
12837 to objc_build_throw_stmt.
12838 (c_parser_condition): Fold expression.
12839 (c_parser_asm_operands): Fold expression.
12840 (c_parser_conditional_expression): Use c_save_expr. Update call
12841 to build_conditional_expr.
12842 (c_parser_alignof_expression): Update call to groktypename.
12843 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
12844 original_code. Fold expression argument of va_arg. Create
12845 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
12846 argument to va_arg. Update calls to groktypename. Fold array
12847 index for offsetof. Verify that first argument to
12848 __builtin_choose_expr has integer type.
12849 (c_parser_postfix_expression_after_paren_type): Update calls to
12850 groktypename and build_compound_literal. Handle expressions with
12851 side effects in type name.
12852 (c_parser_postfix_expression_after_primary): Update call to
12853 c_parser_expr_list. Set original_code for calls to
12854 __builtin_constant_p.
12855 (c_parser_expr_list): Take extra parameter fold_p. Fold
12856 expressions if requested.
12857 (c_parser_objc_type_name): Update call to groktypename.
12858 (c_parser_objc_synchronized_statement): Fold expression.
12859 (c_parser_objc_receiver): Fold expression.
12860 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
12861 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
12862 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
12863 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
12864 (struct c_typespec): Add elements expr and expr_const_operands.
12865 (struct c_declspecs): Add elements expr and expr_const_operands.
12866 (groktypename, build_conditional_expr, build_compound_literal):
12867 Update prototypes.
12868 (in_late_binary_op): Declare.
12869 * c-typeck.c (note_integer_operands): New function.
12870 (in_late_binary_op): New variable.
12871 (decl_constant_value_for_broken_optimization): Move to c-common.c
12872 and rename to decl_constant_value_for_optimization.
12873 (default_function_array_conversion): Do not strip nops.
12874 (default_conversion): Do not call
12875 decl_constant_value_for_broken_optimization.
12876 (build_array_ref): Do not fold result.
12877 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
12878 result when operand is a VLA.
12879 (c_expr_sizeof_type): Update call to groktypename. Handle
12880 expressions included in type name. Use C_MAYBE_CONST_EXPR for
12881 result when operand names a VLA type.
12882 (build_function_call): Update call to build_compound_literal.
12883 Only fold result for calls to __builtin_* functions. Strip
12884 NOP_EXPR from INTEGER_CST returned from such functions. Fold
12885 the function designator.
12886 (convert_arguments): Fold arguments. Update call to
12887 convert_for_assignment.
12888 (build_unary_op): Handle increment and decrement of
12889 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
12890 decrement earlier. Fold operand of increment and decrement.
12891 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
12892 built for integer operand. Wrap returns that are INTEGER_CSTs
12893 without being integer constant expressions or that have integer
12894 constant operands without being INTEGER_CSTs.
12895 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
12896 (build_conditional_expr): Add operand ifexp_bcp. Track whether
12897 result is an integer constant expression or can be used in
12898 unevaluated parts of one and avoid folding and wrap as
12899 appropriate. Fold operands before possibly doing -Wsign-compare
12900 warnings.
12901 (build_compound_expr): Wrap result for C99 if operands can be used
12902 in integer constant expressions.
12903 (build_c_cast): Update call to digest_init. Do not ignore
12904 overflow from casting floating-point constants to integers. Wrap
12905 results that could be confused with integer constant expressions,
12906 null pointer constants or floating-point constants.
12907 (c_cast_expr): Update call to groktypename. Handle expressions
12908 included in type name.
12909 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
12910 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
12911 Update calls to convert_for_assignment.
12912 (convert_for_assignment): Take new parameter
12913 null_pointer_constant. Do not strip nops or call
12914 decl_constant_value_for_broken_optimization. Set
12915 in_late_binary_op for conversions to boolean.
12916 (store_init_value): Update call to digest_init.
12917 (digest_init): Take new parameter null_pointer_constant. Do not
12918 call decl_constant_value_for_broken_optimization. pedwarn for
12919 initializers not constant expressions. Update calls to
12920 convert_for_assignment.
12921 (constructor_nonconst): New.
12922 (struct constructor_stack): Add nonconst element.
12923 (really_start_incremental_init, push_init_level, pop_init_level):
12924 Handle constructor_nonconst and nonconst element.
12925 (set_init_index): Call constant_expression_warning for array
12926 designators.
12927 (output_init_element): Fold value. Set constructor_nonconst as
12928 applicable. pedwarn for initializers not constant expressions.
12929 Update call to digest_init. Call constant_expression_warning
12930 where constant initializers are required.
12931 (process_init_element): Use c_save_expr.
12932 (c_finish_goto_ptr): Fold expression.
12933 (c_finish_return): Fold return value. Update call to
12934 convert_for_assignment.
12935 (c_start_case): Fold switch expression.
12936 (c_process_expr_stmt): Fold expression.
12937 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 12938 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
12939 (build_binary_op): Track whether results are integer constant
12940 expressions or may occur in such, disable folding and wrap results
12941 as applicable. Fold operands for -Wsign-compare warnings unless
12942 in_late_binary_op.
12943 (c_objc_common_truthvalue_conversion): Handle results folded to
12944 integer constants that are not integer constant expressions.
12945 * doc/extend.texi: Document when typeof operands are evaluated,
12946 that condition of __builtin_choose_expr is an integer constant
12947 expression, and more about use of __builtin_constant_p in
12948 initializers.
12949
5babbcc0
RG
129502009-03-29 Richard Guenther <rguenther@suse.de>
12951
12952 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
12953 propagate addresses of array references.
12954
0340f2ba
SB
129552009-03-29 Steven Bosscher <steven@gcc.gnu.org>
12956
12957 * regmove.c (perhaps_ends_bb_p): Remove.
12958 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
12959 from INSN and check that the main loop stays within that basic block.
12960 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
12961 (regmove_forward_pass): Split out from regmove_optimize. Use
12962 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
12963 (regmove_backward_pass): Split out from regmove_optimize. Use
12964 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
12965 (regmove_optimize): Simplify.
12966
eeae74a1
L
129672009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12968
12969 PR target/39545
12970 * config/i386/i386.c (classify_argument): Ignore flexible array
12971 member in struct and warn ABI change.
12972
a24078b2
L
129732009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12974
12975 * config/i386/i386-protos.h (ix86_agi_dependent): New.
12976
12977 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
12978 (ix86_adjust_cost): Updated.
12979
a8da523f
JH
129802009-03-29 Jan Hubicka <jh@suse.cz>
12981
12982 PR middle-end/28850
12983 * tree-pass.h (pass_cleanup_eh): New function.
12984 (remove_unreachable_regions): Break code handling RTL
12985 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
12986 that can not be reached by runtime.
12987 (can_be_reached_by_runtime): New function.
12988 (label_to_region_map): New function.
12989 (num_eh_regions): New function.
12990 (rtl_remove_unreachable_regions): New function.
12991 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
12992 (remove_eh_region): New function.
12993 * except.h: Include sbitmap and vecprim.
12994 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
12995 num_eh_regions): Declare.
12996 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 12997 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
12998 * tree-eh.c (tree_remove_unreachable_handlers): New function.
12999 (tree_empty_eh_handler_p): New function.
13000 (cleanup_empty_eh): New function.
13001 (cleanup_eh): New function.
13002 (pass_cleanup_eh): New function.
13003
98f358e5
JH
130042009-03-29 Jan Hubicka <jh@suse.cz>
13005
13006 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
13007 for removed regions.
13008
13a9fa44
JH
130092009-03-29 Jan Hubicka <jh@suse.cz>
13010
13011 * except.c (dump_eh_tree): Dump all datastructures.
13012
e38cf733
JH
130132009-03-29 Jan Hubicka <jh@suse.cz>
13014
13015 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
13016 (duplicate_eh_regions_1): Likewise.
13017 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
13018 vector; call EH verification.
13019 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13020 Be ready for region being removed.
13021
12802c2b
JH
130222009-03-29 Jan Hubicka <jh@suse.cz>
13023
13024 * bitmap.c (bitmap_last_set_bit): New function.
13025 * bitmap.h (bitmap_last_set_bit): Declare.
13026
4ea80a41
DA
130272009-03-29 David Ayers <ayers@fsfe.org>
13028
13029 PR objc/27377
13030 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
13031 by calling objc_compare_types and surpress warnings about
13032 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 13033
4ea80a41 130342009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
13035
13036 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
13037 call initialize_inline_failed.
13038 (initialize_inline_failed): Move it from here ...
13039 * cgraph.c (initialize_inline_failed): ... to here.
13040 (cgraph_create_edge): Call initialize_inline_failed rather than
13041 setting inline_failed directly.
13042
7fb0ee07
BE
130432009-03-29 Ben Elliston <bje@au.ibm.com>
13044
13045 PR target/32542
13046 * sysv4.opt (msdata): Improve comment.
13047 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
13048 * sysv4.h (SVR4_ASM_SPEC): Likewise.
13049
0be77bf2
BE
130502009-03-29 Ben Elliston <bje@au.ibm.com>
13051
13052 PR target/30451
13053 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
13054 load and store attributes.
13055
593812b6
BE
130562009-03-29 Ben Elliston <bje@au.ibm.com>
13057
13058 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
13059 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
13060 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
13061 * doc/extend.texi (X86 Built-in Functions): Add index entries for
13062 __builtin_infq and __builtin_huge_valq.
13063
8272d11d
AS
130642009-03-28 Anatoly Sokolov <aesok@post.ru>
13065
13066 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
13067 atmega8m1 devices.
13068 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13069 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
13070
74fe548b
XDL
130712009-03-28 Xinliang David Li <davidxl@google.com>
13072
2ba9daa7 13073 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
13074 (do_dbg_cnt): New function.
13075
33977f81
JH
130762009-03-28 Jan Hubicka <jh@suse.cz>
13077
13078 Merge from pretty-ipa:
13079
13080 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 13081
33977f81
JH
13082 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13083 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
13084 * passes.c (function_called_by_processed_nodes_p): New.
13085 * ipa-pure-const.c (check_call): Fix handling of operands.
13086 (analyze_function): Dump debug output for skipped bodies.
13087 (local_pure_const): Use function_called_by_processed_nodes_p.
13088 * dwarf2out.c (reference_to_unused): Use output.
13089 * passes.c (do_per_function_toporder): Likewise.
13090
13091 2008-11-12 Jan Hubicka <jh@suse.cz>
13092
13093 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
13094 * ipa-pure-const.c (funct_state_d): Add can throw field; make
13095 state_set_in_source enum
13096 (check_decl): Ignore memory tags; do not set fake looping flags;
13097 dump diagnostics.
13098 (check_operand, check_tree, check_rhs_var, check_lhs_var,
13099 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
13100 (check_call, analyze_function): Rewrite.
13101 (check_stmt): New.
13102 (add_new_function): Update call of analyze_function.
13103 (generate_summary): Add call of analyze_function.
13104 (propagate): Propagate can_throw; handle state_set_in_source correctly.
13105 (local_pure_const): New function.
13106 (pass_local_pure_const): New pass.
13107 * ipa-inline.c (inline_transform): Set after_inlining.
13108 * tree-eh.c (stmt_can_throw_external): New.
13109 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
13110 work with aliasing built.
13111 * tree-flow.h (stmt_can_throw_external): New.
13112 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
13113 and local pure/const pass in early and late optimization queue.
ba20e309 13114
617f3897
MJ
131152009-03-28 Martin Jambor <mjambor@suse.cz>
13116
13117 * fold-const.c (get_pointer_modulus_and_residue): New parameter
13118 allow_func_align.
13119 (fold_binary): Allow function decl aligment consideration is the
13120 second argument is integer constant one.
13121 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
13122 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
13123 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
13124
fe89fbc5
JH
131252009-03-28 Jan Hubicka <jh@suse.cz>
13126
13127 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
13128 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
13129 * function.h (rtl_data): Add nothrow flag.
13130 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
13131 set DECL_NOTHROW for AVAILABLE functions.
13132
574872ff
JJ
131332009-03-28 Jakub Jelinek <jakub@redhat.com>
13134
b3bf8855
JJ
13135 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
13136 following vector keyword has expansion starting with pixel or bool
13137 keyword, expand vector to __vector and pixel or bool to __pixel or
13138 __bool.
13139
574872ff
JJ
13140 PR c++/39554
13141 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
13142 warn_if_disallowed_function_p): Removed.
13143 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
13144 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
13145 warning_if_disallowed_function_p.
13146 * flags.h (warn_if_disallowed_function_p,
13147 warn_disallowed_functions): Removed.
13148 * common.opt (Wdisallowed-function-list=): Removed.
13149 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
13150
b005da11
RG
131512009-03-28 Richard Guenther <rguenther@suse.de>
13152
13153 PR tree-optimization/38723
13154 * tree-ssa-pre.c (compute_avail): Add all default definitions to
13155 the entry block.
13156
1de812a6
JH
131572009-03-28 Jan Hubicka <jh@suse.cz>
13158
13159 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
13160 test introduced by my previous patch.
13161
fbb789d4
RG
131622009-03-28 Richard Guenther <rguenther@suse.de>
13163
13164 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
13165 the PHIs value undefined.
13166
6f1873a1
JH
131672009-03-28 Jan Hubicka <jh@suse.cz>
13168
13169 * tree-pass.h (pass_fixup_cfg): New pass.
13170 * ipa-inline.c (inline_transform): Set
13171 always_inline_functions_inlined/after_inlining.
13172 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
13173 (pass_fixup_cfg): New pass.
13174 * passes.c (init_optimization_passes): Add fixup_cfg.
13175
17021bc8
RG
131762009-03-28 Richard Guenther <rguenther@suse.de>
13177
13178 PR tree-optimization/38458
13179 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
13180 argument use the arguments copy-of value.
13181
e8114fba
RG
131822009-03-28 Richard Guenther <rguenther@suse.de>
13183
13184 PR tree-optimization/38180
13185 * tree-ssa-ccp.c (get_default_value): Simplify.
13186 (likely_value): Likewise.
13187 (surely_varying_stmt_p): Properly handle VOP case.
13188 (ccp_initialize): Likewise.
13189 (ccp_fold): Handle propagating through *&.
13190 (fold_const_aggregate_ref): Also handle decls.
13191
257eb6e3
JH
131922009-03-28 Jan Hubicka <jh@suse.cz>
13193
13194 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13195 * cgraph.h (cgraph_node): Likewise.
13196 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
13197 (cgraph_reset_node): Use process flag.
13198 (cgraph_mark_functions_to_output): Likewise.
13199 (cgraph_expand_function): Likewise.
13200 (cgraph_expand_all_functions): Likewise.
13201 (cgraph_output_in_order): Likewise.
13202 * dwarf2out.c (reference_to_unused): Likewise.
13203 * passes.c do_per_function_toporder): Likewise.
13204
61a05df1
JH
132052009-03-28 Jan Hubicka <jh@suse.cz>
13206
13207 Bring from lto-branch:
ba20e309 13208
61a05df1
JH
13209 2008-09-03 Doug Kwan <dougkwan@google.com>
13210
13211 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
13212 enums instead of reason strings.
13213 * cgraph.c (cgraph_create_edge): Same.
13214 (cgraph_inline_failed_string): New function.
13215 * cgraph.h (cgraph_inline_failed_t): New enum type.
13216 (cgraph_inline_failed_string): New prototype.
13217 (struct cgraph_edge): Change type of INLINED_FAILED from constant
13218 char pointer to cgraph_inline_failed_t.
13219 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
13220 (cgraph_default_inline_p): Ditto.
60839f5d 13221 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
13222 to cgraph_inline_failed_t pointer.
13223 * cif-code.def: New file.
13224 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
13225 reason string.
13226 (cgraph_check_inline_limits): Change type of REASON to pointer to
13227 cgraph_inline_failed_t. Replace reason strings with enums.
13228 (cgraph_default_inline_p): Ditto.
13229 (cgraph_recursive_inlining_p): Ditto.
13230 (update_caller_keys): Change type of FAILED_REASON to
13231 cgraph_inline_failed_t.
13232 (cgraph_set_inline_failed): Change type of REASON to pointer to
13233 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
13234 convert enums to strings for text output.
13235 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
13236 to be of type cgraph_inline_failed_t. Replace reason strings with
13237 enums. Call cgraph_inline_failed_string to covert enums
13238 to strings for text output.
13239 (cgraph_decide_inlining): Replace reason strings with enums.
13240 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
13241 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
13242 for text output.
13243 * tree-inline.c (expand_call_inline): Change type of REASON
13244 to cgraph_inline_failed_t. Replace reason strings with enums.
13245 Call cgraph_inline_failed_string for text output.
13246 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
13247 (cgraph.o): Ditto.
13248
144e8aac
JH
132492009-03-28 Jan Hubicka <jh@suse.cz>
13250
13251 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
13252 cgraph_clone_node): Remove master clone handling.
13253 (cgraph_is_master_clone, cgraph_master_clone): Remove.
13254 * cgraph.h (master_clone): Remove.
13255 (cgraph_is_master_clone, cgraph_master_clone): Remove.
13256 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
13257 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
13258
4a371c8d
JH
132592009-03-28 Jan Hubicka <jh@suse.cz>
13260
13261 * cgraph.c (cgraph_function_body_availability): Functions declared
13262 inline are always safe to assume that it is not going to be replaced.
13263
6cdb0ee3
RG
132642009-03-28 Richard Guenther <rguenther@suse.de>
13265
13266 PR tree-optimization/38513
13267 * tree-ssa-pre.c (eliminate): Remove redundant stores.
13268 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
13269 EXC_PTR_EXPR and FILTER_EXPR.
13270 (get_ref_from_reference_ops): Likewise.
13271
8ca1fd76
RG
132722009-03-28 Richard Guenther <rguenther@suse.de>
13273
13274 PR tree-optimization/38968
13275 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
13276 Use FLOOR_MOD_EXPR to compute misalignment.
13277
a254e44d
RG
132782009-03-28 Richard Guenther <rguenther@suse.de>
13279
13280 PR tree-optimization/37795
13281 * tree.h (combine_comparisons): Declare.
13282 * fold-const.c (combine_comparisons): Export.
13283 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
13284 comparisons.
13285 (ifcombine_iforif): Use combine_comparisons.
13286
a8ee227c
JH
132872009-03-28 Jan Hubicka <jh@suse.cz>
13288
13289 * tree-eh.c (inlinable_call_p): New function.
13290 (make_eh_edges): Use it.
13291 (verify_eh_edges): Use it.
13292 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
13293 * except.c (reachable_next_level): Add inlinable_function argument
13294 (sjlj_find_directly_reachable_regions): Update.
13295 (add_reachable_handler): Do not set saw_any_handlers.
13296 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
13297 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13298 Add new inlinable call parameter.
13299 (can_throw_internal, can_throw_external): Update.
13300 * except.h (can_throw_internal_1, can_throw_external_1,
13301 foreach_reachable_handler): Update declaration.
13302
52c0e446
JM
133032009-03-28 Joseph Myers <joseph@codesourcery.com>
13304
13305 * config/arm/t-arm-coff, config/h8300/coff.h,
13306 config/i386/i386-aout.h, config/i386/i386-coff.h,
13307 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
13308 config/pdp11/2bsd.h, config/rs6000/aix41.h,
13309 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
13310 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
13311 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
13312 sys-types.h: Remove.
13313 * Makefile.in: Remove protoize and fixproto support and references
13314 in comments.
13315 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
13316 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
13317 Remove.
13318 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
13319 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
13320 unprotoize$(exeext).
13321 (rest.encap): Don't depend on $(STMP_FIXPROTO)
13322 (.PHONY): Don't depend on proto.
13323 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
13324 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
13325 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
13326 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
13327 build/gen-protos.o, build/scan.o, xsys-protos.h,
13328 build/fix-header$(build_exeext), build/fix-header.o,
13329 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
13330 stmp-install-fixproto): Remove.
13331 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
13332 SYSCALLS.c or fixproto files.
13333 (install-common): Don't install protoize.
13334 (install-headers-tar, install-headers-cpio, install-headers-cp):
13335 Don't depend on $(STMP_FIXPROTO).
13336 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
13337 install fixproto files or write out fixproto settings.
13338 (uninstall): Don't uninstall protoize.
13339 * config.gcc (use_fixproto): Remove.
13340 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
13341 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
13342 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
13343 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
13344 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
13345 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
13346 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
13347 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
13348 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
13349 * config/t-vxworks (STMP_FIXPROTO): Remove.
13350 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
13351 STMP_FIXPROTO): Remove.
13352 * config.in, configure: Regenerate.
13353 * crtstuff.c (gid_t, uid_t): Don't undefine.
13354 * doc/install.texi: Change m68k-coff to m68k-elf in example.
13355 (arm-*-coff, arm-*-aout: Remove target entries.
13356 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
13357 Remove mention of AIX 4.1.
13358 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
13359 * doc/invoke.texi (Running Protoize): Remove.
13360 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
13361 (Protoize Caveats): Remove.
13362 * tsystem.h: Update comments on headers assumed to exist.
13363
20a07f44
VM
133642009-03-27 Vladimir Makarov <vmakarov@redhat.com>
13365
13366 * genautomata.c: Add a new year to the copyright. Add a new
13367 reference.
13368 (struct insn_reserv_decl): Add comments for member bypass_list.
13369 (find_bypass): Remove.
13370 (insert_bypass): New.
13371 (process_decls): Use insert_bypass.
13372 (output_internal_insn_latency_func): Output all bypasses with the
13373 same input insn in one switch case.
13374
13375 * rtl.def (define_bypass): Describe bypass choice.
13376 * doc/md.texi (define_bypass): Ditto.
13377
3a0d06c1
RB
133782009-03-27 Richard Guenther <rguenther@suse.de>
13379
13380 * gimplify.c (mark_addressable): Export.
13381 * tree-flow.h (mark_addressable): Declare.
13382 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
13383 * tree-ssa.c (verify_phi_args): Verify that address taken
13384 variables have TREE_ADDRESSABLE set.
13385
133862009-03-27 Richard Guenther <rguenther@suse.de>
13387
13388 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
13389 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
13390 Do not mark decls TREE_ADDRESSABLE.
13391 (build_fold_addr_expr): Adjust.
13392 (fold_addr_expr): Remove.
13393 (fold_unary): Use build_fold_addr_expr.
13394 (fold_comparison): Likewise.
13395 (split_address_to_core_and_offset): Likewise.
13396 * coverage.c (tree_coverage_counter_addr): Mark the array decl
13397 TREE_ADDRESSABLE.
13398 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
13399 (gimplify_modify_expr_to_memcpy): Mark source and destination
13400 addressable.
13401 * omp-low.c (create_omp_child_function): Mark the object decl
13402 TREE_ADDRESSABLE.
13403 (lower_rec_input_clauses): Mark the var we take the address of
13404 TREE_ADDRESSABLE.
13405 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
13406
2ac26e15
L
134072009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13408
13409 PR middle-end/39315
13410 * cfgexpand.c (expand_one_stack_var_at): Change alignment
13411 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
13412
472c7fbd
RG
134132009-03-27 Richard Guenther <rguenther@suse.de>
13414
13415 PR tree-optimization/39120
13416 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
13417 constraints.
13418 (handle_lhs_call): Process return constraints. Add escape
13419 constraints if necessary.
13420 (handle_const_call): Fill out return constraints. Make nested
13421 case more precise. Avoid consttmp if possible.
13422 (handle_pure_call): Fill out return constraints. Avoid
13423 callused if possible.
13424 (find_func_aliases): Simplify call handling.
13425
134262009-03-27 Richard Guenther <rguenther@suse.de>
13427
13428 PR tree-optimization/39120
13429 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
13430 as a representative.
13431 (solve_graph): Do propagate CALLUSED.
13432 (handle_pure_call): Use a scalar constraint from CALLUSED for
13433 the return value.
13434 (find_what_p_points_to): CALLUSED shall not appear in poins-to
13435 solutions.
13436
d9223014
L
134372009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13438
13439 PR c/39323
13440 * c-common.c (handle_aligned_attribute): Properly check alignment
13441 overflow. Use (1U << i) instead of (1 << i).
13442
ba20e309 13443 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
13444
13445 * expr.h (get_mem_align_offset): Updated.
13446
13447 * tree.h (tree_decl_common): Change align to "unsigned int" and
13448 move it before pointer_alias_set.
13449
689b689c
L
134502009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13451 Jakub Jelinek <jakub@redhat.com>
13452
13453 PR target/38034
13454 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
13455 gr_register_operand with gr_reg_or_0_operand.
13456 (cmpxchg_rel_di): Likewise.
13457 (sync_lock_test_and_set<mode>): Likewise.
13458
c619e982
L
134592009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13460
13461 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
13462 (true_regnum): Likewise.
13463
13464 * rtlanal.c (subreg_info): Moved to ...
13465 * rtl.h (subreg_info): Here. New.
13466 (subreg_get_info): New.
13467
13468 * rtlanal.c (subreg_get_info): Make it extern.
13469
51212b32
L
134702009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13471
13472 PR target/39472
13473 * config/i386/i386.c (ix86_abi): New.
13474 (override_options): Handle -mabi=.
ba20e309 13475 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
13476 (ix86_call_abi_override): Likewise.
13477 (init_cumulative_args): Likewise.
13478 (function_arg_advance): Likewise.
13479 (function_arg_64): Likewise.
13480 (function_arg): Likewise.
13481 (ix86_pass_by_reference): Likewise.
13482 (ix86_function_value_regno_p): Likewise.
13483 (ix86_build_builtin_va_list_abi): Likewise.
13484 (setup_incoming_varargs_64): Likewise.
13485 (is_va_list_char_pointer): Likewise.
13486 (ix86_init_machine_status): Likewise.
ba20e309 13487 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
13488 (ix86_function_type_abi): Return enum calling_abi. Rewrite
13489 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 13490 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
13491 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
13492 with ix86_abi.
13493 (ix86_fn_abi_va_list): Updated.
13494
13495 * config/i386/i386.h (ix86_abi): New.
13496 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
13497 (CONDITIONAL_REGISTER_USAGE): Likewise.
13498 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
13499 (machine_function): Likewise.
13500
13501 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
13502 with ix86_abi.
13503 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
13504 (STACK_BOUNDARY): Likewise.
13505 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
13506
13507 * config/i386/i386.opt (mabi=): New.
13508
13509 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
13510 return enum calling_abi.
13511 (ix86_function_type_abi): Likewise.
13512 (ix86_function_abi): Removed.
13513
13514 * doc/invoke.texi: Document -mabi= option for x86.
13515
7338ea63
KG
135162009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13517
13518 * builtins.c (real_dconstp): Delete.
13519 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
13520
68599f33
DS
135212009-03-27 Dodji Seketeli <dodji@redhat.com>
13522 Jakub Jelinek <jakub@redhat.com>
13523
13524 PR debug/37959
13525 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
13526 (gen_subprogram_die): When a function is explicit, generate the
13527 DW_AT_explicit attribute.
13528 * langhooks.h (struct lang_hooks_for_decls): Add
13529 function_decl_explicit_p langhook.
13530 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
13531 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
13532
9f5e9983
JJ
135332009-03-27 Jakub Jelinek <jakub@redhat.com>
13534
64d7685c
JJ
13535 * builtins.c (fold_builtin_memory_op): Optimize memmove
13536 into memcpy if we can prove source and destination don't overlap.
13537
9f5e9983
JJ
13538 * tree-inline.c: Include gt-tree-inline.h.
13539 (clone_fn_id_num): New variable.
13540 (clone_function_name): New function.
13541 (tree_function_versioning): Use it.
13542 * Makefile.in (GTFILES): Add tree-inline.c.
13543
e54d52a8
MM
135442009-03-27 Mark Mitchell <mark@codesourcery.com>
13545
13546 * BASE-VER: Change to 4.5.0.
13547
e9d51dc6
XDL
135482009-03-27 Xinliang David Li <davidxl@google.com>
13549
13550 PR tree-optimization/39557
13551 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
13552
4577cea1
XDL
135532009-03-27 Xinliang David Li <davidxl@google.com>
13554
13555 PR tree-optimization/39548
2ba9daa7 13556 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
13557 candidate check.
13558
0f7464f4
L
135592009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13560
13561 * c-common.c (pointer_int_sum): Use %wd on return from
13562 tree_low_cst.
13563
a8847a7f
L
135642009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13565
13566 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
13567 on return from tree_low_cst.
13568
b0957daf
AP
135692009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
13570
13571 PR c++/36799
ba20e309
UB
13572 * ginclude/stdarg.h (va_copy): Define also for
13573 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 13574
a5f805df
MLI
135752009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13576
13577 PR c++/35652
13578 * builtins.h (c_strlen): Do not warn here.
13579 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
13580 * c-common.c (pointer_int_sum): Take an explicit location.
13581 Warn about offsets out of bounds.
13582 * c-common.h (pointer_int_sum): Adjust declaration.
13583
6f401211
RW
135842009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13585
a5f805df
MLI
13586 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
13587 markup glitch.
6f401211 13588
5a59b39e
JJ
135892009-03-26 Jakub Jelinek <jakub@redhat.com>
13590
13591 PR c++/39554
13592 * opts.c (warn_if_disallowed_function_p): Don't assume
13593 get_callee_fndecl must return non-NULL.
13594
d5f89b53
VM
135952009-03-26 Vladimir Makarov <vmakarov@redhat.com>
13596
13597 PR rtl-optimization/39522
13598 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
13599 when reg_reloaded_valid is set.
13600
61238a79
UW
136012009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13602
13603 * config/spu/divv2df3.c: New file.
13604 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
13605 (DPBIT_FUNCS): Filter out _div_df.
13606
03f8829b
BS
136072009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
13608
13609 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
13610 a jump insn, count that jump in the distance to the loop start.
13611
9fdcdc74
KK
136122009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
13613
13614 PR target/39523
13615 * config/sh/sh.c (calc_live_regs): Fix condition for global
13616 registers except PIC_OFFSET_TABLE_REGNUM.
13617
46994828
KT
136182009-03-25 Kai Tietz <kai.tietz@onevision.com>
13619
13620 PR/39518
13621 * doc/invoke.texi (-mconsole): New.
13622 (-mcygwin): New.
13623 (-mno-cygwin): New.
13624 (-mdll): New.
13625 (-mnop-fun-dllimport): New.
13626 (-mthread): New.
13627 (-mwin32): New.
13628 (-mwindows): New.
13629 (sub section "i386 and x86-64 Windows Options"): New.
13630
60839f5d 136312009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
13632
13633 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
13634 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
13635
ae560440
RG
136362009-03-25 Richard Guenther <rguenther@suse.de>
13637
13638 PR middle-end/39497
13639 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
13640 of -Wno-error.
13641
cd510f15
AM
136422009-03-25 Andrey Belevantsev <abel@ispras.ru>
13643
13644 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
13645 neither of haifa/selective schedulers are working.
13646
44ab0f0e
RW
136472009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13648
13649 * doc/invoke.texi (Debugging Options): Fix description of
13650 -fno-merge-debug-strings.
13651
ad9646c7
HPN
136522009-03-24 Hans-Peter Nilsson <hp@axis.com>
13653
e6142656
HPN
13654 * config/cris/libgcc.ver: New version-script.
13655 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
13656
ad9646c7
HPN
13657 * configure.ac <GAS features, nop mnemonic>: Add pattern
13658 crisv32-*-* for "nop".
ba20e309 13659 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
13660 * configure: Regenerate.
13661
09ac4473
IR
136622009-03-24 Ira Rosen <irar@il.ibm.com>
13663
13664 PR tree-optimization/39529
13665 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
13666 mark_sym_for_renaming for the tag copied to the new vector
13667 pointer.
13668
d94a427e
AL
136692009-03-24 Arthur Loiret <aloiret@debian.org>
13670
ba20e309 13671 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
13672 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
13673 EXTRA_SPEC_FUNCTIONS.
13674 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
13675 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
13676 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
13677 -march and -mtune options.
13678
60839f5d 136792009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
13680
13681 * config/m68k/t-rtems: Add m5329 multilib.
13682
603f5959
DS
136832009-03-24 Dodji Seketeli <dodji@redhat.com>
13684 Jakub Jelinek <jakub@redhat.com>
13685
13686 PR debug/39524
13687 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
13688 nodes.
13689
c5cdb03f
JJ
136902009-03-23 Jakub Jelinek <jakub@redhat.com>
13691
13692 PR c/39495
13693 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
13694 instead of c_parser_expression_conv, if original_code isn't one of the
13695 4 allowed comparison codes, fail.
13696
3691626c
RG
136972009-03-23 Richard Guenther <rguenther@suse.de>
13698
13699 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
13700 * tree.h (struct tree_type): Likewise.
13701 * reload.h (struct insn_chain): Likewise.
13702 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
13703 * function.h (struct function): Likewise.
13704 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
13705
88ccb72a
JJ
137062009-03-23 Jakub Jelinek <jakub@redhat.com>
13707
13708 PR tree-optimization/39516
13709 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
13710
60839f5d 137112009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 13712
2ba9daa7 13713 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
13714 should be set true if BITS_PER_WORD of target is bigger than 32
13715
f82162f8
HPN
137162009-03-22 Hans-Peter Nilsson <hp@axis.com>
13717
13718 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
13719 Translate -B-options to -rpath-link. Correct existing
13720 rpath-link and conditionalize on !nostdlib.
13721
048fd785
RW
137222009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13723
13724 * doc/extend.texi (Function Attributes, Variable Attributes):
13725 Fix typos.
13726 * doc/invoke.texi (Debugging Options, Optimize Options)
13727 (i386 and x86-64 Options, MCore Options): Likewise.
13728
6e75c1a9
JJ
137292009-03-20 Jakub Jelinek <jakub@redhat.com>
13730
13731 PR debug/37890
13732 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
13733 it for block local namespace aliases.
13734 (gen_decl_die): Pass context_die to gen_namespace_die.
13735
ea1199ee
JJ
137362009-03-19 Jakub Jelinek <jakub@redhat.com>
13737
13738 PR c/39495
13739 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
13740 minimum or maximum value.
13741
58929c10
AO
137422009-03-19 Alexandre Oliva <aoliva@redhat.com>
13743
13744 * reginfo.c (globalize_reg): Recompute derived reg sets.
13745
60839f5d 137462009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
13747
13748 PR target/39063
13749 * libgcc2.c (mprotect): Do not use signed arguments for
13750 VirtualProtect, use DWORD arguments. Also fix the 'may
13751 be used uninitialized' warning for the np variable.
13752
f57c2f04
JJ
137532009-03-19 Jakub Jelinek <jakub@redhat.com>
13754
13755 PR target/39496
13756 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
13757 functions using regparm calling conventions when not optimizing.
13758 (ix86_function_sseregparm): Similarly for sseregparm calling
13759 conventions.
13760
9e517d61
LF
137612009-03-19 Li Feng <nemokingdom@gmail.com>
13762
13763 PR middle-end/39500
13764 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
13765 dependence if the first conflict is after niter iterations.
13766
8ef20026
HPN
137672009-03-19 Hans-Peter Nilsson <hp@axis.com>
13768
13769 PR middle-end/38609
13770 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
13771 functions with dynamic stack-pointer adjustments.
13772
64e4a1a6
BE
137732009-03-19 Ben Elliston <bje@au.ibm.com>
13774
13775 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
13776 option; change to -msdata=data.
13777
9a0f3e86
RW
137782009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13779
13780 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
13781 and -fopenmp.
13782
09bc5979
EB
137832009-03-18 Eric Botcazou <ebotcazou@adacore.com>
13784
13785 PR target/35180
13786 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
13787
332459cd
SL
137882009-03-18 Sandra Loosemore <sandra@codesourcery.com>
13789
13790 * doc/invoke.texi (Code Gen Options): Expand discussion of
13791 -fno-common.
13792
8f5929e1
JJ
137932009-03-18 Jakub Jelinek <jakub@redhat.com>
13794
13795 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
13796 * matrix-reorg.c (struct matrix_info): Likewise.
13797 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
13798 * rtl.h (struct mem_attrs): Likewise.
13799 * df.h (struct df): Likewise.
13800 * tree-data-ref.h (struct data_dependence_relation): Likewise.
13801 * ira-int.h (struct ira_allocno): Likewise.
13802 * df-scan.c (struct df_collection_rec): Likewise.
13803 * ira.c (struct equivalence): Likewise.
13804 * function.c (struct temp_slot): Likewise.
13805 * cfgloop.h (struct loop): Likewise.
13806
d130d647
JJ
13807 PR debug/39485
13808 * function.c (use_register_for_decl): When not optimizing, disregard
13809 register keyword for variables with types containing methods.
13810
9968d233
SP
138112009-03-18 Sebastian Pop <sebastian.pop@amd.com>
13812
13813 PR middle-end/39447
13814 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
13815 (is_simple_operand): Call contains_component_ref_p before calling data
13816 reference analysis that would fail on COMPONENT_REFs.
13817
13818 * tree-vrp.c (search_for_addr_array): Fix formatting.
13819
69484bfd
RG
138202009-03-18 Richard Guenther <rguenther@suse.de>
13821
13822 * tree-vect-transform.c (vect_loop_versioning): Fold the
13823 generated comparisons.
13824 * tree-vectorizer.c (set_prologue_iterations): Likewise.
13825 (slpeel_tree_peel_loop_to_edge): Likewise.
13826
66811228
RW
138272009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13828
0631b69f
RW
13829 PR middle-end/37805
13830 * opts.c (print_specific_help): In addition to `undocumented',
13831 accept `separate' and `joined' flags if passed alone. Describe
13832 output by the first matched one of those.
13833 (common_handle_option): Skip over empty strings.
13834 * gcc.c (display_help): Fix help string for `--help='.
13835 * doc/invoke.texi (Option Summary, Overall Options): With
13836 `--help=', classes and qualifiers can both be repeated, but
13837 only the latter can be negated. One should not pass only
13838 negated qualifiers. Fix markup and examples.
13839
66811228
RW
13840 Revert
13841 2008-10-14 Jakub Jelinek <jakub@redhat.com>
13842 PR middle-end/37805
13843 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
13844 and -fhelp=separate.
13845
3c072c6b
JY
138462009-03-17 Jing Yu <jingyu@google.com>
13847
13848 PR middle-end/39378
80c65208
JY
13849 * function.h (struct rtl_data): Move is_thunk from here...
13850 (struct function): ...to here.
13851 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
13852 * varasm.c (assemble_start_function): Change is_thunk from crtl to
13853 cfun.
80c65208
JY
13854 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
13855 cfun.
13856 (alpha_does_function_need_gp, alpha_start_function): Likewise.
13857 (alpha_output_function_end_prologue): Likewise.
13858 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
13859 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
13860 (rs6000_output_function_epilogue): Likewise.
13861 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 13862
9ade279b
UB
138632009-03-17 Uros Bizjak <ubizjak@gmail.com>
13864
13865 PR target/39482
13866 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
13867 from different units in a single alternative.
13868 (*truncdfsf_i387): Ditto.
13869 (*truncxfsf2_mixed): Ditto.
13870 (*truncxfdf2_mixed): Ditto.
13871
16e60c17
JJ
138722009-03-17 Jakub Jelinek <jakub@redhat.com>
13873
98381eb4
JJ
13874 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
13875 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
13876
df5deb18
JJ
13877 PR debug/39474
13878 * tree-ssa-live.c (remove_unused_locals): Don't remove local
13879 unused non-artificial variables when not optimizing.
13880
a3f596ba
JJ
13881 PR debug/39471
13882 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
13883 DW_TAG_imported_module even if decl is IMPORTED_DECL with
13884 NAMESPACE_DECL in its DECL_INITIAL.
13885
6b2b8871
JJ
13886 PR middle-end/39443
13887 * optabs.c (set_user_assembler_libfunc): New function.
13888 * expr.h (set_user_assembler_libfunc): New prototype.
13889 * c-common.c: Include libfuncs.h.
13890 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
13891 for memcmp, memset, memcpy, memmove and abort.
13892 * Makefile.in (c-common.o): Depend on libfuncs.h.
13893
16e60c17
JJ
13894 PR debug/39412
13895 * dwarf2out.c (gen_inlined_enumeration_type_die,
13896 gen_inlined_structure_type_die, gen_inlined_union_type_die,
13897 gen_tagged_type_instantiation_die): Removed.
13898 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
13899 do nothing.
13900
4d936aca
JJ
139012009-03-17 Janis Johnson <janis187@us.ibm.com>
13902
13903 PR testsuite/38526
13904 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
13905 its use.
13906 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
13907 (check-parallel-%): Ditto.
13908 (check-consistency): Ditto.
13909
4e9b2e50
KT
139102009-03-17 Kai Tietz <kai.tietz@onevision.com>
13911
13912 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
13913 local variable rhs by NULL_TREE.
13914
21440b2d
L
139152009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13916
13917 PR target/39477
9ade279b 13918 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 13919
d8905c6a
L
139202009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13921
13922 PR target/39476
9ade279b 13923 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
13924
139252009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
13926
13927 PR target/39473
13928 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
13929 for ms->sysv ABI calls only in 64bit mode.
13930
13931 * config/i386/i386.md (untyped_call): Support 32bit.
13932
cdcabece
L
139332009-03-16 H.J. Lu <hongjiu.lu@intel.com>
13934
13935 * doc/extend.texi: Replace x86_65 with x86_64.
13936
97b4ba9f
JJ
139372009-03-16 Jakub Jelinek <jakub@redhat.com>
13938
13939 PR tree-optimization/39455
13940 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
13941 mismatches for POINTER_TYPE_P (type).
13942 (number_of_iterations_le): Likewise.
13943
60839f5d 139442009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
13945
13946 * config/picochip/picochip.c: Removed profiling support.
13947 * config/picochip/picochip.md: Removed profiling instruction.
13948 * config/picochip/picochip.h: Removed profiling builtin.
13949
f38095f3
JM
139502009-03-16 Joseph Myers <joseph@codesourcery.com>
13951
13952 * doc/install.texi (--with-host-libstdcxx): Document.
13953
2cb4817b
AS
139542009-03-14 Anatoly Sokolov <aesok@post.ru>
13955
13956 PR target/34299
13957 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
13958 generate a warning if the function name does not begin with
13959 "__vector" and the function has either the 'signal' or 'interrupt'
13960 attribute, from here to ...
13961 (avr_declare_function_name): ...here. New function.
13962 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
13963 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
13964
39b2ac74
JJ
139652009-03-14 Jakub Jelinek <jakub@redhat.com>
13966
13967 PR bootstrap/39454
13968 * cse.c (fold_rtx): Don't modify original const_arg1 when
13969 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
13970 separate variable instead.
13971 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
13972 from out of range shift counts.
13973 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
13974
ad41bd84 139752009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 13976
60839f5d 13977 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
13978 diagnostic.h with $(DIAGNOSTIC_H).
13979
ad41bd84 139802009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
13981
13982 PR target/39431
13983 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
13984 predicate.
13985 * config/i386/sync.md (sync_compare_and_swap<mode>,
13986 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
13987 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
13988 into a register.
13989 (sync_double_compare_and_swapdi_pic,
13990 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
13991 cmpxchg8b_pic_memory_operand instead of just memory_operand.
13992
122c59c7
L
139932009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13994
13995 PR target/39445
9ade279b 13996 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 13997
cec8874f
L
139982009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13999
14000 PR target/39327
14001 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14002 (avx_addsubv4df3): Likewise.
14003 (*avx_addsubv4sf3): Likewise.
14004 (sse3_addsubv4sf3): Likewise.
14005
bbb52802
L
140062009-03-12 H.J. Lu <hongjiu.lu@intel.com>
14007
14008 PR target/38824
9ade279b 14009 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 14010
a812fb07
VM
140112009-03-12 Vladimir Makarov <vmakarov@redhat.com>
14012
14013 PR debug/39432
14014 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
14015 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
14016 registers for allocnos created from user-defined variables.
14017
4caab5ba
UW
140182009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14019
14020 PR target/39181
14021 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
14022 of non-integer mode as well.
14023
498e51ca
AN
140242009-03-11 Adam Nemet <anemet@caviumnetworks.com>
14025
14026 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
14027 for functions for which the parameter types are unknown.
14028
9bfaf89d
JJ
140292009-03-11 Jakub Jelinek <jakub@redhat.com>
14030
14031 PR target/39137
9ade279b 14032 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
14033 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
14034 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
14035 * config/i386/i386.c (ix86_local_alignment): For
14036 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
14037 long long variables on the stack to avoid dynamic realignment.
14038 Allow the first argument to be a decl rather than type.
14039 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
14040
18a3bdcb
NC
140412009-03-11 Nick Clifton <nickc@redhat.com>
14042
14043 PR target/5362
40190a76
NC
14044 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
14045 options.
14046 Add description to mno-lsim option.
14047 * config/mcore/mcore.h: Remove comment about deprecated m4align
14048 option.
14049 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
14050 * doc/invoke.texi: Add description of mno-lsim and
14051 mstack-increment options.
14052
18a3bdcb
NC
14053 * config/fr30/fr30.opt: Document the -mno-lsim option.
14054 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
14055 and -mno-lsim options.
14056
dc215785
UW
140572009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14058
14059 * fold-const.c (fold_comparison): Only call fold_inf_compare
14060 if the mode supports infinities.
14061
7716876b
JM
140622009-03-11 Jason Merrill <jason@redhat.com>
14063
14064 PR debug/39086
14065 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
14066 end already did. Notice GIMPLE_CALL modifications of the result.
14067 Don't copy debug information from an ignored decl or a decl from
14068 another function.
14069
ddef83d2
RG
140702009-03-10 Richard Guenther <rguenther@suse.de>
14071 Nathan Froyd <froydnj@codesourcery.com>
14072
14073 PR middle-end/37850
9ade279b 14074 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
14075 (__divMODE3): Likewise.
14076
9a9ba8d9
JJ
140772009-03-09 Jakub Jelinek <jakub@redhat.com>
14078
14079 PR tree-optimization/39394
14080 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
14081 DECL_SIZE_UNIT of variable length FIELD_DECLs.
14082
929b7fc3
AK
140832009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14084
14085 * recog.c (verfiy_changes): Disallow renaming of hard regs in
14086 inline asms for register asm ("") declarations.
14087
1803581d
EB
140882009-03-09 Eric Botcazou <ebotcazou@adacore.com>
14089
14090 * fold-const.c (fold_unary): Fix comment.
14091
8454d27e
JH
140922009-03-07 Jan Hubicka <jh@suse.cz>
14093
14094 PR target/39361
969a5433
JJ
14095 * tree-inline.c (setup_one_parameter): Do replacement of const
14096 argument by constant in SSA form.
8454d27e 14097
3a695389
UW
140982009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14099
14100 PR middle-end/38028
14101 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
14102 determine alignment passed to assign_stack_local.
14103 (assign_parms_unsplit_complex): Likewise.
14104 * except.c (sjlj_build_landing_pads): Likewise.
14105
9f0e7885
JJ
141062009-03-06 Jakub Jelinek <jakub@redhat.com>
14107
65401a0b
JJ
14108 PR middle-end/39360
14109 * tree-flow.h (add_referenced_var): Return bool instead of void.
14110 * tree-dfa.c (add_referenced_var): Return result of
14111 referenced_var_check_and_insert call.
14112 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
14113 of referenced_var_check_and_insert.
14114
9f0e7885 14115 PR debug/39372
9ade279b 14116 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
14117 (gen_variable_die): Emit DW_AT_location on abstract static variable's
14118 DIE, don't emit it if abstract origin already has it.
14119 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
14120 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
14121
3b664bd1
JBG
141222009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
14123
ba20e309 14124 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
14125 detection.
14126 (write_tm_constrs_h): Indent generated code.
14127
d8f8ca80
RR
141282009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14129
14130 * doc/extend.texi (Function Attributes): Add documentation
14131 for isr attributes.
14132
6c3d550c
JJ
141332009-03-06 Jakub Jelinek <jakub@redhat.com>
14134
14135 PR debug/39387
14136 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
14137 take locus from its DECL_SOURCE_LOCATION instead of input_location.
14138
f9e96751
BS
141392009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
14140
14141 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
14142 the loop as bad.
14143
ee0ee7e2
JJ
141442009-03-05 Jakub Jelinek <jakub@redhat.com>
14145
14146 PR debug/39379
14147 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
14148 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
14149
6c6094f1
UB
141502009-03-05 Uros Bizjak <ubizjak@gmail.com>
14151
14152 * config/i386/i386.md (R8_REG, R9_REG): New constants.
14153 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
14154 constants instead of magic numbers.
14155 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
14156 (QI_REG_P): Ditto.
14157 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
14158 (x86_64_ms_abi_int_parameter_registers): Ditto.
14159 (x86_64_int_return_registers): Ditto.
09f8a8d3 14160 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
14161 (ix86_expand_call): Ditto for clobbered_registers array.
14162 (ix86_hard_regno_mode_ok): Ditto.
14163 (x86_extended_QIreg_mentioned_p): Ditto.
14164
b267bd41
R
141652009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
14166
6c6094f1 14167 PR tree-optimization/39349
1f3ad3f0
R
14168 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
14169
b267bd41
R
14170 * combine.c (gen_lowpart_for_combine): Use omode when generating
14171 clobber.
14172
1242bc9d
R
141732009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
14174
6c6094f1 14175 PR rtl-optimization/39235
1242bc9d
R
14176 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
14177
48f03606
ZD
141782009-03-04 Zdenek Dvorak <ook@ucw.cz>
14179
14180 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
14181
b505e785
RG
141822009-03-04 Richard Guenther <rguenther@suse.de>
14183
14184 PR tree-optimization/39362
14185 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
14186 that occur in abnormal PHIs should be varying.
14187
f017bf5e
ZD
141882009-03-04 Zdenek Dvorak <ook@ucw.cz>
14189
14190 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
14191 Extend comments.
14192 (simple_iv): Take loop as an argument instead of statement.
14193 * tree-scalar-evolution.h (simple_iv): Declaration changed.
14194 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
14195 to simple_iv.
14196 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
14197 Ditto.
14198 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
14199 * matrix-reorg.c (analyze_transpose): Ditto.
14200 * tree-data-ref.c (dr_analyze_innermost): Ditto.
14201 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
14202 * tree-predcom.c (ref_at_iteration): Ditto.
14203 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
14204
6a66f28e
RG
142052009-03-04 Richard Guenther <rguenther@suse.de>
14206
14207 PR tree-optimization/39358
14208 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
14209 escaped_id and callused_id.
14210 (solve_graph): Likewise.
14211
57e454ee
RG
142122009-03-04 Richard Guenther <rguenther@suse.de>
14213
14214 PR tree-optimization/39339
14215 * tree-sra.c (try_instantiate_multiple_fields): Make it
14216 no longer ICE on the above.
14217
a6fe9ed4
JM
142182009-03-03 Joseph Myers <joseph@codesourcery.com>
14219
14220 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
14221 that fits within Pmode.
14222
dc672951
SE
142232009-03-03 Steve Ellcey <sje@cup.hp.com>
14224
14225 PR middle-end/10109
14226 * tm.texi (LIBCALL_VALUE): Update description.
14227
8b9d598f
SE
142282009-03-03 Steve Ellcey <sje@cup.hp.com>
14229
14230 PR middle-end/34443
14231 * doc/extend.texi (section): Update description.
14232
13e4e36e
L
142332009-03-03 H.J. Lu <hongjiu.lu@intel.com>
14234
14235 PR middle-end/39345
14236 * tree-inline.c (remapped_type): New.
14237 (can_be_nonlocal): Call remapped_type instead of remap_type.
14238
067dd3c9
JJ
142392009-03-03 Jakub Jelinek <jakub@redhat.com>
14240
14241 PR fortran/39354
14242 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
14243 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
14244
9bd9f738
RG
142452009-03-03 Richard Guenther <rguenther@suse.de>
14246
14247 PR middle-end/39272
14248 * tree.c (tree_nonartificial_location): New function.
14249 * tree.h (tree_nonartificial_location): Declare.
14250 * builtins.c (expand_builtin_memory_chk): Provide location
14251 of the call location for artificial function pieces.
14252 (maybe_emit_chk_warning): Likewise.
14253 (maybe_emit_sprintf_chk_warning): Likewise.
14254 (maybe_emit_free_warning): Likewise.
14255 * expr.c (expand_expr_real_1): Likewise.
14256
f07049c8
JJ
142572009-03-03 Jakub Jelinek <jakub@redhat.com>
14258
14259 PR tree-optimization/39343
14260 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
14261 COMPONENT_REF t has ARRAY_TYPE.
14262
7d4fba4a
SP
142632009-03-02 Sebastian Pop <sebastian.pop@amd.com>
14264
14265 PR middle-end/39335
14266 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
14267 when the type precision of the induction variable should be
14268 larger than the type precision of nit.
14269 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
14270 * graphite.c (graphite_loop_normal_form): Same.
14271 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
14272
78168632
UB
142732009-03-02 Uros Bizjak <ubizjak@gmail.com>
14274
14275 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
14276 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 14277 numbers to describe clobbered registers.
78168632 14278 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
14279 * config/i386/mmx.md (mmx_emms): Ditto.
14280 (mmx_femms): Ditto.
78168632 14281
63553059
RS
142822009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
14283
14284 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
14285 of ABI_64.
14286
500a1f85
UW
142872009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14288
14289 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
14290 (spu_section_type_flags): New function.
14291
962aae34
UB
142922009-03-02 Uros Bizjak <ubizjak@gmail.com>
14293
14294 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
14295 reg_class_contents of FLOAT_REGS into a temporary.
14296
6dfb529c 142972009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 14298 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
14299
14300 PR tree-optimization/39318
14301 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
14302 information to the vectorized statement.
14303
6b5629db
UB
143042009-03-01 Uros Bizjak <ubizjak@gmail.com>
14305
434426d2
UB
14306 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
14307 variable. Use defined names instead of magic constants for REX SSE
14308 registers.
6b5629db 14309
14e5b285
RG
143102009-03-01 Richard Guenther <rguenther@suse.de>
14311
14312 PR tree-optimization/39331
14313 * omp-low.c (lower_send_shared_vars): Do not receive new
14314 values for the reference of DECL_BY_REFERENCE parms or results.
14315
526d73ab
JH
143162009-03-01 Jan Hubicka <jh@suse.cz>
14317
14318 PR debug/39267
14319 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
14320 BLOCK_NONLOCALIZED_VAR): New macros.
14321 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
14322 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
14323 gen_decl_die): Add origin argument. Allow generation of die with
14324 origin at hand only.
526d73ab 14325 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
14326 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
14327 of gen_*.
526d73ab
JH
14328 (gen_block_die): Fix checking for unused blocks.
14329 (process_scope_var): Break out from .... ; work with origins only.
14330 (decls_for_scope) ... here; process nonlocalized list.
14331 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
14332 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
14333 vars.
526d73ab
JH
14334 (dump_scope_block): Dump them.
14335 * tree-inline.c (remap_decls): Handle nonlocalized vars.
14336 (remap_block): Likewise.
14337 (can_be_nonlocal): New predicate.
14338 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
14339
7a9d3fe8
RW
143402009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14341
14342 * configure: Regenerate.
14343
b3cdf3cb
RW
143442009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14345
a16d1645 14346 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 14347 Reuse help texts for duplicate options which do not have any.
a16d1645 14348
1156c176
RW
14349 * gcc.c (display_help): Document --version.
14350
033505fc
RW
14351 * gcc.c (main): If print_help_list and verbose_flag, ensure
14352 driver output comes before subprocess output.
14353
4d077054
RW
14354 * optc-gen.awk: Assign all remaining fields to help string,
14355 space-separated, for multi-line help in *.opt.
14356
a072f1cf
RW
14357 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
14358 -Wno-pedantic-ms-format is for MinGW targets only.
14359
b3cdf3cb
RW
14360 * doc/options.texi (Option file format): Fix bad indentation,
14361 restoring dropped sentence.
14362
a3aadcc5
JH
143632009-02-28 Jan Hubicka <jh@suse.cz>
14364
14365 * tree-inline.c (tree_function_versioning): Output debug info.
14366
1cf5abb3
JH
143672009-02-28 Jan Hubicka <jh@suse.cz>
14368
14369 PR debug/39267
14370 * tree-inline.c (setup_one_parameter): Do not copy propagate
14371 arguments when not optimizing.
14372
c4d3f42f
L
143732009-02-28 H.J. Lu <hongjiu.lu@intel.com>
14374
14375 PR target/39327
14376 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14377 (avx_addsubv4df3): Likewise.
14378 (*avx_addsubv4sf3): Likewise.
14379 (sse3_addsubv4sf3): Likewise.
14380 (*avx_addsubv2df3): Likewise.
14381 (sse3_addsubv2df3): Likewise.
14382 (avx_unpckhps256): Correct item selectors.
14383 (avx_unpcklps256): Likewise.
14384 (avx_unpckhpd256): Likewise.
14385 (avx_unpcklpd256): Likewise.
14386
eb50f5f4
JH
143872009-02-28 Jan Hubicka <jh@suse.cz>
14388
14389 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
14390 static vars.
14391 (copy_arguments_for_versioning): If var is declared don't declare it.
14392 (tree_function_versioning): First setup substitutions and then copy
14393 args.
14394
26140130
JH
143952009-02-27 Jan Hubicka <jh@suse.cz>
14396
14397 PR debug/39267
14398 * cgraph.h (varpool_output_debug_info): Remove.
14399 * cgraphunit.c (varpool_output_debug_info): Remove.
14400 * dwarf2out.c (deferred_locations_struct): New struct
14401 (deferred_locations): New type.
14402 (deferred_locations_list): New static var.
14403 (deffer_location): New function.
14404 (gen_variable_die): Use it.
14405 (decls_for_scope): Output info on local static vars.
14406 (dwarf2out_finish): Process deferred locations.
14407 * varpool.c (varpool_output_debug_info): Remove.
14408
cff7525f
JH
144092009-02-27 Jan Hubicka <jh@suse.cz>
14410
14411 PR debug/39267
14412 * tree.h (TREE_PROTECTED): Fix comment.
14413 (BLOCK_HANDLER_BLOCK): Remove.
14414 (struct tree_block): Remove handler_block add body_block.
14415 (inlined_function_outer_scope_p): New.
14416 (is_body_block): Remove.
14417 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
14418 * dwarf2out.c (is_inlined_entry_point): Remove.
14419 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
14420 (gen_block_die): Use is_inlined_entry_point check. Remove body block
14421 code.
cff7525f
JH
14422 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
14423 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
14424 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
14425 block with multiple subblocks.
cff7525f
JH
14426 (dump_scope_block): Prettier output; dump more flags and info.
14427 (dump_scope_blocks): New.
14428 (remove_unused_locals): Use dump_scope_blocks.
14429 * tree-flow.h (dump_scope_blocks): Declare.
14430 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
14431 * stmt.c (is_body_block): Remove.
14432 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
14433 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
14434
c20993b9
SP
144352009-02-27 Sebastian Pop <sebastian.pop@amd.com>
14436
14437 PR middle-end/39308
2ba9daa7 14438 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
14439 number_of_iterations_exit from a gcc_assert.
14440
e3cba5e5
AK
144412009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14442
60839f5d 14443 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
14444 jumps if COND is NULL.
14445 (find_cond_jump): New function.
14446 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 14447 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 14448
9dadeeb8
UB
144492009-02-26 Uros Bizjak <ubizjak@gmail.com>
14450
14451 * config/alpha/alpha.h (alpha_expand_mov): Return false if
14452 force_const_mem returns NULL_RTX.
14453
625d3251
EB
144542009-02-26 Jan Hubicka <jh@suse.cz>
14455
14456 PR debug/39267
14457 * cgraph.h (varpool_output_debug_info): Remove.
14458 * cgraphunit.c (varpool_output_debug_info): Remove.
14459 * dwarf2out.c (deferred_locations_struct): New struct
14460 (deferred_locations): New type.
14461 (deferred_locations_list): New static var.
14462 (deffer_location): New function.
14463 (gen_variable_die): Use it.
14464 (decls_for_scope): Output info on local static vars.
14465 (dwarf2out_finish): Process deferred locations.
14466 * varpool.c (varpool_output_debug_info): Remove.
14467
38432148 144682009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
14469
14470 PR rtl-optimization/39241
14471 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
14472 to subreg_offset_representable_p.
14473
62d049cf
PB
144742009-02-25 Paolo Bonzini <bonzini@gnu.org>
14475
14476 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
14477 execute function prototype. Get f and nregs from max_reg_num
14478 and get_insns. Remove the first backward pass as it's dead,
14479 guard the forward pass by flag_expensive_optimizations.
14480 (rest_of_handle_regmove): Delete.
14481 (pass_regmove): Replace it with regmove_optimize.
14482
f618d33e
MJ
144832009-02-25 Martin Jambor <mjambor@suse.cz>
14484
14485 PR tree-optimization/39259
14486 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 14487 calls_alloca function flags.
f618d33e
MJ
14488 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
14489 calls are detected.
14490
c8a05f7c
PB
144912009-02-25 Paolo Bonzini <bonzini@gnu.org>
14492
14493 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
14494 flags_set_1_rtx, flags_set_1_set): Delete.
14495 (regmove_optimize): Do not call mark_flags_life_zones.
14496
6d2538f5
JB
144972009-02-24 Julian Brown <julian@codesourcery.com>
14498
14499 PR target/35965
14500 * config/arm/arm.c (require_pic_register): Only set
14501 cfun->machine->pic_reg once per function.
14502
a2fa6772
SL
145032009-02-24 Sandra Loosemore <sandra@codesourcery.com>
14504
14505 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 14506 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 14507
5472de36
SE
145082009-02-24 Steve Ellcey <sje@cup.hp.com>
14509
14510 PR target/33785
14511 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
14512
844216f3
RG
145132009-02-24 Richard Guenther <rguenther@suse.de>
14514
14515 PR debug/39285
14516 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
14517
71adbef3 145182009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 14519 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
14520
14521 PR tree-optimization/39233
14522 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
14523 from converting them to a generic type.
14524
f1a558e0
SP
145252009-02-23 Sebastian Pop <sebastian.pop@amd.com>
14526
14527 PR tree-optimization/39260
14528 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
14529 contains a condition with a real type.
14530 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
14531
d8028f2c
JM
145322009-02-23 Jason Merrill <jason@redhat.com>
14533
14534 PR c++/38880
14535 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
14536 narrowing_initializer_constant_valid_p.
2ba9daa7 14537 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
14538 null_pointer_node for adding a pointer to itself.
14539
9283b513
JH
145402009-02-23 Jan Hubicka <jh@suse.cz>
14541
14542 PR c/12245
9dadeeb8
UB
14543 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
14544 resizing.
9283b513 14545
61e04322
JH
145462009-02-23 Jan Hubicka <jh@suse.cz>
14547
9dadeeb8
UB
14548 PR tree-optimization/37709
14549 * tree.c (block_ultimate_origin): Move here from dwarf2out.
14550 * tree.h (block_ultimate_origin): Declare.
14551 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
14552 * tree-ssa-live.c (remove_unused_scope_block_p):
14553 Eliminate blocks containig no instructions nor live variables nor
14554 nested blocks.
14555 (dump_scope_block): New function.
14556 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 14557 enable dumping at TDF_DETAILS.
61e04322 14558
38432148 145592009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
14560
14561 * config/i386/i386.c (classify_argument): Don't allow COImode
14562 and OImode.
14563 (function_arg_advance_32): Don't allow OImode.
14564 (function_arg_32): Likewise.
14565 (function_value_32): Likewise.
14566 (return_in_memory_32): Likewise.
14567 (function_arg_64): Remove OImode comment.
14568
38432148 145692009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
14570
14571 PR target/39261
14572 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
14573 ix86_expand_vector_set for V4DImode in 64bit mode only.
14574 (ix86_expand_vector_init_one_var): Likewise.
14575
dcd739a6
SP
145762009-02-21 Sebastian Pop <sebastian.pop@amd.com>
14577
14578 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
14579
6c3b938d
RS
145802009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
14581
8e361f23 14582 PR bootstrap/39257
6c3b938d
RS
14583 * loop-iv.c: Revert last change.
14584 * emit-rtl.c: Likewise.
14585
38432148 145862009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
14587
14588 PR target/39256
14589 * config/i386/i386.c (type_natural_mode): Remove an extra
14590 space in the warning message.
14591 (function_value_32): Handle 32-byte vector modes.
14592 (return_in_memory_32): Likewise.
14593
2ec62529
RS
145942009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
14595
14596 * loop-iv.c (truncate_value): New function.
14597 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
14598 of lowpart_subreg.
14599 (lowpart_subreg): Move to...
14600 * emit-rtl.c: ...here.
14601
ecb8c3cc 146022009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 14603
ecb8c3cc
DS
14604 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
14605 accidental and undocumented change at revision 140860.
14606
ae46a823
JM
146072009-02-21 Joseph Myers <joseph@codesourcery.com>
14608
14609 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
14610 take gimple_seq * arguments.
14611 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
14612 types_compatible_p langhook.
14613
07d8efe3 146142009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 14615 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
14616
14617 * config/arm/arm.c (arm_builtin_va_list): New function.
14618 (arm_expand_builtin_va_start): Likewise.
14619 (arm_gimplify_va_arg_expr): Likewise.
14620 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
14621 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
14622 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
14623 (va_list_type): New variable.
14624 (arm_mangle_type): Mangle va_list_type appropriately.
14625
b1fb9f56
JJ
146262009-02-20 Jakub Jelinek <jakub@redhat.com>
14627
14628 PR middle-end/39157
14629 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
14630 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
14631 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
14632 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
14633 parameter to 1000 for -O1 by default.
14634 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
14635 parameter.
14636 * loop-invariant.c: Include params.h.
14637 (move_loop_invariants): Don't call move_single_loop_invariants on
14638 very large loops.
14639
5bc0807c
JM
146402009-02-20 Jaka Mocnik <jaka@xlab.si>
14641
14642 * calls.c (emit_library_call_value_1): Use slot_offset instead of
14643 offset when calculating bounds for indexing stack_usage_map. Fixes
14644 a buffer overflow with certain target setups.
14645
c69cd1f5
JJ
146462009-02-20 Jakub Jelinek <jakub@redhat.com>
14647
14648 PR target/39240
14649 * calls.c (expand_call): Clear try_tail_call if caller and callee
14650 disagree in promotion of function return value.
14651
09812622
JJ
146522009-02-19 Jakub Jelinek <jakub@redhat.com>
14653
14654 PR target/39175
14655 * c-common.c (c_determine_visibility): If visibility changed and
14656 DECL_RTL has been already set, call make_decl_rtl to update symbol
14657 flags.
14658
68017cb4
L
146592009-02-19 H.J. Lu <hongjiu.lu@intel.com>
14660
14661 PR c++/39188
14662 * varasm.c (assemble_variable): Don't check DECL_NAME when
14663 globalizing a variable.
14664
ab4194da
JM
146652009-02-19 Joseph Myers <joseph@codesourcery.com>
14666
14667 PR c/38483
14668 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
14669 expression before any __builtin_trap call.
14670 * c-typeck.c (build_function_call): Convert and check function
14671 arguments before generating a call to a trap. Evaluate the
14672 function arguments before the trap.
14673
6b67572e
UB
146742009-02-19 Uros Bizjak <ubizjak@gmail.com>
14675
14676 PR target/39228
14677 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
14678 (UNSPEC_FXAM_MEM): New unspec.
14679 (fxam<mode>2_i387_with_temp): New insn and split pattern.
14680 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
14681 memory using fxam<mode>2_i387_with_temp to remove excess precision.
14682
9e39dba6
RG
146832009-02-19 Richard Guenther <rguenther@suse.de>
14684
14685 PR tree-optimization/39207
14686 PR tree-optimization/39074
14687 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
14688 storedanything_tree): New.
14689 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 14690 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
14691 (build_succ_graph): Add edges from STOREDANYTHING to all
14692 non-direct nodes.
14693 (init_base_vars): Initialize STOREDANYTHING.
14694 (compute_points_to_sets): Free substitution info after
14695 building the succ graph.
14696 (ipa_pta_execute): Likewise.
14697
14698 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
14699 field.
14700 (do_ds_constraint): Do not add to special var or non-pointer
14701 field solutions.
14702 (type_could_have_pointers): Split out from ...
14703 (could_have_pointers): ... here. For arrays use the element type.
14704 (create_variable_info_for): Initialize may_have_pointers.
14705 (new_var_info): Likewise.
14706 (handle_lhs_call): Make the HEAP variable unknown-sized.
14707 (intra_create_variable_infos): Use a type with pointers for
14708 PARM_NOALIAS, make it unknown-sized.
14709
fd7b2603
L
147102009-02-18 H.J. Lu <hongjiu.lu@intel.com>
14711
14712 PR target/39224
6b67572e 14713 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 14714
98b80692
JM
147152009-02-18 Jason Merrill <jason@redhat.com>
14716
14717 PR target/39179
14718 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
14719 value if DECL_EXTERNAL.
14720 * tree-sra.c (sra_walk_gimple_assign): Likewise.
14721 * target.h (gcc_target::binds_local_p): Clarify "module".
14722 * tree.h (TREE_PUBLIC): Clarify "module".
14723
0705d3f4
L
147242009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
14725
14726 PR target/38891
14727 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
14728 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
14729
bce08d50
L
147302009-02-17 H.J. Lu <hongjiu.lu@intel.com>
14731
14732 PR target/39082
14733 * c.opt (Wabi): Support C and ObjC.
14734 (Wpsabi): New.
14735
14736 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
14737
14738 * config/i386/i386.c (classify_argument): Warn once about the ABI
14739 change when passing union with long double.
14740
14741 * doc/invoke.texi: Update -Wabi for warning psABI changes.
14742
5600f233
JM
147432009-02-18 Joseph Myers <joseph@codesourcery.com>
14744
14745 PR c/35447
14746 * c-parser.c (c_parser_compound_statement): Always enter and leave
14747 a scope.
14748
8cd01fe6
JDA
147492009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14750
14751 PR target/34587
14752 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
14753
418df9d7
JJ
147542009-02-18 Jakub Jelinek <jakub@redhat.com>
14755
14756 PR tree-optimization/36922
14757 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
14758 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
14759 Likewise.
14760
082d2ebb
RS
147612009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14762
14763 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
14764 to 0 for EABI64.
14765
17de576c
RS
147662009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14767
14768 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
14769
6d8d5435
RS
147702009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14771
14772 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
14773 tree sharing.
14774
e69ff910
RB
147752009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
14776 Richard Sandiford <rdsandiford@googlemail.com>
14777
14778 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
14779 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
14780 (loongson_biadd): ...this.
14781
6b24ee26
RG
147822009-02-17 Richard Guenther <rguenther@suse.de>
14783
14784 PR tree-optimization/39202
14785 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
14786 a var make sure to follow existing collapses.
14787
91ab2c86
RG
147882009-02-17 Richard Guenther <rguenther@suse.de>
14789
14790 PR middle-end/39214
14791 * langhooks.c (lhd_print_error_function): Check for NULL block.
14792
73a63870
RG
147932009-02-17 Richard Guenther <rguenther@suse.de>
14794
14795 PR tree-optimization/39204
14796 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
14797 of the PHI arg.
14798
0e08f686
UB
147992009-02-17 Uros Bizjak <ubizjak@gmail.com>
14800
14801 * config/soft-fp/double.h: Update from glibc CVS.
14802
a60b7ddb
RG
148032009-02-17 Richard Guenther <rguenther@suse.de>
14804
14805 PR tree-optimization/39207
14806 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
14807 strict-aliasing warnings for pointers pointing to NULL.
14808
a47e20fd
JM
148092009-02-16 Joseph Myers <joseph@codesourcery.com>
14810
14811 PR c/35446
14812 * c-parser.c (c_parser_braced_init): Call pop_init_level when
14813 skipping until next close brace.
14814
50aab7dc
L
148152009-02-16 H.J. Lu <hongjiu.lu@intel.com>
14816
14817 PR target/37049
14818 * config/i386/i386.c (ix86_expand_push): Set memory alignment
14819 to function argument boundary.
14820
68e53db0
HS
148212009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
14822
14823 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
14824 in the lea_add. Reload eventually constraints it properly.
0d50d55a 14825 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
14826 "b", since it is not needed anymore.
14827
09e361bb
JJ
148282009-02-16 Jakub Jelinek <jakub@redhat.com>
14829
14830 * gthr-dce.h: Uglify function parameter and local variable names.
14831 * gthr-gnat.h: Likewise.
14832 * gthr-mipssde.h: Likewise.
14833 * gthr-nks.h: Likewise.
14834 * gthr-posix95.h: Likewise.
14835 * gthr-posix.h: Likewise.
14836 * gthr-rtems.h: Likewise.
14837 * gthr-single.h: Likewise.
14838 * gthr-solaris.h: Likewise.
14839 * gthr-tpf.h: Likewise.
14840 * gthr-vxworks.h: Likewise.
14841 * gthr-win32.h: Likewise.
14842
47f5a48f
L
148432009-02-15 H.J. Lu <hongjiu.lu@intel.com>
14844
14845 PR target/39196
14846 * config/i386/i386.md: Restrict the new peephole2 to move
14847 between MMX/SSE registers.
14848
68c9ab45
RG
148492009-02-15 Richard Guenther <rguenther@suse.de>
14850
14851 Revert
14852 2009-02-13 Richard Guenther <rguenther@suse.de>
14853
14854 * configure.ac: Enable LFS.
14855 * configure: Re-generate.
14856 * config.in: Likewise.
14857
d7815554
UW
148582009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14859
14860 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
14861 spu_srqwbyte, spu_srqwbytebc): Define.
14862 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
14863 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
14864 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
14865 "shrqby_<mode>"): New insn-and-split patterns.
14866 * config/spu/spu.c (expand_builtin_args): Determine and return
14867 number of operands using spu_builtin_description data.
14868 (spu_expand_builtin_1): Use it.
14869
c208436c
SE
148702009-02-13 Steve Ellcey <sje@cup.hp.com>
14871
14872 PR target/38056
14873 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
14874 TARGET_CONST_GP.
14875
c2e7ba7e
L
148762009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14877
14878 PR target/39149
14879 * config/i386/i386.c (override_options): Correct warning
6c6094f1 14880 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 14881
72f4e3a7
L
148822009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14883
14884 PR target/39152
14885 * config/i386/i386.md: Restrict the new peephole2 to move
14886 between the general purpose registers.
14887
53f648e2
L
148882009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14889
14890 PR target/39162
14891 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 14892 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
14893 (function_arg_advance): Updated.
14894 (function_arg): Likewise.
14895 (ix86_function_value): Likewise.
14896 (ix86_return_in_memory): Likewise.
14897 (ix86_sol10_return_in_memory): Likewise.
14898 (ix86_gimplify_va_arg): Likewise.
14899 (function_arg_32): Don't warn ABX ABI change here.
14900 (function_arg_64): Likewise.
14901
38432148 149022009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
14903
14904 * loop-iv.c (implies_p): In the final case, test that operands 0
14905 of the two comparisons match.
14906
dd2139e7
BS
14907 * config/bfin/bfin.c (find_prev_insn_start): New function.
14908 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
14909 (find_next_insn_start): Move.
14910
601b3e1a
RG
149112009-02-13 Richard Guenther <rguenther@suse.de>
14912
14913 * configure.ac: Enable LFS.
14914 * configure: Re-generate.
14915 * config.in: Likewise.
14916
f007042e
JM
149172009-02-13 Joseph Myers <joseph@codesourcery.com>
14918
14919 PR c/35444
14920 * c-parser.c (c_parser_parms_list_declarator): Discard pending
14921 sizes on syntax error after some arguments have been parsed.
14922
3f238e8b
JJ
149232009-02-12 Jakub Jelinek <jakub@redhat.com>
14924
14925 * doc/invoke.texi (-fira): Remove.
14926
328e13b7
L
149272009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14928
14929 * caller-save.c: Replace regclass.c with reginfo.c in comments.
14930 * recog.c: Likewise.
14931 * rtl.h: Likewise.
14932
c252db20
L
149332009-02-12 Uros Bizjak <ubizjak@gmail.com>
14934
14935 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
14936 (umul_ppmm): Likewise.
14937 (count_leading_zeros): Likewise.
14938 (count_trailing_zeros): Likewise.
14939 (UMUL_TIME): Likewise.
14940
149412009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14942
ba181049
UB
14943 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
14944 soft-fp/t-softfp to tmake_file.
c252db20
L
14945
14946 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
14947 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
14948 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
14949 IA64_BUILTIN_INFQ]: New.
c252db20
L
14950 (ia64_init_builtins): Initialize __builtin_infq,
14951 __builtin_fabsq and __builtin_copysignq if not HPUX.
14952 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
14953 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
14954
14955 * config/ia64/lib1funcs.asm (__divtf3): Define only if
14956 SHARED is defined.
14957 (__fixtfti): Likewise.
14958 (__fixunstfti): Likewise.
14959 (__floattitf): Likewise.
14960
14961 * config/ia64/libgcc-glibc.ver: New.
14962 * config/ia64/t-fprules-softfp: Likewise.
14963 * config/ia64/sfp-machine.h: Likewise.
14964
14965 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
14966 (LIBGCC2_TF_CEXT): Likewise.
14967 (TF_SIZE): Likewise.
14968 (TARGET_INIT_LIBFUNCS): Likewise.
14969
ba181049 14970 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 14971 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 14972
f13eae6a
L
149732009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14974
14975 * config/i386/i386.c (construct_container): Rewrite processing
14976 BLKmode with X86_64_SSE_CLASS.
14977
12019aec
L
149782009-02-12 Paolo Bonzini <bonzini@gnu.org>
14979
14980 PR target/39152
14981 * config/i386/i386.md: Replace simplify_replace_rtx with
14982 replace_rtx in the new peephole2.
14983
28c11eb3
NS
149842009-02-12 Nathan Sidwell <nathan@codesourcery.com>
14985
14986 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
14987 loop unrolling do not happen at -O2.
14988
c7b94907
MM
149892009-02-12 Michael Matz <matz@suse.de>
14990
14991 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
14992
61e98967
JJ
149932009-02-12 Jakub Jelinek <jakub@redhat.com>
14994
14995 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
14996 for -g3.
14997
a2a237b5
BE
149982009-02-12 Ben Elliston <bje@au.ibm.com>
14999
15000 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
15001 patterns when updating the back chain. Missed in the 2009-02-10
15002 change.
15003
853eda8d
JJ
150042009-02-11 Janis Johnson <janis187@us.ibm.com>
15005
15006 * doc/extend.texi (Decimal Floating Types): Update identifier of
15007 draft TR and list of missing support.
15008
3ad6b266
JJ
150092009-02-11 Jakub Jelinek <jakub@redhat.com>
15010
15011 PR middle-end/39154
15012 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
15013 bit to variable length decl's flags, add it also to its
15014 pointer replacement variable.
15015
b058b753
UB
150162009-02-11 Uros Bizjak <ubizjak@gmail.com>
15017 Jakub Jelinek <jakub@redhat.com>
15018
15019 PR target/39118
15020 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
15021 (memory_blockage): New expander.
15022 (*memory_blockage): New insn pattern.
15023 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
15024 instead of general blockage at the end of function prologue when
15025 frame pointer is used to access red zone area. Do not emit blockage
15026 when profiling, it is emitted in generic code.
15027 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
15028 function epilogue when frame pointer is used to access red zone area.
15029
bab64f23
PB
150302009-02-11 Paolo Bonzini <bonzini@gnu.org>
15031
0ce6dcfa 15032 PR target/38824
bab64f23
PB
15033 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
15034 by arithmetic with memory operands.
15035 * config/i386/predicates.md (commutative_operator): New.
15036
8fd94bda
JJ
150372009-02-10 Janis Johnson <janis187@us.ibm.com>
15038
15039 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
15040 bulleted lists.
15041
794511d2
EB
150422009-02-10 Eric Botcazou <ebotcazou@adacore.com>
15043
15044 * alias.h (record_alias_subset): Declare.
15045 * alias.c (record_alias_subset): Make global.
15046
6da7fc87
NC
150472009-02-10 Nick Clifton <nickc@redhat.com>
15048
15049 * tree-parloops.c: Change license to GPLv3.
15050 * ipa-struct-reorg.c: Change license to GPLv3.
15051 * ipa-struct-reorg.h: Change license to GPLv3.
15052
a03813c8
SE
150532009-02-10 Steve Ellcey <sje@cup.hp.com>
15054
15055 PR c/39084
15056 * c-decl.c (start_struct): Return NULL on error.
15057
fc3103e7
JJ
150582009-02-10 Jakub Jelinek <jakub@redhat.com>
15059
9b43d37b
JJ
15060 PR middle-end/39124
15061 * cfgloopmanip.c (remove_path): Call remove_bbs after
15062 cancel_loop_tree, not before it.
15063
fc3103e7 15064 PR target/39139
b058b753 15065 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
15066 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
15067 VAR_DECLs were seen.
15068 * tree-ssa-live.c (remove_unused_locals): Recompute
15069 cfun->has_local_explicit_reg_vars.
15070 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
15071 copies or clearings if cfun->has_local_explicit_reg_vars.
15072
dbf9ee15
UB
150732009-02-10 Uros Bizjak <ubizjak@gmail.com>
15074
15075 PR target/39118
15076 * config/i386/i386.c (expand_prologue): Emit blockage at the end
15077 of function prologue when frame pointer is used to access
15078 red zone area.
15079
bdec4dc7
RG
150802009-02-10 Richard Guenther <rguenther@suse.de>
15081
15082 PR middle-end/39127
15083 * gimplify.c (gimple_regimplify_operands): Always look if
15084 we need to create a temporary.
15085
7cae94fc
RG
150862009-02-10 Richard Guenther <rguenther@suse.de>
15087
15088 PR tree-optimization/39132
15089 * tree-loop-distribution.c (todo): New global var.
15090 (generate_memset_zero): Trigger TODO_rebuild_alias.
15091 (tree_loop_distribution): Return todo.
15092
a8800687
L
150932009-02-10 H.J. Lu <hongjiu.lu@intel.com>
15094
15095 PR target/39119
15096 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
15097 (x86_64_reg_class_name): Removed.
15098 (classify_argument): Return 0 if bytes > 32. Return 0 if the
15099 first one isn't X86_64_SSE_CLASS or any other ones aren't
15100 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
15101 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
15102 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
15103 and 3 X86_64_SSEUP_CLASS.
15104 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
15105 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
15106
d4bacef0
BE
151072009-02-10 Ben Elliston <bje@au.ibm.com>
15108
15109 * config/rs6000/rs6000.md (allocate_stack): Always use an update
15110 form instruction to update the stack back chain word, even if the
15111 user has disabled the generation of update instructions.
15112 (movdi_<mode>_update_stack): New.
15113 (movsi_update_stack): Likewise.
15114 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
15115 always use an update form instruction to update the stack back
15116 chain word.
15117
01d7d2f3
SP
151182009-02-09 Sebastian Pop <sebastian.pop@amd.com>
15119
15120 PR middle-end/38953
b058b753
UB
15121 * graphite.c (if_region_set_false_region): After moving a region in
15122 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
15123 (gloog): Remove wrong fix for PR38953.
15124
e41e2ab4
UW
151252009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15126
15127 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
15128 generation due to implicit sign extension.
15129
4bb07c5d
EB
151302009-02-09 Eric Botcazou <ebotcazou@adacore.com>
15131
15132 PR middle-end/38981
15133 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
15134 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
15135
f060a261
RG
151362009-02-09 Richard Guenther <rguenther@suse.de>
15137
15138 PR middle-end/35202
15139 * convert.c (convert_to_real): Disable (float)fn((double)x)
15140 to fnf(x) conversion if errno differences may occur and
15141 -fmath-errno is set.
15142
5a7e237c
AS
151432009-02-07 Anatoly Sokolov <aesok@post.ru>
15144
15145 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
15146 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15147 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15148
feab5a67
JM
151492009-02-06 Joseph Myers <joseph@codesourcery.com>
15150
15151 PR c/35434
15152 * c-common.c (handle_alias_attribute): Disallow attribute for
15153 anything not a FUNCTION_DECL or VAR_DECL.
15154
90ef2296
JJ
151552009-02-06 Janis Johnson <janis187@us.ibm.com>
15156
15157 PR c/39035
15158 * real.c (do_compare): Special-case compare of zero against
15159 decimal float value.
15160
1de2c900
JM
151612009-02-06 Joseph Myers <joseph@codesourcery.com>
15162
15163 PR c/36432
15164 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
15165 as indicating flexible array members unless the field itself is
15166 being declarared as the incomplete array.
15167
e901811a
JH
151682009-02-06 Jan Hubicka <jh@suse.cz>
15169
15170 PR tree-optimization/38844
15171 * ipa-inline.c (try_inline): Stop inlining recursion when edge
15172 is already inlined.
15173
3cfa762b
RG
151742009-02-06 Richard Guenther <rguenther@suse.de>
15175
15176 PR middle-end/38977
15177 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
15178 fork because we may expand it as __gcov_fork.
15179
8506528c
NC
151802009-02-06 Nick Clifton <nickc@redhat.com>
15181
dbf9ee15 15182 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 15183
85169114
PB
151842009-02-06 Paolo Bonzini <bonzini@gnu.org>
15185
15186 PR tree-optimization/35659
15187 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
15188 vn_phi_eq): Shortcut if hashcode does not match.
15189 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
15190 NULL operands.
15191 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
15192 and avoid iterative_hash_expr.
15193 (FOR_EACH_VALUE_ID_IN_SET): New.
15194 (value_id_compare): Remove.
15195 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
15196 sort expressions by value id.
15197
6d39673d
KK
151982009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
15199
15200 PR target/38991
15201 * config/sh/predicates.md (general_movsrc_operand): Don't check
15202 the subreg of system registers here.
15203
e6e1c050
JJ
152042009-02-05 Jakub Jelinek <jakub@redhat.com>
15205
15206 PR c++/39106
15207 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
15208 on the copied decl.
15209
65a74b5d
PB
152102009-02-05 Paolo Bonzini <bonzini@gnu.org>
15211
15212 PR rtl-optimization/39110
15213 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
15214 addresses, not aligned ones.
15215
08e14b2a
DB
152162009-02-05 Daniel Berlin <dberlin@dberlin.org>
15217 Richard Guenther <rguenther@suse.de>
15218
15219 PR tree-optimization/39100
15220 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
15221 comment says and add edges.
15222
5006381c
JM
152232009-02-05 Joseph Myers <joseph@codesourcery.com>
15224
15225 PR c/35435
15226 * c-common.c (handle_tls_model_attribute): Ignore attribute for
15227 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
15228
2ba9daa7 152292009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
15230
15231 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
15232 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
15233 register_bb_in_sese, new_sese, free_sese): Moved.
15234 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
15235 outermost_loop_in_scop, build_scop_iteration_domain,
15236 expand_scalar_variables_ssa_name, get_vdef_before_scop,
15237 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
15238 Use loop_in_sese_p instead of loop_in_scop_p.
15239 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
15240 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
15241 (scopdet_basic_block_info): Fix bug in scop detection.
15242 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
15243 eq_loop_to_cloog_loop): Remove.
15244 (nb_loops_around_loop_in_scop, nb_loop
15245 ref_nb_loops): Moved here...
15246 * graphite.h (ref_nb_loops): ... from here.
15247 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
15248 (loop_domain_dim, loop_iteration_vector_dim): Remove.
15249 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
15250 * testsuite/gcc.dg/graphite/scop-19.c: New
15251
48e8382e
PB
152522009-02-04 Paolo Bonzini <bonzini@gnu.org>
15253 Hans-Peter Nilsson <hp@axis.com>
15254
15255 PR rtl-optimization/37889
15256 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
15257 Move offset handling from PLUS to before the switch. Use new
15258 arguments when considering SYMBOL_REFs too.
15259 (rtx_addr_can_trap_p): Pass dummy offset and size.
15260 (enum may_trap_p_flags): Remove.
15261 (may_trap_p_1): Pass size from MEM_SIZE.
15262
15263 PR rtl-optimization/38921
15264 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
15265 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
15266 * rtlanal.c (may_trap_after_code_motion_p): Delete.
15267 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
15268
69349ea5
L
152692009-02-04 H.J. Lu <hongjiu.lu@intel.com>
15270
15271 AVX Programming Reference (January, 2009)
15272 * config/i386/sse.md (*vpclmulqdq): New.
15273
b545e411
JJ
152742009-02-04 Jakub Jelinek <jakub@redhat.com>
15275
15276 PR tree-optimization/38977
15277 PR gcov-profile/38292
bf9b2cc9 15278 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 15279
5b43bf05
HS
152802009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
15281
15282 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
15283 non-indexable addresses even before reload.
15284
062c4bb3
JM
152852009-02-03 Joseph Myers <joseph@codesourcery.com>
15286
15287 PR c/29129
15288 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
15289 as having variable size. Do not give an error for unnamed
15290 parameters with [*] declarators. Give a warning for type names
15291 with [*] declarators and mark them as variable size.
15292 * c-parser.c (c_parser_sizeof_expression): Do not give an error
15293 for sizeof applied to [*] type names.
15294
6175f578
AP
152952009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
15296
15297 PR C++/36607
15298 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
15299
d4f4bc84
JJ
153002009-02-03 Jakub Jelinek <jakub@redhat.com>
15301
15302 * gcc.c (process_command): Update copyright notice dates.
15303 * gcov.c (print_version): Likewise.
15304 * gcov-dump.c (print_version): Likewise.
15305 * mips-tfile.c (main): Likewise.
15306 * mips-tdump.c (main): Likewise.
15307
f6294de7
JM
153082009-02-03 Joseph Myers <joseph@codesourcery.com>
15309
15310 PR c/35433
15311 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
15312 for composite type involving a zero-length array type.
15313
754ccf7c
JJ
153142009-02-03 Jakub Jelinek <jakub@redhat.com>
15315
70f16287
JJ
15316 PR target/35318
15317 * function.c (match_asm_constraints_1): Skip over
15318 initial optional % in the constraint.
15319
754ccf7c
JJ
15320 PR inline-asm/39059
15321 * c-parser.c (c_parser_postfix_expression): If fixed point is not
15322 supported, don't accept FIXED_CSTs.
15323 * c-decl.c (finish_declspecs): Error if fixed point is not supported
15324 and _Sat is used without _Fract/_Accum. Set specs->type to
15325 integer_type_node for cts_fract/cts_accum if fixed point is not
15326 supported.
15327
965fdadf
CM
153282009-02-02 Catherine Moore <clm@codesourcery.com>
15329
dbf9ee15 15330 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 15331
2e8a796f
RS
153322009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
15333
15334 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
15335 (ABI_HAS_64BIT_SYMBOLS): Use it.
15336 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
15337
e0079468
PB
153382009-02-02 Paul Brook <paul@codesourcery.com>
15339
15340 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
15341
eca72963
JJ
153422009-02-02 Jakub Jelinek <jakub@redhat.com>
15343
15344 PR inline-asm/39058
15345 * recog.h (asm_operand_ok): Add constraints argument.
15346 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
15347 recurse on matching constraint.
15348 (check_asm_operands): Pass constraints as 3rd argument to
15349 asm_operand_ok. Don't look up matching constraint here.
15350 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
15351 to asm_operand_ok.
15352
b5bde9ff
BE
153532009-02-02 Ben Elliston <bje@au.ibm.com>
15354
15355 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
15356 TARGET_NARROW_VOLATILE_BITFIELD macro names.
15357
30f3e427
JDA
153582009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15359
be7659ba
JDA
15360 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
15361 information. Remove some obsolete information. Reorganize.
15362
30f3e427
JDA
15363 * config/pa/fptr.c: Revert license to GPL 2.
15364 * config/pa/milli64.S: Likewise.
15365
3cbfaf98
DK
153662009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
15367
15368 PR target/38904
15369 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
15370 LIBRARY name in, instead of hard-coding it.
15371 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
15372 extra target make frag to tmake_files according to EH model.
15373 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
15374 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
15375 frags that define makefile variable EH_MODEL appropriately.
15376 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
15377 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
15378 to "-sjlj" according to type of EH configured.
15379 (LIBGCC_SONAME): Concatenate it to shared library base name.
15380 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
15381 to "_sjlj" according to type of EH configured.
15382 (LIBGCC_SONAME): Concatenate it to shared library base name.
15383 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
15384 (SHLIB_LINK): Add missing semicolon to if-else construct.
15385 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
15386 string value of "pe_dll" command-line option.
15387 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
15388 (SHLIB_SONAME): Use it when overriding t-cygming default.
15389 (SHLIB_IMPLIB): Override t-cygming default.
15390 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
15391 string value of "pe_dll" command-line option.
15392
8d0b6068
DK
153932009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
15394
15395 PR target/38952
15396 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 15397 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 15398
14c28276
RG
153992009-01-31 Richard Guenther <rguenther@suse.de>
15400
15401 PR tree-optimization/38937
15402 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
15403 computing the transitive closure.
15404
5f4d82c2
RG
154052009-01-30 Richard Guenther <rguenther@suse.de>
15406
15407 PR tree-optimization/39041
15408 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
15409 Propagate variable indices only if the types match for this stmt.
15410
d0728ae0
JJ
154112009-01-30 Jakub Jelinek <jakub@redhat.com>
15412
15413 PR target/39013
15414 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
15415 inline but never defined.
15416
6b67572e 154172009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
15418
15419 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
15420 (*insv_h_di_reg_extimm): New insn.
15421 (*insv_l<mode>_reg_extimm): New insn.
15422
154232009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
15424
15425 * config/picochip/picochip.c (flag_conserve_stack): set
15426 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
15427 fconserve-stack. Reduce call-overhead used by inliner.
15428
9fec758d 154292009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
15430
15431 PR/38157
15432 * common.opt (flag_conserve_stack): Initialised to zero.
15433
7f1c539c
KT
154342009-01-30 Kai Tietz <kai.tietz@onevision.com>
15435
15436 PR/39002
15437 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
15438 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
15439 method.
15440
3631be48
L
154412009-01-29 H.J. Lu <hongjiu.lu@intel.com>
15442
15443 * ira-color.c (allocno_reload_assign): Update comments.
15444 * regmove.c (regmove_optimize): Likewise.
15445
15446 * ra.h: Removed.
15447
416ac4d4
RM
154482009-01-29 Robert Millan <rmh@aybabtu.com>
15449
60839f5d
EB
15450 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
15451 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 15452 `MD_UNWIND_SUPPORT'.
60839f5d 15453 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 15454
d5e54bc1
KH
154552009-01-29 Kazu Hirata <kazu@codesourcery.com>
15456
15457 PR tree-optimization/39007
15458 * tree-loop-distribution.c (generate_builtin): Use
15459 recompute_dominator to compute the immediate dominator of the
15460 basic block just after the loop.
15461
38432148 154622009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
15463
15464 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
15465 (ASM_OUTPUT_DWARF_PCREL): Define.
15466
38432148 154672009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
15468
15469 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
15470 * doc/passes.texi: Remove entries about regclass, local-alloc, and
15471 global. Modify entries about regmove and IRA.
15472
15473 * ra-conflict.c: Remove the file.
15474
15475 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
15476
15477 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
15478 (pass_regclass_init): Rename to pass_reginfo_init.
15479
15480 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
15481
15482 * toplev.h (flag_ira): Remove.
15483
15484 * caller-save.c (setup_save_areas): Remove flag_ira.
15485
bf9b2cc9 15486 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
15487
15488 * global.c: Remove the file.
15489
ba20e309 15490 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
15491
15492 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
15493
15494 * regmove.c: Modify file description.
15495 (find_use_as_address, try_auto_increment): Define them only if
15496 AUTO_INC_DEC is defined.
15497 (replacement_quality, replace_in_call_usage, fixup_match_1,
15498 stable_and_no_regs_but_for_p): Remove.
15499 (reg_set_in_bb): Make it static.
15500 (regmove_optimize): Remove flag_ira and code which worked for
15501 !flag_ira.
15502
15503 * local-alloc.c: Remove the file.
15504
15505 * common.opt (fira): Remove.
15506
15507 * ira.c: Include except.h.
15508 (eliminable_regset): Move from global.c.
15509 (mark_elimination): Ditto. Remove flag_ira.
15510 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
15511 equiv_mem_modified, validate_equiv_mem_from_store,
15512 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
15513 contains_replace_regs, memref_referenced_p, memref_used_between_p,
15514 no_equiv, recorded_label_ref): Move from local-alloc.c.
15515 (update_equiv_regs): Ditto. Make it static.
15516 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 15517 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
15518 (build_insn_chain): Ditto. Make it static.
15519 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
15520 Rename to init_live_subregs.
15521 (gate_ira): Remove flag_ira.
15522
15523 * regclass.c: Rename reginfo.c. Change file description.
15524 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 15525 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
15526 (init_reg_sets_1): Remove code for evaluation of
15527 reg_class_superclasses and losing_caller_save_reg_set.
15528 (init_regs): Remove init_reg_autoinc.
15529 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
15530 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 15531 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
15532 (pass_regclass_init): Rename to pass_reginfo_init. Modify
15533 corresponding entries.
15534 (dump_regclass, record_operand_costs, scan_one_insn,
15535 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
15536 record_address_regs, auto_inc_dec_reg_p): Remove.
15537 (gt-regclass.h): Rename to gt-reginfo.h.
15538
15539 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 15540 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
15541
15542 * Makefile.in (RA_H): Remove.
15543 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
15544 Rename regclass.o to reginfo.o.
15545 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
15546 gt-reginfo.h.
15547 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
15548 (GTFILES): Rename regclass.c to reginfo.c.
15549
15550 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 15551 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
15552
15553 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15554 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
15555 Remove flag_ira.
6b67572e 15556 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 15557
c95b2534 155582009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
15559
15560 PR middle-end/35854
15561 * doc/invoke.texi (rtl debug options): Complete rewrite.
15562 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
15563 to auto_inc_dec".
15564 * mode-switching.c (pass_mode_switching): Rename pass from
15565 "mode-sw" to "mode_sw".
15566 * except.c (pass_convert_to_eh_ranges): Rename pass from
15567 "eh-ranges" to "eh_ranges".
15568 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
15569 to "subreg1".
2ba9daa7
AS
15570
15571
72a54528
AM
155722009-01-29 Andrey Belevantsev <abel@ispras.ru>
15573 Alexander Monakov <amonakov@ispras.ru>
15574
15575 PR middle-end/38857
15576 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
15577 register.
15578 (move_exprs_to_boundary): Change return type and pass through
15579 should_move from move_op. Relax assert. Update usage ...
15580 (schedule_expr_on_boundary): ... here. Use should_move instead of
15581 cant_move.
15582 (move_op_orig_expr_found): Indicate that insn was disconnected from
15583 stream.
15584 (code_motion_process_successors): Do not call after_merge_succs
15585 callback if original expression was not found when traversing any of
15586 the branches.
15587 (code_motion_path_driver): Change return type. Update prototype.
15588 (move_op): Update comment. Add a new parameter (should_move). Update
15589 prototype. Set *should_move based on indication provided by
15590 move_op_orig_expr_found.
15591
001b9eb6
PH
155922009-01-28 Pat Haugen <pthaugen@us.ibm.com>
15593
15594 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
15595 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
15596 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
15597 * config/rs6000/rs6000.c (rs6000_override_options): Default
15598 avoid-indexed-addresses on for Power6, off for everything else.
15599 (avoiding_indexed_address_p): New function.
15600 (rs6000_legitimize_address): Use it.
15601 (rs6000_legitimate_address): Likewise.
15602 * config/rs6000/rs6000.md (movXX_updateX): Likewise
15603
59dc4898
KH
156042009-01-28 Kazu Hirata <kazu@codesourcery.com>
15605
15606 PR tree-optimization/38997
15607 * tree-loop-distribution.c (generate_memset_zero): Use
15608 POINTER_PLUS_EXPR for a pointer addition.
15609
07da44ab
AK
156102009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
15611
15612 * config/s390/s390.md (bswap<mode>2): New pattern added.
15613
cdc15d23
WG
156142009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15615
15616 * config/s390/s390.md (*tls_load_31): Added type attribute.
15617
d46f24b6
WG
156182009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15619
15620 * config/s390/s390.md: Fix a few comments.
15621
729e750f
WG
156222009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15623
15624 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
15625 (*tm<mode>_full): Fixed z10prop attribute.
15626 (*tst<mode>_extimm): Fixed z10prop attribute.
15627 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
15628 (*tstqiCCT_cconly): Fixed z10prop attribute.
15629 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
15630 (*movsi_larl): Fixed z10prop attribute.
15631 (*movsi_zarch): Fixed z10prop attribute.
15632 (*movsi_eas): Fixed z10prop attribute.
15633 (*movhi): Fixed z10prop attribute.
15634 (*movqi): Fixed z10prop attribute.
15635 (*movstrictqi): Fixed z10prop attribute.
15636 (*mov<mode>): Fixed z10prop attribute.
15637 (*movcc): Fixed z10prop attribute.
15638 (*sethighpartdi_64): Fixed z10prop attribute.
15639 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
15640 (*negdi2_sign_cc): Fixed z10prop attribute.
15641 (*negdi2_sign): Fixed z10prop attribute.
15642 (*absdi2_sign_cc): Fixed z10prop attribute.
15643 (*absdi2_sign): Fixed z10prop attribute.
15644 (*negabsdi2_sign_cc): Fixed z10prop attribute.
15645 (*negabsdi2_sign): Fixed z10prop attribute.
15646 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
15647 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
15648 (doloop_si64): Fixed z10prop attribute.
15649 (doloop_si31): Fixed z10prop attribute.
15650 (doloop_long): Fixed z10prop attribute.
15651 (indirect_jump): Fixed z10prop attribute.
15652 (nop): Fixed z10prop attribute.
15653 (main_base_64): Fixed z10prop attribute.
15654 (reload_base_64): Fixed z10prop attribute.
15655
c7789bfb
JJ
156562009-01-28 Jakub Jelinek <jakub@redhat.com>
15657
15658 PR rtl-optimization/38740
6b67572e
UB
15659 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
15660 if !optimize.
c7789bfb
JJ
15661 * config/mips/mips.c (mips_reorg): Likewise.
15662
de081cfd
RG
156632009-01-28 Richard Guenther <rguenther@suse.de>
15664
15665 PR tree-optimization/38926
15666 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
15667 with the correct value id to a value.
15668 (do_regular_insertion): Use the value number of edoubleprime
15669 for the value number of the expr.
15670
15671 Revert
15672 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 15673
d748c406
UB
15674 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
15675 a PHI ask VN if it is already available.
15676 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
15677 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 15678
a9d386a1
JJ
156792009-01-28 Jakub Jelinek <jakub@redhat.com>
15680
15681 PR middle-end/38934
15682 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
15683 set to varying whenever max has TREE_OVERFLOW set, similarly
15684 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
15685
97a170cd
RG
156862009-01-28 Richard Guenther <rguenther@suse.de>
15687
15688 PR middle-end/38908
15689 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
15690 uninitialized aggregate uses in call arguments.
15691
89ebafc6
PB
156922009-01-28 Paolo Bonzini <bonzini@gnu.org>
15693
15694 PR tree-optimization/38984
15695 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
15696 the nothing_id variable if -fno-delete-null-pointer-checks.
15697
bef3c57b
UB
156982009-01-28 Uros Bizjak <ubizjak@gmail.com>
15699
15700 PR target/38988
15701 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
15702 (set_got_offset_rex64): Ditto.
15703
0c6390fa
L
157042009-01-27 H.J. Lu <hongjiu.lu@intel.com>
15705
15706 PR target/38941
15707 * doc/extend.texi: Improve local variable with asm reg.
15708
bee6fa6d
AN
157092009-01-27 Adam Nemet <anemet@caviumnetworks.com>
15710
15711 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
15712 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
15713 was not supplied then set warn_packed_bitfield_compat to the
15714 default value of 1.
15715 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
15716 against 1.
15717
b5c3dfbb
RG
157182009-01-27 Richard Guenther <rguenther@suse.de>
15719
15720 PR tree-optimization/38503
15721 * cfgexpand.c (expand_gimple_basic_block): Ignore
15722 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
15723 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
15724 variables that cannot have TBAA applied.
15725 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
15726 statements.
15727
d748c406 157282009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
15729
15730 PR middle-end/38969
15731 * calls.c (initialize_argument_information): Do not wrap complex
15732 arguments in SAVE_EXPR.
15733
9112bb38
AT
157342009-01-26 Andreas Tobler <a.tobler@schweiz.org>
15735
15736 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 15737 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 15738
4757704f
RG
157392009-01-26 Richard Guenther <rguenther@suse.de>
15740
15741 PR tree-optimization/38745
15742 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
15743 from special handling.
15744
e3e6cff4
RG
157452009-01-26 Richard Guenther <rguenther@suse.de>
15746
15747 PR tree-optimization/38745
15748 * tree-ssa.c (execute_update_addresses_taken): Do not include
15749 variables that cannot possibly be a register in not_reg_needs.
15750 Do not clear TREE_ADDRESSABLE on vars that may not become
15751 registers.
15752 * tree-ssa.c (update_alias_info_1): Include those in the set
15753 of addressable vars.
15754
dc874b53
RG
157552009-01-26 Richard Guenther <rguenther@suse.de>
15756
15757 PR middle-end/38851
15758 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
15759 * tree-ssa-dse.c: Include langhooks.h
15760 (execute_simple_dse): Remove stores with zero size.
15761
849421a3
JJ
157622009-01-24 Jakub Jelinek <jakub@redhat.com>
15763
15764 PR c/38957
15765 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
15766 as PLUS_EXPR.
15767
82f70421
JB
157682009-01-24 Julian Brown <julian@codesourcery.com>
15769
15770 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
15771 config/arm/linux-atomic.c.
15772 * config/arm/linux-atomic.c: New.
15773
863412d6
EB
157742009-01-24 Eric Botcazou <ebotcazou@adacore.com>
15775
15776 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
15777 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
15778 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
15779
8c684300
L
157802009-01-24 H.J. Lu <hongjiu.lu@intel.com>
15781
15782 PR c/38938
93f1527a 15783 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
15784 properly.
15785
b840fb02
SP
157862009-01-24 Sebastian Pop <sebastian.pop@amd.com>
15787
15788 PR tree-optimization/38953
15789 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
15790 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
15791 (gloog): Split the exit of the scop when the scop exit is a loop exit.
15792 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
15793 changed the CFG.
15794
ecee559f
PB
157952009-01-24 Paul Brook <paul@codesourcery.com>
15796
15797 * config/arm/neon.md (neon_type): Move to arm.md.
15798 (neon_mov<VSTRUCT>): Add neon_type attribute.
15799 * config/arm/arm.md (neon_type): Move to here.
15800 (conds): Add "unconditioal" and use as default for NEON insns.
15801
61ad0914
BE
158022009-01-24 Ben Elliston <bje@au.ibm.com>
15803
15804 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
15805 void *' warning from -Wc++-compat.
15806 * Makefile.in (dominance.o-warn): Remove.
15807
38432148 158082009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
15809
15810 PR tree-optimization/38932
15811 * fold-const.c (fold_unary_ignore_overflow): New.
15812 * tree.h (fold_unary_ignore_overflow): Declare.
15813 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
15814 * tree-ssa-sccvn.c (visit_reference_op_load,
15815 simplify_unary_expression): Likewise.
15816
2cd36c22
AN
158172009-01-22 Adam Nemet <anemet@caviumnetworks.com>
15818
15819 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
15820 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
15821 regardless of their type.
15822 * c-common.c (handle_packed_attribute): Don't ignore packed on
15823 bitfields.
15824 * c.opt (Wpacked-bitfield-compat): New warning option.
15825 * stor-layout.c (place_field): Warn if offset of a field changed.
15826 * doc/extend.texi (packed): Mention the ABI change.
15827 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
15828 (Warning Options): Add it to the list.
15829
e4e624ab
L
158302009-01-22 H.J. Lu <hongjiu.lu@intel.com>
15831
15832 * c-opts.c (c_common_post_options): Fix a typo in comments.
15833
d0ea0759
SE
158342009-01-22 Steve Ellcey <sje@cup.hp.com>
15835
15836 PR middle-end/38615
15837 * gimplify.c (gimplify_init_constructor): Fix promotion of const
15838 variables to static.
15839 * doc/invoke.texi (-fmerge-all-constants): Update description.
15840
87673f84
UB
158412009-01-22 Uros Bizjak <ubizjak@gmail.com>
15842
15843 PR target/38931
15844 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
15845 (*movdi_1_rex64): Use type "mmx" for alternative 5.
15846
96339268
RE
158472009-01-22 Richard Earnshaw <rearnsha@arm.com>
15848
15849 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
15850 a word boundary.
15851 (LOCAL_ALIGNMENT): Similarly.
15852
442dc742 158532009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 15854 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
15855
15856 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
15857 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
15858 * config/arm/arm-tune.md: Regenerate.
15859 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
15860 -march=iwmmxt2.
15861
9b34732e
MS
158622009-01-22 Mark Shinwell <shinwell@codesourcery.com>
15863
15864 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
15865 version number to five.
15866
03c2a308
DS
158672009-01-22 Dodji Seketeli <dodji@redhat.com>
15868
15869 PR c++/38930
ba20e309 15870 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
15871 * c-common.c (set_underlying_type): Likewise.
15872 (is_typedef_decl ): Likewise
15873 * tree.h: Likewise
15874 (set_underlying_type): Likewise.
15875 (is_typedef_type): Likewise.
15876
1240d76e
VM
158772009-01-21 Vladimir Makarov <vmakarov@redhat.com>
15878
15879 PR middle-end/38587
15880 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
15881 crossing setjmps.
15882
b8a1087d
DK
158832009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
15884
15885 PR bootstrap/37660
15886 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
15887 (LIBGCC_SPEC): Don't define.
15888 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
15889
435da628
UB
158902009-01-21 Uros Bizjak <ubizjak@gmail.com>
15891
15892 PR rtl-optimization/38879
15893 * alias.c (base_alias_check): Unaligned access via AND address can
15894 alias all surrounding object types except those with sizes equal
15895 or wider than the size of unaligned access.
15896
d597b3ce
DS
158972009-01-21 Dodji Seketeli <dodji@redhat.com>
15898
15899 PR c++/26693
ba20e309 15900 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 15901 * c-common.c (set_underlying_type): ... here.
435da628 15902 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
15903 the newly created typedef variant type.
15904 (is_typedef_decl ): New entry point.
15905 * tree.h: Added a new member member_types_needing_access_check to
15906 struct tree_decl_non_common.
15907 (set_underlying_type): New entry point.
15908 (is_typedef_type): Likewise.
15909
71a6fe66
BM
159102009-01-21 Bingfeng Mei <bmei@broadcom.com>
15911
15912 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
15913 Check whether two instructions have memory references that
15914 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
15915 are helper functions for traversing.
15916 * alias.h (insn_alias_sets_confilict_p): New prototypes.
15917 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
15918 not to draw dependency edge for instructions with non-conflicting
15919 alias sets.
15920
5a248274
JM
159212009-01-20 Joseph Myers <joseph@codesourcery.com>
15922
15923 PR other/38758
6b67572e
UB
15924 * longlong.h: Update copyright years. Use soft-fp license notice.
15925 Sync __clz_tab declaration with glibc.
5a248274 15926
4b84f3de
SE
159272009-01-20 Steve Ellcey <sje@cup.hp.com>
15928
15929 PR target/30687
15930 * doc/extend.texi (syscall_linkage): New.
15931 (version_id): Modify.
15932
37348bf1 159332009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 15934 Richard Guenther <rguenther@suse.de>
37348bf1
AP
15935
15936 PR tree-optimization/38747
15937 PR tree-optimization/38748
15938 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
15939 conversion if the base address is an indirect reference and the
15940 aliasing sets could cause issues.
15941
d0a58904
SP
159422009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15943
2ba9daa7 15944 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
15945 explaining why these options are not documented.
15946
71e7afb2
SP
159472009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15948
15949 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
15950 gimple_call_lhs is NULL.
15951
38432148 159522009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
15953
15954 PR target/38868
15955 * emit-rtl.c (adjust_address_1): Make sure memref is never
15956 overwritten.
15957
cbb8dee3
BE
159582009-01-20 Ben Elliston <bje@au.ibm.com>
15959
15960 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 15961 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
15962 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
15963 const qualifier from arg 2.
15964
72c66596
IS
159652009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
15966
435da628 15967 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 15968
f68211cd
VM
159692009-01-19 Vladimir Makarov <vmakarov@redhat.com>
15970
15971 PR c/38869
15972 * rtl.h (reinit_regs): New prototype.
15973 * regclass.c: Include ira.h.
15974 (reinit_regs): New.
15975 * Makefile.in (regclass.o): Add ira.h.
15976 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
15977
6e4f1168
L
159782009-01-18 H.J. Lu <hongjiu.lu@intel.com>
15979
15980 PR target/38736
15981 * c-common.c (handle_aligned_attribute): Use
15982 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
15983 default alignment value.
15984
15985 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
15986
15987 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
15988 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
15989
15990 * doc/extend.texi: Update __attribute__ ((aligned)). Document
15991 __BIGGEST_ALIGNMENT__.
15992
15993 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
15994
890065bf
RG
159952009-01-18 Richard Guenther <rguenther@suse.de>
15996
15997 PR tree-optimization/38819
15998 * tree-flow.h (operation_could_trap_helper_p): Declare.
15999 * tree-eh.c (operation_could_trap_helper_p): Export.
16000 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
16001 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
16002 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
16003 are about to insert a possibly trapping instruction and fail
16004 in this case.
16005
a729d731
AS
160062009-01-18 Andreas Schwab <schwab@suse.de>
16007
16008 * doc/install.texi (Configuration): Remove obsolete paragraph
16009 about use of --with-gnu-ld with --with-gnu-as.
16010
a640c13b
KH
160112009-01-18 Kazu Hirata <kazu@codesourcery.com>
16012
16013 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
16014 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
16015 Follow spelling conventions.
16016
dba2cc0c
BE
160172009-01-18 Ben Elliston <bje@au.ibm.com>
16018
16019 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
16020 C++ warning about implicit conversion from void * to struct
16021 bitmap_head_def *.
16022 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 16023 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 16024
2207a498
DK
160252009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
16026
16027 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
16028
8137e465
SP
160292009-01-17 Sebastian Pop <sebastian.pop@amd.com>
16030 Tobias Grosser <tobi.grosser@amd.com>
16031
16032 * graphite.c (graphite_trans_scop_block): Do not block single
16033 nested loops.
16034
5be1c58c
AO
160352009-01-16 Alexandre Oliva <aoliva@redhat.com>
16036
16037 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
16038 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
16039 test with assertion.
16040
786ce82d
RG
160412009-01-16 Richard Guenther <rguenther@suse.de>
16042
16043 PR tree-optimization/38835
16044 PR middle-end/36227
16045 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
16046 and INT + PTR -> (INT)(PTR p+ INT) folding.
16047 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
16048
c1cb09ad
AN
160492009-01-16 Adam Nemet <anemet@caviumnetworks.com>
16050
16051 PR target/38554
16052 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
16053 the subreg from a lowpart subreg if it is also casting the value.
16054
bcab4e19
SP
160552009-01-16 Sebastian Pop <sebastian.pop@amd.com>
16056 Tobias Grosser <tobi.grosser@amd.com>
16057
16058 * graphite.c (compare_prefix_loops): New.
16059 (build_scop_canonical_schedules): Rewritten.
16060 (graphite_transform_loops): Move build_scop_canonical_schedules
16061 after build_scop_iteration_domain.
16062
0b040072
SP
160632009-01-16 Sebastian Pop <sebastian.pop@amd.com>
16064 Tobias Grosser <tobi.grosser@amd.com>
16065
2ba9daa7 16066 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
16067 the dimension of the iteration domain. Do copy the domain
16068 only when it exists.
16069 (build_scop_conditions_1): Do not call add_conditions_to_domain.
16070 (add_conditions_to_constraints): New.
16071 (can_generate_code_stmt, can_generate_code): Removed.
16072 (gloog): Do not call can_generate_code.
16073 (graphite_transform_loops): Call add_conditions_to_constraints
16074 after building the iteration domain.
16075
56c6a499
JJ
160762009-01-16 Jakub Jelinek <jakub@redhat.com>
16077
16078 PR tree-optimization/38789
16079 * tree-ssa-threadedge.c
16080 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
16081 __builtin_constant_p.
16082
c95b2534 160832009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
16084
16085 * dce.c (delete_unmarked_insns): Reversed the order that insns are
16086 examined before deleting them.
2ba9daa7 16087
c433cb14
RE
160882009-01-16 Richard Earnshaw <rearnsha@arm.com>
16089
16090 * function.c (aggregate_value_p): Correctly extract the function
16091 type from CALL_EXPR_FN lookup.
16092
c95b2534 160932009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
16094
16095 * config/picochip/picochip.c (picochip_override_options): Revert
16096 CFI asm flag disable commited previously.
16097
c77bb78f
SP
160982009-01-15 Sebastian Pop <sebastian.pop@amd.com>
16099 Tobias Grosser <tobi.grosser@amd.com>
16100 Jan Sjodin <jan.sjodin@amd.com>
16101
16102 * graphite.c (scan_tree_for_params): On substractions negate
16103 all the coefficients of the term.
16104 (clast_to_gcc_expression_red): New. Handle reduction expressions
16105 of more than two operands.
16106 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
16107 (get_vdef_before_scop): Handle also the case of default definitions.
16108
574af2d6
RS
161092009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
16110
16111 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
16112 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
16113 Also use them when walking CALL_INSN_FUNCTION_USAGE.
16114
e939805b
L
161152009-01-15 H.J. Lu <hongjiu.lu@intel.com>
16116 Joey Ye <joey.ye@intel.com>
16117
16118 PR middle-end/37843
16119 * cfgexpand.c (expand_stack_alignment): Don't update stack
16120 boundary nor check incoming stack boundary here.
16121 (gimple_expand_cfg): Update stack boundary and check incoming
16122 stack boundary here.
16123
c95b2534 161242009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 16125
435da628 16126 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 16127
0196c95e
JJ
161282009-01-14 Jakub Jelinek <jakub@redhat.com>
16129
16130 PR rtl-optimization/38245
16131 * calls.c (expand_call): Add stack arguments to
16132 CALL_INSN_FUNCTION_USAGE even for pure calls (when
16133 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
16134 in regs and partially in memory or BLKmode arguments.
16135 (emit_library_call_value_1): Add stack arguments to
16136 CALL_INSN_FUNCTION_USAGE even for pure calls (when
16137 ACCUMULATE_OUTGOING_ARGS).
16138 * dce.c: Include tm_p.h.
16139 (find_call_stack_args): New function.
16140 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
16141 argument.
16142 (mark_insn): Call find_call_stack_args for CALL_Ps.
16143 (prescan_insns_for_dce): Walk insns backwards in bb rather than
16144 forwards. Allocate and free arg_stores bitmap if needed, pass it
16145 down to deletable_insn_p, don't mark stores set in arg_stores
16146 bitmap, clear the bitmap at the beginning of each bb.
16147 * Makefile.in (dce.o): Depend on $(TM_P_H).
16148
6df6bcfa
MM
161492009-01-14 Michael Meissner <gnu@the-meissners.org>
16150
16151 PR target/22599
435da628
UB
16152 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
16153 to make sure the insn is a conditional test (bug 22599). Reformat a
16154 few long lines.
6df6bcfa 16155
765ec70c
SP
161562009-01-14 Sebastian Pop <sebastian.pop@amd.com>
16157
16158 PR middle-end/38431
16159 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
16160 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
16161 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 16162 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
16163 scops have been code generated.
16164
7de2b688
BS
161652009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
16166 * doc/gty.texi (Invoking the garbage collector): Added new node
16167 and section documenting ggc_collect.
16168
10bd6c5c
RG
161692009-01-14 Richard Guenther <rguenther@suse.de>
16170
16171 PR tree-optimization/38826
16172 PR middle-end/38477
16173 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
16174 initialization notes only if we actually emitted a warning.
16175 (intra_create_variable_infos): Add constraints for a result decl
16176 that is passed by hidden reference.
16177 (build_pred_graph): Mark all related variables non-direct on
16178 address-taking.
16179
9c7c70ee
NC
161802009-01-14 Nick Clifton <nickc@redhat.com>
16181
16182 * ira-conflicts.c: Include addresses.h for the definition of
16183 base_reg_class.
435da628
UB
16184 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
16185 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 16186
cf0c2a60
VM
161872009-01-13 Vladimir Makarov <vmakarov@redhat.com>
16188
16189 PR target/38811
16190 * Makefile.in (ira-lives.o): Add except.h.
16191
16192 * ira-lives.c: Include except.h.
16193 (process_bb_node_lives): Process can_throw_internal.
16194
d3302fd3
JJ
161952009-01-13 Jakub Jelinek <jakub@redhat.com>
16196
16197 PR rtl-optimization/38774
16198 * combine.c (simplify_set): When undoing cc_use change, don't do
16199 PUT_CODE on the newly created comparison, but instead put back the
16200 old comparison.
16201
7ab23fd0
JM
162022009-01-13 Joseph Myers <joseph@codesourcery.com>
16203
16204 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
16205 values. Remove duplicate arm8 entry.
16206
f9344488
SP
162072009-01-13 Sebastian Pop <sebastian.pop@amd.com>
16208
16209 PR tree-optimization/38786
16210 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
16211 the SSA_NAME case of expand_scalar_variables_expr.
16212 Set the type of an expression to the type of its assign statement.
16213 (expand_scalar_variables_expr): Also gather the scalar computation
16214 used to index the memory access. Do not pass loop_p.
16215 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
16216 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
16217 the gimple_stmt_iterator where it inserts new code.
16218 Do not pass loop_p.
f9344488
SP
16219 (copy_bb_and_scalar_dependences): Do not pass loop_p.
16220 (translate_clast): Update call to copy_bb_and_scalar_dependences.
16221
2d8bb84d
SP
162222009-01-13 Sebastian Pop <sebastian.pop@amd.com>
16223
16224 * graphite.h (debug_value): Removed.
16225 * graphite.c (debug_value): Removed.
16226
ff128632
RE
162272009-01-13 Richard Earnshaw <rearnsha@arm.com>
16228
435da628
UB
16229 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
16230 ldrd/strd with two 32-bit instructions.
ff128632 16231
d5a0a47b
RE
162322009-01-13 Richard Earnshaw <rearnsha@arm.com>
16233
435da628
UB
16234 * config/arm/arm.c (struct processors): Pass for speed down into
16235 cost helper functions.
d5a0a47b
RE
16236 (const_ok_for_op): Handle COMPARE and inequality nodes.
16237 (arm_rtx_costs_1): Rewrite.
16238 (arm_size_rtx_costs): Update prototype.
16239 (arm_rtx_costs): Pass speed down to helper functions.
16240 (arm_slowmul_rtx_costs): Rework cost calculations.
16241 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
16242 (arm_9e_rtx_costs): Likewise.
16243
26d5bf5b
UB
162442009-01-13 Uros Bizjak <ubizjak@gmail.com>
16245
16246 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 16247 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
16248 (alpha_legitimize_address): Do not split local symbols wider than
16249 UNITS_PER_WORD into HIGH/LO_SUM parts.
16250
5d14e3d5
DS
162512009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
16252
16253 PR bootstrap/38580
16254 * gcc.c (process_command): Replace call to execvp with calls
16255 to pex_one and exit.
16256
33faafca
AS
162572009-01-03 Anatoly Sokolov <aesok@post.ru>
16258
16259 PR target/29141
16260 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
16261 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
16262 variant for devices with 3-byte PC.
ba20e309 16263 (__tablejump_elpm__): New.
33faafca 16264
634b5df5
JJ
162652009-01-12 Jakub Jelinek <jakub@redhat.com>
16266
16267 PR c/32041
16268 * c-parser.c (c_parser_postfix_expression): Allow `->' in
16269 offsetof member-designator, handle it as `[0].'.
16270
2842bb86
JDA
162712009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16272
16273 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
16274 function when not using named sections on targets with named sections
16275 if branch distance is less than 262132.
16276
76ee70f6
RE
162772009-01-12 Richard Earnshaw <rearnsha@arm.com>
16278
16279 * combine.c (combine_instructions): Recompute
16280 optimize_this_for_speed_p for each BB in the main combine loop.
16281
f56e675d
TB
162822009-01-12 Tomas Bily <tbily@suse.cz>
16283
16284 PR middlend/38385
26d5bf5b
UB
16285 * tree-loop-distribution.c (prop_phis): New function.
16286 (generate_builtin): Call prop_phis.
16287 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 16288
c2152239
JJ
162892009-01-12 Jakub Jelinek <jakub@redhat.com>
16290
16291 PR tree-optimization/38807
16292 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
16293 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
16294
0e510b3e
AN
162952009-01-11 Adam Nemet <anemet@caviumnetworks.com>
16296
16297 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
16298 subreg of op0 to the original op0.
16299
c95b2534 163002009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
16301
16302 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 16303
53a7ff9a
MS
163042009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
16305
16306 PR debug/7055
60839f5d 16307 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
16308 starting with digits.
16309
b3a796bc
JJ
163102009-01-10 Jakub Jelinek <jakub@redhat.com>
16311
16312 PR target/38695
16313 * config/arm/arm.c (arm_is_long_call_p): Don't call
16314 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
16315
b21b850e
SB
163162009-01-09 Steven Bosscher <steven@gcc.gnu.org>
16317
16318 * regrename.c (regrename_optimize): Fix dumping.
16319 (find_oldest_value_reg): Preserve REG_POINTER.
16320 (copy_hardreg_forward_1): Likewise.
16321
e0e10d3a
DN
163222009-01-09 Diego Novillo <dnovillo@google.com>
16323
bf9b2cc9 16324 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
16325 the restrictions on its use.
16326 (gimple_uid): Tidy.
16327 (gimple_set_uid): Tidy.
16328
c9da2ae8
JJ
163292009-01-09 Jakub Jelinek <jakub@redhat.com>
16330
16331 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
16332 zero guard even if align_bytes != 0 and count is smaller than
16333 size_needed.
16334
38432148 163352009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
16336
16337 PR rtl-optimization/38495
26d5bf5b 16338 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
16339 (add_range_and_copies_from_move_list): Print all added ranges.
16340 Add ranges to memory optimized destination.
16341
260fda3d
JJ
163422009-01-09 Jakub Jelinek <jakub@redhat.com>
16343
6f6278ad
JJ
16344 PR target/38686
16345 PR target/38708
16346 * config/i386/i386.c (override_options): Reject
16347 -mstringop-strategy=rep_8byte with -m32.
16348 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
16349 to 1. Do count comparison against epilogue_size_needed at compile
16350 time even when count_exp was constant forced into register. For
16351 size_needed don't jump to epilogue, instead just avoid aligning
16352 and invoke the body algorithm. If need_zero_guard, add zero guard
16353 even if count is non-zero, but smaller than size_needed + number of
16354 bytes that could be stored for alignment.
16355 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
16356 to 1. If need_zero_guard, add zero guard even if count is non-zero,
16357 but smaller than size_needed + number of bytes that could be stored
16358 for alignment. Compare size_needed with epilogue_size_needed instead
16359 of desired_align - align, don't adjust size_needed, pass
16360 epilogue_size_needed to the epilogue expanders.
16361
260fda3d 16362 PR c/35742
26d5bf5b 16363 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 16364
67b846fa
JDA
163652009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16366
16367 * pa.c (last_address): Change to unsigned.
16368 (update_total_code_bytes): Change argument to unsigned. Don't
16369 check if insn addresses are set.
16370 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
16371 addresses are not set.
16372 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
16373
91c82473
NC
163742009-01-09 Nick Clifton <nickc@redhat.com>
16375
16376 * config/sh/symbian.c: Replace uses of DECL_INLINE with
16377 DECL_DECLARED_INLINE_P.
16378
4017e262
JJ
163792009-01-09 Jakub Jelinek <jakub@redhat.com>
16380
0a49e5c2
JJ
16381 PR middle-end/38347
16382 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
16383 GET_MODE (op0) in operand_subword_force calls.
16384
4017e262
JJ
16385 PR middle-end/38771
16386 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
16387 fold_convert arg0 operands to TREE_TYPE (op0) first.
16388
7cd06356
VM
163892009-01-08 Vladimir Makarov <vmakarov@redhat.com>
16390
16391 * params.def (ira-max-conflict-table-size): Decrease default value
16392 to 1000.
16393
96867bbd
JJ
163942009-01-08 Jakub Jelinek <jakub@redhat.com>
16395
16396 PR tree-optimization/37031
16397 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
16398 on parameter_set.
16399 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
16400 allocate it using gc instead of heap, use VEC_quick_push instead of
16401 VEC_safe_push.
16402 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
16403 instead of heap, use VEC_quick_push instead of VEC_safe_push.
16404 * tree-data-ref.h (struct access_matrix): Change matrix to gc
16405 allocated vector from heap allocated.
16406 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
16407 * tree-loop-linear.c (linear_transform_loops): Allocate nest
16408 vector only after perfect_loop_nest_depth call.
16409
68f61c3d
SP
164102009-01-08 Sebastian Pop <sebastian.pop@amd.com>
16411 Jan Sjodin <jan.sjodin@amd.com>
16412
16413 PR tree-optimization/38559
16414 * graphite.c (debug_value, copy_constraint,
16415 swap_constraint_variables, scale_constraint_variable, ): New.
16416 (get_lower_bound, get_upper_bound): Removed.
16417 (graphite_trans_bb_strip_mine): Clean up this code that works
16418 only for constant number of iterations. Fully copy upper and
16419 lower bound constraints, not only the constant part of them.
16420 * graphite.h (debug_value): Declared.
16421
82567e33
IR
164222009-01-08 Ira Rosen <irar@il.ibm.com>
16423
16424 PR tree-optimization/37194
16425 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 16426 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
16427 outside cost in case of known number of iterations.
16428
7da13f1d
NF
164292009-01-07 Nathan Froyd <froydnj@codesourcery.com>
16430 Alan Modra <amodra@bigpond.net.au>
16431
16432 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
16433 non-word-aligned REG+CONST addressing.
16434
c0f64575
UB
164352009-01-07 Uros Bizjak <ubizjak@gmail.com>
16436
16437 PR target/38706
16438 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
16439 free_after_compilation when outputting a thunk.
16440 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
16441 Do not call free_after_compilation here.
16442
301b6a4e
UB
164432009-01-07 Uros Bizjak <ubizjak@gmail.com>
16444
16445 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
16446 (ix86_valid_target_attribute_inner_p): Ditto.
16447
6a114766
JS
164482009-01-07 Jan Sjodin <jan.sjodin@amd.com>
16449
16450 PR tree-optimization/38492
16451 PR tree-optimization/38498
16452 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
16453 * tree-chrec.h (scev_is_linear_expression): Declared.
16454 * graphite.c (graphite_cannot_represent_loop_niter): New.
16455 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
16456 (graphite_loop_normal_form): Use gcc_assert.
16457 (scan_tree_for_params): Use CASE_CONVERT.
16458 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
16459 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
16460 Use gcc_assert. Discard scops that contain unhandled cases.
16461 (build_scop_conditions): Return a boolean status for unhandled cases.
16462 (strip_mine_profitable_p): Print the loop number, not its depth.
16463 (is_interchange_valid): Pass the depth of the loop nest, don't
16464 recompute it wrongly.
16465 (graphite_trans_bb_block): Same.
16466 (graphite_trans_bb_block): Print tentative of loop blocking.
16467 (graphite_trans_scop_block): Do not print that the loop has been
16468 blocked.
16469 (graphite_transform_loops): Do not handle scops that contain condition
16470 scalar phi nodes.
16471
65b82caa
L
164722009-01-07 H.J. Lu <hongjiu.lu@intel.com>
16473
16474 AVX Programming Reference (December, 2008)
16475 * config/i386/avxintrin.h (_mm256_stream_si256): New.
16476 (_mm256_stream_pd): Likewise.
16477 (_mm256_stream_ps): Likewise.
16478
16479 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
16480 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
16481 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
16482 (bdesc_special_args): Add __builtin_ia32_movntdq256,
16483 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
16484 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
16485 (ix86_expand_special_args_builtin): Likewise.
16486
16487 * config/i386/sse.md (AVXMODEDI): New.
16488 (avx_movnt<mode>): Likewise.
16489 (avx_movnt<mode>): Likewise.
16490 (<sse>_movnt<mode>): Remove AVX support.
16491 (sse2_movntv2di): Likewise.
16492
cef158f9
RG
164932009-01-07 Richard Guenther <rguenther@suse.de>
16494
16495 PR middle-end/38751
16496 * fold-const.c (extract_muldiv): Remove obsolete comment.
16497 (fold_plusminus_mult_expr): Undo MINUS_EXPR
16498 to PLUS_EXPR canonicalization for the canonicalization.
16499
246cb5be
GP
165002009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
16501
16502 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
16503 hosted cross-compilers generating less efficient code.
16504
84b9b872
RS
165052009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
16506
16507 * function.h (rtl_data): Add a dbr_scheduled_p field.
16508 * reorg.c (dbr_schedule): Set it.
16509 (gate_handle_delay_slots): Check it.
16510 * config/mips/mips.c (mips_base_delayed_branch): Delete.
16511 (mips_reorg): Check flag_delayed_branch instead of
16512 mips_base_delayed_branch.
16513 (mips_override_options): Don't set mips_base_delayed_branch
16514 or flag_delayed_branch.
16515
ace984c8
RS
165162009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
16517
16518 PR rtl-optimization/38426.
16519 * ira.c (ira): Set current_function_is_leaf earlier.
16520
7ad7809b
JJ
165212009-01-06 Jakub Jelinek <jakub@redhat.com>
16522
16523 PR rtl-optimization/38722
16524 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
16525 too early, only set a flag and modify after last possible
16526 undo_all point.
16527
c52ec948
JJ
165282009-01-06 Janis Johnson <janis187@us.ibm.com>
16529
16530 PR c/34252
16531 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
16532 * real.c (decimal_single_format): Correct values of emin and emax.
16533 (decimal_double_format): Ditto.
16534 (decimal_quad_format): Ditto.
16535 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
16536 computation of DECnn_MIN and DECnn_MAX for corrected values of
16537 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
16538 __DECnn_MIN__, and adjust its computation for the corrected value
16539 of emin.
16540
300240e1
JH
165412009-01-06 Jan Hubicka <jh@suse.cz>
16542
16543 PR target/38744
435da628 16544 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 16545
271c069e
GP
165462009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
16547
16548 * doc/contrib.texi (Contributors): Slightly adjust the end note.
16549 Add Robert Clark to the list of testers.
16550
64e4c301 165512009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 16552 Kai Tietz <kai.tietz@onevision.com>
64e4c301 16553
435da628
UB
16554 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
16555 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 16556
7650b83e 165572009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 16558 Kai Tietz <kai.tietz@onevision.com>
7650b83e 16559
435da628
UB
16560 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
16561 for w64 ABI.
16562 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
16563 (ix86_nsaved_regs): Count only general purpose regs.
16564 (ix86_nsaved_sseregs): New.
16565 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
16566 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
16567 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
16568 general purpose regs.
7650b83e
JH
16569 (ix86_emit_save_sse_regs_using_mov): New.
16570 (ix86_expand_prologue): Save SSE regs if needed.
16571 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
16572 (ix86_emit_restore_sse_regs_using_mov): New.
16573 (ix86_expand_epilogue): Save SSE regs if needed.
16574
9aa5c1b2 165752009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 16576 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 16577
435da628
UB
16578 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
16579 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
16580 functions when accumulate outgoing args is off.
9aa5c1b2 16581
f7556aae
L
165822009-01-06 H.J. Lu <hongjiu.lu@intel.com>
16583
16584 PR bootstrap/38742
16585 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
16586 before using pseudos_have_intersected_live_ranges_p.
16587
16588 * ira-int.h (ira_assert): Always define.
16589
e47b7d04
L
165902009-01-06 H.J. Lu <hongjiu.lu@intel.com>
16591
16592 AVX Programming Reference (December, 2008)
16593 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
16594 (_mm256_permute2_pd): Likewise.
16595 (_mm_permute2_ps): Likewise.
16596 (_mm256_permute2_ps): Likewise.
16597 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
16598 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
16599
16600 * config/i386/i386.c (ix86_builtins): Remove
16601 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
16602 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
16603 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
16604 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
16605 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
16606 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
16607 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
16608 __builtin_ia32_vpermil2ps256.
16609 (ix86_init_mmx_sse_builtins): Updated.
16610 (ix86_expand_args_builtin): Likewise.
16611
44b86471
JDA
166122009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16613
e47b7d04
L
16614 * pa.c (output_call): Relocate non-jump insns in the delay slot of
16615 long absolute calls when generating PA 2.0 code.
44b86471 16616
311aab06
VM
166172009-01-05 Vladimir Makarov <vmakarov@redhat.com>
16618
16619 PR rtl-optimization/38583
16620 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
16621
16622 * params.def (ira-max-conflict-table-size): New.
16623
16624 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 16625
311aab06 16626 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 16627
311aab06
VM
16628 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
16629 table. Report this. Return result of building.
16630 (ira_build_conflicts): Use ira_conflicts_p. Check result of
16631 building conflict table.
16632
301b6a4e 16633 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 16634 (ira_color): Use ira_conflicts_p.
2ba9daa7 16635
311aab06
VM
16636 * global.c: Include ira.h.
16637 (pseudo_for_reload_consideration_p, build_insn_chain): Use
16638 ira_conflicts_p.
16639
16640 * Makefile.in (global.o): Add ira.h.
2ba9daa7 16641
311aab06
VM
16642 * ira-build.c (mark_all_loops_for_removal,
16643 propagate_some_info_from_allocno): New.
16644 (remove_unnecessary_allocnos): Call
16645 propagate_some_info_from_allocno.
16646 (remove_low_level_allocnos): New.
16647 (remove_unnecessary_regions): Add parameter. Call
16648 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
16649 parameter to remove_unnecessary_regions.
16650 (ira_build): Remove all regions but root if the conflict table was
16651 not built. Update conflict hard regs for allocnos crossing calls.
16652
16653 * ira.c (ira_conflicts_p): New global.
16654 (ira): Define and use ira_conflicts_p.
16655
16656 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
16657 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 16658 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 16659
5641785f
BE
166602009-01-06 Ben Elliston <bje@au.ibm.com>
16661
16662 * gengtype-lex.l (YY_NO_INPUT): Define.
16663
e4e5261f
AP
166642009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
16665
16666 PR c/34911
5641785f
BE
16667 * c-common.c (handle_vector_size_attribute): Also reject
16668 BOOLEAN_TYPE types.
e4e5261f 16669
7b10257f
SP
166702009-01-05 Sebastian Pop <sebastian.pop@amd.com>
16671
16672 PR tree-optimization/38492
16673 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
16674 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
16675 rename_map_elt_info, eq_rename_map_elts,
16676 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
16677 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
16678 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
16679 (sese_build_livein_liveouts): New.
16680 (new_sese, free_sese): New.
16681 (new_scop): Call new_sese.
16682 (free_scop): Call free_sese.
16683 (rename_variables_from_edge, rename_phis_end_scop): Removed.
16684 (register_old_new_names): Renamed register_old_and_new_names.
16685 (register_scop_liveout_renames, add_loop_exit_phis,
16686 insert_loop_close_phis, struct igp,
16687 default_liveout_before_guard, add_guard_exit_phis,
16688 insert_guard_phis, copy_renames): New.
16689 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
16690 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
16691 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
16692 (scop_adjust_phis_for_liveouts): New.
16693 (gloog): Call scop_adjust_phis_for_liveouts.
16694
16695 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 16696 num_ver and livein.
7b10257f
SP
16697 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
16698 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
16699 (struct scop): Added field liveout_renames.
16700 (SCOP_LIVEOUT_RENAMES): New.
16701
9761fcc7
HJ
167022009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
16703
16704 PR tree-optimization/38510
16705 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
16706 (translate_clast): Call recompute_all_dominators before
16707 graphite_verify.
16708 (gloog): Call recompute_all_dominators before graphite_verify.
16709
167102009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 16711 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
16712
16713 PR tree-optimization/38500
16714 * graphite.c (create_sese_edges): Call fix_loop_structure after
16715 splitting blocks.
16716
c95b2534 167172009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
16718
16719 * config.gcc: Add m32r*-*-rtems*.
16720 * config/m32r/rtems.h: New file.
16721
fc0cd180
BE
167222009-01-05 Ben Elliston <bje@au.ibm.com>
16723
16724 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
16725 (.po.pox): Likewise.
16726 (po/gcc.pot): Likewise.
16727
3106d8e5
DM
167282009-01-04 David S. Miller <davem@davemloft.net>
16729
16730 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
16731 (STARTING_FRAME_OFFSET): Always set to zero.
16732
0009b473
RS
167332009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
16734
16735 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
16736 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
16737 fixed-point types, and vectors of the same.
16738
4f24c6d6
RS
167392009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
16740
16741 * config/mips/sync.md (*mb_barrier): Rename to...
16742 (*memory_barrier): ...this.
16743
1df48f5c
JW
167442009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
16745
16746 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 16747 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
16748 and put in alphabetical order. Fix 'target' name and put in order.
16749 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
16750 typos.
16751
1a8c13b3
UB
167522009-01-04 Uros Bizjak <ubizjak@gmail.com>
16753
16754 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
16755 (memory_barrier): Expand as unspec instead of unspec_volatile.
16756 Remove mem:BLK from insn operands. Use Pmode scratch register.
16757 (*memory_barrier): Define as unspec instead of unspec_volatile.
16758 Use (match_dup 0) as input operand.
16759
16760 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
16761 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
16762 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
16763 scratch register. Remove operand 1.
16764 (*stbar): Define as unspec instead of unspec_volatile.
16765 Use (match_dup 0) as input operand, remove (const_int 8).
16766 (*membar): Define as unspec instead of unspec_volatile.
16767 Use (match_dup 0) as input operand, remove input operand 2.
16768
16769 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
16770 (memory_barrier): Expand as unspec instead of unspec_volatile.
16771 Remove mem:BLK from insn operands. Use Pmode scratch register.
16772 (*memory_barrier): Define as unspec instead of unspec_volatile.
16773 Use (match_dup 0) as input operand.
16774
16775 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
16776 Remove mem:BLK from insn operands. Use Pmode scratch register.
16777 Set volatile flag on operand 0.
16778 (*memory_barrier): New insn pattern.
16779
16780 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
16781 insn operands.
16782 (*memory_barrier): Use (match_dup 0) as input operand.
16783
16784 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
16785 Remove mem:BLK from insn operands. Use Pmode scratch register.
16786 Set volatile flag on operand 0.
301b6a4e 16787 (*mb_internal): New insn pattern.
1a8c13b3
UB
16788
16789 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
16790
fb0703f7
SB
167912009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16792
16793 PR middle-end/38586
16794 * function.c (struct temp_slot): Move to the section of the file
16795 that deals with temp slots. Remove field 'address'.
16796 (temp_slot_address_table): New hash table of address -> temp slot.
16797 (struct temp_slot_address_entry): New struct, items for the table.
16798 (temp_slot_address_compute_hash, temp_slot_address_hash,
16799 temp_slot_address_eq, insert_temp_slot_address): Support functions
16800 for the new table.
16801 (find_temp_slot_from_address): Rewrite to use the new hash table.
16802 (remove_unused_temp_slot_addresses): Remove addresses of temp
16803 slots that have been made available.
16804 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
16805 worker function for remove_unused_temp_slot_addresses.
16806 (assign_stack_temp_for_type): Don't clear the temp slot address list.
16807 Add the temp slot address to the address -> temp slot map.
16808 (update_temp_slot_address): Update via insert_temp_slot_address.
16809 (free_temp_slots): Call remove_unused_temp_slot_addresses.
16810 (pop_temp_slots): Likewise.
16811 (init_temp_slots): Allocate the address -> temp slot map, or empty
16812 the map if it is already allocated.
16813 (prepare_function_start): Initialize temp slot processing.
16814
b5a430f3
SB
168152009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16816
16817 PR middle-end/38584
16818 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
16819 Calculate the size of all stack vars assuming no packing of stack
16820 vars will happen, replacing a quadratic algorithm with a linear one.
16821
5d560619
JJ
168222009-01-03 Jakub Jelinek <jakub@redhat.com>
16823
16824 PR target/38707
16825 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
16826 can't be used.
16827
953a7caa
DN
168282009-01-03 Diego Novillo <dnovillo@google.com>
16829
16830 * doc/contrib.texi: Update contributions.
16831
5f26a230
JJ
168322009-01-03 Jakub Jelinek <jakub@redhat.com>
16833
493aa551
JJ
16834 PR c++/38705
16835 * builtins.c (fold_builtin_memory_op): Give up if either operand
16836 is volatile. Set srctype or desttype to non-qualified version
16837 of the other type.
16838
5f26a230
JJ
16839 PR c/38700
16840 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
16841 and FUNCTION_DECLs.
16842
c95b2534 168432009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
16844
16845 PR rtl-optimization/35805
16846 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
16847 problem if fast dce is able to remove any instructions.
16848 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 16849
0b355794
MM
168502009-01-02 Mark Mitchell <mark@codesourcery.com>
16851
16852 PR 33649
16853 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
16854
0cf0d02b
JJ
168552009-01-02 Jakub Jelinek <jakub@redhat.com>
16856
16857 PR middle-end/38690
16858 * tree-flow.h (op_code_prio, op_prio): New prototypes.
16859 * tree-pretty-print.c (op_code_prio): New function.
16860 (op_prio): No longer static. Use op_code_prio.
16861 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
16862 Use op_prio and op_code_prio to determine if () should be
16863 printed around operand(s) or not.
16864
16865 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
16866 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
16867 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
16868 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
16869 pp_character instead of pp_string for single letter printing.
16870
e3606f3b
RS
168712009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
16872
16873 * doc/extend.texi: Fix '#pragma GCC option' typo.
16874
c95b2534 168752009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 16876
a5f061dc
RG
16877 * doc/install.texi (--enable-checking): Mention different
16878 default for stage1.
16879 (--enable-stage1-checking): Document.
00f39bd5 16880
26de0bcb
AP
168812009-01-01 Andrew Pinski <pinskia@gmail.com>
16882
16883 PR middle-end/30142
16884 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
16885 case to be an error.
16886
7a7d8fab
BE
168872009-01-02 Ben Elliston <bje@au.ibm.com>
16888
16889 * config/fp-bit.h (pack_d): Constify argument.
16890 * config/fp-bit.c (makenan): Constify return type. Remove casts.
16891 (isnan): Constify argument.
16892 (isinf): Likewise.
16893 (iszero): Likewise.
16894 (pack_d): Likewise.
16895 (_fpadd_parts): Constify return type.
16896 (_fpmul_parts): Likewise.
16897 (_fpdiv_parts): Likewise.
16898
b295aee2
JJ
168992009-01-01 Jakub Jelinek <jakub@redhat.com>
16900
16901 PR c/36489
16902 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
16903 warn about overwriting initializer with side-effects or
16904 -Woverride-init if !IMPLICIT.
16905 (output_init_element): Likewise. Pass IMPLICIT down to
16906 add_pending_init.
16907 (process_init_element): Add IMPLICIT argument. Pass it down
16908 to output_init_element.
16909 (push_init_element, pop_init_level, set_designator): Adjust
16910 process_init_element callers.
16911 (set_nonincremental_init, set_nonincremental_init_from_string):
16912 Adjust add_pending_init callers.
16913 (output_pending_init_elements): Adjust output_init_element callers.
16914 * c-tree.h (process_init_element): Adjust prototype.
16915 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
16916 process_init_element callers.
ad41bd84
JM
16917
16918\f
16919Copyright (C) 2009 Free Software Foundation, Inc.
16920
16921Copying and distribution of this file, with or without modification,
16922are permitted in any medium without royalty provided the copyright
16923notice and this notice are preserved.