]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR c++/49834 ([C++0x] type deduction in for-each loop in template function)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
b7cef595
RH
12011-08-02 Richard Henderson <rth@redhat.com>
2
3 PR target/49881
4 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
5
20906c66
JJ
62011-08-02 Jakub Jelinek <jakub@redhat.com>
7
8 * c-parser.c (enum c_parser_prec): New enum, moved from within
9 c_parser_binary_expression.
10 (c_parser_binary_expression): Add PREC argument. Stop parsing
11 if operator has lower or equal precedence than PREC.
12 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
13 callers.
14 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
15 Adjust c_finish_omp_atomic caller.
16 (c_parser_omp_taskyield): New function.
17 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
18 (c_parser_omp_clause_name): Handle final and mergeable clauses.
19 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
20 functions.
21 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
22 and PRAGMA_OMP_CLAUSE_MERGEABLE.
23 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
24 (c_parser_omp_clause_reduction): Handle min and max.
25 * c-typeck.c (c_finish_omp_clauses): Don't complain about
26 const qualified predetermined vars in firstprivate clause.
27 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
28 Handle MIN_EXPR and MAX_EXPR.
29 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
30 and OMP_CLAUSE_MERGEABLE.
31 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
32 and OMP_ATOMIC_CAPTURE_NEW.
33 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
34 OMP_CLAUSE_MERGEABLE.
35 (omp_clause_code_name): Likewise.
36 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
37 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
38 and OMP_CLAUSE_MERGEABLE.
39 (OMP_CLAUSE_FINAL_EXPR): Define.
40 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
41 OMP_CLAUSE_MERGEABLE.
42 (expand_task_call): Likewise.
43 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
44 (expand_omp_atomic_fetch_op): Handle cases where old or new
45 value is needed afterwards.
46 (expand_omp_atomic): Call expand_omp_atomic_load resp.
47 expand_omp_atomic_store.
48 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
49 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
50 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
51 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
52 * tree-nested.c (convert_nonlocal_omp_clauses,
53 convert_local_omp_clauses): Likewise.
54 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
55 OMP_ATOMIC_CAPTURE_NEW): New.
56 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
57 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
58 New inlines.
59 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
60 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
61 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
62
9b80d091
KT
632011-08-02 Kai Tietz <ktietz@redhat.com>
64
65 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
66 boolean-type.
67 (ssa_forward_propagate_and_combine): Interprete result of
68 forward_propagate_comparison.
69 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
70 boolean-typed operands for comparisons.
71
7ea56b23
GJL
722011-08-02 Georg-Johann Lay <avr@gjlay.de>
73
74 * config/avr/libgcc.S: Gather related function in the
75 same input section.
76 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
77 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
78 references.
79 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
80 __udivmodsi4, __divmodsi4, __prologue_saves__,
81 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
82 __do_copy_data, __do_clear_bss, __do_global_ctors,
83 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
84
643e867f
UB
852011-08-02 Uros Bizjak <ubizjak@gmail.com>
86
87 PR target/47766
88 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
89 (stack_protect_test): The pattern compares ptr_mode value.
90
390fa588
AM
912011-08-02 Alan Modra <amodra@gmail.com>
92
93 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
94 note for save_LR_around_toc_setup sequence.
95
d4be16f6
L
962011-08-01 H.J. Lu <hongjiu.lu@intel.com>
97
643e867f 98 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
d4be16f6 99
3c67fd9c
SP
1002011-08-01 Sebastian Pop <sebastian.pop@amd.com>
101 Joseph Myers <joseph@codesourcery.com>
102
103 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
104 * hwint.c: Include diagnostic-core.h.
105 (abs_hwi): New.
106 (gcd): Moved here...
107 (pos_mul_hwi): New.
108 (mul_hwi): New.
109 (least_common_multiple): Moved here...
110 * hwint.h (gcd): ... from here.
111 (least_common_multiple): ... from here.
112 (HOST_WIDE_INT_MIN): New.
113 (HOST_WIDE_INT_MAX): New.
114 (abs_hwi): Declared.
115 (gcd): Declared.
116 (pos_mul_hwi): Declared.
117 (mul_hwi): Declared.
118 (least_common_multiple): Declared.
119 * omega.c (check_pos_mul): Removed.
120 (check_mul): Removed.
121 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
122 mul_hwi instead of check_mul.
123
172c08a5
RH
1242011-08-01 Richard Henderson <rth@redhat.com>
125
126 PR target/49881
127 * config/avr/avr.h (PUSH_ROUNDING): New.
128 * config/avr/avr.md (pushqi1): Rename from *pushqi.
129 (*pushhi, *pushsi, *pushsf): Remove.
130 (MPUSH): New mode iterator.
131 (push<MPUSH>1): New expander.
132
0d5e496f
AS
1332011-08-01 Anatoly Sokolov <aesok@post.ru>
134
135 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
136 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
137 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
138 mmix_preferred_output_reload_class): Remove.
139 * config/mmix/mmix.c (mmix_preferred_reload_class,
140 mmix_preferred_output_reload_class): Make static. Change rclass
141 argument and return type to reg_class_t.
142 (TARGET_PREFERRED_RELOAD_CLASS,
143 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
144
a44250f4
JR
1452011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
146
147 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
148 handling.
149
efd7630c
L
1502011-08-01 H.J. Lu <hongjiu.lu@intel.com>
151
152 PR target/47766
153 * config/i386/i386.md (PTR): New.
154 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
155 (stack_protect_test): Likewise.
156 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
157 (stack_tls_protect_set_<mode>): Likewise.
158 (stack_tls_protect_test_<mode>): Likewise.
159
03acddfe
UB
1602011-08-01 Uros Bizjak <ubizjak@gmail.com>
161
162 PR target/49927
163 * config/i386/i386.c (ix86_address_subreg_operand): New.
164 (ix86_decompose_address): Use ix86_address_subreg_operand.
165 (ix86_legitimate_address_p): Do not assert that subregs satisfy
166 register_no_elim_operand in DImode.
167
67f2d54f
IR
1682011-08-01 Ira Rosen <ira.rosen@linaro.org>
169
170 PR tree-optimization/49926
171 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
172 in a chain doesn't have uses both inside and outside the loop.
173
f2c308fa 1742011-08-01 Georg-Johann Lay <avr@gjlay.de>
03acddfe 175
f2c308fa
GJL
176 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
177 * config/avr/avr-devices.c (avr_mcu_types): Use it.
178 * config/avr/avr-mcus.def (AVR_MCU): Use it.
179 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
180 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
181 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
182 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
183 to detect if XJMP must not be skipped.
184
bd15e32c
AM
1852011-08-02 Alan Modra <amodra@gmail.com>
186
03acddfe
UB
187 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
188 Delete.
bd15e32c
AM
189 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
190 (rs6000_emit_prologue): Don't prematurely return when
191 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
192 save_toc_in_prologue case.
193 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
194 calls_alloca.
195
d80de9e1 1962011-08-01 Georg-Johann Lay <avr@gjlay.de>
bd15e32c 197
d80de9e1
GJL
198 * config/avr/avr-devices.c: Delete SVN property svn:executable.
199 * config/avr/predicates.md: Ditto.
200 * config/avr/driver-avr.c: Ditto.
201 * config/avr/genopt.sh: Set SVN property svn:executable to *.
202
ee222ce0
L
2032011-08-01 H.J. Lu <hongjiu.lu@intel.com>
204
205 * calls.c (emit_library_call_value_1): Declare size only if
206 BLOCK_REG_PADDING is defined.
207
5fcafa60
KY
2082011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
209
210 PR target/49547
03acddfe 211 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
5fcafa60
KY
212 (x86_64-*-*): Likewise.
213 * config/i386/i386.opt (mlzcnt): New.
214 * config/i386/abmintrin.h: File removed.
215 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
03acddfe 216 * config/i386/lzcntintrin.h: ... here. New file.
5fcafa60
KY
217 (__lzcnt): Rename to ...
218 (__lzcnt32): ... this.
219 * config/i386/bmiintrin.h (head): Update copyright year.
220 (__lzcnt_u16): Removed.
221 (__lzcnt_u32): Likewise.
222 (__lzcnt_u64): Likewise.
223 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
224 is defined, remove abmintrin.h.
225 * config/i386/cpuid.h (bit_LZCNT): New.
226 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
227 LZCNT feature.
228 * config/i386/i386-c.c (ix86_target_macros_internal): Define
229 __LZCNT__ if needed.
230 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
231 (ix86_option_override_internal): Handle LZCNT option.
232 (ix86_valid_target_attribute_inner_p): Likewise.
233 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
234 * config/i386/i386.h (TARGET_LZCNT): New.
235 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
236 * config/i386/i386.md (clz<mode>2): Update insn constraint.
237 (clz<mode>2_lzcnt): Likewise.
238 * doc/invoke.texi: Mention -mlzcnt option.
239 * doc/extend.texi: Likewise.
240
655b30bf
JB
2412011-08-01 Julian Brown <julian@codesourcery.com>
242
243 * configure.ac (fixed-point): Add ARM support.
244 * configure: Regenerate.
245 * config/arm/arm.c (arm_fixed_mode_set): New struct.
246 (arm_set_fixed_optab_libfunc): New.
247 (arm_set_fixed_conv_libfunc): New.
248 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
249 ARM-specific names.
250 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
251 return values in SImode.
252 (arm_return_in_msb): Return fixed-point types in the msb.
253 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
254 upwards.
255 (arm_scalar_mode_supported_p): Support fixed-point modes.
256 (arm_vector_mode_supported_p): Support vector fixed-point modes.
257 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
258 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
259 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
260 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
261 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
262 New mode iterators.
263 (qaddsub_suf): New mode attribute.
264 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
265 vector modes.
266 * config/arm/predicates.md (sat_shift_operator): New predicate.
267 * config/arm/arm-fixed.md: New.
268 * config/arm/arm.md: Include arm-fixed.md.
269 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
270
460b171d
JB
2712011-08-01 Julian Brown <julian@codesourcery.com>
272
273 * calls.c (emit_library_call_value_1): Support padding for libcall
274 arguments and return values.
275 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
276 downwards in big-endian mode.
277
b6193c94
RO
2782011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
279
280 PR debug/49887
281 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
282 * config/sol2-protos.h: Likewise.
283 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
284 solaris_code_end.
285 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
286 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
287 solaris_file_end.
288 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
289
0747aae4
JB
2902011-08-01 Julian Brown <julian@codesourcery.com>
291
292 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
293
848fac28
JB
2942011-08-01 Julian Brown <julian@codesourcery.com>
295
296 * final.c (output_addr_const): Print fixed-point constants as
297 decimal not hex.
298
e62a2b6e
RG
2992011-08-01 Richard Guenther <rguenther@suse.de>
300
301 * stor-layout.c (initialize_sizetypes): Properly sign-extend
302 bitsiztype TYPE_MAX_VALUE.
303
f64398b5
JB
3042011-08-01 Julian Brown <julian@codesourcery.com>
305
306 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
307 comparison helpers.
308
c469244e
RH
3092011-07-31 Richard Henderson <rth@redhat.com>
310
311 * config/h8300/crti.asm: Add flags to .section directive.
312 * config/h8300/crtn.asm: Likewise.
313
b87ac615
RH
3142011-07-31 Richard Henderson <rth@redhat.com>
315
316 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
317 * tree.c (build_common_tree_nodes): Likewise.
318
05eb5cc3
KK
3192011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
320
321 PR target/49880
322 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
323 (divsi3_i1): Likewise.
324
a3059635
BS
3252011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
326
327 PR tree-optimization/49749
328 * tree-ssa-reassoc.c (get_rank): New forward declaration.
329 (PHI_LOOP_BIAS): New macro.
330 (phi_rank): New function.
331 (loop_carried_phi): Likewise.
332 (propagate_rank): Likewise.
333 (get_rank): Add calls to phi_rank and propagate_rank.
bd15e32c 334
3ee7be4c
L
3352011-07-31 H.J. Lu <hongjiu.lu@intel.com>
336
337 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
338 of TARGET_64BIT.
339 (PTRDIFF_TYPE): Likewise.
340
deb1f617
UB
3412011-07-31 Uros Bizjak <ubizjak@gmail.com>
342
343 PR target/49920
344 * config/i386/i386.md (strset): Do not expand strset_singleop
345 when %eax or $edi are fixed.
346 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
347 (*strsetsi_1): Ditto.
348 (*strsethi_1): Ditto.
349 (*strsetqi_1): Ditto.
350 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
351 (*rep_stossi): Ditto.
352 (*rep_stosqi): Ditto.
03acddfe 353 (*strlenqi_1): Ditto.
deb1f617
UB
354 (cmpstrnsi): Also fail when %ecx is fixed.
355 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
356 (*cmpstrnqi_1): Ditto.
deb1f617
UB
357 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
358 (*strmovsi_1): Ditto.
359 (*strmovhi_1): Ditto.
360 (*strmovqi_1): Ditto.
361 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
362 (*rep_movsi): Ditto.
363 (*rep_movqi): Ditto.
364
03e69b12
MP
3652011-07-31 Mikael Pettersson <mikpe@it.uu.se>
366
367 PR target/47908
368 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
369 Disable instruction scheduling for non-ColdFire targets.
370 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
371
dcaac07d
RE
3722011-07-31 Revital Eres <revital.eres@linaro.org>
373
374 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
375 of anti-dep edge from a branch.
376 (add_cross_iteration_register_deps): Create anti-dep edge from
377 a branch.
378
413e50a2
RE
3792011-07-31 Revital Eres <revital.eres@linaro.org>
380
381 * modulo-sched.c: Change comment.
382 (reset_sched_times): Fix print message.
383 (print_partial_schedule): Add print info.
384
f047e518
TV
3852011-07-31 Tom de Vries <tom@codesourcery.com>
386
387 PR middle-end/43513
388 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
389 get_object_alignment and TYPE_ALIGN.
390
b3421a06
TV
3912011-07-30 Tom de Vries <tom@codesourcery.com>
392
393 PR middle-end/43513
394 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
395 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
396
cc822cc1
RO
3972011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
398
399 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
400 <sys/sbd.h>.
401 (cpu_types): New array.
402 (cputype): New function.
403 (host_detect_local_cpu): Only define buf, f if !__sgi__.
404 Use scaninvent instead of /proc/cpuinfo if __sgi__.
405 * config.host: Also use driver-native.o, mips/x-native on
406 mips-sgi-irix*.
deb1f617 407 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
cc822cc1
RO
408 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
409 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
410
25142650
JJ
4112011-07-29 Jakub Jelinek <jakub@redhat.com>
412
413 PR middle-end/49897
414 PR middle-end/49898
415 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
416 in nested parallel and outer is a gimple_reg, mark it as addressable
417 and set its bit in task_shared_vars bitmap too.
418
89840058
UB
4192011-07-29 Uros Bizjak <ubizjak@gmail.com>
420
421 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
422
d2da41f5
RO
4232011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
424
425 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
426 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
427 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
428 AMASK_LOCKPFTCHOK): Define.
429 (host_detect_local_cpu): Remove buf, f, cpu_names.
430 Define cpu_types, implver, amask.
431 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
432 native CPU.
433 * config.host: Also use driver-alpha.o, alpha/x-alpha on
434 alpha*-dec-osf*.
435 * config/alpha/osf5.h [__alpha__ || __alpha]
436 (host_detect_local_cpu): Declare.
437 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
438 (DRIVER_SELF_SPECS): Define.
439
dadecee2
UB
4402011-07-29 Uros Bizjak <ubizjak@gmail.com>
441
442 PR target/47715
443 * config/i386/i386.md (*load_tp_x32): New.
444 (*load_tp_x32_zext): Ditto.
445 (*add_tp_x32): Ditto.
446 (*add_tp_x32_zext): Ditto.
447 (*load_tp_<mode>): Disable for TARGET_X32 targets.
448 (*add_tp_<mode>): Ditto.
449 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
450 ptr_mode and convert to Pmode if needed.
451
db7ccee2 4522011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 453
db7ccee2
GJL
454 PR target/49687
455 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
456 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
457 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
458 Add X to register footprint: Clobber r26/r27.
459
96d03496
RG
4602011-07-29 Richard Guenther <rguenther@suse.de>
461
462 * builtins.c (fold_builtin_signbit): Build the comparison
463 with a proper type.
464
64fb0d3a
RG
4652011-07-29 Richard Guenther <rguenther@suse.de>
466
467 PR tree-optimization/49893
468 * tree-predcom.c (suitable_reference_p): Volatile references
469 are not suitable.
470
6130646b 4712011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 472
6130646b
GJL
473 PR target/49313
474 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
475 (__ctzsi2): Result for 0 may be undefined.
476 (__ctzhi2): Result for 0 may be undefined.
477 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
478 (__popcountsi2): Ditto. And don't clobber r26.
479 (__popcountdi2): Ditto. And don't clobber r27.
480 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
481 (parityhi2): New expand.
482 (paritysi2): New expand.
483 (popcounthi2): New expand.
484 (popcountsi2): New expand.
485 (clzhi2): New expand.
486 (clzsi2): New expand.
487 (ctzhi2): New expand.
488 (ctzsi2): New expand.
489 (ffshi2): New expand.
490 (ffssi2): New expand.
491 (copysignsf3): New insn.
492 (bswapsi2): New expand.
493 (*parityhi2.libgcc): New insn.
494 (*parityqihi2.libgcc): New insn.
495 (*paritysihi2.libgcc): New insn.
496 (*popcounthi2.libgcc): New insn.
497 (*popcountsi2.libgcc): New insn.
498 (*popcountqi2.libgcc): New insn.
499 (*popcountqihi2.libgcc): New insn-and-split.
500 (*clzhi2.libgcc): New insn.
501 (*clzsihi2.libgcc): New insn.
502 (*ctzhi2.libgcc): New insn.
503 (*ctzsihi2.libgcc): New insn.
504 (*ffshi2.libgcc): New insn.
505 (*ffssihi2.libgcc): New insn.
506 (*bswapsi2.libgcc): New insn.
507
a9b332d4
RG
5082011-07-29 Richard Guenther <rguenther@suse.de>
509
510 * tree-vrp.c (get_value_range): Only set parameter default
511 definitions to varying, leave others at undefined.
512 (extract_range_from_binary_expr): Fix undefined handling.
513 (vrp_visit_phi_node): Handle merged undefined state.
514
154516d9
WG
5152011-07-29 Wei Guozhi <carrot@google.com>
516
517 PR rtl-optimization/49799
518 * combine.c (make_compound_operation): Check if the bit field is valid
519 before change it to bit field extraction.
520
e40a0b69
BS
5212011-07-29 Bernd Schmidt <bernds@codesourcery.com>
522
523 PR rtl-optimization/49891
524 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
525 newly created returnjumps.
526
13a23442
DD
5272011-07-28 DJ Delorie <dj@redhat.com>
528
69135c94
DD
529 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
530 local frame in a naked function, and produce a suitable error for
531 that specific case.
532
13a23442
DD
533 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
534 registers to be reloaded in HI classes when the target is HI.
535
6c6c79a9
SP
5362011-07-28 Sebastian Pop <sebastian.pop@amd.com>
537
538 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
539 bound_one, bound_two.
540
0c43dbaf
SP
5412011-07-28 Sebastian Pop <sebastian.pop@amd.com>
542
543 PR middle-end/48648
544 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
545 CLAST assignments.
546 (translate_clast): Same.
547 (translate_clast_assignment): New.
548
60cf26cc
SP
5492011-07-28 Sebastian Pop <sebastian.pop@amd.com>
550
551 PR tree-optimization/49876
552 * sese.c (rename_uses): Do not return false on gloog_error: set
553 the new_expr to integer_zero_node and continue code generation.
554 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
555
4fe249e7
JJ
5562011-07-28 Jakub Jelinek <jakub@redhat.com>
557
558 PR debug/49846
559 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
560 arguments also check if they aren't initialized with a MODE_INT
561 mode of the same size.
562
86f98641
AH
5632011-07-28 Aldy Hernandez <aldyh@redhat.com>
564
565 * expr.c (get_bit_range): Handle *MEM_REF's.
566
dc0ff1c8
BS
5672011-07-28 Bernd Schmidt <bernds@codesourcery.com>
568
569 * rtlanal.c (tablejump_p): False for returns.
570 * reorg.c (first_active_target_insn): New static function.
571 (find_end_label): Set JUMP_LABEL for a new returnjump.
572 (optimize_skip, get_jump_flags, rare_destination,
573 mostly_true_jump, get_branch_condition,
574 steal_delay_list_from_target, own_thread_p,
575 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
576 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
577 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
578 * jump.c (delete_related_insns): Likewise.
579 (jump_to_label_p): New function.
580 (redirect_target): New static function.
581 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
582 (redirect_jump_1): Assert that the new label is nonnull.
583 (redirect_jump): Likewise.
584 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
585 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
586 exit block.
587 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
588 changed. Ensure that the right label is passed to redirect_jump.
589 * function.c (emit_return_into_block,
590 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
591 ret_rtx in their JUMP_LABEL.
592 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
593 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
594 pass ret_rtx as label.
595 * cfglayout.c (fixup_reorder_chain): Use
596 force_nonfallthru_and_redirect rather than force_nonfallthru.
597 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
598 * rtl.h (ANY_RETURN_P): New macro.
599 (jump_to_label_p): Declare.
600 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
601 JUMP_LABELs.
602 (mark_target_live_regs): Likewise.
603 * basic-block.h (force_nonfallthru_and_redirect): Declare.
604 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
605 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
606 alpha_tablejump_best_label): Remove functions.
607 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
608 alpha_tablejump_best_label): Remove declarations.
609 * config/sh/sh.c (barrier_align, split_branches): Adjust for
610 ret_rtx in JUMP_LABELs.
611 * config/arm/arm.c (is_jump_table): Likewise.
612
a2e49bb2
UB
6132011-07-28 Uros Bizjak <ubizjak@gmail.com>
614
615 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
616 special predicate. Remove explicit mode checks.
617
64153cce
JJ
6182011-07-28 Jakub Jelinek <jakub@redhat.com>
619
a2e49bb2
UB
620 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
621 DW_AT_data_member_location containing just DW_OP_plus_uconst.
b3882148 622
64153cce
JJ
623 PR debug/49871
624 * dwarf2out.c (size_of_die, value_format, output_die): Use
625 DW_FORM_udata instead of DW_FORM_data[48] for
626 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
627
0465f4f8
L
6282011-07-28 H.J. Lu <hongjiu.lu@intel.com>
629
844bf05b
UB
630 * config/i386/i386.md (*tls_global_dynamic_64): Update
631 length attribute.
0465f4f8 632
f51c4a8a
UB
6332011-07-28 Uros Bizjak <ubizjak@gmail.com>
634
635 PR target/47715
636 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
637 tls_symbolic_operand check. Update code sequence for TARGET_X32.
638 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
639 (tls_dynamic_gnu2_64): Ditto.
640 (*tls_dynamic_gnu2_lea_64): Ditto.
641 (*tls_dynamic_gnu2_call_64): Ditto.
642 (*tls_dynamic_gnu2_combine_64): Ditto.
643
5e9627ca
L
6442011-07-28 H.J. Lu <hongjiu.lu@intel.com>
645
646 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
647
40b9321d
L
6482011-07-28 H.J. Lu <hongjiu.lu@intel.com>
649
650 PR target/47364
651 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
652
95f89bb3
RR
6532011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
654
655 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
656 before the core constraints. Adjust attributes.
a2e49bb2 657 ("*thumb2_movdf_vfp"): Likewise.
95f89bb3 658
98958241
KT
6592011-07-28 Kai Tietz <ktietz@redhat.com>
660
f51c4a8a 661 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
98958241
KT
662 (simplify_truth_ops_using_ranges): Likewise.
663 (build_assert_expr_for): Likewise.
664 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
665 and handle BIT_NOT_EXPR for truth-operation.
666
f627fef2 6672011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 668
f627fef2
GJL
669 PR target/49313
670 Undo r176835 from trunk
671 2011-07-27 Georg-Johann Lay
672
296799ba 6732011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 674
296799ba
GJL
675 PR target/49687
676 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
677 Add _muluhisi3, _mulshisi3, _usmulhisi3.
678 * config/avr/libgcc.S (__mulsi3): Rewrite.
679 (__mulhisi3): Rewrite.
680 (__umulhisi3): Rewrite.
681 (__usmulhisi3): New.
682 (__muluhisi3): New.
683 (__mulshisi3): New.
684 (__mulohisi3): New.
685 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
686 declare.
687 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
688 (pseudo_register_or_const_int_operand): New.
689 (combine_pseudo_register_operand): New.
690 (u16_operand): New.
691 (s16_operand): New.
692 (o16_operand): New.
693 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
694 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
695 (any_extend, any_extend2): New code iterators.
696 (extend_prefix): New code attribute.
697 (mulsi3): Rewrite. Turn insn to expander.
698 (mulhisi3): Ditto.
699 (umulhisi3): Ditto.
700 (usmulhisi3): New expander.
701 (*mulsi3): New insn-and-split.
702 (mulu<mode>si3): New insn-and-split.
703 (muls<mode>si3): New insn-and-split.
704 (mulohisi3): New insn-and-split.
705 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
706 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
707 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
708 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
709 insn-and-split.
710 (*mulsi3_call): Rewrite.
711 (*mulhisi3_call): Rewrite.
712 (*umulhisi3_call): Rewrite.
713 (*usmulhisi3_call): New insn.
714 (*muluhisi3_call): New insn.
715 (*mulshisi3_call): New insn.
716 (*mulohisi3_call): New insn.
717 (extendqihi2): Use combine_pseudo_register_operand as predicate
718 for operand 1.
719 (extendqisi2): Ditto.
720 (zero_extendqihi2): Ditto.
721 (zero_extendqisi2): Ditto.
722 (zero_extendhisi2): Ditto.
723 (extendhisi2): Ditto. Don't early-clobber operand 0.
724
d8fa1b73
UB
7252011-07-28 Uros Bizjak <ubizjak@gmail.com>
726
727 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
728
3689198d
SP
7292011-07-27 Sebastian Pop <sebastian.pop@amd.com>
730
731 PR tree-optimization/49471
732 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
733 iv only when the largest type is unsigned. Do not call
734 lang_hooks.types.type_for_size.
735
27165edd
SP
7362011-07-27 Sebastian Pop <sebastian.pop@amd.com>
737
738 PR middle-end/45450
739 * graphite-poly.c (apply_poly_transforms): Disable legality check
740 after an openscop read.
741
bd4a54da
SP
7422011-07-27 Sebastian Pop <sebastian.pop@amd.com>
743
744 PR middle-end/47691
745 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
746 copy_bb_and_scalar_dependences.
747 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
748 (graphite_copy_stmts_from_block): Update call to rename_uses.
749 (copy_bb_and_scalar_dependences): Update call to
750 graphite_copy_stmts_from_block.
751 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
752
04c9ea12 7532011-07-27 Georg-Johann Lay <avr@gjlay.de>
bd4a54da 754
04c9ea12
GJL
755 PR target/49313
756 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
757 (__ctzsi2): Result for 0 may be undefined.
758 (__ctzhi2): Result for 0 may be undefined.
759 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
760 (__popcountsi2): Ditto. And don't clobber r26.
761 (__popcountdi2): Ditto. And don't clobber r27.
762 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
763 (parityhi2): New expand.
764 (paritysi2): New expand.
765 (popcounthi2): New expand.
766 (popcountsi2): New expand.
767 (clzhi2): New expand.
768 (clzsi2): New expand.
769 (ctzhi2): New expand.
770 (ctzsi2): New expand.
771 (ffshi2): New expand.
772 (ffssi2): New expand.
773 (copysignsf3): New insn.
774 (bswapsi2): New expand.
775 (*parityhi2.libgcc): New insn.
776 (*parityqihi2.libgcc): New insn.
777 (*paritysihi2.libgcc): New insn.
778 (*popcounthi2.libgcc): New insn.
779 (*popcountsi2.libgcc): New insn.
780 (*popcountqi2.libgcc): New insn.
781 (*popcountqihi2.libgcc): New insn-and-split.
782 (*clzhi2.libgcc): New insn.
783 (*clzsihi2.libgcc): New insn.
784 (*ctzhi2.libgcc): New insn.
785 (*ctzsihi2.libgcc): New insn.
786 (*ffshi2.libgcc): New insn.
787 (*ffssihi2.libgcc): New insn.
788 (*bswapsi2.libgcc): New insn.
789
479a4921
UB
7902011-07-27 Uros Bizjak <ubizjak@gmail.com>
791
792 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
793 the mode of symbolic_opreand RTXes.
794
7aecd4e8
UB
7952011-07-27 Uros Bizjak <ubizjak@gmail.com>
796
a2e49bb2
UB
797 * config/i386/predicates.md (x86_64_movabs_operand): Return false
798 for pic_32bit_operand RTXes.
7aecd4e8
UB
799 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
800 in DImode.
801
eb9820c0
KT
8022011-07-27 Kai Tietz <ktietz@redhat.com>
803
2fe83a0c
KT
804 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
805 for 32-bit, too.
806 (ix86_handle_abi_attribute): Allow function attributes
807 ms_abi/sysv_abi in 32-bit mode, too.
808 * doc/extend.texi: Adjust attribute documentation.
809
eb9820c0
KT
810 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
811 expression handling.
812 (and_var_with_comparison_1): Likewise.
813
1169e45d
AH
8142011-07-27 Aldy Hernandez <aldyh@redhat.com>
815
816 * params.h (ALLOW_STORE_DATA_RACES): New.
817 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
818 * Makefile.in (expr.o): Depend on PARAMS_H.
819 * machmode.h (get_best_mode): Add argument.
820 * fold-const.c (optimize_bit_field_compare): Add argument to
821 get_best_mode.
822 (fold_truthop): Same.
823 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
824 * expr.c (emit_group_store): Same.
825 (copy_blkmode_from_reg): Same.
826 (write_complex_part): Same.
827 (optimize_bitfield_assignment_op): Add argument.
828 Add argument to get_best_mode.
829 (get_bit_range): New.
7aecd4e8 830 (expand_assignment): Calculate maxbits and pass it down accordingly.
1169e45d 831 (store_field): New argument.
7aecd4e8 832 (expand_expr_real_2): New argument to store_field. Include params.h.
1169e45d
AH
833 * expr.h (store_bit_field): New argument.
834 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
835 into account maxbits.
836 * calls.c (store_unaligned_arguments_into_pseudos): New argument
837 to store_bit_field.
838 * expmed.c (store_bit_field_1): New argument. Use it.
839 (store_bit_field): Same.
840 (store_fixed_bit_field): Same.
841 (store_split_bit_field): Same.
842 (extract_bit_field_1): Pass new argument to get_best_mode.
843 (extract_bit_field): Same.
844 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
845 * doc/invoke.texi: Document parameter allow-store-data-races.
846
7bbdd4e9
JJ
8472011-07-27 Jakub Jelinek <jakub@redhat.com>
848
7aecd4e8 849 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7bbdd4e9 850
aebf4828
KT
8512011-07-27 Kai Tietz <ktietz@redhat.com>
852
853 * tree-vrp.c (extract_range_from_binary_expr): Remove
854 TRUTH-binary cases and add new bitwise-cases.
855 (extract_range_from_assignment): Likewise.
856 (register_edge_assert_for_1): Likeiwise.
857 (register_edge_assert_for): Likewise.
858 (simplify_truth_ops_using_ranges): Likewise.
859 (simplify_stmt_using_ranges): Likewise.
860
65ceed36
L
8612011-07-26 H.J. Lu <hongjiu.lu@intel.com>
862
863 PR target/47372
864 * config/i386/i386.c (ix86_delegitimize_address): Call
865 simplify_gen_subreg for PIC with mode of x only if modes of
866 x and orig_x are different.
867
b56bc05b
JJ
8682011-07-26 Jakub Jelinek <jakub@redhat.com>
869
870 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
871 to GC allocated copy of the string.
872 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
873 before .debug_line, not after it.
874
bce26def
SP
8752011-07-26 Sebastian Pop <sebastian.pop@amd.com>
876
877 PR middle-end/47046
878 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
879 evolution_function_is_affine_p on CHREC_RIGHT.
880
5f72e02d
SP
8812011-07-26 Sebastian Pop <sebastian.pop@amd.com>
882
883 * tree-data-ref.c (max_stmt_executions_tree): Do not call
884 lang_hooks.types.type_for_size.
885
cbc1994b
SP
8862011-07-26 Sebastian Pop <sebastian.pop@amd.com>
887
888 PR middle-end/47653
889 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
890 loops using wrapping semantics.
891
4c7d6755
SP
8922011-07-26 Sebastian Pop <sebastian.pop@amd.com>
893
894 PR middle-end/48805
895 * tree-scalar-evolution.c (instantiate_scev_r): Return
896 chrec_dont_know for ADDR_EXPR.
897
e207e41f
UB
8982011-07-26 Uros Bizjak <ubizjak@gmail.com>
899 H.J. Lu <hongjiu.lu@intel.com>
900
901 PR target/47369
902 PR target/49853
903 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
904 if legitimize_tls_address returned operand in wrong mode. Allow
905 SImode and DImode symbolic operand for PIC. Call convert_to_mode
906 if legitimize_pic_address returned operand in wrong mode.
907
842eeb9b
MJ
9082011-07-26 Martin Jambor <mjambor@suse.cz>
909
910 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
911 return false for invariants.
912
98d2c0ad
UB
9132011-07-26 Uros Bizjak <ubizjak@gmail.com>
914
915 * config/i386/i386.md (add->lea splitter): Implement using SWI
916 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
917 (add->lea zext splitter): Change operand 2 predicate to
918 x86_64_nonmemory_operand.
919
c21510a9
RG
9202011-07-26 Richard Guenther <rguenther@suse.de>
921
922 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
923 frequency makes everything hot.
924
9f61fd17
RG
9252011-07-26 Richard Guenther <rguenther@suse.de>
926
927 PR tree-optimization/49840
928 * tree-vrp.c (range_fits_type_p): Properly handle full
929 double-int precision.
930
5bf3d50d
MJ
9312011-07-26 Martin Jambor <mjambor@suse.cz>
932
933 PR bootstrap/49786
934 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
935 counts.
936 (update_specialized_profile): Likewise.
937
536e3f49
UB
9382011-07-26 Uros Bizjak <ubizjak@gmail.com>
939 H.J. Lu <hongjiu.lu@intel.com>
940
941 PR target/47381
942 PR target/49832
943 PR target/49833
944 * config/i386/i386.md (i): Change SImode attribute to "e".
945 (g): Change SImode attribute to "rme".
946 (di): Change SImode attribute to "nF".
947 (general_operand): Change SImode attribute to x86_64_general_operand.
948 (general_szext_operand): Change SImode attribute to
949 x86_64_szext_general_operand.
950 (immediate_operand): Change SImode attribute to
951 x86_64_immediate_operand.
952 (nonmemory_operand): Change SImode attribute to
953 x86_64_nonmemory_operand.
954 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
955 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
956 (*lea_1): Use SWI48 mode iterator.
957 (*lea_1_zext): New insn pattern.
958 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
959 (*bt<mode>): Ditto.
960 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
961 Update operand constraints.
962 (addsi_1_zext): Ditto.
963 (*add<mode>2): Ditto.
964 (*addsi_3_zext): Ditto.
965 (*subsi_1_zext): Ditto.
966 (*subsi_2_zext): Ditto.
967 (*subsi_3_zext): Ditto.
968 (*addsi3_carry_zext): Ditto.
969 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
970 (*mulsi3_1_zext): Ditto.
971 (*andsi_1): Ditto.
972 (*andsi_1_zext): Ditto.
973 (*andsi_2_zext): Ditto.
974 (*<any_or:code>si_1_zext): Ditto.
975 (*<any_or:code>si_2_zext): Ditto.
976 (*test<mode>_1): Use <general_operand> predicate for operand 1.
977 (*and<mode>_2): Ditto.
978 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
979 (add->lea splitter): Check operand modes in insn constraint. Extend
980 operands less than SImode wide to SImode.
981 (add->lea zext splitter): Do not extend input operands to DImode.
982 (*lea_general_1): Handle only QImode and HImode operands.
983 (*lea_general_2): Ditto.
984 (*lea_general_3): Ditto.
985 (*lea_general_1_zext): Remove.
986 (*lea_general_2_zext): Ditto.
987 (*lea_general_3_zext): Ditto.
988 (*lea_general_4): Check operand modes in insn constraint. Extend
989 operands less than SImode wide to SImode.
990 (ashift->lea splitter): Ditto.
991 * config/i386/i386.c (ix86_print_operand_address): Print address
992 registers with 'q' modifier on 64bit targets.
993 * config/i386/predicates.md (pic_32bit_opreand): Define as special
994 predicate. Reject non-SI and non-DI modes.
995
0de204de
AP
9962011-07-25 Andrew Pinski <apinski@cavium.com>
997
998 PR tree-opt/49671
999 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
1000 TREE_THIS_NOTRAP into the inner most MEM_REF.
1001 Always copy TREE_THIS_VOLATILE.
1002 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
1003 arguments are not volatile references.
1004
104fcc7a
RH
10052011-07-25 Richard Henderson <rth@redhat.com>
1006
1007 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
1008 * final.c (final_scan_insn): Don't test for it.
1009 (rest_of_clean_state): Likewise.
1010
c24a6738
RH
10112011-07-25 Richard Henderson <rth@redhat.com>
1012
1013 PR debug/49841
1014 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
1015 (emit_frame_save): Likewise.
1016 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
1017 insn onto a dummy blockage insn after the join label.
1018
200e10dc
RH
10192011-07-25 Richard Henderson <rth@redhat.com>
1020
1021 * dwarf2cfi.c (dw_trace_info): Add ID member.
1022 (get_trace_index): Remove. Change users to use ID member.
1023 (before_next_cfi_note): New.
1024 (connect_traces): Remove unreachable traces before the main loop.
1025 Look across one trace and generate remember/restore_state if needed.
1026
a5d0ce89
RH
10272011-07-25 Richard Henderson <rth@redhat.com>
1028
1029 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
1030
c344a866
JR
10312011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
1032
1033 * genattr.c (write_upcase, gen_attr <enum definition writing>):
1034 Move to ...
1035 * genattr-common.c ... here.
1036 (main): Call gen_attr.
1037 * optc-gen.awk: Make generated program include insn-attr-common.h .
1038 * Makefile.in (oprions.o): Depend on insn-attr-common.h
1039
4645179e
AS
10402011-07-25 Anatoly Sokolov <aesok@post.ru>
1041
1042 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1043 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1044 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
1045 m32c_print_operand, m32c_print_operand_address): Remove.
1046 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
1047 Change return type to bool. Change argument type to bool.
1048 (m32c_print_operand, m32c_print_operand_address): Make static.
1049 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1050 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1051
8175c19c
RO
10522011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1053
1054 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
1055 attributes): Document mmap.
1056
5057fa13
AS
10572011-07-25 Anatoly Sokolov <aesok@post.ru>
1058
1059 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1060 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1061 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
1062 mmix_print_operand, mmix_print_operand_address): Remove.
1063 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
1064 Change return type to bool. Change argument type to bool.
1065 (mmix_print_operand, mmix_print_operand_address): Make static.
536e3f49 1066 (mmix_intval, mmix_output_condition): Change 'x' argument type
5057fa13
AS
1067 to const_rtx.
1068 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1069 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1070
f4da258f 10712011-07-25 Georg-Johann Lay <avr@gjlay.de>
536e3f49 1072
f4da258f
GJL
1073 PR target/39386
1074 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
1075 shift counter for x << x and x >> x shifts.
1076
1500b428
RO
10772011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1078
1079 PR target/47124
1080 * config.gcc: Reject *-*-solaris2 configuration.
1081
59daeef4
RS
10822011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
1083
1084 PR tree-optimization/49809
1085 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
1086 gimple_get_lhs instead of gimple_assign_lhs.
1087
4d1c7421
RO
10882011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1089
1090 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
1091
7fdab8d4
RG
10922011-07-25 Richard Guenther <rguenther@suse.de>
1093
1094 PR tree-optimization/49822
1095 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1096 more. Make sure to preserve stmts with side-effects. Properly
1097 handle virtual defs, follow a longer def chain.
1098
1baae426
RG
10992011-07-22 Romain Geissler <romain.geissler@gmail.com>
1100
1101 PR plugins/45348
1102 PR plugins/48425
1103 PR plugins/46577
1104 * Makefile.in: Do not flatten c-family directory when installing
1105 plugin headers.
1106
264b47b0
EB
11072011-07-25 Eric Botcazou <ebotcazou@adacore.com>
1108
1109 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
1110 original nodes if we are dealing with virtual clones.
1111
3d02ae65
BS
11122011-07-25 Bernd Schmidt <bernds@codesourcery.com>
1113
1114 * common/config/c6x/c6x-common.c: New file.
1115
2eaa698b
RZ
11162011-07-25 Roman Zhuykov <zhroma@ispras.ru>
1117
1118 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
1119
ebeadd91
RG
11202011-07-25 Richard Guenther <rguenther@suse.de>
1121
1122 PR tree-optimization/49715
1123 * tree-vrp.c: Include expr.h and optabs.h.
1124 (range_fits_type_): New function.
1125 (simplify_float_conversion_using_ranges): Likewise.
1126 (simplify_stmt_using_ranges): Call it.
1127 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
1128 * optabs.c (can_float_p): Export.
1129 * optabs.h (can_float_p): Declare.
1130
d9256277
RG
11312011-07-25 Richard Guenther <rguenther@suse.de>
1132
1133 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
1134 (get_value_range): For out-of-range SSA names or names created
1135 after propagation return a read-only varying range.
1136 (dump_all_value_ranges): Adjust.
1137 (vrp_initialize): Likewise.
1138 (vrp_finalize): Likewise.
1139
149e741d
RH
11402011-07-24 Richard Henderson <rth@redhat.com>
1141
1142 PR debug/49831
1143 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
1144 them entirely.
1145
981dc735
RH
11462011-07-24 Richard Henderson <rth@redhat.com>
1147
1148 PR debug/49825
1149 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
1150 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
1151
3382318a
RH
11522011-07-24 Richard Henderson <rth@redhat.com>
1153
1154 PR debug/49827
1155 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
1156
2f23f97a
RH
11572011-07-24 Richard Henderson <rth@redhat.com>
1158
1159 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
1160 Zero args_size for abnormal edges. Adjust all callers.
1161
2edb462e
RH
11622011-07-24 Richard Henderson <rth@redhat.com>
1163
1164 PR debug/49825
1165 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
1166
96d5384b
L
11672011-07-24 H.J. Lu <hongjiu.lu@intel.com>
1168
1169 PR bootstrap/49835
1170 * collect2.c (demangle_flag): Removed.
1171
df45fc34
SL
11722011-07-24 Sandra Loosemore <sandra@codesourcery.com>
1173
1174 * configure.ac (demangler_in_ld): Default to yes.
1175 * configure: Regenerated.
1176 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
1177 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
1178 --no-demangle options straight through to ld. When
1179 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
1180 way that has the intended effect on Windows.
1181
829bdd4b
RH
11822011-07-23 Richard Henderson <rth@redhat.com>
1183
1184 * dwarf2cfi.c: Include basic-block.h.
1185 (dw_label_info): Remove.
1186 (trace_work_list, trace_index): New.
1187 (remember_row, emit_cfa_remember): Remove.
1188 (dw_trace_info_hash, dw_trace_info_eq): New.
1189 (get_trace_index, get_trace_info): New.
1190 (save_point_p): New.
1191 (free_cfi_row): Remove.
1192 (add_cfi): Do not emit DW_CFA_remember_state.
1193 (cfa_row_equal_p): New.
1194 (barrier_args_size): Remove.
1195 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
1196 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
1197 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
1198 (dwarf2out_cfi_begin_epilogue): Remove.
1199 (dwarf2out_frame_debug_restore_state): Remove.
1200 (connect_traces, create_pseudo_cfg): New.
1201 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
1202 * Makefile.in (dwarf2cfi.o): Update.
1203
43215a89
RH
12042011-07-23 Richard Henderson <rth@redhat.com>
1205
1206 * dwarf2cfi.c (dw_trace_info): New.
1207 (dw_label_info): New.
1208 (cie_return_save): New.
1209 (cur_trace): New.
1210 (queued_args_size): Rename from args_size. Update all users.
1211 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
1212 (def_cfa_1): Use cur_trace instead of cfa_*.
1213 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
1214 (clobbers_queued_reg_save, reg_saved_in): Likewise.
1215 (dwarf2out_frame_debug_expr): Likewise.
1216 (create_cie_data): Split out from ...
1217 (execute_dwarf2_frame): ... here. Initialize cur_trace.
1218
6ffc63e1
RH
12192011-07-23 Richard Henderson <rth@redhat.com>
1220
1221 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
1222 Update all users to match.
1223 (execute_dwarf2_frame): Free reg_saved_in_data.
1224
999646c1
RH
12252011-07-23 Richard Henderson <rth@redhat.com>
1226
1227 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
1228 (queued_reg_saves): Don't GTY. Change to a VEC.
1229 (queue_reg_save): Update to match.
1230 (dwarf2out_flush_queued_reg_saves): Likewise.
1231 (clobbers_queued_reg_save): Likewise.
1232 (reg_saved_in): Likewise.
1233 (execute_dwarf2_frame): Free queued_reg_saves.
1234
ce363ef2
RH
12352011-07-23 Richard Henderson <rth@redhat.com>
1236
1237 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
1238
57e16c96
RH
12392011-07-23 Richard Henderson <rth@redhat.com>
1240
1241 * dwarf2cfi.c (add_cfi_args_size): Split out from...
1242 (dwarf2out_args_size): ... here.
1243 (add_cfi_restore): Split out from ...
1244 (dwarf2out_frame_debug_cfa_restore): ... here.
1245 (def_cfa_0): Split out from ...
1246 (def_cfa_1): ... here.
1247 (cfi_oprnd_equal_p, cfi_equal_p): New.
1248 (change_cfi_row): New.
1249 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
1250 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
1251 (output_cfis): Remove.
1252 * dwarf2out.c (output_fde): Simplify output_cfi loop.
1253 (dwarf2out_switch_text_section): Don't call output_cfis.
1254 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
1255 * dwarf2out.h: Update decls.
1256 (enum dw_val_class): Add dw_val_class_none.
1257
f1a0e830
RH
12582011-07-23 Richard Henderson <rth@redhat.com>
1259
1260 * dwarf2cfi.c (update_row_reg_save): New.
1261 (dwarf2out_frame_debug_cfa_expression): Use it.
1262 (dwarf2out_frame_debug_cfa_restore): Likewise.
1263 (reg_save): Likewise. Do not emit DW_CFA_same_value.
1264
141618e2
RH
12652011-07-23 Richard Henderson <rth@redhat.com>
1266
1267 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
1268
f17d3401
RH
12692011-07-23 Richard Henderson <rth@redhat.com>
1270
1271 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
1272 (cie_cfi_row): New.
1273 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
1274 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
1275 (cur_row, remember_row): New.
1276 (def_cfa_1): Use cur_row instead of the old_* variables.
1277 (dwarf2out_frame_debug_restore_state): Similarly.
1278 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
1279 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
1280 (dwarf2out_frame_debug_adjust_cfa): Likewise.
1281 (dwarf2out_frame_debug_cfa_offset): Likewise.
1282 (dwarf2out_frame_debug_expr): Likewise.
1283 (execute_dwarf2_frame): Set up cur_row.
1284 * dwarf2out.h (struct cfa_loc): Mark for GTY.
1285
0be7e7a6
RH
12862011-07-23 Richard Henderson <rth@redhat.com>
1287
1288 * basic-block.h (EDGE_PRESERVE): New.
1289 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
1290 * bb-reorder.c: Include except.h.
1291 (fix_up_crossing_landing_pad): New.
536e3f49 1292 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
0be7e7a6
RH
1293 landing pads in the right partition. Duplicate as necessary.
1294 (partition_hot_cold_basic_blocks): Fix up DF info after
1295 duplicating landing pads.
1296 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
1297 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
1298 is set properly. Validate that EH edges are not CROSSING.
1299 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
1300 (dw2_build_landing_pads): ... here.
1301 (convert_to_eh_region_ranges): Remove code to fixup crossing
1302 landing pads.
1303 * except.h (expand_dw2_landing_pad_for_region): Declare.
1304 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
1305
e0170551
RE
13062011-07-23 Richard Earnshaw <rearnsha@arm.com>
1307
1308 PR target/49816
1309 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
1310
15c2ccba
JM
13112011-07-22 Jason Merrill <jason@redhat.com>
1312
1313 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
1314
295331a4
RH
13152011-07-22 Richard Henderson <rth@redhat.com>
1316
1317 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
1318
5f93b30a
RH
13192011-07-22 Richard Henderson <rth@redhat.com>
1320
1321 * jump.c (maybe_propagate_label_ref): Split out of...
1322 (mark_all_labels): ... here. Do not attempt label_ref
1323 propagation while in cfglayout mode.
1324
e967adf4
JJ
13252011-07-22 Jakub Jelinek <jakub@redhat.com>
1326
520cda8c
JJ
1327 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
1328 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
1329 (dwarf_attr_name): Handle DW_AT_GNU_macros.
1330 (dwarf2out_define): If the vector is empty and
1331 lineno is 0, emit a dummy entry first.
1332 (dwarf2out_undef): Likewise. Remove redundant semicolon.
1333 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
1334 optimize_macinfo_range): New functions.
1335 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
1336 mergeable, optimize longer strings using
1337 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
1338 optimize longer sequences of define/undef ops from headers
1339 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
1340 emit a section headers.
1341 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
1342 and macinfo_section_label to DEBUG_MACRO_SECTION
1343 resp. DEBUG_MACRO_SECTION_LABEL.
1344 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
1345 instead of DW_AT_macro_info.
1346
e967adf4
JJ
1347 PR other/32998
1348 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
1349 options.
1350 * dwarf2out.c: Include opts.h.
1351 (dchar_p): New typedef. Define heap VEC for it.
1352 (producer_string): New variable.
1353 (gen_producer_string): New function.
1354 (gen_compile_unit_die): Use it.
536e3f49 1355 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
e967adf4
JJ
1356 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
1357 * doc/invoke.texi: Document -grecord-gcc-switches and
1358 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
1359 to -frecord-gcc-switches description.
1360
3a636414
JM
13612011-07-22 Jason Merrill <jason@redhat.com>
1362
1363 PR c++/30112
1364 * c-decl.c (c_linkage_bindings): Define.
1365
8b9b2275
EB
13662011-07-22 Eric Botcazou <ebotcazou@adacore.com>
1367
1368 PR debug/49815
1369 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
1370
3de69514
L
13712011-07-22 H.J. Lu <hongjiu.lu@intel.com>
1372
1373 * config/i386/i386.c (ix86_option_override_internal): Disallow
1374 MS ABI in x32 mode.
1375 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
1376 only for TARGET_LP64.
536e3f49 1377 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3de69514 1378
49f6f4f7 13792011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
e56fa6bb
MM
1380
1381 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
1382 avoid warnings when GCC is built with a C++ compiler.
1383
b75d1e21
MJ
13842011-07-22 Martin Jambor <mjambor@suse.cz>
1385
1386 PR lto/49796
1387 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
536e3f49 1388 if decl node is in another partition, call cgraph_get_node only once.
b75d1e21 1389
63708bf5
UB
13902011-07-22 Uros Bizjak <ubizjak@gmail.com>
1391
e3c666fd 1392 * config.gcc (x86_64-*-linux*): Set
63708bf5
UB
1393 default_gnu_indirect_function to yes.
1394
27315aa6
RG
13952011-07-22 Richard Guenther <rguenther@suse.de>
1396
1397 PR tree-optimization/45819
1398 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1399 preserve volatile and notrap flags.
1400
5b6d595b
RO
14012011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1402 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1403
1404 PR bootstrap/49794
1405 * configure.ac: Test AM_ICONV with CXX.
1406 * configure: Regenerate.
1407 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
1408
7e2fe488
RO
14092011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1410
1411 PR bootstrap/49797
1412 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
1413 (set_cloog_options): Use it.
1414
d423df48
JJ
14152011-07-22 Jakub Jelinek <jakub@redhat.com>
1416
1417 PR c++/49756
1418 * gcc.c (main): Call stack_limit_increase (64MB).
1419 * toplev.c (toplev_main): Likewise.
1420
7fd72c6f
L
14212011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1422
1423 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
1424 instead of force_reg.
1425
96f0b772
L
14262011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1427
1428 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
1429 needed and use force_reg after convert.
1430 (ix86_expand_call): Likewise.
1431 (ix86_expand_special_args_builtin): Likewise.
1432 (ix86_expand_builtin): Likewise.
1433
ef74e2ba
SP
14342011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1435
1436 PR middle-end/47654
1437 PR middle-end/49649
1438 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
1439 in parameter. Initialize v1 and v2 based on the values returned
1440 by clast_name_to_lb_ub.
1441 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
1442 values.
1443 (type_for_clast_bin): Same.
1444 (type_for_clast_expr): Same.
1445 (type_for_clast_eq): Update calls to type_for_clast_expr.
1446 (type_for_clast_for): Same.
1447 (build_iv_mapping): Same.
1448 * graphite-ppl.h (value_min): New.
1449
84f2ffea
SP
14502011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1451
1452 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
1453 types whenever possible.
1454
3d9784cb
SP
14552011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1456
1457 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
1458 and ub fields.
1459 (new_clast_name_index): Add lb and ub parameters.
1460 (free_clast_name_index): New.
1461 (clast_name_to_lb_ub): New.
1462 (save_clast_name_index): Add lb and ub parameters.
1463 (compute_bounds_for_param): New.
1464 (type_for_level): Removed.
1465 (type_for_clast_for): Removed level parameter. Do not call
1466 type_for_level.
1467 (graphite_create_new_loop): Store the lb and ub for the clast_name
1468 of the iterator of the loop that has been generated.
1469 (graphite_create_new_loop_guard): Remove parameter level.
1470 (create_params_index): Store the lb and ub of each parameter.
1471 (gloog): Use free_clast_name_index. Pass to create_params_index
1472 the current scop.
1473
12b30e6d
SP
14742011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1475
1476 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
1477 (max_precision_type): Inline max_signed_precision_type.
1478 (type_for_clast_red): Use max_precision_type.
1479 (type_for_clast_bin): Same.
1480 (type_for_clast_for): Same.
1481
0cdd9dcf
SP
14822011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1483
1484 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
1485 type_for_interval.
1486 (gcc_type_for_value): Renamed type_for_value.
1487 (gcc_type_for_clast_term): Renamed type_for_clast_term.
1488 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
1489 (gcc_type_for_clast_red): Renamed type_for_clast_red.
1490 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
1491 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
1492 (graphite_translate_clast_equation): Update calls.
1493 (compute_type_for_level): Renamed type_for_level.
1494 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
1495 (build_iv_mapping): Update calls.
1496 (graphite_create_new_loop_guard): Same.
1497
8aab43a0
SP
14982011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1499
1500 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
1501 comment.
1502
cf7eab7d
SP
15032011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1504
1505 * graphite-clast-to-gimple.c (struct ivs_params): New.
1506 (clast_name_to_gcc): Use ivs_params to pass around parameters.
1507 (clast_to_gcc_expression): Same.
1508 (clast_to_gcc_expression_red): Same.
1509 (gcc_type_for_clast_term): Same.
1510 (gcc_type_for_clast_expr): Same.
1511 (gcc_type_for_clast_red): Same.
1512 (gcc_type_for_clast_bin): Same.
1513 (gcc_type_for_clast_eq): Same.
1514 (graphite_translate_clast_equation): Same.
1515 (graphite_create_guard_cond_expr): Same.
1516 (graphite_create_new_guard): Same.
1517 (graphite_create_new_loop): Same.
1518 (build_iv_mapping): Same.
1519 (translate_clast_user): Same.
1520 (graphite_create_new_loop_guard): Same.
1521 (translate_clast): Same.
1522 (translate_clast_for_loop): Same.
1523 (translate_clast_for): Same.
1524 (translate_clast_guard): Same.
1525 (initialize_cloog_names): Fix typo.
1526 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
1527
7b1e9596
SP
15282011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1529
1530 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
1531 (new_clast_name_index): Add level parameter.
1532 (clast_name_to_level): New.
1533 (save_clast_name_index): Add level parameter.
1534 (newivs_to_depth_to_newiv): Removed.
1535 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
1536 (graphite_create_new_loop): Add level parameter. Pass level to
1537 save_clast_name_index.
1538 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
1539 (create_params_index): Pass level to save_clast_name_index.
1540
6e6568db
SP
15412011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1542
1543 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
1544 recompute type, lb, and ub. Get them from...
1545 (graphite_create_new_loop_guard): ...here. Pass in parameter
1546 pointers to type, lb, and ub.
1547 (translate_clast_for_loop): Update function calls.
1548 (translate_clast_for): Same.
1549
dff62090
SP
15502011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1551
1552 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
1553 psct_dynamic_dim.
1554 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
1555 (gcc_type_for_iv_of_clast_loop): Update use of level.
1556 (gloog): Start counting nesting level from 0.
1557 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
1558 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
1559 psct_dynamic_dim on level.
1560
628c1ac9
L
15612011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1562
1563 * config/i386/i386.c (ix86_legitimize_address): Convert to
1564 Pmode if needed.
1565
08a8923e
L
15662011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1567
1568 * config/i386/i386.c (function_value_64): Always return pointers
1569 in Pmode.
1570 (ix86_promote_function_mode): New.
1571 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
1572
777a4e9a
BS
15732011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1574
1575 PR tree-optimization/49749
1576 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
1577 remove no-longer-used maxrank variable.
63708bf5 1578
e9514725 15792011-07-21 Georg-Johann Lay <avr@gjlay.de>
63708bf5 1580
e9514725
GJL
1581 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
1582
9ca1483b
JM
15832011-07-21 Jason Merrill <jason@redhat.com>
1584
1585 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
1586 * recog.h (struct insn_data_d): Check it instead of
1587 HAVE_DESIGNATED_INITIALIZERS.
1588 * genoutput.c (output_insn_data): Likewise.
1589
3ceaf2f5
RG
15902011-07-21 Richard Guenther <rguenther@suse.de>
1591
1592 PR tree-optimization/49770
1593 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
1594 valueized any operand. Renamed from ...
1595 (valueize_refs): ... this. New wrapper around valueize_refs_1.
1596 (valueize_shared_reference_ops_from_ref): Return whether we
1597 valueized any operand.
1598 (vn_reference_lookup): Only when we valueized any operand
1599 use the valueized reference for alias analysis. Do not preserve
1600 the original reference tree in this case.
1601
7c53a140
UB
16022011-07-21 Uros Bizjak <ubizjak@gmail.com>
1603
1604 * config/i386/i386.c (ix86_decompose_address): Reject all but
a4235495 1605 register operands and subregs of DImode hard registers in index.
7c53a140 1606
7f3ff782
KT
16072011-07-21 Kai Tietz <ktietz@redhat.com>
1608
1609 * fold-const.c (fold_unary_loc): Preserve indirect
1610 comparison cast to none-boolean type.
1611 * tree-ssa.c (useless_type_conversion_p): Preserve cast
1612 from/to boolean-type.
7c53a140
UB
1613 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
1614 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
7f3ff782
KT
1615 * tree-cfg.c (verify_gimple_comparison): Check result
1616 type of comparison expression.
7c53a140
UB
1617 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
1618 of condition result and disallow type-cast sinking into comparison.
7f3ff782 1619
91bc6112
RG
16202011-07-21 Richard Guenther <rguenther@suse.de>
1621
1622 * tree-ssa-forwprop.c (combine_conversions): Return whether
1623 we have to run cfg-cleanup. Properly remove dead stmts.
1624 (ssa_forward_propagate_and_combine): Adjust.
1625
d6f23738
RS
16262011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
1627
1628 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
1629
fec3cad3
KT
16302011-07-21 Kai Tietz <ktietz@redhat.com>
1631
1632 * tree-ssa-propagate.c (substitute_and_fold): Use
1633 do_dce flag to deside, if BB's statements are scanned
1634 in last to first, or first to last order.
1635
21f3ae2f 16362011-07-21 Georg-Johann Lay <avr@gjlay.de>
7c53a140 1637
21f3ae2f
GJL
1638 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
1639
6025b127
L
16402011-07-20 H.J. Lu <hongjiu.lu@intel.com>
1641 Uros Bizjak <ubizjak@gmail.com>
1642 Richard Henderson <rth@redhat.com>
1643
1644 * config/i386/constraints.md (w): New.
1645
1646 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
1647 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
1648
1649 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
1650 instead of TARGET_64BIT.
1651
1652 * config/i386/i386.md (indirect_jump): Replace
1653 nonimmediate_operand with indirect_branch_operand.
1654 (*indirect_jump): Likewise. Replace constraint "m" with "w".
a4235495
UB
1655 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
1656 Convert operand 0 to Pmode for x32 if not PIC.
6025b127
L
1657 (*tablejump_1): Replace nonimmediate_operand with
1658 indirect_branch_operand. Replace constraint "m" with "w".
1659 (*call_vzeroupper): Replace constraint "m" with "w".
1660 (*call): Likewise.
1661 (*call_rex64_ms_sysv_vzeroupper): Likewise.
1662 (*call_rex64_ms_sysv): Likewise.
1663 (*call_value_vzeroupper): Likewise.
1664 (*call_value): Likewise.
1665 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
1666 (*call_value_rex64_ms_sysv): Likewise.
a4235495 1667 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
6025b127
L
1668
1669 * config/i386/predicates.md (indirect_branch_operand): New.
1670 (call_insn_operand): Support x32.
1671
7f8925a1
ME
16722011-07-20 Michael Eager <eager@eagercon.com>
1673
1674 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
1675
510a442a
RH
16762011-07-20 Richard Henderson <rth@redhat.com>
1677
1678 * cfg.c (dump_bb_info): Dump basic_block->flags.
1679 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
1680
00b40d0d
UB
16812011-07-20 Uros Bizjak <ubizjak@gmail.com>
1682
1683 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1684 of DImode hard registers in index.
1685 (ix86_legitimate_address_p): Allow subregs of base and index to span
1686 more than a word. Assert that subregs of base and index satisfy
1687 register_no_elim_operand predicates. Reject addresses where
1688 base and index have different modes.
1689
87f53554
RM
16902011-07-20 Robert Millan <rmh@gnu.org>
1691
1692 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
1693
742f29ab
UW
16942011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1695
1696 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
1697 removing now-unnecessary assignment.
1698
d05f3564
UW
16992011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1700
1701 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
1702 memory address space to the type's address space.
1703
8c352fa8 17042011-07-20 Georg-Johann Lay <avr@gjlay.de>
00b40d0d 1705
8c352fa8
GJL
1706 PR target/36467
1707 PR target/49687
00b40d0d
UB
1708 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
1709 and expand appropriately if there is a CONST_INT in operand2.
8c352fa8
GJL
1710 (usmulqihi3): New insn.
1711 (*sumulqihi3): New insn.
1712 (*osmulqihi3): New insn.
1713 (*oumulqihi3): New insn.
1714 (*muluqihi3.uconst): New insn_and_split.
1715 (*muluqihi3.sconst): New insn_and_split.
1716 (*mulsqihi3.sconst): New insn_and_split.
1717 (*mulsqihi3.uconst): New insn_and_split.
1718 (*mulsqihi3.oconst): New insn_and_split.
1719 (*ashifthi3.signx.const): New insn_and_split.
1720 (*ashifthi3.signx.const7): New insn_and_split.
1721 (*ashifthi3.zerox.const): New insn_and_split.
1722 (mulsqihi3): New insn.
1723 (muluqihi3): New insn.
1724 (muloqihi3): New insn.
1725 * config/avr/predicates.md (const_2_to_7_operand): New.
1726 (const_2_to_6_operand): New.
1727 (u8_operand): New.
1728 (s8_operand): New.
1729 (o8_operand): New.
1730 (s9_operand): New.
1731 (register_or_s9_operand): New.
1732
be31603a
KT
17332011-07-20 Kai Tietz <ktietz@redhat.com>
1734
1735 * builtins.c (fold_builtin_expect): See through the cast
1736 from truthvalue_type_node to long.
1737
c36193c6
MM
17382011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1739
1740 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
1741 where we can use them from the standard and altivec instruction
1742 sets, instead of always using the 3 operand VSX forms that require
1743 the destination to overlap one of the inputs.
1744 (vsx_fms*): Ditto.
1745 (vsx_fnma*): Ditto.
1746 (vsx_fnms*): Ditto.
1747
1748 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
1749 for DF types.
1750 (fmsdf4_fpr): Ditto.
1751 (nfmadf4_fpr): Ditto.
1752 (nfmsdf4_fpr): Ditto.
1753
02aec184
SL
17542011-07-20 Sandra Loosemore <sandra@codesourcery.com>
1755
1756 * genrecog.c (make_insn_sequence): Correct position numbering
1757 when filtering out match_scratch and match_dup.
1758
f8ecf734
RG
17592011-07-20 Richard Guenther <rguenther@suse.de>
1760
1761 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1762 against already removed statements.
1763 (forward_propagate_into_comparison): Remove dead defining stmts.
1764 (forward_propagate_into_gimple_cond): Likewise.
1765 (forward_propagate_into_cond): Simplify.
1766 (ssa_forward_propagate_and_combine): Handle changed cfg from
1767 forward_propagate_into_comparison.
1768 * tree-ssa-phiopt.c (conditional_replacement): Use proper
1769 locations for newly built statements.
1770
73451ae7
GJL
17712011-07-20 Georg-Johann Lay <avr@gjlay.de>
1772
1773 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
1774
c4100a35
AK
17752011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1776
1777 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
1778 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
1779
dca412a1
RG
17802011-07-20 Richard Guenther <rguenther@suse.de>
1781
1782 PR middle-end/18908
1783 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
1784 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
1785 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
1786
73d7e266
VM
17872011-07-20 Vladimir Makarov <vmakarov@redhat.com>
1788
1789 * config/frv/frv.c (frv_register_move_cost): Define explicitly
1790 costs for subclasses of GR_REGS.
1791
5e27a6d4
UB
17922011-07-20 Uros Bizjak <ubizjak@gmail.com>
1793
1794 PR target/49780
1795 * config/i386/predicates.md (no_seg_addres_operand): No more special.
1796 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1797 of DImode hard registers in base.
1798 (ix86_legitimate_address_p): Allow SImode and DImode base and index
1799 registers.
1800
74d8fa44
RG
18012011-07-20 Richard Guenther <rguenther@suse.de>
1802
5e27a6d4 1803 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
74d8fa44
RG
1804 (unify_nodes): Deal with that.
1805 (solve_graph): Likewise.
1806
b0e43da8
CLT
18072011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
1808
1809 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
1810 canonicalize left operand from ZERO_EXTEND to AND.
1811
a8c44c52
AS
18122011-07-20 Anatoly Sokolov <aesok@post.ru>
1813
1814 * target.def (class_max_nregs): New hook.
1815 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
1816 * doc/tm.texi: Regenerate.
1817 * targhooks.c (default_class_max_nregs): New function.
1818 * targhooks.h (default_class_max_nregs): Declare.
1819 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
1820 x_ira_reg_class_min_nregs arrays to unsigned char.
1821 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
1822 hook instead of CLASS_MAX_NREGS macro.
1823 * reginfo.c (restore_register_info): Ditto.
1824 * ira-conflicts.c (process_regs_for_copy): Use
1825 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1826 Change type rclass and aclass vars to reg_class_t.
1827 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
1828 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
1829 reg_class_t.
1830 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
1831 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1832
1833 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
1834 * config/i386/i386.c (ix86_class_max_nregs): New function.
1835 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
1836 instead of CLASS_MAX_NREGS macro.
1837 (TARGET_CLASS_MAX_NREGS): Define.
1838 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
1839 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
1840 * config/avr/avr.c (class_max_nregs): Remove function.
1841 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
1842 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
1843 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
1844 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
1845 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
1846 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
1847 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
1848 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
1849 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
1850 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
1851 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
1852 * config/score/score.h (CLASS_MAX_NREGS): Remove.
1853 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
1854 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
1855 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
1856
fd811f03
EB
18572011-07-19 Eric Botcazou <ebotcazou@adacore.com>
1858
1859 * cif-code.def (OVERWRITABLE): Fix typo and move around.
1860 (TARGET_OPTIMIZATION_MISMATCH): Delete.
1861 (EH_PERSONALITY): Fix typo.
1862 (NON_CALL_EXCEPTIONS): Fix message.
1863 (OPTIMIZATION_MISMATCH): Adjust message.
1864 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
1865
78767fd9
ILT
18662011-07-19 Ian Lance Taylor <iant@google.com>
1867
1868 * doc/install.texi (Configuration): Document
1869 --enable-build-poststage1-with-cxx.
1870
0baeec1b
RM
18712011-07-19 Robert Millan <rmh@gnu.org>
1872
1873 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
1874 (GLIBC_DYNAMIC_LINKER): Remove.
1875
1876 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
1877 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1878 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1879 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
1880 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
1881 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
1882
1883 * config/mips/linux.h: Remove everything except for ...
1884 (GLIBC_DYNAMIC_LINKER): ... this macro.
1885
1886 * config/mips/linux64.h: Remove everything except for ...
1887 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1888 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1889 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
1890 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
1891 (GNU_USER_LINK_EMULATIONN32): New macros.
1892
5e27a6d4
UB
1893 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
1894 Use the new headers.
0baeec1b 1895
754c3d5d
RS
18962011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1897
1898 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
1899 Add offset_known_p and size_known_p fields.
1900 (MEM_OFFSET_KNOWN_P): Update accordingly.
1901 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
1902 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
1903 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
1904 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
1905 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
1906 (init_emit_regs): Likewise.
1907
527210c4
RS
19082011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1909
1910 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
1911 (MEM_OFFSET): Change from returning an rtx to returning a
1912 HOST_WIDE_INT.
1913 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
1914 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
1915 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1916 (clear_mem_offset): Declare.
1917 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
1918 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
1919 MEM_OFFSET to get a HOST_WIDE_INT offset.
1920 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
1921 (adjust_offset_for_component_ref): Take a bool "known_p"
1922 parameter and a HOST_WIDE_INT "offset" parameter.
1923 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
1924 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
1925 than an rtx. Use clear_mem_offset to clear the offset.
1926 * cfgcleanup.c (merge_memattrs): Likewise.
1927 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
1928 * function.c (assign_parm_find_stack_rtl): Likewise.
1929 (assign_parm_setup_stack): Likewise.
1930 * print-rtl.c (print_rtx): Likewise.
1931 * reload.c (find_reloads_subreg_address): Likewise.
1932 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1933 * var-tracking.c (INT_MEM_OFFSET): Likewise.
1934 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
1935 (get_mem_align_offset): Likewise.
1936 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1937 (clear_mem_offset): New function.
1938 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
1939 offset rather than an rtx. Assume both the expressio and offset
1940 are available.
1941 (r10k_needs_protection_p_1): Update accordingly, checking the
1942 expression and offset availability here instead.
1943
f5541398
RS
19442011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1945
1946 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
1947 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
1948 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
1949 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
1950 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1951 (clear_mem_size): Declare.
1952 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1953 (clear_mem_size): New function.
1954 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
1955 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
1956 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
1957 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
1958 to clear the size.
1959 (nonoverlapping_memrefs_p): Likewise.
1960 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
1961 (expand_builtin_init_trampoline): Likewise.
1962 * calls.c (compute_argument_addresses): Likewise.
1963 * cfgcleanup.c (merge_memattrs): Likewise.
1964 * dce.c (find_call_stack_args): Likewise.
1965 * dse.c (record_store, scan_insn): Likewise.
1966 * dwarf2out.c (dw_sra_loc_expr): Likewise.
1967 * expr.c (emit_block_move_hints): Likewise.
1968 * function.c (assign_parm_find_stack_rtl): Likewise.
1969 * print-rtl.c (print_rtx): Likewise.
1970 * reload.c (find_reloads_subreg_address): Likewise.
1971 * rtlanal.c (may_trap_p_1): Likewise.
1972 * var-tracking.c (track_expr_p): Likewise.
1973 * varasm.c (assemble_trampoline_template): Likewise.
1974 * config/arm/arm.c (arm_print_operand): Likewise.
1975 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
1976 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
1977 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
1978 (expand_constant_setmem_prologue): Likewise.
1979 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
1980 * config/rs6000/rs6000.c (expand_block_move): Likewise.
1981 (adjacent_mem_locations): Likewise.
1982 * config/s390/s390.c (s390_expand_setmem): Likewise.
1983 (s390_expand_insv): Likewise.
1984 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
1985 (*extendqi<mode>2_short_displ): Likewise.
1986 * config/sh/sh.c (expand_block_move): Likewise.
1987 * config/sh/sh.md (extv, extzv): Likewise.
1988
f12144dd
RS
19892011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1990
1991 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
1992 (mem_attrs_htab_eq): ...here.
1993 (find_mem_attrs): Replace with...
1994 (set_mem_attrs): ...this function. Take a mem_attrs structure
1995 rather than individual fields.
1996 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1997 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1998 (set_mem_size, change_address, adjust_address_1, offset_address)
1999 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2000 Update accordingly.
2001
1c3f523e
RS
20022011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2003
2004 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
2005 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
2006 Provide a dummy definition of MEM_ADDR_SPACE for generators.
2007 (target_rtl): Add x_mode_mem_attrs.
2008 (mode_mem_attrs): New macro.
2009 (get_mem_attrs): New function.
2010 * emit-rtl.c (get_mem_attrs): Rename to...
2011 (find_mem_attrs): ...this.
2012 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2013 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2014 (set_mem_size, change_address, adjust_address_1, offset_address)
2015 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2016 Update accordingly.
2017 (init_emit_regs): Initialize mode_mem_attrs.
2018
3046b1a9
RG
20192011-07-19 Richard Guenther <rguenther@suse.de>
2020
2021 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
2022 TRUTH_*_EXPR handling.
2023 * tree-ssa-operands.c (get_expr_operands): Likewise.
2024 * tree-ssa-pre.c (fully_constant_expression): Likewise.
2025 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
2026 Likewise.
2027 (is_and_or_or): Likewise.
2028 (is_norm_cond_subset_of): Likewise.
2029
5d49b6a7
RG
20302011-07-19 Richard Guenther <rguenther@suse.de>
2031
2032 * tree.h (fold_build_pointer_plus_loc): New helper function.
2033 (fold_build_pointer_plus_hwi_loc): Likewise.
2034 (fold_build_pointer_plus): Define.
2035 (fold_build_pointer_plus_hwi): Likewise.
2036 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
2037 (fold_builtin_memory_op): Likewise.
2038 (fold_builtin_stpcpy): Likewise.
2039 (fold_builtin_memchr): Likewise.
2040 (fold_builtin_strstr): Likewise.
2041 (fold_builtin_strchr): Likewise.
2042 (fold_builtin_strrchr): Likewise.
2043 (fold_builtin_strpbrk): Likewise.
2044 (fold_builtin_strcat): Likewise.
2045 (expand_builtin_memory_chk): Likewise.
2046 (fold_builtin_memory_chk): Likewise.
2047 * c-typeck.c (build_unary_op): Likewise.
2048 * cgraphunit.c (thunk_adjust): Likewise.
2049 * fold-const.c (build_range_check): Likewise.
2050 (fold_binary_loc): Likewise.
2051 * omp-low.c (extract_omp_for_data): Likewise.
2052 (expand_omp_for_generic): Likewise.
2053 (expand_omp_for_static_nochunk): Likewise.
2054 (expand_omp_for_static_chunk): Likewise.
2055 * tree-affine.c (add_elt_to_tree): Likewise.
2056 * tree-data-ref.c (split_constant_offset_1): Likewise.
2057 * tree-loop-distribution.c (generate_memset_zero): Likewise.
2058 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
2059 * tree-predcom.c (ref_at_iteration): Likewise.
2060 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2061 (add_to_parts): Likewise.
2062 (create_mem_ref): Likewise.
2063 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2064 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
2065 (number_of_iterations_le): Likewise.
2066 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
2067 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
2068 (vect_create_addr_base_for_vector_ref): Likewise.
2069 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
2070 (vect_create_cond_for_alias_checks): Likewise.
2071 * tree-vrp.c (extract_range_from_assert): Likewise.
2072 * config/alpha/alpha.c (alpha_va_start): Likewise.
2073 (alpha_gimplify_va_arg_1): Likewise.
2074 * config/i386/i386.c (ix86_va_start): Likewise.
2075 (ix86_gimplify_va_arg): Likewise.
2076 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2077 * config/mep/mep.c (mep_expand_va_start): Likewise.
2078 (mep_gimplify_va_arg_expr): Likewise.
2079 * config/mips/mips.c (mips_va_start): Likewise.
2080 (mips_gimplify_va_arg_expr): Likewise.
2081 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2082 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
2083 (rs6000_gimplify_va_arg): Likewise.
2084 * config/s390/s390.c (s390_va_start): Likewise.
2085 (s390_gimplify_va_arg): Likewise.
2086 * config/sh/sh.c (sh_va_start): Likewise.
2087 (sh_gimplify_va_arg_expr): Likewise.
2088 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
2089 * config/spu/spu.c (spu_va_start): Likewise.
2090 (spu_gimplify_va_arg_expr): Likewise.
2091 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2092 Likewise.
2093 (xstormy16_gimplify_va_arg_expr): Likewise.
2094 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
2095 (xtensa_gimplify_va_arg_expr): Likewise.
2096
d906fd7f
RG
20972011-07-19 Richard Guenther <rguenther@suse.de>
2098
2099 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
2100 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
2101 handling.
2102
2103 PR middle-end/18908
2104 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
2105 result of BIT_*_EXPR to bitfield precision.
2106
1b14d815
RS
21072011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
2108
2109 PR tree-optimization/49742
2110 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
2111 as a potential write.
2112
d906fd7f
RG
21132011-07-19 Richard Guenther <rguenther@suse.de>
2114
2115 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
2116 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
2117 (forward_propagate_comparison): Simplify, remove obsolete code.
2118
53020648
RG
21192011-07-19 Richard Guenther <rguenther@suse.de>
2120
2121 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
2122 BIT_XOR_EXPR, same as the RTL expander does.
2123 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
2124 (verify_gimple_assign_unary): Likewise.
2125 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
2126 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
2127 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
2128
b8b2b009
JJ
21292011-07-19 Jakub Jelinek <jakub@redhat.com>
2130
2131 PR tree-optimization/49768
2132 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
2133 if offset is smaller than bitoffset, but offset+size is bigger
2134 than bitoffset.
2135
338f655d
IR
21362011-07-19 Ira Rosen <ira.rosen@linaro.org>
2137
2138 PR tree-optimization/49771
2139 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
2140 zero step, set segment length to the size of the data-ref's type.
2141
310bc633
MJ
21422011-07-18 Martin Jambor <mjambor@suse.cz>
2143
2144 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
2145 comments.
2146 (ipcp_values_pool): Declare.
2147 (ipcp_sources_pool): Likewise.
2148 (ipcp_lattice): Changed to forward declaration.
2149 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
2150 cannot_devirtualize.
2151 (ipa_node_params): New fields descriptors, lattices, known_vals,
2152 clone_for_all_contexts and node dead, removed fields params and
2153 count_scale.
2154 (ipa_set_param_count): Removed.
2155 (ipa_get_param_count): Made to work with descriptors vector.
2156 (ipa_get_param): Updated.
2157 (ipa_param_cannot_devirtualize_p): Removed.
2158 (ipa_param_types_vec_empty): Likewise.
2159 (ipa_set_param_used): New function.
2160 (ipa_get_param_used): Updated to use descriptors vector.
2161 (ipa_func_list): Removed.
2162 (ipa_init_func_list): Removed declaration.
2163 (ipa_push_func_to_list_1): Likewise.
2164 (ipa_pop_func_from_list): Likewise.
2165 (ipa_push_func_to_list): Removed.
2166 (ipa_lattice_from_jfunc): Remove declaration.
2167 (ipa_get_jf_pass_through_result): Declare.
2168 (ipa_get_jf_ancestor_result): Likewise.
2169 (ipa_value_from_jfunc): Likewise.
2170 (ipa_get_lattice): Update.
2171 (ipa_lat_is_single_const): New function.
2172 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
2173 (ipa_init_func_list): Likewise.
2174 (ipa_pop_func_from_list): Likewise.
2175 (ipa_get_param_decl_index): Fix coding style.
2176 (count_formal_params): Removed.
2177 (count_formal_params_1): Renamed to count_formal_params.
2178 (ipa_populate_param_decls): Update to use descriptors vector.
2179 (ipa_initialize_node_params): Likewise.
2180 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
2181 (ipa_analyze_params_uses): Likewise.
2182 (ipa_free_node_params_substructures): Likewise and free also lattices
2183 and known values.
2184 (duplicate_array): Removed.
2185 (ipa_edge_duplication_hook): Add the new edge to the list of edge
2186 clones.
2187 (ipa_node_duplication_hook): Update to use new lattices.
2188 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
2189 (ipa_free_all_structures_after_iinln): Likewise.
2190 (ipa_write_node_info): Update to use new lattices.
2191 (ipa_read_node_info): Likewise.
2192 (ipa_get_jf_pass_through_result): New function.
2193 (ipa_get_jf_ancestor_result): Likewise.
2194 (ipa_value_from_jfunc): Likewise.
2195 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
2196 * ipa-cp.c: Reimplemented.
2197 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
2198 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
2199 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
2200 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
2201 * doc/invoke.texi (devirt-type-list-size): Removed description.
2202 (ipa-cp-value-list-size): Added description.
2203
6774a66f
RH
22042011-07-18 Richard Henderson <rth@redhat.com>
2205
2206 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
2207 before calling create_basic_block.
2208
8b316874
JJ
22092011-07-18 Jakub Jelinek <jakub@redhat.com>
2210
2211 PR middle-end/49675
2212 * tree.c (build_common_builtin_nodes): Register
2213 __builtin_return_address, __cyg_profile_func_enter
2214 and __cyg_profile_func_exit.
2215
9f68560b
RH
22162011-07-18 Richard Henderson <rth@redhat.com>
2217
2218 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
2219 (add_labels_and_missing_jumps): ... here.
2220 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
2221
03126412
UB
22222011-07-18 Uros Bizjak <ubizjak@gmail.com>
2223
2224 PR target/47744
2225 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2226 of DImode hard registers in PLUS address chains.
2227
fbf80ef7
RO
22282011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2229
2230 PR bootstrap/49769
2231 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
2232 (alpha*-*-freebsd*): Likewise.
2233 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2234 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2235 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
2236 crtprec80.o, crtfastmath.o to extra_parts for all targets.
2237 (ia64*-*-elf*): Remove extra_parts.
2238 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
2239 (sparc64-*-linux*): Likewise.
2240 (sparc64-*-freebsd*): Likewise.
2241
2242 Revert:
2243 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
2244 (ia64*-*-linux*): Likewise.
2245 (mips64*-*-linux*): Likewise.
2246 (mips*-*-linux*): Likewise.
2247
daf633ba
DE
22482011-07-18 David Edelsohn <dje.gcc@gmail.com>
2249
2250 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
2251
4b4455e5
RG
22522011-07-18 Richard Guenther <rguenther@suse.de>
2253
2254 * gimplify.c (gimplify_expr): Use input_location, not saved_location
2255 when building new trees.
2256
e002c7cb
RG
22572011-07-18 Richard Guenther <rguenther@suse.de>
2258
2259 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
2260 expansion result to bitfield precision if required.
2261
e44dbbe1
RO
22622011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2263
2264 * config.gcc (i[3456x]86-*-netware*): Remove.
2265
2266 * gthr-nks.h: Remove.
2267 * configure.ac (enable_threads): Remove nks.
2268 * configure: Regenerate.
2269
2270 * config/i386/i386.c (ix86_encode_section_info): Remove netware
2271 reference.
2272 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
2273 <netware.h> reference.
2274
2275 * config/i386/netware-libgcc.c,
2276 gcc/config/i386/netware-libgcc.def,
2277 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
2278 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
2279 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
2280 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
2281
2282 * doc/extend.texi (Function Attributes,
2283 callee_pop_aggregate_return): Remove i?86-netware reference.
2284 * doc/install.texi (Configuration, --enable-threads): Remove nks.
2285
fd862017
JDA
22862011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2287
2288 PR target/49746
2289 Revert:
2290 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2291
2292 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
2293 patterns.
2294
1ff24749
EB
22952011-07-17 Eric Botcazou <ebotcazou@adacore.com>
2296
2297 PR middle-end/49732
2298 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
2299
a4a2c37d
MK
23002011-07-16 Matthias Klose <doko@ubuntu.com>
2301
2302 * doc/install.texi: Document --enable-static-libjava.
2303
ea6136a2
RH
23042011-07-15 Richard Henderson <rth@redhat.com>
2305
2306 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2307 Replace all three arguments by returning a VEC of edges.
2308 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
2309 pointers and counts.
2310 (fix_edges_for_rarely_executed_code): Merge ...
2311 (rest_of_handle_partition_blocks): ... into...
2312 (partition_hot_cold_basic_blocks): ... here. Return todo items if
2313 any work was performed.
2314 (pass_partition_blocks): Clear todo_flags_finish.
2315
6545e33e
PC
23162011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
2317 Jakub Jelinek <jakub@redhat.com>
2318 Jonathan Wakely <jwakely.gcc@gmail.com>
2319
2320 PR libstdc++/49745
2321 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
2322 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
2323
6feeed06
JM
23242011-07-15 Jason Merrill <jason@redhat.com>
2325
2326 PR testsuite/49741
2327 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
2328 rather than --tool_opts.
2329
44762055
BS
23302011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
2331
2332 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 2333 corresponding gtype.state.
44762055 2334
1be0310c
JDA
23352011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2336
2337 PR target/49723
2338 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
2339
12c5ffe5
EB
23402011-07-15 Eric Botcazou <ebotcazou@adacore.com>
2341
2342 PR target/48220
2343 * doc/md.texi (Standard Names): Document window_save.
2344 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
2345 expand_debug_expr and expand_debug_source_expr. If the target has
2346 a window_save instruction, adjust the ENTRY_VALUE_EXP.
2347 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
2348 SSA_NAME_VAR is a parameter.
2349 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
2350 * var-tracking.c (parm_reg_t): New type and associated vector type.
2351 (windowed_parm_regs): New variable.
2352 (adjust_insn): If the target has a window_save instruction and this
2353 is the instruction, make its effect on parameter registers explicit.
2354 (next_non_note_insn_var_location): New function.
2355 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
2356 (vt_add_function_parameter): If the target has a window_save insn,
2357 adjust the incoming RTL and record that in windowed_parm_regs.
2358 (vt_finalize): Free windowed_parm_regs.
2359
bcead286
BS
23602011-07-15 Bernd Schmidt <bernds@codesourcery.com>
2361
2362 * doc/invoke.texi (C6X Options): New section.
2363 * doc/md.texi (TI C6X family): New section.
2364 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
2365 tic6x-*-uclinux.
2366 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
2367 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
2368 Provide C6X definitions.
2369 * config/c6x/c6x.md: New file.
2370 * config/c6x/constraints.md: New file.
2371 * config/c6x/predicates.md: New file.
2372 * config/c6x/c6x-sched.md.in: New file.
2373 * config/c6x/c6x-sched.md: New file.
2374 * config/c6x/gensched.sh: New file.
2375 * config/c6x/c6x-mult.md.in: New file.
2376 * config/c6x/genmult.sh: New file.
2377 * config/c6x/c6x-mult.md: New file.
2378 * config/c6x/sync.md: New file.
2379 * config/c6x/c6x-protos.h: New file.
2380 * config/c6x/sfp-machine.h: New file.
2381 * config/c6x/c6x.c: New file.
2382 * config/c6x/c6x.h: New file.
2383 * config/c6x/crti.s: New file.
2384 * config/c6x/crtn.s: New file.
2385 * config/c6x/lib1funcs.asm: New file.
2386 * config/c6x/c6x-modes.def: New file.
2387 * config/c6x/genopt.sh: New file.
2388 * config/c6x/c6x.opt: New file.
2389 * config/c6x/c6x-tables.opt: New file.
2390 * config/c6x/c6x-opts.h: New file.
2391 * config/c6x/c6x-isas.def: New file.
2392 * config/c6x/elf.h: New file.
2393 * config/c6x/elf-common.h: New file.
2394 * config/c6x/uclinux-elf.h: New file.
2395 * config/c6x/t-c6x: New file.
2396 * config/c6x/t-c6x-elf: New file.
2397 * config/c6x/t-c6x-uclinux: New file.
2398 * config/c6x/t-c6x-softfp: New file.
2399 * config/c6x/gtd.c: New file.
2400 * config/c6x/gtf.c: New file.
2401 * config/c6x/ltd.c: New file.
2402 * config/c6x/ltf.c: New file.
2403 * config/c6x/ged.c: New file.
2404 * config/c6x/gef.c: New file.
2405 * config/c6x/led.c: New file.
2406 * config/c6x/lef.c: New file.
2407 * config/c6x/eqd.c: New file.
2408 * config/c6x/eqf.c: New file.
2409 * config/c6x/libgcc-c6xeabi.ver: New file.
2410
aef0e7a8
BS
2411 Revert
2412 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2413 PR rtl-optimization/11320
2414 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
2415 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
2416 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
2417 current_sched_info->compute_jump_reg_dependencies. Record which
2418 registers are used and which registers are set by the jump.
2419 Clear deps->reg_conditional_sets after a barrier.
2420 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
2421 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
2422 (init_deps): Initialize reg_conditional_sets.
2423 (free_deps): Clear reg_conditional_sets.
2424 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
2425 Mark registers live on entry of the fallthrough block and conditionally
2426 set as set by the jump. Mark registers live on entry of non-fallthrough
2427 blocks as used by the jump.
2428 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
2429 Mark new parameters as unused.
2430
9bed2f0d
AP
24312011-07-14 Andrew Pinski <pinskia@gmail.com>
2432
2433 PR tree-opt/49309
2434 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
2435 Use fold_build2_loc instead of build2.
2436 Use the correct type for the new tree.
2437
1f88caaa
BS
24382011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2439
2440 PR rtl-optimization/11320
2441 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
2442 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
2443
d772f97c 24442011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 2445
d772f97c
GJL
2446 PR target/49487
2447 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
2448 of REG.
2449 (*rotw<mode>): Use const_int_operand for operand2.
2450 Use match_scatch for operand3.
2451 (*rotb<mode>): Ditto
2452 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
2453
1a5d20a4
RG
24542011-07-14 Richard Guenther <rguenther@suse.de>
2455
2456 PR tree-optimization/49651
2457 * tree-ssa-structalias.c (get_constraint_for_1): Properly
2458 handle dereferences with subvariables.
2459
5fbcc0ed
RG
24602011-07-14 Richard Guenther <rguenther@suse.de>
2461
2462 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
2463 (fold_stmt_1): Do it here directly on gimple and as a first thing.
2464
fbf3fee2
RG
24652011-07-14 Richard Guenther <rguenther@suse.de>
2466
2467 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
2468 not bool_var when folding bool_var != 1 or bool_var == 0.
2469
b953c2b8
BS
24702011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2471
2472 * haifa-sched.c (schedule_insns): Remove outdated comment.
2473 (schedule_block): When computing a known value for TODO_SPEC,
2474 just set it rather than using logical operations.
2475 (try_ready): Likewise. Use a local variable rather than a
2476 pointer to TODO_SPEC. Reorder an if statement to move the
2477 easy case to the then block.
2478 * sched-deps.c (dep_spec_p): New static function.
2479 (update_dep): Use it to decide whether to call
2480 change_spec_dep_to_hard.
2481 (get_back_and_forw_lists): Use it.
2482 (sd_resolve_dep): Likewise.
2483 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
2484 (haifa_note_mem_dep): Likewise.
2485 (check_dep): Likewise.
2486 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
2487 (sched_free_deps): Free in two passes.
2488
1f098f07
RS
24892011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
2490
2491 PR middle-end/49736
2492 * expr.c (all_zeros_p): Undo bogus part of last change.
2493
73059910
MK
24942011-07-14 Matthias Klose <doko@ubuntu.com>
2495
2496 * doc/extend.texi (optimize attribute): Fix typo.
2497
bd5d002e
RG
24982011-07-14 Richard Guenther <rguenther@suse.de>
2499
2500 * gimplify.c (gimplify_expr): Only do required conversions.
2501
eb1dcdff
GJL
25022011-07-14 Georg-Johann Lay <avr@gjlay.de>
2503
2504 PR target/43746
2505 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
2506 i.e. use default_elf_select_section.
2507 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
2508 (READONLY_DATA_SECTION_ASM_OP): Remove.
2509 (TARGET_ASM_NAMED_SECTION): Move from here...
2510 * config/avr/avr.c: ...to here.
03126412 2511 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
eb1dcdff
GJL
2512 (avr_asm_named_section): Make static.
2513
d31fb329
RO
25142011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2515
2516 PR bootstrap/49739
03126412
UB
2517 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
2518 and crtfastmath.o for Linux/x86.
d31fb329 2519
26965010
BS
25202011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2521
2522 * haifa-sched.c: Include "hashtab.h"
2523 (sched_no_dce): New global variable.
2524 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
2525 SHADOW_P): New macros.
2526 (last_clock_var, cycle_issued_insns): Move declarations.
2527 (must_backtrack): New static variable.
2528 (struct delay_pair): New structure.
2529 (delay_htab, delay_htab_i2): New static variables.
2530 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
2531 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
2532 functions.
2533 (dep_cost_1): If delay pairs exist, try to look up the insns and
2534 use the correct pair delay if we find them.
2535 (rank-for_schedule): Tweak priority for insns that must be scheduled
2536 soon to avoid backtracking.
2537 (queue_insn): Detect conditions which force backtracking.
2538 (ready_add): Likewise.
2539 (struct sched_block_state): Add member shadows_only_p.
2540 (struct haifa_save_data): New structure.
2541 (backtrack_queue): New static variable.
2542 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
2543 unschedule_insns_until, restore_last_backtrack_point,
2544 free_topmost_backtrack_point, free_backtrack_queue,
2545 estimate_insn_tick, estimate_shadow_tick): New functions.
2546 (prune_ready_list): New arg shadows_only_p. All callers changed.
2547 If true, remove everything that isn't SHADOW_P. Look up delay
03126412 2548 pairs and estimate ticks to avoid scheduling the first insn too early.
26965010
BS
2549 (verify_shadows): New function.
2550 (schedule_block): Add machinery to enable backtracking.
2551 (sched_init): Take sched_no_dce into account when setting
2552 DF_LR_RUN_DCE.
2553 (free_delay_pairs): New function.
2554 (init_h_i_d): Initialize INSN_EXACT_TICK.
2555 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
2556 * sched-deps.c (sd_unresolve_dep): New function.
2557 * sched-int. (struct haifa_sched_info): New fields save_state
2558 and restore_state.
2559 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
2560 feeds_backtrack_insn and shadow_p.
2561 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
2562 (sched_no_dce): Declare variable.
2563 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
2564 sd_unresolve_dep): Declare functions.
2565 * modulo-sched.c (sms_sched_info): Clear the two new fields.
2566 * sched-rgn.c (rgn_const_sched_info): Likewise.
2567 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2568 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
2569 (ebb_sched_info): Add them for the two new fields.
2570 (add_deps_for_risky_insns): Call add_delay_dependencies.
2571
1db75f6c
MM
25722011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
2573
2574 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
2575 Rename -mr11.
2576 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
2577 (rs6000_call_indirect_aix): Ditto.
2578 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
2579 (call_indirect_aix<ptrsize>_internal): Ditto.
2580 (call_indirect_aix<ptrsize>_nor11): Ditto.
2581 (call_indirect_aix<ptrsize>_internal2): Ditto.
2582 (call_value_indirect_aix<ptrsize>): Ditto.
2583 (call_value_indirect_aix<ptrsize>_internal): Ditto.
2584 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2585 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2586 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
2587
e2995714
JM
25882011-07-13 Jason Merrill <jason@redhat.com>
2589
2590 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
2591
4dfe3ad5
UW
25922011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2593
2594 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
2595 * config/spu/spu.md ("clrsb<mode>2"): New expander.
2596
dddc6762
TS
25972011-07-13 Thomas Schwinge <thomas@schwinge.name>
2598
2599 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
2600 * configure: Regenerate.
2601
b4d80e56
UW
26022011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2603
2604 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
2605 (asm_file_start): Remove.
2606 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
2607 free_bb_for_insn around code that modifies insns before
2608 restarting df analysis.
2609
9e34e53f
RO
26102011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2611
2612 PR target/49541
03126412 2613 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
9e34e53f
RO
2614 (LINK_SPEC): ... here.
2615
51564684
BS
26162011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2617
2618 * haifa-sched.c (struct sched_block_state): New.
2619 (schedule_block): Move some local variables into such a structure.
2620
b3fe1584
RO
26212011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2622
2623 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
2624 * config/i386/t-crtpc: Remove.
2625 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2626 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
2627 tmake_file.
2628 (x86_64-*-darwin*): Likewise.
2629 (i[34567]86-*-linux*): Likewise.
2630 (x86_64-*-linux*): Likewise.
2631
2632 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
2633 Handle -mpc32, -mpc64, -mpc80.
2634
35d8090d
RO
26352011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2636
2637 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
2638 * config/alpha/t-crtfm: Remove.
2639 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
2640 * config/i386/t-crtfm: Remove.
2641 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
2642 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
2643 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
2644 * config/sparc/t-crtfm: Remove.
2645
2646 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
2647 (alpha*-*-freebsd*): Likewise.
2648 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
2649 (x86_64-*-darwin*): Likewise.
2650 (i[34567]86-*-linux*): Likewise.
2651 (x86_64-*-linux*): Likewise.
2652 (x86_64-*-mingw*): Likewise.
2653 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
2654 (ia64*-*-freebsd*): Likewise.
2655 (ia64*-*-linux*): Likewise.
2656 (mips64*-*-linux*): Likewise.
2657 (mips*-*-linux*): Likewise.
2658 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
2659 (sparc64-*-linux*): Likewise.
2660 (sparc64-*-freebsd*): Likewise.
2661
e141542e
RO
26622011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2663
2664 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
2665 * config/darwin-crt3.c: Move to ../libgcc/config.
2666 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2667 ($(T)crt3$(objext)): Remove.
2668 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
2669 ($(T)crt2$(objext)): Remove.
2670 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
2671 (powerpc64-*-darwin*): Likewise.
2672
72fbc381
L
26732011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2674
03126412 2675 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
72fbc381
L
2676
2677 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
2678 (addsi_1_zext): This.
2679
727a65e6
BS
26802011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2681
2682 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
2683 * doc/tm.texi: Regenerate.
73451ae7 2684 * target.def (mergeable_rodata_prefix): New defhookpod.
727a65e6
BS
2685 * varasm.c (mergeable_string_section, mergeable_constant_section):
2686 Use it. Allocate name with alloca.
2687
cb77b6cf
L
26882011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2689
2690 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
2691
36fc3799
RS
26922011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2693
2694 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
2695 overlap check.
2696
953d0c90
RS
26972011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2698
2699 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
2700 (count_type_elements): Delete.
2701 (complete_ctor_at_level_p): Declare.
2702 * expr.c (flexible_array_member_p): New function, split out from...
2703 (count_type_elements): ...here. Make static. Replace allow_flexarr
2704 parameter with for_ctor_p. When for_ctor_p is true, return the
2705 number of elements that should appear in the top-level constructor,
2706 otherwise return an estimate of the number of scalars.
2707 (categorize_ctor_elements): Replace p_must_clear with p_complete.
2708 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
2709 (complete_ctor_at_level_p): New function, borrowing union logic
2710 from old categorize_ctor_elements_1.
2711 (mostly_zeros_p): Return true if the constructor is not complete.
2712 (all_zeros_p): Update call to categorize_ctor_elements.
2713 * gimplify.c (gimplify_init_constructor): Update call to
2714 categorize_ctor_elements. Don't call count_type_elements.
2715 Unconditionally prevent clearing for variable-sized types,
2716 otherwise rely on categorize_ctor_elements to detect
2717 incomplete initializers.
2718
9111c715
RG
27192011-07-13 Richard Guenther <rguenther@suse.de>
2720
2721 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
2722 the final type is integral.
2723
a19af9c4
BS
27242011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2725
2726 * sched-int.h (struct _dep): Add member cost.
2727 (DEP_COST, UNKNOWN_DEP_COST): New macros.
2728 * sched-deps.c (init_dep_1): Initialize DEP_COST.
2729 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
2730 (sched_change_pattern): Reset it for dependent insns.
2731
2d1efe2d
RO
27322011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2733
2734 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
2735 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
2736 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
2737 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
2738 (CRT0_S, MCRT0_S): Remove.
2739 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
2740 Remove.
2741 (s-crt0): Remove.
2742 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
2743
e84a58ff
EB
27442011-07-12 Eric Botcazou <ebotcazou@adacore.com>
2745
2746 * cse.c (insert_with_costs): Put semi-colon after empty loop body
2747 on the next line.
2748 * emit-rtl.c (push_to_sequence): Likewise.
2749 * haifa-sched.c (max_issue): Likewise.
2750 * matrix-reorg.c (add_allocation_site): Likewise.
2751 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2752 * reload.c (alternative_allows_const_pool_ref): Likewise.
2753 * sched-rgn.c (rgn_add_block): Likewise.
2754 (rgn_fix_recovery_cfg): Likewise.
2755 * tree.c (attribute_list_contained): Likewise.
2756
3a4ffde6
UB
27572011-07-12 Uros Bizjak <ubizjak@gmail.com>
2758
2759 * config/i386/i386.c: Tidy processor feature bitmasks.
2760 (m_P4_NOCONA): New.
2761
10b75750
AP
27622011-07-12 Andrew Pinski <pinskia@gmail.com>
2763
2764 PR rtl-opt/49474
2765 * cprop.c (find_implicit_sets): Correct the condition.
2766
4f42d714
RH
27672011-07-12 Richard Henderson <rth@redhat.com>
2768
2769 PR target/49713
2770 * dwarf2out.h (dwarf_frame_regnum): Remove.
2771 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
2772 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
2773 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
2774 (execute_dwarf2_frame): Initialize them.
2775 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
2776 users of the macros with the variables.
2777 (expand_builtin_dwarf_sp_column): Revert last change.
2778 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
2779 result of DWARF_FRAME_REGNUM into a local variable.
2780
3a5e4ad6
RH
27812011-07-12 Richard Henderson <rth@redhat.com>
2782
2783 PR target/49714
2784 * config/i386/i386.c (x86_output_mi_thunk): Use
2785 machopic_indirect_call_target instead of machopic_indirection_name
2786 directly.
2787
9e9bd455
LG
27882011-07-12 Laurent GUERBY <laurent@guerby.net>
2789 Eric Botcazou <ebotcazou@adacore.com>
2790
2791 * prefix.h: Wrap up in extern "C" block.
2792
4d652a18
HJ
27932011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
2794
2795 AMD bdver2 Enablement
2796 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
2797 (case ${target}): Add bdver2.
2798 * config/i386/driver-i386.c (host_detect_local_cpu): Let
2799 -march=native recognize bdver2 processors.
2800 * config/i386/i386-c.c (ix86_target_macros_internal): Add
2801 bdver2 def_and_undef
2802 * config/i386/i386.c (struct processor_costs bdver2_cost): New
2803 bdver2 cost table.
2804 (m_BDVER2): New definition.
2805 (m_AMD_MULTIPLE): Includes m_BDVER2.
2806 (initial_ix86_tune_features): Add bdver2 tuning.
2807 (processor_target_table): Add bdver2 entry.
2808 (static const char *const cpu_names): Add bdver2 entry.
2809 (ix86_option_override_internal): Add bdver2 instruction sets.
2810 (ix86_issue_rate): Add bdver2.
2811 (ix86_adjust_cost): Add bdver2.
2812 (has_dispatch): Add bdver2.
2813 * config/i386/i386.h (TARGET_BDVER2): New definition.
2814 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
2815 (enum processor_type): Add PROCESSOR_BDVER2.
2816 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
2817 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
2818 description.
2819
5756d08c
RH
28202011-07-12 Richard Henderson <rth@redhat.com>
2821
2822 PR target/49714
2823 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
2824 destination address in memory on some paths.
2825
123148b5
BS
28262011-07-12 Bernd Schmidt <bernds@codesourcery.com>
2827
2828 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
2829 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
2830 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
2831 * function.c (locate_and_pad_parm): Take it into account.
2832 * target.def (function_arg_round_boundary): New hook.
2833 * targhooks.c (default_function_arg_round_boundary): New function.
2834 * targhooks.h (default_function_arg_round_boundary): Declare.
2835 * doc/tm.texi: Regenerate.
2836
b7a83ad8
RG
28372011-07-12 Richard Guenther <rguenther@suse.de>
2838
2839 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
2840 Do not perform no-op changes.
2841
12c4ecb1
RS
28422011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
2843
2844 * config/arm/predicates.md (neon_struct_operand): Make a normal
2845 predicate.
2846 (neon_struct_or_register_operand): New predicate.
2847 * config/arm/neon.md (movmisalign<mode>): Replace predicates
2848 with neon_struct_or_register_operand.
2849 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
2850 neon_struct_operand instead of memory_operand.
2851
ab079773
MJ
28522011-07-12 Martin Jambor <mjambor@suse.cz>
2853
2854 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
2855 * cgraph.c (cgraph_get_node_or_alias): Removed.
2856 (change_decl_assembler_name): Changed all calls to
2857 cgraph_get_node_or_alias to a call to cgraph_get_node.
2858 (cgraph_make_decl_local): Likewise.
2859 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
2860 * varasm.c (default_binds_local_p_1): Likewise.
2861 (decl_binds_to_current_def_p): Likewise.
2862
d5fed62d
JJ
28632011-07-12 Jakub Jelinek <jakub@redhat.com>
2864
2865 PR tree-optimization/49712
2866 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
2867
c0b6224a
BS
28682011-07-11 Bernd Schmidt <bernds@codesourcery.com>
2869
2870 * genautomata.c (add_arc): Return void. All callers changed.
2871 (make_automaton): Remove dead code.
2872
7263c6d7
RH
28732011-07-11 Richard Henderson <rth@redhat.com>
2874
2875 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
2876 (DW_FRAME_POINTER_REGNUM): New.
2877 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
2878 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
2879 (dwf_regno): New.
2880 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
2881 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
2882 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
2883 Use it.
2884 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
2885 * dwarf2out.h (dwarf_frame_regnum): New.
2886 (struct cfa_loc): Document the domain of the reg member.
2887
f9610d20
UB
28882011-07-11 Uros Bizjak <ubizjak@gmail.com>
2889
2890 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
2891 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
2892
96ae7458
JJ
28932011-07-11 Jakub Jelinek <jakub@redhat.com>
2894
2895 PR debug/49676
2896 * dwarf2out.c (int_shift_loc_descriptor): New function.
2897 (int_loc_descriptor): If shorter, emit i as
2898 (i >> shift), shift, DW_OP_shl for suitable shift value.
2899 Similarly, try to optimize large negative values using
2900 DW_OP_neg of a positive value if shorter.
2901 (size_of_int_shift_loc_descriptor): New function.
2902 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
2903 changes.
2904 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
2905 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
2906 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
2907 is shorter.
2908 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
2909 addend as added DW_OP_plus if it is shorter.
2910
feffaec4
RO
29112011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2912
2913 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
2914 (DTORS_SECTION_ASM_OP): Define.
2915
2d8d5935
RO
29162011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2917
2918 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
2919 * config/t-dfprules: Move to ../libgcc/config.
2920 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2921 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2922 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
2923 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
2924 Likewise.
2925 (i[34567]86-*-cygwin*): Likewise.
2926 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
2927 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
2928 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
2929 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
2930 D64PBIT_FUNCS, D128PBIT_FUNCS.
2931
dcc95c20
RG
29322011-07-11 Richard Guenther <rguenther@suse.de>
2933
2934 * tree-vrp.c (simplify_conversion_using_ranges): Manually
2935 translate the source value-range through the conversion chain.
2936
28164eed
RS
29372011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
2938
2939 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
2940
f3054223
AL
29412011-07-11 Arthur Loiret <aloiret@debian.org>
2942
2943 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
2944 a bi-arch compiler defaulting to 31-bit. In this case:
2945 (tmake_file): Add s390/t-linux64.
2946 * doc/install.texi: Add s390-linux to the list of targets supporting
2947 --enable-targets=all.
2948
bd5ab709
AL
29492011-07-11 Arthur Loiret <aloiret@debian.org>
2950 Matthias Klose <doko@debian.org>
2951
2952 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
2953 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
2954 (tm_file): Add mips/linux64.h.
2955 (tmake_file): Add mips/t-linux64.
2956 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
2957 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
2958 instead of hardcoded mabi=n32.
2959 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
2960 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
2961 convention.
2962
d3b7e946
AK
29632011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2964
2965 * passes.c (init_optimization_passes): Add invariant motion pass
2966 after induction variable optimization.
2967
7e4ec472 29682011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 2969
7e4ec472
GJL
2970 PR target/39633
2971 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
2972 offsets 1..5 set cc0 in a usable way.
2973
0e65e631
RG
29742011-07-11 Romain Geissler <romain.geissler@gmail.com>
2975
2976 * tree.h (call_expr_arg): Remove.
2977 (call_expr_argp): Likewise.
2978
18970372
EB
29792011-07-11 Eric Botcazou <ebotcazou@adacore.com>
2980
2981 * config/sparc/sparc.md (save_register_window_1): Rename to...
2982 (window_save): ...this.
2983 * config/sparc/sparc.c (emit_save_register_window): Rename to...
2984 (emit_window_save): ...this.
2985 (sparc_expand_prologue): Adjust to above renaming.
2986
9e419e38
L
29872011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2988
2989 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
2990 of movabs for x32.
2991
3db72de3
RH
29922011-07-10 Richard Henderson <rth@redhat.com>
2993
2994 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
2995 run final, instead of emitting text directly.
2996
a1f91bca
L
29972011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2998
2999 * config/i386/i386.c (ix86_option_override_internal): Turn on
3000 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
3001 small PIC models for TARGET_X32.
3002
a50023f9
HPN
30032011-07-10 Hans-Peter Nilsson <hp@axis.com>
3004
9a0b29f0
HPN
3005 PR target/49684
3006 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
3007 $(LIBGCC2_CFLAGS).
3008
a50023f9
HPN
3009 PR bootstrap/49680
3010 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
3011 stray notes and debug insns by using prev_nonnote_nondebug_insn
3012 instead of PREV_INSN.
3013
948d330e
RH
30142011-07-09 Richard Henderson <rth@redhat.com>
3015
3016 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
3017 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
3018 * dwarf2out.c: ... here.
3019 (output_all_cfis): Remove.
3020 (dwarf2out_switch_text_section): Use output_cfis directly.
3021 (size_of_locs): Export.
3022 (output_loc_sequence, output_loc_sequence_raw): Export.
3023 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
3024 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
3025 output_cfa_loc_raw): Move to ...
3026 * dwarfcfi.c: ... here.
3027 * dwarf2out.h: Update decls.
3028
db42e39d
RH
30292011-07-09 Richard Henderson <rth@redhat.com>
3030
3031 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
3032 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
3033 * dwarf2cfi.c: ... here.
3034 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
3035 (DWARF_ROUND, DWARF_CIE_ID): Remove.
3036 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
3037 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
3038 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
3039
a8e5c0e7
RH
30402011-07-09 Richard Henderson <rth@redhat.com>
3041
3042 * dwarf2cfi.c (cie_return_save): New.
3043 (queue_reg_save): Use compare_reg_or_pc.
3044 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
3045 (dwarf2out_frame_debug_expr): Likewise.
3046 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
3047 (initial_return_save): Likewise.
3048 (execute_dwarf2_frame): Save and restore initial return save from
3049 the cie to the fde.
3050 * config/mips/mips.c (mips_frame_set): Remove special case for
3051 DWARF_FRAME_RETURN_COLUMN.
3052
4a8ee122
RH
30532011-07-09 Richard Henderson <rth@redhat.com>
3054
3055 * dwarf2cfi.c (lookup_cfa): Remove.
3056 (execute_dwarf2_frame): Assert queues are empty on entry.
3057 Setup initial cfa directly, not via lookup_cfa.
3058 Don't clear args_size state here.
3059
3edb53aa
RH
30602011-07-09 Richard Henderson <rth@redhat.com>
3061
3062 * dwarf2cfi.c (add_cfi_vec): New.
3063 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
3064 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
3065 (execute_dwarf2_frame): Set add_cfi_vec.
3066
ded49a7f
RH
30672011-07-09 Richard Henderson <rth@redhat.com>
3068
3069 * defaults.h (ASM_COMMENT_START): Move here...
3070 * dwarf2asm.c: ... from here.
3071 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
3072 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
3073 * varasm.c: Likewise.
3074
45fba6d1
RH
30752011-07-09 Richard Henderson <rth@redhat.com>
3076
3077 PR debug/49686
3078 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
3079 (create_cfi_notes): ... do it here instead.
3080
5b696ba2
JJ
30812011-07-09 Jakub Jelinek <jakub@redhat.com>
3082
3083 PR debug/49676
3084 * dwarf2out.c (size_of_int_loc_descriptor): New function.
3085 (address_of_int_loc_descriptor): Use it.
f9610d20 3086 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 3087
8662b2ba
RH
30882011-07-09 Richard Henderson <rth@redhat.com>
3089
3090 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
3091 (prologue, epilogue): New.
3092 (return, *rts): New.
3093 (blockage, setd, seti): New.
3094 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3095 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
3096 (pdp11_saved_regno): New.
3097 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
3098 generate rtl instead of text.
3099 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
3100 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
3101 * config/pdp11/pdp11-protos.h: Update.
3102
28b21ebb
RH
31032011-07-09 Richard Henderson <rth@redhat.com>
3104
3105 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
3106 try to insert an rtl prologue here.
3107 (rs6000_output_function_epilogue): Similarly.
3108 * config/rs6000/rs6000.md (prologue): Emit a barrier to
3109 satisfy !TARGET_SCHED_PROLOG.
3110 (epilogue, sibcall_epilogue): Likewise.
3111
0a222ba7
EB
31122011-07-09 Eric Botcazou <ebotcazou@adacore.com>
3113
3114 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
3115 (FP_REG_P): Delete.
3116 (IN_OR_GLOBAL_P): Likewise.
3117
2fda8e14
JM
31182011-07-08 Jason Merrill <jason@redhat.com>
3119
4063e61b
JM
3120 PR c++/45437
3121 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
3122 compound assignment.
3123
2fda8e14
JM
3124 * cgraph.c (cgraph_add_to_same_comdat_group): New.
3125 * cgraph.h: Declare it.
3126 * ipa.c (function_and_variable_visibility): Make sure thunks
3127 have the right visibility.
3128
830f11fe
RH
31292011-07-08 Richard Henderson <rth@redhat.com>
3130
3131 PR bootstrap/49680
3132 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
3133 any tablejump vector.
3134
965b2557
RH
3135 PR bootstrap/49680
3136 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
3137 end of the prologue.
3138
70db9095
JJ
31392011-07-08 Jakub Jelinek <jakub@redhat.com>
3140
3141 PR target/49621
3142 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 3143 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
3144 * config/rs6000/vector.md (vector_select_<mode>,
3145 vector_select_<mode>_uns): Change second operand of NE to
3146 CONST0_RTX (<MODE>mode) instead of const0_rtx.
3147 * config/rs6000/altivec.md (*altivec_vsel<mode>,
3148 *altivec_vsel<mode>_uns): Expect second operand of NE to be
3149 zero_constant of the corresponding vector mode.
3150 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
3151 Likewise.
3152
e92c5020
SP
31532011-07-08 Sebastian Pop <sebastian.pop@amd.com>
3154
3155 * graphite-dependences.c (build_alias_set_powerset): Remove
3156 continue from loop, add one more assert.
3157
3e4f8484 31582011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 3159
3e4f8484
GJL
3160 PR target/46779
3161 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
3162 In particular, allow 8-bit values in r28 and r29.
3163 (avr_hard_regno_scratch_ok): Disallow any register that might be
3164 part of the frame pointer.
3165 (avr_hard_regno_rename_ok): Same.
3166 (avr_legitimate_address_p): Don't allow SUBREGs.
3167
0094f21b
JB
31682011-07-08 Julian Brown <julian@codesourcery.com>
3169
3170 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
3171 big-endian mode.
3172 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
3173 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
3174 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
3175 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
3176 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
3177 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
3178 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
3179 registers in big-endian mode.
3180
9ae60101
BS
31812011-07-08 Bernd Schmidt <bernds@codesourcery.com>
3182
3183 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
3184 in terms of another.
3185 (write_attr_value): Write a cast if necessary.
3186
c0a6a1ef
BS
3187 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
3188 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
3189 (REG_WORDS_BIG_ENDIAN): Document.
3190 * doc/tm.texi: Regenerate.
3191 * reload.c (operands_match_p): Take it into account.
3192 (reload_adjust_reg_for_mode): Likewise.
3193 * rtlanal.c (subreg_get_info): Likewise.
3194
b862187a
RG
31952011-07-08 Richard Guenther <rguenther@suse.de>
3196
3197 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
3198 folding.
3199
e8e8c74b
KT
32002011-07-08 Kai Tietz <ktietz@redhat.com>
3201
3202 * fold-const.c (fold_truth_andor): Factored out truth_andor
3203 label from fold_binary as function.
3204 (fold_binary_loc): Replace truth_andor lable
3205 by function fold_truth_andor.
3206
6c3cb698
KY
32072011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
3208
3209 PR middle-end/49519
3210 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
3211 check if address is stored in register. If so - give up.
3212 (check_sibcall_argument_overlap_1): Do not perform check of
3213 overlapping when it is call to address.
3214
7d8d6d73 32152011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 3216
7d8d6d73
GJL
3217 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
3218 of magic '31'.
3219
69660a70
BS
32202011-07-08 Bernd Schmidt <bernds@codesourcery.com>
3221
3222 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
3223 GET_MODE_BITSIZE where appropriate.
3224 (widen_leading, expand_parity, expand_ctz, expand_ffs,
3225 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
3226 expand_float, expand_fix): Likewise.
3227 * expr.c (convert_move, convert_modes, expand_expr_real_2,
3228 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3229 * stor-layout.c (get_mode_bounds): Likewise.
3230 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
3231 Likewise.
3232 * convert.c (convert_to_integer): Likewise.
3233 * expmed.c (expand_shift_1): Likewise.
3234
86cdf393
BS
3235 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
3236 a bitsize.
3237
0d44736e
BS
3238 * optabs.c (expand_binop): Tighten conditions for doubleword
3239 expansions.
f9610d20 3240 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
3241 * stor-layout.c (get_best_mode): Skip modes that have lower
3242 precision than bitsize.
3243 * recog.c (simplify_while_replacing): Assert that bitsize and
3244 precision are the same.
3245
2c50b2c3
RO
32462011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3247
3248 * Makefile.in (LIBGCOV): Remove.
3249 (libgcc.mvars): Remove LIBGCOV.
3250 * libgov.c: Move to ../libgcc.
3251
a039d7c2
RO
32522011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3253
3254 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
3255
e923ef41
MJ
32562011-07-08 Martin Jambor <mjambor@suse.cz>
3257
3258 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
3259 is too big for total scalarization.
3260
b709e189
RH
32612011-07-07 Richard Henderson <rth@redhat.com>
3262
3263 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
3264 (DBX_DEBUGGING_INFO): Undef.
3265
2867fa7c
RH
32662011-07-07 Richard Henderson <rth@redhat.com>
3267
3268 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
3269 Handle some opcodes specially for debugging.
3270 * print-rtl.c: Include dwarf2out.h
3271 (print_rtx): Handle NOTE_INSN_CFI.
3272 * Makefile.in (print-rtl.o): Update.
3273
7644b3c7
RH
32742011-07-07 Richard Henderson <rth@redhat.com>
3275
3276 * tree-pass.h (pass_dwarf2_frame): Declare.
3277 * passes.c (init_optimization_passes): Add it.
3278 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
3279 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
3280 make static, do not call add_cfis_to_fde.
3281 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
3282 dwarf2out_frame_init): Merge into...
3283 (execute_dwarf2_frame): ... here. New function.
3284 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
3285 saved_do_cfi_asm to a tri-state variable.
3286 (gate_dwarf2_frame, pass_dwarf2_frame): New.
3287 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
3288 if it has yet to be done. Don't call dwarf2cfi_function_init.
3289 * dwarf2out.h, debug.h: Update decls.
3290 * final.c (final_start_function): Don't call
3291 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
3292 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
3293 * toplev.c (lang_dependent_init): Likewise.
3294
a518b996
RH
32952011-07-07 Richard Henderson <rth@redhat.com>
3296
3297 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
3298 FDE_TABLE_INCREMENT): Replace with...
3299 (fde_vec): ... this, a new vector.
3300 (current_fde): Remove. Replace all users with cfun->fde.
3301 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
3302 (size_of_aranges, dwarf2out_finish): Likewise.
3303 (dwarf2out_alloc_current_fde): Break out from ...
3304 (dwarf2out_begin_prologue): ... here.
3305 (dwarf2out_frame_init): Remove.
3306 * dwarf2cfi.c: Update all users of current_fde.
3307 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
3308 * dwarf2out.h: Update decls.
3309 (dw_fde_node): Add fde_index member.
3310 * function.h (struct function): Add fde member.
3311
89e25f95
BS
33122011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3313 Richard Henderson <rth@redhat.com>
3314
3315 * dwarf2cfi.c (add_cfi): Remove.
3316 (dwarf2out_cfi_label): Remove force argument. Only generate the
3317 label name.
3318 (add_fde_cfi): Simplify the different code paths.
3319 (add_cie_cfi): New.
3320 (old_cfa, old_cfa_remember): New.
3321 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
3322 (last_reg_save_label): Remove.
3323 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
3324 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3325 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3326 dwarf2out_frame_debug_cfa_expression,
3327 dwarf2out_frame_debug_cfa_restore,
3328 dwarf2out_frame_debug_cfa_window_save,
3329 dwarf2out_frame_debug_expr): Remove label parameter.
3330 (cfi_label_required_p, add_cfis_to_fde): New.
3331 (dwarf2out_frame_debug_after_prologue): New.
3332 (dwarf2cfi_frame_init): Initialize old_cfa.
3333 (dwarf2out_frame_debug_restore_state): Likewise.
3334 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
3335 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
3336 * final.c (final_start_function): Call
3337 dwarf2out_frame_debug_after_prologue.
3338
bc5612ed
BS
33392011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3340 Richard Henderson <rth@redhat.com>
3341
3342 * dwarf2cfi.c (cfi_insn): New.
3343 (dwarf2out_cfi_label): Don't emit cfi label here.
3344 (add_fde_cfi): Create a NOTE_INSN_CFI.
3345 (dwarf2out_frame_debug): Setup cfi_insn.
3346 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
3347 (dwarf2out_cfi_begin_epilogue): Make static.
3348 (dwarf2out_frame_debug_restore_state): Make static.
3349 * dwarf2out.c (output_cfi_directive): Make static.
3350 (dwarf2out_emit_cfi): New.
3351 * dwarf2out.h: Update.
3352 * final.c (final): Remove CFI notes.
3353 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
3354 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
3355 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
3356 * insn-notes.def (NOTE_INSN_CFI): New.
3357 (NOTE_INSN_CFI_LABEL): New.
3358 * rtl.h (union rtunion_def): Add rt_cfi member.
3359 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
3360
647a1567
RH
33612011-07-07 Richard Henderson <rth@redhat.com>
3362
3363 * dwarf2cfi.c: New file.
3364 * Makefile.in (OBJS): Add it.
3365 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
3366 * gengtype.c (open_base_files): Include dwarf2out.h.
3367 * coretypes.h (enum var_init_status): Move from ...
3368 * rtl.h: ... here.
3369 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
3370 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
3371 expand_builtin_dwarf_sp_column, init_return_column_size,
3372 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
3373 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
3374 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
3375 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
3376 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
3377 compute_barrier_args_size, dwarf2out_args_size,
3378 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
3379 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
3380 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
3381 queue_reg_save, dwarf2out_flush_queued_reg_saves,
3382 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
3383 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3384 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3385 dwarf2out_frame_debug_cfa_expression,
3386 dwarf2out_frame_debug_cfa_restore,
3387 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
3388 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
3389 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
3390 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
3391 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
3392 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
3393 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
3394 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
3395 dw_loc_descr_node): Move to dwarf2out.h.
3396 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
3397 mem_loc_descriptor): Export.
3398 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
3399 (dwarf2out_frame_init): Extract CIE generation code to
3400 dwarf2cfi_frame_init.
3401
b286d9ed
EB
34022011-07-07 Eric Botcazou <ebotcazou@adacore.com>
3403
3404 PR target/49660
3405 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
3406 MASK_V8PLUS, remove commented out flag and reorder.
3407
c4603e7c
JJ
34082011-07-07 Jakub Jelinek <jakub@redhat.com>
3409
3410 PR c/49644
3411 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
3412 one non-complex and one complex argument, call c_save_expr on both
3413 operands.
3414
81361831
MJ
34152011-07-07 Martin Jambor <mjambor@suse.cz>
3416
3417 PR middle-end/49495
3418 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
3419 (verify_cgraph_node): Some functinality moved to
3420 verify_edge_corresponds_to_fndecl, call it.
3421
1e4b2746
JM
34222011-07-07 Joseph Myers <joseph@codesourcery.com>
3423
3424 * config.gcc (*local*): Remove.
3425 * doc/install-old.texi: Don't mention local configurations.
3426
d7ff1e11
JJ
34272011-07-07 Jakub Jelinek <jakub@redhat.com>
3428
3429 PR debug/49522
3430 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
3431 referencing debug insns that have been reset.
3432 (dead_debug_insert_before): Don't assert reg is non-NULL,
3433 instead return immediately if it is NULL.
3434
2492731a
JM
34352011-07-07 Joseph Myers <joseph@codesourcery.com>
3436
f9610d20 3437 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 3438
9d9c740d
BS
34392011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3440
3441 * hw-doloop.c: New file.
3442 * hw-doloop.h: New file.
3443 * Makefile.in (OBJS): Add hw-doloop.o.
3444 (hw-doloop.o): New rule.
3445 ($(obj_out_file)): Add hw-doloop.h dependency.
3446 * config/bfin/bfin.c: Include "hw-doloop.h".
3447 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
3448 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
3449 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
3450 type changed to hwloop_info. Return bool, true if the loop was
3451 successfully optimized. Remove code that was moved to
3452 hw-doloop.c, and adjust other parts.
3453 (hwloop_fail): New static function, containing parts that used
3454 to be in bfin_optimize_loop.
3455 (bfin_discover_loop, bfin_discover_loops, free_loops,
3456 bfin_reorder_loops): Remove.
3457 (hwloop_pattern_reg): New static function.
3458 (bfin_doloop_hooks): New variable.
3459 (bfin_reorg_loops): Remove most code, call reorg_loops.
3460 * config/bfin/bfin.md (doloop_end splitter): Also enable if
3461 loop counter is a memory_operand.
3462
f0ea7581
L
34632011-07-07 H.J. Lu <hongjiu.lu@intel.com>
3464
f9610d20 3465 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
3466
3467 * configure.ac: Mention x86-64 for --with-multilib-list.
3468 * configure: Regenerated.
3469
3470 * config/i386/gnu-user64.h (SPEC_64): Support x32.
3471 (SPEC_32): Likewise.
3472 (ASM_SPEC): Likewise.
3473 (LINK_SPEC): Likewise.
3474 (TARGET_THREAD_SSP_OFFSET): Likewise.
3475 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
3476 (SPEC_X32): New.
3477
3478 * config/i386/i386.h (TARGET_X32): New.
3479 (TARGET_LP64): New.
3480 (LONG_TYPE_SIZE): Likewise.
3481 (POINTER_SIZE): Likewise.
3482 (POINTERS_EXTEND_UNSIGNED): Likewise.
3483 (OPT_ARCH64): Support x32.
3484 (OPT_ARCH32): Likewise.
3485
3486 * config/i386/i386.opt (mx32): New.
3487
3488 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
3489 (GLIBC_DYNAMIC_LINKERX32): Likewise.
3490 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
3491 (GLIBC_DYNAMIC_LINKERX32): Likewise.
3492
3493 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
3494 (BIONIC_DYNAMIC_LINKERX32): Likewise.
3495 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
3496
3497 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
3498
f9610d20 3499 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
3500
3501 * doc/invoke.texi: Document -mx32.
3502
38460025
RS
35032011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
3504
3505 * doc/invoke.texi (mwords-little-endian): Deprecate.
3506 * config/arm/arm.opt (mwords-little-endian): Likewise.
3507 * config/arm/arm.c (arm_option_override): Warn about the deprecation
3508 of -mwords-little-endian.
3509
3f125532
RS
35102011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
3511
3512 * reload1.c (choose_reload_regs): Use mode sizes to check whether
3513 an old reload register completely defines the required value.
3514
bbc210ab
RG
35152011-07-07 Richard Guenther <rguenther@suse.de>
3516
3517 * fold-const.c (fold_unary_loc): Do not strip sign-changes
3518 for NEGATE_EXPR.
3519
29c5134a
RG
35202011-07-07 Richard Guenther <rguenther@suse.de>
3521
3522 * tree-vrp.c (simplify_conversion_using_ranges): New function.
3523 (simplify_stmt_using_ranges): Call it.
3524
0816a42a
KT
35252011-07-07 Kai Tietz <ktietz@redhat.com>
3526
3527 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
3528 (lookup_logical_inverted_value): Likewise.
3529 (simplify_bitwise_binary_1): Likewise.
3530 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
3531
3ce9f090
JM
35322011-07-07 Joseph Myers <joseph@codesourcery.com>
3533
3534 * gcc.c (%[Spec]): Don't document.
3535 (struct spec_list): Update comment.
3536 (do_spec_1): Don't handle %[Spec].
3537 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
3538
41dfca87
JM
35392011-07-07 Joseph Myers <joseph@codesourcery.com>
3540
3541 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
3542 default based on TARGET_ASM_NAMED_SECTION.
3543 * common/common-target.def (have_named_sections): Default to true.
3544 * common/config/default-common.c: Don't include tm.h.
3545 * common/config/picochip/picochip-common.c
3546 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
3547 * common/config/m32c/m32c-common.c: Remove.
3548 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
3549 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3550 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3551 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 3552 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
3553 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3554 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 3555
19c44640
JJ
35562011-07-07 Jakub Jelinek <jakub@redhat.com>
3557
3558 PR middle-end/49640
f9610d20
UB
3559 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
3560 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 3561
891a2e42
RO
35622011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3563
3564 PR libmudflap/49550
3565 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
3566
fbdd5d87
RO
35672011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3568
3569 PR target/39150
3570 * configure.ac (gcc_cv_as_hidden): Also accept
3571 x86_64-*-solaris2.1[0-9]*.
3572 (gcc_cv_as_cfi_directive): Likewise.
3573 (gcc_cv_as_comdat_group_group): Likewise.
3574 (set_have_as_tls): Likewise.
3575 * configure: Regenerate.
3576 * config.gcc (i[34567]86-*-solaris2*): Also handle
3577 x86_64-*-solaris2.1[0-9]*.
3578 * config.host (i[34567]86-*-solaris2*): Likewise.
3579 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
3580 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
3581 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
3582 (TARGET_LD_EMULATION): Use it.
3583 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
3584 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
3585 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
3586 (ASM_CPU64_DEFAULT_SPEC): Define.
3587 (ASM_CPU_SPEC): Use %(asm_cpu_default).
3588 (ASM_SPEC): Redefine.
3589 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
3590 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 3591 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
3592 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
3593 configuration.
3594 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
3595
fcf7471a
RO
35962011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3597
3598 * config/sol2.h (ASM_SPEC): Split into ...
3599 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
3600 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
3601 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
3602 (ASM_SPEC): Use ASM_SPEC_BASE.
3603 * config/sparc/sol2.h (ASM_SPEC): Redefine.
3604
1e6a67d1 36052011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 3606
1e6a67d1
GJL
3607 * config/avr/avr.md (*reload_insi): Change predicate #1 to
3608 const_int_operand. Ditto for peep2 producing this insn.
3609 Add argument to output_reload_insisf call.
3610 (*movsi,*movsf): Add argument to output_movsisf call.
3611 (*reload_insf): New insn and new peep2 to produce it.
3612 * config/avr/avr-protos.h (output_movsisf): Change prototype.
3613 (output_reload_insisf): Change prototype.
3614 * config/avr/avr.c (avr_asm_len): New function.
3615 (output_reload_insisf): Rewrite.
3616 (output_movsisf): Change prototype. output_reload_insisf for
3617 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
3618 (adjust_insn_length): Add argument to output_movsisf and
3619 output_reload_insisf call.
3620
6a4bdc79
BS
36212011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3622
3623 * emit-rtl.c (paradoxical_subreg_p): New function.
3624 * rtl.h (paradoxical_subreg_p): Declare.
3625 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
3626 apply_distributive_law, simplify_comparison, simplify_set): Use it.
3627 * cse.c (record_jump_cond, cse_insn): Likewise.
3628 * expr.c (force_operand): Likewise.
3629 * rtlanal.c (num_sign_bit_copies1): Likewise.
3630 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
3631 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
3632 (push_reload): Use precision to check for paradoxical subregs.
3633 * expmed.c (extract_bit_field_1): Likewise.
3634
46c9550f
BS
3635 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
3636 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
3637 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
3638 simplify_set, simplify_logical, expand_compound_operation,
3639 make_extraction, force_to_mode, if_then_else_cond, extended_count,
3640 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
3641 record_value_for_reg): Likewise.
3642 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
3643 * simplify-rtx. c (simplify_unary_operation_1,
3644 simplify_binary_operation_1, simplify_const_relational_operation):
3645 Likewise.
3646
5511bc5a
BS
3647 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
3648 instead of GET_MODE_BITSIZE where appropriate.
3649 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
3650 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
3651 init_num_sign_bit_copies_in_rep): Likewise.
3652 * cse.c (fold_rtx, cse_insn): Likewise.
3653 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
3654 * simplify-rtx.c (simplify_unary_operation_1,
3655 simplify_const_unary_operation, simplify_binary_operation_1,
3656 simplify_const_binary_operation, simplify_ternary_operation,
3657 simplify_const_relational_operation, simplify_subreg): Likewise.
3658 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
3659 simplify_if_then_else, simplify_set, expand_compound_operation,
3660 expand_field_assignment, make_extraction, if_then_else_cond,
3661 make_compound_operation, force_to_mode, make_field_assignment,
3662 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
3663 extended_count, try_widen_shift_mode, simplify_shift_const_1,
3664 simplify_comparison, record_promoted_value, simplify_compare_const,
3665 record_dead_and_set_regs_1): Likewise.
3666
d58c1a38
BS
3667 Revert:
3668 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
3669 shift_truncation_mask hook instead of performing modulo by width.
3670 Compare against mode precision, not bitsize.
d58c1a38 3671 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 3672 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 3673
76594d53
MM
36742011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3675
3676 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
3677 declaration.
3678 (rs6000_save_toc_in_prologue_p): Ditto.
3679
3680 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
3681 up the static chain (r11) during indirect function calls.
3682 (-msave-toc-indirect): New undocumented debug switch.
3683
3684 * config/rs6000/rs6000.c (struct machine_function): Add
3685 save_toc_in_prologue field to note whether the prologue needs to
3686 save the TOC value in the reserved stack location.
3687 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
3688 to save the TOC in the prologue, do so.
3689 (rs6000_trampoline_init): Don't allow creating AIX style
3690 trampolines if -mno-r11 is in effect.
3691 (rs6000_call_indirect_aix): New function to create AIX style
3692 indirect calls, adding support for -mno-r11 to suppress loading
3693 the static chain, and saving the TOC in the prologue instead of
3694 the call body.
3695 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
3696 TOC in the prologue.
3697
3698 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
3699 register numbers.
3700 (TOC_REGNUM): Ditto.
3701 (STATIC_CHAIN_REGNUM): Ditto.
3702 (ARG_POINTER_REGNUM): Ditto.
3703 (SFP_REGNO): Delete, unused.
3704 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
3705 function descriptor offsets.
3706 (TOC_SAVE_OFFSET_64BIT): Ditto.
3707 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
3708 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
3709 (AIX_FUNC_DESC_SC_32BIT): Ditto.
3710 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
3711 (ptrload): New mode attribute for the appropriate load of a pointer.
3712 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
3713 (call_indirect_aix64): Ditto.
3714 (call_value_indirect_aix32): Ditto.
3715 (call_value_indirect_aix64): Ditto.
3716 (call_indirect_nonlocal_aix32_internal): Ditto.
3717 (call_indirect_nonlocal_aix32): Ditto.
3718 (call_indirect_nonlocal_aix64_internal): Ditto.
3719 (call_indirect_nonlocal_aix64): Ditto.
3720 (call): Rewrite AIX indirect function calls. Add support for
3721 eliminating the static chain, and for moving the save of the TOC
3722 to the function prologue.
3723 (call_value): Ditto.
3724 (call_indirect_aix<ptrsize>): Ditto.
3725 (call_indirect_aix<ptrsize>_internal): Ditto.
3726 (call_indirect_aix<ptrsize>_internal2): Ditto.
3727 (call_indirect_aix<ptrsize>_nor11): Ditto.
3728 (call_value_indirect_aix<ptrsize>): Ditto.
3729 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3730 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3731 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3732 (call_nonlocal_aix32): Relocate in the rs6000.md file.
3733 (call_nonlocal_aix64): Ditto.
3734
3735 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
3736 -mno-r11 documentation.
3737
49d6830d
JW
37382011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
3739
3740 PR other/49658
3741 * doc/extend.texi (Compound Literals): Fix typo.
3742
c884924f
JG
37432011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
3744
f9610d20 3745 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 3746
bf588455
BS
37472011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
3748
3749 * configure.ac (plugin-version.h): Generate
3750 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
3751 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
3752 macros.
3753
3754 * configure: Regenerate.
3755
3756 * doc/plugins.texi (Building GCC plugins): Mention
3757 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
3758
d0edd768
BS
37592011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3760
3761 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
3762 * combine.c (make_extraction, gen_lowpart_or_truncate,
3763 apply_distributive_law, simplify_comparison,
3764 reg_truncated_to_mode, record_truncated_value): Use it.
3765 * cse.c (notreg_cost): Likewise.
3766 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
3767 * expr.c (convert_move, convert_modes): Likewise.
3768 * optabs.c (expand_binop, expand_unop): Likewise.
3769 * postreload.c (move2add_last_label): Likewise.
3770 * regmove.c (optimize_reg_copy_3): Likewise.
3771 * rtlhooks.c (gen_lowpart_general): Likewise.
3772 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3773
e5cabdfb
JM
37742011-07-06 Joseph Myers <joseph@codesourcery.com>
3775
3776 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
3777
2d0c270f
BS
37782011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3779
3780 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
3781 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
3782 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
3783 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
3784 simplify_const_binary_operation, simplify_const_relational_operation):
3785 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
3786 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
3787 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
3788 simplify_shift_const_1, simplify_comparison): Likewise.
3789 * expr.c (convert_modes): Likewise.
3790 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 3791 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
3792 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
3793
f9c08345
BS
3794 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
3795
6d6c9525
RG
37962011-07-06 Richard Guenther <rguenther@suse.de>
3797
3798 PR tree-optimization/49645
3799 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
3800 register variables.
3801 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
3802 in type qualification here ...
3803 (copy_reference_ops_from_ref): ... not here.
3804 (vn_reference_lookup_3): ... or here.
3805 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
3806 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
3807
d1a6ec10
ILT
38082011-07-06 Ian Lance Taylor <iant@google.com>
3809
3810 * doc/install.texi (Configuration): It's
3811 --enable-gnu-indirect-function, not --enable-indirect-function.
3812
ff3e08af
BS
38132011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3814
3815 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
3816 shift_truncation_mask hook instead of performing modulo by width.
3817 Compare against mode precision, not bitsize.
ff3e08af 3818 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 3819 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 3820
a369b639
L
38212011-07-06 H.J. Lu <hongjiu.lu@intel.com>
3822
3823 PR middle-end/47383
3824 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
3825 address computation and convert to address_mode if needed.
3826
1a072294
RG
38272011-07-06 Richard Guenther <rguenther@suse.de>
3828
3829 * tree.c (build_common_tree_nodes_2): Merge with
3830 build_common_tree_nodes.
3831 * tree.h (build_common_tree_nodes): Adjust prototype.
3832 (build_common_tree_nodes_2): Remove.
3833 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
3834 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
3835
f2c3a8ce
JJ
38362011-07-05 Jakub Jelinek <jakub@redhat.com>
3837
3838 PR tree-optimization/49618
3839 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
3840 t recurse on the decl.
3841 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
3842 return true if expr isn't known to be defined in current
3843 TU or some other LTO partition.
3844
3aa439ed
MM
38452011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3846
3847 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
3848 override CASE_VALUES_THRESHOLD.
3849
3850 * stmt.c (toplevel): Include params.h.
3851 (case_values_threshold): Use the --param case-values-threshold
3852 value if non-zero, otherwise use machine dependent value.
3853 (expand_case): Use case_values_threshold.
3854
3855 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
3856
3857 * doc/invoke.texi (--param case-values-threshold): Document.
3858
49956667
RH
38592011-07-05 Richard Henderson <rth@redhat.com>
3860
3861 * dwarf2out.c (dwarf2out_cfi_label): Make static.
3862 (dwarf2out_flush_queued_reg_saves): Make static.
3863 (dwarf2out_reg_save): Remove.
3864 (dwarf2out_return_save): Remove.
3865 (dwarf2out_return_reg): Remove.
3866 (dwarf2out_reg_save_reg): Remove.
3867 (dwarf2out_def_cfa): Merge into ...
3868 (dwarf2out_frame_init): ... here.
3869 * dwarf2out.h, tree.h: Remove declarations as necessary.
3870
9f2ff8e5
RH
38712011-07-05 Richard Henderson <rth@redhat.com>
3872
c2b40eba
RH
3873 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
3874 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3875 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
3876 the alloc insn.
3877
7d3c6cd8
RH
3878 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
3879 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
3880 (process_epilogue): Don't call dwarf2out_def_cfa.
3881
5f740973
RH
3882 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
3883 indicate the return address save.
3884 (process_cfa_register): Likewise.
3885
a1880147
RH
3886 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
3887 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
3888
9f2ff8e5
RH
3889 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
3890 for ar.pfs save at alloc insn.
3891
ddc6e7d6
RH
38922011-07-05 Richard Henderson <rth@redhat.com>
3893
3894 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
3895 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3896 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
3897 stack pointer save.
3898 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
3899 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
3900 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
3901 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
3902
a3515605
RH
39032011-07-05 Richard Henderson <rth@redhat.com>
3904
3905 * config/vax/vax.md (define_c_enum unspecv): New. Define the
3906 VUNSPEC_* constants here instead of via define_constants.
3907 (VUNSPEC_PEM): New constant.
3908 (procedure_entry_mask): New insn.
3909 (prologue): New expander.
3910 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
3911 (vax_expand_prologue): Rename from vax_output_function_prologue;
3912 emit rtl instead of text.
3913 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3914 (print_operand): Add 'x' prefix.
3915
a7adbbcb
L
39162011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3917
3918 PR middle-end/47715
3919 * calls.c (precompute_register_parameters): Promote the function
3920 argument before checking non-legitimate constant.
3921
cec11ec4
SP
39222011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3923
3924 PR tree-optimization/47654
3925 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
3926 (lst_do_strip_mine_loop): Return an int.
3927 (lst_do_strip_mine): Same.
3928 (scop_do_strip_mine): Same.
3929 (scop_do_block): Loop blocking should strip-mine at least two loops.
3930 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
3931 (scop_do_interchange): Same.
3932 * graphite-poly.h (scop_do_interchange): Update declaration.
3933 (scop_do_strip_mine): Same.
3934
9b0d314a
SP
39352011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3936
3937 * graphite-clast-to-gimple.c (precision_for_value): Removed.
3938 (precision_for_interval): Removed.
3939 (gcc_type_for_interval): Use mpz_sizeinbase.
3940
81d6d080
SP
39412011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3942
3943 * graphite-ppl.h (value_max): Correct computation of max.
3944
369e3430
SP
39452011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3946
3947 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
3948
fce5dddd
RG
39492011-07-05 Richard Guenther <rguenther@suse.de>
3950
3951 * c-decl.c (c_init_decl_processing): Defer building common
3952 tree nodes to c_common_nodes_and_builtins.
3953
12037899
RL
39542011-07-05 Razya Ladelsky <razya@il.ibm.com>
3955
3956 PR tree-optimization/49580
f9610d20 3957 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 3958 the loop's number of iterations.
f9610d20
UB
3959 * tree-parloops.c (transform_to_exit_first_loop): Add the
3960 handling of the loop's number of iterations before the call
12037899 3961 to gimple_duplicate_sese_tail.
28b21ebb 3962 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
3963 condition stmt to the preheader instead of iters_bb.
3964
509a31f8
L
39652011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3966
3967 PR rtl-optimization/47449
3968 * fwprop.c (forward_propagate_subreg): Don't propagate hard
3969 register nor zero/sign extended hard register.
3970
39becbac
RG
39712011-07-05 Richard Guenther <rguenther@suse.de>
3972
3973 PR tree-optimization/49518
3974 PR tree-optimization/49628
3975 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
3976 irrelevant and invariant data-references.
3977 (vect_analyze_data_ref_access): For invariant loads clear the
3978 group association.
3979
15923c25
JJ
39802011-07-04 Jakub Jelinek <jakub@redhat.com>
3981
af421d9c
JJ
3982 PR rtl-optimization/49619
3983 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
3984 pass VOIDmode as op0_mode to recursive call, and return temp even
3985 when different from tor, just if it is not IOR of the original
3986 PLUS arguments.
3987
707f9919
JJ
3988 PR rtl-optimization/49472
3989 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
3990 negating MULT, negate the second operand instead of first.
3991 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
3992 a NEG and the other is MULT, don't attempt to optimize by negation
3993 of the MULT operand if it only moves the NEG operation around.
707f9919 3994
15923c25
JJ
3995 PR debug/49602
3996 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
3997 get_current_def return value if it can't be trusted to be
3998 the current value of the variable in the current bb.
3999
0d5e0c1b
UB
40002011-07-04 Uros Bizjak <ubizjak@gmail.com>
4001
4002 PR target/49600
4003 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
4004 general register to memory for !TARGET_INTER_UNIT_MOVES.
4005
db297e20
GJL
40062011-07-04 Georg-Johann Lay <avr@gjlay.de>
4007
4008 PR target/44643
4009 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
4010 instead of TREE_READONLY.
4011
f451d14d
GJL
40122011-07-04 Georg-Johann Lay <avr@gjlay.de>
4013
4014 * doc/extend.texi (AVR Built-in Functions): Update documentation
4015 of __builtin_avr_fmul*.
0d5e0c1b 4016 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
4017 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
4018 * config/avr/avr.md (fmul): Rename to fmul_insn.
4019 (fmuls): Rename to fmuls_insn.
4020 (fmulsu): Rename to fmulsu_insn.
4021 (fmul,fmuls,fmulsu): New expander.
4022 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
4023 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
4024 * config/avr/libgcc.S (__fmul): New function.
4025 (__fmuls): New function.
4026 (__fmulsu,__fmulsu_exit): New function.
4027
30f1e6de
RG
40282011-07-04 Richard Guenther <rguenther@suse.de>
4029
4030 PR tree-optimization/49615
4031 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
4032 basic-block index check.
4033
6dab9931
GJL
40342011-07-04 Georg-Johann Lay <avr@gjlay.de>
4035
4036 * longlong.h (count_leading_zeros, count_trailing_zeros,
4037 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
4038 resp. 64.
4039
b5066d8b
IR
40402011-07-03 Ira Rosen <ira.rosen@linaro.org>
4041
4042 PR tree-optimization/49610
4043 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
4044 a basic block.
4045
bc712852
EB
40462011-07-02 Eric Botcazou <ebotcazou@adacore.com>
4047 Olivier Hainque <hainque@adacore.com>
4048 Nicolas Setton <setton@adacore.com>
4049
4050 * tree.h (TYPE_ARTIFICIAL): New flag.
4051 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
4052 the DIE of the type if it is artificial.
4053 (gen_array_type_die): Likewise.
4054 (gen_enumeration_type_die): Likewise.
4055 (gen_struct_or_union_type_die): Likewise.
4056 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
4057 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
4058
8b1bdcc5
JJ
40592011-07-01 Jakub Jelinek <jakub@redhat.com>
4060
4061 * tree-object-size.c (pass_through_call): Handle
4062 BUILT_IN_ASSUME_ALIGNED.
4063
06e88d73
MJ
40642011-07-01 Martin Jambor <mjambor@suse.cz>
4065
4066 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
4067
6bbec3e1
L
40682011-07-01 H.J. Lu <hongjiu.lu@intel.com>
4069
4070 PR middle-end/48016
4071 * explow.c (update_nonlocal_goto_save_area): Use proper mode
4072 for stack save area.
4073 * function.c (expand_function_start): Likewise.
4074
e8fdf1cd
RG
40752011-07-01 Richard Guenther <rguenther@suse.de>
4076
4077 PR middle-end/49596
4078 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
4079 may have unknown refs.
4080
80d3dd38
KT
40812011-07-01 Kai Tietz <ktietz@redhat.com>
4082
4083 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
4084
179fc656
RO
40852011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4086
4087 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
4088 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
4089 (Specific, mips-sgi-irix6): Likewise.
4090
14a393a3
RO
40912011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4092
4093 PR libmudflap/49549
4094 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
4095
3aecd443
JJ
40962011-07-01 Jakub Jelinek <jakub@redhat.com>
4097
4098 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
4099 [idx]= and [idx1 ... idx2]= before initializers if needed for
4100 array initializers.
4101
7474f719
CL
41022011-07-01 Chen Liqin <liqin.gcc@gmail.com>
4103
4104 * config.gcc (score-*-elf): Remove score7.o.
4105 * config/score/t-score-elf: Likewise.
4106 * config/score/score.c: Merge score7 to score.c and
4107 remove forwarding functions.
4108 * config/score/score7.c: Deleted.
4109 * config/score/score7.h: Deleted.
4110
ab70d825
RG
41112011-07-01 Richard Guenther <rguenther@suse.de>
4112
4113 PR tree-optimization/49603
0d5e0c1b 4114 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 4115
1ac93f10
MJ
41162011-06-30 Martin Jambor <mjambor@suse.cz>
4117
4118 * tree-sra.c (struct access): Rename total_scalarization to
4119 grp_total_scalarization
4120 (completely_scalarize_var): New function.
4121 (sort_and_splice_var_accesses): Set total_scalarization in the
4122 representative access.
4123 (analyze_access_subtree): Propagate total scalarization accross the
4124 tree, no holes in totally scalarized trees, simplify coverage
4125 computation.
4126 (analyze_all_variable_accesses): Call completely_scalarize_var instead
4127 of completely_scalarize_record.
4128
97f309c3
RH
41292011-06-30 Richard Henderson <rth@redhat.com>
4130
4131 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
4132 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
4133 * config/i386/i386.c: Don't include dwarf2out.h.
4134 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
4135 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
4136 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
4137 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
4138 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
4139
ef284364
RH
41402011-06-30 Richard Henderson <rth@redhat.com>
4141
4142 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
4143 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4144 * final.c (final_scan_insn): Look for it, and invoke
4145 dwarf2out_frame_debug before the insn if found.
4146
c8412f97
RH
41472011-06-30 Richard Henderson <rth@redhat.com>
4148
4149 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
4150 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
4151
e3f903d8
RH
41522011-06-30 Richard Henderson <rth@redhat.com>
4153
4154 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
4155 Define a vector of this type.
4156 (regs_saved_in_regs): Use a VEC.
4157 (num_regs_saved_in_regs): Remove.
4158 (compare_reg_or_pc): New.
4159 (record_reg_saved_in_reg): Split out from...
4160 (dwarf2out_flush_queued_reg_saves): ... here.
4161 (clobbers_queued_reg_save): Update for VEC.
4162 (reg_saved_in): Likewise.
4163 (dwarf2out_frame_debug_init): Likewise.
4164 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
4165 (dwarf2out_frame_debug_cfa_register): Likewise.
4166
e2c9010a
EB
41672011-06-30 Eric Botcazou <ebotcazou@adacore.com>
4168
4169 PR tree-optimization/49572
4170 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
4171 type of the RHS instead of that of the LHS for the expression type.
4172
dbb07bbc
EB
41732011-06-30 Eric Botcazou <ebotcazou@adacore.com>
4174
4175 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
4176 unconditionally.
4177
1565af08
RG
41782011-06-30 Richard Guenther <rguenther@suse.de>
4179
4180 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
4181 * tree-ssa-structalias.c (create_variable_info_for): Do not
4182 add initial constraints for non-var-decls. Properly handle
4183 globals in other ltrans partitions.
4184 (intra_create_variable_infos): Manually create constraints for
4185 the fake no-alias parameter.
4186 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
4187 and assert there are no clones.
4188
42373e0b
RG
41892011-06-30 Richard Guenther <rguenther@suse.de>
4190
4191 PR tree-optimization/46787
4192 * tree-data-ref.c (dr_address_invariant_p): Remove.
4193 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 4194 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
4195 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
4196 invariant loads.
4197
7aa62ea1
MJ
41982011-06-30 Martin Jambor <mjambor@suse.cz>
4199
4200 PR tree-optimization/49094
4201 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
4202 (build_accesses_from_assign): Use it.
4203
f60f32b3
JJ
42042011-06-30 Jakub Jelinek <jakub@redhat.com>
4205
d9048d16
JJ
4206 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4207 handling of BUILT_IN_ASSUME_ALIGNED.
4208
f60f32b3
JJ
4209 PR debug/49364
4210 * dwarf2out.c (output_abbrev_section): Don't return early
4211 if abbrev_die_table_in_use is 1.
4212 (dwarf2out_finish): Instead don't call output_abbrev_section
4213 nor emit abbrev_section_label in that case.
4214
7cce15d4
NC
42152011-06-30 Nick Clifton <nickc@redhat.com>
4216
4217 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
4218 for the V850E.
4219
ce7e54ff
JJ
42202011-06-30 Jakub Jelinek <jakub@redhat.com>
4221
4222 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4223 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
4224
83197f37
IR
42252011-06-30 Ira Rosen <ira.rosen@linaro.org>
4226
4227 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
4228 both pattern and original statements if necessary.
4229 (vect_transform_loop): Likewise.
4230 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
4231 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
4232 Mark the pattern statement only if the original statement doesn't
4233 have its own uses.
4234 (process_use): Call vect_mark_relevant with additional parameter.
4235 (vect_mark_stmts_to_be_vectorized): Likewise.
4236 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
4237 (vect_analyze_stmt): Handle both pattern and original statements
4238 if necessary.
4239 (vect_transform_stmt): Don't store vectorized pattern statement
4240 in the original statement.
4241 (vect_is_simple_use_1): Use related pattern statement only if the
4242 original statement is irrelevant.
4243 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
4244
dbb07bbc 42452011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 4246
dbb07bbc
EB
4247 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
4248 option.
4249 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
4250 entry.
5c0d88e6
CF
4251 (TARGET_AVX128_OPTIMAL): New definition.
4252 * config/i386/i386.c (initial_ix86_tune_features): Initialize
4253 X86_TUNE_AVX128_OPTIMAL entry.
4254 (ix86_option_override_internal): Enable the generation
4255 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
4256 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
4257 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
4258
931050d0
EB
42592011-06-29 Eric Botcazou <ebotcazou@adacore.com>
4260
4261 PR tree-optimization/49539
4262 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
4263 names by means of stmt_references_abnormal_ssa_name.
4264 (associate_plusminus): Call can_propagate_from before propagating
4265 from definition statements.
4266 (ssa_forward_propagate_and_combine): Remove superfluous newline.
4267
dfedbe40
RG
42682011-06-29 Richard Guenther <rguenther@suse.de>
4269
4270 * doc/invoke.texi: Document -scev dump modifier.
4271 * tree-pass.h (TDF_SCEV): New dump flag.
4272 * tree-dump.c (dump_option_value_in): Add scev.
4273 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
4274 * tree-scalar-evolution.c: Likewise.
4275
3a86cfeb
NS
42762011-06-29 Nathan Sidwell <nathan@codesourcery.com>
4277
4278 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
4279 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
4280 (__gnu_unwind_pr_common): Reconstruct additional indirection
4281 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 4282
f3678bfb
UW
42832011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4284
4285 PR rtl-optimization/49114
4286 * reload.c (struct replacement): Remove SUBREG_LOC member.
4287 (push_reload): Do not set it.
4288 (push_replacement): Likewise.
4289 (subst_reload): Remove dead code.
4290 (copy_replacements): Remove assertion.
4291 (copy_replacements_1): Do not handle SUBREG_LOC.
4292 (move_replacements): Likewise.
4293 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
4294 Detect subregs via recursive descent instead of via SUBREG_LOC.
4295
433ba0a5 42962011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 4297
433ba0a5
GJL
4298 * config/avr/avr.c (avr_encode_section_info): Dispatch to
4299 default_encode_section_info.
4300
73f6eabc
RS
43012011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
4302
4303 PR tree-optimization/49545
4304 * builtins.c (get_object_alignment_1): Update function comment.
4305 Do not use DECL_ALIGN for functions, but test
4306 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
4307 * fold-const.c (get_pointer_modulus_and_residue): Don't check
4308 for functions here.
4309 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
4310
a0f33d3a
JJ
43112011-06-29 Jakub Jelinek <jakub@redhat.com>
4312
4313 PR debug/49567
0d5e0c1b
UB
4314 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
4315 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 4316
946c8b23 43172011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 4318
946c8b23 4319 PR target/34734
0d5e0c1b 4320 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
4321 about uninitialized data attributed 'progmem' from here...
4322 (avr_encode_section_info): ...to this new function.
4323 (TARGET_ENCODE_SECTION_INFO): New define.
4324 (avr_section_type_flags): For data in ".progmem.data", remove
4325 section flag SECTION_WRITE.
4326
9a63dee4 43272011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 4328
9a63dee4
GJL
4329 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
4330 _xmulhisi3_exit.
4331 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
4332 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
4333 (__umulhisi3): Ditto.
4334 * config/avr/avr.md (mulhisi3): New insn expender.
4335 (umulhisi3): New insn expender.
4336 (*mulhisi3_call): New insn.
4337 (*umulhisi3_call): New insn.
4338
4374ce45
JM
43392011-06-28 Joseph Myers <joseph@codesourcery.com>
4340
4341 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
4342
94759030
RH
43432011-06-28 Richard Henderson <rth@redhat.com>
4344
4345 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
4346 all code and arguments that handled pushes. Update all callers.
4347
d018b46e
RH
43482011-06-28 Richard Henderson <rth@redhat.com>
4349
4350 * config/arm/arm.c (arm_output_function_prologue): Don't call
4351 thumb1_output_function_prologue.
4352 (arm_expand_prologue): Avoid dead store.
4353 (number_of_first_bit_set): Use ctz_hwi.
4354 (thumb1_emit_multi_reg_push): New.
4355 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
4356 to emit the entire prologue as rtl.
4357 (thumb1_output_interwork): Split out from
4358 thumb1_output_function_prologue.
4359 (thumb1_output_function_prologue): Remove.
4360 (arm_attr_length_push_multi): Handle thumb1.
4361 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
4362 (prologue_thumb1_interwork): New.
4363 (*push_multi): Allow thumb1; use push_mult_memory_operand.
4364 * config/arm/predicates.md (push_mult_memory_operand): New.
4365
97269a23
EB
43662011-06-28 Eric Botcazou <ebotcazou@adacore.com>
4367
4368 * config/sparc/sync.md (*stbar): Delete.
4369 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
4370
4a9206ce
EB
43712011-06-28 Eric Botcazou <ebotcazou@adacore.com>
4372
4373 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
4374
6138f9bd
RO
43752011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4376
4377 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
4378 (TARGET_64BIT_DEFAULT): Define.
4379 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
4380 of tm_file.
4381 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
4382
a7d0d30f
JM
43832011-06-28 Joseph Myers <joseph@codesourcery.com>
4384
4385 * common.opt (in_lto_p): New Variable entry.
4386 * flags.h (in_lto_p): Move to common.opt.
4387 * gcc.c: Include params.h.
4388 (set_option_handlers): Also use common_handle_option and
4389 target_handle_option.
0d5e0c1b 4390 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
4391 * opts.c (debug_type_names): Move from toplev.c.
4392 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
4393 (common_handle_option): Return early in the driver for some options.
4394 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
4395 opts pointer.
a7d0d30f
JM
4396 * toplev.c (in_lto_p): Move to common.opt.
4397 (debug_type_names): Move to opts.c.
4398 * Makefile.in (OBJS): Remove opts.o.
4399 (OBJS-libcommon-target): Add opts.o.
4400 (gcc.o): Update dependencies.
4401
420863a9
KT
44022011-06-28 Kai Tietz <ktietz@redhat.com>
4403
0d5e0c1b 4404 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 4405
0498a2be
RR
44062011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4407
4408 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
4409 with '=' constraint modifier.
4410 (*divdf3_vfp): Likewise.
4411 ("*mulsf3_vfp"): Likewise.
4412 ("*muldf3_vfp"): Likewise.
4413 ("*mulsf3negsf_vfp"): Likewise.
4414 ("*muldf3negdf_vfp"): Likewise.
4415
4a68b724
NC
44162011-06-28 Nick Clifton <nickc@redhat.com>
4417
4418 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
4419 relaxation when performing an incremental link.
4420
72a32729
KT
44212011-06-28 Kai Tietz <ktietz@redhat.com>
4422
4423 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
4424 within BB from last to first.
4425
88a00ef7
JM
44262011-06-28 Joseph Myers <joseph@codesourcery.com>
4427
4428 * genattr-common.c: New. Based on genattr.c.
4429 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
4430 (MOSTLYCLEANFILES): Add insn-attr-common.h.
4431 (opts.o): Update dependencies.
4432 (.PRECIOUS): Add insn-attr-common.h.
4433 (simple_rtl_generated_h): Add insn-attr-common.h.
4434 (build/genattr-common.o): New.
4435 (genprogrtl): Add attr-common.
4436 * genattr.c (main): Include insn-attr-common.h. Don't generate
4437 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 4438 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 4439
880962ac
GJL
44402011-06-28 Georg-Johann Lay <avr@gjlay.de>
4441
4a68b724 4442 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 4443 avr-*-* and avr-*-rtems* targets.
4a68b724 4444
880962ac
GJL
4445 * config/avr/elf.h: New file.
4446 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
4447 (TARGET_ASM_SELECT_SECTION): Define.
4448 (INIT_SECTION_ASM_OP): Undefine.
4449 (FINI_SECTION_ASM_OP): Undefine.
4450 (READONLY_DATA_SECTION_ASM_OP): Undefine.
4451 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
4452 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
4453 * config/avr/avr.h:
4454 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
4455 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
4456 (MAX_OFILE_ALIGNMENT): Move to elf.h.
4457 (STRING_LIMIT): Move to elf.h.
4458 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
4459 (ASM_DECLARE_OBJECT_NAME): Remove.
4460 (ESCAPES): Remove.
4461 (ASM_OUTPUT_SKIP): Remove.
4462 (DWARF2_DEBUGGING_INFO): Remove.
4463 (OBJECT_FORMAT_ELF): Remove.
4464 (USER_LABEL_PREFIX): Remove.
4465 (ASM_OUTPUT_EXTERNAL): Remove.
4466 (ASM_OUTPUT_ASCII): Remove.
4467 (TYPE_ASM_OP): Remove.
4468 (SIZE_ASM_OP): Remove.
4469 (WEAK_ASM_OP): Remove.
4470 (STRING_ASM_OP): Remove.
4471 (SET_ASM_OP): Remove.
4472 (ASM_WEAKEN_LABEL): Remove.
4473 (TYPE_OPERAND_FMT): Remove.
4474 (ASM_DECLARE_FUNCTION_SIZE): Remove.
4475 (ASM_FINISH_DECLARE_OBJECT): Remove.
4476 (NO_DOLLAR_IN_LABEL): Remove.
4477 (ASM_GENERATE_INTERNAL_LABEL): Remove.
4478 (ASM_OUTPUT_CASE_LABEL): Remove.
4479 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
4480 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
4481 (gas_output_ascii): Remove.
4482 (gas_output_limited_string): Remove.
4483 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
4484 * config/avr/avr-protos.h
4485 (gas_output_ascii): Remove prototye.
4486 (gas_output_limited_string): Remove prototype.
4487
a1b5eb93
RE
44882011-06-27 Richard Earnshaw <rearnsha@arm.com>
4489
4490 PR target/48637
4491 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
4492 asm operands.
4493
310e71a8
JH
44942011-06-27 Jan Hubicka <jh@suse.cz>
4495
4a9206ce
EB
4496 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
4497 node instead of references in node.
310e71a8 4498
171da07a
RH
44992011-06-27 Richard Henderson <rth@redhat.com>
4500
4501 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
4502 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
4503 inside ifdef.
4504
dc2a58da
JJ
45052011-06-27 Jakub Jelinek <jakub@redhat.com>
4506
56300785
JJ
4507 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
4508
45d439ac
JJ
4509 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
4510 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
4511 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
4512 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
4513 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
4514 (evaluate_stmt, execute_fold_all_builtins): Handle
4515 BUILT_IN_ASSUME_ALIGNED.
4516 * tree-ssa-dce.c (propagate_necessity): Likewise.
4517 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4518 call_may_clobber_ref_p_1): Likewise.
4519 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
4520 (expand_builtin_assume_aligned): New function.
4521 * doc/extend.texi (__builtin_assume_aligned): Document.
4522
dc2a58da
JJ
4523 PR debug/49544
4524 * cselib.c (promote_debug_loc): If cselib_preserve_constants
4525 and l has two DEBUG_INSN owned locs instead of just one, adjust
4526 the second location's setting_insn too.
4527
0d72f628
RO
45282011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4529
4530 PR libmudflap/38738
4531 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
4532
bebd619e
NC
45332011-06-27 Nick Clifton <nickc@redhat.com>
4534
0d5e0c1b
UB
4535 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
4536 bit position of highest bit set into a count of the high zero bits.
bebd619e 4537
353b39fa
EB
45382011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4539
4540 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
4541
a7af037b
EB
45422011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4543
4544 PR lto/48492
4545 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
4546 to a NULL parent.
4547
1c86160a
RG
45482011-06-27 Richard Guenther <rguenther@suse.de>
4549
4550 PR tree-optimization/49394
4551 * passes.c (execute_one_pass): Restore current_pass after
4552 applying IPA transforms.
4553
5da49a9d
KT
45542011-06-27 Kai Tietz <ktietz@redhat.com>
4555
4556 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
4557 out of type precision after operation.
0d5e0c1b
UB
4558 (find_bswap): Take for limit value the integer auto-promotion
4559 into account.
5da49a9d 4560
9242213f
EB
45612011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4562
4563 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
4564 forward scan as well.
4565
db8b22ef
TG
45662011-06-27 Tristan Gingold <gingold@adacore.com>
4567
4568 PR target/44241
4569 * config/vms/vms-protos.h: New file.
4570 * config/vms/vms-crtlmap.map: New file.
4571 * config/vms/vms.c: New file.
4572 * config/vms/make-crtlmap.awk: New file.
4573 * config/vms/vms-crtl.h: File removed.
4574 * config/vms/vms-crtl-64.h: File removed.
4575 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
4576 * config/alpha/vms64.h: Do not include vms-crtl-64.h
4577 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
4578 clear some builtins on VMS. Calls vms_patch_builtins.
4579 (avms_asm_output_external): Remove.
4580 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
4581 (struct crtl_name_spec): Remove
4582 (DO_CTRL_NAMES): Remove.
4583 * config/ia64/vms.h (struct crtl_name_spec): Remove
4584 (DO_CTRL_NAMES): Remove.
4585 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
4586 clear some builtins on VMS. Calls vms_patch_builtins.
4587 (ia64_asm_output_external): Remove DO_CRTL_NAME.
4588 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 4589 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 4590
b213221d
TG
45912011-06-27 Tristan Gingold <gingold@adacore.com>
4592
4593 * config/alpha/alpha.c (alpha_end_function): Always generate .end
4594 directive on VMS.
4595
157b9300
EB
45962011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4597
4598 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
4599 the function receives nonlocal gotos.
4600
ccbf5bb4
RG
46012011-06-27 Richard Guenther <rguenther@suse.de>
4602
4603 PR tree-optimization/49536
4604 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4605 For non-scalar inner types use a scalar type according to
4606 the scalar inner mode.
4607
fe4cd14b
RG
46082011-06-27 Richard Guenther <rguenther@suse.de>
4609
4610 PR tree-optimization/49365
4611 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
4612
afc3f22f
RS
46132011-06-27 Richard Guenther <rguenther@suse.de>
4614
4615 PR tree-optimization/49169
4616 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
4617 the alignment of function decls.
4618
92590751 46192011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
4620
4621 PR target/47997
4622 * config/darwin.c (darwin_mergeable_string_section): Place string
4623 constants in '.cstring' rather than '.const' when CF/NSStrings are
4624 active.
4625
605354f3
EB
46262011-06-26 Eric Botcazou <ebotcazou@adacore.com>
4627
4628 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
4629 (emit_save_register_window): Likewise.
4630 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
4631 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
4632 Swap back %o7/%i7 in register naming.
4633
0e9197f5
IS
46342011-06-25 Iain Sandoe <iains@gcc.gnu.org>
4635
4636 PR driver/49371
4637 * config/darwin.c (darwin_override_options): Improve warning when
4638 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
4639 is given with fpie/fPIE.
4640 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
4641 * config/darwin9.h (PIE_SPEC): New.
53461199 4642
605354f3 46432011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
4644
4645 * timevar.c (timevar_print): Increase width for display of timevar
4646 name.
4647
f796c438
JJ
46482011-06-24 Jakub Jelinek <jakub@redhat.com>
4649
4650 PR c++/46400
4651 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
4652 instead of TYPE_CHAIN for chain_next for types.
4653
a7289eaf
RH
46542011-06-24 Richard Henderson <rth@redhat.com>
4655
4656 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
4657 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
4658 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
4659 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
4660 (sparc_flat_expand_prologue): Emit individual instructions
4661 instead of one of the above.
4662
c4b9a87e
ER
46632011-06-24 Easwaran Raman <eraman@google.com>
4664
4665 PR rtl-optimization/49429
4666 PR target/49454
4667 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
4668 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
4669 used to copy y into x.
4670 * calls.c (initialize_argument_information): Mark
4671 an argument addressable if it is passed by invisible reference.
4672 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
4673 if it is passed by reference.
4674
5ac6c59e
L
46752011-06-24 H.J. Lu <hongjiu.lu@intel.com>
4676
4677 PR rtl-optimization/49504
4678 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
4679 subtraction of a pointer in Pmode if pointers extend unsigned.
4680 (num_sign_bit_copies1): Likewise.
5ac6c59e 4681
b807e627
MJ
46822011-06-24 Martin Jambor <mjambor@suse.cz>
4683
4684 PR tree-optimizations/49516
4685 * tree-sra.c (sra_modify_assign): Choose the safe path for
4686 aggregate copies if we also did scalar replacements.
4687
9a1ea4b9
RR
46882011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4689
4690 PR target/49335
4691 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 4692 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 4693
949cfd0a
AK
46942011-06-24 Andi Kleen <ak@linux.intel.com>
4695
4696 * tree-sra.c (type_internals_preclude_sra_p): Add msg
4697 parameter. Split up ifs and report reason in *msg.
4698 (reject): Add.
4699 (find_var_candiate): Add msg variable.
4700 Split up ifs and report reason to reject.
4701 (find_param_candidates): Add msg variable.
4702 Pass msg to type_internals_preclude_sra_p.
4703
49e9c661 47042011-06-23 Jeff Law <law@redhat.com>
ad3577df 4705
b0c11403
JL
4706 PR middle-end/48770
4707 * reload.h (reload): Change to return a bool.
4708 * ira.c (ira): If requested by reload, run a fast DCE pass after
4709 reload has completed. Fix comment typo.
4710 * reload1.c (need_dce): New file scoped static.
4711 (reload): Set reload_completed here. Return whether or not a DCE
4712 pass after reload is needed.
4713 (delete_dead_insn): Set need_dce as needed.
4714
ad3577df
JL
4715 PR middle-end/49465
4716 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
4717 to detect threading through joiner block. If there was already
4718 an edge to the new target, then do not change the PHI nodes.
4719
7cf64710
JJ
47202011-06-23 Jakub Jelinek <jakub@redhat.com>
4721
4722 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
4723 get_pointer_alignment to see if base isn't sufficiently aligned.
4724
febb1302
JH
47252011-06-23 Jan Hubicka <jh@suse.cz>
4726
4727 PR tree-optimize/49373
4728 * tree-pass.h (all_late_ipa_passes): Declare.
4729 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
4730 (cgraph_optimize): Execute late passes; remove unreachable funcions
4731 after materialization.
4732 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
4733 LTOing.
febb1302
JH
4734 * passes.c (all_late_ipa_passes): Declare.
4735 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
4736 (init_optimization_passes): Move ipa_pta to late passes; schedule
4737 fixup_cfg at beggining of all_passes.
febb1302
JH
4738 (apply_ipa_transforms): New function.
4739 (execute_one_pass): When doing simple ipa pass, apply all transforms.
4740
4c77620d
JM
47412011-06-23 Joseph Myers <joseph@codesourcery.com>
4742
4743 * params.c: Include common/common-target.h. Don't include tm.h.
4744 (lang_independent_params): Move from toplev.c.
4745 (global_init_params): New.
4746 * params.h (global_init_params): Declare.
4747 * target.def (default_params): Move to common-target.def.
4748 * toplev.c (lang_independent_options): Remove.
4749 (lang_independent_params): Move to params.c.
4750 (general_init): Use global_init_params.
4751 * common/common-target.def (option_default_params): Move from
4752 target.def.
4753 * common/config/ia64/ia64-common.c: Include params.h.
4754 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4755 from ia64.c.
4756 * common/config/rs6000/rs6000-common.c: Include params.h.
4757 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4758 from rs6000.c.
4759 * common/config/sh/sh-common.c: Include params.h.
4760 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4761 from sh.c.
4762 * common/config/spu/spu-common.c: Include params.h.
4763 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4764 from spu.c.
4765 * config/ia64/ia64.c (ia64_option_default_params,
4766 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
4767 * config/rs6000/rs6000.c (rs6000_option_default_params,
4768 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
4769 * config/sh/sh.c (sh_option_default_params,
4770 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
4771 * config/spu/spu.c (spu_option_default_params,
4772 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
4773 * Makefile.in (OBJS): Remove params.o.
4774 (OBJS-libcommon-target): Add params.o.
4775 (params.o, $(common_out_object_file)): Update dependencies.
4776 * doc/tm.texi: Regenerate.
4777
6aad1e38
AM
47782011-06-23 Alan Modra <amodra@gmail.com>
4779
4780 PR bootstrap/49383
4781 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
4782 invocation for 2011-06-09 changes.
4783
4fb489e7
JJ
47842011-06-22 Jakub Jelinek <jakub@redhat.com>
4785
fb79f500
JJ
4786 PR libgomp/49490
4787 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
4788 use n ceil/ nthreads size for the first n % nthreads threads in the
4789 team instead of all threads except for the last few ones which
fb79f500
JJ
4790 get less work or none at all.
4791
4fb489e7
JJ
4792 PR debug/49496
4793 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
4794 uses.
4795
9c7c9f10
RG
47962011-06-22 Richard Guenther <rguenther@suse.de>
4797
4798 PR tree-optimization/49493
4799 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
4800 Refer to the alias target of variables.
4801 (associate_varinfo_to_alias_1): Remove.
4802 (ipa_pta_execute): Do not associate aliases with anything.
4803 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
4804 (cgraph_function_node): Likewise.
4805 (cgraph_function_or_thunk_node): Likewise.
4806 (varpool_variable_node): Likewise.
4807
7cf13d1f
NS
48082011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4809
0d5e0c1b 4810 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
4811 * config.gcc (arm*-*-linux*): Default to gnu tls.
4812 (arm*-*-*): Add --with-tls option.
4813 (all_defaults): Add 'tls'.
4814
78a8eb4e
RH
48152011-06-22 Richard Henderson <rth@redhat.com>
4816
4817 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
4818 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4819 (dwarf2out_frame_debug_cfa_window_save): Rename from
4820 dwarf2out_window_save; make static.
4821 * tree.h (dwarf2out_window_save): Don't declare.
4822
4823 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
4824 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4825 (emit_save_register_window): Rename from gen_save_register_window;
4826 emit the insn and add REG_CFA_* notes.
4827 (sparc_expand_prologue): Update to match.
4828 * config/sparc/sparc.md (save_register_window_1): Simplify from
4829 save_register_window<P:mode>.
4830
3b4c46d7
L
48312011-06-22 H.J. Lu <hongjiu.lu@intel.com>
4832
4833 PR target/49497
4834 * config/i386/i386.md (*lea_general_2): Always allow SImode.
4835 (*lea_general_2_zext): Likewise.
4836 (imul to lea peepholes): Use const359_operand and check
4837 TARGET_PARTIAL_REG_STALL.
4838
4839 * config/i386/predicates.md (const359_operand): New.
4840
4399cf59
MM
48412011-06-22 Michael Matz <matz@suse.de>
4842
4843 * cgraphunit.c (assemble_thunk): Use correct return type.
4844
31a0c825 48452011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 4846 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
4847
4848 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
4849 (neon_output_shift_immediate): Ditto.
4850 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
4851 prototype.
4852 (neon_output_shift_immediate): Ditto.
4853 * config/arm/neon.md (vashl<mode>3): Modified constraint.
4854 (vashr<mode>3_imm): New insn pattern.
4855 (vlshr<mode>3_imm): Ditto.
4856 (vashr<mode>3): Modified constraint.
4857 (vlshr<mode>3): Ditto.
4858 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
4859 predicate.
4860 (imm_for_neon_rshift_operand): Ditto.
4861 (imm_lshift_or_reg_neon): Ditto.
4862 (imm_rshift_or_reg_neon): Ditto.
4863
4864 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
4865
ddb555ed
JJ
48662011-06-22 Jakub Jelinek <jakub@redhat.com>
4867
36dc1a88
JJ
4868 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
4869 builtin calls even if likelyvalue is not CONSTANT.
4870 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
4871 Return get_value_for_expr of first operand
4872 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
4873 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4874 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
4875 their non-checking counterparts.
4876 (call_may_clobber_ref_p_1): Likewise.
4877 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
4878 like their non-checking counterparts.
4879 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4880 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
4881 like their non-checking counterparts.
4882 (find_func_clobbers): Likewise.
4883 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
4884 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
4885
41cd4957
JJ
4886 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
4887 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
4888 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
4889 of base type reference as argument.
4890 (resolve_addr_in_expr): Likewise. Fix keep computation.
4891 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
4892 (convert_descriptor_to_mode): ... this. For wider types convert to
4893 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
4894 (typed_binop): New function.
4895 (scompare_loc_descriptor, ucompare_loc_descriptor,
4896 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
4897 default to unsigned type instead of signed.
4898
ddb555ed
JJ
4899 PR debug/47858
4900 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
4901 (gimple_build_debug_source_bind_stat): New prototype.
4902 (gimple_build_debug_source_bind): Define.
4903 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
4904 gimple_debug_source_bind_get_value,
4905 gimple_debug_source_bind_get_value_ptr,
4906 gimple_debug_source_bind_set_var,
4907 gimple_debug_source_bind_set_value): New inlines.
4908 * gimple.c (gimple_build_debug_source_bind_stat): New function.
4909 * gimple-pretty-print.c (dump_gimple_debug): Handle
4910 GIMPLE_DEBUG_SOURCE_BIND.
4911 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
4912 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4913 * tree-parloops.c (eliminate_local_variables,
4914 separate_decls_in_region): Likewise.
4915 (separate_decls_in_region_debug): Renamed from
4916 separate_decls_in_region_debug_bind. Handle
4917 gimple_debug_source_bind_p.
4918 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
4919 prototypes.
4920 (DECL_HAS_DEBUG_ARGS_P): Define.
4921 (struct tree_function_decl): Add has_debug_args_flag field.
4922 * tree.c (debug_args_for_decl): New variable.
4923 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
4924 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
4925 (rewrite_debug_stmt_uses): New function.
4926 (rewrite_stmt): Use it to rewrite debug stmt uses.
4927 * rtl.def (DEBUG_PARAMETER_REF): New.
4928 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
4929 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
4930 DEBUG_PARAMETER_REF.
4931 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
4932 * print-rtl.c (print_rtx): Likewise.
4933 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
4934 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
4935 debug stmts in the first bb.
4936 * tree-inline.c (remap_ssa_name): If remapping default def
4937 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
4938 a source bind debug stmt.
4939 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
4940 (maybe_move_debug_stmts_to_successors): Likewise.
4941 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
4942 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
4943 debug args vector from old_decl to new_decl.
4944 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
4945 or modified parameters, add debug bind stmts before call
0d5e0c1b 4946 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
4947 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
4948 on DECL_DEBUG_EXPRs from debug args vector.
4949 (expand_debug_source_expr): New function.
4950 (expand_debug_locations): Use it for source bind insns.
4951 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
4952 * var-tracking.c (prepare_call_arguments): Add debug args
4953 to call_arguments if any.
4954 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
4955 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
4956 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
4957 (get_ref_die_offset, parameter_ref_descriptor): New functions.
4958 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
4959 (gen_subprogram_die): Handle parameters identified by
4960 DEBUG_PARAMETER_REF.
4961
ccdc2164
NS
49622011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4963
4964 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
4965 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
4966 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
4967 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
4968 (arm_tls_descseq_addr): New.
4969 (legitimize_tls_address): Add tlsdesc support.
4970 (arm_cannot_copy_insn_p): Check for tlscall.
4971 (arm_emit_tls_decoration): Likewise.
4972 * config/arm/arm.h (TARGET_GNU2_TLS): New.
4973 (OPTION_DEFAULT_SPECS): Add with-tls support.
4974 * config/arm/arm.md (R1_REGNUM): Define.
4975 (tlscall): New.
4976 * config/arm/arm.opt (tls_type): New enumeration type and values.
4977 (mtls-dialect): New switch.
4978 * config/arm/arm-opts.h (enum tls_type): New.
4979
70e41a6a
NP
49802011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
4981
4982 * attribs.c (register_attribute): Added assert to check that all
4983 attribute specs are registered with a name that is not empty and
4984 does not start with '_'.
4985 (decl_attributes): Avoid the lookup of the "naked" attribute spec
4986 if the function has no attributes.
4987 * tree.c (is_attribute_with_length_p): Removed.
4988 (is_attribute_p): Removed.
0d5e0c1b 4989 (private_is_attribute_p): New.
70e41a6a
NP
4990 (private_lookup_attribute): New.
4991 (lookup_attribute): Removed.
4992 (lookup_ident_attribute): New.
4993 (remove_attribute): Require the first argument to be in the form
4994 'text', not '__text__'. Updated asserts.
4995 (merge_attributes): Use lookup_ident_attributes instead of
4996 lookup_attribute.
4997 (merge_dllimport_decl_attributes): Use remove_attribute.
4998 (attribute_list_contained): Likewise.
4999 (attribute_list_equal): Immediately return 1 if the arguments are
5000 identical pointers.
5001 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
5002 'int'. Require the first argument to be in the form 'text', not
5003 '__text__'. Require the second argument to be an identifier.
5004 (lookup_attribute): Made inline. Require the first argument to be
5005 in the form 'text', not '__text__'.
5006 (private_is_attribute_p, private_lookup_attribute): New.
5007 Updated comments.
0d5e0c1b 5008
e0a8ecf2
AM
50092011-06-21 Andrew MacLeod <amacleod@redhat.com>
5010
5011 * builtins.c: Add sync_ or SYNC__ to builtin names.
5012 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
5013 * omp-low.c: Add sync_ or SYNC__ to builtin names.
5014
663827d3 50152011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 5016
663827d3
GJL
5017 PR target/33049
5018 * config/avr/avr.md (extzv): New expander.
5019 (*extzv): New insn.
5020 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
5021 * config/avr/constraints.md (C04): New constraint.
5022 * doc/md.texi (Machine Constraints): Document it.
5023
146aef0b
JJ
50242011-06-21 Jakub Jelinek <jakub@redhat.com>
5025
5026 PR middle-end/49489
5027 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
5028 unsignedp argument instead of 1 for clrsb_optab.
5029 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
5030 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
5031 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
5032 * optabs.c (widen_leading): Call widen_operand and expand_unop
5033 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 5034 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 5035
c0503294
GJL
50362011-06-21 Georg-Johann Lay <avr@gjlay.de>
5037
5038 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
5039
3801c801
BS
50402011-06-21 Bernd Schmidt <bernds@codesourcery.com>
5041
0bddee8e
BS
5042 * gensupport.c (add_define_attr): New static function.
5043 (is_predicable): Allow multi-alternative lists for the "predicable"
5044 attribute.
5045 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
5046 (process_one_cond_exec): Call alter_attrs_for_insn.
5047 * doc/md.texi (Defining Attributes): Mention some standard names.
5048 (Conditional Execution): Update documentation for "predicable".
5049
3801c801
BS
5050 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
5051 __builtin_clrsbll): Document.
5052 * doc/rtl.texi (clrsb): New entry.
5053 * optabs.c (widen_leading): Renamed from widen_clz. New argument
5054 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
5055 (expand_unop): Handle clrsb_optab.
5056 (init_optabs): Initialize it.
5057 * optabs.h (enum optab_index): New entry OTI_clrsb.
5058 (clrsb_optab): Define.
5059 * genopinit.c (optabs): Add an entry for it.
5060 * builtins.c (expand_builtin): Handle clrsb builtin functions.
5061 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
5062 BUILT_IN_CLRSBLL): New.
5063 * rtl.def (CLRSB): New code.
5064 * dwarf2out.c (mem_loc_descriptor): Handle it.
5065 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5066 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
5067 and popcount.
5068 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
5069 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
5070 (__ctzDI2): Move declaration.
5071 * config/bfin/bfin.md (clrsbsi2): New expander.
5072 (signbitssi2): Use the CLRSB rtx.
5073 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
5074 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
5075
55f01229
RG
50762011-06-21 Richard Guenther <rguenther@suse.de>
5077
637c11bd 5078 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 5079
5181cd6a
IR
50802011-06-21 Ira Rosen <ira.rosen@linaro.org>
5081
5082 PR tree-optimization/49478
5083 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
5084 with constant operand.
5085
e4ee3d70
RG
50862011-06-21 Richard Guenther <rguenther@suse.de>
5087
5088 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 5089
7b7ec6c5
RG
50902011-06-21 Richard Guenther <rguenther@suse.de>
5091
5092 PR tree-optimization/49483
5093 * tree-vect-stmts.c (vectorizable_assignment): Also handle
5094 VIEW_CONVERT_EXPR conversions.
5095
1b916ca6
JM
50962011-06-21 Joseph Myers <joseph@codesourcery.com>
5097
5098 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
5099 * config/avr/avr-tables.opt: New file (generated).
5100 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
5101 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
5102 avr-mcus.def.
5103 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
5104 (avr_option_override): Don't process -mmcu= argument here. Set
5105 avr_current_device using avr_mcu_index.
637c11bd 5106 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
5107 * config/avr/avr.opt (mmcu=): Use Enum.
5108 * config/avr/t-avr (avr-devices.o): Update dependencies.
5109 ($(srcdir)/config/avr/avr-tables.opt): New.
5110 * target.def (help): Remove.
5111 * doc/tm.texi.in (TARGET_HELP): Remove.
5112 * doc/tm.texi: Regenerate.
5113 * opts.c: Don't include target.h.
5114 (common_handle_option): Don't call targetm.help.
5115 * system.h (TARGET_HELP): Poison.
5116 * Makefile.in (opts.o): Update dependencies.
5117
7ecfa34f
RO
51182011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5119
5120 * config/usegld.h: New file.
5121 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
5122 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 5123 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
5124 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
5125 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
5126 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
5127 Define.
7ecfa34f
RO
5128 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
5129 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
5130 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
5131 (STACK_CHECK_STATIC_BUILTIN): Define.
5132 * config/sol2.opt (compat-bsd): Remove.
5133 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
5134 * config/sol2-bi.h: New file.
5135 * config/sol2-gld.h: Remove.
5136 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
5137 (NO_DBX_BNSYM_ENSYM): Remove.
5138 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5139 (STACK_CHECK_STATIC_BUILTIN): Remove.
5140 Test USE_GLD instead of TARGET_GNU_LD.
5141 * config/i386/sol2-10.h: Rename to ...
5142 * config/i386/sol2-bi.h .. this.
5143 (SUBTARGET_EXTRA_SPECS): Redefine.
5144 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
5145 (MULTILIB_DEFAULTS): Remove.
5146 (DEFAULT_ARCH32_P): Define.
5147 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
5148 (ARCH64_SUBDIR): Define.
5149 Test USE_GLD instead of TARGET_GNU_LD.
5150 (I386_EMULATION): Rename to ...
5151 (ARCH32_EMULATION): ... this.
5152 (X86_64_EMULATION): Rename to ...
5153 (ARCH64_EMULATION): ... this.
5154 (TARGET_LD_EMULATION): Remove.
5155 (LINK_ARCH_SPEC): Remove.
5156 * config/i386/sol2-gas.h: Remove.
5157 * config/i386/t-sol2-10: Rename to ...
5158 * config/i386/t-sol2-64: ... this.
5159 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
5160 (AS_SPARC64_FLAG): Define.
5161 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
5162 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
5163 depending on TARGET_CPU_DEFAULT.
5164 (CPP_CPU_SPEC): Redefine.
5165 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
5166 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
5167 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
5168 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
5169 ASM_ARCH_DEFAULT_SPEC): Redefine.
5170 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
5171 LINK_ARCH_DEFAULT_SPEC.
5172 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
5173 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
5174 (ARCH64_SUBDIR): Define.
5175 (LINK_ARCH64_SPEC): Redefine.
5176 (CC1_SPEC): Redefine.
5177 (OPTION_DEFAULT_SPECS): Redefine.
5178 (MULTILIB_DEFAULTS): Define.
5179 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
5180 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
5181 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
5182 (NO_DBX_BNSYM_ENSYM): Remove.
5183 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5184 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
5185 (TARGET_ASM_NAMED_SECTION): Likewise.
5186 (STACK_CHECK_STATIC_BUILTIN): Remove.
5187 * config/sparc/sol2-bi.h: Remove.
5188 * config/sparc/sol2-gas-bi.h: Remove.
5189 * config/sparc/sol2-gas.h: Remove.
5190 * config/sparc/sol2-gld-bi.h: Remove.
5191 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
5192 common parts ...
5193 (*-*-solaris2*): ... here.
5194
4b583c43 51952011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 5196
4b583c43 5197 PR other/43564
637c11bd
UB
5198 * ipa-inline.c (can_inline_edge_p): Check
5199 !DECL_DISREGARD_INLINE_LIMITS.
5200
3bb556ad 52012011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 5202
3bb556ad
CB
5203 PR middle-end/49139
5204 * cgraphunit.c (process_function_and_variable_attributes): warn when
5205 always_inline functions that are not inline.
637c11bd
UB
5206 * ipa-inline-transform.c (inline_transform): Always call
5207 optimize_inline.
5208 * tree-inline.c (tree_inlinable_function_p): Use error instead
5209 of sorry.
3bb556ad 5210 (expand_call_inline): Likewise.
637c11bd 5211
f1ee724c
JJ
52122011-06-21 Jakub Jelinek <jakub@redhat.com>
5213
5214 * Makefile.in (dg_target_exps): Set.
5215 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
5216 instead of 7, try to divide it more evenly.
5217
52182011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 5219
931050d0 5220 PR target/49089
97ef5ae6
CF
5221 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
5222 (avx256_split_unaligned_store): New definition.
5223 (ix86_option_override_internal): Enable avx256 unaligned load/store
5224 splitting only when avx256_split_unaligned_load/store is set.
5225
998c75b6
BS
52262011-06-20 Bernd Schmidt <bernds@codesourcery.com>
5227
5228 * regrename.c (scan_rtx_reg): Handle the case where we write to an
5229 open chain in a smaller mode without failing the entire block.
5230
3a769784
AM
52312011-06-21 Alan Modra <amodra@gmail.com>
5232
5233 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
5234 CONST high part large-toc address.
5235 (rs6000_tls_referenced_p): Make static.
5236 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
5237
c2954af9
RR
52382011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5239
5240 PR target/49385
5241 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
5242 one of the operands is a register.
5243
a95015b6
KT
52442011-06-20 Kai Tietz <ktietz@redhat.com>
5245
637c11bd
UB
5246 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
5247 operations in combination with binary and.
a95015b6 5248
49a30d00
BS
52492011-06-20 Bernd Schmidt <bernds@codesourcery.com>
5250
5251 * regrename.c (do_replace): Don't update notes.
5252
3bae1d98
AM
52532011-06-20 Alan Modra <amodra@gmail.com>
5254
5255 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
5256 of toc-relative address in CONST.
5257 (rs6000_delegitimize_address): Recognize changed address.
5258 (rs6000_legitimize_reload_address): Likewise.
5259 (rs6000_emit_move): Don't force these constants to memory.
5260 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
5261 toc-relative address in CONST.
5262 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
5263 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
5264
10937b0c
L
52652011-06-18 H.J. Lu <hongjiu.lu@intel.com>
5266
637c11bd 5267 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
5268 (count_trailing_zeros): Likewise.
5269
0c587260
L
52702011-06-18 H.J. Lu <hongjiu.lu@intel.com>
5271
5272 PR other/49325
5273 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
5274 .init_array can be used with .ctors on targets.
5275 * configure: Regenerated.
5276
c020c92b
EB
52772011-06-18 Eric Botcazou <ebotcazou@adacore.com>
5278
5279 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
5280 if the element type is volatile.
5281
cd35bcf7
JH
52822011-06-18 Jan Hubicka <jh@suse.cz>
5283
5284 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
5285 extra name aliases.
5286 (lto_symtab_resolve_can_prevail_p): Likewise.
5287 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
5288 * cgraphbuild.c (record_reference): Remove extra body alias code.
5289 (mark_load): Likewise.
5290 (mark_store): Likewise.
5291 * cgraph.h (varpool_node): Remove extra_name filed;
5292 add alias_of and extraname_alias.
5293 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
5294 (varpool_alias_aliased_node): New inline function.
5295 (varpool_variable_node): New function.
5296 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
5297 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
5298 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
5299 (input_varpool_node): Likewise.
5300 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
5301 (varpool_externally_visible_p): Remove extra body alias code.
5302 (function_and_variable_visibility): Likewise.
5303 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
5304 (ipa_pta_execute): Use it.
5305 * varpool.c (varpool_remove_node): Remove extra name alias code.
5306 (varpool_mark_needed_node): Likewise.
5307 (varpool_analyze_pending_decls): Analyze aliases.
5308 (assemble_aliases): New functoin.
5309 (varpool_assemble_decl): Use it.
5310 (varpool_create_variable_alias): New function.
5311 (varpool_extra_name_alias): Rewrite.
5312 (varpool_for_node_and_aliases): New function.
5313
c96b4102
JJ
53142011-06-18 Jakub Jelinek <jakub@redhat.com>
5315
5316 PR target/49411
5317 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
5318 last_arg_constant and last argument doesn't match its predicate,
5319 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
5320 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
5321 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
5322 spelling of error message.
5323 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
5324 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
5325 const_0_to_255_operand instead of const_int_operand.
5326
5327 Revert:
5328 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5329
5330 * config/i386/sse.md (blendbits): Remove mode attribute.
5331 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5332 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5333 Check integer value of operand 3 in insn constraint.
5334
9a2091cd
HPN
53352011-06-17 Hans-Peter Nilsson <hp@axis.com>
5336
5337 PR rtl-optimization/48542
5338 * reload.c (find_equiv_reg): Stop looking when finding a
5339 setjmp-type call.
5340 * reload1.c (reload_as_needed): Invalidate all reload
5341 registers when crossing a setjmp-type call.
5342
361b51c0
JL
53432011-06-16 Jeff Law <law@redhat.com>
5344
5345 * tree-ssa-threadupdate.c (struct redirection_data): New field
5346 intermediate_edge.
5347 (THREAD_TARGET2): Define.
637c11bd 5348 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
5349 (lookup_redirection_data): Drop useless argument. Extract the
5350 outgoing_edge and intermediate edge from E. Callers updated.
5351 (copy_phi_args, update_destination_phis): New functions.
5352 (fix_duplicate_block_edges): Likewise.
5353 (create_edge_and_update_destination_phis): Duplicate all the edges
5354 hung off e->aux. Use copy_phi_args.
5355 (create_duplicates): Use fix_duplicate_block_edges.
5356 (fixup_template_block): Likewise.
5357 (redirect_edges): If necessary, redirect the joiner block's incoming
5358 edge to the duplicate of the joiner block.
5359 (thread_block): Don't muck up loops when threading through a joiner
5360 block.
637c11bd 5361 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
5362 (mark_threaded_blocks, register_jump_thread): Likewise.
5363 * tree-flow.h (register_jump_thread): Add new argument. Callers
5364 updated.
5365 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
5366 (thread_across_edge): Handle threading through a joiner block.
637c11bd 5367
ee460e75
MJ
53682011-06-16 Martin Jambor <mjambor@suse.cz>
5369
5370 PR tree-optimization/49343
5371 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
5372 calculate offset, provide 2nd operand for the new COMPONENT_REF.
5373
a285ba2e
IS
53742011-06-16 Iain Sandoe <iains@gcc.gnu.org>
5375
5376 * config/darwin-protos.h (machopic_select_rtx_section): Move to
5377 inside RTX_CODE ifdef.
5378
0703f020
TV
53792011-06-16 Tom de Vries <tom@codesourcery.com>
5380
5381 PR target/45098
637c11bd
UB
5382 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
5383 Disallow NULL pointer for pointer arithmetic.
0703f020 5384
900c07da
RR
53852011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5386
5387 PR target/49398
5388 Revert.
5389 2011-06-10 Wei Guozhi <carrot@google.com>
5390
5391 PR target/45335
5392 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5393 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5394 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5395 related peephole2.
5396 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5397 related peephole2.
5398 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5399 (arm_legitimate_ldrd_p): New prototype.
5400 (arm_output_ldrd): New prototype.
5401 * config/arm/arm.c (arm_check_ldrd_operands): New function.
5402 (arm_legitimate_ldrd_p): New function.
5403 (arm_output_ldrd): New function.
5404
c020c92b 54052011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
5406
5407 PR middle-end/46500
5408 * doc/tm.texi.in: Update Copyright date.
5409 * doc/tm.texi: Regenerate.
5410 * targhooks.c (default_setup_incoming_varargs): Replace
5411 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5412 (default_pretend_outgoing_varargs_named): Likewise.
5413 (hook_pass_by_reference_must_pass_in_stack): Likewise.
5414 (hook_callee_copies_named): Likewise.
5415 (default_function_arg_advance): Likewise.
5416 (default_function_arg): Likewise.
5417 (default_function_incoming_arg): Likewise.
5418 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5419 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5420 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5421 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5422 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5423 * targhooks.h (default_setup_incoming_varargs): Likewise.
5424 (default_pretend_outgoing_varargs_named): Likewise.
5425 (hook_pass_by_reference_must_pass_in_stack): Likewise.
5426 (hook_callee_copies_named): Likewise.
5427 (default_function_arg_advance): Likewise.
5428 (default_function_arg): Likewise.
5429 (default_function_incoming_arg): Likewise.
5430 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5431 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5432 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5433 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5434 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5435 * target.def (pass_by_reference): Likewise.
5436 (setup_incoming_varargs, strict_argument_naming): Likewise.
5437 (pretend_outgoing_varargs_named, callee_copies): Likewise.
5438 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
5439 (function_incoming_arg): Likewise.
5440 * target.h: Don't include "tm.h" .
5441 (cumulative_args_t): New typedef.
5442 [GCC_TM_H] (get_cumulative_args): New static inline function.
5443 [GCC_TM_H] (pack_cumulative_args): Likewise.
5444 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
5445 argument type with cumulative_args_t.
5446 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
5447 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
5448 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
5449 (frv_arg_partial_bytes, frv_function_arg): Likewise.
5450 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
5451 (frv_function_arg_1): Likewise.
5452 * config/s390/s390.c (s390_pass_by_reference): Likewise.
5453 (s390_function_arg_advance, s390_function_arg): Likewise.
5454 * config/m32c/m32c.c (m32c_function_arg): Likewise.
5455 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
5456 (m32c_strict_argument_naming): Likewise.
5457 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
5458 (spu_function_arg_advance): Likewise.
5459 (spu_setup_incoming_varargs): Likewise. Make static.
5460 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
5461 Remove prototype.
5462 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
5463 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5464 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
5465 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
5466 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
5467 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
5468 (mep_pass_by_reference, mep_function_arg): Likewise.
5469 (mep_function_arg_advance): Likewise.
5470 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
5471 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
5472 (m32r_function_arg, m32r_function_arg_advance): Likewise.
5473 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
5474 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
5475 (ix86_function_arg, ix86_pass_by_reference): Likewise.
5476 (ix86_setup_incoming_varargs): Likewise.
5477 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
5478 (sh_strict_argument_naming): Likewise.
5479 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
5480 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
5481 (sh_function_arg_advance, sh_function_arg): Likewise.
5482 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
5483 (pdp11_function_arg_advance): Likewise.
5484 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
5485 Likewise.
5486 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
5487 * config/avr/avr.c (avr_function_arg): Likewise.
5488 (avr_function_arg_advance): Likewise.
5489 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
5490 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
5491 (xtensa_function_arg_1): Likewise.
637c11bd
UB
5492 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
5493 Likewise.
d5cc9181
JR
5494 (xstormy16_function_arg): Likewise.
5495 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
5496 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
5497 (fr30_function_arg_advance): Likewise.
5498 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
5499 (lm32_function_arg, lm32_function_arg_advance): Likewise.
5500 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
5501 (moxie_function_arg, moxie_function_arg_advance): Likewise.
5502 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
5503 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
5504 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
5505 (cris_function_arg, cris_function_incoming_arg): Likewise.
5506 (cris_function_arg_advance, cris_function_arg_1): Likewise.
5507 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
5508 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
5509 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
5510 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
5511 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
5512 (mn10300_arg_partial_bytes): Likewise.
5513 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
5514 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
5515 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
5516 (ia64_function_arg_1): Likewise.
5517 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
5518 (m68k_function_arg): Likewise.
5519 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
5520 (rs6000_function_arg, setup_incoming_varargs): Likewise.
5521 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
5522 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
5523 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
5524 (picochip_arg_advance): Likewise.
5525 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
5526 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
5527 (mcore_function_arg_advance): Likewise.
5528 * config/score/score.c (score_pass_by_reference): Likewise.
5529 (score_function_arg_advance): Likewise.
5530 (score_arg_partial_bytes): Likewise. Make static.
5531 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
5532 * config/arm/arm.c (arm_arg_partial_bytes): Replace
5533 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5534 (arm_function_arg, arm_function_arg_advance): Likewise.
5535 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
5536 * config/pa/pa.c (pa_pass_by_reference): Likewise.
5537 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
5538 (pa_function_arg): Likewise.
5539 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
5540 (mips_function_arg, mips_function_arg_advance): Likewise.
5541 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
5542 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
5543 * config/vax/vax.c (vax_function_arg): Likewise.
5544 (vax_function_arg_advance): Likewise.
5545 * config/h8300/h8300.c (h8300_function_arg): Likewise.
5546 (h8300_function_arg_advance): Likewise.
5547 * config/v850/v850.c (v850_pass_by_reference): Likewise.
5548 (v850_strict_argument_naming, v850_function_arg): Likewise.
5549 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
5550 (v850_setup_incoming_varargs): Likewise.
5551 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
5552 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
5553 (mmix_function_arg, mmix_pass_by_reference): Likewise.
5554 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
5555 with const void *.
5556 * config/bfin/bfin.c (setup_incoming_varargs): Replace
5557 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5558 (bfin_function_arg_advance, bfin_function_arg): Likewise.
5559 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
5560 * calls.c (emit_call_1): Change type of args_so_far to
5561 cumulative_args_t. Changed all callers.
5562 (initialize_argument_information): Likewise.
5563 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
5564 * dse.c (get_call_args): Likewise.
5565 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
5566 * function.c (pass_by_reference, reference_callee_copied): Likewise.
5567 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
5568 New member args_so_far_v. Changed all users.
5569 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
5570 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5571 * config/mips/mips.c (mips_output_args_xfer): Likewise.
5572 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5573 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
5574 * config/microblaze/microblaze.c (microblaze_expand_prologue):
5575 Likewise.
d5cc9181
JR
5576 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
5577 m32r_pass_by_reference.
5578
51312233
IR
55792011-06-16 Ira Rosen <ira.rosen@linaro.org>
5580
5581 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
5582 argument to be a VEC of statements.
637c11bd
UB
5583 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
5584 assert that pattern statements have to have their vector type set.
51312233
IR
5585 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
5586 Change the first argument to be a VEC of statements. Update
5587 documentation.
5588 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
5589 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
5590 (vect_recog_widen_mult_pattern): Change the first argument to be a
5591 VEC of statements. Update documentation. Check that the constant is
5592 INTEGER_CST. Support multiplication by a constant that fits an
5593 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
5594 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
5595 call. Handle additional pattern statements if necessary.
5596
fd4df33d
NC
55972011-06-16 Nick Clifton <nickc@redhat.com>
5598
5599 PR target/49427
5600 * config.gcc: Set cpu_type to v850 for any V850 architecture.
5601 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
5602 md_file, extra_modes, out_file and extra_options are these are all
5603 deduced from cpu_type.
5604
fbd05da0
GJL
56052011-06-16 Georg-Johann Lay <avr@gjlay.de>
5606
5607 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
5608 truncation mask to 63.
5609
0ad8bb3b
GJL
56102011-06-16 Georg-Johann Lay <avr@gjlay.de>
5611
5612 PR target/49313
5613 PR target/29524
5614 * longlong.h: Add AVR support:
5615 (count_leading_zeros): New macro.
5616 (count_trailing_zeros): New macro.
5617 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
5618 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
5619 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
5620 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
5621 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
5622 (LIB2FUNCS_EXCLUDE): Add _clz.
5623 * config/avr/libgcc.S (XCALL): Move up in file.
5624 (XJMP): New C Macro.
5625 (DEFUN): New asm macro.
5626 (ENDF): New asm macro.
5627 (__ffssi2): New function.
5628 (__ffshi2): New function.
5629 (__loop_ffsqi2): New function.
5630 (__ctzsi2): New function.
5631 (__ctzhi2): New function.
5632 (__clzdi2): New function.
5633 (__clzsi2): New function.
5634 (__clzhi2): New function.
5635 (__paritydi2): New function.
5636 (__paritysi2): New function.
5637 (__parityhi2): New function.
59c1e10b 5638 (__parityqi2): New function.
0ad8bb3b
GJL
5639 (__popcounthi2): New function.
5640 (__popcountsi2): New function.
5641 (__popcountdi2): New function.
5642 (__popcountqi2): New function.
5643 (__bswapsi2): New function.
5644 (__bswapdi2): New function.
5645 (__ashldi3): New function.
5646 (__ashrdi3): New function.
5647 (__lshrdi3): New function.
5648 Fix suspicous lines.
5649
12430896
RG
56502011-06-16 Richard Guenther <rguenther@suse.de>
5651
5652 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
5653 the same as x != 0.
637c11bd
UB
5654 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
5655 to (bool) X & 1.
12430896
RG
5656 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
5657 equality compares against zero for the lower bit.
5658
09302442
JJ
56592011-06-16 Jakub Jelinek <jakub@redhat.com>
5660
5661 PR tree-optimization/49419
5662 * tree-vrp.c (execute_vrp): Call init_range_assertions
5663 before estimate_numbers_of_iterations, call
5664 free_number_of_iterations_estimates before calling
5665 remove_range_assertions.
5666
81c41166
RE
56672011-06-16 Revital Eres <revital.eres@linaro.org>
5668
5669 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
5670 (struct partial_schedule): Add rows_length field.
5671 (verify_partial_schedule): Check rows_length.
5672 (ps_insert_empty_row): Handle rows_length.
5673 (create_partial_schedule): Likewise.
5674 (free_partial_schedule): Likewise.
5675 (reset_partial_schedule): Likewise.
5676 (create_ps_insn): Remove rest_count argument.
5677 (remove_node_from_ps): Update rows_length.
5678 (add_node_to_ps): Update rows_length and call create_ps_insn
5679 without passing row_rest_count.
5680 (rotate_partial_schedule): Update rows_length.
5681
d24dc7b3
RE
56822011-06-16 Revital Eres <revital.eres@linaro.org>
5683
5684 * ddg.c (add_intra_loop_mem_dep): New function.
5685 (build_intra_loop_deps): Call it.
5686
361b51c0 56872011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
5688
5689 * df-problems.c (df_lr_local_compute): Manually CSE
5690 PIC_OFFSET_TABLE_REGNUM.
5691 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
5692 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
5693
85ce9375
JH
56942011-06-13 Jan Hubicka <jh@suse.cz>
5695
5696 * cgraphunit.c (handle_alias_pairs): New function.
5697 (cgraph_finalize_compilation_unit): Use it.
5698 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
5699 as externally visible.
5700
a577c405
RG
57012011-06-15 Richard Guenther <rguenther@suse.de>
5702
5703 * expr.c (expand_expr_real_2): Reduce all integral types to
5704 bitfield precision.
5705 (expand_expr_real_1): Likewise.
5706
93536c97
MJ
57072011-06-15 Martin Jambor <mjambor@suse.cz>
5708
5709 PR tree-optimization/48613
5710 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
5711 ipa_node_params_vector is NULL.
fd4df33d 5712
ba45cfc4
JJ
57132011-06-15 Jakub Jelinek <jakub@redhat.com>
5714
5715 PR debug/49382
5716 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
5717 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
5718 location in the list, even if it is modified before first real insn.
ba45cfc4 5719 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 5720 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 5721
6fc5966f
AM
57222011-06-15 Alexander Monakov <amonakov@ispras.ru>
5723
5724 PR target/49349
5725 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5726 (fence_to_rewind). Use it to notice when bookkeeping will be placed
5727 above a fence. Update comments.
5728 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
5729 placed just above it. Do not allow NULL place_to_insert.
5730
9d5e7640
IR
57312011-06-15 Ira Rosen <ira.rosen@linaro.org>
5732
5733 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
5734 (slpeel_tree_peel_loop_to_edge): Don't call
5735 remove_dead_stmts_from_loop.
5736 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5737 remove irrelevant pattern statements. For irrelevant statements
5738 check if it is the last statement of a detected pattern, use
5739 corresponding pattern statement instead.
5740 (destroy_loop_vec_info): No need to remove pattern statements,
5741 only free stmt_vec_info.
5742 (vect_transform_loop): For irrelevant statements check if it is
5743 the last statement of a detected pattern, use corresponding
5744 pattern statement instead.
5745 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
5746 pattern statements. Set basic block for the new statement.
5747 (vect_pattern_recog): Update documentation.
5748 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
5749 operands of pattern statements.
5750 (vectorizable_call): Fix printing. In case of a pattern statement
5751 use the lhs of the original statement when creating a dummy
5752 statement to replace the original call.
5753 (vect_analyze_stmt): For irrelevant statements check if it is
5754 the last statement of a detected pattern, use corresponding
5755 pattern statement instead.
5756 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
5757 statements use gsi of the original statement.
5758
677f3fa8
JM
57592011-06-14 Joseph Myers <joseph@codesourcery.com>
5760
5761 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
5762 common/common-target-def.h.
5763 * target.def (default_target_flags, handle_option,
5764 supports_split_stack, optimization_table, init_struct,
5765 except_unwind_info, unwind_tables_default, have_named_sections):
5766 Move to common/common-target.def.
5767 * target.h (enum opt_levels, struct default_options): Move to
5768 common/common-target.h.
5769 * targhooks.c (default_except_unwind_info,
5770 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5771 default_target_handle_option, empty_optimization_table): Move to
5772 common/common-targhooks.c.
5773 * targhooks.h (default_except_unwind_info,
5774 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5775 default_target_handle_option, empty_optimization_table): Move to
5776 common/common-targhooks.h.
5777 * common/common-target-def.h: Include common/common-targhooks.h.
5778 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
5779 defined.
5780 * common/common-target.def (handle_option, option_init_struct,
5781 option_optimization_table, default_target_flags,
5782 except_unwind_info, supports_split_stack, unwind_tables_default,
5783 have_named_sections): Move from target.def.
5784 (HOOK_PREFIX): Undefine at end of file.
5785 * common/common-target.h: Include input.h.
5786 (enum opt_levels, struct default_options): Move from target.h.
5787 * common/common-targhooks.c, common/common-targhooks.h: New.
5788 * config.gcc (target_has_targetm_common): Default to yes.
5789 (moxie*): Set target_has_targetm_common=no.
5790 (hppa*-*-*): Don't set target_has_targetm_common=yes.
5791 * doc/tm.texi: Regenerate.
5792 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
5793 (C_TARGET_DEF_H): Add common/common-targhooks.h.
5794 (GCC_OBJS): Remove vec.o.
5795 (OBJS): Remove hooks.o and vec.o.
5796 (OBJS-libcommon-target): Add vec.o, hooks.o and
5797 common/common-targhooks.o.
5798 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
5799 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
5800 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
5801 cfglayout.o, $(out_object_file), $(common_out_object_file)):
5802 Update dependencies.
5803 (common/common-targhooks.o): New.
637c11bd 5804 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
5805 * common/config/pa/pa-common.c: Include more headers. Take
5806 copyright dates from pa.c.
5807 (pa_option_optimization_table, pa_handle_option,
5808 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
5809 TARGET_HANDLE_OPTION): Move from pa.c.
5810 * common/config/alpha/alpha-common.c,
5811 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
5812 common/config/bfin/bfin-common.c,
5813 common/config/cris/cris-common.c,
5814 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
5815 common/config/h8300/h8300-common.c,
5816 common/config/i386/i386-common.c,
5817 common/config/ia64/ia64-common.c,
5818 common/config/iq2000/iq2000-common.c,
5819 common/config/lm32/lm32-common.c,
5820 common/config/m32c/m32c-common.c,
5821 common/config/m32r/m32r-common.c,
5822 common/config/m68k/m68k-common.c,
5823 common/config/mcore/mcore-common.c,
5824 common/config/mep/mep-common.c,
5825 common/config/microblaze/microblaze-common.c,
5826 common/config/mips/mips-common.c,
5827 common/config/mmix/mmix-common.c,
5828 common/config/mn10300/mn10300-common.c,
5829 common/config/pdp11/pdp11-common.c,
5830 common/config/picochip/picochip-common.c,
5831 common/config/rs6000/rs6000-common.c,
5832 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
5833 common/config/score/score-common.c, common/config/sh/sh-common.c,
5834 common/config/sparc/sparc-common.c,
5835 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
5836 common/config/vax/vax-common.c,
5837 common/config/xstormy16/xstormy16-common.c,
5838 common/config/xtensa/xtensa-common.c: New.
5839 * config/alpha/alpha.c: Include common/common-target.h.
5840 (alpha_option_optimization_table, alpha_handle_option,
5841 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5842 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
5843 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
5844 * config/arm/arm.c (arm_option_optimization_table,
5845 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5846 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
5847 arm-common.c.
5848 * config/avr/avr.c (avr_option_optimization_table,
5849 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5850 to avr-common.c.
5851 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
5852 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
5853 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
5854 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
5855 * config/cris/cris.c (cris_option_optimization_table,
5856 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5857 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
5858 cris-common.c.
5859 * config/fr30/fr30.c (fr30_option_optimization_table,
5860 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
5861 to fr30-common.c.
5862 * config/frv/frv.c (frv_option_optimization_table,
5863 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
5864 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
5865 * config/h8300/h8300.c (h8300_option_optimization_table,
5866 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5867 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
5868 * config/i386/i386-protos.h (ix86_handle_option): Declare.
5869 * config/i386/i386.c: Include common/common-target.h.
5870 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
5871 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
5872 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
5873 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
5874 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
5875 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
5876 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
5877 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
5878 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
5879 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
5880 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
5881 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
5882 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
5883 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
5884 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
5885 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
5886 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
5887 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
5888 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
5889 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
5890 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
5891 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
5892 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
5893 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
5894 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
5895 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
5896 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
5897 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
5898 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
5899 ix86_option_optimization_table, ix86_option_init_struct,
5900 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
5901 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5902 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
5903 i386-common.c.
5904 * config/i386/t-i386 (i386.o): Update dependencies.
5905 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
5906 * config/ia64/ia64.c (ia64_option_optimization_table,
5907 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5908 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5909 ia64_handle_option): Move to ia64-common.c.
5910 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5911 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
5912 * config/lm32/lm32.c (lm32_option_optimization_table,
5913 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5914 to lm32-common.c.
5915 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
5916 m32c-common.c.
5917 * config/m32r/m32r.c (m32r_option_optimization_table,
5918 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5919 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5920 m32r_handle_option): Move to m32r-common.c.
5921 (m32r_memory_move_cost): Remove comment referring to
5922 TARGET_HANDLE_OPTION.
5923 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
5924 Move to m68k-common.c.
5925 * config/mcore/mcore.c (mcore_option_optimization_table,
5926 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5927 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
5928 * config/mep/mep.c (mep_option_optimization_table,
5929 mep_handle_option, TARGET_HANDLE_OPTION,
5930 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
5931 Move to mep-common.c.
5932 * config/microblaze/microblaze.c
5933 (microblaze_option_optimization_table,
5934 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5935 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
5936 * config/mips/mips.c (mips_handle_option,
5937 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5938 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
5939 mips-common.c.
5940 * config/mmix/mmix.c (mmix_option_optimization_table,
5941 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5942 Move to mmix-common.c.
5943 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5944 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
5945 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5946 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
5947 * config/pa/pa.c: Include common/common-target.h.
5948 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5949 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5950 pa_handle_option): Move to pa-common.c.
5951 (pa_option_override): Use targetm_common.except_unwind_info.
5952 (pa_asm_output_mi_thunk, pa_function_section): Use
5953 targetm_common.have_named_sections.
5954 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
5955 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5956 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5957 pdp11_handle_option, pdp11_option_init_struct): Move to
5958 pdp11-common.c.
5959 * config/picochip/picochip.c (picochip_option_optimization_table,
5960 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
5961 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
5962 * config/rs6000/rs6000.c: Include common/common-target.h.
5963 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
5964 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
5965 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
5966 rs6000_handle_option): Move to rs6000-common.c.
5967 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5968 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
5969 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5970 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
5971 * config/s390/s390.c (processor_flags_table,
5972 s390_option_optimization_table, s390_option_init_struct,
5973 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
5974 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5975 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
5976 * config/s390/s390.h (processor_flags_table): Declare.
5977 * config/score/score.c (score_option_optimization_table,
5978 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5979 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
5980 score_handle_option): Move to score-common.c.
5981 * config/sh/sh.c (sh_option_optimization_table,
5982 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5983 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5984 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
5985 * config/sparc/sparc.c: Include common/common-target.h.
5986 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5987 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
5988 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
5989 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
5990 spu_option_init_struct): Move to spu-common.c.
5991 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5992 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
5993 * config/v850/v850.c (small_memory_physical_max,
5994 v850_handle_memory_optionn v850_handle_option,
5995 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5996 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
5997 v850-common.c.
637c11bd 5998 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
5999 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
6000 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
6001 Move to xtensa-common.c.
6002 * cfglayout.c: Include common/common-target.h.
6003 (fixup_reorder_chain): Use targetm_common.have_named_sections.
6004 * cfgrtl.c: Include common/common-target.h.
6005 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
6006 targetm_common.have_named_sections.
6007 * dbxout.c: Include common/common-target.h.
6008 (dbxout_function_end): Use targetm_common.have_named_sections.
6009 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
6010 targetm_common.except_unwind_info.
6011 * dwarf2out.c: Include common/common-target.h.
6012 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
6013 dwarf2out_begin_prologue, dwarf2out_frame_init,
6014 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
6015 targetm_common.except_unwind_info.
6016 * except.c: Include common/common-target.h.
6017 (init_eh, finish_eh_generation,
6018 output_one_function_exception_table): Use
6019 targetm_common.except_unwind_info.
637c11bd 6020 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
6021 * explow.c: Include common/common-target.h.
6022 * expr.c: Include common/common-target.h.
637c11bd 6023 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
6024 * function.c: Include common/common-target.h.
6025 (expand_function_end): Use targetm_common.except_unwind_info.
6026 * haifa-sched.c: Include common/common-target.h.
637c11bd 6027 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
6028 * lto-opts.c: Include common/common-target.h instead of target.h.
6029 (lto_reissue_options): Use targetm_common.handle_option.
6030 * opts.c: Include common/common-target.h.
6031 (target_handle_option): Use targetm_common.handle_option.
6032 (init_options_struct): Update comment referring to
6033 targetm.target_option.optimization. Use
6034 targetm_common.default_target_flags,
6035 targetm_common.unwind_tables_default and
6036 targetm_common.option_init_struct.
6037 (default_options_optimization): Use
6038 targetm_common.option_optimization_table.
6039 (finish_options): Use targetm_common.except_unwind_info,
6040 targetm_common.unwind_tables_default,
6041 targetm_common.have_named_sections and
6042 targetm_common.supports_split_stack.
6043 * toplev.c: Include common/common-target.h.
6044 (process_options): Use targetm_common.have_named_sections.
6045 * tree-tailcall.c: Include common/common-target.h.
637c11bd 6046 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 6047 * tree.c: Include common/common-target.h.
637c11bd 6048 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
6049 * varasm.c: Include common/common-target.h.
6050 (resolve_unique_section, hot_function_section,
6051 default_function_section): Use targetm_common.have_named_sections.
6052
d26c7090
ER
60532011-06-14 Easwaran Raman <eraman@google.com>
6054
6055 PR rtl-optimization/44194
6056 * dse.c: Include tree-flow.h
6057 (insn_info): Add new field non_frame_wild_read.
6058 (group_info): Add new fields escaped_n and escaped_p.
6059 (kill_on_calls): New variable.
6060 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
6061 (dse_step0): Initialize kill_on_calls.
6062 (can_escape): New function.
6063 (set_usage_bits): Add additional parameter; record information
6064 about escaped locations.
637c11bd 6065 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
6066 (dse_step2_nospill): Set kill_on_calls based on
6067 group->escaped_n and group->escaped_n.
6068 (add_wild_read): Refactor into...
6069 (reset_active_stores): ... New function, and
6070 (free_read_records): ... New function.
6071 (add_non_frame_wild_read): New function.
6072 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 6073 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
6074 (dse_step5_nospill): Call scan_reads_nospill for instructions
6075 marked as non_frame_wild_read.
637c11bd 6076 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 6077
c49a6962
JM
60782011-06-14 Joseph Myers <joseph@codesourcery.com>
6079
6080 * common/common-target-def.h, common/common-target.def,
6081 common/common-target.h, common/config/default-common.c,
6082 common/config/pa/pa-common.c: New files.
6083 * Makefile.in (common_out_file, common_out_object_file,
6084 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
6085 (OBJS-libcommon-target): Include $(common_out_object_file).
6086 (prefix.o): Update dependencies.
6087 ($(common_out_object_file), common/common-target-hooks-def.h,
6088 s-common-target-hooks-def-h): New.
6089 (s-tm-texi): Also check timestamp on common-target.def.
6090 (build/genhooks.o): Update dependencies.
6091 * config.gcc (common_out_file, target_has_targetm_common): Define.
6092 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
6093 TARGET_ALWAYS_STRIP_DOTDOT.
6094 * configure.ac (common_out_object_file): Define.
6095 (common_out_file, common_out_object_file): Substitute.
6096 (common): Create directory.
6097 * configure: Regenerate.
6098 * doc/tm.texi.in (targetm_common): Document.
6099 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
6100 * doc/tm.texi: Regenerate.
6101 * genhooks.c (hook_array): Also include common/common-target.def.
6102 * prefix.c (tm.h): Don't include.
6103 (common/common-target.h): Include.
6104 (ALWAYS_STRIP_DOTDOT): Don't define.
6105 (update_path): Use targetm_common.always_strip_dotdot instead of
6106 ALWAYS_STRIP_DOTDOT.
6107 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
6108
22c5fa5f
DL
61092011-06-14 David Li <davidxl@google.com>
6110
6111 * passes.c (execute_function_todo): Remove TODO_dump_func.
6112 (execute_one_pass): Remove TODO_dump_func.
6113 (execute_function_dump): New function.
6114 * tree-vrp.c: Remove TODO_dump_func.
6115 * regrename.c: Remove TODO_dump_func.
6116 * fwprop.c: Remove TODO_dump_func.
6117 * tree-into-ssa.c: Remove TODO_dump_func.
6118 * tree-complex.c: Remove TODO_dump_func.
6119 * tracer.c: Remove TODO_dump_func.
6120 * tree-loop-distribution.c: Remove TODO_dump_func.
6121 * postreload-gcse.c: Remove TODO_dump_func.
6122 * postreload.c: Remove TODO_dump_func.
6123 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
6124 * tree-tailcall.c: Remove TODO_dump_func.
6125 * ipa-cp.c: Remove TODO_dump_func.
6126 * final.c: Remove TODO_dump_func.
6127 * tree-emutls.c: Remove TODO_dump_func.
6128 * omp-low.c: Remove TODO_dump_func.
6129 * tree-ssa-dse.c: Remove TODO_dump_func.
6130 * tree-ssa-uncprop.c: Remove TODO_dump_func.
6131 * auto-inc-dec.c: Remove TODO_dump_func.
6132 * reorg.c: Remove TODO_dump_func.
6133 * tree-ssa-copyrename.c: Remove TODO_dump_func.
6134 * tree-ssa-ccp.c: Remove TODO_dump_func.
6135 * compare-elim.c: Remove TODO_dump_func.
6136 * mode-switching.c: Remove TODO_dump_func.
6137 * modulo-sched.c: Remove TODO_dump_func.
6138 * tree-call-cdce.c: Remove TODO_dump_func.
6139 * cse.c: Remove TODO_dump_func.
6140 * web.c: Remove TODO_dump_func.
6141 * tree-stdarg.c: Remove TODO_dump_func.
6142 * lto-streamer-out.c: Remove TODO_dump_func.
6143 * tree-ssa-math-opts.c: Remove TODO_dump_func.
6144 * tree-ssa-dom.c: Remove TODO_dump_func.
6145 * tree-nrv.c: Remove TODO_dump_func.
6146 * loop-init.c: Remove TODO_dump_func.
6147 * gimple-low.c: Remove TODO_dump_func.
6148 * ipa-inline.c: Remove TODO_dump_func.
6149 * tree-ssa-sink.c: Remove TODO_dump_func.
6150 * jump.c: Remove TODO_dump_func.
6151 * ifcvt.c: Remove TODO_dump_func.
6152 * tree-ssa-loop.c: Remove TODO_dump_func.
6153 * recog.c: Remove TODO_dump_func.
6154 * dse.c: Remove TODO_dump_func.
6155 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
6156 * matrix-reorg.c: Remove TODO_dump_func.
6157 * tree-eh.c: Remove TODO_dump_func.
6158 * regmove.c: Remove TODO_dump_func.
6159 * function.c: Remove TODO_dump_func.
6160 * tree-vectorizer.c: Remove TODO_dump_func.
6161 * ipa-split.c: Remove TODO_dump_func.
6162 * gcse.c: Remove TODO_dump_func.
6163 * tree-if-conv.c: Remove TODO_dump_func.
6164 * init-regs.c: Remove TODO_dump_func.
6165 * tree-ssa-phiopt.c: Remove TODO_dump_func.
6166 * implicit-zee.c: Remove TODO_dump_func.
6167 * lower-subreg.c: Remove TODO_dump_func.
6168 * bt-load.c: Remove TODO_dump_func.
6169 * tree-dfa.c: Remove TODO_dump_func.
6170 * except.c: Remove TODO_dump_func.
6171 * emit-rtl.c: Remove TODO_dump_func.
6172 * store-motion.c: Remove TODO_dump_func.
6173 * cfgexpand.c: Remove TODO_dump_func.
6174 * tree-cfgcleanup.c: Remove TODO_dump_func.
6175 * cfgcleanup.c: Remove TODO_dump_func.
6176 * tree-ssa-pre.c: Remove TODO_dump_func.
6177 * tree-sra.c: Remove TODO_dump_func.
6178 * tree-mudflap.c: Remove TODO_dump_func.
6179 * tree-ssa-copy.c: Remove TODO_dump_func.
6180 * cfglayout.c: Remove TODO_dump_func.
6181 * tree-ssa-forwprop.c: Remove TODO_dump_func.
6182 * tree-ssa-dce.c: Remove TODO_dump_func.
6183 * ira.c: Remove TODO_dump_func.
6184 * tree-ssa.c: Remove TODO_dump_func.
6185 * integrate.c: Remove TODO_dump_func.
6186 * tree-optimize.c: Remove TODO_dump_func.
6187 * tree-ssa-phiprop.c: Remove TODO_dump_func.
6188 * tree-object-size.c: Remove TODO_dump_func.
6189 * combine.c: Remove TODO_dump_func.
6190 * bb-reorder.c: Remove TODO_dump_func.
6191 * cprop.c: Remove TODO_dump_func.
6192 * var-tracking.c: Remove TODO_dump_func.
6193 * tree-profile.c: Remove TODO_dump_func.
6194 * tree-vect-generic.c: Remove TODO_dump_func.
6195 * reg-stack.c: Remove TODO_dump_func.
6196 * sched-rgn.c: Remove TODO_dump_func.
6197 * tree-ssa-structalias.c: Remove TODO_dump_func.
6198 * tree-switch-conversion.c: Remove TODO_dump_func.
6199 * tree-cfg.c: Remove TODO_dump_func.
6200 * tree-ssa-reassoc.c: Remove TODO_dump_func.
6201 * combine-stack-adj.c: Remove TODO_dump_func.
6202 * dce.c: Remove TODO_dump_func.
6203 * tree-ssanames.c: Remove TODO_dump_func.
6204 * regcprop.c: Remove TODO_dump_func.
6205
fa465762
L
62062011-06-14 H.J. Lu <hongjiu.lu@intel.com>
6207
6208 PR middle-end/47364
6209 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
6210 and properly handle result not in Pmode.
6211
7d8d16c3
RM
62122011-06-14 Robert Millan <rmh@gnu.org>
6213
6214 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
6215 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
6216 `config/linux.h'.
6217
6218 * config/i386/kfreebsd-gnu64.h: New file.
6219 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
6220 with `i386/kfreebsd-gnu64.h'.
6221
6222 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
6223 (GNU_USER_LINK_EMULATION64): New macros.
6224 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
6225 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
6226 of hardcoding `elf_i386' and `elf_x86_64'.
6227
0ccef3d2
NC
62282011-06-14 Nick Clifton <nickc@redhat.com>
6229
6230 PR target/49403
6231 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
6232
6233 PR target/49402
6234 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
6235
8a76c4a0
JJ
62362011-06-14 Jakub Jelinek <jakub@redhat.com>
6237
1ace6185
JJ
6238 PR fortran/49103
6239 * tree.h (DECL_NONSHAREABLE): Define.
6240 (struct tree_decl_common): Change decl_common_unused to
6241 decl_nonshareable_flag.
6242 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
6243 Ignore vars with DECL_NONSHAREABLE bit set.
6244 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
6245 on stores to automatic aggregate vars.
6246
8a76c4a0
JJ
6247 PR rtl-optimization/49390
6248 Revert:
6249 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
6250
6251 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
6252 MEM_ALIAS_SET.
6253
b4a9343c
ZD
62542011-06-14 Zdenek Dvorak <ook@ucw.cz>
6255 Tom de Vries <tom@codesourcery.com>
6256
6257 PR target/45098
6258 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
6259 Document changed semantics.
6260 (max_stmt_executions, max_stmt_executions_int): Declare.
6261 * tree-data-ref.c (estimated_loop_iterations)
6262 (estimated_loop_iterations_int): Move functions...
6263 * tree-ssa-loop-niter.c (estimated_loop_iterations)
6264 (estimated_loop_iterations_int): here.
6265 (record_estimate): Change nb_iterations_upper_bound and
6266 nb_iterations_estimate semantics.
6267 (max_stmt_executions, max_stmt_executions_int): New function.
6268 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
6269 (max_stmt_executions_tree): this.
6270 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
6271 estimated_loop_iterations_tree.
6272 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
6273 max_stmt_executions_int instead of estimated_loop_iterations_int.
6274 * predict.c (predict_loops): Idem.
6275 * tree-parloops.c (parallelize_loops): Idem.
6276 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
6277 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
6278 (init_omega_for_ddr_1): Idem.
6279 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
6280 (loop_prefetch_arrays): Idem
6281 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
6282 max_stmt_executions instead of estimated_loop_iterations.
6283 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
6284 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
6285 instead of nb_iterations_upper_bound.
6286
d2640c43
JH
62872011-06-13 Jan Hubicka <jh@suse.cz>
6288
6289 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
6290
40873cdd
RH
62912011-06-14 Richard Henderson <rth@redhat.com>
6292
6293 PR debug/48459
6294 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
6295 (based_loc_descr): Assert it's true.
6296 (compute_frame_pointer_to_fb_displacement): Set it, rather than
6297 aborting immediately.
6298
73e8cb24
SL
62992011-06-14 Sanjin Liu <scliu@faraday-tech.com>
6300 Mingfeng Wu <mingfeng@faraday-tech.com>
6301
6302 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
6303
f835f0a7
JH
63042011-06-13 Jan Hubicka <jh@suse.cz>
6305
6306 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
6307
ee6f1177
JH
63082011-06-13 Jan Hubicka <jh@suse.cz>
6309
6310 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
6311 similarly to DECL_COMDAT.
6312 * cgraphunit.c (cgraph_analyze_function): Likewise.
6313 * ipa.c (function_and_variable_visibility): Likewise.
6314
618abf9a
JH
63152011-06-13 Jan Hubicka <jh@suse.cz>
6316
6317 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
6318 BINFO_VIRTUALS when streaming for ltrans unit.
6319
a45fe02f
DE
63202011-06-13 David Edelsohn <dje.gcc@gmail.com>
6321
6322 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
6323 (movdi_internal64): Same.
6324
63252011-06-13 Edmar Wienskoski <edmar@freescale.com>
6326
e641e495 6327 PR target/44618
7d8d16c3
RM
6328 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
6329 a set of similar patterns, where the MATCH_OPERAND for the function
6330 argument is replaced with individual references to hardware registers.
a45fe02f
DE
6331 (save_fpregs_<mode>): Ditto
6332 (restore_gpregs_<mode>): Ditto
6333 (return_and_restore_gpregs_<mode>): Ditto
6334 (return_and_restore_fpregs_<mode>): Ditto
6335 (return_and_restore_fpregs_aix_<mode>): Ditto
6336
8775a18b
JH
63372011-06-13 Jan Hubicka <jh@suse.cz>
6338
6339 * ipa-utils.c (postorder_stack): New structure.
6340 (ipa_reverse_postorder): Handle aliases.
6341
63422011-06-13 Jan Hubicka <jh@suse.cz>
6343
6344 * ipa-inline.c (reset_edge_caches): Walk aliases.
6345 (update_caller_keys): Do not test inlinability of aliases.
6346 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
6347 (do_estimate_growth): Fix typo.
6348
6c69a029
JH
63492011-06-13 Jan Hubicka <jh@suse.cz>
6350
6351 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
6352 (can_remove_node_now_p): ... here; handle same comdat groups.
6353 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
6354 (inline_call): Update use of can_remove_node_now_p.
6355
10c63ba4 63562011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 6357
10c63ba4 6358 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
6359 condition to disallow non-identical memory locations.
6360 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
6361 preference to bit manipulation instructions.
495f8c14 6362
9aa3f5c5
JH
63632011-06-13 Jan Hubicka <jh@suse.cz>
6364
6365 * cgraph.c (cgraph_for_node_thunks_and_aliases,
6366 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
6367 (nonremovable_p): New function.
6368 (cgraph_can_remove_if_no_direct_calls_p): New function.
6369 (used_from_object_file_p): New functoin.
10c63ba4
EB
6370 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
6371 references from aliases.
9aa3f5c5
JH
6372 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
6373 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
6374 (want_inline_function_called_once_p): Use it; accept aliases called
6375 once, too.
9aa3f5c5
JH
6376 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
6377
30cecf17
RR
63782011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6379
6380 PR target/48454
6381 * config/arm/neon.md (vec_pack_trunc): Set the lengths
6382 correctly for the case with Quad vectors.
6383
29f85237
JJ
63842011-06-13 Jakub Jelinek <jakub@redhat.com>
6385 Ira Rosen <ira.rosen@linaro.org>
6386
6387 PR tree-optimization/49352
6388 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
6389 all, make sure loop_use_stmt after the loop is a def stmt of a used
6390 SSA_NAME that is the only one defined inside of the loop. Don't
6391 check for COND_EXPR and GIMPLE_BINARY_RHS.
6392 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
6393 check_reduction is true.
6394
c3e3f090
JH
63952011-06-11 Jan Hubicka <jh@suse.cz>
6396
6397 PR middle-end/49373
6398 * ipa.c (cgraph_externally_visible_p): Check resolution info.
6399
516e0768
JH
64002011-06-11 Jan Hubicka <jh@suse.cz>
6401
6402 PR middle-end/48836
6403 * ipa-inline-transform.c: Include tree-pass.h
6404 (inline_transform): Set TODO_update_ssa_only_virtuals.
6405 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
6406
903b0a8b
JH
64072011-06-11 Jan Hubicka <jh@suse.cz>
6408
6409 PR middle-end/49378
6410 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
6411 aliases and thunks.
6412
44542f8e
IR
64132011-06-12 Ira Rosen <ira.rosen@linaro.org>
6414
6415 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
6416 Take number of iterations to peel into account for equally frequent
6417 misalignment values.
6418
ea89702b
JH
64192011-06-11 Jan Hubicka <jh@suse.cz>
6420
637c11bd
UB
6421 * lto-streamer-out.c (produce_symtab): Stream out the newly
6422 represented aliases.
ea89702b 6423
380ed5ed
JH
64242011-06-11 Jan Hubicka <jh@suse.cz>
6425
637c11bd
UB
6426 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
6427 varying args.
380ed5ed
JH
6428 (ipa_update_after_lto_read): Likewise.
6429 (ipa_write_node_info): Do not sream call_with_var_arguments.
6430 (ipa_read_node_info): Likewise.
6431
00cfc363
JH
64322011-06-11 Jan Hubicka <jh@suse.cz>
6433
6434 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
6435
39e2db00
JH
64362011-06-11 Jan Hubicka <jh@suse.cz>
6437
6438 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
6439 (lto_symtab_resolve_can_prevail_p): Likewise.
6440 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
6441 * cgraph.c (same_body_aliases_done): New global var.
6442 (cgraph_same_body_alias_1): Rename to ...
6443 (cgraph_create_function_alias): ... this one; reorg to new
6444 representation.
6445 (cgraph_same_body_alias): Use cgraph_create_function_alias;
6446 record references when asked to.
6447 (cgraph_add_thunk): Fix formating.
6448 (cgraph_get_node): Kill same body alias code.
6449 (cgraph_node_for_asm): Likewise.
6450 (cgraph_remove_same_body_alias): Remove.
6451 (cgraph_remove_node): Kill same body alias code.
6452 (cgraph_mark_address_taken_node): Mark also the aliased function
6453 as having address taken.
6454 (dump_cgraph_node): Dump same body aliases.
6455 (cgraph_for_node_thunks_and_aliases): Update for new alias
6456 representation.
6457 (cgraph_for_node_and_aliases): Likewise.
6458 * cgraph.h (same_body): Kll pointer.
6459 (same_body_alias): Update comment.
6460 (same_body_aliases_done): Declare.
6461 (cgraph_remove_same_body_alias): Remove declaration.
6462 (cgraph_create_function_alias): Declare.
6463 (cgraph_process_same_body_aliases): Declare.
6464 (cgraph_function_with_gimple_body_p): Check for alias.
6465 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
6466 (cgraph_alias_aliased_node): New function.
6467 (cgraph_function_node): Update for new aliases.
6468 (cgraph_function_or_thunk_node): Likewise.
6469 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
6470 (inline_call): Remove dead aliases.
10c63ba4
EB
6471 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
6472 name hack for same body aliases.
39e2db00
JH
6473 (clone_of_p): Look through aliases.
6474 (verify_cgraph_node): Verify aliases.
6475 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
6476 (cgraph_process_same_body_aliases): New function.
6477 (process_function_and_variable_attributes): Disable weakref warning on
6478 alias.
6479 (cgraph_analyze_functions): Handle aliases.
6480 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
6481 (assemble_thunks): Rename to ...
6482 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
6483 (cgraph_expand_function): Remove alias output code.
6484 (cgraph_output_in_order): Skip aliases.
6485 (cgraph_preserve_function_body_p): Aliases don't need preserving.
6486 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
6487 (ipa_record_reference): Do not assert on alias references.
6488 (ipa_ref_has_aliases_p): New function.
6489 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
6490 (ipa_ref_has_aliases_p): Declare.
6491 * lto-cgraph.c (lto_output_node): Handle aliases.
6492 (input_node): Likewise.
6493 * lto-streamer-out.c (lto_output): Skip aliases.
6494 (produce_symtab): Kill same_body_alias code.
6495 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
6496 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
6497 * ipa-inline.c (update_caller_keys): Walk aliases.
6498 (inline_small_functions): Fix thinko in previous patch.
6499 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
6500 (function_and_variable_visibility): Do not walk same body aliases.
6501 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
6502 (ipa_pta_execute): Use it.
6503
9ee65b55
UB
65042011-06-11 Uros Bizjak <ubizjak@gmail.com>
6505
6506 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
6507 (*vec_dupv2df): Rename from vec_dupv2df.
6508 (vec_dupv2df): New expander.
6509
65102011-06-11 Uros Bizjak <ubizjak@gmail.com>
6511
6512 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
6513
65142011-06-11 Uros Bizjak <ubizjak@gmail.com>
6515
6516 * config/i386/i386.md: Use default value in "isa" attribute.
6517 * config/i386/sse.md: Ditto.
6518 * config/i386/mmx.md: Ditto.
6519
ba68a139
WG
65202011-06-10 Wei Guozhi <carrot@google.com>
6521
6522 PR target/45335
6523 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6524 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6525 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6526 related peephole2.
6527 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6528 related peephole2.
6529 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6530 (arm_legitimate_ldrd_p): New prototype.
6531 (arm_output_ldrd): New prototype.
6532 * config/arm/arm.c (arm_check_ldrd_operands): New function.
6533 (arm_legitimate_ldrd_p): New function.
6534 (arm_output_ldrd): New function.
6535
deced1e2
XDL
65362011-06-10 David Li <davidxl@google.com>
6537
6538 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6539 * passes.c (passr_eq): New function.
6540 (create_pass_tab): New function.
6541 (pass_traverse): New function.
6542 (dump_one_pass): New function.
6543 (dump_pass_list): New function.
6544 (dump_passes): New function.
6545
71fb4f92
JH
65462011-06-10 Jan Hubicka <jh@suse.cz>
6547
6548 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
6549 setting the nothrow flag.
6550 * ipa-reference.c (propagate): Skip aliases.
6551 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
6552 (propagate_nothrow): Skip aliases; do not update cgraph.
6553 (local_pure_const): Do not update cgraph.
6554 * tree-profile.c (tree_profiling): Do fixup_cfg.
6555
41817394
JH
65562011-06-10 Jan Hubicka <jh@suse.cz>
6557
6558 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
6559 (cgraph_local_node_p): ... here; handle aliases.
6560 (has_addr_references_p): Break out from ...;
6561 (cgraph_remove_unreachable_nodes) ... here.
6562
fb37c1de
JH
65632011-06-10 Jan Hubicka <jh@suse.cz>
6564
6565 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
6566 * common.opt (flag_inline_functions_called_once): Do not
6567 initialize to 1.
fb37c1de 6568
0818c24c
JH
65692011-06-10 Jan Hubicka <jh@suse.cz>
6570
6571 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
6572 (ipcp_initialize_node_lattices): Do not deal with aliases;
6573 Do not try to propagate through thunks.
0818c24c
JH
6574 (ipcp_change_tops_to_bottom): Do not deal with aliases.
6575
c8246dbe
JH
65762011-06-10 Jan Hubicka <jh@suse.cz>
6577
9ee65b55
UB
6578 * ipa-prop.c (ipa_write_node_info): Stream jump functions
6579 for indirect calls.
c8246dbe
JH
6580 (ipa_read_node_info): Likewise.
6581
d7e2a1c1
BS
65822011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6583
6584 PR lto/49302
6585 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
6586 (build_and_insert_call): Likewise.
6587 (build_and_insert_ref): New.
6588 (gimple_expand_builtin_pow): Minor cleanup.
6589 (gimple_expand_builtin_cabs): New.
6590 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 6591
749f25d8
JH
65922011-06-10 Jan Hubicka <jh@suse.cz>
6593
6594 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
6595 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
6596 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
6597 (ipcp_propagate_stage): Skip aliases when propagating.
6598 (ipcp_need_redirect_p): Skip aliases.
6599 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
6600 collect_callers_of_node.
6601 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
6602 for aliases.
6603 (ipa_compute_jump_functions): Look through aliases.
6604
8340fbd7
RO
66052011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6606
6607 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
6608
9aaa7e47
HPN
66092011-06-10 Hans-Peter Nilsson <hp@axis.com>
6610
6611 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
6612 Adjust comments.
6613 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
6614
f1724940
JH
66152011-06-10 Jan Hubicka <jh@suse.cz>
6616
6617 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
6618 Update call of gimple_get_virt_method_for_binfo.
6619 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
6620 refuse_thunks parameter.
6621 (gimple_fold_call): Update.
6622 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
6623
a6f834c5
JH
66242011-06-10 Jan Hubicka <jh@suse.cz>
6625
6626 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
6627 (not_all_callers_have_enough_arguments_p): ... this one; turn into
6628 worker for cgraph_for_node_and_aliases.
6629 (convert_callers_for_node): Break out from ...
6630 (convert_callers): ... here.
6631 (modify_function): Use collect_callers_of_node.
6632 (ipa_early_sra): Use cgraph_for_node_and_aliases.
6633
7871eee3
RG
66342011-06-10 Richard Guenther <rguenther@suse.de>
6635
6636 PR tree-optimization/49361
6637 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
6638 when not already in gimple form.
6639
dae957ae
RG
66402011-06-10 Richard Guenther <rguenther@suse.de>
6641
6642 PR bootstrap/49344
6643 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
6644 FOR_EACH_PHI_OR_STMT_USE.
6645
a5b1779f
JH
66462011-06-10 Jan Hubicka <jh@suse.cz>
6647
6648 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
6649 (clone_inlined_nodes): ... here.
6650 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
6651 to real destination prior inlining.
6652 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
6653 can_early_inline_edge_p, want_early_inline_function_p,
6654 want_early_inline_function_p, want_inline_small_function_p,
6655 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
6656 edge_badness, update_all_callee_keys, lookup_recursive_calls,
6657 add_new_edges_to_heap, inline_small_functions, flatten_function,
6658 inline_always_inline_functions, early_inline_small_functions): Use
6659 cgraph_function_or_thunk_node.
6660 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
6661 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
6662 (do_estimate_edge_growth_1): Break out from ...
6663 (do_estimate_growth) ... here; walk aliases.
6664 (inline_generate_summary): Skip aliases.
6665
c1ae3ca5
RG
66662011-06-10 Richard Guenther <rguenther@suse.de>
6667
9ee65b55
UB
6668 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
6669 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 6670
b504a918
PC
66712011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
6672
6673 * tree.h (error_operand_p): Add.
6674 * dbxout.c (dbxout_type_fields): Use the latter.
6675 * c-decl.c (add_stmt): Likewise.
6676 * gimplify.c (omp_add_variable, omp_notice_variable,
6677 gimplify_scan_omp_clauses): Likewise.
6678
3f5ea9dc 66792011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 6680
3f5ea9dc
GJL
6681 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
6682 when a value is actually passed in regs.
6683
b11b0904 66842011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 6685 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
6686
6687 * doc/invoke.texi (SPARC options): Add -mflat.
6688 * config/sparc/sparc.opt: Likewise.
6689 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
6690 (sparc_flat_expand_prologue): Declare.
6691 (sparc_flat_expand_epilogue): Likewise.
6692 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
6693 (CPP_ENDIAN_SPEC): Replace with...
6694 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
6695 (CPP_SPEC): Adjust to above change.
6696 (EXTRA_SPECS): Likewise.
6697 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
6698 (INCOMING_REGNO): Likewise.
6699 (OUTGOING_REGNO): Likewise.
6700 (LOCAL_REGNO): Likewise.
6701 (SETUP_FRAME_ADDRESSES): Likewise.
6702 (FIXED_REGISTERS): Set 0 for %fp.
6703 (CALL_USED_REGISTERS): Likewise.
6704 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
6705 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
6706 (RETURN_ADDR_REGNUM): Define.
6707 (RETURN_ADDR_RTX): Use it.
6708 (INCOMING_RETURN_ADDR_REGNUM): Define.
6709 (INCOMING_RETURN_ADDR_RTX): Use it.
6710 (DWARF_FRAME_RETURN_COLUMN): Likewise.
6711 (EH_RETURN_REGNUM): Define.
6712 (EH_RETURN_STACKADJ_RTX): Use it.
6713 (EH_RETURN_HANDLER_RTX): Delete.
6714 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
6715 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
6716 Delete.
6717 (struct machine_function): Add frame_size, apparent_frame_size,
6718 frame_base_reg, frame_base_offset, n_global_fp_regs and
6719 save_local_in_regs_p fields.
6720 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
6721 sparc_frame_base_offset, sparc_n_global_fp_regs,
6722 sparc_save_local_in_regs_p): New macros.
6723 (sparc_option_override): Error out if -fcall-saved-REG is specified
6724 for Out registers.
6725 (eligible_for_restore_insn): Fix formatting.
6726 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
6727 (eligible_for_sibcall_delay): Likewise.
6728 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
6729 (sparc_legitimate_address_p): Adjust to above change.
6730 (save_global_or_fp_reg_p): New predicate.
6731 (return_addr_reg_needed_p): Likewise.
6732 (save_local_or_in_reg_p): Likewise.
6733 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
6734 (SORR_SAVE, SORR_RESTORE): Delete.
6735 (sorr_pred_t): New typedef.
6736 (sorr_act_t): New enum.
6737 (save_or_restore_regs): Rename to...
6738 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
6739 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
6740 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
6741 mechanism. Add CFI information for double-word saves in 32-bit mode.
6742 (emit_adjust_base_to_offset): New function extracted from...
6743 (emit_save_or_restore_regs): ...this. Rename the rest to...
6744 (emit_save_or_restore_regs_global_fp_regs): ...this.
6745 (emit_save_or_restore_regs_local_in_regs): New function.
6746 (gen_create_flat_frame_[123]): New functions.
6747 (sparc_expand_prologue): Use SIZE local variable. Adjust.
6748 (sparc_flat_expand_prologue): New function.
6749 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
6750 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
6751 (sparc_flat_expand_epilogue): New function.
6752 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
6753 (output_return): Likewise.
6754 (output_sibcall): Likewise.
6755 (sparc_output_mi_thunk): Likewise.
6756 (sparc_frame_pointer_required): Likewise.
6757 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
6758 function optimization.
6759 * config/sparc/sparc.md (flat): New attribute.
6760 (prologue): Add TARGET_FLAT handling.
6761 (save_register_window): Disable if TARGET_FLAT.
6762 (create_flat_frame_[123]): New patterns.
6763 (epilogue): Add TARGET_FLAT handling.
6764 (sibcall_epilogue): Likewise.
6765 (eh_return): New expander.
6766 (eh_return_internal): New insn and splitter.
6767 (return_internal): Add TARGET_FLAT handling.
6768 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
6769 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
6770 (nonlocal_goto): Add TARGET_FLAT handling.
6771 * config/sparc/t-elf: Add -mflat multilib.
6772 * config/sparc/t-leon: Likewise.
6773
fede8efa
JH
67742011-06-10 Jan Hubicka <jh@suse.cz>
6775
6776 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
6777 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
6778 (self_recursive_p): Use cgraph_function_node.
6779 (propagate_pure_const): Likewise.
6780 (propagate_nothrow): Likewise.
6781 * ipa-reference.c (ipa_reference_get_not_read_global): Use
6782 cgraph_function_node.
6783 (propagate_bits): Likewise.
6784 (propagate): Likewise.
6785
0127c76f
RR
67862011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6787 Richard Earnshaw <rearnsha@arm.com>
6788
9ee65b55 6789 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
6790 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
6791 (*thumb2_movdi_vfp): Delete.
6792 (*arm_movdi_vfp_cortexa8): Delete.
6793 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
6794 (*movdi_vfp_cortexa8): Likewise.
6795
f93fe5a0
RG
67962011-06-10 Richard Guenther <rguenther@suse.de>
6797
6798 * stor-layout.c (initialize_sizetypes): Give names to all
6799 sizetype kinds.
6800
f2164f87
IR
68012011-06-10 Ira Rosen <ira.rosen@linaro.org>
6802
6803 PR tree-optimization/49318
6804 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
6805 irrelevant pattern statements.
6806
3f91c962
HPN
68072011-06-10 Hans-Peter Nilsson <hp@axis.com>
6808
3d223145
HPN
6809 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
6810
3f91c962
HPN
6811 PR bootstrap/49354
6812 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
6813 to last assignment.
6814
b125ad45
JH
68152011-06-09 Jan Hubicka <jh@suse.cz>
6816
6817 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
6818 do not recompute reachable flag.
6819 (cgraph_finalize_function, cgraph_analyze_functions): Set
6820 redefined_extern_inline here.
6821
be330ed4
JH
68222011-06-09 Jan Hubicka <jh@suse.cz>
6823
6824 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
6825 (cgraph_only_called_directly_p): ... this one; bring offline.
6826 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
6827 varpool_used_from_object_file_p): Drop names from the declaratoin.
6828 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
6829 collect_callers_of_node): New.
6830 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
6831 (cgraph_edge_recursive_p): Use cgraph_function_node.
6832 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
6833 (cgraph_node_cannot_be_local_p_1): Break out from ...
6834 (cgraph_node_can_be_local_p): ... here; walk aliases.
6835 (cgraph_for_node_thunks_and_aliases): New function.
6836 (cgraph_for_node_and_aliases): New function.
6837 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
6838 (cgraph_make_node_local) ... here; use
6839 cgraph_for_node_thunks_and_aliases.
be330ed4 6840 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
6841 (cgraph_set_nothrow_flag) ... here;
6842 use cgraph_for_node_thunks_and_aliases.
be330ed4 6843 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
6844 (cgraph_set_const_flag) ... here;
6845 use cgraph_for_node_thunks_and_aliases.
be330ed4 6846 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
6847 (cgraph_set_pure_flag) ... here;
6848 use cgraph_for_node_thunks_and_aliases.
be330ed4 6849 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
6850 (cgraph_propagate_frequency) ... here; use
6851 cgraph_for_node_thunks_and_aliases.
be330ed4 6852 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
6853 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
6854 New functions.
be330ed4
JH
6855 (collect_callers_of_node_1, collect_callers_of_node): New functions.
6856
2ea91d6b
HPN
68572011-06-10 Hans-Peter Nilsson <hp@axis.com>
6858
6859 PR rtl-optimization/49154
6860 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
6861 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
6862 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
6863 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
6864 * config/cris/cris.h (cris_register_move_cost): Remove
6865 !TARGET_V32 code. Tweak comments.
6866
9cf4fb5a
JH
68672011-06-09 Jan Hubicka <jh@suse.cz>
6868
6869 * cgraphbuild.c (record_eh_tables): Mark personality function as having
6870 address taken.
6871
6049a4c8
HPN
68722011-06-10 Hans-Peter Nilsson <hp@axis.com>
6873
c577822e 6874 PR rtl-optimization/49154
9ee65b55
UB
6875 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
6876 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 6877
54e1e4f7 6878 PR rtl-optimization/49154
6049a4c8
HPN
6879 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
6880 register classes.
6881 * doc/tm.texi: Regenerate.
6882
3be68b64
KK
68832011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
6884
6885 PR target/49307
6886 * config/sh/sh.md (UNSPEC_CHKADD): New.
6887 (chk_guard_add): New define_insn_and_split.
6888 (symGOT_load): Use chk_guard_add instead of blockage.
6889
bf806a90
KT
68902011-06-09 Kai Tietz <ktietz@redhat.com>
6891
6892 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
6893
d5a9738b
EB
68942011-06-09 Eric Botcazou <ebotcazou@adacore.com>
6895
6896 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
6897
527e82c2
WG
68982011-06-09 Wei Guozhi <carrot@google.com>
6899
6900 PR target/46975
6901 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
6902 (peephole2 for conditional move): Generate 16 bit instructions.
6903
b8bc3a43
UB
69042011-06-09 Uros Bizjak <ubizjak@gmail.com>
6905
6906 * config/i386/i386.md (*movdi_internal_rex64): Merge
6907 alternatives 6 and 8.
6908
4745da6e
DL
69092011-06-09 David Li <davidxl@google.com>
6910
6911 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6912 * passes.c (passr_eq): New function.
6913 (create_pass_tab): New function.
6914 (pass_traverse): New function.
6915 (dump_one_pass): New function.
6916 (dump_pass_list): New function.
6917 (dump_passes): New function.
6918
bdf67bcb
DL
69192011-06-09 David Li <davidxl@google.com>
6920
6921 * tree-complex.c (tree_lower_complex): Gate cleanup.
6922 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
6923 (execute_optimize_stdarg): Ditto.
6924 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
6925 (execute_cleanup_eh_1): Ditto.
6926 (execute_cleanup_eh): Ditto.
6927 * gcse.c (gate_rtl_pre): Ditto.
6928 (execute_rtl_pre): Ditto.
6929 * except.c (finish_eh_generation): Ditto.
6930 (convert_to_eh_region_ranges): Ditto.
6931 * cprop.c (one_cprop_pass): Ditto.
6932
547fdef8
BS
69332011-06-09 Bernd Schmidt <bernds@codesourcery.com>
6934
6935 PR target/48673
6936 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
6937 in all basic blocks.
6938
10e48e39
RO
69392011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6940
6941 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
6942 (HAVE_ENABLE_EXECUTE_STACK): Define.
6943 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
6944 (HAVE_ENABLE_EXECUTE_STACK): Define.
6945 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6946 (HAVE_ENABLE_EXECUTE_STACK): Define.
6947 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
6948 (ENABLE_EXECUTE_STACK): Remove.
6949 (HAVE_ENABLE_EXECUTE_STACK): Define.
6950 [IN_LIBGCC2]: Don't include <windows.h>.
6951 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6952 (HAVE_ENABLE_EXECUTE_STACK): Define.
6953 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
6954 (HAVE_ENABLE_EXECUTE_STACK): Define.
6955 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
6956 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
6957 (HAVE_ENABLE_EXECUTE_STACK): Define.
6958 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
6959 (HAVE_ENABLE_EXECUTE_STACK): Define.
6960 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
6961 (HAVE_ENABLE_EXECUTE_STACK): Define.
6962 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6963 (HAVE_ENABLE_EXECUTE_STACK): Define.
6964 * config/alpha/alpha.c (alpha_trampoline_init): Test
6965 HAVE_ENABLE_EXECUTE_STACK.
6966 * config/i386/i386.c (ix86_trampoline_init): Likewise.
6967 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6968 (sparc64_initialize_trampoline): Likewise.
6969 * libgcc2.c [L_enable_execute_stack]: Remove.
6970 * system.h (ENABLE_EXECUTE_STACK): Poison.
6971 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
6972 * doc/tm.texi: Regenerate.
6973 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
6974
8ced31fe
JJ
69752011-06-09 Jakub Jelinek <jakub@redhat.com>
6976
6977 PR middle-end/49308
6978 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
6979 variable. After resetting and rescanning insn continue with previous
6980 statement.
6981
ee610fcd
RO
69822011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6983
6984 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
6985 (gcc_cv_ld_hidden): Likewise.
6986 * configure: Regenerate.
6987 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
6988 (ix86_stack_protect_fail): Mark unused.
6989 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
6990 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
6991 [TARGET_MACHO]: Don't define.
6992 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
6993 (TARGET_STACK_PROTECT_FAIL): Likewise.
6994 (rs6000_stack_protect_fail): Mark unused.
6995 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 6996 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 6997
8f2e22ff
AK
69982011-06-08 Andi Kleen <ak@linux.intel.com>
6999
7000 * varasm.c (get_section): Print location of other conflict
7001 for section conflicts.
7002
815cecbe
AK
70032011-06-08 Andi Kleen <ak@linux.intel.com>
7004
7005 * config/i386/driver-i386.c (host_detect_local_cpu):
7006 Add model 0x2d Intel CPU.
7007
1460ec5c
AK
70082011-06-08 Andi Kleen <ak@linux.intel.com>
7009
7010 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
7011 (globalize_reg): Add decl parameter. Compute location. Pass location
7012 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
7013 * rtl.h (globalize_reg): Update prototype.
7014 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
7015
df17530a
MX
70162011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
7017
7018 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
7019
409fed48
KK
70202011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
7021
7022 PR target/49305
7023 * config/sh/predicates.md (general_movsrc_operand): Check
7024 mode for memory with indexed address for QI and HImode.
7025 (general_movdst_operand): Likewise.
7026
87c16a45
NP
70272011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
7028
b8bc3a43 7029 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 7030
49931fcb
AO
70312011-06-08 Alexandre Oliva <aoliva@redhat.com>
7032
7033 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
7034 (num_ssa_operands): Likewise.
7035 (op_iter_init_phiuse): Forward-declare.
7036 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
7037
29494d1f
NC
70382011-06-08 Nick Clifton <nickc@redhat.com>
7039
7040 * doc/invoke.texi (ARM Options): Update description of
7041 -mthumb-interwork.
7042
4ffae7ff
L
70432011-06-08 H.J. Lu <hongjiu.lu@intel.com>
7044
7045 * config/i386/driver-i386.c (host_detect_local_cpu): Support
7046 unknown Intel family 0x6 CPUs.
7047
d9c77712
MJ
70482011-06-08 Martin Jambor <mjambor@suse.cz>
7049
7050 * tree-sra.c (mark_rw_status): Removed.
7051 (analyze_access_subtree): New parameter parent instead of
7052 mark_read and mark_write, propagate from that.
7053
b1def36c
JB
70542011-06-08 Julian Brown <julian@codesourcery.com>
7055
7056 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
7057 for double-precision helper functions in hard-float mode if only
7058 single-precision arithmetic is supported in hardware.
7059
6c8e9fc9
AM
70602011-06-08 Alexander Monakov <amonakov@ispras.ru>
7061
7062 PR rtl-optimization/49303
7063 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
7064 code_motion_path_driver returned 0 or 1.
7065 (sel_region_finish): Clear h_d_i_d.
7066
c2bbcb0d
KK
70672011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
7068
7069 * config/sh/sh.c (prepare_move_operands): Set pic register
7070 appropriately for global and local dynamic tls models even
7071 if flag_pic is unset.
7072
6976ae51
JM
70732011-06-07 Jason Merrill <jason@redhat.com>
7074
7075 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
7076
bb5b1f5e
XDL
70772011-06-07 Xinliang David Li <davidxl@google.com>
7078 * passes.c (enable_disable_pass): Handle assembler name.
7079 (is_pass_explicitly_enabled_or_disabled): Ditto.
7080
91ffe356
RO
70812011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7082
7083 PR tree-optimization/48497
7084 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
7085
06bc3ec7
BS
70862011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7087
7088 PR tree-optimization/46728
7089 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
7090 to use gimple_val_nonnegative_real_p.
7091 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
7092 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 7093
c074d740
L
70942011-06-07 H.J. Lu <hongjiu.lu@intel.com>
7095
7096 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
7097
8973b112
SG
70982011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
7099
7100 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
7101 constant vectors.
7102
67b88453
RG
71032011-06-07 Richard Guenther <rguenther@suse.de>
7104
7105 * stor-layout.c (initialize_sizetypes): Initialize all
7106 sizetypes based on target definitions.
7107 (set_sizetype): Remove.
7108 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
7109 * tree.h (set_sizetype): Remove.
7110
1dcad079
NC
71112011-06-07 Nick Clifton <nickc@redhat.com>
7112
7113 * config.gcc: Unify V850 architecture options and add support for
7114 newer V850 architectures.
7115 * config/v850/t-v850e: Delete.
7116
009db074
RG
71172011-06-07 Richard Guenther <rguenther@suse.de>
7118
7119 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
7120 Call set_sizetype from here.
7121
f373314f
AS
71222011-06-07 Andrew Stubbs <ams@codesourcery.com>
7123
7124 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
7125 (*maddhisi4tb, *maddhisi4tt): New define_insns.
7126
c536876e
AS
71272011-06-07 Bernd Schmidt <bernds@codesourcery.com>
7128 Andrew Stubbs <ams@codesourcery.com>
7129
7130 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
7131 multiplies.
7132 * doc/md.texi (Canonicalization of Instructions): Document widening
7133 multiply canonicalization.
7134
308dc890
JJ
71352011-06-07 Jakub Jelinek <jakub@redhat.com>
7136
7137 PR gcov-profile/49299
b8bc3a43 7138 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 7139
383d9c83
IR
71402011-06-07 Ira Rosen <ira.rosen@linaro.org>
7141
7142 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
7143 a pointer.
7144 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
7145 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
7146 vect_recog_pow_pattern): Likewise.
7147 (vect_pattern_recog_1): Remove declaration.
7148 (widened_name_p): Remove declaration. Add new argument to specify
7149 whether to check that both types are either signed or unsigned.
7150 (vect_recog_widen_mult_pattern): Update documentation. Handle
7151 unsigned patterns and multiplication by constants.
7152 (vect_pattern_recog_1): Update vect_recog_func references. Use
7153 statement information from the statement returned from pattern
7154 detection functions.
7155 (vect_pattern_recog): Update vect_recog_func reference.
7156 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
7157 multiplication by a constant use the type of the other operand.
7158
4de4b0f2
RS
71592011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
7160
7161 PR rtl-optimization/49145
7162 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
7163
a9d24544
JJ
71642011-06-06 Jakub Jelinek <jakub@redhat.com>
7165
99a5e049
JJ
7166 PR debug/49262
7167 * dwarf2out.c (native_encode_initializer): Decrement count in each
7168 iteration.
7169
04902d4c
JJ
7170 PR debug/49294
7171 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
7172 non-MODE_INT modes.
7173
a9d24544
JJ
7174 PR c++/49264
7175 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
7176 if stmt folded into nothing.
b8bc3a43
UB
7177 * tree-inline.c (fold_marked_statements): If a builtin at the end of
7178 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
7179 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
7180 to be NULL. Don't compute count and frequency if new_call is NULL.
7181
47c79d56
DN
71822011-06-04 Diego Novillo <dnovillo@google.com>
7183
7184 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
7185 (cgraph.o): Likewise.
7186 (cgraphunit.o): Likewise.
7187 * cgraphunit.c: Include lto-streamer.h
7188 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
7189 if LTO is enabled.
7190 * lto-streamer-in.c (unpack_value_fields): Call
7191 streamer_hooks.unpack_value_fields if set.
7192 (lto_materialize_tree): For unhandled nodes, first try to
7193 call lto_streamer_hooks.alloc_tree, if it exists.
7194 (lto_input_ts_decl_common_tree_pointers): Move reading of
7195 DECL_INITIAL to lto_streamer_read_tree.
7196 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
7197 (lto_streamer_read_tree): New.
7198 (lto_reader_init): Rename from lto_init_reader.
7199 Move initialization code to lto/lto.c.
7200 * lto-streamer-out.c (pack_value_fields): Call
7201 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
7202 (lto_output_tree_ref): For tree nodes that are not normally indexable,
7203 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 7204 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
7205 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
7206 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
7207 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
7208 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
7209 (lto_streamer_write_tree): New.
7210 (lto_output): Call lto_streamer_init directly.
7211 (lto_writer_init): Remove.
7212 * lto-streamer.c (streamer_hooks): New.
7213 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
7214 instead of lto_preload_common_nodes.
7215 (lto_is_streamable): Move from lto-streamer.h
7216 (lto_streamer_hooks_init): New.
7217 (streamer_hooks): New.
7218 (streamer_hooks_init): New.
7219 * lto-streamer.h (struct output_block): Forward declare.
7220 (struct lto_input_block): Likewise.
7221 (struct data_in): Likewise.
7222 (struct bitpack_d): Likewise.
7223 (struct streamer_hooks): Declare.
7224 (streamer_hooks): Declare.
7225 (lto_streamer_hooks_init): Declare.
7226 (lto_streamer_write_tree): Declare.
7227 (lto_streamer_read_tree): Declare.
7228 (streamer_hooks_init): Declare.
7229 (lto_is_streamable): Move to lto-streamer.c
7230
22afe143
AK
72312011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7232
7233 * longlong.h (smul_ppmm): The resulting register pair contains the
7234 higher order word first.
7235
3906ea1b
BS
72362011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7237
7238 PR tree-optimization/46728
7239 * builtins.c (powi_table): Remove.
7240 (powi_lookup_cost): Remove.
7241 (powi_cost): Remove.
7242 (expand_powi_1): Remove.
7243 (expand_powi): Remove.
7244 (expand_builtin_pow_root): Remove.
7245 (expand_builtin_pow): Remove.
7246 (expand_builtin_powi): Eliminate handling of constant exponent.
7247 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 7248
3598cabd
AO
72492011-06-06 Alexandre Oliva <aoliva@redhat.com>
7250
7251 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
7252
a7a110bb
AO
72532011-06-06 Alexandre Oliva <aoliva@redhat.com>
7254
7255 * dce.c (reset_unmarked_insns_debug_uses): New.
7256 (delete_unmarked_insns): Skip debug insns.
7257 (prescan_insns_for_dce): Likewise.
7258 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
7259 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
7260 active reg can be found.
7261 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
7262 (convert_regs_1): Use it.
7263
6d8402ac
AO
72642011-06-06 Alexandre Oliva <aoliva@redhat.com>
7265
7266 * tree-pretty-print.c (dump_function_header): Add flags.
7267 Don't dump decl_uid with nouid.
7268 * tree-pretty-print.h (dump_function_header): Adjust.
7269 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
7270 * passes.c (pass_init_dump_file): Pass dump_flags on.
7271 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
7272
f75e1f1e
AO
72732011-06-06 Alexandre Oliva <aoliva@redhat.com>
7274
7275 PR bootstrap/49270
7276 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
7277
275311c4
MP
72782011-06-06 Mikael Pettersson <mikpe@it.uu.se>
7279
7280 PR tree-optimization/49243
7281 * calls.c (setjmp_call_p): Also check if fndecl has the
7282 returns_twice attribute.
7283
aa4203e7
RO
72842011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7285
7286 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
7287 -ffast-math etc.
7288
48f9d59a
RH
72892011-06-06 Richard Henderson <rth@redhat.com>
7290 Georg-Johann Lay <avr@gjlay.de>
7291
7292 PR target/42210
7293 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
7294 New predicates.
7295 * config/avr/avr.md ("insv"): New insn expander.
7296 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
7297 "*insv.not.io", "*insv.reg"): New insns.
7298
11494830
HPN
72992011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
7300
7301 PR target/49285
b8bc3a43
UB
7302 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
7303 to nonimmediate_operand from memory_operand for the operand that is to
7304 be forced to memory by the expander. Lose the constraints.
11494830 7305
679e70df
EB
73062011-06-05 Eric Botcazou <ebotcazou@adacore.com>
7307
7308 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
7309 EH return when delayed branches are disabled.
7310
4d3d7f15
UB
73112011-06-05 Uros Bizjak <ubizjak@gmail.com>
7312
7313 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
7314 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
7315 calculation.
7316 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
7317 Simplify MODE_V1DF and MODE_V2SF handling.
7318 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
7319 Simplify MODE_SF handling.
7320
a45c0557
JH
73212011-06-04 Jan Hubicka <jh@suse.cz>
7322
7323 PR tree-optimization/48893
7324 PR tree-optimization/49091
7325 PR tree-optimization/49179
7326 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
7327 Bounds check.
7328
26740835
JH
73292011-06-04 Jan Hubicka <jh@suse.cz>
7330
7331 PR lto/48954
b8bc3a43
UB
7332 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
7333 bitmaps.
26740835 7334
014ab419
JW
73352011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
7336
7337 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
7338
407bcba7
JJ
73392011-06-04 Jakub Jelinek <jakub@redhat.com>
7340
7341 PR target/49281
7342 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
7343 to be strictly smaller than 1 << shiftcount.
7344
e3195c52
JH
73452011-06-04 Jan Hubicka <jh@suse.cz>
7346
7347 PR tree-optimize/48929
7348 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
7349 of empty predicate.
7350
047d33a0
AO
73512011-06-04 Alexandre Oliva <aoliva@redhat.com>
7352
7353 PR debug/48333
7354 * calls.c (emit_call_1): Prefer the __builtin declaration of
7355 builtin functions.
7356
dc587809
DN
73572011-06-03 Diego Novillo <dnovillo@google.com>
7358
7359 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
7360 (lto_input_tree_pointers): Likewise.
7361 * lto-streamer-out.c (pack_value_fields): Likewise.
7362 (lto_output_tree_pointers): Likewise.
7363 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
7364 and OPTIMIZATION_NODE.
7365
58cd1d70
RO
73662011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7367
7368 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
7369 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
7370 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
7371 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
7372 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
7373 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
7374 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
7375 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
7376 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
7377 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
7378 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
7379 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
7380 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
7381 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
7382 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
7383 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
7384 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
7385 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
7386 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
7387 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
7388 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
7389 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
7390 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
7391 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
7392 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
7393 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
7394 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
7395 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
7396 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
7397 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
7398 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
7399 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
7400 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
7401 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
7402 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
7403 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
7404 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
7405 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
7406 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
7407 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
7408 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
7409 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
7410 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
7411 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
7412 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
7413 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
7414 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
7415 * system.h (MD_UNWIND_SUPPORT): Poison.
7416 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
7417 * doc/tm.texi: Regenerate.
7418 * unwind-dw2.c: Include md-unwind-support.h instead of
7419 MD_UNWIND_SUPPORT.
7420 * config/ia64/unwind-ia64.c: Likewise.
7421 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7422
10c63ba4 74232011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
7424
7425 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
7426
1b7a0148
RH
74272011-06-03 Richard Henderson <rth@redhat.com>
7428 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7429
7430 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
7431 (sigill_hdlr): Correct insn, insn size.
7432 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
7433
737346fa
RO
74342011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7435
7436 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
7437 t-slibgcc-dummy.
7438 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
7439 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
7440 * config/mips/t-iris: Remove.
7441 * config/mips/t-irix6: New file.
7442 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
7443
c192cee6
RO
74442011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7445
7446 * Makefile.in (LIB2ADDEHDEP): Remove.
7447 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
7448 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
7449 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
7450 * config/t-darwin (LIB2ADDEHDEP): Remove.
7451 * config/t-freebsd (LIB2ADDEHDEP): Remove.
7452 * config/t-linux (LIB2ADDEHDEP): Remove.
7453
d5828cc7
DN
74542011-06-03 Diego Novillo <dnovillo@google.com>
7455
7456 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
7457 (lto_register_var_decl_in_symtab): Likewise.
7458 (lto_register_function_decl_in_symtab): Likewise.
7459 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 7460 logic to uniquify_nodes.
d5828cc7 7461
ee33b5f0
RO
74622011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7463
7464 * config/alpha/t-osf5: Remove.
7465 * config/alpha/t-osf-pthread: Remove.
7466 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
7467 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
7468
16868d84
JB
74692011-06-03 Julian Brown <julian@codesourcery.com>
7470
7471 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
7472 (strongarm1110): Use strongarm tuning.
4d3d7f15 7473 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
7474 * config/arm/arm.c (arm_strongarm_tune): New.
7475 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7476 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
7477 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
7478 setting, using previous defaults or 1 for Cortex-A5.
7479 (arm_option_override): Set max_insns_skipped from current tuning.
7480
1cec1285
NS
74812011-06-03 Nathan Sidwell <nathan@codesourcery.com>
7482
7483 * doc/install.texi (Options specification): Document --with-specs.
7484
eed55426
RR
74852011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7486
7487 * config/arm/neon.md (orndi3_neon): Actually split it.
7488
d5b6cc25
AO
74892011-06-02 Alexandre Oliva <aoliva@redhat.com>
7490
7491 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
7492 * var-tracking.c (reverse_op): Limite recurse depth to 5.
7493
2ba42841
AO
74942011-06-02 Alexandre Oliva <aoliva@redhat.com>
7495
7496 PR debug/47590
7497 * target.def (delay_sched2, delay_vartrack): New.
7498 * doc/tm.texi.in: Update.
7499 * doc/tm.texi: Rebuild.
7500 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
7501 * var-tracking.c (gate_handle_var_tracking): Likewise.
7502 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
7503 (bfin_flag_var_tracking): Drop.
7504 (output_file_start): Don't save and override flag_var_tracking.
7505 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
7506 (bfin_reorg): Test original variables.
7507 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7508 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
7509 (ia64_flag_var_tracking): Drop.
7510 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7511 (ia64_file_start): Don't save and override flag_var_tracking.
7512 (ia64_override_options_after_change): Ditto
7513 flag_schedule_insns_after_reload.
7514 (ia64_reorg): Test original variables.
7515 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
7516 (picochip_flag_var_tracking): Drop.
7517 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7518 (picochip_option_override): Don't save and override
7519 flag_schedule_insns_after_reload.
7520 (picochip_asm_file_start): Ditto flag_var_tracking.
7521 (picochip_reorg): Test original variables.
7522 * config/spu/spu.c (spu_flag_var_tracking): Drop.
7523 (TARGET_DELAY_VARTRACK): Define.
7524 (spu_var_tracking): New.
7525 (spu_machine_dependent_reorg): Call it.
7526 (asm_file_start): Don't save and override flag_var_tracking.
7527
a700b5f0
KK
75282011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
7529
7530 PR target/49163
7531 * config/sh/predicates.md (general_movsrc_operand): Return 0
7532 for memory and memory subreg of which address is an invalid
7533 indexed address for QI and HImode.
7534 (general_movdst_operand): Likewise.
7535
76015c34
EB
75362011-06-02 Eric Botcazou <ebotcazou@adacore.com>
7537
7538 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
7539 edges only, when there is a non-local label in the function.
7540 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
7541
4e76acd2
UB
75422011-06-02 Uros Bizjak <ubizjak@gmail.com>
7543
7544 * config/i386/constraints.md (Y3): New register constraint.
7545 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
7546 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
7547 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
7548 *sse2_interleave_lowv2df.
7549
288f605f
JB
75502011-06-02 Julian Brown <julian@codesourcery.com>
7551
7552 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
7553 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
7554 (arm_cortex_a5_tune): New.
7555
7ec70105
JB
75562011-06-02 Julian Brown <julian@codesourcery.com>
7557
153668ec
JB
7558 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
7559 * config/arm/arm.c (arm_default_branch_cost): New.
7560 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7561 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
7562 (arm_fa726_tune): Set branch_cost field using
7563 arm_default_branch_cost.
7564 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
7565 current_tune structure.
7566 * dojump.c (tm_p.h): Include file.
7567
75682011-06-02 Julian Brown <julian@codesourcery.com>
7569
7570 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
7571 tuning.
7ec70105
JB
7572 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
7573 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
7574 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
7575 field.
7576 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
7577 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
7578 (arm_fa726te_tune): Add prefer_constant_pool setting.
7579 (arm_v6t2_tune, arm_cortex_tune): New.
7580 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
7581 prefer_constant_pool setting.
7582
aad61732
UB
75832011-06-02 Uros Bizjak <ubizjak@gmail.com>
7584
4e76acd2
UB
7585 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
7586 switch statement.
aad61732
UB
7587 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
7588 (*movdf_internal) <case 6,7,8>: Ditto.
7589
4e76acd2 7590 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
7591 * config/i386/sse.md (vec_set<mode>_0): Merge with
7592 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
7593 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
7594 *vec_extractv2di_1_sse.
7595 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
7596 and *vec_concatv2di_rex64_sse.
7597
6e588138
SH
75982011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
7599
7600 PR target/48807
7601 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
7602 of cgraph_local_info for null before attempting to use it.
7603
bc6d3f91
EB
76042011-06-02 Eric Botcazou <ebotcazou@adacore.com>
7605
7606 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
7607 (current_function_dynamic_alloc_count): Delete.
7608 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
7609 (expand_builtin_nonlocal_goto): Remove obsolete comment.
7610 (expand_builtin_update_setjmp_buf): Remove dead code.
7611 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
7612 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
7613 support.
7614 * function.c (instantiate_virtual_regs): Likewise.
7615 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
7616 for a block with a single abnormal incoming edge.
7617 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 7618 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
7619 * config/sparc/sparc-protos.h (load_got_register): Declare.
7620 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7621 (load_got_register): Make global.
7622 (sparc_frame_pointer_required): Add 'static'.
7623 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
7624 (sparc_builtin_setjmp_frame_value): New function.
7625 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
7626 (save_stack_nonlocal): New expander.
7627 (restore_stack_nonlocal): Likewise.
7628 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
7629 (nonlocal_goto_internal): New insn.
7630 (goto_handler_and_restore): Delete.
7631 (builtin_setjmp_setup): Likewise.
7632 (do_builtin_setjmp_setup): Likewise.
7633 (setjmp): Likewise.
7634 (builtin_setjmp_receiver): New expander.
7635
69282fee
DL
76362011-06-01 David Li <davidxl@google.com>
7637
7638 PR middle-end/49261
7639 * tree-pretty-print.c (dump_function_header): Format cleanup.
7640
e95873dd
KK
76412011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
7642
7643 PR target/49238
7644 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
7645 needed when original operands are used for msw_skip comparison.
7646
88c15821
JJ
76472011-06-01 Jakub Jelinek <jakub@redhat.com>
7648
7649 PR debug/49250
7650 * var-tracking.c (add_uses, add_stores): Don't call
7651 cselib_subst_to_values on ENTRY_VALUE.
7652
07233947
DN
76532011-06-01 Diego Novillo <dnovillo@google.com>
7654
7655 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
7656 output_record_start with LTO_null instead of output_zero.
7657 (lto_output_ts_binfo_tree_pointers): Likewise.
7658 (lto_output_tree): Likewise.
7659 (output_eh_try_list): Likewise.
7660 (output_eh_region): Likewise.
7661 (output_eh_lp): Likewise.
7662 (output_eh_regions): Likewise.
7663 (output_bb): Likewise.
7664 (output_function): Likewise.
7665 (output_unreferenced_globals): Likewise.
7666 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
7667 instead of NUM_TREE_CODES.
7668 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
7669 (lto_output_int_in_range): Change << to >> when shifting VAL.
7670
4ee3537a
DN
76712011-06-01 Diego Novillo <dnovillo@google.com>
7672
7673 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
7674 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
7675
02972eaf
RS
76762011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7677
7678 PR target/45074
7679 * optabs.h (valid_multiword_target_p): Declare.
7680 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
7681 doing multi-word operations.
7682 * optabs.c (expand_binop): Likewise.
7683 (expand_doubleword_bswap): Likewise.
7684 (expand_absneg_bit): Likewise.
7685 (expand_unop): Likewise.
7686 (expand_copysign_bit): Likewise.
7687 (multiword_target_p): New function.
7688
4d41c2d1
RS
76892011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7690
7691 PR rtl-optimization/48830
7692 PR rtl-optimization/48808
7693 PR rtl-optimization/48792
7694 * reload.c (push_reload): Check contains_reg_of_mode.
7695 * reload1.c (strip_paradoxical_subreg): New function.
7696 (gen_reload_chain_without_interm_reg_p): Use it to handle
7697 paradoxical subregs.
7698 (emit_output_reload_insns, gen_reload): Likewise.
7699
5f57dccb
DL
77002011-06-01 David Li <davidxl@google.com>
7701
7702 * predict.c : Change pass name
7703 * ipa.c: Ditto.
7704 * dce.c: Ditto.
7705 * tree-profile.c: Ditto.
7706 * except.c: Ditto.
7707
ea6cf778
DL
77082011-06-01 David Li <davidxl@google.com>
7709
7710 * tree-pretty-print.c (dump_function_header): New function.
7711 * final.c (rest_of_clean_state): Use header dumper.
7712 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
7713 * passes.c (pass_init_dump_file): Use header dumper.
7714
ebdc0d4b
JJ
77152011-06-01 Jakub Jelinek <jakub@redhat.com>
7716
eeeb9b49
JJ
7717 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
7718 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
7719 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
7720 New functions.
7721 (mem_loc_descriptor): Use them.
7722
ebdc0d4b
JJ
7723 * var-tracking.c (create_entry_value): New function.
7724 (vt_add_function_parameter): Use it.
7725
0699e415
RO
77262011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7727
7728 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
7729 Include <signal.h>, <ucontext.h>.
7730 (sigill_caught): Define.
7731 (sigill_hdlr): New function.
7732 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
7733 insns can be executed.
aad61732 7734 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
7735 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
7736
ca24c5ad
RO
77372011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7738
7739 * config/t-slibgcc-darwin: Move to ...
aad61732 7740 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
7741 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
7742 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
7743 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 7744 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
7745 Remove i386/t-crtstuff from tmake_file.
7746 (i[34567]86-*-solaris2*): Remove t-svr4,
7747 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
7748 t-slibgcc-dummy.
7749 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
7750 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
7751 sparc/t-crtfm from tmake_file.
7752 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
7753 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
7754 Remove extra_parts.
7755 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
7756 * config/i386/t-nwld (SHLIB_LINK): Remove.
7757 * config/i386/t-rtems-i386: Rename to ...
7758 * config/i386/t-rtems: ... this.
7759 ($(T)crti.o, $(T)crtn.o): Remove.
7760 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
7761 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
7762 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
7763 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
7764 EXTRA_MULTILIB_PARTS): Remove.
7765 * config/sparc/t-sol2-64: Likewise.
7766 * config/sparc/t-sol2: Remove.
7767 * config/sparc/t-crtin: Remove.
7768 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
7769 * config/i386/gmon-sol2.c: Remove.
7770 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
7771 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
7772 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
7773 * config/i386/sol2-gc1.asm: Remove.
7774 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
7775 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
7776 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
7777 * config/t-slibgcc-sld: Remove.
7778
a78d13c3
JJ
77792011-06-01 Jakub Jelinek <jakub@redhat.com>
7780
7781 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
7782 base_type_for_mode with op_mode instead of mode.
7783
572070ef
PB
77842011-06-01 Paul Brook <paul@cpodesourcery.com>
7785
7786 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
7787 Cortex-A15.
7788 * config/arm/arm-tune.md: Regenerate.
7789 * config/arm/arm-tables.opt: Regenerate.
7790 * config/arm/arm.c (FL_DIV): Rename...
7791 (FL_THUMB_DIV): ... to this.
7792 (FL_ARM_DIV): Define.
7793 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
7794 (arm_arch_hwdiv): Remove.
7795 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
7796 (arm_issue_rate): Add cortexr5.
7797 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
7798 __ARM_ARCH_EXT_IDIV__.
7799 (TARGET_IDIV): Define.
7800 (arm_arch_hwdiv): Remove.
7801 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
7802 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
7803 (divsi3, udivsi3): New patterns.
7804 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
7805 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
7806
11026b51
MJ
78072011-06-01 Martin Jambor <mjambor@suse.cz>
7808
7809 * ipa-utils.c (ipa_dfs_info): New field scc_no.
7810 * ipa-utils.c (searchc): Set scc_no.
7811
b6156cf2
MJ
78122011-06-01 Martin Jambor <mjambor@suse.cz>
7813
7814 * ipa-utils.c (searchc_env): New field allow_overwritable.
7815 (searchc): do not ignore edges to overwritable nodes if indicated
7816 by env->allow_overwritable.
7817 (ipa_reduced_postorder): Set env.allow_overwritable.
7818
6807da97
RG
78192011-06-01 Richard Guenther <rguenther@suse.de>
7820
7821 * tree.c (free_lang_data): Do not reset boolean_type_node nor
7822 char_type_node.
7823 * lto-streamer.c (lto_record_common_node): Take node pointer,
7824 do not register types.
7825 (lto_preload_common_nodes): Explicitly skip preloading nodes
7826 that differ between frontends.
7827
66bd20e7 78282011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
7829
7830 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
7831 NON_FLOAT_REGS.
7832
66bd20e7 78332011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
7834
7835 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
7836 parameter value for dump. Dump cost on outermost call only.
7837 (rs6000_memory_move_cost): Dump cost on outermost call only.
7838
7351d8da
JJ
78392011-05-31 Jakub Jelinek <jakub@redhat.com>
7840
ead7c399
JJ
7841 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
7842 DW_OP_GNU_convert ops.
7843
509f4495
JJ
7844 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
7845 cselib_preserve_constants.
7846 (cselib_lookup_1): If cselib_preserve_constants,
7847 a new VALUE is being created for REG and there is a VALUE for the
7848 same register in wider mode, add another loc with lowpart SUBREG of
7849 the wider VALUE.
7850 (cselib_subst_to_values): Handle ENTRY_VALUE.
7851 * var-tracking.c (replace_expr_with_values): Return NULL for
7852 ENTRY_VALUE too.
7853 * dwarf2out.c (convert_descriptor_to_signed): New function.
7854 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
7855 instead of two shifts.
7856 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
7857 the right mode if needed.
7858 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
7859 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
7860 convert_descriptor_to_signed.
7861 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
7862 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
7863
7351d8da
JJ
7864 PR target/48688
7865 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
7866
5cc93ee0
UB
78672011-05-31 Uros Bizjak <ubizjak@gmail.com>
7868
7869 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
7870 of X87MODEI12 and SWI48x instead of SSEMODEI24.
7871 (SWI248x): New mode iterator, rename from X87MODEI.
7872 (X87MODEI): Remove mode iterator.
7873 (X87MODEI12): Ditto.
7874 (SSEMODEI24): Ditto.
7875
f0686e78
AO
78762011-05-31 Alexandre Oliva <aoliva@redhat.com>
7877
7878 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
7879 * doc/invoke.texi: Document max-vartrack-expr-depth.
7880 * var-tracking.c (EXPR_DEPTH): New.
7881 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
7882
f3308413
AO
78832011-05-31 Alexandre Oliva <aoliva@redhat.com>
7884
7885 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
7886 * config/i386/sse.md: Add n to negated FMA pattern names.
7887
28c14a04
AO
78882011-05-31 Alexandre Oliva <aoliva@redhat.com>
7889
7890 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
7891
70efc82d
AO
78922011-05-31 Alexandre Oliva <aoliva@redhat.com>
7893
5cc93ee0 7894 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 7895
6ba5d856
UB
78962011-05-31 Uros Bizjak <ubizjak@gmail.com>
7897
7898 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
7899 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
7900
79012011-05-31 Uros Bizjak <ubizjak@gmail.com>
7902
7903 * config/i386/i386.md (*movtf_internal): Avoid allocating general
7904 registers. Penalize F*r->o alternative to prevent partial memory
7905 stalls. Slightly penalize *roF->*r alternative. Generate SSE
7906 CONST_DOUBLE immediates when optimizing function for size. Do not move
7907 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7908 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
7909 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
7910 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
7911 alternatives.
7912 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
7913
7914 (fp_register_operand splitters): Use fp_register_operand
7915 constraint. Do not use FP_REG_P in insn condition.
7916 (any_fp_register_operand splitters): Use any_fp_register_operand
7917 constraint. Do not use ANY_FP_REG_P in insn condition.
7918
533c07c5
JH
79192011-05-31 Jan Hubicka <jh@suse.cz>
7920
7921 * cgraph.h (cgraph_inline_failed_t): Give enum a name
7922 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
7923 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
7924 (lto_output_edge): Use output_enum and var_len_unsigned.
7925 (lto_output_varpool_node): Likewise.
7926 (input_overwrite_node): Do not take resolution parameter;
7927 extract it from a bitpack.
7928 (input_node): Do not read resolution; use input_enum and
7929 var_len_unsigned.
7930 (input_varpool_node): Likewise.
7931 (input_edge): Likewise.
7932 (input_cgraph_1): Likewise.
7933
2611db71
RG
79342011-05-31 Richard Guenther <rguenther@suse.de>
7935
7936 * gimple.c (gimple_register_canonical_type): Do not register
7937 any types via gimple_register_type.
7938
b9e57365
JH
79392011-05-31 Jan Hubicka <jh@suse.cz>
7940
7941 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
7942 of thunks.
7943
35979cc2
JJ
79442011-05-31 Jakub Jelinek <jakub@redhat.com>
7945
7946 PR rtl-optimization/49235
7947 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
7948 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
7949
8f7de592
IR
79502011-05-31 Ira Rosen <ira.rosen@linaro.org>
7951
7952 PR tree-optimization/49093
7953 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
7954 data references.
7955
8d8a3bda
DS
79562011-05-31 Dodji Seketeli <dodji@redhat.com>
7957
7958 PR debug/49047
7959 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 7960 for concrete functions containing the code of cloned functions.
8d8a3bda 7961
2e87621c
RG
79622011-05-31 Richard Guenther <rguenther@suse.de>
7963
7964 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
7965 to ...
7966 (forward_propagate_into_comparison_1): ... this.
7967 (forward_propagate_comparison): Rename to ...
7968 (forward_propagate_into_comparison): ... this. Split out
7969 real forward propagation code to ...
7970 (forward_propagate_comparison): ... this.
7971 (forward_propagate_into_gimple_cond): Remove looping.
7972 (forward_propagate_into_cond): Likewise.
7973 (simplify_not_neg_expr): Return whether we have done something.
7974 (simplify_gimple_switch): Likewise.
7975 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
7976 (ssa_forward_propagate_and_combine): ... this. Re-structure
7977 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 7978 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
7979 (pass_forwprop): Adjust.
7980
5a880d5d
ILT
79812011-05-30 Ian Lance Taylor <iant@google.com>
7982
7983 * godump.c (go_format_type): Correct length of name added to
7984 obstack for anonymous field.
7985
5f133038
KK
79862011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
7987
7988 PR target/49186
7989 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
7990 part of the second operand is 0.
7991
b17d5426
UB
79922011-05-30 Uros Bizjak <ubizjak@gmail.com>
7993
7994 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
7995 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
7996 to memory for !TARGET_MEMORY_MISMATCH_STALL.
7997 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 7998 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
7999 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
8000 when optimizing function for size. Do not move CONST_DOUBLEs
8001 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
8002 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
8003 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
8004 check for ANY_FP_REGNO_P instead.
8005 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
8006 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
8007 function for speed.
8008 * config/i386/i386.c (ix86_option_override_internal): Do not
8009 set TARGET_INTEGER_DFMODE_MOVES here.
8010
a0cd843f
L
80112011-05-30 H.J. Lu <hongjiu.lu@intel.com>
8012
8013 PR target/49168
aad61732 8014 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 8015
006a5f38
JJ
80162011-05-30 Jakub Jelinek <jakub@redhat.com>
8017
8018 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
8019 DW_TAG_rvalue_reference_type even for
8020 -gdwarf-4 -fno-debug-types-section.
8021
6e96f98a
BS
80222011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8023
8024 PR tree-optimization/46728
8025 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
8026 (build_and_insert_binop): New.
8027 (gimple_expand_builtin_pow): Reorder args for
8028 build_and_insert_call; use build_and_insert_binop; add more
8029 optimizations for fractional exponents.
b17d5426 8030
4f60111f
NF
80312011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
8032
8033 PR bootstrap/49190
8034
8035 Revert:
8036 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8037
8038 * tree.h (struct tree_identifier): Inherit from tree_typed, not
8039 tree_common.
8040 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8041 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8042 TS_BASE instead of TS_COMMON.
8043 * varasm.c (assemble_name): Remove assert.
8044
3fd7879d
RS
80452011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
8046
8047 * config.gcc: Keep obselete list sorted.
8048
80060f7a
JJ
80492011-05-30 Jakub Jelinek <jakub@redhat.com>
8050 Eric Botcazou <ebotcazou@adacore.com>
8051
8052 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
8053 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
8054 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
8055 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
8056 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
8057
17e99cdb
RG
80582011-05-30 Richard Guenther <rguenther@suse.de>
8059
8060 * gimple.c (gimple_types_compatible_p_1): Compare record
8061 and union type members properly.
8062
42b05b6e
RG
80632011-05-30 Richard Guenther <rguenther@suse.de>
8064
8065 PR tree-optimization/49210
6ba5d856
UB
8066 * ipa-split.c (split_function): Care for the case where the call
8067 result is not trivially convertible to the result holding variable.
42b05b6e 8068
f3321158
RG
80692011-05-30 Richard Guenther <rguenther@suse.de>
8070
8071 PR tree-optimization/49218
8072 * tree-vrp.c (adjust_range_with_scev): Properly check whether
8073 overflow occured.
8074
d12d8efe
RG
80752011-05-30 Richard Guenther <rguenther@suse.de>
8076
8077 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
8078 New function split out from ...
8079 (forward_propagate_into_gimple_cond): ... here. Adjust.
8080 (forward_propagate_into_cond): Likewise.
8081 (forward_propagate_comparison): Also propagate into
8082 comparisons on assignment RHS. Change return value to
8083 behave similar to forward_propagate_into_cond.
8084 (tree_ssa_forward_propagate_single_use_vars): Handle
8085 strict-overflow warnings properly for forward_propagate_comparison.
8086
df33b41f
RO
80872011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8088
8089 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
8090 from plugin linker.
8091 * configure: Regenerate.
8092
69940d4d
IR
80932011-05-30 Ira Rosen <ira.rosen@linaro.org>
8094
8095 PR tree-optimization/49199
8096 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 8097 non-reduction operands are either defined in the loop or by induction.
69940d4d 8098
226c52aa
XDL
80992011-05-29 Xinliang David Li <davidxl@google.com>
8100
8101 * opts-global.c (handle_common_deferred_options): Handle new options.
8102 * passes.c (register_one_dump_file): Call register_pass_name.
8103 (execute_one_pass): Check explicit enable/disable flag.
8104 (passr_hash): New function.
8105 (passr_eq): Ditto.
8106 (register_pass_name): Ditto.
8107 (get_pass_by_name): Ditto.
8108 (pass_hash): Ditto.
8109 (pass_eq): Ditto.
8110 (enable_pass): Ditto.
8111 (disable_pass): Ditto.
8112 (is_pass_explicitly_enabled_or_disabled): Ditto.
8113
491d8eed
UB
81142011-05-29 Uros Bizjak <ubizjak@gmail.com>
8115
8116 * config/i386/i386.md (*movoi_internal_avx): Use
8117 standard_sse_constant_opcode for alternative 0.
8118 (*movti_internal_sse): Ditto.
8119 (*movti_internal_rex64): Use standard_sse_constant_opcode for
8120 alternative 2.
8121 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
8122 sselog1 type moves.
8123 (*movsi_internal): Ditto.
8124 (*movdi_internal): Ditto. Add ssecvt type moves.
8125
eb93b31f
EB
81262011-05-29 Eric Botcazou <ebotcazou@adacore.com>
8127
8128 PR target/48830
8129 * rtlanal.c (simplify_subreg_regno): Adjust comment.
8130
3f831b7d
JJ
81312011-05-29 Jakub Jelinek <jakub@redhat.com>
8132
8133 PR rtl-optimization/49095
8134 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
8135 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
8136
ee3ee488
RS
81372011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
8138
8139 PR target/43995
8140 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
8141 recurse_p argument. Only follow register copies if it is set,
8142 and prevent mips_find_pic_call_symbol from recursing.
8143 (mips_find_pic_call_symbol): Add a recurse_p argument.
8144 Pass it to mips_pic_call_symbol_from_set.
8145 (mips_annotate_pic_calls): Update accordingly.
8146
65f3dedb
RS
81472011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
8148
8149 * emit-rtl.c (try_split): Use a loop to search for
8150 NOTE_INSN_CALL_ARG_LOCATIONs.
8151
61e374ab
RG
81522011-05-29 Richard Guenther <rguenther@suse.de>
8153
8154 PR tree-optimization/49217
8155 * ipa-pure-const.c (propagate_pure_const): Fix typos.
8156
fac009a8
JH
81572011-05-28 Jan Hubicka <jh@suse.cz>
8158
8159 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
8160 length.
8161 (string_slot_free): Remove
8162 (create_output_block): Initialize obstack.
8163 (destroy_output_block): Free obstack.
8164 (lto_string_index): Add PERSISTENT parameter; do not duplicate
8165 the string unless it needs to be added into the hash.
8166 (lto_output_string_with_length): Add persistent attribute;
8167 handle NULL strings.
8168 (lto_output_string): Add PERSISTENT parameter.
8169 (output_string_cst, output_identifier): Simplify.
8170 (lto_output_location_bitpack): Update.
8171 (lto_output_builtin_tree): Update.
8172 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
8173 (lto_output_string, lto_output_string_with_length): Remove
8174 declarations; functions are static now.
fac009a8 8175
fa766006
JH
81762011-05-28 Jan Hubicka <jh@suse.cz>
8177
8178 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
8179 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
8180 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
8181 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
8182 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
8183 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
8184 unpack_ts_decl_with_vis_value_fields,
8185 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
8186 lto_get_builtin_tree): Use enum and variable length i/o.
8187 * basic-block.h (profile_status_d): Add PROFILE_LAST.
8188 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
8189 New functions.
8190 (bp_pack_enum, bp_unpack_enum): New macros.
8191
e092158b
RS
81922011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
8193
8194 * genrecog.c: Remove redundant forward declarations.
8195
7ca2afa0
RS
81962011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
8197
8198 * config.gcc: Deprecate mips*-*-openbsd*.
8199
a601a53a
RS
82002011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
8201
8202 PR bootstrap/49195
8203 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
8204 for match_op_dup.
8205
fc64b448
AP
82062011-05-27 Andrew Pinski <pinskia@gmail.com>
8207
8208 PR middle-end/48981
8209 * gengtype.c (vec_prefix_type): New function.
8210 (note_def_vec): Use vec_prefix_type and change the length
8211 attribute to be based on the prefix.
8212 * vec.c: Include coretypes.h before vec.h.
8213 (struct vec_prefix): Remove.
8214 (vec_gc_p_reserve): Change the offsetof to sizeof.
8215 (vec_gc_p_reserve_exact): Likewise.
8216 (vec_heap_p_reserve): Likewise.
8217 (vec_heap_p_reserve_exact): Likewise.
8218 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
8219 (vec_stack_p_reserve): Change the offsetof to sizeof.
8220 (vec_stack_p_reserve_exact): Likewise.
8221 * vec.h (struct vec_prefix): New struct definition.
8222 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
8223 (VEC_T_GTY(T,B)): Likewise.
8224 (DEF_VEC_FUNC_P(T)): Use prefix field.
8225 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
8226 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
8227
ba869341
BS
82282011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8229
8230 PR tree-optimization/46728
8231 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
8232 (powi_as_mults): Add gimple_set_location.
8233 (build_and_insert_call): New.
8234 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
8235 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 8236
d296760d
AM
82372011-05-27 Alexander Monakov <amonakov@ispras.ru>
8238
8239 * doc/contrib.texi: Update copyright years.
8240 (Contributors): Add Zdenek Sojka.
8241
38e01f9e
NF
82422011-05-27 Nathan Froyd <froydnj@codesourcery.com>
8243
8244 * c-decl.c (c_push_function_context): Copy the current statement
8245 list stack.
8246 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
8247 (finish_struct): Call building_stmt_list_p instead of checking
8248 cur_stmt_list.
8249 * c-parser.c (c_parser_postfix_expression): Likewise.
8250 * c-typeck.c (c_end_compound_stmt): Likewise.
8251 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
8252 * tree-iterator.c (stmt_list_cache): Change to a VEC.
8253 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
8254 (free_stmt_list): Likewise.
8255 * tree.h (struct tree_statement_list): Include typed_tree instead
8256 of tree_common.
8257 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
8258 as TS_TYPED instead of TS_COMMON.
8259
8950516e 82602011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 8261 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
8262
8263 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
8264 (HAVE_AS_IX86_TLSGDPTL): Define.
8265 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
8266 (HAVE_AS_IX86_TLSLDMPLT): Define.
8267 * configure: Regenerate.
8268 * config.in: Regenerate.
8269 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
8270 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
8271 TARGET_SUN_TLS, use @tlsgdplt or @plt.
8272 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
8273 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
8274 @tlsldmplt or @plt.
8275 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
8276
b0bd15f7
BS
82772011-05-27 Bernd Schmidt <bernds@codesourcery.com>
8278
8279 * sched-int.h (struct _haifa_deps_insn_data): New members cond
8280 and reverse_cond.
8281 (INSN_COND, INSN_REVERSE_COND): New macros.
8282 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
8283 once.
8284 (sched_get_condition_with_rev): Cache the results, and look them up
8285 if possible.
8286 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
8287 are clobbered by the current insn.
8288 * target.def (exposed_pipline): New sched data hook.
8289 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
8290 * doc/tm.texi: Regenerate.
8291
fa65a9cf
BS
82922011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8293
8294 PR tree-optimization/49170
8295 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
8296 sincos or cexp.
b0bd15f7 8297
c2299dfe
RG
82982011-05-27 Richard Guenther <rguenther@suse.de>
8299
8300 PR middle-end/49189
8301 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
8302 of comparisons.
8303
a95b23b4
BS
83042011-05-27 Bernd Schmidt <bernds@codesourcery.com>
8305
8306 * haifa-sched.c (sched_scan_info): Remove.
8307 (schedule_block): Call sched_extend_luids rather than sched_init_luids
8308 with NULL args.
8309 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
8310 Remove functions.
8311 (sched_scan): Remove.
8312 (sched_extend_luids): Renamed from luids_extend_insn and no longer
8313 static. All callers changed.
8314 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
8315 static. All callers changed.
8316 (sched_init_luids): Remove all arguments except the first. All
8317 callers changed. Don't use sched_scan.
8318 (haifa_init_h_i_d): Likewise.
8319 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
8320 manually rather than using sched_init_luids. Likewise with
8321 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
8322 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
8323 rather than sched_init_luids with NULL args.
8324 * sel-sched-ir.c (new_insns): Remove variable.
8325 (sched_scan): New static function, previously in haifa-sched.c. Remove
8326 all arguments but the first two; all callers changed.
8327 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
8328 rather than sched_init_luids.
8329 (sel_init_bbs): Remove second argument. All callers changed.
8330 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
8331 with NULL arguments.
8332 (create_insn_rtx_from_pattern): Likewise.
8333 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
8334 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
8335 (sched_init_insn_luid, sched_extend_luids): Declare.
8336 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
8337 declarations.
8338
f8f972fc
RB
83392011-05-27 Richard Guenther <rguenther@suse.de>
8340
8341 PR middle-end/49177
8342 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
8343 A CMP B ? (T) true : (T) false for non-integral types T again.
8344
51a9ed47
JH
83452011-05-27 Jan Hubicka <jh@suse.cz>
8346
8347 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
8348 so 0 means NULL string.
8349 (lto_output_string_with_length): ... here.
f8f972fc
RB
8350 (lto_output_string, output_string_cst, output_identifier): Update
8351 handling of NULL strings.
51a9ed47
JH
8352 (lto_output_location_bitpack): New function.
8353 (lto_output_location): Use it.
8354 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
8355 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
8356 len values.
8357 * lto-streamer-in.c (string_for_index): Break out from ...; offset
8358 values by 1.
491d8eed 8359 (input_string_internal): ... here;
f8f972fc
RB
8360 (input_string_cst, input_identifier, lto_input_string): Update handling
8361 of NULL strings.
51a9ed47
JH
8362 (lto_input_location_bitpack): New function
8363 (lto_input_location): Use it.
f8f972fc
RB
8364 (unpack_ts_type_common_value_fields): Pack align & alias in var len
8365 values.
51a9ed47
JH
8366 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
8367 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
8368 (bp_pack_value): Sanity check the value range.
8369 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
8370 New functions.
8371 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
8372 New functions.
8373
66bd20e7 83742011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
8375
8376 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
8377 call_arg_location instructions down the floor.
8378
574e418a
VM
83792011-05-26 Vladimir Makarov <vmakarov@redhat.com>
8380
8381 PR rtl-optimization/49154
8382 * ira.c (setup_pressure_classes): Process class without sublcasses
8383 as a candidate for pressure classes.
8384
6a1a787e
RS
83852011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
8386
8387 PR rtl-optimization/48575
8388 * genrecog.c (position_type): New enum.
8389 (position): New structure.
8390 (decision): Use position structure instead of a string.
8391 (root_pos, peep2_insn_pos_list): New variables.
8392 (next_position, compare_positions): New functions.
8393 (new_decision): Use position structures instead of strings.
8394 (maybe_both_true): Likewise.
8395 (change_state): Likewise.
8396 (write_tree): Likewise.
8397 (make_insn_sequence): Likewise.
8398
92e948a8
NF
83992011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8400
8401 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
8402 TS_BASE instead of TS_COMMON.
8403 (find_decls_types_r): Check for TS_TYPED structure before looking at
8404 TREE_TYPE.
8405 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
8406 Add chain field.
8407 (BLOCK_CHAIN): Use new chain field.
8408
66bd20e7 84092011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
8410
8411 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
8412 moves expensive on Power7 also.
8413
1f498652
RG
84142011-05-26 Richard Guenther <rguenther@suse.de>
8415
8416 * fold-const.c (fold_unary_loc): Remove bogus code.
8417
a2fc3e63
NF
84182011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8419
8420 * tree.h (struct tree_identifier): Inherit from tree_typed, not
8421 tree_common.
8422 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8423 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8424 TS_BASE instead of TS_COMMON.
8425 * varasm.c (assemble_name): Remove assert.
8426
d11bf18f
BS
84272011-05-26 Bernd Schmidt <bernds@codesourcery.com>
8428
8429 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
8430 substituted first.
8431 * libgcc-std.ver: Delete file.
8432
ac8e1875
RG
84332011-05-26 Richard Guenther <rguenther@suse.de>
8434
8435 PR tree-optimization/48702
8436 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
8437 only when we know the base address is within bounds.
8438 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
8439 assume the base address of TARGET_MEM_REFs is in bounds.
8440
7e32e652
RO
84412011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8442
8443 PR target/49099
8444 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
8445 declaration in TARGET_SOLARIS.
8446
66bd20e7 84472011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
8448
8449 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 8450 The instruction is then expanded explicitly.
43660e0b
HS
8451 (supported_compare): Callable instruction.
8452 (compare): Likewise.
8453
1537737f
JJ
84542011-05-26 Jakub Jelinek <jakub@redhat.com>
8455
8456 PR c++/49165
8457 * gimplify.c (shortcut_cond_r): Don't special case
8458 COND_EXPRs if they have void type on one of their arms.
8459
7b1ac803
BS
84602011-05-26 Bernd Schmidt <bernds@codesourcery.com>
8461
8462 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
8463 to reduce duplication, and to achieve a slightly more logical order
8464 of operations.
8465
1aa9438f
JJ
84662011-05-26 Jakub Jelinek <jakub@redhat.com>
8467
8468 PR tree-optimization/49161
8469 * tree-vrp.c (struct case_info): New type.
8470 (compare_case_labels): Sort case_info structs instead of
8471 trees, and not primarily by CASE_LABEL uids but by
8472 label_for_block indexes.
8473 (find_switch_asserts): Put case labels into struct case_info
8474 array instead of TREE_VEC, adjust sorting, compare label_for_block
8475 values instead of CASE_LABELs.
8476
50fed7bf
RR
84772011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8478
8479 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
8480 ("orndi3_neon"): Likewise.
8481 ("bic<mode>3_neon"): Likewise.
8482
48df3fa6
IR
84832011-05-26 Ira Rosen <ira.rosen@linaro.org>
8484
8485 PR tree-optimization/49038
8486 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
8487 Ensure at least one epilogue iteration if required by data
8488 accesses with gaps.
8489 * tree-vectorizer.h (struct _loop_vec_info): Add new field
8490 to mark loops that require peeling for gaps.
8491 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
8492 (vect_get_known_peeling_cost): Take peeling for gaps into
8493 account.
8494 (vect_transform_loop): Generate epilogue if required by data
8495 access with gaps.
8496 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
8497 loop as requiring an epilogue if there are gaps in the end of
8498 the strided group.
8499
53febcba
ILT
85002011-05-25 Ian Lance Taylor <iant@google.com>
8501
8502 * godump.c (go_format_type): Output the first field with a usable
8503 Go type, if any.
8504
dbbc4d4c
ILT
85052011-05-25 Ian Lance Taylor <iant@google.com>
8506
8507 * godump.c (go_format_type): Check for invalid type names, pointer
8508 target types, and struct field types.
8509
f03a5402
JM
85102011-05-25 Jason Merrill <jason@redhat.com>
8511
8512 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
8513
c497c412
UB
85142011-05-25 Uros Bizjak <ubizjak@gmail.com>
8515
8516 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
8517
e470affe
L
85182011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8519
8520 * config/i386/i386.md (*movqi_extv_1)): Put back
8521 "register_operand" check in "type" calculation.
8522 (*movqi_extzv_2): Likewise.
8523
6c81b2bc
L
85242011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8525
c497c412 8526 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 8527
0c007eb2
BS
85282011-05-25 Bernd Schmidt <bernds@codesourcery.com>
8529
8530 PR bootstrap/49160
8531 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
8532 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
8533 __divxc3, __divtc3): Wrap definitions in #ifndef.
8534
521ca78e
L
85352011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8536
8537 PR target/49142
8538 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
8539 "register_operand" check and replace q_regs_operand with
8540 QIreg_operand in "type" calculation.
8541 (*movqi_extv_1): Likewise.
8542 (*movqi_extzv_2_rex64): Likewise.
8543 (*movqi_extzv_2): Likewise.
8544
8545 * config/i386/predicates.md (QIreg_operand): New.
8546
29f8b844
RG
85472011-05-25 Richard Guenther <rguenther@suse.de>
8548
8549 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
8550 type-based offset disambiguation, streamline MEM_REF and
8551 TARGET_MEM_REF handling.
8552
74838de3
L
85532011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8554
8555 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
8556 (bdesc_special_args): Add pause intrinsic.
8557
8558 * config/i386/i386.md (UNSPEC_PAUSE): New.
8559 (pause): Likewise.
8560 (*pause): Likewise.
8561 * config/i386/ia32intrin.h (__pause): Likewise.
8562
8563 * doc/extend.texi (X86 Built-in Functions): Add documentation for
8564 pause intrinsic.
8565
d24ad7d6
BS
85662011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8567
8568 PR tree-optimization/46728
8569 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
8570 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 8571
d9f8303f
NF
85722011-05-25 Nathan Froyd <froydnj@codesourcery.com>
8573
8574 * tree.h (struct tree_exp): Inherit from struct tree_typed.
8575 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
8576 instead of TS_COMMON.
8577
cdbf4541
BS
85782011-05-25 Bernd Schmidt <bernds@codesourcery.com>
8579
8580 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
8581 LIBGCC2_GNU_PREFIX is defined.
8582 (__N): New macro.
8583 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
8584 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
8585 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
8586 __clz_tab): Define using __N.
8587 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
8588 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
8589 * target.def (libfunc_gnu_prefix): New hook.
8590 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
8591 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
8592 * doc/tm.texi: Regenerate.
8593 * system.h (LIBGCC2_GNU_PREFIX): Poison.
8594 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
8595 account.
8596 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
8597 (init_optabs): Likewise for the bswap libfuncs.
8598 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
8599 and divide.
8600 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
8601 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
8602 * libgcc-std.ver: Remove.
8603 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
8604 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
8605 libgcc-std.ver.
8606 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8607 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
8608 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
8609 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
8610 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
8611 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8612 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8613 * config/fixed-bit.h (FIXED_OP): Define differently depending on
8614 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
8615 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
8616
f242c0a5
JH
86172011-05-25 Jan Hubicka <jh@suse.cz>
8618
8619 * lto-streamer-out.c (output_record_start): Use lto_output_enum
8620 (lto_output_tree): Use output_record_start.
8621 * lto-streamer-in.c (input_record_start): Use lto_input_enum
8622 (lto_get_pickled_tree): Use input_record_start.
8623 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
8624 (lto_value_range_error): New function.
8625 * lto-streamer.h (lto_value_range_error): Declare.
8626 (lto_output_int_in_range, lto_input_int_in_range): New functions.
8627 (lto_output_enum, lto_input_enum): New macros.
8628
a11e0df4
EB
86292011-05-25 Eric Botcazou <ebotcazou@adacore.com>
8630
8631 * common.opt (flag_stack_usage_info): New variable.
8632 (-Wstack-usage): New option.
8633 * doc/invoke.texi (Warning options): Document -Wstack-usage.
8634 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
8635 <OPT_fstack_usage>: Likewise.
8636 * toplev.c (output_stack_usage): Handle -Wstack-usage.
8637 * calls.c (expand_call): Test flag_stack_usage_info variable instead
8638 of flag_stack_usage.
8639 (emit_library_call_value_1): Likewise.
8640 * explow.c (allocate_dynamic_stack_space): Likewise.
8641 * function.c (instantiate_virtual_regs ): Likewise.
8642 (prepare_function_start): Likewise.
8643 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
8644 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
8645 * config/arm/arm.c (arm_expand_prologue): Likewise.
8646 (thumb1_expand_prologue): Likewise.
8647 * config/avr/avr.c (expand_prologue): Likewise.
8648 * config/i386/i386.c (ix86_expand_prologue): Likewise.
8649 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8650 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
8651 * config/mips/mips.c (mips_expand_prologue): Likewise.
8652 * config/pa/pa.c (hppa_expand_prologue): Likewise.
8653 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8654 * config/s390/s390.c (s390_emit_prologue): Likewise.
8655 * config/sh/sh.c (sh_expand_prologue): Likewise.
8656 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8657 * config/spu/spu.c (spu_expand_prologue): Likewise.
8658
e7cfe241
RG
86592011-05-25 Richard Guenther <rguenther@suse.de>
8660
8661 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
8662 (gimple_canonical_types_compatible_p): Likewise.
8663
c5235f4c
JH
86642011-05-25 Jan Hubicka <jh@suse.cz>
8665
8666 PR middle-end/49062
8667 * ipa.c (function_and_variable_visibility): Only add to same
8668 comdat group list if DECL_ONE_ONLY.
8669
8242a0f6
AB
86702011-05-25 Andrey Belevantsev <abel@ispras.ru>
8671
8672 PR rtl-optimization/49014
8673 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
8674
642a011d
JJ
86752011-05-25 Jakub Jelinek <jakub@redhat.com>
8676
8677 PR target/49128
8678 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8679
30a435d8
VM
86802011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8681
8682 PR rtl-optimization/48757
8683 * ira-build.c (loop_with_eh_edge_p): Rename to
8684 loop_with_complex_edge_p, check edges on complexity, make function
8685 conditional.
8686 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
8687 conditional.
8688
24d1bbc7
EB
86892011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8690
8691 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
8692 force flag_ira_share_save_slots to 0.
8693
65773087
EB
86942011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8695
8696 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
8697 (vt_initialize): Set PROLOGUE_BB unconditionally.
8698 Add block comment about CFA_BASE_RTX machinery.
8699 Reset FP_CFA_OFFSET to -1 on all invalid paths.
8700 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
8701
4e26ba90
NP
87022011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
8703
8704 PR objc/48187
8705 * c-parser.c (c_parser_objc_class_instance_variables): More robust
8706 parsing of syntax error in ObjC instance variable lists. In
8707 particular, avoid an infinite loop if there is a stray ']'.
8708 Updated error message.
8709
936fd13c
ILT
87102011-05-24 Ian Lance Taylor <iant@google.com>
8711
8712 * godump.c (go_define): Don't accept a string immediately after
8713 another operand.
8714
f17333e3
ILT
87152011-05-24 Ian Lance Taylor <iant@google.com>
8716
8717 * godump.c (struct godump_container): Add invalid_hash field.
8718 (go_format_type): Return false if type is found in invalid_hash.
8719 (go_output_typedef): Add invalid type to invalid_hash.
8720 (go_finish): Create and delete invalid_hash.
8721
d24ad7d6 87222011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 8723
78be79d5
BS
8724 PR tree-optimization/46728
8725 * tree-ssa-math-opts.c (powi_table): New.
8726 (powi_lookup_cost): New.
8727 (powi_cost): New.
8728 (powi_as_mults_1): New.
8729 (powi_as_mults): New.
8730 (gimple_expand_builtin_powi): New.
8731 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
8732 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 8733
caee412b
RO
87342011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8735
8736 PR target/3746
8737 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
8738 mips-tdump native.
8739 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
8740 * mips-tdump.c: Likewise.
8741
5eed4f27
L
87422011-05-24 H.J. Lu <hongjiu.lu@intel.com>
8743
8744 PR target/49128
8745 * config/i386/driver-i386.c (host_detect_local_cpu): Always
8746 add -mno-XXX. Handle FMA.
8747
8c5fdaae
VM
87482011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8749
8750 PR rtl-optimization/48633
8751 * ira-build.c (loop_with_eh_edge_p): New function.
8752 (mark_loops_for_removal): Use it.
8753
87542011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
8755
8756 PR rtl-optimization/48971
8757 * ira.c (setup_pressure_classes): Don't check register move cost
8758 for classes with one registers. Don't add pressure class if there
8759 is a pressure class with the same available hard registers.
8760 Check contains_reg_of_mode. Fix a typo in collecting
8761 temp_hard_regset. Ignore hard registers not belonging to a class.
8762
df1f7315
UB
87632011-05-24 Uros Bizjak <ubizjak@gmail.com>
8764
8765 PR target/49133
8766 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
8767
ee0cb37c
EB
87682011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8769 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8770
8771 PR gcov-profile/48845
8772 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
8773
6a20ce76
RG
87742011-05-24 Richard Guenther <rguenther@suse.de>
8775
8776 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
8777 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
8778 (gimple_types_compatible_p_1): Adjust.
8779 (iterative_hash_canonical_type): Do not bother about complete vs.
8780 incomplete types.
8781 (gimple_canonical_types_compatible_p): Likewise.
8782
2fcb858c
RO
87832011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8784
8785 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
8786
96d91dcf
RG
87872011-05-24 Richard Guenther <rguenther@suse.de>
8788
8789 PR bootstrap/49078
8790 * gimple.c (gimple_register_canonical_type): Revert
8791 previous change.
8792 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
8793 does not for a tree for the case where it matters. Cache
8794 pointer-type alias-sets.
8795
1ed1641d
JM
87962011-05-24 Joseph Myers <joseph@codesourcery.com>
8797
8798 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
8799 (OBJS): Remove options.o, opts-common.o and prefix.o.
8800 (OBJS-libcommon-target): New.
8801 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
8802 (BACKEND): Include libcommon-target.a.
8803 (MOSTLYCLEANFILES): Include libcommon-target.a.
8804 (libcommon-target.a): New.
8805 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
8806 prefix.o.
8807
57dfdff0
JM
88082011-05-23 Joseph Myers <joseph@codesourcery.com>
8809
8810 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
8811 parts of output shared with the driver.
8812 * optc-gen.awk: Don't generate parts of output not shared with the
8813 driver.
8814 * opth-gen.awk: Remove GCC_DRIVER conditionals.
8815 * doc/options.texi (SourcerInclude): Mention options-save.c.
8816 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
8817 (OBJS): Add options-save.o.
8818 (options-save.c, options-save.o): New.
8819 (options.o): Update dependencies.
8820 (gcc-options.o): Remove.
8821 (mostlyclean): Remove options-save.c.
8822
0e0d82a7
JJ
88232011-05-23 Jakub Jelinek <jakub@redhat.com>
8824
9166988f
JJ
8825 PR debug/49032
8826 * dbxout.c: Include cgraph.h.
8827 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
8828 and without value expr, return NULL if no varpool node exists for
8829 it or if it is not needed.
8830 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
8831
0e0d82a7
JJ
8832 PR c/49120
8833 * c-decl.c (start_decl): Convert expr to void_type_node.
8834
65712d5c
RS
88352011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
8836
8837 PR rtl-optimization/48826
8838 * emit-rtl.c (try_split): When splitting a call that is followed
8839 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
8840
9025085e
JJ
88412011-05-23 Jakub Jelinek <jakub@redhat.com>
8842
8843 * cfgexpand.c (expand_debug_expr): For unused non-addressable
8844 parameters passed in memory prefer using DECL_INCOMING_RTL over
8845 the pseudos it will be copied into.
8846
34a061be
L
88472011-05-23 H.J. Lu <hongjiu.lu@intel.com>
8848
8849 PR target/47315
8850 * config/i386/i386.c (ix86_option_override_internal): Save the
8851 initial options after checking vzeroupper.
8852
c375a3a4
DL
88532011-05-23 David Li <davidxl@google.com>
8854
8855 PR tree-optimization/48988
8856 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
8857 Initialize has_valid_pred for each pred chain.
8858
e1caba18
RG
88592011-05-23 Richard Guenther <rguenther@suse.de>
8860
8861 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
8862 (iterative_hash_gimple_type): Always hash type names.
8863
dde05067
NF
88642011-05-23 Nathan Froyd <froydnj@codesourcery.com>
8865
8866 * c-typeck.c (build_function_call_vec): Tweak call to
8867 check_function_arguments.
8868
094f6ab3
RG
88692011-05-23 Richard Guenther <rguenther@suse.de>
8870
8871 PR tree-optimization/49115
8872 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
8873 is not necessarily carried out, do not claim it kills the ref.
8874 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
8875
9a9822e1
RG
88762011-05-23 Richard Guenther <rguenther@suse.de>
8877
8878 PR middle-end/15419
8879 * builtins.c (fold_builtin_memory_op): Be less restrictive about
8880 what pointer types we accept for folding.
8881
c8028650
RO
88822011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8883
8884 * gthr-gnat.c: Remove.
8885 * gthr-gnat.h: Remove.
8886 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
8887 * config/t-freebsd (LIB2ADDEH): Likewise.
8888 * config/t-linux (LIB2ADDEH): Likewise.
8889 * config/t-sol2 (LIB2ADDEH): Likewise.
8890 * config/ia64/t-vms (LIB2ADDEH): Likewise.
8891 * configure.ac (target_thread_file): Remove gnat handling.
8892 * configure: Regenerate.
8893 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
8894
15882fe9
TG
88952011-05-23 Tristan Gingold <gingold@adacore.com>
8896 Eric Botcazou <ebotcazou@adacore.com>
8897
8898 * gcov.c (create_file_names): If no object directory is specified,
8899 keep the directory of the file.
8900
da90c957
RO
89012011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8902
8903 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
8904 * configure: Regenerate.
8905
7bba408b
JJ
89062011-05-23 Jakub Jelinek <jakub@redhat.com>
8907
8908 PR middle-end/48973
8909 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
8910 failed and the comparison has a single bit signed type, use
8911 constm1_rtx instead of const1_rtx for true value.
8912 (do_store_flag): If ops->type is single bit signed type, disable
8913 signel bit test optimization and pass -1 instead of 1 as last
8914 parameter to emit_store_flag_force.
8915
bc69f7ff
TV
89162011-05-23 Tom de Vries <tom@codesourcery.com>
8917
8918 PR target/45098
8919 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
8920 function.
8921 (infer_loop_bounds_from_undefined): Use new function.
8922
29cedf8e
RS
89232011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8924
8925 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
8926 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
8927 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
8928 and -O0 otherwise.
8929 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
8930
afe8b6ec
EB
89312011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8932
8933 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
8934 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
8935 returns true.
8936
872dab53
RS
89372011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8938
8939 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
8940
145f6c5b
EB
89412011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8942
8943 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
8944 UNSPEC_MOVE_PIC pattern.
8945
8ac79835
EB
89462011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8947
8948 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
8949 (sparc-*-rtems*): Likewise.
8950 (sparc64-*-elf*): Likewise.
8951 (sparc64-*-rtems*): Likewise.
8952 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
8953 * config/sparc/t-crtin: New file.
8954 * config/sparc/t-sol2 (crti.o): Delete rule.
8955 (crtn.o): Likewise.
8956 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
8957 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
8958 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
8959 (ENDFILE_SPEC): Add crtn.o.
8960
5fb43dd8
TV
89612011-05-22 Tom de Vries <tom@codesourcery.com>
8962
8963 PR middle-end/48689
8964 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
8965 CODE_CONTAINS_STRUCT (TS_COMMON).
8966
ccb1b17b
JJ
89672011-05-22 Jakub Jelinek <jakub@redhat.com>
8968
8969 PR middle-end/49029
8970 * expmed.c (extract_fixed_bit_field): Test whether target can be used
8971 only after deciding which mode to use.
8972
50ad7db2
TV
89732011-05-22 Tom de Vries <tom@codesourcery.com>
8974
8975 PR target/45098
dc0a3366 8976 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
8977 for call to get_shiftadd_cost.
8978
ef230b38
UB
89792011-05-22 Uros Bizjak <ubizjak@gmail.com>
8980
8981 PR target/49104
8982 * config/i386/cpuid.h (bit_MMXEXT): New define.
8983
15f072f9
NC
89842011-05-22 Nick Clifton <nickc@redhat.com>
8985
8986 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
8987 initialisation of non-existant args[2] element. Use args[] array
8988 not arg[] array to pass arguments to build_function_type_list.
8989
e38fdc94
IR
89902011-05-22 Ira Rosen <ira.rosen@linaro.org>
8991
8992 PR tree-optimization/49087
ef230b38 8993 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 8994
5b018c65
JM
89952011-05-21 Jason Merrill <jason@redhat.com>
8996
8997 PR c++/49092
8998 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
8999 static storage duration.
9000
abd9a770
EB
90012011-05-21 Eric Botcazou <ebotcazou@adacore.com>
9002
9003 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
9004 frame pointer.
9005
bd9a3248
EB
90062011-05-21 Eric Botcazou <ebotcazou@adacore.com>
9007
9008 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
9009 false if there are call-saved registers here...
9010 (sparc_can_use_return_insn_p): ...but here instead.
9011 (save_or_restore_regs): Fix thinko.
9012 (sparc_expand_prologue): Use current_function_is_leaf.
9013 (sparc_frame_pointer_required): Likewise.
9014
a5dfec9a
NC
90152011-05-21 Nick Clifton <nickc@redhat.com>
9016
9017 PR target/49098
9018 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
9019
555c3771
NP
90202011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
9021
9022 * gengtype.c (walk_type): Implemented "atomic" GTY option.
9023 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
9024
86fa5de4
JM
90252011-05-21 Joseph Myers <joseph@codesourcery.com>
9026
9027 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
9028 * optc-gen.awk: Move common code to opt-read.awk.
9029 * opth-gen.awk: Likewise.
ef230b38 9030 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 9031
bce33ab2
NF
90322011-05-20 Nathan Froyd <froydnj@codesourcery.com>
9033
9034 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
9035
e6450c11
TV
90362011-05-20 Tom de Vries <tom@codesourcery.com>
9037
9038 PR target/45098
9039 * tree-ssa-loop-ivopts.c: Include expmed.h.
9040 (get_shiftadd_cost): New function.
9041 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
9042
0e8b84ec
JJ
90432011-05-20 Jakub Jelinek <jakub@redhat.com>
9044
9045 PR bootstrap/49086
9046 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
9047 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
9048
946bdf67
JM
90492011-05-20 Joseph Myers <joseph@codesourcery.com>
9050
9051 * Makefile.in: Update comment referring to $(OBJS-common).
9052
c53aafdf
ILT
90532011-05-20 Ian Lance Taylor <iant@google.com>
9054
9055 * godump.c (go_output_typedef): Put enum constants in the macro
9056 hash table to avoid duplicate Go const definitions.
9057
2691e6d7
JM
90582011-05-20 Joseph Myers <joseph@codesourcery.com>
9059
9060 * Makefile.in (LIBDEPS): Add libcommon.a.
9061 (LIBS): Likewise.
9062 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
9063 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
9064 pretty-print.o and version.o.
9065 (OBJS-libcommon): New.
9066 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
9067 (BACKEND): Add libcommon.a.
9068 (MOSTLYCLEANFILES): Likewise.
9069 (libcommon.a): New.
9070 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
9071 (cpp$(exeext)): Likewise.
9072 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
9073 pretty-print.o and input.o.
9074 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
9075 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
9076 (errors.o): Remove.
9077 (mips-tfile): Don't explicitly use version.o.
9078 (mips-tdump): Likewise.
9079 (gcov.o): Depend on $(DIAGNOSTIC_H).
9080 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
9081 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
9082 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
9083 * gcov-dump.c: Include intl.h and diagnostic.h.
9084 (main): Initialize diagnostics.
9085 * gcov.c: Include diagnostic.h.
9086 (fnotice): Remove.
9087 (main): Initialize diagnostics.
9088 * lto-wrapper.c: Include diagnostic.h.
9089 (main): Initialize diagnostics.
9090
252b3e8c
MM
90912011-05-20 Michael Matz <matz@suse.de>
9092
9093 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
9094
2ee36ba6
MM
90952011-05-20 Michael Matz <matz@suse.de>
9096 Richard Guenther <rguenther@suse.de>
9097
9098 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
9099 use lto_streamer_cache_append directly instead of returning a VEC.
9100 (preload_common_node): Remove.
9101 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
9102 track seen nodes.
9103 (lto_streamer_cache_create): Call lto_preload_common_nodes.
9104
90ff582f
RG
91052011-05-20 Richard Guenther <rguenther@suse.de>
9106
9107 PR tree-optimization/49079
9108 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
9109 MEM_REFs correctly for the trailing array access detection.
9110 Special case constants the same way as decls for overall size
9111 constraining.
9112
3cda91d8
UB
91132011-05-20 Uros Bizjak <ubizjak@gmail.com>
9114
9115 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
9116 argument expansion.
9117
6c66f733
JJ
91182011-05-20 Jakub Jelinek <jakub@redhat.com>
9119
9120 PR tree-optimization/49073
3cda91d8
UB
9121 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
9122 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
9123 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
9124
0ea80a16
RG
91252011-05-20 Richard Guenther <rguenther@suse.de>
9126
9127 PR middle-end/48849
9128 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
9129 of pointer types the same way the middle-end does.
9130
fb291a1e
RG
91312011-05-20 Richard Guenther <rguenther@suse.de>
9132
3cda91d8
UB
9133 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
9134 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 9135
37cb25ed
QN
91362011-05-19 Quentin Neill <quentin.neill@amd.com>
9137
9138 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
9139 (fma4_fmaddsub): Likewise
9140
a30726a4
JH
91412011-05-19 Jan Hubicka <jh@suse.cz>
9142
9143 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
9144 (GIMPLE_TYPE_PAIR_SIZE): New macro.
9145 (type_pair_cache): New static var.
9146 (lookup_type_pair): Use fixed sized custom hash; make inline.
9147 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
9148 calls of lookup_type_pair.
9149 (print_gimple_types_stats): Remove cache stats.
9150 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
9151 and gtc_ob.
9152
0955cf61
UB
91532011-05-19 Uros Bizjak <ubizjak@gmail.com>
9154
9155 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
9156 when TARGET_RDRND is active.
9157 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
9158 Generate dummy SImode target register when target is NULL.
9159
12d844c8
JM
91602011-05-19 Joseph Myers <joseph@codesourcery.com>
9161
9162 * config/arm/arm-fpus.def: New.
9163 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
9164 arm-fpus.def.
9165 * config/arm/arm-tables.opt: Regenerate.
9166 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
9167 (arm_option_override): Don't decode FPU name to string here.
9168 * config/arm/arm.opt (mfpu=): Use Enum.
9169 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
9170 Update dependencies.
9171
9e350e99
JM
91722011-05-19 Joseph Myers <joseph@codesourcery.com>
9173
9174 * collect2.c: Include diagnostic.h.
9175 (fatal_perror, fatal, error, fancy_abort): Remove.
9176 (main): Set progname. Call xmalloc_set_program_name and
9177 diagnostic_initialize.
9178 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
9179 scan_libraries, resolve_lib_name): Call fatal_error instead of
9180 fatal and fatal_perror.
9181 * collect2.h (error, fatal, fatal_perror): Don't declare.
9182 * tlink.c: Include diagnostic-core.h.
9183 (recompile_files): Call fatal_error instead of fatal_perror.
9184 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
9185 pretty-print.o and input.o.
9186 (collect2.o, tlink.o): Update dependencies.
9187
86ff4081
RO
91882011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9189
9190 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
9191
2ca48caa
RO
91922011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9193
9194 PR target/40483
9195 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
9196 COMDAT group syntax, both SPARC and x86 variants.
9197 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
9198 * configure: Regenerate.
9199 * config/sol2.h (TARGET_SOLARIS): Define.
9200 (PUSHSECTION_FORMAT): Remove.
9201 (SECTION_NAME_FORMAT): Define.
9202 * config/sol2.c: Include hashtab.h.
9203 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
9204 expansion, using SECTION_NAME_FORMAT.
9205 (solaris_comdat_htab): New variable.
9206 (struct comdat_entry): Define.
9207 (comdat_hash): New function.
9208 (comdat_eq): New function.
9209 (solaris_elf_asm_comdat_section): New function.
9210 (solaris_define_comdat_signature): New function.
9211 (solaris_code_end): New function.
9212 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
9213 (solaris_code_end): Declare.
9214 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
9215 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
9216 solaris_code_end.
9217 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
9218 Remove ATTRIBUTE_UNUSED.
9219 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
9220 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 9221 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
9222 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
9223 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
9224 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
9225 (PUSHSECTION_FORMAT): Remove.
9226 (SECTION_NAME_FORMAT): Redefine.
9227
da5fb469
KT
92282011-05-19 Kai Tietz <ktietz@redhat.com>
9229
9230 * tree-cfg.c (verify_gimple_assign_binary): Barf on
9231 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
9232 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
9233
1651e703 92342011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
9235 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9236
9237 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
9238
e497b9bd
RG
92392011-05-19 Richard Guenther <rguenther@suse.de>
9240
9241 PR middle-end/48985
9242 * tree-object-size.c (addr_object_size): If the pointed-to
9243 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
9244
31b3ca64
RG
92452011-05-19 Richard Guenther <rguenther@suse.de>
9246
9247 * gimple.c (gimple_types_compatible_p_1): Compare names of
9248 the types themselves.
9249 (iterative_hash_gimple_type): And hash them that way.
9250 (gimple_register_type_1): If we register a main variant properly
9251 initialize the leader to ourselves.
9252
bb8d292d
TV
92532011-05-19 Tom de Vries <tom@codesourcery.com>
9254
9255 PR target/45098
9256 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
9257 get_loop_invariant_expr_id.
9258 (get_loop_invariant_expr_id): Use get_expr_id.
9259 (parm_decl_cost): New function.
9260 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
9261 Improve bound cost estimation. Use different inv_expr_id for elim and
9262 express cases.
9263
a53c5024
TV
92642011-05-19 Tom de Vries <tom@codesourcery.com>
9265
9266 PR target/45098
9267 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
9268 cost_base.cost == 0.
9269
31f9eb59
L
92702011-05-18 H.J. Lu <hongjiu.lu@intel.com>
9271
9272 PR target/49002
66bd20e7
EB
9273 * config/i386/sse.md
9274 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
9275 load cast.
31f9eb59 9276
681056ae
JJ
92772011-05-18 Jakub Jelinek <jakub@redhat.com>
9278
9279 PR tree-optimization/49039
9280 * tree-vrp.c (extract_range_from_binary_expr): For
9281 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
9282 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
9283
b5ee6752
TV
92842011-05-18 Tom de Vries <tom@codesourcery.com>
9285
9286 PR target/45098
9287 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
9288
0bda47a3
UB
92892011-05-18 Uros Bizjak <ubizjak@gmail.com>
9290
9291 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
9292 (*tls_global_dynamic_64): Ditto.
9293 (*tls_local_dynamic_base_32_gnu): Ditto.
9294 (*tls_local_dynamic_base_64): Ditto.
9295 (tls_initial_exec_64_sun): Ditto.
9296
033b0805
SH
92972011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
9298
9299 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
9300 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
9301 bf592-none.
9302 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
9303 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
9304 * config/bfin/bfin.c (bfin_cpus): Add bf592.
9305 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 9306 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
9307 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
9308 * config/bfin/elf.h (LIB_SPEC): Add bf592.
9309
ba163417
JM
93102011-05-18 Joseph Myers <joseph@codesourcery.com>
9311
9312 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 9313 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
9314 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
9315 target_thread_pointer, arm_structure_size_boundary, struct
9316 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
9317 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
9318 (arm_option_override) Don't process most enumerated option values here.
9319 Don't process target_fpe_name here. Work with integer not string for
9320 structure size boundary; use separate diagnostics for each case.
ba163417
JM
9321 * config/arm/arm.h (enum float_abi_type, enum
9322 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
9323 to arm-opts.h.
9324 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
9325 arm_structure_size_boundary): Remove.
9326 * config/arm/arm.opt (mabi=): Use Enum and Init.
9327 (arm_abi_type): New Enum and EnumValue entries.
9328 (mfloat-abi=): Use Enum and Init.
9329 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 9330 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
9331 (mfp16-format=): Use Enum and Init.
9332 (arm_fp16_format_type): New Enum and EnumValue entries.
9333 (mstructure-size-boundary=): Use UInteger and Init.
9334 (mtp=): Use Enum and Init.
9335 (arm_tp_type): New Enum and EnumValue entries.
9336
179184e3
RG
93372011-05-18 Richard Guenther <rguenther@suse.de>
9338
9339 PR tree-optimization/49018
9340 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
9341 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
9342 gimple_has_side_effects.
9343
93b2a207
RG
93442011-05-18 Richard Guenther <rguenther@suse.de>
9345
9346 * gimple.c (gimple_register_type_1): New function, split out from ...
9347 (gimple_register_type): ... here. Avoid infinite recursion.
9348
b010117a
IR
93492011-05-18 Ira Rosen <ira.rosen@linaro.org>
9350
9351 PR tree-optimization/41881
9352 * tree-vectorizer.h (struct _loop_vec_info): Add new field
9353 reduction_chains along with a macro for its access.
9354 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
9355 (destroy_loop_vec_info): Free reduction chains.
9356 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
9357 (vect_is_slp_reduction): New function.
9358 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
9359 (vect_create_epilog_for_reduction): Support SLP reduction chains.
9360 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
9361 definition types for reduction chains.
9362 (vect_supported_load_permutation_p): Don't allow permutations for
9363 reduction chains.
9364 (vect_analyze_slp_instance): Support reduction chains.
9365 (vect_analyze_slp): Try to build SLP instance from reduction chains.
9366 (vect_get_constant_vectors): Handle reduction chains.
9367 (vect_schedule_slp_instance): Mark the first statement of the
9368 reduction chain as reduction.
9369
e14c1050
IR
93702011-05-18 Ira Rosen <ira.rosen@linaro.org>
9371
9372 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
9373 names for group elements access.
9374 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
9375 reduction chains as well. Remove data reference and interleaving
9376 related words from the fields names.
9377 * tree-vect-loop.c (vect_transform_loop): Use new names for group
9378 elements access.
9379 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
9380 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
9381 vect_update_interleaving_chain, vect_same_range_drs,
9382 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
9383 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
9384 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
9385 vect_analyze_group_access, vect_analyze_data_ref_access,
9386 vect_create_data_ref_ptr, vect_transform_strided_load,
9387 vect_record_strided_load_vectors): Likewise.
9388 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
9389 vect_model_load_cost, vectorizable_store, vectorizable_load,
9390 vect_remove_stores, new_stmt_vec_info): Likewise.
9391 * tree-vect-slp.c (vect_build_slp_tree,
9392 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
9393
51c213f7
RG
93942011-05-18 Richard Guenther <rguenther@suse.de>
9395
9396 PR middle-end/48989
9397 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
9398 operand verification.
9399 (verify_gimple_assign_binary): Likewise.
9400 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
9401 to non-1-precision BOOLEAN_TYPEs.
9402
8f5e5434
TV
94032011-05-18 Tom de Vries <tom@codesourcery.com>
9404
9405 PR target/45098
9406 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
9407
116bc3a4
JJ
94082011-05-18 Jakub Jelinek <jakub@redhat.com>
9409
9410 PR tree-optimization/49000
9411 * tree-ssa.c (execute_update_addresses_taken): Call
9412 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
9413 be rewritten and decl has been marked for renaming, reset
9414 the debug stmt.
9415
26a8964c
JM
94162011-05-17 Joseph Myers <joseph@codesourcery.com>
9417
9418 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
9419 enum_opts_set when testing if attributes have set -mfpmath=.
9420
82bd45d7
RS
94212011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
9422
9423 * config/mips/mips.c (mips_handle_option): Remove unused variable.
9424
267ffce3
UB
94252011-05-17 Uros Bizjak <ubizjak@gmail.com>
9426
9427 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
9428 info->entry with 0
9429 * tree-inline.c (maybe_inline_call_in_expr): Initialize
9430 id.transform_lang_insert_block with NULL.
9431
94322011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
9433
9434 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
9435 (output_fp_compare): Change args 3 and 4 to bool.
9436 (ix86_expand_call): Change arg 6 to bool.
9437 (ix86_attr_length_immediate_default): Change arg 2 to bool.
9438 (ix86_attr_length_vex_default): Change arg 3 to bool.
9439 * config/i386/i386.md: Update all uses.
9440 * config/i386/i386.c: Ditto.
9441 (ix86_flags_dependent): Change return type to bool.
9442
5beaf664
RG
94432011-05-17 Richard Guenther <rguenther@suse.de>
9444
9445 * gimple.c (type_hash_pair_compare): Fix comparison.
9446
008bad7a
RG
94472011-05-17 Richard Guenther <rguenther@suse.de>
9448
9449 * gimple.c (iterative_hash_gimple_type): Simplify singleton
9450 case some more, fix final hash value of the non-singleton case.
9451
36461340
RG
94522011-05-17 Richard Guenther <rguenther@suse.de>
9453
9454 PR bootstrap/49013
9455 Revert
9456 2011-05-16 Richard Guenther <rguenther@suse.de>
9457
9458 * gimple.c (gimple_types_compatible_p_1): Use names of the
9459 type itself, not its main variant.
9460 (iterative_hash_gimple_type): Likewise.
9461
6b6a59f3
RG
94622011-05-17 Richard Guenther <rguenther@suse.de>
9463
9464 * gimple.c (gimple_register_canonical_type): Use the main-variant
9465 leader for computing the canonical type.
9466
4ffc4134
NC
94672011-05-17 Nick Clifton <nickc@redhat.com>
9468
a1d8754e
NC
9469 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
9470 moves.
9471
4ffc4134
NC
9472 * config/rx/rx.md: Add peephole to remove redundant extensions
9473 after loads.
39960f7a
NC
9474 (bitset_in_memory): Use rx_restricted_mem_operand.
9475 (bitinvert_in_memory): Likewise.
9476 (bitclr_in_memory): Likewise.
4ffc4134 9477
b3db92ac
KI
94782011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
9479 Nick Clifton <nickc@redhat.com>
9480
9481 * config/rx/rx.md: Add peepholes to match a register move followed
9482 by a comparison of the moved register. Replace these with an
9483 addition of zero that does both actions in one instruction.
9484
8637e32a
JJ
94852011-05-17 Jakub Jelinek <jakub@redhat.com>
9486
9487 PR target/48986
9488 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
9489 predicate to allow CONST_INT.
9490 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
9491
8023568e
JM
94922011-05-16 Joseph Myers <joseph@codesourcery.com>
9493
9494 * opts-common.c (opt_enum_arg_to_value): New.
9495 * opts.h (opt_enum_arg_to_value): Declare.
9496 * config/i386/i386.opt (fpmath): Remove.
9497 (mfpmath=): Use Enum, Init and Save.
9498 (fpmath_unit): New Enum and EnumValue entries.
9499 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
9500 name for function fpmath state.
9501 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
9502 * config/i386/i386.c: Include diagnostic.h.
9503 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 9504 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 9505 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 9506 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
9507 (x86_function_specific_save, ix86_function_specific_restore):
9508 Don't handle fpmath state specially.
9509 (ix86_function_specific_print): Pass fpmath state to
9510 ix86_target_string instead of printing in this function.
9511 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
9512 Handle enum attributes.
9513 (IX86_ATTR_ENUM, ix86_opt_enum): New.
9514 (ix86_valid_target_attribute_tree): Update option_strings
9515 handling. Handle fpmath as enum option.
9516 (ix86_can_inline_p): Update field names for function fpmath state.
9517 (ix86_expand_builtin): Update call to ix86_target_string.
9518 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
9519 (ix86_fpmath): Remove.
9520 * config/i386/t-i386 (i386.o): Update dependencies.
9521
9e8d926e
JM
95222011-05-16 Joseph Myers <joseph@codesourcery.com>
9523
9524 PR preprocessor/48677
9525 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
9526 from decoded_options[0], not from itself.
9527
f6449011
UB
95282011-05-16 Uros Bizjak <ubizjak@gmail.com>
9529
9530 * config/i386/constraints.md (z): New constraint.
9531 * config/i386/i386.c (c): New mode attribute.
9532 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
9533 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
9534 constraint for operand 0.
9535 (*call_vzeroupper): Ditto.
9536 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
9537 (*call_rex64_ms_sysv_vzeroupper): Ditto.
9538 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
9539 Use "lzm" constraint for operand 0.
9540 (*call_pop_vzeroupper): Ditto.
9541 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
9542 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
9543 constraint for operand 0.
9544 (*sibcall_vzeroupper): Ditto.
9545 (*sibcall_rex64_ms_sysv): Ditto.
9546 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
9547 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
9548 *sibcall_pop_1. Use "Uz" constraint for operand 0.
9549 (*sibcall_pop_vzeroupper): Ditto.
9550 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
9551 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
9552 mode iterator. Use "<c>zm" constraint for operand 1.
9553 (*call_value_vzeroupper): Ditto.
9554 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 9555 for operand 1.
f6449011
UB
9556 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
9557 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
9558 *call_value_pop_1. Use "lzm" constraint for operand 1.
9559 (*call_value_pop_vzeroupper): Ditto.
9560 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
9561 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
9562 mode iterator. Use "Uz" constraint for operand 1.
9563 (*sibcall_value_vzeroupper): Ditto.
9564 (*sibcall_value_rex64_ms_sysv): Ditto.
9565 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
9566 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
9567 constraint for operand 1.
9568 (*sibcall_value_pop_vzeroupper): Ditto.
9569 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
9570 and "z" constraint for operand 2.
9571 (*tls_global_dynamic_32_gnu): Ditto.
9572 (*tls_local_dynamic_base_32_gnu): Ditto.
9573 (*tls_local_dynamic_base_64): Ditto.
9574 (*tls_local_dynamic_32_once): Ditto.
9575 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
9576 Update all callers.
9577 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
9578
c11b6902
RG
95792011-05-16 Richard Guenther <rguenther@suse.de>
9580
9581 * gimple.c (gimple_types_compatible_p_1): Use names of the
9582 type itself, not its main variant.
9583 (iterative_hash_gimple_type): Likewise.
9584
1e83b5f1
RG
95852011-05-16 Richard Guenther <rguenther@suse.de>
9586
f6449011
UB
9587 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
9588 always visit pointer target and function result and argument types.
1e83b5f1 9589
62e36382
JM
95902011-05-16 Jason Merrill <jason@redhat.com>
9591
9592 PR c++/48999
9593 * tree-inline.c (copy_statement_list): Put back recursion.
9594
687027a4
GJL
95952011-05-16 Georg-Johann Lay <avr@gjlay.de>
9596
9597 PR target/27663
9598 PR target/41076
9599 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
9600 * config/avr/avr.md ("*ior<mode>qi.byte0",
9601 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
9602
f24a5190
GJL
96032011-05-16 Georg-Johann Lay <avr@gjlay.de>
9604
9605 PR target/45099
9606 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
9607 register is needed for a function argument.
9608
3066f593
RG
96092011-05-16 Richard Guenther <rguenther@suse.de>
9610
9611 * gimple.c (struct type_hash_pair): New type.
9612 (type_hash_pair_compare): New function.
f6449011 9613 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 9614
b2ab2cf4
RE
96152011-05-16 Revital Eres <revital.eres@linaro.org>
9616
f6449011 9617 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 9618
dfb737fc
UB
96192011-05-15 Uros Bizjak <ubizjak@gmail.com>
9620
9621 * config/i386/i386.md (floating point move splitters): Fix
9622 usage of standard_80387_constant_p.
f6449011 9623 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 9624
8caa1de0
UB
96252011-05-15 Uros Bizjak <ubizjak@gmail.com>
9626
9627 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
9628
8a519095
EB
96292011-05-14 Eric Botcazou <ebotcazou@adacore.com>
9630
9631 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
9632 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
9633 (tree_ssa_lim_finalize): Likewise.
9634
479fecd3
UB
96352011-05-14 Uros Bizjak <ubizjak@gmail.com>
9636
9637 * config/i386/constraint.md (Yd, Yx): New register constraints.
9638 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
9639 Yd conditional register constraint.
9640 (*movtf_internal): Use standard_sse_constant_opcode.
9641 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
9642 Yx conditional register constraint.
9643 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
9644 Yd conditional register constraint. Use standard_sse_constant_p to
9645 check for valid SSE constants and call standard_sse_constant_opcode to
9646 output SSE insn.
9647 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
9648 constants and call standard_sse_constant_opcode to output SSE insn.
9649 * config/i386/i386.c (ix86_option_ovverride_internal): Set
9650 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
9651 optimize_size is set.
9652 (standard_sse_constant_opcode): Output conditional AVX insn templates.
9653
2d8c9ad5
TB
96542011-05-14 Tobias Burnus <burnus@net-b.de>
9655
9656 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
9657
411a20d6
MJ
96582011-05-13 Martin Jambor <mjambor@suse.cz>
9659
9660 * ipa-prop.c (ipa_cst_from_jfunc): New function.
9661 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
9662 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
9663 (evaluate_conditions_for_ipcp_clone): Removed.
9664 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
9665 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
9666 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
9667
dc764d10
EB
96682011-05-13 Eric Botcazou <ebotcazou@adacore.com>
9669
9670 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
9671 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
9672 lieu of MAY_HAVE_DEBUG_STMTS.
9673 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
9674 debug statements if !MAY_HAVE_DEBUG_STMTS.
9675
9f47a24e
MT
96762011-05-13 Martin Thuresson <martint@google.com>
9677
9678 PR gcov-profile/47793
9679 * libgcov.c (gcov_exit): Support relative profile paths.
9680 * doc/invoke.texi (-fprofile-dir): Update for above change.
9681
b8a71aed
RG
96822011-05-13 Richard Guenther <rguenther@suse.de>
9683
9684 * gimple.c (gimple_canonical_types_compatible_p): Do not use
9685 type-pair caching, do not compare hashes.
9686
eb9f9259
NF
96872011-05-13 Nathan Froyd <froydnj@codesourcery.com>
9688
9689 PR middle-end/48965
9690 * tree-cfg.c (edge_to_cases_cleanup): Return true.
9691 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
9692
3c6cbf7a
KT
96932011-05-13 Kai Tietz <ktietz@redhat.com>
9694
9695 * gimplify.c (gimplify_expr): Make sure operand is boolified.
9696 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
9697 compatible type for TRUTH_NOT_EXPR.
9698
2e7f5dc0
L
96992011-05-13 H.J. Lu <hongjiu.lu@intel.com>
9700
dc764d10 9701 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
9702 (ix86_hard_regno_mode_ok): Change return value to bool. Use
9703 can_create_pseudo_p ().
9704
e834e95c
RG
97052011-05-13 Richard Guenther <rguenther@suse.de>
9706
9707 PR lto/48978
9708 * gimple.c (iterative_hash_gimple_type): Revert change in
9709 pointer target and function result and argument hashing.
9710
34203483
UB
97112011-05-13 Uros Bizjak <ubizjak@gmail.com>
9712
9713 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
9714 (*movxf_internal_nointeger): Ditto.
9715 (*movdf_internal_rex64): Ditto.
9716 (*movdf_internal): Ditto.
9717 (*movdf_internal_nointeger): Ditto.
9718 (*movsf_internal): Ditto.
9719 (sincos splitters): Use can_create_pseudo ().
9720
7eb68c06
JM
97212011-05-13 Joseph Myers <joseph@codesourcery.com>
9722
9723 * config/i386/i386-opts.h: New.
9724 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
9725 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
9726 ix86_section_threshold): Remove.
9727 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
9728 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
9729 OPT_mbranch_cost_.
9730 (ix86_option_override_internal): Don't decode strings for options
9731 other than -march=, -mtune= and -mfpmath=. Don't allow for
9732 __attribute__ uses in remaining diagnostics for options with
34203483 9733 string arguments. Don't check for integer arguments being negative.
7eb68c06 9734 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 9735 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
9736 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
9737 ix86_branch_cost, ix86_section_threshold): Remove.
9738 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
9739 HeaderInclude.
9740 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
9741 but not Var.
9742 (masm=): Use Enum and Init.
9743 (asm_dialect): New Enum and EnumValue entries.
9744 (mbranch-cost=): Use UInteger.
9745 (mlarge-data-threshold=): Use UInteger and Init.
9746 (mcmodel=): Use Enum and Init.
9747 (cmodel): New Enum and EnumValue entries.
9748 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
9749 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
9750 mregparm=): Use UInteger.
9751 (mstringop-strategy=): Use Enum and Init.
9752 (stringop_alg): New Enum and EnumValue entries.
9753 (mtls-dialect=): Use Enum and Init.
9754 (tls_dialect): New Enum and EnumValue entries.
9755 (mabi=): Use Enum and Init.
9756 (calling_abi): New Enum and EnumValue entries.
9757 (mveclibabi=): Use Enum and Init.
9758 (ix86_veclibabi): New Enum and EnumValue entries.
9759
f67e203c
NC
97602011-05-13 Nick Clifton <nickc@redhat.com>
9761
34203483
UB
9762 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
9763 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 9764
221df0b6
KT
97652011-05-13 Kai Tietz <ktietz@redhat.com>
9766
9767 PR middle-end/48984
9768 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
9769 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
9770 (gimple_boolify): Check for cast for boolean_type_node instead for
9771 BOOLEAN_TYPE.
9772
208cb8cb
RG
97732011-05-13 Richard Guenther <rguenther@suse.de>
9774
9775 PR tree-optimization/48172
9776 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
9777 multiplying by number of iterations for equal step.
9778 (vect_create_cond_for_alias_checks): Likewise.
9779
b88ecf55
AS
97802011-05-13 Andreas Schwab <schwab@redhat.com>
9781
9782 * configure.ac: Use AS_HELP_STRING throughout.
9783 * configure: Regenerate.
9784
569b527e
L
97852011-05-12 H.J. Lu <hongjiu.lu@intel.com>
9786
34203483 9787 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
9788 (ix86_emit_restore_regs_using_mov): Likewise.
9789 (ix86_emit_restore_sse_regs_using_mov): Likewise.
9790
8b9a1428
AS
97912011-05-12 Anatoly Sokolov <aesok@post.ru>
9792
9793 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
9794 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
9795 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
9796 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
9797 RTX_OK_FOR_OLO10_P): ...here.
9798 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
9799 SYMBOLIC_CONST.
9800
1d15f620
KT
98012011-05-12 Kai Tietz <ktietz@redhat.com>
9802
9803 * gimplify.c (gimple_boolify): Re-boolify expression
9804 arguments even if expression type is of kind BOOLEAN_TYPE.
9805 (gimplify_boolean_expr): Removed.
9806 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
9807 and XOR. Additional take care that we keep expression's type.
9808 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
9809 of TRUTH_AND|OR|XOR_EXPR.
9810
c2b5fc8d
JJ
98112011-05-12 Jakub Jelinek <jakub@redhat.com>
9812
9813 PR tree-optimization/48975
9814 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
9815 on all bbs here and free and clear ifc_bbs at the end.
9816
61332f77
RG
98172011-05-12 Richard Guenther <rguenther@suse.de>
9818
9819 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
9820 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
9821 until after simple checks.
9822 (gimple_types_compatible_p): Likewise.
9823 (iterative_hash_gimple_type): Always hash pointer targets
9824 and function return and argument types.
9825 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
9826 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
9827 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
9828 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
9829 completely in the simple compare section.
9830 (gimple_register_canonical_type): Query the cache again after
9831 registering.
9832
e2a3a5f1
RG
98332011-05-12 Richard Guenther <rguenther@suse.de>
9834
9835 PR tree-optimization/48172
9836 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
9837 the number of iterations from the segment size calculation.
9838 (vect_create_cond_for_alias_checks): Adjust.
9839
2c703f3a
JJ
98402011-05-12 Jakub Jelinek <jakub@redhat.com>
9841
9842 PR debug/48967
9843 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
9844 if validate_subreg fails.
9845
98462011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
9847
9848 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
9849 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
9850 early.
9851
87e91fca
DD
98522011-05-12 DJ Delorie <dj@redhat.com>
9853
d53903d6 9854 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
9855 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
9856 created builtin into rx_builtins array.
9857 (rx_builtin_decl): New function.
34203483 9858 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 9859
5f2f13fd
DD
98602011-05-12 DJ Delorie <dj@redhat.com>
9861 Nick Clifton <nickc@redhat.com>
9862
9863 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
9864 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
9865 (rx_is_legitimate_address): Add pre-decrement and post-increment
9866 addressing in HImode and QImode. Fix test for out of range
9867 REG+INT addressing.
87e91fca 9868 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 9869 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 9870 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 9871 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 9872
57421f45
JM
98732011-05-11 Jason Merrill <jason@redhat.com>
9874
9875 * tree.c (type_hash_canon): Use struct tree_type_non_common.
9876
898c90c0
EB
98772011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9878
9879 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
9880 reindent the subsequent block.
9881
79bec923
ST
98822011-05-11 Satoru Takabayashi <satorux@google.com>
9883 Paul Pluzhnikov <ppluzhnikov@google.com>
9884
34203483 9885 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
9886 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
9887 * config.in: Add LINKER_HASH_STYLE.
9888 * configure.ac: Add --with-linker-hash-style.
9889 * configure: Regenerate.
79bec923 9890
d0340959
RG
98912011-05-11 Richard Guenther <rguenther@suse.de>
9892
9893 PR middle-end/48964
9894 * gimple.c (iterative_hash_canonical_type): Fix typo.
9895
cb032fee
UB
98962011-05-11 Uros Bizjak <ubizjak@gmail.com>
9897
9898 * config/i386/i386.c (legitimize_tls_address)
479fecd3 9899 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
9900 expanders directly for TARGET_GNU2_TLS. Determine pic and
9901 __tls_get_addr symbol reference here. Update call to
9902 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 9903 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
9904 expanders directly for TARGET_GNU2_TLS. Determine
9905 __tls_get_addr symbol reference here. Update call to
9906 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
9907 unique UNSPEC REG_EQUIV to libcall block.
9908 (ix86_tls_get_addr): Declare static.
9909 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
9910 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
9911 Do not determine pic and __tls_get_addr symbol reference here. Do not
9912 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
9913 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
9914 (tls_global_dynamic_64): Add operand 2. Do not determine
9915 __tls_get_addr symbol reference here. Do not call
9916 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
9917 (tls_local_dynamic_base64): Ditto for operand 1.
9918
6d3cc8f0
EB
99192011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9920
9921 * function.c (expand_function_start): Initialize stack_check_probe_note
9922 only if the generic stack checking mechanism is used.
9923
51e020fc
RG
99242011-05-11 Richard Guenther <rguenther@suse.de>
9925
9926 PR tree-optimization/15256
9927 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
9928 (A & B) | C, combine (A op CST1) op CST2.
9929 (tree_ssa_forward_propagate_single_use_vars): Only bother to
9930 visit assigns that have uses.
9931
51545682
NF
99322011-05-11 Nathan Froyd <froydnj@codesourcery.com>
9933
cb032fee 9934 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
9935 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
9936 (unpack_ts_type_common_value_fields): ...this. Update comment.
9937 (unpack_value_fields): Adjust for renaming.
9938 (lto_input_ts_type_tree_pointers): Split into...
9939 (lto_input_ts_type_common_tree_pointer): ...this and...
9940 (lto_input_ts_type_non_common_tree_pointers): ...this.
9941 (lto_input_tree_pointers): Adjust for above split.
9942 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
9943 (pack_ts_type_common_value_fields): ...this. Update comment.
9944 (lto_output_ts_type_tree_pointers): Split into...
9945 (lto_output_ts_type_common_tree_pointers): ...this and...
9946 (lto_output_ts_type_non_common_tree_pointers): ...this.
9947 (lto_output_tree_pointers): Adjust for above split.
9948 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
9949 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
9950 * stor-layout.c (vector_type_mode): Adjust location of mode field.
9951 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
9952 Define.
9953 (struct tree_type): Split into...
9954 (struct tree_type_common: ...this and...
9955 (struct tree_type_with_lang_specific): ...this and...
9956 (struct tree_type_non_common): ...this. Adjust accessor macros
9957 accordingly.
9958 (TYPE_VALUES_RAW): Define.
9959 (union tree_node): Update for above changes.
9960 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
9961 TS_TYPE_NON_COMMON.
9962 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
9963 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
9964 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
9965 * treestructu.def (TS_TYPE): Remove.
9966 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
9967 Define.
9968
b03c3082
JJ
99692011-05-11 Jakub Jelinek <jakub@redhat.com>
9970
9971 PR debug/48159
9972 * tree-ssa.c (reset_debug_uses): New function.
9973 * tree-flow.h (reset_debug_uses): New prototype.
9974 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
9975 * tree-loop-distribution.c (generate_loops_for_partition): Call
9976 reset_debug_uses on the stmts that will be removed. Keep around
9977 all debug stmts, don't count them as bits in partition bitmap.
9978 (generate_builtin): Don't count debug stmts or labels as bits in
9979 partition bitmap.
9980
b5e04de5
RG
99812011-05-11 Richard Guenther <rguenther@suse.de>
9982
9983 * gimple.c (gimple_type_hash_1): Merge with ...
9984 (gimple_type_hash): ... this.
9985 (gtc_visit): Remove mode parameter and simplify accordingly.
9986 (gimple_types_compatible_p_1): Likewise.
9987 (gimple_types_compatible_p): Likewise.
9988 (iterative_hash_gimple_type): Likewise.
9989 (visit): Likewise.
9990 (gimple_type_eq): Adjust.
9991
fc6970e4
RE
99922011-05-11 Revital Eres <revital.eres@linaro.org>
9993
9994 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
9995 enters the branch create an anti edge in the opposite direction
9996 to prevent the creation of reg-moves.
9997 * modulo-sched.c: Adjust comment to reflect the fact we are
9998 scheduling closing branch.
9999 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
10000 (stage_count): New field in struct partial_schedule.
10001 (calculate_stage_count): New function.
10002 (normalize_sched_times): Rename to reset_sched_times and handle
10003 incrementing the sched time of the nodes by a constant value
10004 passed as parameter.
10005 (duplicate_insns_of_cycles): Skip closing branch.
10006 (sms_schedule_by_order): Schedule closing branch.
10007 (ps_insn_find_column): Handle closing branch.
10008 (sms_schedule): Call reset_sched_times and adjust the code to
10009 support scheduling of the closing branch.
10010 (ps_insert_empty_row): Update calls to normalize_sched_times
10011 and rotate_partial_schedule functions.
10012
41a58a92
RG
100132011-05-11 Richard Guenther <rguenther@suse.de>
10014
10015 PR middle-end/48953
10016 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
10017
e9f8dcf9
JM
100182011-05-11 Joseph Myers <joseph@codesourcery.com>
10019
cb032fee
UB
10020 * opts.c (finish_options): Move warning settings from process_options.
10021 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 10022
10c224a9
RG
100232011-05-11 Richard Guenther <rguenther@suse.de>
10024
10025 PR tree-optimization/18041
10026 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
10027 (simplify_bitwise_binary): ... this. Handle operand conversions
10028 by applying them to the result instead.
10029 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
10030
825b27de
RG
100312011-05-11 Richard Guenther <rguenther@suse.de>
10032
10033 * gimple.c (gimple_canonical_types_compatible_p): Split out
10034 from gimple_types_compatible_p and friends. Do not recurse
10035 to pointed-to types.
10036 (gimple_canonical_type_eq): Use it.
10037 (iterative_hash_canonical_type): Split out from
10038 iterative_hash_gimple_type and friends. Do not recurse
10039 to pointed-to types.
10040 (gimple_canonical_type_hash): Use it, allocate the hash here.
10041
ca756625
RE
100422011-05-11 Revital Eres <revital.eres@linaro.org>
10043
10044 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
10045 recognizing doloop.
10046
b8abece3
RE
100472011-05-11 Revital Eres <revital.eres@linaro.org>
10048
10049 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
10050 instead of PREV_INSN.
10051
ce7b3761
RE
100522011-05-11 Revital Eres <revital.eres@linaro.org>
10053
10054 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
10055 * loop-doloop.c (doloop_condition_get): Likewise.
10056 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
10057 (doloop_end): New.
10058 * config/arm/arm.md (*addsi3_compare0): Remove "*".
10059
a9dc9d37
NF
100602011-05-10 Nathan Froyd <froydnj@codesourcery.com>
10061
10062 * tree.def (CASE_LABEL_EXPR): Add an operand.
10063 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
10064
96703596
JM
100652011-05-10 Joseph Myers <joseph@codesourcery.com>
10066
10067 * c-decl.c (c_override_global_bindings_to_false): Remove.
10068 (global_bindings_p): Don't check
10069 c_override_global_bindings_to_false.
10070 * c-tree.h (c_override_global_bindings_to_false): Remove.
10071 * c-typeck.c (composite_type): Don't set
10072 c_override_global_bindings_to_false.
10073
dbcc9f08
MM
100742011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
10075
10076 PR target/48857, 48495
10077 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
10078 (VSX_MODE): Ditto.
10079 (VSX_MOVE_MODE): Ditto.
10080 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
10081 VSX vector types. Add V2DImode.
10082 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
10083 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
10084 (MODES_TIEABLE_P): Ditto.
10085
10086 * config/rs6000/rs6000.c (rs6000_emit_move): Use
10087 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
10088 VSX_VECTOR_MODE.
10089 (init_cumulative_args): Ditto.
10090 (rs6000_function_arg_boundary): Ditto.
10091 (rs6000_function_arg_advance_1): Ditto.
10092 (rs6000_function_arg): Ditto.
10093 (rs6000_function_ok_for_sibcall): Ditto.
10094 (emit_frame_save): Ditto.
10095 (rs6000_function_value): Ditto.
10096 (rs6000_libcall_value): Ditto.
10097
4a68b4ca
JM
100982011-05-10 Joseph Myers <joseph@codesourcery.com>
10099
10100 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
10101 i386/darwin-lib.h to $libgcc_tm_file.
10102 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
10103
bcb521e9
JM
101042011-05-10 Joseph Myers <joseph@codesourcery.com>
10105
10106 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
10107
f10d3ac9
JM
101082011-05-10 Joseph Myers <joseph@codesourcery.com>
10109
cb032fee 10110 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
10111 * config/rs6000/rs6000-tables.opt: New file (generated).
10112 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
10113 rs6000/rs6000-tables.opt to extra_options.
10114 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
10115 * config/rs6000/rs6000.c (rs6000_select): Remove.
10116 (processor_target_table): Move contents to rs6000-cpus.def.
10117 (darwin_rs6000_override_options): Check
10118 global_options_set.x_rs6000_cpu_index instead of
10119 rs6000_select[1].string.
10120 (rs6000_option_override_internal): Likewise.
10121 (rs6000_handle_option): Don't assert that global structures are in
10122 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
10123 (rs6000_default_cpu): New variable.
10124 (rs6000_file_start): Set it instead of local default_cpu. Check
10125 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
10126 global_options_set.x_rs6000_tune_index instead of rs6000_select.
10127 (rs6000_darwin_file_start): Check rs6000_default_cpu and
10128 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
10129 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
10130 rs6000_select): Remove.
10131 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
10132 Remove.
10133 (mcpu=, mtune=): Use Var, Init, Enum and Save.
10134 * config/rs6000/t-rs6000
10135 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
10136 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10137 global_options_set.x_rs6000_cpu_index instead of
10138 rs6000_select[1].string.
10139 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10140 global_options_set.x_rs6000_cpu_index instead of
10141 rs6000_select[1].string.
10142
80cf2e08
JM
101432011-05-10 Joseph Myers <joseph@codesourcery.com>
10144
10145 * config.gcc (libgcc_tm_file): Define instead of including files
10146 from ../../libgcc/config/ in tm_file.
cb032fee 10147 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
10148 * configure: Regenerate.
10149 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
10150 libgcc_tm.h, cs-libgcc_tm.h): New.
10151 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
10152 (clean): Remove libgcc_tm.h.
10153 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
10154 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
10155 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
10156
fd01a351
GJL
101572011-05-10 Georg-Johann Lay <avr@gjlay.de>
10158
10159 PR target/48896
10160 * config/avr/avr.c (avr_ret_register): Return unsigned int
10161 instead of int.
10162 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
10163 it to avr_libcall_value.
10164 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
10165 expand_expr.
10166 (avr_expand_binop_builtin): Ditto.
10167 (avr_expand_unop_builtin): Ditto.
10168
34cc3c86
DD
101692011-05-10 DJ Delorie <dj@redhat.com>
10170
10171 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
10172 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
10173 * config/rx/rx.c (rx_align_for_label): Add label and
10174 uses_threshold parameters. Do not align when the label is not
10175 used enough.
10176 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
10177
be173289
RG
101782011-05-10 Richard Guenther <rguenther@suse.de>
10179
10180 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
10181 a series of conversions and apply foldings similar to what
10182 fold-const does.
10183 (tree_ssa_forward_propagate_single_use_vars): Call it.
10184
e7f78021
JJ
101852011-05-10 Jakub Jelinek <jakub@redhat.com>
10186
6ae70ea2
JJ
10187 PR tree-optimization/48611
10188 PR tree-optimization/48794
10189 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
10190 referenced from RESX or EH_DISPATCH arguments.
10191
e7f78021
JJ
10192 PR debug/48928
10193 * dfp.c (decimal_to_decnumber): Handle conversion from
10194 dconst{1,2,m1,half}.
10195
fca132b9
UB
101962011-05-09 Uros Bizjak <ubizjak@gmail.com>
10197
10198 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
10199 for !flag_prefer_avx128.
10200 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
10201
e4c03378
EB
102022011-05-09 Eric Botcazou <ebotcazou@adacore.com>
10203
10204 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
10205 (fold_ternary_loc): Use expr_location_or.
10206
805d6a75
L
102072011-05-09 H.J. Lu <hongjiu.lu@intel.com>
10208
10209 PR debug/48853
10210 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
10211 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
10212 Pmode and mem_mode is not VOIDmode.
10213
e4c03378 102142011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 10215
e4c03378
EB
10216 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
10217 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 10218
51e7f377
UB
102192011-05-09 Uros Bizjak <ubizjak@gmail.com>
10220
10221 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
10222 (const_pow2_1_to_8_operand): Ditto.
10223 (const_pow2_1_to_128_operand): Ditto.
10224 (const_pow2_1_to_32768_operand): Ditto.
10225 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
10226 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
10227 in insn constraint to check integer value of operand 3.
10228 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
10229
10230 (PINSR_MODE): New mode iterator.
10231 (sse2p4_1): New mode attribute.
10232 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
10233 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
10234 iterator. Use const_int_operand instead of
10235 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
10236 exact_log2 in insn constraint to check integer value of operand 3.
10237
102382011-05-09 Uros Bizjak <ubizjak@gmail.com>
10239
10240 * config/i386/sse.md (blendbits): Remove mode attribute.
10241 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
10242 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
10243 Check integer value of operand 3 in insn constraint.
10244
0ca8de87
RG
102452011-05-09 Richard Guenther <rguenther@suse.de>
10246
10247 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
10248 for diagnostics.
10249 (lto_symtab_merge): Likewise. Do not register types here.
10250 (lto_symtab_merge_decls_2): Likewise.
10251 (lto_symtab_merge_decls_1): Likewise.
10252 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
10253 * gimple.c (enum gtc_mode): Declare.
10254 (gimple_types_compatible_p): Make static.
10255
a9e6994a
AK
102562011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10257
10258 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
10259 temporary register to match Pmode.
10260
fb55d62e
UB
102612011-05-09 Uros Bizjak <ubizjak@gmail.com>
10262
10263 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
10264 and *vec_concatv4si_1_avx.
10265
eb1485a6
UB
102662011-05-09 Uros Bizjak <ubizjak@gmail.com>
10267
10268 PR rtl-optimization/48927
10269 * ira-conflicts.c (commutative_constraint_p): Use
10270 recog_data.alternative_enabled_p to disable alternatives where
10271 "enabled" attribute is false.
10272 (get_dup_num): Ditto.
10273 * ira-lives.c (single_reg_class): Ditto.
10274 (ira_implicitly_set_insn_hard_regs): Ditto.
10275
c46d001a
EB
102762011-05-09 Eric Botcazou <ebotcazou@adacore.com>
10277
10278 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
10279 (dataflow_set_preserve_mem_locs): Likewise.
10280
102812011-05-09 Philipp Thomas <pth@suse.de>
10282
6d9e7c41
PT
10283 * config/mep/mep.c (mep_validate_vliw): Syntax description
10284 should not be translated.
10285
d371df6f
JM
102862011-05-09 Joseph Myers <joseph@codesourcery.com>
10287
10288 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
10289 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 10290 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
10291 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
10292 MIPS_ARCH_OPTION_NATIVE): Define.
10293 * config/mips/mips.c (mips_cpu_info_table): Move contents to
10294 mips-cpus.def.
10295 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
10296 mips_parse_cpu): Remove.
10297 (mips_cpu_info_from_opt, mips_default_arch): New.
10298 (mips_handle_option): Don't assert that global structures are in
10299 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
10300 (mips_option_override): Use new variables and functions to set
eb1485a6 10301 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
10302 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
10303 definition.
10304 * config/mips/mips.opt (march=): Use ToLower and Enum.
10305 (mips): Use ToLower, Enum and Var.
10306 (mtune=): Use ToLower and Enum.
10307 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
10308
4fc07af9
JH
103092011-05-08 Jan Hubicka <jh@suse.cz>
10310
10311 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
10312 Arrange type pairs to be UID ordered.
10313 (gimple_lookup_type_leader): Make inline.
10314
2cf320a8
NC
103152011-05-09 Nick Clifton <nickc@redhat.com>
10316
61d6def5
NC
10317 PR target/48899
10318 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
10319 PROCESSOR_DEFAULT.
10320
2cf320a8
NC
10321 PR target/48897
10322 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
10323 variable 's'.
10324
4f82319d
CLT
103252011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
10326
10327 * combine.c (simplify_comparison): Abstract out parts into...
10328 (simplify_compare_const): ... new function.
10329 (try_combine): Generalize parallel arithmetic/compare combining
10330 to call simplify_compare_const() and CANONICALIZE_COMPARE().
10331
74605a11
JH
103322011-05-08 Jan Hubicka <jh@suse.cz>
10333
10334 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
10335 (cgraph_create_virtual_clone): Call hooks once virtual clone
10336 is finished.
74605a11 10337 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
10338 * ipa-cp.c (ipcp_estimate_growth): Use
10339 estimate_ipcp_clone_size_and_time.
74605a11
JH
10340 * ipa-inline-transform.c (clone_inlined_nodes): Update.
10341 * lto-cgraph.c (input_node): Update.
10342 * ipa-inline.c (recursive_inlining): Update.
10343 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
10344 (evaluate_conditions_for_known_args): Break out from ...
10345 (evaluate_conditions_for_edge): ... here.
10346 (evaluate_conditions_for_ipcp_clone): New function.
10347 (inline_node_duplication_hook): Update clone summary based
10348 on parameter map.
10349 (estimate_callee_size_and_time): Rename to ...
10350 (estimate_node_size_and_time): take NODE instead of EDGE;
10351 take POSSIBLE_TRUTHS as argument.
10352 (estimate_callee_size_and_time): Update.
10353 (estimate_ipcp_clone_size_and_time): New function.
10354 (do_estimate_edge_time): Update.
10355
5c049507
RG
103562011-05-08 Richard Guenther <rguenther@suse.de>
10357
10358 PR middle-end/48908
10359 PR middle-end/48905
10360 * expmed.c (expand_shift_1): Compute adjusted constant shift
10361 amount manually.
10362
f64c36ba
EB
103632011-05-08 Eric Botcazou <ebotcazou@adacore.com>
10364
10365 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
10366
c461a957
EB
103672011-05-08 Eric Botcazou <ebotcazou@adacore.com>
10368
10369 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
10370
7c74e556
JW
103712011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
10372
10373 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
10374
b4c0a884
JH
103752011-05-07 Jan Hubicka <jh@suse.cz>
10376
a9bcb3f0
EB
10377 * ipa-inline-transform.c (inline_call): Account when program size
10378 decreases.
b4c0a884 10379 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
10380 (edge_badness): Reorganize to be power 2 based; fix thinko when
10381 computing badness for negative growth; update comments to match
10382 reality; better dumps.
b4c0a884 10383
c99c0026
EB
103842011-05-07 Eric Botcazou <ebotcazou@adacore.com>
10385
10386 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
10387 type to bool and adjust comment.
10388 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
10389 (fold_mathfn_compare): Remove calls to global_bindings_p.
10390 (fold_inf_compare): Likewise.
10391 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
10392 * c-tree.h (global_bindings_p): Adjust prototype.
10393 * c-decl.c (global_bindings_p): Return bool and simplify.
10394
1400c8e5
ZD
103952011-05-07 Zdenek Dvorak <ook@ucw.cz>
10396
10397 PR tree-optimization/48837
10398 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
10399 when accumulator transformation is performed.
10400
5d0878e7
JH
104012011-05-06 Jan Hubicka <jh@suse.cz>
10402
a9bcb3f0
EB
10403 * i386.h (ix86_tune_indices): Add
10404 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 10405 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
10406 * i386.c (initial_ix86_tune_features): Add
10407 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
10408 (software_prefetching_beneficial_p): Remove predicate.
10409 (ix86_option_override_internal): Use new macro.
10410
58696ce5
JH
104112011-05-06 Jan Hubicka <jh@suse.cz>
10412
10413 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
10414
c47d0034
JH
104152011-05-06 Jan Hubicka <jh@suse.cz>
10416
10417 * cgraph.c (cgraph_add_thunk): Create real function node instead
10418 of alias node; finalize it and mark needed/reachale; arrange visibility
10419 to be right and add it into the corresponding same comdat group list.
10420 (dump_cgraph_node): Dump thunks.
10421 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
10422 cgraph_function_with_gimple_body_p,
10423 cgraph_first_function_with_gimple_body,
c47d0034
JH
10424 cgraph_next_function_with_gimple_body): New functions.
10425 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
10426 New macros.
10427 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
10428 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10429 * cgraphunit.c (cgraph_finalize_function): Only look into possible
10430 devirtualization when optimizing.
10431 (verify_cgraph_node): Verify thunks.
10432 (cgraph_analyze_function): Analyze thunks.
10433 (cgraph_mark_functions_to_output): Output thunks only in combination
10434 with function they are assigned to.
10435 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
10436 alias into normal node.
10437 (assemble_thunks): New functoin.
10438 (cgraph_expand_function): Use it.
10439 * lto-cgraph.c (lto_output_node): Stream thunks.
10440 (input_overwrite_node): Stream in thunks.
10441 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
10442 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
10443 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
10444 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
10445 (inline_analyze_function): Do not care about thunk jump functions.
10446 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
10447 * ipa-prop.c (ipa_prop_write_jump_functions): Use
10448 cgraph_function_with_gimple_body_p.
10449 * passes.c (do_per_function_toporder): Use
10450 cgraph_function_with_gimple_body_p.
c47d0034
JH
10451 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10452 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
10453 (function_called_by_processed_nodes_p): Likewise.
10454
d8f426ec
JM
104552011-05-06 Joseph Myers <joseph@codesourcery.com>
10456
10457 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
10458 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
10459 entries.
10460 (mabi=): Replace with separate entries for mabi=altivec,
10461 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
10462 mabi=ieeelongdouble and mabi=ibmlongdouble.
10463 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10464 check for -mabi=spe without SPE ABI support here.
10465 (rs6000_handle_option): Replace OPT_mabi_ handling with
10466 OPT_mabi_altivec and OPT_mabi_spe handling.
10467
80bde45b
CC
104682011-05-06 Cary Coutant <ccoutant@google.com>
10469
10470 * dwarf2out.c (contains_subprogram_definition): New function.
10471 (should_move_die_to_comdat): Call it.
10472
a91926b9
JL
104732011-05-06 Jeff Law <law@redhat.com>
10474
10475 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
10476 remove_ctrl_stmt_and_useless_edges.
10477 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
10478 (fixup_template_block, thread_single_edge): Likewise.
10479 (mark_threaded_blocks): Use THREAD_TARGET.
10480
1fc1b66d
AM
104812011-05-06 Alan Modra <amodra@gmail.com>
10482
10483 PR target/48900
10484 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
10485 const0_rtx as the arg to the dummy __tls_get_addr libcall.
10486
e194de64
UB
104872011-05-06 Uros Bizjak <ubizjak@gmail.com>
10488
10489 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
10490 constraint modifier to "r".
10491
d740dc9e
JM
104922011-05-06 Joseph Myers <joseph@codesourcery.com>
10493
10494 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
10495 fall through for OPT_mcmodel_.
10496
cab78b15
AK
104972011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10498
10499 * config/s390/s390.c (s390_asm_trampoline_template): Comment
10500 instruction sizes.
e194de64 10501 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 10502
ee6824ae
RR
105032011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10504
eb1485a6
UB
10505 PR target/47930
10506 * config/arm/arm.opt (marm): Document it.
10507 (mthumb): Reject negative variant.
ee6824ae 10508
9ef58464
UB
105092011-05-06 Uros Bizjak <ubizjak@gmail.com>
10510
10511 PR target/48898
10512 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10513 Fix typo in "ccvt" variable name.
10514
155b6176
TG
105152011-05-06 Tristan Gingold <gingold@adacore.com>
10516
10517 PR target/48895
10518 * config/vms/vms-ar.c (main): Remove cwd variable.
10519
3becc47b
JJ
105202011-05-06 Jakub Jelinek <jakub@redhat.com>
10521
10522 PR debug/48902
10523 * var-tracking.c (prepare_call_arguments): Move else before #endif.
10524
3d528853
NF
105252011-05-05 Nathan Froyd <froydnj@codesourcery.com>
10526
10527 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
10528 * gimplify.c (gimplify_switch_expr): Likewise.
10529 * omp-low.c (expand_omp_sections): Likewise.
10530 * tree-eh.c (lower_try_finally_switch): Likewise.
10531 (lower_eh_dispatch): Likewise.
10532 * tree.h (build_case_label): Declare.
10533 * tree.c (build_case_label): Define.
10534
deb5046b
JM
105352011-05-05 Jason Merrill <jason@redhat.com>
10536
10537 PR c++/40975
10538 * tree-inline.c (copy_tree_r): Use copy_statement_list.
10539 (copy_statement_list): Don't recurse.
10540 * stor-layout.c (copy_self_referential_tree_r): Don't allow
10541 STATEMENT_LIST.
10542
013c0411
JM
105432011-05-05 Joseph Myers <joseph@codesourcery.com>
10544
10545 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
10546 through from -mfpu= handling.
10547 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
10548
a0905f8b
BS
105492011-05-05 Bernd Schmidt <bernds@codesourcery.com>
10550
10551 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
10552 POST_MODIFY.
10553
fc4538e4
SE
105542011-05-05 Steve Ellcey <sje@cup.hp.com>
10555
10556 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
10557 for 11.31.
10558 (hppa[12]*-*-hpux11*): Ditto.
10559 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
10560 * config/ia64/hpux-unix2003.h: New.
10561 * config/pa/pa-hpux1131.opt: New.
10562 * config/pa/pa-hpux1131.h: New.
10563 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
10564 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 10565 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 10566
1e30c578
JJ
105672011-05-05 Jakub Jelinek <jakub@redhat.com>
10568
10569 PR debug/48853
10570 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
10571 instead of mode as 3rd argument to recursive call.
10572 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
10573 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
10574 VOIDmode.
10575 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
10576 don't give up if mode is Pmode and mem_mode is not VOIDmode.
10577 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
10578 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
10579
d19eb620
JB
105802011-05-05 Julian Brown <julian@codesourcery.com>
10581
10582 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
10583 parenthesis in D-register case.
10584
c860fe8c
JM
105852011-05-05 Joseph Myers <joseph@codesourcery.com>
10586
10587 * opt-functions.awk (var_type_struct): Handle Enum options.
10588 * optc-gen.awk: Don't check range of variables of character type.
10589 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
10590 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
10591 rs6000_sdata_name, rs6000_explicit_options): Remove.
10592 (rs6000_option_override_internal): Check for -malign-power here.
10593 Use global_options_set instead of rs6000_explicit_options.
10594 (rs6000_parse_fpu_option): Remove.
10595 (rs6000_handle_option): Access variables via opts and opts_set
10596 pointers. Use error_at and warning_at. Add fall-through
10597 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
10598 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
10599 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
10600 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
10601 here. Don't use rs6000_parse_fpu_option.
10602 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
10603 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
10604 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
10605 (mrecip=): Use Var.
10606 (mspe): Use Var and Save.
10607 (mtraceback=): Use Enum and Var.
10608 (rs6000_traceback_type): New Enum and EnumValue entries.
10609 (mfloat-gprs=): Use Enum, Var and Save.
10610 (rs6000_float_gprs): New Enum and EnumValue entries.
10611 (mlong-double-): use Var and Save.
10612 (msched-costly-dep=, minsert-sched-nops=): Use Var.
10613 (malign-): Use Enum and Var.
10614 (rs6000_alignment_flags): New Enum and EnumValue entries.
10615 (mfpu=): Use Enum.
10616 (fpu_type_t): New Enum and EnumValue entries.
10617 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10618 global_options_set instead of rs6000_explicit_options.
10619 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10620 global_options_set instead of rs6000_explicit_options.
10621 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10622 global_options_set instead of rs6000_explicit_options.
10623 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10624 global_options_set instead of rs6000_explicit_options.
10625 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
10626 global_options_set instead of rs6000_explicit_options.
10627 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10628 global_options_set instead of rs6000_explicit_options.
10629 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
10630 definition.
10631 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10632 global_options_set instead of rs6000_explicit_options.
10633 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
10634 (rs6000_cmodel): New Enum and EnumValue entries.
10635 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10636 global_options_set instead of rs6000_explicit_options.
10637 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
10638 (mtls-size=): Use Enum and Var.
10639 (rs6000_tls_size): New Enum and EnumValue entries.
10640
0691dde9
MM
106412011-05-05 Michael Matz <matz@suse.de>
10642
10643 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
10644 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
10645 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
10646 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
10647 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
10648 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
10649 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
10650 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
10651 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
10652 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
10653 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
10654 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
10655 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
10656 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
10657 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
10658 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
10659
86529a49
RG
106602011-05-05 Richard Guenther <rguenther@suse.de>
10661
10662 * expmed.c (expand_variable_shift): Rename to ...
10663 (expand_shift_1): ... this. Take an expanded shift amount.
10664 For rotates recurse directly not building trees for the shift amount.
10665 (expand_variable_shift): Wrap around expand_shift_1.
10666 (expand_shift): Adjust.
10667
d0228c2e
JJ
106682011-05-05 Jakub Jelinek <jakub@redhat.com>
10669
10670 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
10671
907a08d9
EB
106722011-05-05 Eric Botcazou <ebotcazou@adacore.com>
10673
10674 * tree.h (get_pending_sizes): Remove prototype.
10675 (put_pending_size): Likewise.
10676 (put_pending_sizes): Likewise.
10677 * stor-layout.c (pending_sizes): Delete.
10678 (get_pending_sizes): Likewise.
10679 (put_pending_size): Likewise.
10680 (put_pending_sizes): Likewise.
10681 (variable_size): Do not call put_pending_size and tidy up.
10682 * function.h (struct function): Remove dont_save_pending_sizes_p.
10683 * lto-streamer-in.c (input_function): Do not stream it.
10684 * lto-streamer-out.c (output_function): Likewise.
10685 * tree-inline.c (initialize_cfun): Do not copy it.
10686 * c-decl.c (store_parm_decls): Do not set it.
10687 * omp-low.c (create_task_copyfn): Likewise.
10688 * tree-optimize.c (tree_rest_of_compilation): Likewise.
10689
386d9c57
UB
106902011-05-05 Uros Bizjak <ubizjak@gmail.com>
10691
10692 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
10693 conditions.
10694 (*movdf_internal): Ditto.
10695 (*movdf_internal_nointeger): Ditto.
10696 (*movsf_internal): Ditto.
10697
a04a722b
JM
106982011-05-05 Joseph Myers <joseph@codesourcery.com>
10699
10700 * c-decl.c (finish_decl): Don't call get_pending_sizes.
10701 (grokparm): Add parameter expr. Pass it to grokdeclarator.
10702 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
10703 (c_variable_size): Remove.
10704 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
10705 call put_pending_sizes.
10706 (get_parm_info): Add parameter expr. Use it to set
10707 arg_info->pending_sizes.
10708 (store_parm_decls): Use arg_info->pending_sizes instead or calling
10709 get_pending_sizes.
10710 * c-parser.c (c_parser_parms_declarator): Update call to
10711 c_parser_parms_list_declarator.
10712 (c_parser_parms_list_declarator): Take parameter expr. Update
10713 call to push_parm_decl. Update recursive call. Don't call
10714 get_pending_sizes. Update calls to get_parm_info.
10715 (c_parser_objc_method_definition): Update calls to
10716 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 10717 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
10718 (c_parser_objc_method_decl): Add parameter expr. Update call to
10719 grokparm.
386d9c57 10720 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
10721 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
10722 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
10723
c92a6f97
MH
107242011-05-05 Michael Hope <michael.hope@linaro.org>
10725
386d9c57
UB
10726 PR pch/45979
10727 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
10728 __ARM_EABI__ hosts.
c92a6f97 10729
07ea0048
UW
107302011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10731
10732 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10733 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
10734 (spu_output_mi_thunk): New function.
10735
d634bfa1
RO
107362011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10737
10738 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
10739 targetm.asm_out.print_operand.
10740 * config/sol2.c: Include target.h.
10741
40fda55b
JH
107422011-05-04 Jan Hubicka <jh@suse.cz>
10743
10744 * ipa-inline.c (reset_edge_caches): New function.
10745 (update_caller_keys): Add check_inlinablity_for; do not
10746 reset edge caches; remove now unnecesary loop.
386d9c57 10747 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
10748 (update_all_callee_keys): Likewise.
10749 (inline_small_functions): Sanity check cache; update code
10750 recomputing it.
10751
0360f70d
BS
107522011-05-04 Bernd Schmidt <bernds@codesourcery.com>
10753
10754 PR rtl-optimization/47612
10755 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
10756 as the last insn of the sequence to be moved.
10757
7a994646
TB
107582011-05-04 Tobias Burnus <burnus@net-b.de>
10759
10760 PR fortran/48864
10761 * doc/invoke.texi (Ofast): Document that it
10762 enables Fortran's -fno-protect-parens.
10763
7a2f7208
UB
107642011-05-04 Uros Bizjak <ubizjak@gmail.com>
10765
10766 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
10767
a2d42931
EB
107682011-05-04 Eric Botcazou <ebotcazou@adacore.com>
10769
10770 * stor-layout.c (variable_size): Do not issue errors.
10771
f81b1a3d
RG
107722011-05-04 Richard Guenther <rguenther@suse.de>
10773
10774 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
10775 for array-ref indices.
10776 (tree_coverage_counter_addr): Likewise.
10777 (build_fn_info_type): Use size_int for index types.
10778 (build_gcov_info): Likewise.
10779
c62c040f
RG
107802011-05-04 Richard Guenther <rguenther@suse.de>
10781
10782 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
10783 to build_int_cst.
10784 * c-typeck.c (really_start_incremental_init): Use bitsize_int
10785 for constructor indices.
10786 (push_init_level): Likewise.
10787
1e3287d0
RG
107882011-05-04 Richard Guenther <rguenther@suse.de>
10789
10790 * explow.c (promote_mode): Move variable declarations before code.
10791
6c32445b
NF
107922011-05-04 Nathan Froyd <froydnj@codesourcery.com>
10793
10794 * tree.h (build_function_type_array): Declare.
10795 (build_varargs_function_type_array): Declare.
10796 (build_function_type_vec, build_varargs_function_type_vec): Define.
10797 * tree.c (build_function_type_array_1): New function.
10798 (build_function_type_array): New function.
10799 (build_varargs_function_type_array): New function.
10800
fdabf269
RS
108012011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
10802
10803 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
10804 before setting STMT_VINFO_TYPE.
10805
a207915a
UW
108062011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10807
10808 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
10809 instead of spu_pass_by_reference.
10810
5e617be8
AK
108112011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10812
10813 * calls.c (emit_library_call_value_1): Invoke
10814 promote_function_mode hook on libcall arguments.
10815 * explow.c (promote_function_mode, promote_mode): Handle TYPE
10816 argument being NULL.
10817 * targhooks.c (default_promote_function_mode): Lisewise.
10818 * config/s390/s390.c (s390_promote_function_mode): Likewise.
10819 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
10820
10821 * doc/tm.texi: Document that TYPE argument might be NULL.
10822
486d04be
SH
108232011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10824
10825 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
10826
9b19b026
SH
108272011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10828
10829 From Bernd Schmidt
10830 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
10831
502bc3df
RO
108322011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10833
10834 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
10835 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
10836 Move ...
10837 * mips-tfile.c: ... here.
10838 Don't include coretypes.h, tm.h, filenames.h.
10839 (saber_stop): Remove definition and all calls.
10840 [__SABER__]: Remove.
10841 (__LINE__): Remove default.
10842 (Size_t, Ptrdiff_t): Remove definitions.
10843 Replace by size_t, ptrdiff_t.
10844 [!MIPS_DEBUGGING_INFO]: Remove.
10845 (SHASH_SIZE, THASH_SIZE): Remove defaults.
10846 (progname): Add const.
10847 (STATIC): Remove.
10848 Replace all uses by static.
10849 (ALIGN_SYMTABLE_OFFSET): Remove default.
10850 * mips-tdump.c: Don't include coretypes.h, tm.h.
10851 Remove !MIPS_IS_STAB guard.
10852 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
10853 $(TM_H), filenames.h dependencies.
10854 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
10855
991eb6ef
SH
108562011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10857
10858 From Jie Zhang
10859 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
10860 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10861
420ccc84
SH
108622011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10863
10864 From Bernd Schmidt
10865 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
10866 account and save/restore RETS.
10867 (PROFILE_BEFORE_PROLOGUE): Define.
10868 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
10869 the push insn to use predecrement.
10870
9f8d69ee
SH
108712011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10872
10873 From Jie Zhang
10874 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
10875
662c03f4
NC
108762011-05-04 Nick Clifton <nickc@redhat.com>
10877
10878 * config/mn10300/mn10300.c: Include cfgloop.h.
10879 (DUMP): New macro.
10880 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
10881 Lcc or a FLcc insn into the instruction stream.
10882 (mn10300_block_contains_call): New function. Returns true if the
10883 given basic block contains a CALL insn.
10884 (mn10300_loop_contains_call_insn): New function. Returns true if
10885 the given loop contains a CALL insn.
10886 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
10887 to use the SETLB and Lcc or FLcc insns.
10888 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
10889 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
10890 * config/mn10300/mn10300.opt (msetlb): New option. Used to
10891 disable the SETLB optimization.
10892 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
10893 __SETLB__ or __NO_SETLB__.
10894 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
10895 (movsf_internal): Handle MDR register.
10896 (cmpsi): Make visible.
10897 (setlb): New pattern.
10898 (Lcc): New pattern.
10899 (FLcc): New pattern.
10900
843b6915
UB
109012011-05-04 Uros Bizjak <ubizjak@gmail.com>
10902
10903 PR target/48860
10904 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
10905 for reg<->xmm moves.
10906 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
10907 (vec_concatv2di_rex64_sse): Ditto.
10908 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
10909 (*vec_extractv2di_1_rex64): Ditto.
10910
10911 Revert:
10912 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
10913
10914 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10915 reg<->xmm moves.
10916 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
10917
d35936ab
RG
109182011-05-04 Richard Guenther <rguenther@suse.de>
10919
10920 * tree.h (int_const_binop): Remove notrunc argument.
10921 * fold-const.c (int_const_binop): Remove notrunc argument. Always
10922 create integer constants that are properly truncated.
10923 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
10924 (const_binop): Remove zero notrunc argument to int_const_binop.
10925 (size_binop_loc): Likewise.
10926 (fold_div_compare): Likewise.
10927 (maybe_canonicalize_comparison_1): Likewise.
10928 (fold_comparison): Likewise.
10929 (fold_binary_loc): Likewise.
10930 (multiple_of_p): Likewise.
10931 * expr.c (store_constructor): Likewise.
10932 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
10933 (maybe_fold_stmt_addition): Likewise.
10934 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
10935 * stor-layout.c (layout_type): Likewise.
10936 * tree-data-ref.c (tree_fold_divides_p): Likewise.
10937 * tree-sra.c (build_ref_for_offset): Likewise.
10938 (build_user_friendly_ref_for_offset): Likewise.
10939 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
10940 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
10941 * tree-ssa-loop-niter.c (inverse): Likewise.
10942 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10943 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
10944 * tree-switch-conversion.c (check_range): Likewise.
10945 (build_constructors): Likewise.
10946 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10947 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
10948 (extract_range_from_assert): Likewise.
10949 (vrp_int_const_binop): Likewise.
10950 (extract_range_from_binary_expr): Likewise.
10951 (extract_range_from_unary_expr): Likewise.
10952 (check_array_ref): Likewise.
10953 (find_case_label_range): Likewise.
10954 (simplify_div_or_mod_using_ranges): Likewise.
10955 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
10956 comparing case labels for merging.
10957
8992c063
MW
109582011-05-03 Mark Wielaard <mjw@redhat.com>
10959
10960 * dwarf2out.c (debug_str_hash_forced): Removed.
10961 (gen_label_for_indirect_string): Removed.
10962 (get_debug_string_label): Removed.
10963 (AT_string_form): Generate label directly.
10964 (output_indirect_string): Test indirect_string_node for
10965 DW_FORM_strp instead of checking label and refcount.
10966 (prune_indirect_string): Removed.
10967 (prune_unused_types): Don't check debug_str_hash_forced or
10968 call prune_indirect_string.
10969
4868e6ea
AO
109702011-05-04 Alexandre Oliva <aoliva@redhat.com>
10971
10972 PR other/48093
10973 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
10974
01a5c0ab
AO
109752011-05-04 Alexandre Oliva <aoliva@redhat.com>
10976
10977 PR debug/47994
10978 PR debug/47919
10979 * combine.c (try_combine): Skip debug insns at m_split tests.
10980
6ac00218
MW
109812011-04-26 Mark Wielaard <mjw@redhat.com>
10982
10983 PR42288
10984 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
10985 when info_section_emitted.
10986
3af42a7b
JM
109872011-05-03 Joseph Myers <joseph@codesourcery.com>
10988
10989 * config/mips/mips-opts.h: New.
10990 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
10991 to mips-opts.h.
10992 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
10993 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
10994 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
10995 via opts pointer.
10996 * config/mips/mips.h (enum mips_code_readable_setting): Move to
10997 mips-opts.h.
10998 (mips_abi, mips_code_readable): Don't declare.
843b6915 10999 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
11000 (mabi=): Use Enum and Var.
11001 (mips_abi): New Enum and EnumValue entries.
11002 (mcode-readable=): Use Enum and Var.
11003 (mips_code_readable_setting): New Enum and EnumValue entries.
11004 (mr10k-cache-barrier=): Use Enum and Var.
11005 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
11006
1cb1a99f
JH
110072011-05-03 Jan Hubicka <jh@suse.cz>
11008
11009 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
11010 replace hash by pointer map.
11011 (cgraph_node_set_element_def, cgraph_node_set_element,
11012 const_cgraph_node_set_element, varpool_node_set_element_def,
11013 varpool_node_set_element, const_varpool_node_set_element): Remove.
11014 (free_cgraph_node_set, free_varpool_node_set): New function.
11015 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
11016 * tree-emutls.c: Free varpool node set.
11017 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
11018 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11019 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
11020 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11021 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
11022 Move here from ipa.c; implement using pointer_map
11023 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
11024 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11025 debug_cgraph_node_set, varpool_node_set_new,
11026 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11027 dump_varpool_node_set, debug_varpool_node_set):
11028 Move to ipa-uitls.c.
11029 * passes.c (ipa_write_summaries): Update.
11030
7f31f4db
SH
110312011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11032
7a2f7208
UB
11033 From Mike Frysinger:
11034 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
11035 bf542/bf544/bf547/bf548/bf549.
7f31f4db 11036
b70fce6d
UB
110372011-05-03 Uros Bizjak <ubizjak@gmail.com>
11038
11039 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
11040
265b1d82
SH
110412011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11042
11043 From Bernd Schmidt:
11044 * config/bfin/bfin.md (MOVCC): New mode_macro.
11045 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
11046 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
11047 comments from generated assembly.
11048
f0b568f3
SH
110492011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11050
11051 From Bernd Schmidt
11052 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
11053 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
11054 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
11055 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
11056 * config/bfin/lib1funcs.asm (___muldi3): New function.
11057
2c67cf6e
NF
110582011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11059
11060 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
11061 build_function_type_list instead of build_function_type.
11062 Rearrange initialization of `args' to do so.
11063
f9ac28ad
NF
110642011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11065
11066 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
11067 instead of build_function_type.
11068
22b8798c
NF
110692011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11070
11071 * config/rs6000/rs6000.c (spe_init_builtins): Call
11072 build_function_type_list instead of build_function_type.
11073 (paired_init_builtins, altivec_init_builtins): Likewise.
11074 (builtin_function_type): Likewise.
11075
4cb44528
NF
110762011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11077
11078 * config/sh/sh.c (sh_media_init_builtins): Call
11079 build_function_type_list instead of build_function_type.
11080
4c203a6a
NF
110812011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11082
11083 * config/sparc/sparc.c (sparc_file_end): Call
11084 build_function_type_list instead of build_function_type.
11085
d6a3d62b
NF
110862011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11087
11088 * config/alpha/alpha.c (alpha_init_builtins): Call
11089 build_function_type_list instead of build_function_type.
11090
de530b86
NF
110912011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11092
11093 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
11094 build_function_type_list instead of build_function_type.
11095
baeec5f2
NF
110962011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11097
11098 * config/iq2000/i2000.c (iq2000_init_builtins): Call
11099 build_function_type_list instead of build_function_type.
11100 Delete `endlink' variable.
11101
c19afe52
NF
111022011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11103
11104 * config/avr/avr.c (avr_init_builtins): Call
11105 build_function_type_list instead of build_function_type.
11106
a341df0a
NF
111072011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11108
11109 * config/picochip/picochip.c (picochip_init_builtins): Call
11110 build_function_type_list instead of build_function_type.
11111 Delete `endlink' variable.
11112
2102b1e1
NF
111132011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11114
11115 * config/bfin/bfin.c (bfin_init_builtins): Call
11116 build_function_type_list instead of build_function_type.
11117
9f111209
SH
111182011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11119
11120 From Bernd Schmidt
11121 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
11122 that's not CONST_INT. Seemingly redundant check is due to PR39768.
11123
7071d064
SH
111242011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11125
11126 From Jie Zhang:
11127 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
11128 libbffastfp overrides libgcc when -mfast-fp.
11129
748f7574 111302011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
11131
11132 Originally from Bernd Schmidt
11133 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
11134 * config/bfin/bfin.c (override_options): Test it and error if
11135 TARGET_FDPIC.
11136
1a3a9152
SH
111372011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11138
11139 Originally From Bernd Schmidt
11140 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
11141 FD-PIC.
11142
7134c090
JL
111432011-05-03 Jeff Law <law@redhat.com>
11144
11145 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
11146 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
11147 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
11148 than accessing AUX field directly. Free the AUX field before
11149 clearing it.
7134c090
JL
11150 (thread_block, thread_through_loop_header): Likewise.
11151 (thread_single_edge, mark_threaded_blocks): Likewise.
11152 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
11153 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 11154
2c7eebae
BS
111552011-05-03 Bernd Schmidt <bernds@codesourcery.com>
11156
11157 * function.c (init_function_start): Call decide_function_section.
11158 * varasm.c (decide_function_section): New function.
11159 (assemble_start_function): When not using
11160 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
11161 or first_function_block_is_cold.
11162 * rtl.h (decide_function_section): Declare.
11163
17038fcf
JJ
111642011-05-03 Uros Bizjak <ubizjak@gmail.com>
11165 Jakub Jelinek <jakub@redhat.com>
11166
11167 PR target/48774
11168 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
11169 only succeed if req_mode is the same as set_mode.
11170
3810076b
BS
111712011-05-03 Bernd Schmidt <bernds@codesourcery.com>
11172
11173 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
11174 * genemit.c (gen_exp): Handle RETURN.
11175 * emit-rtl.c (verify_rtx_sharing): Likewise.
11176 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
11177 * rtl.c (copy_rtx): RETURN is shared.
11178 * rtl.h (enum global_rtl_index): Add GR_RETURN.
11179 (ret_rtx): New.
11180 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
11181 * config/s390/s390.c (s390_emit_epilogue): Likewise.
11182 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
11183 * config/cris/cris.c (cris_expand_return): Likewise.
11184 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
11185 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
11186 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
11187 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
11188 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
11189 Likewise.
11190 * config/v850/v850.c (expand_epilogue): Likewise.
11191 * config/bfin/bfin.c (bfin_expand_call): Likewise.
11192 * config/arm/arm.md (epilogue): Likewise.
11193 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
11194 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
11195 variable to ret_reg.
11196
9efdb4ad
RG
111972011-05-03 Richard Guenther <rguenther@suse.de>
11198
11199 PR lto/48846
11200 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
11201 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
11202 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
11203
60a45536
RG
112042011-05-03 Richard Guenther <rguenther@suse.de>
11205
11206 * c-decl.c (grokdeclarator): Instead of looking at
11207 TREE_OVERFLOW check if the constant fits in the index type.
11208
3188ed59
RS
112092011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
11210
11211 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
11212 (vec_store_lanes<mode><mode>): Likewise.
11213
272c6793
RS
112142011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
11215
11216 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
11217 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
11218 convert_optab_index values.
11219 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
11220 * genopinit.c (optabs): Initialize the new optabs.
11221 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
11222 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
11223 (expand_STORE_LANES): New functions.
11224 * tree.h (build_array_type_nelts): Declare.
11225 * tree.c (build_array_type_nelts): New function.
11226 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
11227 (vect_model_load_cost): Likewise.
11228 (vect_store_lanes_supported, vect_load_lanes_supported)
11229 (vect_record_strided_load_vectors): Declare.
11230 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
11231 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
11232 (vect_transform_strided_load): Split out statement recording into...
11233 (vect_record_strided_load_vectors): ...this new function.
11234 * tree-vect-stmts.c (create_vector_array, read_vector_array)
11235 (write_vector_array, create_array_ref): New functions.
11236 (vect_model_store_cost): Add store_lanes_p argument.
11237 (vect_model_load_cost): Add load_lanes_p argument.
11238 (vectorizable_store): Try to use store-lanes functions for
11239 interleaved stores.
11240 (vectorizable_load): Likewise load-lanes and loads.
11241 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
11242 to vect_model_store_cost.
11243 (vect_build_slp_tree): Likewise vect_model_load_cost.
11244
0f6d54f7
RS
112452011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
11246
11247 * hooks.h (hook_bool_mode_uhwi_false): Declare.
11248 * hooks.c (hook_bool_mode_uhwi_false): New function.
11249 * target.def (array_mode_supported_p): New hook.
11250 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
11251 * doc/tm.texi: Regenerate.
11252 * stor-layout.c (mode_for_array): New function.
11253 (layout_type): Use it.
11254 * config/arm/arm.c (arm_array_mode_supported_p): New function.
11255 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
11256
b15eacc7
EB
112572011-05-03 Eric Botcazou <ebotcazou@adacore.com>
11258
11259 PR target/48723
11260 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
11261 for -fstack-check if the size to allocate is negative.
11262
575bfb00
LC
112632011-05-02 Lawrence Crowl <crowl@google.com>
11264
11265 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
11266 (timevar_cond_start): New for starting a timer only when it is not
11267 already running.
11268 (timevar_cond_stop): New for stopping a timer when it was not already
11269 running.
11270
11271 * timevar.c (timevar_stop): Enable start/stop timers to start again.
11272 (timevar_cond_start): New as above.
11273 (timevar_cond_stop): New as above.
11274
11275 * timevar.def: Add start/stop timers for compiler phases,
11276 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
11277 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
11278 and TV_PHASE_FINALIZE.
11279 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
11280 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
11281 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
11282 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
11283 Make unused TV_OVERLOAD into a start/stop timer.
11284
11285 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
11286 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
11287 to indicate that they are start/stop timers.
11288
11289 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
11290 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
11291 Move initialization to do_compile.
11292 (do_compile): Add initialization from above.
11293 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
11294
11295 * c-decl.c (c_write_global_declarations): Add start/stop of
11296 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
11297
11298 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
11299 or TV_PARSE_INLINE, as appropriate.
11300 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
11301 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
11302
3533b943
JM
113032011-05-02 Jason Merrill <jason@redhat.com>
11304
11305 PR c++/40975
11306 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
11307
2609a0ce
SM
113082011-05-02 Simon Martin <simartin@users.sourceforge.net>
11309
11310 PR c/35445
11311 * c-decl.c (finish_decl): Only create a composite if the types are
11312 compatible.
11313
6b0e4cbb
JM
113142011-05-02 Joseph Myers <joseph@codesourcery.com>
11315
11316 * config/fr30/fr30-protos.h (Mmode): Don't define.
11317 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
11318 definition where used.
11319 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
11320 define. Expand definitions where used.
11321 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
11322 Expand definitions where used.
11323 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
11324 rx_function_arg, rx_function_arg_advance,
11325 rx_function_arg_boundary): Expand definitions of those macros.
11326 * config/v850/v850-protos.h (Mmode): Don't define. Expand
11327 definition where used.
11328
4e938ce6
UB
113292011-05-02 Uros Bizjak <ubizjak@gmail.com>
11330
11331 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11332 reg<->xmm moves.
11333 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
11334 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
11335 with *movv2sf_internal_rex64_avx.
11336 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
11337 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
11338 Use %v prefix in insn mnemonic to handle TARGET_AVX.
11339 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
11340 "vex" in "prefix" attribute calculation.
11341 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
11342
36019c19
SH
113432011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
11344
7a2f7208
UB
11345 PR target/47951
11346 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
11347 inputs match the output.
36019c19 11348
f69ea688
AS
113492011-05-02 Andreas Schwab <schwab@linux-m68k.org>
11350
11351 PR target/47955
11352 * config/m68k/m68k.c (m68k_expand_prologue): Set
11353 current_function_static_stack_size.
11354
c33406f5
JH
113552011-05-02 Jan Hubicka <jh@suse.cz>
11356
11357 * lto-streamer.c (lto_streamer_cache_insert_1,
11358 lto_streamer_cache_lookup, lto_streamer_cache_create,
11359 lto_streamer_cache_delete): Use pointer map instead of hashtable.
11360 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
11361
47c94d21
JM
113622011-05-02 Joseph Myers <joseph@codesourcery.com>
11363
11364 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
11365 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
11366 config/m68k/t-opts: New files.
11367 * config/m68k/m68k-tables.opt: New file (generated).
11368 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
11369 extra_options and m68k/t-opts to tmake_file.
11370 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
11371 (all_isas): Initialize using m68k-isas.def.
11372 (all_microarchs): Initialize using m68k-microarchs.def.
11373 (m68k_find_selection): Remove.
11374 (m68k_handle_option): Don't assert that global structures are in
11375 use. Use error_at. Access variables via opts pointer. Don't
11376 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
11377 directly for -m68020-40 and -m68020-60.
11378 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
11379 m68k_tune_entry here.
11380 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
11381 to m68k-opts.h.
11382 (m68k_library_id_string): Remove declaration.
4e938ce6 11383 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
11384 (m68k_library_id_string): New Variable.
11385 (march=, mcpu=, mtune=): Use Enum and Var.
11386
e562bf36
RG
113872011-05-02 Richard Guenther <rguenther@suse.de>
11388
11389 * varasm.c (output_constructor_regular_field): Compute zero-based
11390 index with double-ints. Make sure to ICE instead of producing
11391 wrong code.
11392 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
11393 in asserts. Properly use a signed type.
11394
6bec6c98
UB
113952011-05-02 Uros Bizjak <ubizjak@gmail.com>
11396
11397 * config/i386/sse.md (V): New mode iterator.
11398 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
11399 TARGET_SSE2.
11400 (V_256): Rename from AVX256MODE.
11401 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
11402 condition to all users.
11403 (VF1): Ditto.
11404 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
11405 condition to all users.
11406 (VF_128): Make V4SF mode unconditional.
11407 (VF_256): Rename from AVX256MODEF2P.
11408 (VI4F_128): Rename from SSEMODE4S.
11409 (VI8F_128): Rename from SSEMODE2D.
11410 (VI4F_256): Rename from AVX256MODE8P.
11411 (VI8F_256): Rename from AVX256MODE4P.
11412 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
11413 (ssescalarmodesuffix): Remove SF and DF modes.
11414 (SSEMODE124): Remove.
11415 (SSEMODE1248): Ditto.
11416 (SSEMODEF2P): Ditto.
11417 (AVXMODEF2P): Ditto.
11418 (AVXMODEFDP): Ditto.
11419 (AVXMODEFSP): Ditto.
11420 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
11421 unconditional.
11422 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
11423 unconditional.
11424 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
11425 xop_pcmov_<mode>256. Use V mode iterator.
11426
11427 Adjust RTX patterns globally for renamed mode attributes.
11428
2dfdcb4b
UW
114292011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11430
11431 * haifa-sched.c (sched_emit_insn): Emit insn before first
11432 non-scheduled insn. Inform back-end about new insn. Add
11433 new insn to scheduled_insns list.
11434
90bc4623
RG
114352011-05-02 Richard Guenther <rguenther@suse.de>
11436
11437 PR tree-optimization/48822
11438 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
11439 (process_scc): Indicate which iteration we start.
11440
bc0fe8cb
JH
114412011-05-02 Jan Hubicka <jh@suse.cz>
11442
11443 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
11444 (lto_section_overrun): New.
11445 * lto-section-out.c (append_block): Rename to ...
11446 (lto_append_block): ... this one; export.
11447 (lto_output_1_stream): Move lto lto-streamer.h
11448 (lto_output_data_stream): Update.
11449 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
11450 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
11451 functions.
11452
f070a9d1
RG
114532011-05-02 Richard Guenther <rguenther@suse.de>
11454
11455 * tree.c (tree_code_counts): New global array.
11456 (record_node_allocation_statistics): Count individual tree codes.
11457 (dump_tree_statistics): Dump individual code stats.
11458
09dfe187
JH
114592011-05-01 Jan Hubicka <jh@suse.cz>
11460
11461 * ipa-inline.c (caller_growth_limits): Fix thinko when
11462 looking for largest stack frame.
11463 * ipa-inline.h (dump_inline_summary): Declare.
11464 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
11465 on stack usage.
11466 (dump_inline_summary): Export.
11467 (debug_inline_summary): Declare as DEBUG_FUNCTION.
11468
6f76a878
AS
114692011-05-01 Anatoly Sokolov <aesok@post.ru>
11470
11471 * reginfo.c (memory_move_cost): Change rclass argument type form
11472 'enum reg_class' to reg_class_t.
11473 * reload.h (memory_move_cost): Update prototype.
11474 * postreload.c reload_cse_simplify_set): Change type dclass var to
11475 reg_class_t.
11476 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
11477 Update prototype.
11478 (ira_allocate_and_set_costs): Change aclass argument type form
11479 'enum reg_class' to reg_class_t.
6bec6c98 11480 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
11481 Change aclass argument type to reg_class_t.
11482 (update_conflict_hard_reg_costs): Change type aclass and pref vars
11483 to reg_class_t.
11484 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
11485 memory_move_cost call.
11486
11487 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
11488 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
11489 Change type tmp var to reg_class_t.
11490
9a4ac625
JH
114912011-04-30 Jan Hubicka <jh@suse.cz>
11492
11493 * ipa-inline.c (can_inline_edge_p): Disregard limits when
11494 inlining into function with flatten attribute.
11495 (want_inline_small_function_p): Be more realistic about inlining
11496 cold calls where callee size grows.
11497
dd8352ee
JH
114982011-04-30 Jan Hubicka <jh@suse.cz>
11499
11500 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
11501 flags.
11502
46e43d2b
AS
115032011-04-30 Anatoly Sokolov <aesok@post.ru>
11504
11505 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
11506 PRINT_OPERAND_PUNCT_VALID_P): Remove.
11507 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
11508 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
11509 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11510 (print_operand): Rename to...
11511 (sparc_print_operand): ...this. Make static. Adjust
11512 sparc_print_operand function call.
11513 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
11514 functions.
11515
ecb62563
JH
115162011-04-30 Jan Hubicka <jh@suse.cz>
11517
6bec6c98 11518 PR middle-end/48752
ecb62563
JH
11519 * ipa-inline.c (early_inliner): Disable when doing late
11520 addition of function.
11521
edb9b69e
JJ
115222011-04-30 Jakub Jelinek <jakub@redhat.com>
11523
be80a87e
JJ
11524 * dwarf2out.c (get_address_mode): New inline.
11525 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
11526 if not dwarf_strict emit
11527 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
11528 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
11529 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
11530 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
11531 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
11532 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
11533 mem_loc_descriptor callers.
11534 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11535 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
11536 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
11537 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
11538 (base_types): New variable.
11539 (get_base_type_offset, calc_base_type_die_sizes,
11540 base_type_for_mode, mark_base_types, base_type_cmp,
11541 move_marked_base_types): New functions.
11542 (calc_die_sizes): Assert that die_offset is 0 or equal to
11543 next_die_offset.
11544 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
11545 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
11546 callers. If not dwarf_strict, call mem_loc_descriptor even for
11547 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
11548 (gen_subprogram_die): Don't give up on call site parameters
11549 with non-integral or large integral modes. Adjust
11550 mem_loc_descriptor callers.
11551 (prune_unused_types): Call prune_unused_types_mark on base_types
11552 vector entries.
11553 (resolve_addr): Call mark_base_types.
11554 (dwarf2out_finish): Call move_marked_base_types.
11555
edb9b69e
JJ
11556 PR tree-optimization/48809
11557 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
11558 type.
11559 (gen_inbound_check): Don't compute index_expr - range_min in utype
11560 again, instead reuse SSA_NAME initialized in build_arrays.
11561 Remove two useless gsi_for_stmt calls.
11562
a6545a3d
JL
115632011-04-29 Jeff Law <law@redhat.com>
11564
11565 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
11566
af8bca3c
MJ
115672011-04-29 Martin Jambor <mjambor@suse.cz>
11568
11569 * cgraph.h (cgraph_postorder): Remove declaration.
11570 * ipa-utils.h (ipa_free_postorder_info): Declare.
11571 (ipa_reverse_postorder): Likewise.
11572 * cgraphunit.c: Include ipa-utils.h.
11573 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
11574 * ipa-inline.c: Include ipa-utils.h.
11575 (ipa_inline): Update call to ipa_reverse_postorder.
11576 * ipa-pure-const.c (propagate_pure_const): Update call to
11577 ipa_reduced_postorder and ipa_print_order. Call
11578 ipa_free_postorder_info to clean up.
11579 (propagate_nothrow): Likewise.
11580 * ipa-reference.c (propagate): Removed a useless call to
11581 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
11582 and ipa_print_order. Call ipa_free_postorder_info to clean up.
11583 * ipa.c: Include ipa-utils.h.
11584 (ipa_profile): Update call to ipa_reverse_postorder.
11585 (cgraph_postorder): Moved to...
11586 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
11587 (ipa_utils_print_order): Renamed to ipa_print_order.
11588 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
11589 comments.
11590 (ipa_free_postorder_info): New function.
11591 * passes.c: Include ipa-utils.h.
11592 (do_per_function_toporder): Update call to ipa_reverse_postorder.
11593 (ipa_write_summaries): Likewise.
11594 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
11595 (cgraphunit.o): Likewise.
11596 (ipa.o): Likewise.
11597 (ipa-inline.o): Likewise.
11598
b15c64ee
JH
115992011-04-29 Jan Hubicka <jh@suse.cz>
11600
11601 * gcc.dg/tree-ssa/inline-10.c: New testcase.
11602 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
11603 * ipa-inline.h (clause_t): Turn into unsigned int.
11604 * ipa-inline-analysis.c (add_clause): Do more simplification.
11605 (and_predicates): Shortcut more cases.
11606 (predicates_equal_p): Move forward; check that clauses are properly
11607 ordered.
11608 (or_predicates): Shortcut more cases.
11609 (edge_execution_predicate): Rewrite as...
11610 (set_cond_stmt_execution_predicate): ... this function; handle
11611 __builtin_constant_p.
11612 (set_switch_stmt_execution_predicate): New .
11613 (compute_bb_predicates): New.
11614 (will_be_nonconstant_predicate): Update TODO.
11615 (estimate_function_body_sizes): Use compute_bb_predicates
11616 and free them later, always try to estimate if stmt is constant.
11617 (estimate_time_after_inlining, estimate_size_after_inlining):
11618 Gracefully handle optimized out edges.
11619 (read_predicate): Fix off by one error.
11620
a88fdc2a
NP
116212011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
11622
11623 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
11624
d984c8ef
XDL
116252011-04-27 Xinliang David Li <davidxl@google.com>
11626
11627 * tree-profile.c (init_ic_make_global_vars): Set
11628 tls attribute on ic vars.
11629 * coverage.c (coverage_end_function): Initialize
11630 function_list with zero.
11631
45a2c477
RG
116322011-04-29 Richard Guenther <rguenther@suse.de>
11633
11634 * builtins.c (fold_builtin_classify_type): Use integer_type_node
11635 for the type of the result.
11636 (fold_builtin_isascii): Likewise.
11637 (fold_builtin_toascii): Use integer_type_node where appropriate.
11638 (fold_builtin_logb): Likewise.
11639 (fold_builtin_frexp): Likewise.
11640 (fold_builtin_strstr): Likewise.
11641 (fold_builtin_strpbrk): Likewise.
11642 (fold_builtin_fputs): Likewise.
11643 (fold_builtin_sprintf): Likewise.
11644 (fold_builtin_snprintf): Likewise.
11645 (fold_builtin_printf): Likewise.
11646 (do_mpfr_remquo): Use a proper type for the assigned constant.
11647 (do_mpfr_lgamma_r): Likewise.
11648 * dwarf2out.c (resolve_one_addr): Use size_int.
11649 * except.c (init_eh): Likewise.
11650 (assign_filter_values): Use integer_type_node for filter values.
11651 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
11652 indices.
11653 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
11654 for EH region numbers.
11655 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
11656 for the shift amount.
11657
eb6c3df1
RG
116582011-04-29 Richard Guenther <rguenther@suse.de>
11659
11660 * expr.h (expand_shift): Rename to ...
11661 (expand_variable_shift): ... this.
11662 (expand_shift): Take a constant shift amount.
11663 * expmed.c (expand_shift): Rename to ...
11664 (expand_variable_shift): ... this.
11665 (expand_shift): New wrapper around expand_variable_shift.
11666 * expr.c (convert_move, emit_group_load_1, emit_group_store,
11667 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
11668 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
11669 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
11670 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
11671 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
11672 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
11673 emit_store_flag_1, emit_store_flag): Likewise.
11674 * builtins.c (expand_builtin_signbit): Likewise.
11675 * calls.c (load_register_parameters): Likewise.
11676 * function.c (assign_parm_setup_block): Likewise.
11677 * lower-subreg.c (resolve_shift_zext): Likewise.
11678 * optabs.c (widen_bswap, expand_abs_nojump,
11679 expand_one_cmpl_abs_nojump, expand_float): Likewise.
11680 * spu/spu.c (spu_expand_extv): Likewise.
11681 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11682
9f616812
RG
116832011-04-29 Richard Guenther <rguenther@suse.de>
11684
11685 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
11686 for the remapped region number.
11687 * predict.c (build_predict_expr): Use integer_type_node for the
11688 predict kind.
11689 * fold-const.c (fold_binary_loc): Use integer_type_node for
11690 the shift amount. Use a proper type for the PLUS_EXPR operand.
11691
b823cdfe
MM
116922011-04-29 Michael Matz <matz@suse.de>
11693
11694 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
11695 other trees that just builtins.
11696 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
11697
413581ba
RG
116982011-04-29 Richard Guenther <rguenther@suse.de>
11699
11700 * tree-nested.c (get_trampoline_type): Use size_int.
11701 (get_nl_goto_field): Likewise.
11702 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
11703 for all indexes.
11704 (lower_eh_constructs_2): Likewise.
11705 (lower_resx): Likewise.
11706 (lower_eh_dispatch): Likewise.
11707 * tree-mudflap.c (mf_build_string): Use size_int.
11708 (mudflap_register_call): Use integer_type_node for the flag.
11709 (mudflap_enqueue_constant): Use size_int.
11710 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
11711 instead of rebuilding it.
11712
5c04e9f4
RG
117132011-04-29 Richard Guenther <rguenther@suse.de>
11714
11715 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
11716 Handle OBJ_TYPE_REF.
11717 (find_func_aliases_for_call): Use it more consistently.
11718
5c24671b
AO
117192011-04-29 Alexandre Oliva <aoliva@redhat.com>
11720
11721 * haifa-sched.c (last_nondebug_scheduled_insn): New.
11722 (rank_for_schedule): Use it.
11723 (schedule_block): Set it.
11724
10adac51
XDL
117252011-04-28 David Li <davidxl@google.com>
11726
11727 * tree.c (crc32_string): Use crc32_byte.
11728 (crc32_byte): New function.
11729 * tree.h (crc32_byte): New function.
11730 * gcov.c (read_graph_file): Handle new cfg_cksum.
11731 (read_count_file): Ditto.
11732 * profile.c (instrument_values): Ditto.
11733 (get_exec_counts): Ditto.
11734 (read_profile_edge_counts): Ditto.
11735 (compute_branch_probabilities): Ditto.
11736 (compute_value_histograms): Ditto.
11737 (branch_prob): Ditto.
11738 (end_branch_prob): Ditto.
11739 * coverage.c (read_counts_file): Ditto.
11740 (get_coverage_counts): Ditto.
11741 (tree_coverage_counter_addr): Ditto.
11742 (coverage_checksum_string): Ditto.
11743 (coverage_begin_output): Ditto.
11744 (coverage_end_function): Ditto.
11745 (build_fn_info_type): Ditto.
11746 (build_fn_info_value): Ditto.
11747 * libgcov.c (gcov_exit): Ditto.
11748 * gcov-dump.c (tag_function): Ditto.
11749 (compute_checksum): Remove.
11750
5d6358a5
AM
117512011-04-29 Alan Modra <amodra@gmail.com>
11752
11753 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11754 unspec plus offset. Tidy macho code.
11755
85ad2ef5
MJ
117562011-04-29 Martin Jambor <mjambor@suse.cz>
11757
11758 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
11759 node instead of a decl. Update all callers.
11760 * cgraph.h: Update declaration.
11761
437f4a00
IR
117622011-04-28 Ira Rosen <ira.rosen@linaro.org>
11763
11764 PR tree-optimization/48765
11765 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
11766 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
11767 to indicate if loop aware SLP is being used. Scan the statements
11768 and update the vectorization factor according to the type of
11769 vectorization before statement analysis.
11770 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
11771 pass it to vect_analyze_loop_operations.
11772 (vectorizable_reduction): Set number of copies to 1 in case of pure
11773 SLP statement.
11774 * tree-vect-stmts.c (vectorizable_conversion,
11775 vectorizable_assignment, vectorizable_shift,
11776 vectorizable_operation, vectorizable_type_demotion,
11777 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
11778 Likewise.
11779 (vectorizable_condition): Move the check that it is not SLP
11780 vectorization before the number of copies check.
11781 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
11782 to vectorize the loop using SLP.
11783
c6fc44f3
JJ
117842011-04-28 Jakub Jelinek <jakub@redhat.com>
11785
11786 PR middle-end/48597
11787 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
11788 inline asm.
11789
6c0170ea
JM
117902011-04-28 Joseph Myers <joseph@codesourcery.com>
11791
11792 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
11793 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
11794 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11795 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11796 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
11797 linux*.h headers.
6bec6c98 11798 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
11799 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11800 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11801 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 11802 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
11803 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
11804 REG_NAME.
11805 * config/i386/linux.h (REG_NAME): Don't define.
11806 * config/i386/linux64.h (REG_NAME): Don't define.
11807 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
11808 Undefine before defining.
11809
970dabbd
JH
118102011-04-28 Jan Hubicka <jh@suse.cz>
11811
6bec6c98
UB
11812 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
11813 nonconstant_names array.
970dabbd
JH
11814 (estimate_function_body_sizes): Build nonconstant_names array; handle
11815 BUILT_IN_CONSTANT_P.
11816
8d3e3924
RG
118172011-04-28 Richard Guenther <rguenther@suse.de>
11818
11819 PR bootstrap/48804
11820 Revert
11821 2011-04-28 Richard Guenther <rguenther@suse.de>
11822
11823 * tree-ssa-structalias.c (solve_constraints): Build succ graph
11824 as late as possible.
6bec6c98 11825
8576f20a
RG
118262011-04-28 Richard Guenther <rguenther@suse.de>
11827
11828 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
11829 (debug_constraint): Do it here.
11830 (dump_constraints): And here.
11831 (rewrite_constraints): And here.
11832 (dump_constraint_edge): Remove.
11833 (dump_constraint_graph): Rewrite to produce DOT output.
11834 (solve_constraints): Build succ graph as late as possible.
11835 Dump constraint graphs before and after solving.
11836
e38811ce
RG
118372011-04-28 Richard Guenther <rguenther@suse.de>
11838
11839 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11840 New function split out from ...
11841 (find_func_aliases): ... here. Call it.
11842 (find_func_aliases_for_call): Likewise.
11843
fbaf0d0c
GDR
118442011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
11845
11846 * internal-fn.h (internal_fn_name_array): Declare.
11847 (internal_fn_flags_array): Likewise.
11848
cbb734aa
UB
118492011-04-27 Uros Bizjak <ubizjak@gmail.com>
11850
11851 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
11852 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
11853 Move from sse.md.
11854 (ssemodefsuffix): Remove.
11855 (ssevecmodesuffix): New mode attribute.
11856 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
11857 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
11858 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
11859 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
11860 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
11861 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
11862 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
11863 ssemodesuffix mode attribute.
11864 (float splitters): Use ssevecmodesuffix mode attribute.
11865 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
11866 (sseinsmode): Rename from avxvecmode.
11867 (avxsizesuffix): Rename from avxmodesuffix.
11868 (sseintvecmode): Rename from avxpermvecmode.
11869 (ssedoublevecmode): Rename from ssedoublesizemode.
11870 (ssehalfvecmode): Rename from avxhalfvecmode.
11871 (ssescalarmode): Rename from avxscalarmode.
11872 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
11873 templates for ssemodesuffix mode attribute.
11874 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
11875 mode attribute.
11876
11877 Adjust RTX patterns globally for renamed mode attributes.
11878
991278ab
JH
118792011-04-27 Jan Hubcika <jh@suse.cz>
11880
11881 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
11882 * ipa-inline-analysis.c: Include alloc-pool.h.
11883 (edge_predicate_pool): New.
11884 (trye_predicate_p): New function
11885 (false_predicate_p): New function.
11886 (add_clause): Sanity check that false clauses are "optimized";
11887 never add clauses to predicate that is already known to be false.
11888 (and_predicate): Use flase_predicate_p.
11889 (evaulate_predicate): Rename to ...
11890 (evaluate_predicate): ... this one; update all callers; assert
11891 that false is not listed among possible truths.
11892 (dump_predicate): Use true_predicate_p.
11893 (account_size_time): Use false_predicate_p.
11894 (evaulate_conditions_for_edge): Rename to ...
11895 (evaluate_conditions_for_edge) ... this one.
11896 (edge_set_predicate): New function.
11897 (inline_edge_duplication_hook): Duplicate edge predicates.
11898 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 11899 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
11900 (dump_inline_summary): Update.
11901 (estimate_function_body_sizes): Set edge predicates.
11902 (estimate_calls_size_and_time): Handle predicates.
11903 (estimate_callee_size_and_time): Update.
11904 (remap_predicate): Add toplev_predicate; update comment.
11905 (remap_edge_predicates): New function.
11906 (inline_merge_summary): Compute toplev predicate; update.
11907 (read_predicate): New function.
11908 (read_inline_edge_summary): Use it.
11909 (inline_read_section): Likewise.
11910 (write_predicate): New function.
11911 (write_inline_edge_summary): Use it.
11912 (inline_write_summary): Likewise.
11913 (inline_free_summary): Free alloc pool and edge summary vec.
11914
648b5f85
RG
119152011-04-27 Richard Guenther <rguenther@suse.de>
11916
11917 * tree-ssa-structalias.c (changed_count): Remove.
11918 (changed): Use a bitmap.
11919 (unify_nodes): Adjust.
11920 (do_sd_constraint): Likewise.
11921 (do_ds_constraint): Likewise.
11922 (do_complex_constraint): Likewise.
11923 (solve_graph): Likewise.
11924
4d5dcfb2
JH
119252011-04-27 Jan Hubicka <jh@suse.cz>
11926
11927 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
11928
200eb7d2
UB
119292011-04-27 Uros Bizjak <ubizjak@gmail.com>
11930
11931 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
11932 (avx_vperm2f128_*_operand): Ditto.
11933 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
11934 Use avx_vpermilp_parallel in insn condition.
11935 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
11936 Use avx_vperm2f128_parallel in insn condition.
11937
7d6e2521
RG
119382011-04-27 Richard Guenther <rguenther@suse.de>
11939
11940 * Makefile.in (tree-ssa-structalias.o): Remove
11941 gt-tree-ssa-structalias.h dependency.
11942 (GTFILES): Remove tree-ssa-structalias.c.
11943 * tree.c (allocate_decl_uid): New function.
11944 (make_node_stat): Use it.
11945 (copy_node_stat): Likewise.
11946 * tree.h (allocate_decl_uid): Declare.
11947 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
11948 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
11949 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 11950 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
11951 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
11952 (struct heapvar_map): Likewise.
11953 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
11954 heapvar_insert): Likewise.
11955 (make_heapvar_for): Rename to ...
11956 (make_heapvar): ... this. Simplify.
11957 (fake_var_decl_obstack): New global var.
11958 (build_fake_var_decl): New function.
11959 (make_constraint_from_heapvar): Adjust.
11960 (handle_lhs_call): Likewise.
11961 (create_function_info_for): Likewise.
11962 (intra_create_variable_infos): Likewise.
11963 (init_alias_vars): Allocate fake_var_decl_obstack.
11964 (init_alias_heapvars, delete_alias_heapvars): Remove.
11965 (compute_points_to_sets): Do not call init_alias_heapvars.
11966 (ipa_pta_execute): Likewise.
11967 (delete_points_to_sets): Free fake_var_decl_obstack.
11968
526ed6c2
UW
119692011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11970
11971 * config/spu/divmovti4.c (union qword_UTItype): New data type.
11972 (si_from_UTItype, si_to_UTItype): New functions.
11973 (__udivmodti4): Use them to implement type-punning.
11974 * config/spu/multi3.c (union qword_TItype): New data type.
11975 (si_from_TItype, si_to_TItype): New functions.
11976 (__multi3): Use them to implement type-punning.
11977
c187d33c
UW
119782011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11979
11980 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
11981
40982661
JH
119822011-04-27 Jan Hubicka <jh@suse.cz>
11983
11984 * ipa-prop.c (function_insertion_hook_holder): New holder.
11985 (ipa_add_new_function): New function.
200eb7d2
UB
11986 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
11987 Register/deregister holder.
40982661 11988
9aef53ee
RG
119892011-04-27 Richard Guenther <rguenther@suse.de>
11990
11991 PR tree-optimization/48772
200eb7d2 11992 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 11993
f63d806d
RG
119942011-04-27 Richard Guenther <rguenther@suse.de>
11995
11996 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
11997 TARGET_MEM_REF handling.
11998
e1ea7451
NC
119992011-04-27 Nick Clifton <nickc@redhat.com>
12000
9b5db25d
NC
12001 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
12002 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
12003 (REG_CLASS_NAMES): Likewise.
12004 (REG_CLASS_CONTENTS): Likewise.
12005 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
12006 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
12007 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
12008 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
12009 (EVEN_REGS): New macro. Alias for QUAD_REGS.
12010 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
12011 duplicate register classes.
97d20907 12012 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
12013 (frv_register_move_cost): Likewise.
12014
e1ea7451
NC
12015 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
12016 end of the regno_reg_class array.
12017
5c2f94b4
JJ
120182011-04-27 Jakub Jelinek <jakub@redhat.com>
12019
12020 PR c/48742
12021 * c-typeck.c (build_binary_op): Don't wrap arguments if
12022 int_operands is true.
12023
57a944d7
KK
120242011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
12025
12026 PR target/48767
12027 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
12028 targetm.calls.must_pass_in_stack for void type.
12029
898b8927
JH
120302011-04-26 Jan Hubicka <jh@suse.cz>
12031
12032 * cgraphbuild.c (build_cgraph_edges): Update call
12033 of cgraph_create_edge and cgraph_create_indirect_edge.
12034 * cgraph.c (cgraph_create_edge_including_clones,
12035 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
12036 cgraph_update_edges_for_call_stmt_node): Do not take nest
12037 argument; do not initialize call_stmt_size/time.
12038 (dump_cgraph_node): Do not dump nest.
12039 (cgraph_clone_edge): Do not take loop_nest argument;
12040 do not propagate it; do not clone call_stmt_size/time.
12041 (cgraph_clone_node): Likewise.
12042 (cgraph_create_virtual_clone): Update.
12043 * cgraph.h (struct cgraph_edge): Remove
12044 call_stmt_size/call_stmt_time/loop_nest.
12045 (cgraph_create_edge, cgraph_create_indirect_edge,
12046 cgraph_create_edge_including_clones, cgraph_clone_node): Update
12047 prototype.
12048 * tree-emutls.c (gen_emutls_addr): Update.
12049 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
12050 loop_nest; handle indirect calls, too.
12051 (clone_inlined_nodes): Do not care about updating inline summaries.
12052 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
12053 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
12054 stream call_stmt_size/call_stmt_time/loop_nest.
12055 * ipa-inline.c (edge_badness): Update.
12056 (ipa_inline): dump summaries after inlining.
12057 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 12058 New.
898b8927
JH
12059 (inline_edge_summary): New function.
12060 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
12061 (inline_edge_removal_hook): Handle edge summaries.
12062 (inline_edge_duplication_hook): New hook.
12063 (inline_summary_alloc): Alloc hooks.
12064 (initialize_growth_caches): Do not register removal hooks.
12065 (free_growth_caches); Do not free removal hook.
12066 (dump_inline_edge_summary): New function.
12067 (dump_inline_summary): Use it.
12068 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
12069 (inline_update_callee_summaries): New function.
12070 (inline_merge_summary): Use it.
12071 (do_estimate_edge_time, do_estimate_edge_growth): Update.
12072 (read_inline_edge_summary): New function.
12073 (inline_read_section): Use it.
12074 (write_inline_edge_summary): New function.
12075 (inline_write_summary): Use it.
12076 (inline_free_summary): Free edge new holders.
12077 * tree-inline.c (copy_bb): Update.
12078
ffa03772
JM
120792011-04-26 Jason Merrill <jason@redhat.com>
12080
12081 * tree-eh.c (lower_try_finally_switch): Create the label along with
12082 the CASE_LABEL_EXPR.
12083
6d7b45ad
DM
120842011-04-26 David S. Miller <davem@davemloft.net>
12085 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12086
12087 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
12088 * configure: Regenerate.
12089
df10b6d4
MM
120902011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12091
12092 PR target/48258
12093 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
12094 reduction.
12095 (VEC_reduc): New code iterator and splitters for vector reduction.
12096 (VEC_reduc_name): Ditto.
12097 (VEC_reduc_rtx): Ditto.
12098 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
12099 (reduc_<VEC_reduc_name>_v4sf): Ditto.
12100
12101 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
12102 support for extracting SF on VSX.
12103
12104 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
12105 generating xscvspdp.
12106 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
12107 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
12108 double add, minimum, maximum vector reduction.
12109 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
12110 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
12111 optimize double vector reduction.
12112 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
12113
35a5db04
JM
121142011-04-26 Joseph Myers <joseph@codesourcery.com>
12115
12116 * config/fr30/fr30.h (inhibit_libc): Don't define.
12117 * config/m32r/m32r-protos.h: Correct comment.
12118 * config/v850/v850.h (GHS_default_section_names,
12119 GHS_current_section_names): Use tree, not union tree_node *.
12120
2f964ad6
XDL
121212011-04-26 Xinliang David Li <davidxl@google.com>
12122
200eb7d2 12123 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
12124 * c-family/c-opts.c (c_common_handle_option): Set
12125 warn_maybe_uninitialized.
12126 * opts.c (common_handle_option): Ditto.
12127 * common.opt: New option.
12128 * tree-ssa.c (warn_uninit): Add one more parameter.
12129 (warn_uninitialized_var): Pass warning code.
12130 * tree-flow.h: Interface change.
12131
9c7bd91a
RO
121322011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12133
200eb7d2 12134 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
12135 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
12136 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
12137
c2f36e21
RO
121382011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12139
12140 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
12141 * config/mips/mips.opt (mmips-tfile): Remove.
12142
12143 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
12144 mips-tdump reference to ...
200eb7d2 12145 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
12146 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
12147 reference by Tru64 UNIX.
12148
2c9da85b
JJ
121492011-04-26 Jakub Jelinek <jakub@redhat.com>
12150
0c5f6539
JJ
12151 PR debug/48768
12152 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
12153 is error_mark_node, set value to NULL.
12154
2c9da85b
JJ
12155 PR tree-optimization/48734
12156 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
12157 if return value from maybe_fold_*_comparsions isn't something
12158 the code is prepared to handle.
12159
77fa1d54
UB
121602011-04-26 Uros Bizjak <ubizjak@gmail.com>
12161
12162 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
12163 mode check.
12164 (ext_QIreg_nomode_operands): Remove.
12165 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
12166 (*andsi_1): Ditto.
12167 (*andhi_1): Ditto.
12168
0e2a6c2b
AS
121692011-04-26 Andrew Stubbs <ams@codesourcery.com>
12170
12171 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
12172
961562d8
RB
121732011-04-26 Richard Guenther <rguenther@suse.de>
12174
12175 * c-typeck.c (build_unary_op): Do not expand array-refs via
12176 pointer arithmetic. Only adjust qualifiers for function types.
12177
121782011-04-26 Richard Guenther <rguenther@suse.de>
12179
12180 PR middle-end/48694
12181 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
12182 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
12183 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
12184 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 12185
a0d260fc
PC
121862011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
12187
6bec6c98 12188 * doc/extend.texi: Document __underlying_type.
a0d260fc 12189
4d583bb9
SB
121902011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
12191
12192 * config/rs6000/titan.md (automata_option "progress"): Remove.
12193
1f3fcdc3
JL
121942011-04-25 Jeff Law <law@redhat.com>
12195
12196 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
12197
e5b0dad8
JK
121982011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
12199
12200 * system.h (ENUM_BITFIELD): Remove.
12201
5157a881 122022011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 12203 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
12204
12205 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
12206 for STORE_FLAG_VALUE==-1 case.
12207
ed4c109e
RS
122082011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
12209
12210 PR target/43804
12211 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
12212 LEGITIMATE_PIC_OPERAND_P.
12213
f3181aa2
JH
122142011-04-24 Jan Hubicka <jh@suse.cz>
12215
12216 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
12217 WPA hack.
77fa1d54
UB
12218 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
12219 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
12220 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
12221 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
12222 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
12223 Sanity check predicate length.
12224 (remap_predicate): Likewise; sanity check jump functions.
12225 (inline_read_section, inline_write_summary): Sanity check
12226 predicate length.
12227
5307cbaa
PC
122282011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
12229
12230 PR other/48748
12231 * doc/extend.texi (Type Traits): Document __is_standard_layout,
12232 __is_literal_type, and __is_trivial; update throughout about
12233 possibly cv-qualified void types.
12234
bebd5f99
GP
122352011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
12236
12237 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
12238 testsuite and make it version agnostic.
12239
7ee28a74
JH
122402011-04-22 Jan Hubicka <jh@suse.cz>
12241
12242 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
12243
16997bc0
JJ
122442011-04-23 Jakub Jelinek <jakub@redhat.com>
12245
12246 PR c/48685
12247 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
12248 to VOID_TYPE even around MODIFY_EXPR.
12249
f94d4ab1
MS
122502011-04-22 Mike Stump <mikestump@comcast.net>
12251
1a84c183 12252 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
12253 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
12254 comment.
12255
632b4f8e
JH
122562011-04-22 Jan Hubicka <jh@suse.cz>
12257
12258 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
12259 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
12260 ipa-prop.c; update all uses.
632b4f8e 12261 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
12262 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
12263 merge summary of inlined function into former caller.
632b4f8e
JH
12264 * ipa-inline.c (max_benefit): Remove.
12265 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
12266 (update_caller_keys): Use
12267 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
12268 (update_callee_keys): Likewise.
12269 (update_all_callee_keys): Likewise.
77fa1d54
UB
12270 (inline_small_functions): Do not collect max_benefit; do not reset
12271 estimated_growth; call free_growth_caches and initialize_growth_caches.
12272 * ipa-inline.h (struct condition, type clause_t, struct predicate,
12273 struct size_time_entry): New structures.
632b4f8e 12274 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
12275 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
12276 and estimated_growth.
632b4f8e
JH
12277 (edge_growth_cache_entry): New structure.
12278 (node_growth_cache, edge_growth_cache): New global vars.
12279 (estimate_growth): Turn into inline.
12280 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
12281 initialize_growth_caches, free_growth_caches): Declare.
12282 (estimate_edge_growth): Rewrite.
12283 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
12284 (reset_node_growth_cache, reset_edge_growth_cache): New inline
12285 functions.
632b4f8e
JH
12286 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
12287 (NUM_CONDITIONS): New constant.
12288 (predicate_conditions): New enum.
12289 (IS_NOT_CONSTANT): New constant.
12290 (edge_removal_hook_holder): New var.
12291 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
12292 (true_predicate, single_cond_predicate, false_predicate,
12293 not_inlined_predicate, add_condition, add_clause, and_predicates,
12294 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
12295 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
12296 evaulate_conditions_for_edge): New functions.
12297 (inline_summary_alloc): Move to heap.
12298 (inline_node_removal_hook): Clear condition and entry vectors.
12299 (inline_edge_removal_hook): New function.
12300 (initialize_growth_caches, free_growth_caches): New function.
12301 (dump_inline_summary): Update.
12302 (edge_execution_predicate): New function.
12303 (will_be_nonconstant_predicate): New function.
12304 (estimate_function_body_sizes): Compute BB and constantness predicates.
12305 (compute_inline_parameters): Do not clear estimated_growth.
12306 (estimate_edge_size_and_time): New function.
12307 (estimate_calls_size_and_time): New function.
12308 (estimate_callee_size_and_time): New function.
12309 (remap_predicate): New function.
12310 (inline_merge_summary): New function.
12311 (do_estimate_edge_time): New function based on...
12312 (estimate_edge_time): ... this one.
12313 (do_estimate_edge_growth): New function.
12314 (do_estimate_growth): New function based on....
12315 (estimate_growth): ... this one.
12316 (inline_analyze_function): Analyze after deciding on jump functions.
12317 (inline_read_section): New function.
12318 (inline_read_summary): Use it.
12319 (inline_write_summary): Write all the new data.
12320 * ipa-prop.c (ipa_get_param_decl_index): Export.
12321 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
12322 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
12323 Declare.
12324 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
12325 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
12326 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
12327 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
12328 cgraph_edge_inlinable_p): Remove.
12329 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
12330 (cgraph_process_new_functions): Update call of
12331 compute_inline_parameters.
632b4f8e 12332
1df5b0db
RG
123332011-04-22 Richard Guenther <rguenther@suse.de>
12334
12335 * tree.c (build_int_cst): Properly create canonicalized integer
12336 constants.
12337 (build_int_cst_type): Remove scary comments.
12338
ae01169c
XDL
123392011-04-22 Xinliang David Li <davidxl@google.com>
12340
12341 * toplev.c (process_options): Enable -Werror=coverage-mismatch
12342 by default when -Wno-error is not specified.
12343 * opts-global.c (decode_options): Remove call to
12344 control_warning_options.
12345
93dfac24
JJ
123462011-04-22 Jakub Jelinek <jakub@redhat.com>
12347
12348 PR tree-optimization/48717
12349 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
12350 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
12351
1b5f5069
JM
123522011-04-22 Joseph Myers <joseph@codesourcery.com>
12353
12354 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
12355 definition where used.
12356
144f4153
JJ
123572011-04-22 Jakub Jelinek <jakub@redhat.com>
12358
12359 PR c/48716
12360 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
12361 TREE_STATIC variables declared inside of some OpenMP construct.
12362
f9fd305b
MJ
123632011-04-22 Martin Jambor <mjambor@suse.cz>
12364
12365 PR middle-end/48585
1d284ec5 12366 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 12367
49819fef
AM
123682011-04-22 Alexander Monakov <amonakov@ispras.ru>
12369
12370 PR c/36750
12371 * c-typeck.c (pop_init_level): Do not warn about initializing
12372 with ` = {0}'.
12373
401f6699
AM
123742011-04-22 Alan Modra <amodra@gmail.com>
12375
12376 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
12377 when returning call_cookie.
12378 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
12379 pointers, to functions with no more vector args than the current
12380 function, and some non-local calls for ABI_V4.
12381 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
12382 sibcall_nonlocal_aix64): Combine to ..
12383 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
12384 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
12385 (sibcall_value_nonlocal_aix<mode>): ..likewise.
12386 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
12387 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
12388 operand.
12389 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
12390 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
12391 sibcall_value_symbolic_64): Delete.
12392
903d1e67
XDL
123932011-04-21 Xinliang David Li <davidxl@google.com>
12394
12395 * cgraph.h: Remove pid.
12396 * cgraph.c: Remove pid.
12397 * value-prof.c (init_node_map): New function.
12398 (del_node_map): New function.
12399 (find_func_by_funcdef_no): New function.
12400 (gimple_ic_transform): Call new function.
12401 * cgraphunit.c (cgraph_finalize_function): Remove pid.
12402 * function.c (get_last_funcdef_no): New function.
12403 * function.h (get_last_funcdef_no): New function.
12404 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
12405 to libgcov function.
12406 (tree-profiling): Call node map init and delete function.
12407
7378e95f
ILT
124082011-04-21 Ian Lance Taylor <iant@google.com>
12409
12410 * godump.c (go_format_type): Use exported Go name for anonymous
12411 field name.
12412
e84a6fcf
NF
124132011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12414
12415 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
12416 Call builtin_function_type_list instead of builtin_function_type.
12417 (UNARY, BINARY, TRINARY, QUAD): Likewise.
12418
4fe058e2
NF
124192011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12420
12421 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
12422 build_function_type_list instead of build_function_type.
12423 Delete variable `endlink'.
12424
1ba0a2d2
NF
124252011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12426
12427 * config/s390/s390.c (s390_init_builtins): Call
12428 build_function_type_list instead of build_function_type.
12429
c0676219
NF
124302011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12431
12432 * config/ia64/ia64.c (ia64_init_builtins): Call
12433 build_function_type_list instead of builtin_function_type.
12434
6ddfda8a
ER
124352011-04-21 Easwaran Raman <eraman@google.com>
12436
3a6448ea 12437 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
12438 (add_stack_var): ...and its reference here...
12439 (expand_stack_vars): ...and here.
12440 (stack_var_cmp): Sort by descending order of size.
12441 (partition_stack_vars): Change heuristic.
1d284ec5 12442 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
12443 (dump_stack_var_partition): Add newline after each partition.
12444
23756963
DA
124452011-04-21 Dimitrios Apostolou <jimis@gmx.net>
12446 Jeff Law <law@redhat.com>
12447
77fa1d54 12448 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
12449 * gengtype.c (matching_file_name_substitute): Likewise.
12450
aa2a43d2
RG
124512011-04-21 Richard Guenther <rguenther@suse.de>
12452
12453 PR lto/48703
1d284ec5 12454 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 12455
4d931f41
EB
124562011-04-21 Eric Botcazou <ebotcazou@adacore.com>
12457
12458 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
12459
f103fa7a
RG
124602011-04-21 Richard Guenther <rguenther@suse.de>
12461
12462 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
12463 file name.
12464
e19f6650
RG
124652011-04-21 Richard Guenther <rguenther@suse.de>
12466
12467 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
12468 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
12469 Use DECL_P, not SSA_VAR_P.
12470 (ptr_derefs_may_alias_p): Likewise.
12471 (ptr_deref_may_alias_ref_p_1): Likewise.
12472 (decl_refs_may_alias_p): Likewise.
12473 (refs_may_alias_p_1): Likewise.
12474 (ref_maybe_used_by_call_p_1): Likewise.
12475 (call_may_clobber_ref_p_1): Likewise.
12476 (indirect_ref_may_alias_decl_p): Assume indirect refrences
12477 are either MEM_REF or TARGET_MEM_REF.
12478 (indirect_refs_may_alias_p): Likewise.
12479 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
12480 for MEM_EXPR of indirect calls.
12481
9d1831bb
TG
124822011-04-21 Tristan Gingold <gingold@adacore.com>
12483
12484 * vmsdbgout.c (write_srccorr): Compute file length from the string.
12485 (dst_file_info_struct): Remove flen field.
12486 (lookup_filename): Remove code that set flen field.
12487
f199c029
TG
124882011-04-21 Tristan Gingold <gingold@adacore.com>
12489
12490 * config/ia64/ia64.c (ia64_start_function): Add a guard.
12491
2894086e
UB
124922011-04-21 Uros Bizjak <ubizjak@gmail.com>
12493
12494 PR target/48708
12495 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
12496 vec_extract and vec_concat for non-SSE4_1 targets.
12497
53f94a5c
RG
124982011-04-21 Richard Guenther <rguenther@suse.de>
12499
12500 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
12501 return statements.
12502
f0dca5ba
JM
125032011-04-21 Joseph Myers <joseph@codesourcery.com>
12504
12505 * config/i386/cygming.h (union tree_node, TREE): Don't define or
12506 undefine.
12507 (FILE): Don't undefine.
12508
984514ac
JM
125092011-04-21 Joseph Myers <joseph@codesourcery.com>
12510
12511 * config/alpha/alpha.c (struct machine_function): Use rtx, not
12512 struct rtx_def *.
12513 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
12514 struct rtx_def *.
12515 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 12516 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
12517 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
12518 rtx_def *.
12519 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
12520 definitions where used.
12521 * config/microblaze/microblaze.h (struct microblaze_args): Use
12522 rtx, not struct rtx_def *.
12523 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
12524 rtx_def *.
2894086e
UB
12525 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
12526 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
12527 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
12528 not struct rtx_def *.
12529 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
12530 struct rtx_def *.
12531 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
12532 rtx_def *.
2894086e 12533 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 12534
0b5a2724
RS
125352011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12536
12537 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
12538 operand_equal_p to compare DR_BASE_ADDRESSes.
12539 (vect_check_interleaving): Likewise.
12540
4b18d683
RS
125412011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12542
12543 PR target/46329
12544 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
12545 for all Neon struct constants.
12546
1a627b35
RS
125472011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12548
12549 * target.def (legitimate_constant_p): New hook.
12550 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
12551 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
12552 * doc/tm.texi: Regenerate.
12553 * hooks.h (hook_bool_mode_rtx_true): Declare.
12554 * hooks.c (hook_bool_mode_rtx_true): Define.
12555 * system.h (LEGITIMATE_CONSTANT_P): Poison.
12556 * calls.c (precompute_register_parameters): Replace uses of
12557 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
12558 (emit_library_call_value_1): Likewise.
12559 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
12560 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
12561 * ira-costs.c (scan_one_insn): Likewise.
12562 * recog.c (general_operand, immediate_operand): Likewise.
12563 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
12564 * reload1.c (init_eliminable_invariants): Likewise.
12565
12566 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
12567 mode argument.
12568 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
12569 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
12570 argument.
12571 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12572 * config/alpha/predicates.md (input_operand): Update call to
12573 alpha_legitimate_constant_p.
12574
12575 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
12576 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
12577 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
12578 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12579 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
12580 (arm_legitimate_constant_p): New functions.
12581 (arm_cannot_force_const_mem): Make static.
12582
12583 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
12584
12585 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
12586 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
12587 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
12588 instead of bfin_legitimate_constant_p.
12589 (bfin_legitimate_constant_p): Make static. Add a mode argument.
12590 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12591
12592 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
12593
12594 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
12595
12596 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
12597 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
12598 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12599 (frv_legitimate_constant_p): Make static. Add a mode argument.
12600
12601 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
12602 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
12603 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
12604
12605 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
12606 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
12607 * config/i386/i386.c (legitimate_constant_p): Rename to...
12608 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
12609 argument.
12610 (ix86_cannot_force_const_mem): Update accordingly.
12611 (ix86_legitimate_address_p): Likewise.
12612 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12613 * config/i386/i386.md: Update commentary.
12614
12615 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
12616 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
12617 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12618 (ia64_legitimate_constant_p): Make static. Add a mode argument.
12619
12620 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
12621
12622 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
12623 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
12624 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12625 (lm32_legitimate_constant_p): Make static. Add a mode argument.
12626
12627 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
12628 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
12629 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
12630
12631 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
12632 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12633 (m32r_legitimate_constant_p): New function.
12634
12635 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
12636 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
12637 LEGITIMATE_CONSTANT_P.
12638 (LEGITIMATE_CONSTANT_P): Delete.
12639 * config/m68k/m68k.c (m68k_expand_prologue): Call
12640 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
12641 (m68k_legitimate_constant_p): New function.
12642 * config/m68k/m68k.md: Update comments.
12643
12644 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
12645 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12646 (mcore_legitimate_constant_p): New function.
12647
12648 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
12649 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
12650 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
12651 Add a mode argument.
12652 (mep_legitimate_address): Update accordingly.
12653 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12654
12655 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
12656 Delete.
12657 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
12658 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
12659 static. Check OP's mode for VOIDmode.
12660 (microblaze_legitimate_constant_p): New function.
12661 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12662
12663 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
12664 * config/mips/mips.c (mips_legitimate_constant_p): New function.
12665 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
12666 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12667 * config/mips/predicates.md: Update comments.
12668
12669 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
12670 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
12671 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12672 (mmix_legitimate_constant_p): Make static, return a bool, and take
12673 a mode argument.
12674 (mmix_print_operand_address): Update accordingly.
12675
12676 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
12677 Delete.
12678 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
12679 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
12680 static. Add a mode argument.
1a627b35
RS
12681 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12682
12683 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
12684
12685 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
12686 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12687 (pa_legitimate_constant_p): New function.
12688
12689 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
12690
12691 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
12692 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12693 (pdp11_legitimate_constant_p): New function.
12694
12695 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
12696 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12697 (rs6000_legitimate_constant_p): New function.
12698
12699 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
12700 (rx_legitimate_constant_p): ...this.
12701 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
12702 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
12703 (rx_legitimate_constant_p): ...this.
12704 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12705 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
12706
12707 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
12708 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
12709 * config/s390/s390.c (legitimate_constant_p): Rename to...
12710 (s390_legitimate_constant_p): ...this. Make static, return a bool,
12711 and add a mode argument.
12712 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12713
12714 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
12715
12716 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
12717 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12718 (sh_legitimate_constant_p): New function.
12719
12720 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
12721 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
12722 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12723 (legitimate_constant_p): Rename to...
12724 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
12725 argument.
12726 (constant_address_p): Update accordingly.
12727
12728 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
12729 argument and return a bool.
12730 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
12731 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12732 (spu_legitimate_constant_p): Add a mode argument and return a bool.
12733 (spu_rtx_costs): Update accordingly.
12734 * config/spu/predicates.md (vec_imm_operand): Likewise.
12735
12736 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
12737
12738 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
12739 * config/v850/v850.c (v850_legitimate_constant_p): New function.
12740 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12741
12742 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
12743 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
12744 * config/vax/vax.c (legitimate_constant_p): Likewise.
12745
12746 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
12747 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12748 (xtensa_legitimate_constant_p): New function.
12749
fbbf66e7
RS
127502011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12751
12752 * target.def (cannot_force_const_mem): Add a mode argument.
12753 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
12754 * doc/tm.texi: Regenerate.
12755 * hooks.h (hook_bool_mode_rtx_false): Declare.
12756 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
12757 (hook_bool_mode_const_rtx_true): Likewise.
12758 (hook_bool_mode_rtx_false): New function.
12759 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
12760 to be non-VOID. Update call to cannot_force_const_mem.
12761 (find_reloads): Update accordingly.
12762 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
12763 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
12764 argument.
12765 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
12766 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
12767 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
12768 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
12769 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
12770 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
12771 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
12772 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12773 (m68k_cannot_force_const_mem): ...this new function.
12774 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
12775 argument.
12776 (mips_const_insns, mips_legitimize_const_move): Update calls.
12777 (mips_secondary_reload_class): Likewise.
12778 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12779 (pa_cannot_force_const_mem): ...this new function.
2894086e 12780 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
12781 (rs6000_cannot_force_const_mem): ...this new function.
12782 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
12783 argument.
12784 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
12785 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
12786 to...
12787 (xtensa_cannot_force_const_mem): ...this new function.
12788
b861891b
NF
127892011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12790
12791 * config/mips/mips.c (mips16_build_function_stub): Call
12792 build_function_type_list instead of build_function_type.
12793 (mips16_build_call_stub): Likewise.
12794
34149ed5
NF
127952011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12796
12797 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
12798 instead of build_function_type.
12799
12526412
NF
128002011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12801
12802 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
12803 instead of build_function_type.
12804
3b84d61f
UB
128052011-04-20 Uros Bizjak <ubizjak@gmail.com>
12806
12807 PR target/48678
12808 * config/i386/i386.md (insv): Change operand 0 constraint to
12809 "register_operand". Change operand 1 and 2 constraint to
12810 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
12811 * config/i386/sse.md (sse4_1_pinsrb): Export.
12812 (sse2_pinsrw): Ditto.
12813 (sse4_1_pinsrd): Ditto.
12814 (sse4_1_pinsrq): Ditto.
12815 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
12816 * config/i386/i386.c (ix86_expand_pinsr): New.
12817
4a25752b
ER
128182011-04-20 Easwaran Raman <eraman@google.com>
12819
12820 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
12821 containing union type only with -fstrict-aliasing.
12822
04695783
JM
128232011-04-20 Jim Meyering <meyering@redhat.com>
12824
12825 Remove useless if-before-free tests.
12826 * calls.c (expand_call, save_area): Likewise.
12827 * cfgcleanup.c (try_forward_edges): Likewise.
12828 * collect2.c (collect_execute): Likewise.
12829 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
12830 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
12831 * coverage.c (coverage_checksum_string): Likewise.
12832 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
12833 * cselib.c (cselib_init): Likewise.
12834 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
12835 (df_set_clean_cfg): Likewise.
12836 * function.c (free_after_compilation): Likewise.
12837 * gcc.c (do_spec_1, main): Likewise.
12838 * gcov.c (create_file_names): Likewise.
12839 * gensupport.c (identify_predicable_attribute): Likewise.
12840 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
12841 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
12842 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
12843 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
12844 * ipa-pure-const.c (local_pure_const): Likewise.
12845 * ipa-reference.c (propagate): Likewise.
12846 * ira-costs.c (free_ira_costs): Likewise.
12847 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
12848 * matrix-reorg.c (mat_free): Likewise.
12849 * prefix.c (get_key_value): Likewise.
12850 * profile.c (compute_value_histograms): Likewise.
12851 * reload1.c (free_reg_equiv): Likewise.
12852 * sched-deps.c (free_deps): Likewise.
12853 * sel-sched-ir.c (fence_clear): Likewise.
12854 * sese.c (set_rename, if_region_set_false_region): Likewise.
12855 * tree-data-ref.c (free_rdg): Likewise.
12856 * tree-eh.c (lower_try_finally): Likewise.
12857 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
12858 * tree-ssa-live.c (delete_var_map): Likewise.
12859 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
12860 * tree-ssa-pre.c (phi_trans_add): Likewise.
12861
6788475a
JJ
128622011-04-20 Jakub Jelinek <jakub@redhat.com>
12863
12864 PR tree-optimization/48611
12865 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
12866 beyond ERT_MUST_NOT_THROW region.
12867
0eda4033
CM
128682011-04-20 Catherine Moore <clm@codesourcery.com>
12869
12870 * config/mips/mips.opt (mfix-24k): New.
12871 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
12872 * config/mips/mips.md (length): Increase by 4 for stores if
12873 fixing 24K errata.
12874 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
12875 all noreorder if fixing 24K errata.
12876 * doc/invoke.texi: Document mfix-24k.
12877
01475747
CLT
128782011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
12879
12880 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 12881 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 12882
bc2c1a60
AS
128832011-04-20 Andrew Stubbs <ams@codesourcery.com>
12884
12885 * config/arm/arm.c (arm_gen_constant): Move movw support ....
12886 (const_ok_for_op): ... to here.
12887
583722ee
KT
128882011-04-20 Kai Tietz <ktietz@redhat.com>
12889
2894086e
UB
12890 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
12891 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 12892
422c0989
AS
128932011-04-20 Andrew Stubbs <ams@codesourcery.com>
12894
12895 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
12896
d7978bff
RG
128972011-04-20 Richard Guenther <rguenther@suse.de>
12898
12899 PR tree-optimization/47892
12900 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
12901 are if-convertible.
12902
818412ba
EB
129032011-04-20 Eric Botcazou <ebotcazou@adacore.com>
12904
12905 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
12906
b501ce4e
TG
129072011-04-20 Tristan Gingold <gingold@adacore.com>
12908
12909 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
12910
516edfdd
GJL
129112011-04-20 Georg-Johann Lay <avr@gjlay.de>
12912
12913 PR target/18145
12914
12915 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
12916 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
12917 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12918 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
12919 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
12920
12921 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
12922 New prototype.
12923
12924 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
12925 (avr_asm_named_section, avr_asm_output_aligned_common,
12926 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
12927 New functions to update...
12928 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
12929 (avr_asm_init_sections): Overwrite section callbacks for
12930 data_section, bss_section.
12931 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
12932 from here to...
12933 (avr_file_end): ...here.
12934
dafc9511
RG
129352011-04-20 Richard Guenther <rguenther@suse.de>
12936
12937 PR middle-end/48695
12938 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 12939 objects and types here. Adjust for their offset before comparing.
dafc9511 12940
1da0876c
RS
129412011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12942
12943 * tree-vect-stmts.c (vectorizable_store): Only chain one related
12944 statement per copy.
12945
25583c4f
RS
129462011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12947
12948 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
12949 (GIMPLE_H): Include $(INTERNAL_FN_H).
12950 (OBJS-common): Add internal-fn.o.
12951 (internal-fn.o): New rule.
12952 * internal-fn.def: New file.
12953 * internal-fn.h: Likewise.
12954 * internal-fn.c: Likewise.
12955 * gimple.h: Include internal-fn.h.
12956 (GF_CALL_INTERNAL): New gf_mask.
12957 (gimple_statement_call): Put fntype into a union with a new
12958 internal_fn field.
12959 (gimple_build_call_internal): Declare.
12960 (gimple_build_call_internal_vec): Likewise.
12961 (gimple_call_same_target_p): Likewise.
12962 (gimple_call_internal_p): New function.
12963 (gimple_call_internal_fn): Likewise.
12964 (gimple_call_fntype): Return null for internal calls.
12965 (gimple_call_set_fntype): Assert that the function is not internal.
12966 (gimple_call_set_fn): Likewise.
12967 (gimple_call_set_fndecl): Likewise.
12968 (gimple_call_set_internal_fn): New function.
12969 (gimple_call_addr_fndecl): Handle null functions.
12970 (gimple_call_return_type): Likewise null types.
12971 * gimple.c (gimple_build_call_internal_1): New function.
12972 (gimple_build_call_internal): Likewise.
12973 (gimple_build_call_internal_vec): Likewise.
12974 (gimple_call_same_target_p): Likewise.
12975 (gimple_call_flags): Handle calls to internal functions.
12976 (gimple_call_fnspec): New function.
12977 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
12978 (gimple_has_side_effects): Handle null functions.
12979 (gimple_rhs_has_side_effects): Likewise.
12980 (gimple_call_copy_skip_args): Handle calls to internal functions.
12981 * cfgexpand.c (expand_call_stmt): Likewise.
12982 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
12983 * gimple-fold.c (gimple_fold_call): Handle null functions.
12984 (gimple_fold_stmt_to_constant_1): Don't fold
12985 calls to internal functions.
12986 * gimple-low.c (gimple_check_call_args): Handle calls to internal
12987 functions.
12988 * gimple-pretty-print.c (dump_gimple_call): Likewise.
12989 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
12990 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
12991 (do_warn_unused_result): Likewise.
12992 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
12993 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
12994 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
12995 the target of a call.
12996 (initialize_hash_element): Update accordingly.
12997 (hashable_expr_equal_p): Use gimple_call_same_target_p.
12998 (iterative_hash_hashable_expr): Handle calls to internal functions.
12999 (print_expr_hash_elt): Likewise.
13000 * tree-ssa-pre.c (can_value_number_call): Likewise.
13001 (eliminate): Handle null functions.
13002 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
13003 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
13004 (find_func_aliases): Likewise.
13005 * value-prof.c (gimple_ic_transform): Likewise.
13006 (gimple_indirect_call_to_profile): Likewise.
13007 * lto-streamer-in.c (input_gimple_stmt): Likewise.
13008 * lto-streamer-out.c (output_gimple_stmt): Likewise.
13009
1a3118e9
JH
130102011-04-19 Jan Hubicka <jh@suse.cz>
13011
13012 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
13013 * ipa-inline.c (inline_small_functions): Compute summaries first,
13014 populate heap later.
1a3118e9 13015
fee8b6da
JH
130162011-04-19 Jan Hubicka <jh@suse.cz>
13017
13018 * cgraph.h (save_inline_function_body): Remove.
13019 * ipa-inline-transform.c: New file, broke out of...
13020 * ipa-inline.c: ... this one; Update toplevel comment.
13021 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
13022 make global.
13023 (update_noncloned_frequencies): Move to ipa-inline-transform.c
13024 (cgraph_mark_inline_edge): Rename to inline_call; move to
13025 ipa-inline-transform.c.
13026 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
13027 move to ipa-inline-transform.c
13028 (recursive_inlining, inline_small_functions, flatten_function,
13029 ipa_inline, inline_always_inline_functions,
13030 early_inline_small_functions): Update.
13031 (inline_transform): Move to ipa-inline-transform.c.
13032 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
13033 Declare.
13034 * Makefile.in (ipa-inline-transform.o): New file.
13035 * cgraphunit.c (save_inline_function_body): Move to
13036 ipa-inline-transform.c
13037
f0679612
DD
130382011-04-19 DJ Delorie <dj@redhat.com>
13039
13040 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
13041 registers if we already know there aren't any.
13042 (m32c_emit_epilogue): Don't emit a barrier here.
13043 (m32c_emit_eh_epilogue): Likewise.
13044 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
13045 operands at expand time.
13046 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
13047 int" wchar type.
13048 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
13049 duplicates. Provide aliases instead.
13050 * config/m32c/prologue.md (eh_return): Emit a barrier here.
13051 (eh_epilogue): Add a "(return)" here as a hint to other parts of
13052 the compiler.
13053
32257ddc
AS
130542011-04-19 Anatoly Sokolov <aesok@post.ru>
13055
13056 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
13057 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
13058 (general_or_i64_p, sparc_register_move_cost): New function.
13059
60bea929
RO
130602011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13061
13062 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 13063 Add lynx, mipssde. Sort table.
60bea929 13064
444b3995 130652011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 13066
9d12f71a
EB
13067 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
13068 not negative.
444b3995 13069
d708ce50
JJ
130702011-04-19 Jakub Jelinek <jakub@redhat.com>
13071
13072 PR target/48678
13073 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
13074 is a SUBREG with non-MODE_INT mode inside of it.
13075
49c471e3
MJ
130762011-04-19 Martin Jambor <mjambor@suse.cz>
13077
13078 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
13079 also according to actual contants.
13080 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
13081 (gimple_fold_call): Use it.
13082 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
13083
0004f992
MJ
130842011-04-19 Martin Jambor <mjambor@suse.cz>
13085
13086 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
13087 non-pointer assignments.
13088
40591473
MJ
130892011-04-19 Martin Jambor <mjambor@suse.cz>
13090
13091 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
13092 account anc_offset and otr_type from the indirect edge info.
13093 * ipa-prop.c (get_ancestor_addr_info): New function.
13094 (compute_complex_ancestor_jump_func): Assignment analysis moved to
13095 get_ancestor_addr_info, call it.
13096 (ipa_note_param_call): Do not initialize information about polymorphic
13097 calls, return the indirect call graph edge. Remove the last
13098 parameter, adjust all callers.
13099 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
13100 parameters. Initialize polymorphic information in the indirect edge.
13101
abe36b81
EB
131022011-04-19 Eric Botcazou <ebotcazou@adacore.com>
13103
13104 PR lto/48148
13105 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
13106 the types if they have different enumeration identifiers.
13107
e6416b30
JH
131082011-04-19 Jan Hubicka <jh@suse.cz>
13109
13110 * cgraph.h (cgraph_optimize_for_size_p): Declare.
13111 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
13112 * predict.c (cgraph_optimize_for_size_p): Break out from ...
13113 (optimize_function_for_size_p) ... here.
13114
d39132ea
RG
131152011-04-19 Richard Guenther <rguenther@suse.de>
13116
13117 PR lto/48207
13118 * tree.c (free_lang_data): Do not reset the decl-assembler-name
13119 langhook.
13120
ff7037dc
EB
131212011-04-19 Eric Botcazou <ebotcazou@adacore.com>
13122
13123 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
13124 if DECL_NO_INLINE_WARNING_P is set on the function.
13125
c1ee2892
BS
131262011-04-19 Bernd Schmidt <bernds@codesourcery.com>
13127
13128 PR fortran/47976
13129 * reload1.c (inc_for_reload): Return void. All callers changed.
13130 (emit_input_reload_insns): Don't try to delete previous output
13131 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
13132
131332011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
13134
13135 * gengtype.h: Updated copyright year.
13136 (struct input_file_st): Add inpisplugin field.
13137 (type_fileloc): New function.
13138 * gengtype.c
13139 (write_typed_struct_alloc_def): Add gcc_assert.
13140 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
13141 (write_typed_alloc_defns): Don't output for plugin files.
13142 (input_file_by_name): Clear inpisplugin field.
13143 (main): Set inpisplugin field for plugin files.
13144
897e0a89
NP
131452011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
13146
13147 * gengtype-state.c (string_eq): New.
13148 (read_state): Use string_eq instead of strcmp when creating the
13149 state_ident_tab.
13150
363ee90e
WG
131512011-04-19 Wei Guozhi <carrot@google.com>
13152
13153 PR target/47855
13154 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
13155 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
13156 linkage.
13157 * config/arm/constraints.md (Uu): New constraint.
13158 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
13159
18a24fed
TG
131602011-04-19 Tristan Gingold <gingold@adacore.com>
13161
13162 * config.gcc (-*-*-*vms): Added.
13163 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
13164 definitions moved.
13165 * config/vms/vms-ld.c: New file.
13166 * config/vms/vms-ar.c: New file.
13167 * config/vms/t-vmsnative: New file.
13168
1c13f168
XDL
131692011-04-18 Xinliang David Li <davidxl@google.com>
13170
13171 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
13172
84825707
JJ
131732011-04-18 Jakub Jelinek <jakub@redhat.com>
13174
13175 PR middle-end/48661
13176 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
13177 if TREE_TYPE (v) is non-NULL.
13178
13179 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
13180 gimple_get_virt_mehtod_for_binfo.
13181 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
13182 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
13183 callers.
13184 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
13185
7d4f8d02 131862011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
13187 Steve Ellcey <sje@cup.hp.com>
13188
7d4f8d02
EB
13189 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
13190 use its mode as source mode if it isn't VOIDmode.
7254cb57 13191
474e8e70
DCR
131922011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
13193
13194 * doc/passes.texi: Fill crossref nodes.
13195
cff41484
JM
131962011-04-18 Jim Meyering <meyering@redhat.com>
13197
7d4f8d02 13198 Fix doubled-word typos in comments and strings
cff41484
JM
13199 * config/alpha/vms-unwind.h: s/for for/for/
13200 * config/arm/unwind-arm.h: Likewise.
13201 * config/microblaze/microblaze.c: Likewise.
13202 * config/sh/constraints.md: s/in in/in/
13203 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
13204
f60c2554
UB
132052011-04-18 Uros Bizjak <ubizjak@gmail.com>
13206
13207 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
13208 (AVX_FLOAT_MODE_P): Ditto.
13209 (AVX128_VEC_FLOAT_MODE_P): Ditto.
13210 (AVX256_VEC_FLOAT_MODE_P): Ditto.
13211 (AVX_VEC_FLOAT_MODE_P): Ditto.
13212 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
13213 (UNSPEC_MASKSTORE): Ditto.
13214 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
13215 Merge from <sse>_movmsk<ssemodesuffix> and
13216 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
13217 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
13218 iterator.
13219 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
13220 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
13221 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
13222
09a2806f
JH
132232011-04-18 Jan Hubicka <jh@suse.cz>
13224
8a8dccb2
JH
13225 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
13226
09a2806f
JH
13227 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
13228 (want_inline_function_called_once_p): Break out the logic from
13229 ipa_inline.
13230 (edge_badness): Ensure that profile is not misupdated.
13231 (lookup_recursive_calls): Prioritize by call frequencies.
13232 (inline_small_functions): Move program size estimates here;
13233 actually process whole queue even when unit growth has been
13234 met. (to properly compute inline_failed reasons and for the
f60c2554 13235 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
13236 (ipa_inline): Remove unit summary code; first inline hot calls
13237 of functions called once, cold calls next.
13238 (order, nnodes): Remove unused variables.
13239 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
13240 (GTFILES): Remove ipa-inline.c
13241 * sel-sched.c (fill_insns): Silence uninitialized var warning.
13242
3eea52ef
EB
132432011-04-18 Eric Botcazou <ebotcazou@adacore.com>
13244
13245 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
13246
229a1c59 132472011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 13248 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
13249
13250 * arm.c (neon_builtin_type_bits): Remove.
13251 (typedef enum neon_builtin_mode): New.
13252 (T_MAX): Don't define.
13253 (typedef enum neon_builtin_datum): Remove bits, codes[],
13254 num_vars and base_fcode. Add mode, code and fcode.
13255 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
13256 VAR10): Change accordingly.
13257 (neon_builtin_data[]): Change accordingly
13258 (arm_init_neon_builtins): Change accordingly.
13259 (neon_builtin_compare): Remove.
13260 (locate_neon_builtin_icode): Remove.
13261 (arm_expand_neon_builtin): Change accordingly.
13262
13263 * arm.h (enum arm_builtins): Move to ...
13264 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
13265
13266 * arm.c (arm_builtin_decl): Declare.
13267 (TARGET_BUILTIN_DECL): Define.
13268 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
13269 (arm_builtin_decls[]): New.
13270 (arm_init_neon_builtins): Store builtin declarations in
13271 arm_builtin_decls[].
13272 (arm_init_tls_builtins): Likewise.
13273 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
13274 (arm_builtin_decl): New.
13275
75e802cc
RG
132762011-04-18 Richard Guenther <rguenther@suse.de>
13277
13278 * tree.c (upper_bound_in_type): Build properly canonicalized
13279 INTEGER_CSTs.
13280 (lower_bound_in_type): Likewise.
13281
3b45a007
RG
132822011-04-18 Richard Guenther <rguenther@suse.de>
13283
13284 * gimple.h (gimple_call_addr_fndecl): New function.
13285 (gimple_call_fndecl): Use it.
13286 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
13287 for direct calls.
13288 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
13289 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
13290
d25a79ea
RG
132912011-04-18 Richard Guenther <rguenther@suse.de>
13292
13293 PR middle-end/48650
13294 * tree.c (build_string): STRING_CST is now derived from tree_typed.
13295
7d5fc814
EB
132962011-04-18 Eric Botcazou <ebotcazou@adacore.com>
13297
13298 PR lto/48492
13299 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
13300 DECL_IN_CONSTANT_POOL without RTL.
13301
7e7cfcf6
UW
133022011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
13303 Ira Rosen <ira.rosen@linaro.org>
13304
13305 PR target/48252
13306 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
13307 to match neon_vzip/vuzp/vtrn_internal.
13308 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
13309 outputs explicitly dependent on both inputs.
13310 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
13311
49eab32e
JJ
133122011-04-18 Jakub Jelinek <jakub@redhat.com>
13313
13314 PR tree-optimization/48616
13315 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
13316 whether the shift is by scalar or vector based on whether all SLP
13317 scalar stmts have the same rhs.
13318
e54170f4
CLT
133192011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
13320
13321 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
13322 memory operands.
13323
b14ee6c9
RS
133242011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
13325
269e0e18 13326 PR target/43700
b14ee6c9
RS
13327 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
13328 registers.
13329
10158cd3
JH
133302011-04-17 Jan Hubicka <jh@suse.cz>
13331
13332 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
13333 * cgrpahunit.c (cgraph_finalize_function): Do not set
13334 finalized_by_frontend.
10158cd3
JH
13335 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13336 finalized_by_frontend.
13337
2e9bb6ba
JH
133382011-04-17 Jan Hubicka <jh@suse.cz>
13339
13340 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
13341 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
13342 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
13343 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
13344 method.
2e9bb6ba
JH
13345 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
13346 gimple-fold.c
13347 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
13348
beb628e1
EB
133492011-04-17 Eric Botcazou <ebotcazou@adacore.com>
13350
13351 PR lto/48538
13352 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
13353 is non-null before accessing it.
13354 (input_cgraph): Remove trailing spaces.
13355
3e2fdd24
RE
133562011-04-17 Revital Eres <revital.eres@linaro.org>
13357
13358 * params.def (sms-min-sc): New param flag.
13359 * modulo-sched.c (sms_schedule): Use it.
13360 * doc/invoke.texi (sms-min-sc): Document it.
13361
4c0f7679
JH
133622011-04-17 Jan Hubicka <jh@suse.cz>
13363
13364 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
13365 present, also set gimple_call_set_cannot_inline.
13366 * ipa-inline.c: Update toplevel comment.
13367 (MAX_TIME): Remove.
13368 (cgraph_clone_inlined_nodes): Fix linebreaks.
13369 (cgraph_check_inline_limits): Restructure to ...
13370 (caller_growth_limits): ... this one; be more tolerant
13371 on growth in nested inline chains; add explanatory comment;
13372 fix stack accounting thinko introduced by previous patch.
13373 (cgraph_default_inline_p): Remove.
13374 (report_inline_failed_reason): New function.
13375 (can_inline_edge_p): New function.
13376 (can_early_inline_edge_p): New function.
13377 (leaf_node_p): Move upwards in file.
13378 (want_early_inline_function_p): New function.
13379 (want_inline_small_function_p): New function.
13380 (want_inline_self_recursive_call_p): New function.
13381 (cgraph_edge_badness): Rename to ...
13382 (edge_badness) ... this one; fix linebreaks.
13383 (update_edge_key): Update call of edge_baddness; add
13384 detailed dump about queue updates.
13385 (update_caller_keys): Use can_inline_edge_p and
13386 want_inline_small_function_p.
13387 (cgraph_decide_recursive_inlining): Rename to...
13388 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
13389 want_inline_self_recursive_call_p; simplify and remove no longer
13390 valid FIXME.
4c0f7679
JH
13391 (cgraph_set_inline_failed): Remove.
13392 (add_new_edges_to_heap): Use can_inline_edge_p and
13393 want_inline_small_function_p.
13394 (cgraph_decide_inlining_of_small_functions): Rename to ...
13395 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
13396 can/want predicates; cleanup debug ouput; work edges till fibheap
13397 is exhausted and do not stop once unit growth is reached; remove
13398 later loop processing remaining edges.
4c0f7679
JH
13399 (cgraph_flatten): Rename to ...
13400 (flatten_function): ... this one; use can_inline_edge_p
13401 and can_early_inline_edge_p predicates.
13402 (cgraph_decide_inlining): Rename to ...
13403 (ipa_inline): ... this one; remove unreachable nodes before
13404 inlining functions called once; simplify the pass.
13405 (cgraph_perform_always_inlining): Rename to ...
13406 (inline_always_inline_functions): ... this one; use
f60c2554 13407 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
13408 (cgraph_decide_inlining_incrementally): Rename to ...
13409 (early_inline_small_functions): ... this one; simplify
13410 using new predicates; cleanup; make dumps prettier.
13411 (cgraph_early_inlining): Rename to ...
13412 (early_inliner): newer inline regular functions into always-inlines;
13413 fix updating of call stmt summaries.
13414 (pass_early_inline): Update for new names.
13415 (inline_transform): Fix formating.
13416 (gate_cgraph_decide_inlining): Rename to ...
13417 (pass_ipa_inline): ... this one.
13418 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
13419 * ipa-inline-analysis.c (dump_inline_summary): Update.
13420 (compute_inline_parameters): Do not compute disregard_inline_limits;
13421 look for mismatching arguments.
13422 (estimate_growth): Fix handlig of non-trivial self recursion.
13423 (inline_read_summary): Do not read info->disregard_inline_limits.
13424 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
13425 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
13426 and move all checks into can_inline_edge_p predicate; re-enable code
13427 comparing optimization levels.
4c0f7679
JH
13428 (expand_call_inline): Do not test inline_forbidden_into_p.
13429 * Makefile.in (ipa-inline.o): Update arguments.
13430
54333b7c
RE
134312011-04-17 Revital Eres <revital.eres@linaro.org>
13432
13433 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
13434
42c2bf92
RE
134352011-04-17 Revital Eres <revital.eres@linaro.org>
13436
13437 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
13438
b183e9e0
MM
134392011-04-17 Michael Matz <matz@suse.de>
13440
13441 PR tree-optimization/48622
13442 PR lto/48645
13443 * ipa-inline-analysis.c (inline_read_summary): Read size/time
13444 in same order as they're written.
13445
b8a17fa2
JDA
134462011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13447
13448 * config/pa/predicates.md: Reorganize and simplify predicates.
13449 Eliminate duplicate code checks.
13450 (arith_operand): Rename to arith14_operand
13451 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
13452 * config/pa/pa.md: Use renamed operands.
13453 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
13454 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
13455 arith11_operand, adddi3_operand, indexed_memory_operand,
13456 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
13457 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
13458 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
13459 move_dest_operand, move_src_operand, prefetch_cc_operand,
13460 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
13461 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
13462 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
13463 div_operand, int5_operand, movb_comparison_operator,
13464 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
13465 arith_double_operand, ireg_operand, lhs_lshift_operand,
13466 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
13467 integer_store_memory_operand): Likewise.
13468 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
13469 (integer_store_memory_operand, read_only_operand,
13470 function_label_operand, borx_reg_operand,
13471 non_hard_reg_operand): Likewise.
13472 (eq_neq_comparison_operator): Delete unused operator.
13473 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
13474 function_label_operand.
13475 (emit_move_sequence): Likewise.
13476
8dfb9f16
UB
134772011-04-16 Uros Bizjak <ubizjak@gmail.com>
13478
13479 * config/i386/sse.md (sseunpackmode): New mode attribute.
13480 (ssepackmode): Ditto.
13481 (vec_pack_trunc_<mode>): Macroize expander from
13482 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
13483 (vec_unpacks_lo_<mode>): Macroize expander from
13484 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13485 (vec_unpacks_hi_<mode>): Macroize expander from
13486 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13487 (vec_unpacku_lo_<mode>): Macroize expander from
13488 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13489 (vec_unpacku_hi_<mode>): Macroize expander from
13490 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13491 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
13492 ix86_expand_sse4_unpack.
13493 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
13494
e7f23018
JH
134952011-04-16 Jan Hubicka <jh@suse.cz>
13496
13497 * cgraphbuild.c: Include ipa-inline.h.
13498 (reset_inline_failed): Use initialize_inline_failed.
13499 * cgraph.c: Include ipa-inline.h.
13500 (cgraph_create_node_1): Do not initialize estimated_growth.
13501 (initialize_inline_failed): More to ipa-inline-analysis.c
13502 (dump_cgraph_node): Do not dump inline flags.
13503 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
13504 and disregard_inline_limits flags.
13505 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
13506 time, size, estimated_growth.
8dfb9f16
UB
13507 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
13508 Update.
e7f23018
JH
13509 * cgraphunit.c (cgraph_decide_is_function_needed): Use
13510 DECL_DISREGARD_INLINE_LIMITS.
13511 (cgraph_analyze_function): Do not initialize
13512 node->local.disregard_inline_limits.
13513 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13514 inlinable, versionable and disregard_inline_limits.
13515 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
13516 cgraph_check_inline_limits, cgraph_default_inline_p,
13517 cgraph_edge_badness, update_caller_keys, update_callee_keys,
13518 add_new_edges_to_heap): Update.
13519 (cgraph_decide_inlining_of_small_function): Update; set
13520 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
13521 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
13522 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
13523 * ipa-inline.h (inline_summary): Add inlinable, versionable,
13524 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
13525 time, size and estimated_growth parameters.
e7f23018
JH
13526 (estimate_edge_growth): Update.
13527 (initialize_inline_failed): Declare.
13528 * ipa-split.c: Include ipa-inline.h
13529 (execute_split_functions): Update.
13530 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
13531 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
13532 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
13533 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
13534 estimated_growth to INT_MIN.
13535 (inline_node_duplication_hook): Likewise.
13536 (dump_inline_summary): Dump new fields.
13537 (compute_inline_parameters): Update.
13538 (estimate_edge_time, estimate_time_after_inlining,
13539 estimate_size_after_inlining, estimate_growth, inline_read_summary,
13540 inline_write_summary):
13541 (initialize_inline_failed): Move here from cgraph.c.
13542 * tree-sra.c: Include ipa-inline.h.
13543 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
13544 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
13545 ipa-inline.h.
e7f23018 13546
e81b8564
UB
135472011-04-16 Uros Bizjak <ubizjak@gmail.com>
13548
13549 * config/i386/sse.md (V16): New mode iterator.
13550 (VI1, VI8): Ditto.
13551 (AVXMODEQI, AVXMODEDI): Remove.
13552 (sse2, sse3): New mode attribute.
13553 (mov<mode>): Use V16 mode iterator.
13554 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
13555 (push<mode>1): Use V16 mode iterator.
13556 (movmisalign<mode>): Ditto.
13557 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13558 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
13559 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13560 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
13561 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
13562 avx_movdqu<avxmodesuffix>.
13563 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
13564 *avx_movdqu<avxmodesuffix>.
13565 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
13566 avx_lddqu<avxmodesuffix>.
13567 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
13568 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
13569 avx_movnt<AVXMODEDI:mode>.
13570 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
13571 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
13572
4743d438
BS
135732011-04-16 Bernd Schmidt <bernds@codesourcery.com>
13574
13575 PR target/48629
13576 * haifa-sched.c (prune_ready_list, schedule_block): Use
13577 sched_pressure_p rather than flag_sched_pressure.
13578
748f7574 135792011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
13580
13581 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13582 cgraph_get_node instead of cgraph_get_create_node.
13583
2ba172e0
JJ
135842011-04-15 Jakub Jelinek <jakub@redhat.com>
13585
13586 * cfgexpand.c (expand_debug_expr): Use
13587 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
13588
63d2a353
MM
135892011-04-15 Michael Matz <matz@suse.de>
13590
13591 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
13592 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
13593 * function.c (gimplify_parameters): Ditto.
13594 * gimplify.c (gimplify_vla_decl): Ditto.
13595
13596 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
13597 (gimple_call_set_alloca_for_var): New inline function.
13598 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
13599 * gimple.c (gimple_build_call_from_tree): Remember
13600 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
13601 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
13602
13603 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
13604 calls if they were for VLA objects.
13605
dee74c34
MJ
136062011-04-15 Martin Jambor <mjambor@suse.cz>
13607
13608 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
13609 of ADR_EXPRs.
13610
8e5837bc
MJ
136112011-04-15 Martin Jambor <mjambor@suse.cz>
13612
13613 PR middle-end/48601
13614 * tree-emutls.c (lower_emutls_function_body): Call
13615 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
13616 result is non-NULL.
13617
0dc33c3c
NP
136182011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
13619
13620 * c-decl.c (detect_field_duplicates): Call
13621 objc_detect_field_duplicates instead of objc_get_interface_ivars.
13622
edcdea5b
NF
136232011-04-15 Nathan Froyd <froydnj@codesourcery.com>
13624
13625 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
13626 * gimple.c (gimple_asm_clobbers_memory_p): Define.
13627 * ipa-pure-const.c (check_stmt): Call it.
13628 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
13629
8456558d
RG
136302011-04-15 Richard Guenther <rguenther@suse.de>
13631
13632 PR tree-optimization/48290
13633 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
13634 Properly decide inhibiting propagation based on the valueized
13635 operand. Do loop-closed SSA form preserving here ...
13636 (init_copy_prop): ... not here.
13637
266446be
L
136382011-04-15 H.J. Lu <hongjiu.lu@intel.com>
13639
13640 PR target/48612
13641 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
13642 (*ieee_smax<mode>3): Likewise.
13643
17465c6e
AK
136442011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13645
13646 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
13647 Replace match_operand with match_dup for the third operand in
13648 these expanders.
13649
bce204e5
MK
136502011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13651
13652 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
13653 to track processing of conditionals. Update all callers.
13654 (try_combine, simplify_if_then_else): Update.
13655
3162fdf4
MK
136562011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13657
13658 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
13659 -fsched-pressure.
13660
79002a57 136612011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 13662
79002a57
GJL
13663 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
13664 instead of match_operand for operand 3.
13665
4fd3a105
RS
136662011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
13667
13668 * recog.h (insn_operand_data): Add an "allows_mem" field.
13669 * genoutput.c (output_operand_data): Initialize it.
13670 * optabs.c (maybe_legitimize_operand_same_code): New function.
13671 (maybe_legitimize_operand): Use it when matching the original
13672 op->value.
13673
ad19c4be
EB
136742011-04-15 Eric Botcazou <ebotcazou@adacore.com>
13675
13676 * gimplify.c: Fix issues in comments throughout.
13677 (voidify_wrapper_expr): Fix long line.
13678 (build_stack_save_restore): Likewise.
13679 (gimplify_loop_expr): Likewise.
13680 (gimplify_compound_lval): Likewise.
13681 (gimplify_init_ctor_eval): Likewise.
13682 (gimplify_modify_expr_rhs): Likewise.
13683 (omp_notice_threadprivate_variable): Likewise.
13684
b25aa0e8 136852011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 13686
b25aa0e8
EB
13687 * cfgexpand.c (expand_call_stmt): Convert the function type to the
13688 original one if this is not a builtin function.
e7925582 13689
09db7afe
JJ
136902011-04-14 Jakub Jelinek <jakub@redhat.com>
13691
13692 PR target/48605
13693 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
13694 offset it as needed based on top 2 bits in operands[3], change
13695 MEM mode to SFmode and mask those 2 bits away from operands[3].
13696
c59633d9
NP
136972011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13698
13699 * c-parser.c (c_parser_objc_protocol_definition): Updated for
13700 change from objc_declare_protocols() to objc_declare_protocol().
13701
5e60198b
UB
137022011-04-14 Uros Bizjak <ubizjak@gmail.com>
13703
13704 * config/i386/sse.md (sse4_1): New mode attribute.
13705 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
13706 avx_blend<ssemodesuffix><avxmodesuffix> and
13707 sse4_1_blend<ssemodesuffix> using VF mode iterator.
13708 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
13709 avx_blendv<ssemodesuffix><avxmodesuffix> and
13710 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
13711 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
13712 avx_dp<ssemodesuffix><avxmodesuffix> and
13713 sse4_1_dp<ssemodesuffix> using VF mode iterator.
13714 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
13715 (sse4_1_packusdw): Merge with *avx_packusdw.
13716 (sse4_1_pblendvb): Merge with *avx_pblendvb.
13717 (sse4_1_pblendw): Merge with *avx_pblendw.
13718 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
13719 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
13720 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
13721 VF mode iterator.
13722 (sse4_1_round<ssescalarmodesuffix>): Merge with
13723 *avx_round<ssescalarmodesuffix>.
13724 (aesenc): Merge with *avx_aesenc.
13725 (aesenclast): Merge with *avx_aesenclast.
13726 (aesdec): Merge with *avx_aesdec.
13727 (aesdeclast): Merge with *avx_aesdeclast.
13728 (pclmulqdq): Merge with *pclmulqdq.
13729 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
13730 New predicate.
13731 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
13732
6f197850
L
137332011-04-14 H.J. Lu <hongjiu.lu@intel.com>
13734
13735 PR middle-end/48608
13736 * cfgexpand.c (get_decl_align_unit): Renamed to ...
13737 (align_local_variable): This. Update DECL_ALIGN.
13738 (add_stack_var): Updated.
13739 (expand_one_stack_var): Likewise.
13740
4a5ba3ed
RG
137412011-04-14 Richard Guenther <rguenther@suse.de>
13742
13743 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
13744 Remove.
13745 (dse_initialize_block_local_data, dse_leave_block,
13746 record_voperand_set, get_stmt_uid): Likewise.
13747 (dse_possible_dead_store_p): Allow any kind of killing stmt.
13748 (dse_optimize_stmt): Remove voperand set handling code.
13749 Simplify and improve to handle any kind of killing stmt.
13750 (dse_record_phi): Remove.
13751 (dse_enter_block): Simplify.
13752 (tree_ssa_dse): Likewise.
13753 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
13754
10a5dd5d
JH
137552011-04-14 Jan Hubicka <jh@suse.cz>
13756
13757 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
13758 * cgraph.h (struct inline_summary): Move to ipa-inline.h
13759 (cgraph_local_info): Remove inline_summary.
13760 * ipa-cp.c: Include ipa-inline.h.
13761 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
13762 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
13763 accesor.
13764 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
13765 (input_overwrite_node): Do not set inline summary.
13766 (input_node): Do not stream inline summary.
13767 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
13768 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
13769 growth; we do not have inline parameters computed for that anyway.
13770 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
13771 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
13772 (inline_summary_t): New type and VECtor.
13773 (debug_inline_summary, dump_inline_summaries): Declare.
13774 (inline_summary): Use VOCtor.
13775 (estimate_edge_growth): Kill hack computing call stmt size directly.
13776 * lto-section-in.c (lto_section_name): Add inline section.
13777 * ipa-inline-analysis.c: Include lto-streamer.h
13778 (node_removal_hook_holder, node_duplication_hook_holder): New holders
13779 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
13780 (inline_summary_vec): Define.
13781 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
13782 dump_inline_summaries): New functions.
5e60198b
UB
13783 (estimate_function_body_sizes): Properly compute size/time of outgoing
13784 calls.
13785 (compute_inline_parameters): Alloc inline_summary; do not compute
13786 size/time of incomming calls.
10a5dd5d
JH
13787 (estimate_edge_time): Avoid missing time summary hack.
13788 (inline_read_summary): Read inline summary info.
13789 (inline_write_summary): Write inline summary info.
13790 (inline_free_summary): Free all hooks and inline summary vector.
13791 * lto-streamer.h: Add LTO_section_inline_summary section.
13792 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
13793 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
13794
b602d918
RS
137952011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13796
13797 * tree-vectorizer.h (vect_strided_store_supported): Add a
13798 HOST_WIDE_INT argument.
13799 (vect_strided_load_supported): Likewise.
13800 (vect_permute_store_chain): Return void.
13801 (vect_transform_strided_load): Likewise.
13802 (vect_permute_load_chain): Delete.
13803 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
13804 count argument. Check that the count is a power of two.
13805 (vect_strided_load_supported): Likewise.
13806 (vect_permute_store_chain): Return void. Update after above changes.
13807 Assert that the access is supported.
13808 (vect_permute_load_chain): Likewise.
13809 (vect_transform_strided_load): Return void.
13810 * tree-vect-stmts.c (vectorizable_store): Update calls after
13811 above interface changes.
13812 (vectorizable_load): Likewise.
13813 (vect_analyze_stmt): Don't check for strided powers of two here.
13814
ab4472fa
RG
138152011-04-14 Richard Guenther <rguenther@suse.de>
13816
13817 PR tree-optimization/48590
13818 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
13819 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13820 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
13821 BUILT_IN_STACK_SAVE.
13822 * tree-ssa-dce.c (propagate_necessity): Handle
13823 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13824
32dabdaf
NP
138252011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13826
13827 * c-parser.c (c_parser_objc_class_declaration): Updated call to
13828 objc_declare_class.
13829
daade206
RG
138302011-04-14 Richard Guenther <rguenther@suse.de>
13831
13832 * tree.h (get_object_alignment_1): Declare.
13833 * builtins.c (get_object_alignment_1): Split out worker from ...
13834 (get_object_alignment): ... here.
13835 * fold-const.c (get_pointer_modulus_and_residue): Use
13836 get_object_alignment_1.
13837
920e8172
RS
138382011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13839
13840 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
13841 type parameter.
13842 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
13843 parameter. Generalise code to handle arrays as well as vectors.
13844 (vect_setup_realignment): Update accordingly.
13845 * tree-vect-stmts.c (vectorizable_store): Likewise.
13846 (vectorizable_load): Likewise.
13847
5ce1ee7f
RS
138482011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13849
13850 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
13851 within the per-copy loop.
13852
6438fe33 138532011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
13854
13855 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
13856 in the dump file.
13857
6438fe33 138582011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
13859
13860 * doc/options.texi (Negative): Explicitly mention that the
13861 Negative chain must be circular.
13862
61e46a7d
NF
138632011-04-14 Nathan Froyd <froydnj@codesourcery.com>
13864
13865 * function.h (block_chainon): Declare.
13866 * function.c (block_chainon): Define.
13867
43ea6502 138682011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 13869 Eric Weddington <eric.weddington@atmel.com>
748f7574 13870 Georg-Johann Lay <avr@gjlay.de>
5e60198b 13871
f60c2554 13872 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
13873 New Includes
13874 (avr_init_builtins, avr_expand_builtin,
13875 avr_expand_delay_cycles, avr_expand_unop_builtin,
13876 avr_expand_binop_builtin ): New functions.
13877 (avr_builtin_id): New enum
13878 (struct avr_builtin_description): New struct
13879 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
13880 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 13881
43ea6502 13882 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 13883 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
13884 UNSPECV_DELAY_CYCLES): new enumeration values
13885 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
13886 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
13887 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
13888 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
13889 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
13890 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
13891 "fmulsu"): New insns
5e60198b 13892
43ea6502
AS
13893 * config/avr/avr-c.c: fix line endings
13894 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
13895 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
13896 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
13897 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
13898 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 13899
43ea6502
AS
13900 * doc/extend.texi (AVR Built-in Functions): New node
13901 (Target Builtins): Add documentation of AVR
13902 built-in functions.
13903
8a9b55f3
GJL
139042011-04-14 Georg-Johann Lay <avr@gjlay.de>
13905
13906 PR target/44643
13907 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
13908 alone. Error if non-const data has attribute progmem.
13909
94bd1825
NF
139102011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13911
13912 * tree.h (struct tree_constructor): Include tree_typed instead of
13913 tree_common.
13914 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
13915 TS_TYPED instead of TS_COMMON.
13916
5e60198b 139172011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
13918
13919 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
13920 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
13921 (sse2_psadbw): Merge with *avx_psadbw.
13922 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
13923 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
13924 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
13925 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
13926 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
13927 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
13928 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
13929 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
13930 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
13931 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
13932 (ssse3_palignrti): Merge with *avx_palignrti.
13933
4b1a4694
NF
139342011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13935
13936 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
13937 * tree-ssanames.c (fini_ssanames): VEC_free it.
13938 (make_ssa_name_fn): Update for VECness of free_ssanames.
13939 (release_ssa_name, release_dead_ssa_names): Likewise.
13940 * tree.h (struct tree_ssa_name): Include tree_typed instead of
13941 tree_common.
13942 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
13943 TS_TYPED instead of TS_COMMON.
13944
4da3b811
NF
139452011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13946
13947 * postreload-gcse.c (gcse_after_reload_main): Add calls to
13948 statistics_counter_event.
13949 * tree-ssa-copyrename.c (stats): Define.
13950 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
13951 statistics_counter_event.
13952 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
13953 (bswap_stats, widen_mul_stats): Define.
13954 (insert_reciprocals): Increment rdivs_inserted.
13955 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
13956 rfuncs_inserted. Add calls to statistics_counter_event.
13957 (execute_cse_sincos_1): Increment inserted.
13958 (execute_cse_sincos): Zeroize sincos_stats. Add call to
13959 statistics_counter_event.
13960 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
13961 of bswap_stats. Add calls to statistics_counter_event.
13962 (convert_mult_to_widen): Increment widen_mults_inserted.
13963 (convert_plusminus_to_widen): Increment maccs_inserted.
13964 (convert_mult_to_fma): Increment fmas_inserted.
13965 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
13966 calls to statistics_counter_event.
13967
89fa552a
VM
139682011-04-13 Vladimir Makarov <vmakarov@redhat.com>
13969
13970 PR rtl-optimization/48455
13971 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
13972 `temp_costs->mem_cost'.
13973
03dfc36d
JH
139742011-04-13 Jan Hubicka <jh@suse.cz>
13975
13976 * ipa-inline.h: New file.
13977 * ipa-inline-analysis.c: New file. Broken out of ...
13978 * ipa-inline.c: ... this file; update toplevel comment;
13979 include ipa-inline.h
13980 (inline_summary): Move to ipa-inline.h
13981 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
13982 ipa-inline-analysis.c.
7d4f8d02
EB
13983 (cgraph_estimate_time_after_inlining): Rename to
13984 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
13985 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
13986 to estimate_edge_growth.
13987 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
13988 rename to estimate_size_after_inlining.
13989 (cgraph_mark_inline_edge): Update for new naming convention.
13990 (cgraph_check_inline_limits): Likewise.
13991 (cgraph_edge_badness): Likewise.
13992 (cgraph_decide_recursive_inlining): Likewise.
13993 (cgraph_decide_inlining_of_small_functions): Likewise.
13994 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
13995 (cgraph_estimate_growth): Rename to estimate_growth; move to
13996 ipa-inline-analysis.c.
03dfc36d
JH
13997 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
13998 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
13999 (compute_inline_parameters): Likewise.
14000 (compute_inline_parameters_for_current): Likewise.
14001 (pass_inline_parameters): Likewise.
14002 (inline_indirect_intraprocedural_analysis): Likewise.
14003 (analyze_function): Rename to inline_analyze_function; likewise.
14004 (add_new_function): Move to ipa-inline-analysis.c.
14005 (inline_generate_summary): Likewise.
14006 (inline_read_summary): Likewise.
14007 (inline_write_summary): Likewise.
14008 * Makefile.in (ipa-inline-analysis.c): New file.
14009
7673c962
RO
140102011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14011
14012 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
14013 * configure: Regenerate.
14014
9698252f
NF
140152011-04-13 Nathan Froyd <froydnj@codesourcery.com>
14016
14017 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
14018 instead of tree_common.
14019 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
14020 Likewise.
14021 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
14022 TS_TYPED rather than TS_COMMON.
14023 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
14024
3a7bfdd5
GJL
140252011-04-01 Georg-Johann Lay <avr@gjlay.de>
14026
14027 PR target/45263
86d83530
GJL
14028 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
14029 r20 around calls of __tablejump_elpm__
3a7bfdd5 14030
20790697
JJ
140312011-04-13 Jakub Jelinek <jakub@redhat.com>
14032
14033 PR middle-end/48591
14034 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
14035 NULL.
14036 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
14037
094d7661
BS
140382011-04-13 Bernd Schmidt <bernds@codesourcery.com>
14039
14040 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
14041 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
14042 (cfi_vec): New typedef.
14043 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
14044 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
14045 (cie_cfi_vec): New static variable.
14046 (cie_cfi_head): Delete.
14047 (add_cfi): Accept a cfi_vec * as first argument. All callers and
14048 declaration changed. Use vector rather than list operations.
14049 (new_cfi): Don't initialize the dw_cfi_next field.
14050 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
14051 rather than list operations.
14052 (lookup_cfa): Use vector rather than list operations.
14053 (output_cfis): New argument upto. Accept a cfi_vec rather than
14054 a dw_cfi_ref list head as argument. All callers changed.
14055 Iterate over the vector using upto as a maximum index.
14056 (output_all_cfis): New static function.
14057 (output_fde): Use vector rather than list operations. Use the
14058 new upto argument for output_cfis rather than manipulating a
14059 list.
14060 (dwarf2out_begin_prologue): Change initializations to match
14061 new struct members.
14062 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
14063 from the vector length rather than searching for the end of a list.
14064 Use output_all_cfis.
14065 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
14066
673a5740
NC
140672011-04-13 Nick Clifton <nickc@redhat.com>
14068
14069 * config/rx/rx.md (movmemsi): Do not use this pattern when
14070 volatile pointers are involved.
14071
1ee8b298
UB
140722011-04-13 Uros Bizjak <ubizjak@gmail.com>
14073
14074 * config/i386/sse.md (pinsrbits): Remove.
14075 (sse2_packsswb): Merge with *avx_packsswb.
14076 (sse2_packssdw): Merge with *avx_packssdw.
14077 (sse2_packuswb): Merge with *avx_packuswb.
14078 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
14079 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
14080 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
14081 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
14082 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
14083 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
14084 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
14085 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
14086 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
14087 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
14088 (sse2_loadld): Merge with *avx_loadld.
14089 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
14090 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
14091 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
14092 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
14093 (vec_concatv2di): Merge with *vec_concatv2di_avx.
14094
81f653d6
NF
140952011-04-12 Nathan Froyd <froydnj@codesourcery.com>
14096
14097 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
14098 calling TREE_CHAIN.
14099 * print-tree.c (print_node): Likewise.
14100 * tree-inline.c (copy_tree_r): Likewise.
14101 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
14102 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
14103 instead of TS_COMMON.
14104 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
14105 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
14106 (copy_node_stat): Zero TREE_CHAIN only if necessary.
14107 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
14108 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
14109 ...and these...
14110 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
14111 * tree.h: ...here.
14112 (TREE_CHAIN): Check for a TS_COMMON structure.
14113 (TREE_TYPE): Check for a TS_TYPED structure.
14114
748f7574 141152011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
14116
14117 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
14118 cgraph_get_create_node instead of cgraph_node.
14119
eb345401
NP
141202011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
14121
14122 * c-parser.c (c_parser_initelt): Updated call to
14123 objc_build_message_expr.
14124 (c_parser_postfix_expression): Likewise.
14125
a6c46762
KT
141262011-04-12 Kai Tietz <ktietz@redhat.com>
14127
14128 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
14129 MASK_MS_BITFIELD_LAYOUT bit.
14130
b4ccfed9
JJ
141312011-04-12 Jakub Jelinek <jakub@redhat.com>
14132
14133 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
14134 assert it is always true.
14135 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
14136 moves.
14137
0d8a2528
NP
141382011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
14139
14140 * c-parser.c (c_lex_one_token): Rewritten conditional used when
14141 compiling Objective-C to be more efficient.
14142
06bd234a
AF
141432011-04-12 Axel Freyn <axel-freyn@gmx.de>
14144
14145 * opts-common.c (decode_cmdline_options_to_array): Remove variable
14146 argv_copied.
14147
28569ac3
RS
141482011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
14149
14150 * recog.h, genoutput.c, optabs.c: Revert last patch.
14151
ae59e00d
RR
141522011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14153
81b1e7eb
UB
14154 PR target/48090
14155 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 14156
cff1b7e0
RS
141572011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
14158
14159 * recog.h (insn_operand_data): Add an "allows_mem" field.
14160 * genoutput.c (output_operand_data): Initialize it.
14161 * optabs.c (maybe_legitimize_operand_same_code): New function.
14162 (maybe_legitimize_operand): Use it when matching the original
14163 op->value.
14164
77059241
RS
141652011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
14166
14167 * genpreds.c (process_define_predicate): Move most processing
14168 to gensupport.c. Continue to validate the expression.
14169 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
14170 (process_define_predicate): Move processing to gensupport.c.
14171 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
14172 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
14173 (compute_predicate_codes): Moved from genrecog.c. Add lineno
14174 argument.
14175 (valid_predicate_name_p): New function, split out from old
14176 genpreds.c:process_define_predicate.
14177 (process_define_predicate): New function, combining code from
14178 old genpreds.c and genrecog.c functions.
14179 (process_rtx): Call it for DEFINE_PREDICATE and
14180 DEFINE_SPECIAL_PREDICATE.
14181
6308e208
RS
141822011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
14183
14184 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
14185 size of a '%A' memory reference.
14186 (T_DREG, T_QREG): New neon_builtin_type_bits.
14187 (arm_init_neon_builtins): Assert that the load and store operands
14188 are neon_struct_operands.
14189 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
14190 (NEON_ARG_MEMORY): New builtin_arg.
14191 (neon_dereference_pointer): New function.
14192 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
14193 Handle NEON_ARG_MEMORY.
14194 (arm_expand_neon_builtin): Update after above interface changes.
14195 Use NEON_ARG_MEMORY for loads and stores.
14196 * config/arm/predicates.md (neon_struct_operand): New predicate.
14197 * config/arm/iterators.md (V_two_elem): Tweak formatting.
14198 (V_three_elem): Use BLKmode for accesses that have no associated mode.
14199 (V_four_elem): Tweak formatting.
14200 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
14201 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
14202 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
14203 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
14204 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
14205 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
14206 (neon_vst4<mode>): Replace pointer operand with a memory operand.
14207 Use %A in the output template.
14208 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
14209 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
14210 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
14211 the width of the memory access. Remove post-increment.
14212 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
14213
e5db8f2f
NC
142142011-04-12 Nick Clifton <nickc@redhat.com>
14215
14216 * config/v850/v850.c (expand_prologue): Do not use the CALLT
14217 instruction for interrupt handlers if the target is the basic V850
14218 architecture.
14219 (expand_epilogue): Likewise.
14220
74f091d6
JJ
142212011-04-12 Jakub Jelinek <jakub@redhat.com>
14222
14223 PR rtl-optimization/48549
14224 * combine.c (propagate_for_debug): Also stop after BB_END of
14225 this_basic_block. Process LAST and just stop processing after it.
14226 (combine_instructions): If last_combined_insn has been deleted,
14227 set last_combined_insn to its PREV_INSN.
14228
f20ca725
RG
142292011-04-12 Richard Guenther <rguenther@suse.de>
14230
14231 PR tree-optimization/46076
14232 * gimple.h (struct gimple_statement_call): Add fntype field.
14233 (gimple_call_fntype): Adjust.
14234 (gimple_call_set_fntype): New function.
14235 * gimple.c (gimple_build_call_1): Set the call function type.
14236 * gimplify.c (gimplify_call_expr): Preserve the function
14237 type the frontend used for the call.
14238 (gimplify_modify_expr): Likewise.
14239 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
14240 function type.
14241 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
14242 function type.
14243 * tree-ssa.c (useless_type_conversion_p): Function pointer
14244 conversions are useless.
14245
a358e188
MJ
142462011-04-12 Martin Jambor <mjambor@suse.cz>
14247
14248 * cgraph.h (cgraph_node): Remove function declaration.
14249 (cgraph_create_node): Declare.
14250 (cgraph_get_create_node): Likewise.
14251 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
14252 Updated all callers.
14253 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
14254 the decl does not already exist. Call cgraph_get_create_node instead
14255 of cgraph_node.
14256 (cgraph_get_create_node): New function.
14257 (cgraph_same_body_alias): Update comment.
14258 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
14259 assert it does not return NULL.
14260 (cgraph_update_edges_for_call_stmt): Likewise.
14261 (cgraph_clone_edge): Likewise.
14262 (cgraph_create_virtual_clone): Likewise.
14263 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
14264 instead of cgraph_node.
14265 (cgraph_add_new_function): Call cgraph_create_node or
14266 cgraph_get_create_node instead of cgraph_node.
14267 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
14268 instead of cgraph_node.
14269 (record_eh_tables): Likewise.
14270 (mark_address): Likewise.
14271 (mark_load): Likewise.
14272 (build_cgraph_edges): Call cgraph_get_create_node instead
14273 of cgraph_node.
14274 (rebuild_cgraph_edges): Likewise.
14275 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
14276 instead of cgraph_node.
14277 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
14278 cgraph_node.
14279 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
14280 cgraph_create_node instead of cgraph_node.
14281 * c-decl.c (finish_function): Call cgraph_get_create_node instead
14282 of cgraph_node.
14283 * lto-cgraph.c (input_node): Likewise.
14284 * lto-streamer-in.c (input_function): Likewise.
14285 * varasm.c (mark_decl_referenced): Likewise.
14286 (assemble_alias): Likewise.
14287
fe660d7b
MJ
142882011-04-12 Martin Jambor <mjambor@suse.cz>
14289
14290 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
14291 instead of cgraph_node and assert it does not return NULL.
14292 * lto-streamer-in.c (lto_read_body): Likewise.
14293 * omp-low.c (new_omp_context): Likewise.
14294 (create_task_copyfn): Likewise.
14295 * tree-emutls.c (lower_emutls_function_body): Likewise.
14296 * matrix-reorg.c (transform_allocation_sites): Likewise.
14297
bae5cddf
JJ
142982011-04-12 Jakub Jelinek <jakub@redhat.com>
14299
14300 PR c/48552
14301 * c-typeck.c (build_asm_expr): Error out on attempts to use
14302 void type outputs or inputs for constraints that allow reg or
14303 don't allow memory.
14304
06eb52ca
CLT
143052011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
14306 Richard Earnshaw <rearnsha@arm.com>
14307
14308 PR target/48250
14309 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
14310 to use sign-magnitude offsets. Reject unsupported unaligned
14311 cases. Add detailed description in comments.
14312 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
14313 condition from TARGET_32BIT to TARGET_ARM.
14314
648a616b
NF
143152011-04-11 Nathan Froyd <froydnj@codesourcery.com>
14316
14317 * tree.h (struct typed_tree): New.
14318 (struct tree_common): Include it instead of tree_base.
14319 (TREE_TYPE): Update for new location of type field.
14320 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
14321 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
14322 (union tree_node): Add typed field.
14323 * treestruct.def (TS_TYPED): New.
14324 * lto-streamer.c (check_handled_ts_structures): Handle it.
14325 * tree.c (MARK_TS_TYPED): New macro.
14326 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
14327
1e6d1da0
EB
143282011-04-11 Eric Botcazou <ebotcazou@adacore.com>
14329
14330 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
14331 (force_nonfallthru): Do not alter the loop nest if no basic block
14332 was created.
14333
143342011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
14335
14336 * config/i386/sse.md (VI): New mode iterator.
14337 (SSEMODEI): Remove.
14338 (AVX256MODEI): Ditto.
14339 (AVXMODEF4P): Ditto.
14340 (avxvecpsmode): Ditto.
14341 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
14342 (sse2_andnot<mode>3): New expander.
14343 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
14344 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
14345 (<any_logic:code><mode>3): Use VI mode iterator.
14346 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
14347 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
14348 (*andnottf3): Handle AVX three-operand constraints.
14349 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
14350
b1372d5d 143512011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 14352 Robert Millan <rmh@gnu.org>
b1372d5d
JM
14353
14354 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
14355 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
14356 GNU_USER_DYNAMIC_LINKER64): Define.
14357 (REG_NAME): Don't undefine.
14358 (MD_UNWIND_SUPPORT): Undefine.
14359 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
14360 (REG_NAME): Don't undefine.
14361 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 14362 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 14363
761c0c6e
JM
143642011-04-11 Joseph Myers <joseph@codesourcery.com>
14365
14366 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
14367 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
14368
26e0228f
XDL
143692011-04-11 Xinliang David Li <davidxl@google.com>
14370
14371 * value-profile.c (check_ic_target): New function.
14372 (gimple_ic_transform): Sanity check indirect call target.
14373 * gimple-low.c (gimple_check_call_args): Interface change.
14374 (gimple_check_call_matching_types): New function.
14375 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
14376
143772011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
14378
14379 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
14380 tree-pretty-print.h & realmpfr.h.
14381
a58dfa49
VM
143822011-04-11 Vladimir Makarov <vmakarov@redhat.com>
14383
14384 PR middle-end/48464
14385 * ira.c (setup_pressure_classes): Fix typo in loop condition.
14386 (setup_allocno_and_important_classes): Ditto.
14387
107fd1c1
JM
143882011-04-11 Joseph Myers <joseph@codesourcery.com>
14389
14390 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
14391 GNU_USER_DYNAMIC_LINKER.
14392 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
14393 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14394 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
14395 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14396 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14397 GNU_USER_TARGET_OS_CPP_BUILTINS.
14398 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
14399 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14400 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14401 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14402 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
14403 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14404 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14405 GNU_USER_TARGET_OS_CPP_BUILTINS.
14406 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14407 GNU_USER_DYNAMIC_LINKER.
14408 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14409 GNU_USER_TARGET_OS_CPP_BUILTINS.
14410 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
14411 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14412 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
14413 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14414 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
14415 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
14416 GNU_USER_DYNAMIC_LINKER64): Remove.
14417 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
14418 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14419 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14420 GNU_USER_DYNAMIC_LINKER.
14421 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14422 GNU_USER_TARGET_OS_CPP_BUILTINS.
14423 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14424 GNU_USER_TARGET_OS_CPP_BUILTINS.
14425 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
14426 to GNU_USER_TARGET_OS_CPP_BUILTINS.
14427 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14428 GNU_USER_TARGET_OS_CPP_BUILTINS.
14429 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
14430 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
14431 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14432 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
14433 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14434 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14435 GNU_USER_DYNAMIC_LINKER.
14436 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14437 GNU_USER_TARGET_OS_CPP_BUILTINS.
14438 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
14439 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14440 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14441 GNU_USER_DYNAMIC_LINKER.
14442 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14443 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14444 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
14445 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14446 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14447 GNU_USER_DYNAMIC_LINKER.
14448 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
14449 GNU_USER_DYNAMIC_LINKERN32.
14450 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
14451 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
14452 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
14453 GNU_USER_DYNAMIC_LINKER32.
14454 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
14455 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14456 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14457 GNU_USER_DYNAMIC_LINKER.
14458 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14459 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14460 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
14461 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 14462 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
14463 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
14464 GNU_USER_DYNAMIC_LINKER32.
14465 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14466 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
14467 GNU_USER_DYNAMIC_LINKER.
14468 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
14469 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14470 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14471 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
14472 GNU_USER_DYNAMIC_LINKER64.
14473 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
14474 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14475 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14476 GNU_USER_DYNAMIC_LINKER.
14477 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
14478 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14479 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14480 GNU_USER_DYNAMIC_LINKER.
14481 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
14482 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14483 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14484 GNU_USER_DYNAMIC_LINKER32.
14485 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14486 GNU_USER_DYNAMIC_LINKER64.
14487 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14488 GNU_USER_DYNAMIC_LINKER64.
14489 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
14490 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14491 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
14492 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 14493 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 14494
e24609cf
JM
144952011-04-11 Joseph Myers <joseph@codesourcery.com>
14496
14497 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
14498 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
14499 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
14500 GNU_USER_DYNAMIC_LINKER.
14501 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14502 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
14503 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
14504 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
14505 GNU_USER_DYNAMIC_LINKER64.
14506 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14507 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
14508 GNU_USER_LINK_EMULATION.
14509 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
14510 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
14511 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
14512 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
14513 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
14514 CPP_SPEC, CC1_SPEC): Remove.
14515 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
14516 (GNU_USER_DYNAMIC_LINKER): Define.
14517 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
14518 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
14519 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
14520 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
14521 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
14522 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
14523 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14524 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
14525 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
14526 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
14527 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
14528 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
14529 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
14530 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
14531 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
14532 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14533 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14534 GNU_USER_DYNAMIC_LINKER.
14535 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14536 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14537 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14538 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14539 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14540 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14541 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
14542 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
14543 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 14544 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 14545
b8ce4e94
KT
145462011-04-11 Kai Tietz <ktietz@redhat.com>
14547
14548 PR target/9601
14549 PR target/11772
14550 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
14551 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
14552 comment.
14553 (ix86_is_msabi_thiscall): Removed.
14554 (ix86_is_type_thiscall): Likewise.
14555 (ix86_get_callcvt): New function.
14556 (ix86_comp_type_attributes): Simplify check.
14557 (ix86_function_regparm): Use ix86_get_callcvt for calling
14558 convention attribute checks.
14559 (ix86_return_pops_args): Likewise.
14560 (ix86_static_chain): Likewise.
14561 (x86_this_parameter): Likewise.
14562 (x86_output_mi_thunk): Likewise.
14563 (ix86_function_type_abi): Optimize check for types without attributes.
14564 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
14565 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
14566 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
14567 by flag-values.
14568 (IX86_BASE_CALLCVT): Helper macro.
14569 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14570 Use ix86_get_callcvt for calling convention attribute checks and avoid
14571 symbol-decoration for stdcall in TARGET_RTD case.
14572 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
14573 Likewise.
14574 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
14575 for declaration.
14576
798dd0ba
UB
145772011-04-11 Uros Bizjak <ubizjak@gmail.com>
14578
14579 * config/i386/sse.md (VI_128): New mode iterator.
14580 (VI12_128): Rename from SSEMODE12.
14581 (VI14_128): Rename from SSEMODE14.
14582 (VI124_128): New mode iterator.
14583 (VI24_128): Rename from SSEMODE248.
14584 (VI248_128): Rename from SSEMODE248.
14585 (SSEMODE124C8): Remove.
14586 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14587 (*sse2_<plusminus_insn><mode>3): Merge with
14588 *avx_<plusminus_insn><mode>3.
14589 (*mulv8hi3): Merge with *avx_mulv8hi3.
14590 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
14591 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
14592 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
14593 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
14594 (ashr<mode>3): Merge with *avx_ashr<mode>3.
14595 (lshr<mode>3): Merge with *avx_lshr<mode>3.
14596 (ashl<mode>3): Merge with *avx_ashl<mode>3.
14597 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
14598 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
14599 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14600 (*<smaxmin:code>v8hi3): Ditto.
14601 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
14602 (*<smaxmin:code>v16qi3): Ditto.
14603 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
14604 (*sse2_eq<mode>3): Ditto.
14605 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
14606 (*sse2_gt<mode>3): Ditto.
14607 (vcondv2di): Split out of vcond<mode>.
14608 (vconduv2di): Split out of vcondu<mode>.
14609
956011be
RG
146102011-04-11 Richard Guenther <rguenther@suse.de>
14611
14612 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
14613 before calling tree_low_cst.
14614
e6313a78
RG
146152011-04-11 Richard Guenther <rguenther@suse.de>
14616
14617 * stor-layout.c (layout_type): Compute all array index size operations
14618 in the original type.
14619 (initialize_sizetypes): Add comment.
14620 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
14621
e69d7376
JM
146222011-04-11 Joseph Myers <joseph@codesourcery.com>
14623
14624 * common.opt (Tbss=, Tdata=, Ttext=): New options.
14625
9f9ebcdf
MJ
146262011-04-11 Martin Jambor <mjambor@suse.cz>
14627
14628 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
14629 of cgraph_node, handle NULL return value.
14630 (cgraph_global_info): Likewise.
14631 (cgraph_rtl_info): Likewise.
14632 * tree-inline.c (estimate_num_insns): Likewise.
14633 * gimplify.c (unshare_body): Likewise.
14634 (unvisit_body): Likewise.
14635 (gimplify_body): Likewise.
14636 * predict.c (optimize_function_for_size_p): Likewise.
14637 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14638 (call_may_clobber_ref_p_1): Likewise.
14639 * varasm.c (function_section_1): Likewise.
14640 (assemble_start_function): Likewise.
14641
581985d7
MJ
146422011-04-11 Martin Jambor <mjambor@suse.cz>
14643
14644 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
14645 of cgraph_node.
14646 * final.c (rest_of_clean_state): Likewise.
14647 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
14648 * passes.c (pass_init_dump_file): Likewise.
14649 (execute_all_ipa_transforms): Likewise.
14650 (function_called_by_processed_nodes_p): Likewise.
14651 * predict.c (maybe_hot_frequency_p): Likewise.
14652 (probably_never_executed_bb_p): Likewise.
14653 (compute_function_frequency): Likewise.
14654 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14655 (unnest_nesting_tree_1): Likewise.
14656 (lower_nested_functions): Likewise.
14657 * tree-optimize.c (execute_fixup_cfg): Likewise.
14658 (tree_rest_of_compilation): Likewise.
14659 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
14660 * tree-sra.c (ipa_early_sra): Likewise.
14661 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
14662 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
14663 * ipa.c (record_cdtor_fn): Likewise.
14664 * ipa-inline.c (cgraph_early_inlining): Likewise.
14665 (compute_inline_parameters_for_current): Likewise.
14666 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14667 * ipa-pure-const.c (local_pure_const): Likewise.
14668 * ipa-split.c (split_function): Likewise.
14669 (execute_split_functions): Likewise.
14670 * cgraphbuild.c (build_cgraph_edges): Likewise.
14671 (rebuild_cgraph_edges): Likewise.
14672 (cgraph_rebuild_references): Likewise.
14673 (remove_cgraph_callee_edges): Likewise.
14674 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
14675 (verify_cgraph_node): Likewise.
14676 (cgraph_analyze_functions): Likewise.
14677 (cgraph_preserve_function_body_p): Likewise.
14678 (save_inline_function_body): Likewise.
14679 (save_inline_function_body): Likewise.
14680 * tree-inline.c (copy_bb): Likewise.
14681 (optimize_inline_calls): Likewise.
14682
57dbdc5a
MJ
146832011-04-11 Martin Jambor <mjambor@suse.cz>
14684
14685 PR tree-optimization/48195
14686 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
14687 ipa_check_create_edge_args.
14688 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
14689 ipa_check_create_edge_args.
14690 * ipa-inline.c (inline_generate_summary): Do not call
14691 ipa_check_create_node_params and ipa_check_create_edge_args.
14692 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
14693 ipa_check_create_edge_args.
14694
d108e679
AS
146952011-04-09 Anatoly Sokolov <aesok@post.ru>
14696
14697 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
14698 instead of loop.
14699 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
14700 * function.c (record_hard_reg_sets): Likewise.
14701 * ira.c (compute_regs_asm_clobbered): Likewise.
14702 * sched-deps.c (sched_analyze_1): Likewise.
14703 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
14704
3411bc59
XDL
147052011-04-09 Xinliang David Li <davidxl@google.com>
14706
14707 PR tree-optimization/PR48484
14708 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
14709 has_valid_pred lazily
14710
b365495a
DS
147112011-04-09 Duncan Sands <baldrick@free.fr>
14712
14713 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
14714
68bc509a
EB
147152011-04-08 Eric Botcazou <ebotcazou@adacore.com>
14716
14717 * combine.c (combine_validate_cost): Adjust comments. Set registered
14718 cost of I0 to zero at the end, if any.
14719
041e059f
XDL
147202011-04-08 Xinliang David Li <davidxl@google.com>
14721
68bc509a
EB
14722 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
14723 to insane profile data.
041e059f 14724
444b3995
XDL
147252011-04-08 Xinliang David Li <davidxl@google.com>
14726
14727 * ipa-cp.c (ipcp_update_profiling): Correct
14728 negative scale factor due to insane profile data.
14729
6a801cf2
XDL
147302011-04-08 Xinliang David Li <davidxl@google.com>
14731
14732 * final.c (dump_basic_block_info): New function.
14733 (final): Dump basic block.
14734 (final_scan_insn): Remove old dump.
14735
d5f3624e
SK
147362011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
14737
68bc509a
EB
14738 PR target/47829
14739 * config.gcc (i386-*-freebsd): Disable unwind table generation for
14740 crtbegin/crtend.
d5f3624e 14741
42821aff
MM
147422011-04-08 Michael Matz <matz@suse.de>
14743
14744 PR middle-end/48389
14745 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
14746 functions.
14747 (rebuild_jump_labels): Call rebuild_jump_labels_1.
14748 * rtl.h (rebuild_jump_labels_chain): Declare.
14749 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
14750 insns inserted on edges.
14751
ad7be009
JM
147522011-04-08 Joseph Myers <joseph@codesourcery.com>
14753
14754 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
14755 * config/arm/arm-arches.def: New.
14756 * config/arm/arm-opts.h: New.
14757 * config/arm/genopt.sh: New.
14758 * config/arm/arm-tables.opt: New (generated).
14759 * config/arm/arm.c (arm_handle_option, arm_target_help,
14760 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
14761 (all_architectures): Get most table contents from arm-arches.def.
14762 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
14763 arm_selected_tune here.
14764 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
14765 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
14766 (march=, mcpu=, mtune=): Use Enum and Var.
14767 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
14768 (arm.o): Update dependencies.
ecbb6fb7 14769
42821aff 147702011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
14771
14772 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
14773 of header_file.
14774 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
14775 (write_typed_alloc_defns): Likewise.
14776 (main): Calls write_typed_alloc_defns with output_header.
14777
8d189b3f
VM
147782011-04-08 Vladimir Makarov <vmakarov@redhat.com>
14779
68bc509a 14780 PR inline-asm/48435
8d189b3f
VM
14781 * ira-color.c (setup_profitable_hard_regs): Add comments.
14782 Don't take prohibited hard regs into account.
14783 (setup_conflict_profitable_regs): Rename to
14784 get_conflict_profitable_regs.
14785 (check_hard_reg_p): Check prohibited hard regs.
14786
44f370bf
NF
147872011-04-08 Nathan Froyd <froydnj@codesourcery.com>
14788
14789 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
14790 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
14791 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
14792
483d7ad3
JDA
147932011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14794
14795 PR target/48366
14796 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 14797 move from floating point to shift amount register.
483d7ad3
JDA
14798 (emit_move_sequence): Remove secondary reload support for floating
14799 point to shift amount amount register copies.
14800 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
14801 amount register copies.
14802 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
14803 register, return false if mode isn't a scalar integer mode.
14804 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
14805
97e03fa1
RG
148062011-04-08 Richard Guenther <rguenther@suse.de>
14807
14808 * gimple.c (gimple_call_flags): Remove kludge.
14809
9d40778b
AM
148102011-04-08 Alexander Monakov <amonakov@ispras.ru>
14811
14812 * sel-sched.c (sel_region_init): Move call to
14813 sel_setup_region_sched_flags after setup_current_loop_nest.
14814
19ac7892
AB
148152011-04-08 Andrey Belevantsev <abel@ispras.ru>
14816
14817 PR rtl-optimization/48272
19ac7892
AB
14818 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
14819 init_insn_reg_pressure_info. Adjust a caller.
14820 * sched-int.h (init_insn_reg_pressure_info): Declare.
14821 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
14822 when sched-pressure is enabled.
14823
0f8c63cc
RG
148242011-04-08 Richard Guenther <rguenther@suse.de>
14825
14826 * gimple.c (gimple_set_modified): Do not queue calls to
14827 MODIFIED_NORETURN_CALLS here ...
14828 * tree-ssa-operands.c (update_stmt_operands): ... but here.
14829
5e5a425e
RG
148302011-04-08 Richard Guenther <rguenther@suse.de>
14831
14832 PR lto/48467
14833 * toplev.c (lang_dependent_init): Do not open asm_out_file
14834 in WPA mode, nor perform debug machinery initialization.
14835 (finalize): Do not unlink asm_out_file in WPA mode.
14836
9bfc434b
RG
148372011-04-08 Richard Guenther <rguenther@suse.de>
14838
14839 * gimple.h (gimple_call_fntype): New function.
14840 (gimple_call_return_type): Use it.
14841 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
14842 * gimple-low.c (gimple_check_call_args): Likewise.
14843 * gimple.c (gimple_call_flags): Likewise.
14844 (gimple_call_arg_flags): Likewise.
14845 (gimple_call_return_flags): Likewise.
14846 * tree-cfg.c (verify_gimple_call): Likewise.
14847 (do_warn_unused_result): Likewise.
14848 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
14849 * value-prof.c (gimple_ic_transform): Fix fndecl check.
14850
7c1f0b40
DM
148512011-04-08 Dmitry Melnik <dm@ispras.ru>
14852
14853 PR rtl-optimization/48235
14854 * sel-sched.c (code_motion_process_successors): Recompute the last
14855 insn in basic block if control flow changed.
14856 (code_motion_path_driver): Ditto. Recompute the first insn as well.
14857 Update condition for ilist_remove.
14858
ea4d630f
AM
148592011-04-08 Alexander Monakov <amonakov@ispras.ru>
14860
14861 PR rtl-optimization/48302
14862 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
14863 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
14864 it to record added preheader blocks.
14865 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
14866 on to sel_add_loop_preheaders.
14867 (sel_region_init): Move call to setup_current_loop_nest after
14868 sel_init_bbs.
14869
07643d76
AM
148702011-04-08 Alexander Monakov <amonakov@ispras.ru>
14871
14872 PR target/48273
14873 * cfgloop.h (loop_has_exit_edges): New helper.
14874 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
14875 non-clonable.
14876 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
14877 that have no exit edges.
14878
1f3b2b4e
AM
148792011-04-08 Alexander Monakov <amonakov@ispras.ru>
14880
14881 PR rtl-optimization/48442
14882 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
14883 all callers. Adjust assert.
14884
554f1948
JJ
148852011-04-08 Jakub Jelinek <jakub@redhat.com>
14886
14887 PR tree-optimization/48377
14888 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
14889 is_packed to true even for types with smaller TYPE_ALIGN than
14890 TYPE_SIZE.
14891
ddf72388
RG
148922011-04-08 Richard Guenther <rguenther@suse.de>
14893
14894 PR bootstrap/48513
14895 * doc/tm.texi: Re-generate.
14896
0c27e2d8
WG
148972011-04-08 Wei Guozhi <carrot@google.com>
14898
14899 PR target/47855
14900 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
14901 * config/arm/arm.c (arm_attr_length_push_multi): New function.
14902 * config/arm/arm.md (*push_multi): Change the length computation to
14903 call a C function.
14904
07c5f94e
AS
149052011-04-08 Anatoly Sokolov <aesok@post.ru>
14906
14907 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
14908 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
14909 * doc/tm.texi: Regenerate.
14910 * system.h (ASM_OUTPUT_BSS): Poison.
14911 * varasm.c (asm_output_bss): Remove function.
14912 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 14913
07c5f94e
AS
14914 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
14915 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
14916 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
14917 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14918 Likewise.
14919 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14920 Likewise.
14921 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14922 Likewise.
14923 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
14924
5f2c36e1
JM
149252011-04-07 Joseph Myers <joseph@codesourcery.com>
14926
14927 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
14928 EnumValue lines.
14929
39e7722b
JM
149302011-04-07 Joseph Myers <joseph@codesourcery.com>
14931
14932 * config/m68k/m68k.c (m68k_handle_option): Don't handle
14933 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
14934 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
14935 OPT_mcpu32.
14936 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14937 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
14938 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
14939 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
14940 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
14941 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
14942 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14943 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
14944 options. Don't map other m68k options manually. Don't handle
14945 old-style options as canonical.
14946 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 14947 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 14948
cf103ca4
EB
149492011-04-07 Eric Botcazou <ebotcazou@adacore.com>
14950
14951 * basic-block.h (force_nonfallthru): Move to...
14952 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
14953 (force_nonfallthru): ...here.
14954 * cfghooks.c (force_nonfallthru): New function.
14955 * cfgrtl.c (force_nonfallthru): Rename into...
14956 (rtl_force_nonfallthru): ...this.
14957 (commit_one_edge_insertion): Do not set AUX field.
14958 (commit_edge_insertions): Do not discover new basic blocks.
14959 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
14960 (cfg_layout_rtl_cfg_hooks): Likewise.
14961 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
14962 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
14963 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
14964
14431f58
AS
149652011-04-07 Anatoly Sokolov <aesok@post.ru>
14966
14967 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14968 Remove macros.
14969
3729983c
UB
149702011-04-07 Uros Bizjak <ubizjak@gmail.com>
14971
14972 * config/i386/sse.md: Update copyright year.
14973 (avxcvtvecmode): Remove.
14974 (sse_movhlps): Merge with *avx_movhlps.
14975 (sse_movlhps): Merge with *avx_movlhps.
14976 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
14977 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
14978 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
14979 (sse_loadhps): Merge with *avx_loadhps.
14980 (sse_storelps): Merge with *avx_storelps.
14981 (sse_loadlps): Merge with *avx_loadlps.
14982 (sse_movss): Merge with *avx_movss.
14983 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
14984 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
14985 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
14986 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
14987 (vec_set<mode>_0): Ditto.
14988 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
14989 (sse4_1_insertps): Merge with *avx_insertps.
14990 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
14991 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
14992 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
14993 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
14994 (sse2_storehpd): Merge with *avx_storehpd.
14995 (sse2_loadhpd): Merge with *avx_loadhpd.
14996 (sse2_loadlpd): Merge with *avx_loadlpd.
14997 (sse2_movsd): Merge with *avx_movsd.
14998 (*vec_concatv2df): Merge with *vec_concatv2df.
14999
4e626909
JJ
150002011-04-07 Jakub Jelinek <jakub@redhat.com>
15001
15002 PR debug/48343
15003 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 15004 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
15005 (try_combine): Add last_combined_insn parameter, pass it instead of
15006 i3 to propagate_for_debug.
15007
3729983c 150082011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
15009
15010 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
15011 to handle MDR <-> data register transfers.
15012 (movhi_internal): Likewise.
15013
20c03367
AM
150142011-04-07 Alan Modra <amodra@gmail.com>
15015
15016 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
15017 previous stack info.
15018
bf22920b
TV
150192011-04-07 Tom de Vries <tom@codesourcery.com>
15020
15021 PR target/43920
15022 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
15023 flow_find_cross_jump. Swap variables to implement backward replacement.
15024 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
15025
823918ae
TV
150262011-04-07 Tom de Vries <tom@codesourcery.com>
15027
15028 PR target/43920
15029 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
15030 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
15031 and bb2.
15032 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
15033 src1 or src2. Redirect edges to the last basic block. Update
15034 frequency and count on multiple basic blocks in case of fallthru.
823918ae 15035
472c95f5
TV
150362011-04-07 Tom de Vries <tom@codesourcery.com>
15037
15038 PR target/43920
15039 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
15040 function.
3729983c
UB
15041 (old_insns_match_p): Change return type. Replace return false/true
15042 with return dir_none/dir_both. Use can_replace_by.
15043 (flow_find_cross_jump): Add dir_p parameter. Init replacement
15044 direction from dir_p. Register replacement direction in dir, last_dir
15045 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
15046 merge_dir. Return replacement direction in dir_p.
15047 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
15048 return type of old_insns_match_p.
15049 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
15050 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
15051 flow_find_cross_jump.
15052 * basic-block.h (enum replace_direction): New type.
15053 (flow_find_cross_jump): Add parameter to declaration.
15054
a95d4000
UB
150552011-04-06 Uros Bizjak <ubizjak@gmail.com>
15056
15057 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
15058 (AVXMODEDCVTPS2DQ): Ditto.
15059 (VEC_FLOAT_MODE): Ditto.
15060 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
15061 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15062 (<any_logic:code><mode>3): Use VF mode iterator.
15063 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
15064 Use VF mode iterator.
15065 (copysign<mode>3): Use VF mode iterator.
15066 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
15067 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15068 (*<any_logic:code><MODEF:mode>3): Merge with
15069 *avx_<any_logic:code><MODEF:mode>3.
15070 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
15071 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
15072 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
15073 (avx_cvtdq2ps<avxmodesuffix>): Remove.
15074 (sse2_cvtdq2ps): Use %v modifier.
15075 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
15076 (avx_cvtps2dq<avxmodesuffix>): Remove.
15077 (sse2_cvtps2dq): Use %v modifier.
15078 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
15079 (avx_cvttps2dq<avxmodesuffix>): Remove.
15080 (sse2_cvttps2dq): Use %v modifier.
15081 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
15082 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
15083 (sse2_cvtsd2siq): Fix insn template.
15084 (sse2_cvtsd2siq_2): Ditto.
15085 (sse2_cvttsd2siq): Ditto.
15086 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
15087 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
15088
ad01c437
JM
150892011-04-06 Joseph Myers <joseph@codesourcery.com>
15090
15091 * gcov-io.c: Use GCC Runtime Library Exception.
15092
fe846284
JJ
150932011-04-06 Jakub Jelinek <jakub@redhat.com>
15094
15095 PR debug/48466
15096 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
15097 as base_reg whatever register reg has been eliminated to, instead
15098 of hardcoding STACK_POINTER_REGNUM.
15099
acce4e77
JM
151002011-04-06 Joseph Myers <joseph@codesourcery.com>
15101
15102 * doc/tm.texi.in: Document C target hooks as separate from general
15103 target hooks.
15104 * doc/tm.texi: Regenerate.
15105 * genhooks.c (struct hook_desc): Add docname field.
15106 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
15107 docname field.
15108 (hook_array): Include c-target.def.
15109 (emit_documentation): Use docname field in output.
15110 (emit_init_macros): Take docname argument. Only emit definitions
15111 for hooks matching docname.
15112 (main): Expect additional arguments in all cases. Pass argument
15113 to emit_init_macros.
15114 * target.def: Move initial macro definitions and comments to
15115 target-hooks-macros.h.
15116 (gcc_targetcm): Move to c-family/c-target.def.
15117 * target.h (targetcm): Move declaration to c-family/c-target.h.
15118 * targhooks.c (default_handle_c_option): Move to
15119 c-family/c-opts.c.
15120 * targhooks.h (default_handle_c_option): Move declaration to
15121 c-family/c-common.h.
15122 * target-hooks-macros.h: New file.
15123 * config.gcc (target_has_targetcm): Define and use to add to
15124 c_target_objs and cxx_target_objs.
15125 * config/default-c.c: New file.
15126 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
15127 of target.h and target-def.h.
15128 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
15129 (darwin_objc_construct_string, darwin_cfstring_ref_p,
15130 darwin_check_cfstring_format_arg): Make static.
15131 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15132 TARGET_STRING_OBJECT_REF_TYPE_P,
15133 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
15134 * config/darwin-protos.h (darwin_objc_construct_string,
15135 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
15136 declare.
15137 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15138 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 15139 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
15140 * config/t-darwin (darwin-c.o): Update dependencies.
15141 * system.h (TARGET_HAS_TARGETCM): Poison.
15142 * Makefile.in (TARGET_H): Update.
15143 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
15144 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
15145 (default-c.o): New target.
15146 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 15147 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
15148 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
15149 c-target.def.
15150 (build/genhooks.o): Update dependencies.
15151
275b4baa 151522011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 15153
275b4baa
RG
15154 * ipa-inline.c (enum inlining_mode): Remove.
15155 (cgraph_flatten): Use some other token.
15156 (cgraph_edge_early_inlinable_p): New function, split out from ...
15157 (cgraph_perform_always_inlining): New function, split out from ...
15158 (cgraph_decide_inlining_incrementally): ... here.
15159 (cgraph_mark_inline_edge): Adjust.
15160 (cgraph_early_inlining): Re-structure.
15161 (pass_early_inline): Require SSA form.
15162
f15b8bdf 151632011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
15164 Julian Brown <julian@codesourcery.com>
15165 Mark Shinwell <shinwell@codesourcery.com>
15166
15167 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
15168 LO_REGS only for Thumb-1.
15169 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
15170 be used in short instructions when optimising for size on Thumb-2.
15171
516426da
EB
151722011-04-06 Eric Botcazou <ebotcazou@adacore.com>
15173
15174 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
15175 associated with user returns to be preserved.
15176
96621ebf
TG
151772011-04-06 Tristan Gingold <gingold@adacore.com>
15178
f15b8bdf
EB
15179 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
15180 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
15181 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
15182 if XCOFF_DEBUGGING_INFO.
15183
07c0852e
UB
151842011-04-06 Uros Bizjak <ubizjak@gmail.com>
15185
15186 * config/i386/i386.md (attribute isa): New.
15187 (attribute enabled): New.
15188 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
15189 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
15190 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
15191 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
15192 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
15193 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15194 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
15195 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
15196
15197 * config/i386/sse.md (VF): New mode iterator.
15198 (VF1): Ditto.
15199 (VF2): Ditto.
15200 (VF_128): Ditto.
15201 (SSEMODEF4): Remove.
15202 (attribute sse): Handle V8SF and V4DF modes.
15203 (<absneg:code><mode>2): Use VF mode iterator.
15204 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
15205 mode iterator.
15206 (<plusminus_insn><mode>3): Use VF mode iterator.
15207 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15208 Use VF mode iterator.
15209 (<sse>_vm<plusminus_insn><mode>3): Merge with
15210 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
15211 (mul<mode>3): Use VF mode iterator.
15212 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
15213 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
15214 mode iterator.
15215 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
15216 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
15217 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
15218 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
15219 mode iterator.
15220 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
15221 Use VF1 mode iterator.
15222 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
15223 (sqrt<VF2:mode>2): New expander.
15224 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
15225 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
15226 and sqrtv2df2. Use VF mode iterator.
15227 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
15228 mode iterator.
15229 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
15230 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
15231 Use VF1 mode iterator.
15232 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
15233 (<smaxmin:code><mode>3): Use VF mode iterator.
15234 (*<smaxmin:code><mode>3_finite): Merge with
15235 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
15236 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15237 (<sse>_vm<smaxmin:code><mode>2): Merge with
15238 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
15239 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
15240 mode iterator.
15241 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
15242 mode iterator.
15243 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
15244 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
15245 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
15246 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
15247 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
15248 VF mode iterator.
15249 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
15250 Use VF_128 mode iterator.
15251 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
15252 mode iterator.
15253 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
15254 VF_128 mode iterator.
15255 (vcond<mode>): Use VF mode iterator.
15256 * config/i386/predicates.md (sse_comparison_operator): Merge with
15257 avx_comparison_float_operator. Do not declare as special_predicate.
15258 * config/i386/i386.c (struct builtin_description): Update for renamed
15259 compare patterns.
15260 (ix86_expand_args_builtin): Ditto.
15261 (ix86_expand_sse_compare_mask): Ditto.
15262
ff5d142c
RG
152632011-04-06 Richard Guenther <rguenther@suse.de>
15264
15265 * tree-inline.c (estimate_num_insns): For calls simply account
15266 for all passed arguments and a used return value.
15267
d7d1d041 152682011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 15269
d7d1d041
RG
15270 PR tree-optimization/47663
15271 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
15272 call_stmt_time fields.
15273 (cgraph_edge_inlinable_p): Declare.
15274 (cgraph_edge_recursive_p): New inline function.
15275 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
15276 (cgraph_clone_edge): Copy it.
15277 * ipa-inline.c (cgraph_estimate_edge_time): New function.
15278 Account for call stmt time.
15279 (cgraph_estimate_time_after_inlining): Take edge argument.
15280 (cgraph_estimate_edge_growth): Account call stmt size.
15281 (cgraph_estimate_size_after_inlining): Take edge argument.
15282 (cgraph_mark_inline_edge): Adjust.
15283 (cgraph_check_inline_limits): Likewise.
15284 (cgraph_recursive_inlining_p): Remove.
15285 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
15286 (cgraph_decide_recursive_inlining): Take edge argument and
15287 adjust.
15288 (cgraph_decide_inlining_of_small_functions): Do not avoid
15289 diags for recursive inlining here.
15290 (cgraph_flatten): Adjust.
15291 (cgraph_decide_inlining_incrementally): Likewise.
15292 (estimate_function_body_sizes): Remove call cost handling.
15293 (compute_inline_parameters): Initialize caller edge call costs.
15294 (cgraph_estimate_edge_growth): New function.
15295 (cgraph_estimate_growth): Use it.
15296 (cgraph_edge_badness): Likewise.
15297 (cgraph_check_inline_limits): Take an edge argument.
15298 (cgraph_decide_inlining_of_small_functions): Adjust.
15299 (cgraph_decide_inlining): Likewise.
15300 * tree-inline.c (estimate_num_insns): Only account for call
15301 return value if it is used.
15302 (expand_call_inline): Avoid diagnostics on recursive inline
15303 functions here.
15304 * lto-cgraph.c (lto_output_edge): Output edge call costs.
15305 (input_edge): Input edge call costs.
15306
2feb95f7
RO
153072011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15308
15309 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
15310
26fbd9c2
JW
153112011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
15312
15313 * doc/invoke.texi (Spec Files): Fix typo.
15314
694dc0ca
EB
153152011-04-06 Eric Botcazou <ebotcazou@adacore.com>
15316
15317 * profile.c (branch_prob): Move declaration of local variable. Remove
15318 obsolete ??? comment. Expand the location explicitly instead of using
15319 the LOCATION_FILE and LOCATION_LINE macros.
15320
4925d0d5
WG
153212011-04-06 Wei Guozhi <carrot@google.com>
15322
15323 PR target/47855
15324 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
15325 (arm_cond_branch): Likewise.
15326 (arm_cond_branch_reversed): Likewise.
15327 (arm_jump): Likewise.
15328 (push_multi): Likewise.
15329 * config/arm/constraints.md (Py): New constraint.
15330
f55dfa2f
NF
153312011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15332
15333 PR bootstrap/48471
15334 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
15335 Move these...
15336 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
15337 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
15338 #ifdef DBX_DEBUGGING_INFO.
15339
fca96842
BS
153402011-04-05 Bernd Schmidt <bernds@codesourcery.com>
15341
15342 PR bootstrap/48403
15343 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
15344 if old and new states differ.
15345
30b83e38
JM
153462011-04-05 Joseph Myers <joseph@codesourcery.com>
15347
15348 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
15349 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
15350 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15351 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
15352 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
15353 mcfv4e): Use Alias.
15354 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
15355 ColdFire options to -mcpu= options.
15356
277a9aa5
JL
153572011-04-05 Jeff Law <law@redhat.com>
15358
15359 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
15360 check if BB is a successor of LOOP->header and return
15361 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
15362
c1e2610e
SB
153632011-04-05 Steven Bosscher <steven@gcc.gnu.org>
15364
15365 * cprop.c (struct reg_use): Remove.
15366 (reg_use_table): Make an array of RTX.
15367 (find_used_regs, constprop_register, local_cprop_pass,
15368 bypass_block): Simplify users of reg_use_table.
15369 (cprop_insn): Likewise. Iterate if copy propagation succeeded
15370 on one of the uses found by find_used_regs.
15371
e532f586
NF
153722011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15373
15374 PR bootstrap/48469
15375 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
15376 declaration.
15377
3fb7c055
NF
153782011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15379
15380 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
15381 as an rtx.
15382 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
15383
b71b43d9
SB
153842011-04-05 Steven Bosscher <steven@gcc.gnu.org>
15385
15386 PR middle-end/48441
15387 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
15388
b405b274
NF
153892011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15390
15391 * combine.c: Include obstack.h.
15392 (struct insn_link): Define.
15393 (uid_log_links): Adjust type.
15394 (FOR_EACH_LOG_LINK): New macro.
15395 (insn_link_obstack): Declare.
15396 (alloc_insn_link): Define.
15397 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
15398 type of link variables.
15399 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
15400 (try_combine, record_promoted_values, distribute_notes): Likewise.
15401 (distribute_links): Likewise. Tweak prototype.
15402 (clear_log_links): Delete.
15403 (adjust_for_new_dest): Call alloc_insn_link.
15404 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
15405
6409abe3
NF
154062011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15407
15408 * gcse.c (modify_mem_list): Convert to an array of VECs.
15409 (canon_modify_mem_list, compute_transp): Tweak formatting.
15410 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
15411 (load_killed_in_block_p): Likewise.
15412 (record_last_mem_set_info): Likewise.
15413 (clear_modify_mem_tables): Likewise.
15414
170d8157
TV
154152011-04-05 Tom de Vries <tom@codesourcery.com>
15416
15417 PR middle-end/48461
15418 * function.c (emit_use_return_register_into_block): Only define if
15419 HAVE_return.
15420
c5911a55
EB
154212011-04-05 Eric Botcazou <ebotcazou@adacore.com>
15422
15423 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
15424
abd016e6
JM
154252011-04-05 Joseph Myers <joseph@codesourcery.com>
15426
15427 * config/rx/rx-opts.h: New.
15428 * config/rx/rx.c (rx_cpu_type): Remove.
15429 (rx_handle_option): Don't assert that global structures are in
15430 use. Access variables via opts pointer. Defer most handling of
15431 OPT_mint_register_. Use error_at.
15432 (rx_option_override): Handle deferred OPT_mint_register_ here.
15433 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
15434 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
15435 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
15436 (rx_cpu_types): New Enum and EnumValue entries.
15437 (mint-register=): Use Defer and use Var accordingly.
15438
1ed13f83
NF
154392011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15440
15441 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
15442 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
15443 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
15444 Move these...
15445 (debug_free_queue, debug_nesting, symbol_queue_index):
15446 ...and these...
15447 * dbxout.c: ...to here. Make static.
15448
6ce1edcf
NF
154492011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15450
15451 * gcse.c (modify_pair): Define. Define a VEC of it.
15452 (canon_modify_mem_list): Convert to an array of VECs.
15453 (free_insn_expr_list_list): Delete.
15454 (clear_modify_mem_tables): Call VEC_free instead.
15455 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
15456 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
15457 (canon_list_insert, compute_transp): Likewise.
15458
c201ac94
TV
154592011-04-05 Tom de Vries <tom@codesourcery.com>
15460
15461 PR target/43920
15462 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
15463 for size.
15464
4c029f40
TV
154652011-04-05 Tom de Vries <tom@codesourcery.com>
15466
15467 PR target/43920
15468 * function.c (emit_use_return_register_into_block): New function.
15469 (thread_prologue_and_epilogue_insns): Use
15470 emit_use_return_register_into_block.
15471
2a562b0a
TV
154722011-04-05 Tom de Vries <tom@codesourcery.com>
15473
15474 PR target/43920
15475 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
15476 insn.
15477
0248bceb
TV
154782011-04-05 Tom de Vries <tom@codesourcery.com>
15479
15480 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
15481
ffa94123
YZ
154822011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
15483
798dd0ba
UB
15484 * config/arm/arm.md (define_constants for unspec): Replace with
15485 define_c_enum.
15486 (define_constants for unspecv): Replace with define_c_enum.
15487 * config/arm/neon.md (define_constants for unspec): Replace with
15488 define_c_enum.
ffa94123 15489
3b8f9b46
RH
154902011-04-04 Richard Henderson <rth@redhat.com>
15491
720cf80f 15492 PR bootstrap/48400
3b8f9b46
RH
15493 * dwarf2out.c (output_line_info): Always emit line info from
15494 at least one section.
15495 (dwarf2out_init): Create text_section_line_info here ...
15496 (set_cur_line_info_table): ... not here.
15497
720cf80f 154982011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
15499
15500 PR target/48380
15501 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 15502 not called.
e5b0e1ca 15503
720cf80f 15504 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 15505
196565d4
SB
155062011-04-04 Steven Bosscher <steven@gcc.gnu.org>
15507
b77f9eab
SB
15508 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
15509 (expr_equiv_p): Remove.
15510 (insert_set_in_table): Look at <dest, src> pair instead of expr.
15511 (hash_scan_set): Update call to insert_set_in_table.
15512 (dump_hash_table): Dump <dest, src> pair.
15513 (lookup_set): Simplify. Lookup <dest, src> pair.
15514 (compute_transp): Remove, fold heavily simplified code into...
15515 (compute_local_properties): ...here. Expect COMP and TRANSP
15516 unconditionally.
15517 (find_avail_set): Take set directly from struct expr.
15518 (find_bypass-set): Likewise.
15519 (bypass_block): Likewise.
15520 (cprop_insn): Likewise. Remove redundant INSN_P test.
15521
384d7a55
SB
15522 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
15523 checks on form of COND from find_implicit_sets to here.
15524 (find_implicit_sets): Cleanup control flow. Split critical edges
15525 if it exposes implicit sets. Allocate/resize implicit_sets as
15526 necessary.
15527 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
15528 changed something. Run df_analyze after find_implicit_sets if any
15529 edges were split. Do not allocate implicit_sets here.
15530
3084ce69
SB
15531 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
15532 (gcse_obstack): Renamed to cprop_obstack.
15533 (GNEW, GNEWVEC, GNEWVAR): Remove.
15534 (gmalloc): Remove.
15535 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
15536 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
15537 (gcse_alloc): Likewise, and rename to cprop_alloc.
15538 (alloc_gcse_men, free_gcse_mem): Remove.
15539 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
15540 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
15541 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
15542
196565d4
SB
15543 * cprop.c (oprs_not_set_p): Remove.
15544 (mark_set, mark_clobber): Remove.
15545 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
15546 (reg_not_set_p): New function.
15547 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
15548 (cprop_insn): Likewise.
15549 (cprop_jump): Use FOR_EACH_EDGE.
15550
9b69cf83
BS
155512011-04-04 Bernd Schmidt <bernds@codesourcery.com>
15552
15553 PR bootstrap/48403
15554 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
15555 (rank_for_schedule): Use scheduled_insns vector instead of
15556 last_scheduled_insn.
15557 (ok_for_early_queue_removal): Likewise.
15558 (queue_to_ready): Search forward in nonscheduled_insns_begin if
15559 we have a dbg_cnt.
15560 (choose_ready): Likewise.
15561 (commit_schedule): Use VEC_iterate.
15562 (schedule_block): Initialize nonscheduled_insns_begin. If we have
15563 a dbg_cnt, use it and ensure the first insn is in the ready list.
15564 (haifa_sched_init): Allocate scheduled_insns.
15565 (sched_extend_ready_list): Don't allocate it; reserve space.
15566 (haifa_sched_finish): Free it.
15567
24f48c2f
JM
155682011-04-04 Joseph Myers <joseph@codesourcery.com>
15569
15570 * optc-gen.awk: Always remove type from Variable entry before
15571 recording in var_seen.
15572
8effe856
EB
155732011-04-04 Eric Botcazou <ebotcazou@adacore.com>
15574
15575 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
15576 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
15577 call to tidy_fallthru_edges.
15578
413519ae
JM
155792011-04-04 Joseph Myers <joseph@codesourcery.com>
15580
15581 * doc/options.texi (ToLower): Document.
3729983c 15582 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
15583 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
15584 * opts.h (cl_option): Add cl_tolower field.
15585 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
15586 arguments with lowercase strings.
15587 * config/rx/rx.opt (mcpu=): Add ToLower.
15588 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
15589 argument.
15590
7d34a1b0
RS
155912011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
15592
15593 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
15594
c30e7434
RS
155952011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
15596
15597 * config/vax/vax.c: Include reload.h.
15598
112a861d
AS
155992011-04-04 Anatoly Sokolov <aesok@post.ru>
15600
15601 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
15602 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
15603 (sparc_preferred_reload_class): New function.
15604
e8c6bb74
JJ
156052011-04-04 Jakub Jelinek <jakub@redhat.com>
15606
2aeaa366 15607 PR debug/48401
e8c6bb74
JJ
15608 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15609 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
15610
2c081caf
NF
156112011-04-03 Nathan Froyd <froydnj@codesourcery.com>
15612
15613 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
15614 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
15615
53802f27
AS
156162011-04-03 Anatoly Sokolov <aesok@post.ru>
15617
15618 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
15619 (ASM_OUTPUT_ALIGNED_BSS): Define.
15620
e89964e3
MM
156212011-04-03 Michael Matz <matz@suse.de>
15622
15623 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
15624 and next_slot members.
15625 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
15626 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
15627 (lto_streamer_cache_append): Declare.
15628 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
15629 unsigned index, remove offset parameter, ensure that we append
15630 or update existing entries.
15631 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
15632 parameter, update next_slot for append.
15633 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
15634 parameter.
15635 (lto_streamer_cache_insert_at): Likewise.
15636 (lto_streamer_cache_append): New function.
15637 (lto_streamer_cache_lookup): Use unsigned index.
15638 (lto_streamer_cache_get): Likewise.
15639 (lto_record_common_node): Don't test tree_node_can_be_shared.
15640 (preload_common_node): Adjust call to lto_streamer_cache_insert.
15641 (lto_streamer_cache_delete): Don't free offsets member.
15642 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
15643 (lto_output_string_with_length): Use lto_output_data_stream.
15644 (lto_output_tree_header): Remove ix parameter, don't write it.
15645 (lto_output_builtin_tree): Likewise.
15646 (lto_write_tree): Adjust callers to above, don't track and write
15647 offset, write unsigned index.
15648 (output_unreferenced_globals): Don't emit all global vars.
15649 (write_global_references): Use unsigned indices.
15650 (lto_output_decl_state_refs): Likewise.
15651 (write_symbol): Likewise.
15652 * lto-streamer-in.c (lto_input_chain): Move earlier.
15653 (input_function): Use unsigned index.
15654 (input_alias_pairs): Don't read and then ignore all global vars.
15655 (lto_materialize_tree): Remove ix_p parameter, don't read index,
15656 don't pass it back, use lto_streamer_cache_append.
15657 (lto_register_var_decl_in_symtab): Use unsigned index.
15658 (lto_register_function_decl_in_symtab): Likewise.
15659 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
15660 index.
15661 (lto_get_builtin_tree): Don't read index, use
15662 lto_streamer_cache_append.
15663 (lto_read_tree): Adjust call to lto_materialize_tree.
15664
15665 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
15666 don't use function calls in arguments to MIN.
15667
15668 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
15669 twice.
15670
15671 * gimple.c (gimple_type_leader_entry): Mark deletable.
15672
b9a5b5b2
AM
156732011-04-03 Alan Modra <amodra@gmail.com>
15674
15675 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
15676
ac6a641b
MM
156772011-04-03 Michael Matz <matz@suse.de>
15678
15679 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
15680 an integer.
15681 * tree.h (tree_decl_non_common.vindex): Adjust comment.
15682
0038d4e0
MM
156832011-04-03 Michael Matz <matz@suse.de>
15684
e9c18386 15685 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
15686 * gimple-fold.c (canonicalize_constructor_val): Accept being called
15687 without function context.
15688 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
15689 current_function_decl and cfun.
15690
91f2fae8
MM
156912011-04-03 Michael Matz <matz@suse.de>
15692
15693 * tree.c (decl_init_priority_insert): Don't create entry for
15694 default priority.
15695 (decl_fini_priority_insert): Ditto.
15696 (fields_compatible_p, find_compatible_field): Remove.
15697 * tree.h (fields_compatible_p, find_compatible_field): Remove.
15698 * gimple.c (gimple_compare_field_offset): Adjust block comment.
15699
da29e070
EB
157002011-04-03 Eric Botcazou <ebotcazou@adacore.com>
15701
15702 * combine.c (try_combine): Remove useless local variable.
15703
4979c28b 157042011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 15705 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
15706
15707 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
15708 non-variable offsets and compare the remaining bases of the two
15709 accesses instead of looking for exact same data-ref.
15710
b4ddcaee
KT
157112011-04-02 Kai Tietz <ktietz@redhat.com>
15712
f90298e1
KT
15713 PR target/48416
15714 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
15715
b4ddcaee
KT
15716 * i386.c (ix86_is_msabi_thiscall): New helper function.
15717 (ix86_is_type_thiscall): New helper function.
15718 (ix86_comp_type_attributes): Handle thiscall for method-functions
15719 special.
15720 (init_cumulative_args): Likewise.
15721 (find_drap_reg): Likewise.
15722 (ix86_static_chain): Likewise.
15723 (x86_this_parameter): Likewise.
15724 (x86_output_mi_thunk): Likewise.
15725
2a9d769a 157262011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
15727 Nicolas Setton <setton@adacore.com>
15728 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
15729
15730 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
15731 (add_gnat_descriptive_type_attribute): New function.
15732 (gen_array_type_die): Call it.
15733 (gen_enumeration_type_die): Likewise.
15734 (gen_struct_or_union_type_die): Likewise.
15735 (modified_type_die): Likewise.
15736 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
15737 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
15738 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
15739
15a03a11
JJ
157402011-04-01 Jakub Jelinek <jakub@redhat.com>
15741
15742 PR bootstrap/48148
15743 * dwarf2out.c (resolve_addr): Don't call force_decl_die
15744 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
15745
15746 Revert:
15747 2011-03-17 Richard Guenther <rguenther@suse.de>
15748
15749 PR bootstrap/48148
15750 * lto-cgraph.c (input_overwrite_node): Clear the abstract
15751 origin for decls in other ltrans units.
15752 (input_varpool_node): Likewise.
15753
19228b93
JJ
157542011-04-01 Jakub Jelinek <jakub@redhat.com>
15755
15756 PR middle-end/48335
15757 * expr.c (expand_assignment): Handle all possibilities
15758 if TO_RTX is CONCAT.
e9c18386 15759 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
15760 (store_split_bit_field): If SUBREG_REG (op0) or
15761 op0 itself has smaller mode than word, return it
15762 for offset 0 and const0_rtx for out-of-bounds stores.
15763 If word is const0_rtx, skip it.
15764
88cb339e
N
157652011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
15766
15767 * config/h8300/h8300.c (print_operand_address): Rename to...
15768 (h8300_print_operand_address): ...this. Make static. Adjust comments.
15769 Call h8300_print_operand and h8300_print_operand_address instead of
15770 print_operand and print_operand_address. Declare.
15771 (print_operand): Renake to...
15772 (h8300_print_operand): ...this. Make static. Adjust comments.
15773 Call h8300_print_operand instead of print_operand. Declare.
15774 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
15775 (h8300_register_move_cost): Likewise.
15776 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
15777 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
15778 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
15779 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
15780 * config/h8300/h8300-protos.h (print_operand): Delete.
15781 (print_operand_address): Delete.
15782
756d6ee9
RH
157832011-04-01 Richard Henderson <rth@redhat.com>
15784
15785 PR 48400
15786 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
15787 in strict mode before dwarf4. Re-order tests to early out
15788 before switching sections.
15789
ceaaaeab
NF
157902011-04-01 Nathan Froyd <froydnj@codesourcery.com>
15791
15792 * config/h8300/constraints.md: New file.
15793 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
15794 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
15795 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
15796 * config/h8300/predicates.md (bit_operand): Likewise.
15797 (incdec_operand): Use satisfies_constraint_M and
15798 satisfies_constraint_O. Don't use C code block.
15799 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
15800 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
15801 (compute_mov_length): Use satisfies_constraint_G.
15802 (fix_bit_operand): Use satisfies_constraint_U.
15803 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
15804 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
15805 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
15806 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
15807 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
15808 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
15809 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15810 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
15811 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
15812 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
15813 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
15814 (EXTRA_MEMORY_CONSTRAINT): Delete.
15815
08ae38e0
AP
158162011-04-01 Andrew Pinski <pinskia@gmail.com>
15817 Michael Meissner <meissner@linux.vnet.ibm.com>
15818
15819 PR target/48262
15820 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
15821 operands, as per the specifications.
15822
15823 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
15824 (vec_extract_evenv4sf): Ditto.
15825 (vec_extract_evenv8hi): Ditto.
15826 (vec_extract_evenv16qi): Ditto.
15827 (vec_extract_oddv4si): Ditto.
15828
bdb0b0f6
MW
158292011-03-31 Mark Wielaard <mjw@redhat.com>
15830
15831 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
15832 high_pc attribute if the CU has no associated code. Only output
15833 DW_AT_entry_pc for CU if not generating strict dwarf and
15834 dwarf_version < 4.
15835
722279e4
BS
158362011-04-01 Bernd Schmidt <bernds@codesourcery.com>
15837
15838 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
15839 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
15840 out of ...
15841 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
15842 * final.c (final_start_function): Call the new function rather
15843 than using a NULL argument for dwarf2out_frame_debug.
15844
c5dd277d
BS
15845 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
15846 that contains the prologue.
15847
ec4efea9
BS
15848 * haifa-sched.c (queue_insn): New arg REASON. All callers
15849 changed. Print it in debugging output.
15850
2a6a0d80
BS
15851 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
15852
86014d07
BS
15853 * sched-ebb.c (begin_schedule_ready): Remove second argument.
15854 Split most of the code into...
15855 (begin_move_insn): ... here. New function.
15856 (ebb_sched_info): Add a pointer to it.
15857 * haifa-sched.c (scheduled_insns): New static variable.
15858 (sched_extend_ready_list): Allocate it.
15859 (schedule_block): Use it to record the order of scheduled insns.
15860 Perform RTL changes to move insns only after all scheduling
15861 decisions have been made.
15862 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
15863 begin_move_insn field.
15864 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
15865 * sched-int.h (struct haifa_sched_info): Remove second argument
15866 from begin_schedule_ready hook. Add new member begin_move_insn.
15867 * sched-rgn.c (begin_schedule_ready): Remove second argument.
15868 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
15869
9d701248
BS
15870 * haifa-sched.c (prune_ready_list): New function, broken out of
15871 schedule_block.
15872 (schedule_block): Use it.
15873
1ca1dad5
UW
158742011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15875
15876 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
15877
49568e45
KT
158782011-04-01 Kai Tietz <ktietz@redhat.com>
15879
15880 * config.gcc (*-*-mingw*): Allow as option the
15881 posix threading model.
07c0852e 15882 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
15883 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
15884 definition.
15885 (CPP_SPEC): Add pthread/no-pthread handling.
15886 (LIB_SPEC): Likewise.
15887 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
15888 (LIB_SPEC): Likewise.
15889 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
15890 flag to pass -pthread option for shared libgcc build.
15891 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
15892 for shared libgcc build.
15893 * config/i386/t-mingw-pthread: New file.
15894 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
15895 New define to enable use of library pthread by default.
15896 * config/i386/mingw.opt (pthread): New driver option.
15897 (no-pthread): New driver option.
e9c18386 15898 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
15899 * config/i386/mingw-w64.opt: Likewise.
15900
748f7574 159012011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
15902
15903 * c-decl.c (grokdeclarator): Fix formatting.
15904
f04713ee
RS
159052011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15906
15907 * expr.c (emit_block_move_via_movmem): Use n_generator_args
15908 instead of n_operands.
15909 (set_storage_via_setmem): Likewise.
15910 * optabs.c (maybe_gen_insn): Likewise.
15911 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
15912 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
15913 (mips_expand_builtin_direct): Likewise.
15914 * config/spu/spu.c (expand_builtin_args): Likewise.
15915
b29387ee
RS
159162011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15917
15918 * recog.h (insn_data_d): Add n_generator_args.
15919 * genoutput.c (data): Likewise.
15920 (output_insn_data): Print it.
15921 (max_opno, num_dups): Delete.
15922 (scan_operands): Just fill in "d->operand[...]".
15923 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
15924
e792559a
RS
159252011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15926
15927 * gensupport.h (pattern_stats): New structure.
15928 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
15929 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
15930 (max_operand_1, max_operand_vec): Delete.
15931 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
15932
e8110d6f
NF
159332011-03-31 Nathan Froyd <froydnj@codesourcery.com>
15934
15935 * emit-rtl.c (emit_pattern_after_setloc): New function.
15936 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
15937 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
15938 (emit_pattern_after): New function.
15939 (emit_insn_after, emit_jump_insn_after): Call it.
15940 (emit_call_insn_after, emit_debug_insn_after): Likewise.
15941 (emit_pattern_before_setloc): New function.
15942 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
15943 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
15944 Likewise.
15945 (emit_pattern_before): New function.
15946 (emit_insn_before, emit_jump_insn_before): Call it.
15947 (emit_call_insn_before, emit_debug_insn_before): Likewise.
15948
576f85f1
RH
159492011-03-31 Richard Henderson <rth@redhat.com>
15950
15951 * dwarf2out.c (dw_separate_line_info_ref): Remove.
15952 (dw_separate_line_info_entry): Remove.
15953 (enum dw_line_info_opcode): New.
15954 (dw_line_info_entry): Use it.
15955 (dw_line_info_table, dw_line_info_table_p): New.
15956 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
15957 (line_info_table, line_info_label_num): Remove.
15958 (line_info_table_in_use): Remove.
15959 (separate_line_info_table): Remove.
15960 (separate_line_info_table_allocated): Remove.
15961 (separate_line_info_table_in_use): Remove.
15962 (LINE_INFO_TABLE_INCREMENT): Remove.
15963 (line_info_label_num): New.
15964 (cur_line_info_table): New.
15965 (text_section_line_info, cold_text_section_line_info): New.
15966 (separate_line_info): New.
15967 (SEPARATE_LINE_CODE_LABEL): Remove.
15968 (print_dwarf_line_table): Remove.
15969 (debug_dwarf): Don't dump it.
15970 (output_one_line_info_table): New.
15971 (output_line_info): Use it.
15972 (new_line_info_table): New.
15973 (set_cur_line_info_table): New.
15974 (dwarf2out_switch_text_section): Use it.
15975 (dwarf2out_begin_function): Likewise.
15976 (push_dw_line_info_entry): New.
15977 (dwarf2out_source_line): Rewrite for new line info tables.
15978 (dwarf2out_init): Remove dead initailizations.
15979
300d83d9
JM
159802011-03-31 Joseph Myers <joseph@codesourcery.com>
15981
15982 * opts.h (cl_option): Add comments to fields. Add bit-fields for
15983 various flags.
15984 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
15985 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
15986 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
15987 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
15988 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
15989 * opt-functions.awk (flag_init, switch_bit_fields): New.
15990 (switch_flags): Don't handle flags moved to bit-fields. Don't
15991 generate CL_MISSING_OK or CL_SAVE.
15992 * optc-gen.awk: Update to generate bit-field output as well as
15993 flags field.
15994 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
15995 bit-field instead of CL_REJECT_DRIVER flag.
15996 * opts-common.c (generate_canonical_option,
15997 decode_cmdline_option): Use bit-fields instead of CL_* flags.
15998 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
15999 instead of CL_REJECT_NEGATIVE flag.
16000 * toplev.c (print_switch_values): Use cl_report bit-field instead
16001 of CL_REPORT flag.
16002
d4d73ce2
EB
160032011-03-31 Eric Botcazou <ebotcazou@adacore.com>
16004
16005 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
16006 a zero minimum index only if it is redundant.
16007
b8faca75
VM
160082011-03-31 Vladimir Makarov <vmakarov@redhat.com>
16009
16010 PR rtl-optimization/48381
16011 * ira-color.c (assign_hard_reg): Use hard reg set intersection
16012 instead of ira_class_hard_reg_index for calculating conflicting
16013 hard registers.
16014
7d11cebe
SB
160152011-03-31 Steven Bosscher <steven@gcc.gnu.org>
16016
16017 * cprop.c: Clean up hash table building.
16018 (reg_avail_info): Remove.
16019 (oprs_available_p): Remove.
16020 (record_last_reg_set_info): Remove.
16021 (record_last_set_info): Remove.
16022 (reg_available_p): New function.
16023 (gcse_constant_p): Do not treat unfolded conditions as constants.
16024 (make_set_regs_unavailable): New function.
16025 (hash_scan_set): Simplify with new reg_available_p.
16026 (compute_hash_table_work): Traverse insns stream only once.
16027 Do not compute reg_avail_info. Traverse insns in reverse order.
16028 Record implicit sets after recording explicit sets from the block.
16029
98faf84f
MM
160302011-03-31 Michael Matz <matz@suse.de>
16031
e9c18386 16032 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 16033
f52d97da
AS
160342011-03-31 Anatoly Sokolov <aesok@post.ru>
16035
16036 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
16037 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
16038 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16039 (h8300_mode_dependent_address_p): New function.
16040 (h8300_get_index): Make static.
16041
e16b6fd0
JL
160422011-03-31 Jeff Law <law@redhat.com>
16043
10c51983
JL
16044 * reload1.c (elimination_effects): Fix typo in recent change.
16045
e9c18386 16046 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
16047 typo potentially leading to null pointer dereference.
16048
16049 * caller-save.c (new_saved_hard_reg): Eliminate return value.
16050 (setup_save_areas): Corresponding changes to avoid useless
16051 assignments.
16052
16053 * jump.c (reversed_comparison_code_parts): Avoid successive return
16054 statements when REVERSE_CONDITION is defined.
16055
16056 * expr.c (expand_assignment): Avoid useless assignments.
16057 (expand_expr_real_1): Likewise.
16058 (expand_expr_real_2): Avoid useless statements.
16059
16060 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
16061
16062 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
16063
16064 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
16065 statements.
16066
16067 * stmt.c (expand_expr_stmt): Avoid useless assignment.
16068
eb1eb914
JM
160692011-03-31 Joseph Myers <joseph@codesourcery.com>
16070
16071 PR target/47109
16072 * doc/tm.texi.in (TARGET_VERSION): Remove.
16073 * doc/tm.texi: Regenerate.
16074 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
16075 * collect2.c (main): Don't use TARGET_VERSION.
16076 * mips-tdump.c (main): Don't use TARGET_VERSION.
16077 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 16078 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
16079 * config/rs6000/vxworksae.h: Remove.
16080 * config/alpha/alpha.h (TARGET_VERSION): Remove.
16081 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
16082 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
16083 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
16084 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16085 * config/arm/arm.h (TARGET_VERSION): Remove.
16086 * config/arm/coff.h (TARGET_VERSION): Remove.
16087 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
16088 * config/arm/elf.h (TARGET_VERSION): Remove.
16089 * config/arm/freebsd.h (TARGET_VERSION): Remove.
16090 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
16091 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
16092 * config/arm/pe.h (TARGET_VERSION): Remove.
16093 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
16094 * config/arm/semi.h (TARGET_VERSION): Remove.
16095 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
16096 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
16097 * config/arm/vxworks.h (TARGET_VERSION): Remove.
16098 * config/avr/avr.h (TARGET_VERSION): Remove.
16099 * config/bfin/bfin.h (TARGET_VERSION): Remove.
16100 * config/fr30/fr30.h (TARGET_VERSION): Remove.
16101 * config/frv/frv.h (TARGET_VERSION): Remove.
16102 * config/h8300/h8300.h (TARGET_VERSION): Remove.
16103 * config/i386/cygwin.h (TARGET_VERSION): Remove.
16104 * config/i386/darwin.h (TARGET_VERSION): Remove.
16105 * config/i386/darwin64.h (TARGET_VERSION): Remove.
16106 * config/i386/djgpp.h (TARGET_VERSION): Remove.
16107 * config/i386/freebsd.h (TARGET_VERSION): Remove.
16108 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
16109 * config/i386/gnu.h (TARGET_VERSION): Remove.
16110 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
16111 * config/i386/i386elf.h (TARGET_VERSION): Remove.
16112 * config/i386/linux.h (TARGET_VERSION): Remove.
16113 * config/i386/linux64.h (TARGET_VERSION): Remove.
16114 * config/i386/lynx.h (TARGET_VERSION): Remove.
16115 * config/i386/mingw32.h (TARGET_VERSION): Remove.
16116 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
16117 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
16118 * config/i386/netware.h (TARGET_VERSION): Remove.
16119 * config/i386/nto.h (TARGET_VERSION): Remove.
16120 * config/i386/openbsd.h (TARGET_VERSION): Remove.
16121 * config/i386/vxworks.h (TARGET_VERSION): Remove.
16122 * config/ia64/elf.h (TARGET_VERSION): Remove.
16123 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
16124 * config/ia64/hpux.h (TARGET_VERSION): Remove.
16125 * config/ia64/linux.h (TARGET_VERSION): Remove.
16126 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16127 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
16128 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16129 * config/lm32/lm32.h (TARGET_VERSION): Remove.
16130 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
16131 * config/m32c/m32c.h (TARGET_VERSION): Remove.
16132 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
16133 * config/m32r/m32r.h (TARGET_VERSION): Remove.
16134 * config/m68k/linux.h (TARGET_VERSION): Remove.
16135 * config/m68k/m68k.h (TARGET_VERSION): Remove.
16136 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
16137 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
16138 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
16139 * config/mep/mep.h (TARGET_VERSION): Remove.
16140 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
16141 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16142 * config/mips/iris6.h (MACHINE_TYPE): Remove.
16143 * config/mips/linux.h (TARGET_VERSION): Remove.
16144 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
16145 * config/mips/vxworks.h (TARGET_VERSION): Remove.
16146 * config/mmix/mmix.h (TARGET_VERSION): Remove.
16147 * config/mn10300/linux.h (TARGET_VERSION): Remove.
16148 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
16149 * config/pa/pa.h (TARGET_VERSION): Remove.
16150 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
16151 * config/picochip/picochip.h (TARGET_VERSION): Remove.
16152 * config/rs6000/aix.h (TARGET_VERSION): Remove.
16153 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
16154 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
16155 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
16156 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
16157 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
16158 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
16159 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
16160 * config/rs6000/linux.h (TARGET_VERSION): Remove.
16161 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
16162 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
16163 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
16164 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
16165 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
16166 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
16167 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
16168 * config/s390/linux.h (TARGET_VERSION): Remove.
16169 * config/s390/s390.h (TARGET_VERSION): Remove.
16170 * config/s390/tpf.h (TARGET_VERSION): Remove.
16171 * config/score/score.h (TARGET_VERSION): Remove.
16172 * config/sh/linux.h (TARGET_VERSION): Remove.
16173 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
16174 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
16175 * config/sh/sh.h (TARGET_VERSION): Remove.
16176 * config/sh/sh64.h (TARGET_VERSION): Remove.
16177 * config/sh/superh.h (TARGET_VERSION): Remove.
16178 * config/sh/vxworks.h (TARGET_VERSION): Remove.
16179 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
16180 * config/sparc/linux.h (TARGET_VERSION): Remove.
16181 * config/sparc/linux64.h (TARGET_VERSION): Remove.
16182 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
16183 TARGET_NAME32, TARGET_NAME): Remove.
16184 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
16185 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
16186 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
16187 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
16188 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
16189 * config/spu/spu.h (TARGET_VERSION): Remove.
16190 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
16191 * config/v850/v850.h (TARGET_VERSION): Remove.
16192 * config/vax/linux.h (TARGET_VERSION): Remove.
16193 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
16194 * config/xtensa/elf.h (TARGET_VERSION): Remove.
16195 * config/xtensa/linux.h (TARGET_VERSION): Remove.
16196
ace31bca
EB
161972011-03-31 Eric Botcazou <ebotcazou@adacore.com>
16198
16199 PR target/48142
16200 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
16201 frame-related from frame-unrelated adjustments to the stack pointer.
16202
76f9db36
JJ
162032011-03-31 Jakub Jelinek <jakub@redhat.com>
16204
16205 * common.opt (fdebug-types-section): Move earlier.
16206 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
16207
b7826465
AT
162082011-03-31 Andreas Tobler <andreast@fgznet.ch>
16209
16210 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
16211 var.
16212
1290e54c
NF
162132011-03-30 Nathan Froyd <froydnj@codesourcery.com>
16214
16215 * tree.h (CASE_CHAIN): Define.
16216 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
16217 (gimple_redirect_edge_and_branch): Likewise.
16218
bddc98e1
VM
162192011-03-30 Vladimir Makarov <vmakarov@redhat.com>
16220
16221 PR middle-end/48367
16222 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
16223 calculation.
16224
c865e437
JL
162252011-03-30 Jeff Law <law@redhat.com>
16226
b3750213 16227 * PR bootstrap/48371
c865e437
JL
16228 * reload1.c (reload): Fix botch in last change.
16229
16230 * reload.h (struct reload): Fix typo introduced in last change.
16231
2cdf9574
JM
162322011-03-30 Joseph Myers <joseph@codesourcery.com>
16233
16234 * config/arm/arm.opt (mhard-float, msoft-float): Mark
16235 Undocumented. Remove help text.
16236 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
16237 -mhard-float.
16238
666a21a2
JM
162392011-03-30 Joseph Myers <joseph@codesourcery.com>
16240
16241 * doc/options.texi (NegativeAlias): Document.
16242 (Alias): Mention NegativeAlias.
16243 * opt-functions.awk: Handle NegativeAlias.
e9c18386 16244 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
16245 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
16246 * opts.h (CL_NEGATIVE_ALIAS): Define.
16247 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
16248 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
16249 OPT_mspe_.
16250 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
16251 Alias entries.
16252 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
16253 mno-spe and mno-isel instead of mspe=no and -misel=no.
16254
0fa4e351
MW
162552011-03-29 Mark Wielaard <mjw@redhat.com>
16256
16257 * common.opt (fdebug-types-section): New flag.
16258 * doc/invoke.texi: Document new -fno-debug-types-section flag.
16259 * dwarf2out.c (use_debug_types): New define.
16260 (struct die_struct): Mark die_id with GTY desc use_debug_types.
16261 (print_die): Guard output of type unit signatures using
16262 use_debug_types.
16263 (build_abbrev_table): Replace assert of dwarf_version >= 4
16264 with assert on use_debug_types.
16265 (size_of_die): Likewise.
16266 (unmark_dies): Likewise.
16267 (value_format): Decide AT_ref_external form on use_debug_types.
16268 (output_die): Replace dwarf_version version check guard with
16269 use_debug_types where appropriate.
16270 (modified_type_die): Likewise.
16271 (gen_reference_type_die): Likewise.
16272 (dwarf2out_start_source_file): Likewise.
16273 (dwarf2out_end_source_file): Likewise.
16274 (prune_unused_types_walk_attribs): Likewise.
16275 (dwarf2out_finish): Likewise.
16276
4648deb4
VM
162772011-03-30 Vladimir Makarov <vmakarov@redhat.com>
16278
16279 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
16280
4f431835
RS
162812011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16282
16283 PR rtl-optimization/48332
16284 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
16285 mode of input operand N and modeN to its actual mode.
16286
f2034d06
JL
162872011-03-30 Jeff Law <law@redhat.com>
16288
16289 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
16290 define accessor macro.
16291 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
16292 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
16293 (reg_equiv_init): Likewise.
16294 (reg_equivs_size): New variable.
16295 (reg_equiv_init_size): Remove.
16296 (allocate_initial_values): Move prototype to here from....
16297 * integrate.h (allocate_initial_values): Remove prototype.
16298 * integrate.c: Include reload.h.
16299 (allocate_initial_values): Corresponding changes.
16300 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
16301 (fix_reg_equiv_init, no_equiv): Corresponding changes.
16302 (update_equiv_regs): Corresponding changes.
16303 (ira): Corresponding changes.
16304 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
16305 (push_secondary_reload): Corresponding changes.
16306 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
16307 (make_memloc, find_reloads_address): Corresponding changes.
16308 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
16309 (find_reloads_address_1): Corresponding changes.
16310 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
16311 (refers_to_regno_for_reload_p): Corresponding changes.
16312 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
16313 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
16314 * reload1.c: Include ggc.h.
16315 (grow_reg_equivs): New function.
16316 (replace_pseudos_in, reload): Corresponding changes.
16317 (calculate_needs_all_insns, alter_regs): Corresponding changes.
16318 (eliminate_regs_1, elimination_effects): Corresponding changes.
16319 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
16320 (delete_output_reload): Likewise.
16321 * caller-save.c (mark_referenced_regs): Corresponding changes.
16322 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
16323 * frv/predicates.md (frv_load_operand): Corresponding changes.
16324 * microblaze/microblaze.c (double_memory_operand): Corresponding
16325 changes.
16326 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
16327 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 16328 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
16329 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
16330 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
16331 changes.
16332 * pa/pa.c (emit_move_sequence): Corresponding changes.
16333 * vax/vax.c (nonindexed_address_p): Corresponding changes.
16334
159b81b0
RS
163352011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16336
16337 PR target/47551
16338 * config/arm/arm.c (coproc_secondary_reload_class): Handle
16339 structure modes. Don't check neon_vector_mem_operand for
16340 vector or structure modes.
16341
a6217191
RS
163422011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16343 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16344
16345 PR target/43590
16346 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
16347 operand 1 and reshuffle the operands to match.
16348 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
16349
bd837408
CS
163502011-03-30 Christian Schüler <cschueler@gmx.de>
16351
6955d771 16352 PR driver/48208
bd837408 16353 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 16354
6955d771 16355 PR driver/48260
bd837408
CS
16356 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
16357 handler function.
16358 * config/darwin.opt: Added '-arch' option.
16359
e9c0470a
NC
163602011-03-30 Nick Clifton <nickc@redhat.com>
16361
16362 * config/rx/rx.md: Add peepholes and patterns to combine
16363 extending loads and simple arithmetic instructions.
16364 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
16365 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
16366 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 16367 modes to use pre-decrement and post-increment addressing.
e9c18386 16368 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 16369 addresses.
e9c18386
UB
16370 (rx_print_operand): Add support for %Q. Fix handling of %Q.
16371 (rx_memory_move_cost): Adjust cost of stores.
16372 (rx_adjust_insn_length): New function.
e9c0470a 16373
8a87e7ab
JJ
163742011-03-30 Jakub Jelinek <jakub@redhat.com>
16375
16376 PR c/48305
16377 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16378 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
16379 matching arg00/arg01 types.
16380
12486e03
EB
163812011-03-30 Eric Botcazou <ebotcazou@adacore.com>
16382
16383 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
16384 last_location to UNKNOWN_LOCATION.
16385
0b99eef6
L
163862011-03-30 H.J. Lu <hongjiu.lu@intel.com>
16387
16388 PR target/48349
16389 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
16390 FLOAT_SSE_REGS.
16391
023592aa
JM
163922011-03-30 Joseph Myers <joseph@codesourcery.com>
16393 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16394
16395 PR bootstrap/48337
16396 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
16397 Init(PROCESSOR_V7).
16398 (sparc_cpu): Likewise.
16399 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
16400 PROCESSOR_V7.
16401
ad3b266b
VM
164022011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16403
16404 PR target/48336
16405 PR middle-end/48342
16406 PR rtl-optimization/48345
16407 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
16408 hard regs for given mode from profitable regs when doing secondary
16409 allocation.
16410
633c9126
JL
164112011-03-29 Jeff Law <law@redhat.com>
16412
16413 PR bootstrap/48327
16414 * tree-ssa-threadupdate.c (struct redirection_data): Remove
16415 do_not_duplicate field.
16416 (lookup_redirection_data): Corresponding changes.
16417 (create_duplicates): Always create a template block.
16418 (redirect_edges): Remove code which reused the original block
16419 when it was going to become unreachable code.
16420 (thread_block): Don't set do_not_duplicate field.
16421
eb50f63a
JM
164222011-03-29 Joseph Myers <joseph@codesourcery.com>
16423
16424 * lto-opts.c (register_user_option_p, lto_register_user_option):
16425 Make type argument unsigned.
16426 * lto-streamer.h (lto_register_user_option): Make type argument
16427 unsigned.
16428 * opth-gen.awk: Make CL_* macros unsigned.
16429 * opts-common.c (find_opt): Make lang_mask argument unsigned.
16430 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
16431 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
16432 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
16433 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
16434 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
16435 (find_opt): Make lang_mask argument unsigned.
16436
76763a6d
VM
164372011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16438
16439 PR rtl-optimization/48331
16440 PR rtl-optimization/48334
16441 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
16442 for any used algorithm.
16443
5c82436e
VM
164442011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16445
16446 * ira-conflicts.c (build_object_conflicts): Add unused attribute
16447 to parent_max.
16448
7a81008b
UB
164492011-03-29 Uros Bizjak <ubizjak@gmail.com>
16450
16451 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
16452 (alpha_option_override): Don't set alpha_sr_alias_set.
16453 (emit_frame_store_1): Use gen_frame_mem rather than calling
16454 set_mem_alias_set.
16455 (alpha_expand_epilogue): Ditto.
16456
86c8d1f6
IR
164572011-03-29 Ira Rosen <ira.rosen@linaro.org>
16458
16459 PR tree-optimization/48290
16460 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
16461 vectorization, check that relevant phis in the basic block after
16462 the inner loop are really inner loop's exit phis.
16463
0d12220f
RS
164642011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
16465
e8cf17e7 16466 PR debug/48190
0d12220f
RS
16467 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
16468 (cached_dw_loc_list_def): New structure.
16469 (cached_dw_loc_list): New typedef.
16470 (cached_dw_loc_list_table): New variable.
16471 (cached_dw_loc_list_table_hash): New function.
16472 (cached_dw_loc_list_table_eq): Likewise.
16473 (add_location_or_const_value_attribute): Take a bool cache_p.
16474 Cache the list when the parameter is true.
16475 (gen_formal_parameter_die): Update caller.
16476 (gen_variable_die): Likewise.
16477 (dwarf2out_finish): Likewise.
16478 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
16479 while generating debug info for the decl.
16480 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
16481 (dwarf2out_init): Initialize cached_dw_loc_list_table.
16482 (resolve_addr): Cache the result of resolving a chain of
16483 location lists.
16484
1756cb66
VM
164852011-03-28 Vladimir Makarov <vmakarov@redhat.com>
16486
16487 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
16488 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 16489
1756cb66
VM
16490 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
16491 after regstat_init_n_sets_and_refs.
16492
16493 * ira.c: Add more comments at the top.
16494 (setup_stack_reg_pressure_class, setup_pressure_classes):
16495 Add comments how we compute the register pressure classes.
16496 (setup_allocno_and_important_classes): Add more comments.
16497 (setup_class_translate_array, reorder_important_classes)
16498 (setup_reg_class_relations): Add comments.
16499
16500 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
16501 start of the file.
16502
16503 * ira-color.c: Add 2011 to the Copyright line.
16504 (assign_hard_reg): Add more comments.
16505 (improve_allocation): Ditto.
16506
16507 * ira-costs.c: Add 2011 to the Copyright line.
16508 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
16509 comments.
16510 (setup_regno_cost_classes_by_mode): Ditto.
16511
16512 Initial patches from ira-improv branch:
16513
16514 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16515
f60c2554 16516 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
16517 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
16518 (ira_create_allocno): Remove initialization of
16519 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
16520 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
16521 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16522 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
16523 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
16524 Initialize ALLOCNO_ADD_DATA.
16525 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
16526 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
16527 ALLOCNO_REG.
16528 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
16529 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
16530
16531 * ira.c (ira_reallocate): Remove.
16532 (setup_pressure_classes): Call
16533 ira_init_register_move_cost_if_necessary. Use
16534 ira_register_move_cost instead of ira_get_register_move_cost.
16535 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
16536 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
16537
16538 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
16539 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16540 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
16541 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
16542 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
16543 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
16544 Fix formatting.
7a81008b 16545 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
16546 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16547 (struct allocno_color_data): New.
16548 (allocno_color_data_t): New typedef.
16549 (allocno_color_data): New definition.
16550 (ALLOCNO_COLOR_DATA): New macro.
16551 (struct object_color_data): New.
16552 (object_color_data_t): New typedef.
16553 (object_color_data): New definition.
16554 (OBJECT_COLOR_DATA): New macro.
16555 (update_copy_costs, calculate_allocno_spill_cost): Call
16556 ira_init_register_move_cost_if_necessary. Use
16557 ira_register_move_cost instead of ira_get_register_move_cost.
16558 (move_spill_restore, update_curr_costs): Ditto.
16559 (allocno_spill_priority): Make it inline.
7a81008b 16560 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
16561 (struct coalesce_data, coalesce_data_t): New.
16562 (allocno_coalesce_data): New definition.
16563 (ALLOCNO_COALESCE_DATA): New macro.
16564 (merge_allocnos, coalesced_allocno_conflict_p): Use
16565 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
16566 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
16567 (coalesce_allocnos): Ditto.
16568 (setup_coalesced_allocno_costs_and_nums): Ditto.
16569 (collect_spilled_coalesced_allocnos): Ditto.
16570 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
16571 (setup_slot_coalesced_allocno_live_ranges): Ditto.
16572 (coalesce_spill_slots): Ditto.
16573 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
16574 free allocno_coalesce_data.
16575
16576 * ira-conflicts.c: Fix formatting.
16577 (process_regs_for_copy): Call
16578 ira_init_register_move_cost_if_necessary. Use
16579 ira_register_move_cost instead of ira_get_register_move_cost.
16580 (build_object_conflicts): Optimize.
16581
16582 * ira-costs.c (record_reg_classes): Optimize. Call
16583 ira_init_register_move_cost_if_necessary. Use
16584 ira_register_move_cost, ira_may_move_in_cost, and
16585 ira_may_move_out_cost instead of ira_get_register_move_cost and
16586 ira_get_may_move_cost.
16587 (record_address_regs): Ditto.
16588 (scan_one_insn): Optimize.
16589 (find_costs_and_classes): Optimize.
16590 (process_bb_node_for_hard_reg_moves): Call
16591 ira_init_register_move_cost_if_necessary. Use
16592 ira_register_move_cost instead of ira_get_register_move_cost.
16593
16594 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
16595 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
16596 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
16597 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
16598 definitions.
16599 (ira_initiate_emit_data, ira_finish_emit_data)
16600 (create_new_allocno): New functions.
7a81008b 16601 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
16602 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
16603 Use ira_register_move_cost instead of ira_get_register_move_cost.
16604
16605 * ira-int.h: Fix some comments.
7a81008b
UB
16606 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
16607 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
16608 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
16609 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
16610 add_data.
16611 (struct ira_allocno): Make mode and aclass a bitfield. Move other
16612 bitfield after mode. Make hard_regno a short int. Make
16613 hard_regno short. Remove first_coalesced_allocno and
16614 next_coalesced_allocno. Move mem_optimized_dest_p,
16615 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
16616 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
16617 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
16618 temp, colorable_p. Add new member add_data.
16619 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
16620 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
16621 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
16622 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
16623 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
16624 (ALLOCNO_ADD_DATA): New macro.
16625 (ira_emit_data_t): New typedef.
16626 (struct ira_emit_data): New. Move mem_optimized_dest_p,
16627 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
16628 from struct ira_allocno.
16629 (ALLOCNO_EMIT_DATA): New macro.
16630 (ira_allocno_emit_data, allocno_emit_reg): New.
16631 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 16632 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
16633 (OBJECT_ADD_DATA): New macro.
16634 (ira_reallocate): Remove.
16635 (ira_initiate_emit_data, ira_finish_emit_data): New.
16636 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
16637 (ira_init_register_move_cost_if_necessary): New.
16638 (ira_object_conflict_iter_next): Merge into
16639 ira_object_conflict_iter_cond.
7a81008b 16640 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 16641
f60c2554 16642 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
16643 ira_init_register_move_cost_if_necessary. Use
16644 ira_register_move_cost instead of ira_get_register_move_cost.
16645
16646 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16647
16648 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
16649
16650 * ira-costs.c: Fix formatting.
16651 (cost_classes, cost_classes_num): Remove.
16652 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
16653 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
16654 (cost_classes_del, cost_classes_htab): New.
16655 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
16656 (initiate_regno_cost_classes, setup_cost_classes): New.
16657 (setup_regno_cost_classes_by_aclass): New.
7a81008b 16658 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
16659 (record_reg_classes): Use regno_cost_classes instead of
16660 cost_classes. Move checking opposite operand up.
16661 (record_address_regs): Use regno_cost_classes
16662 instead of cost_classes.
16663 (scan_one_insn): Ditto. Use always general register.
16664 (print_allocno_costs): Use regno_cost_classes instead of
16665 cost_classes.
16666 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
16667 (find_costs_and_classes): Set up cost classes for each registers.
16668 Use also their mode for this. Use regno_cost_classes instead of
16669 cost_classes.
16670 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
16671 cost_classes.
16672 (free_ira_costs, ira_init_costs): Don't use cost_classes.
16673 (ira_costs, ira_set_pseudo_classes): Call
16674 initiate_regno_cost_classes and finish_regno_cost_classes.
16675
16676 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
16677
16678 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
16679
16680 * target.def (ira_cover_classes): Remove.
16681
7a81008b 16682 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
16683
16684 * doc/tm.texi.in: Ditto.
16685
16686 * ira-conflicts.c: Remove mentioning cover classes from the file.
16687 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 16688 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
16689
16690 * targhooks.c (default_ira_cover_classes): Remove.
16691
16692 * targhooks.h (default_ira_cover_classes): Ditto.
16693
16694 * haifa-sched.c: Remove mentioning cover classes from the file.
16695 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16696 ira_pressure_classes and ira_pressure_classes_num instead of
16697 ira_reg_class_cover_size and ira_reg_class_cover. Use
16698 sched_regno_pressure_class instead of sched_regno_cover_class.
16699 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
16700 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16701
16702 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
16703 classes from the file.
16704 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
16705 (struct object_hard_regs, struct object_hard_regs_node): New.
16706 (struct ira_object): New members profitable_hard_regs,
16707 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
16708 (struct ira_allocno): Rename cover_class to aclass. Rename
16709 cover_class_cost and updated_cover_class_cost to class_cost and
16710 updated_class_cost. Remove splay_removed_p and
16711 left_conflict_size. Add new members colorable_p.
16712 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
16713 (ALLOCNO_COLORABLE_P): New macro.
16714 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
16715 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
16716 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
16717 (OBJECT_...): Rename parameter C to O.
16718 (OBJECT_PROFITABLE_HARD_REGS): New macro.
16719 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
16720 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
16721 (struct target_ira_int): New members x_ira_max_memory_move_cost,
16722 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
16723 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
16724 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
16725 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
16726 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
16727 x_ira_reg_class_subunion.
16728 (ira_max_memory_move_cost, ira_max_register_move_cost)
16729 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
16730 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
16731 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 16732 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
16733 (ira_reg_class_union): Rename to ira_reg_class_subunion.
16734 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16735 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16736 (ira_tune_allocno_costs_and_cover_classes): Rename to
16737 ira_tune_allocno_costs.
16738 (ira_debug_hard_regs_forest): New.
16739 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
16740 (ira_object_conflict_iter_next): Fix comments.
7a81008b 16741 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
16742 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
16743 cover_class to aclass.
16744 (ira_allocate_and_accumulate_costs): Ditto.
16745 (ira_allocate_and_set_or_copy_costs): Ditto.
16746
16747 * opts.c (decode_options): Remove ira_cover_class check.
16748
16749 * ira-color.c: Remove mentioning cover classes from the file. Use
16750 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
16751 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
16752 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16753 (splay-tree.h): Remove include.
16754 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
16755 before copy_freq_compare_func.
16756 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
16757 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
16758 New definitions.
16759 (hard_regs_roots, hard_regs_node_vec): Ditto.
16760 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
16761 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
16762 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
16763 (create_new_object_hard_regs_node): Ditto.
16764 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 16765 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
16766 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
16767 Ditto.
16768 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
16769 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
16770 (remove_unused_object_hard_regs_nodes): Ditto.
16771 (enumerate_object_hard_regs_nodes): Ditto.
16772 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
16773 (object_hard_regs_subnode_t): Ditto.
16774 (struct object_hard_regs_subnode): Ditto.
16775 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
16776 (setup_object_hard_regs_subnode_index): Ditto.
16777 (get_object_hard_regs_subnodes_num): Ditto.
16778 (form_object_hard_regs_nodes_forest): Ditto.
16779 (finish_object_hard_regs_nodes_tree): Ditto.
16780 (finish_object_hard_regs_nodes_forest): Ditto.
16781 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 16782 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
16783 (pseudos_have_intersected_live_ranges_p): Rename to
16784 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
16785 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
16786 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
16787 (update_copy_costs): Remove assert. Skip cost update if the hard
16788 reg does not belong the class.
16789 (assign_hard_reg): Process only profitable hard regs.
16790 (uncolorable_allocnos_num): Make it scalar.
16791 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16792 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
16793 and ira_reg_class_max_nregs.
16794 (bucket_allocno_compare_func): Check frequency first.
16795 (sort_bucket): Add compare function as a parameter.
16796 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
16797 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
16798 (push_allocno_to_stack): Rewrite for checking new allocno
16799 colorability.
7a81008b 16800 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
16801 (push_only_colorable): Pass new parameter to sort_bucket.
16802 (push_allocno_to_spill): Remove.
16803 (allocno_spill_priority_compare): Make it inline and rewrite.
16804 (splay_tree_allocate, splay_tree_free): Remove.
16805 (allocno_spill_sort_compare): New function.
16806 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
16807 build and use splay tree. Choose first allocno in uncolorable
16808 allocno bucket to spill. Remove setting spill cost.
16809 (all_conflicting_hard_regs): Remove.
16810 (setup_allocno_available_regs_num): Check only profitable hard
16811 regs. Print info about hard regs nodes.
16812 (setup_allocno_left_conflicts_size): Remove.
16813 (put_allocno_into_bucket): Don't call
7a81008b 16814 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
16815 (improve_allocation): New.
16816 (color_allocnos): Call setup_profitable_hard_regs,
16817 form_object_hard_regs_nodes_forest, improve_allocation,
16818 finish_object_hard_regs_nodes_forest. Setup spill cost.
16819 (print_loop_title): Use pressure classes.
16820 (color_allocnso): Ditto.
16821 (do_coloring): Remove allocation and freeing splay_tree_node_pool
16822 and allocnos_for_spilling.
16823 (ira_sort_regnos_for_alter_reg): Don't setup members
16824 {first,next}_coalesced_allocno.
16825 (color): Remove allocating and freeing removed_splay_allocno_vec.
16826 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
16827 prohibited_class_mode_regs.
16828
16829 * ira-lives.c: Remove mentioning cover classes from the file. Fix
16830 formatting.
16831 (update_allocno_pressure_excess_length): Use pressure classes.
16832 (inc_register_pressure, dec_register_pressure): Check for pressure
16833 class.
16834 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
16835 pressure class. Use ira_reg_class_nregs instead of
16836 ira_reg_class_max_nregs.
16837 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
16838 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
16839 (single_reg_class): Use ira_reg_class_nregs instead of
16840 ira_reg_class_max_nregs.
16841 (process_bb_node_lives): Use pressure classes.
16842
16843 * ira-emit.c: Remove mentioning cover classes from the file. Use
16844 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
16845 (change_loop): Use pressure classes.
16846 (modify_move_list): Call ira_set_allocno_class instead of
16847 ira_set_allocno_cover_class.
16848
16849 * ira-build.c: Remove mentioning cover classes from the file. Use
16850 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
16851 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
16852 ALLOCNO_UPDATED_CLASS_COST instead of
16853 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16854 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
16855 (ira_create_allocno): Remove initialization of
16856 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
16857 ALLOCNO_COLORABLE_P.
16858 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16859 Update conflict regs for the objects.
16860 (create_cap_allocno): Remove assert. Don't propagate
16861 ALLOCNO_AVAILABLE_REGS_NUM.
16862 (ira_free_allocno_costs): New function.
16863 (finish_allocno): Change a part of code into call of
16864 ira_free_allocno_costs.
16865 (low_pressure_loop_node_p): Use pressure classes.
16866 (object_range_compare_func): Don't compare classes.
16867 (setup_min_max_conflict_allocno_ids): Ditto.
16868
16869 * loop-invariant.c: Remove mentioning cover classes from the file.
16870 Use ira_pressure_classes and ira_pressure_classes_num instead of
16871 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
16872 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
16873 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16874 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
16875 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
16876 STACK_REG_COVER_CLASS.
16877 (get_regno_cover_class): Rename to get_regno_pressure_class.
16878 (move_loop_invariants): Initialize and finalize regstat.
16879
16880 * ira.c: Remove mentioning cover classes from the file. Add
16881 comments about coloring without cover classes. Use ALLOCNO_CLASS
16882 instead of ALLOCNO_COVER_CLASS. Fix formatting.
16883 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
16884 setup_class_subset_and_memory_move_costs.
16885 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
16886 (setup_cover_and_important_classes): Rename to
16887 setup_allocno_and_important_classes.
16888 (setup_class_translate_array): New.
16889 (setup_class_translate): Call it for allocno and pressure classes.
16890 (cover_class_order): Rename to allocno_class_order.
16891 (comp_reg_classes_func): Use ira_allocno_class_translate instead
16892 of ira_class_translate.
16893 (reorder_important_classes): Set up ira_important_class_nums.
16894 (setup_reg_class_relations): Set up ira_reg_class_superunion.
16895 (print_class_cover): Rename to print_classes. Add parameter.
16896 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16897 Print pressure classes too.
16898 (find_reg_class_closure): Rename to find_reg_classes. Don't call
16899 setup_reg_subclasses.
7a81008b 16900 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
16901 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16902 (setup_prohibited_class_mode_regs): Use
7a81008b 16903 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
16904 (clarify_prohibited_class_mode_regs): New function.
16905 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
16906 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
16907 (ira_init_once): Initialize them.
16908 (free_register_move_costs): Process them.
16909 (ira_init): Move calls of find_reg_classes and
16910 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
16911 Call clarify_prohibited_class_mode_regs.
16912 (ira_no_alloc_reg): Remove.
16913 (too_high_register_pressure_p): Use pressure classes.
16914
16915 * sched-deps.c: Remove mentioning cover classes from the file.
16916 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16917 ira_pressure_classes and ira_pressure_classes_num instead of
16918 ira_reg_class_cover_size and ira_reg_class_cover.
16919 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
16920 sched_regno_pressure_class instead of sched_regno_cover_class.
16921 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
16922 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16923
16924 * ira.h: Add 2010 to Copyright.
16925 (ira_no_alloc_reg): Remove external.
16926 (struct target_ira): Rename x_ira_hard_regno_cover_class,
16927 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
16928 x_ira_class_translate to x_ira_hard_regno_allocno_class,
16929 x_ira_allocno_classes_num, x_ira_allocno_classes, and
16930 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
16931 x_ira_pressure_classes, x_ira_pressure_class_translate, and
16932 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
16933 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
16934 x_ira_no_alloc_regs.
7a81008b 16935 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
16936 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
16937 ira_allocno_classes_num and ira_allocno_classes.
16938 (ira_class_translate): Rename to ira_allocno_class_translate.
16939 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
16940 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
16941 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16942 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
16943 (ira_no_alloc_regs): New.
16944
16945 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
16946 classes from the file. Use ALLOCNO_CLASS instead of
16947 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
16948 ALLOCNO_COVER_CLASS_COST.
16949 (regno_cover_class): Rename to regno_aclass.
16950 (record_reg_classes): Use ira_reg_class_subunion instead of
16951 ira_reg_class_union.
16952 (record_address_regs): Check overflow.
16953 (scan_one_insn): Ditto.
7a81008b 16954 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
16955 (print_pseudo_costs): Use REG_N_REFS.
16956 (find_costs_and_classes): Use classes intersected with them on the
16957 1st pass. Check overflow. Use ira_reg_class_subunion instead of
16958 ira_reg_class_union. Use ira_allocno_class_translate and
16959 regno_aclass instead of ira_class_translate and regno_cover_class.
16960 Modify code for finding regno_aclass. Setup preferred classes for
16961 the next pass.
16962 (setup_allocno_cover_class_and_costs): Rename to
16963 setup_allocno_class_and_costs. Use regno_aclass instead of
16964 regno_cover_class. Use ira_set_allocno_class instead of
16965 ira_set_allocno_cover_class.
16966 (init_costs, finish_costs): Use regno_aclass instead of
16967 regno_cover_class.
16968 (ira_costs): Use setup_allocno_class_and_costs instead of
16969 setup_allocno_cover_class_and_costs.
16970 (ira_tune_allocno_costs_and_cover_classes): Rename to
16971 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
16972 by processing objects. Use ira_reg_class_max_nregs instead of
16973 ira_reg_class_nregs.
16974
16975 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
16976
16977 * sched-int.h: Remove mentioning cover classes from the file.
16978 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
16979
16980 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
16981 classes from the file.
16982 (struct reg_pref): Rename coverclass into allocnoclass.
16983 (reg_cover_class): Rename to reg_allocno_class.
16984
7a81008b 16985 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
16986
16987 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
16988
16989 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
16990
16991 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
16992
16993 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
16994
16995 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
16996
16997 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
16998
16999 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
17000
17001 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
17002
17003 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
17004
17005 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
17006 (i386_ira_cover_classes): Ditto.
17007
17008 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
17009
17010 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
17011
17012 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
17013
17014 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
17015
17016 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
17017
17018 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
17019
17020 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
17021 (mips_ira_cover_classes): Ditto.
17022
17023 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
17024
17025 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
17026
17027 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
17028
17029 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
17030
17031 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
17032
17033 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
17034 (IRA_COVER_CLASSES_VSX): Ditto.
17035
17036 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
17037 (rs6000_ira_cover_classes): Ditto.
17038
17039 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
17040
17041 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
17042
17043 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
17044
17045 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
17046
17047 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
17048
17049 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
17050
17051 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
17052
17053 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
17054
17055 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
17056
17057 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
17058
2b80199f
JJ
170592011-03-29 Jakub Jelinek <jakub@redhat.com>
17060
71dae1fe
JJ
17061 PR debug/48253
17062 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
17063 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
17064 dw_fde_unlikely_section_end_label, cold_in_std_section,
17065 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
17066 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
17067 fields.
17068 (output_fde): Use dw_fde_second_{begin,end} if second is
17069 true, otherwise dw_fde_{begin,end}.
17070 (output_call_frame_info): Test dw_fde_second_begin != NULL
17071 instead of dw_fde_switched_sections.
17072 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
17073 fields, initialize new fields. Initialize in_std_section
17074 unconditionally from the first partition.
17075 (dwarf2out_end_epilogue): Don't override dw_fde_end when
17076 dw_fde_second_begin is non-NULL.
17077 (dwarf2out_switch_text_section): Stop initializing removed
17078 dw_fde_struct fields, initialize new fields, initialize
17079 also dw_fde_end here. Set dw_fde_switch_cfi even when
17080 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
17081 (struct var_loc_list_def): Add last_before_switch field.
17082 (arange_table, arange_table_allocated, arange_table_in_use,
17083 ARANGE_TABLE_INCREMENT, add_arange): Removed.
17084 (size_of_aranges): Count !in_std_section and !second_in_std_section
17085 hunks in fdes, instead of looking at arange_table_in_use.
17086 (output_aranges): Add aranges_length argument, don't call
17087 size_of_aranges here. Instead of using aranges_table*
17088 emit ranges for fdes when !in_std_section resp.
17089 !second_in_std_section.
17090 (dw_loc_list): Break ranges crossing section switch.
17091 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 17092 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
17093 (gen_subprogram_die): Don't call add_arange. Use
17094 dw_fde_{begin,end} for first partition and if switched
17095 section dw_fde_second_{begin,end} for the second.
17096 (var_location_switch_text_section_1,
17097 var_location_switch_text_section): New functions.
17098 (dwarf2out_begin_function): Initialize cold_text_section even
17099 when function_section () isn't text_section.
17100 (prune_unused_types): Don't walk arange_table.
17101 (dwarf2out_finish): Don't needlessly test
17102 flag_reorder_blocks_and_partition when testing cold_text_section_used.
17103 If info_section_emitted, call size_of_aranges and if it indicates
17104 non-empty .debug_aranges, call output_aranges with the computed
17105 size. Stop using removed dw_fde_struct fields, use
17106 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
17107 for second.
17108
2b80199f
JJ
17109 PR debug/48203
17110 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
17111 create ENTRY_VALUE if incoming or address of incoming's MEM
17112 is a hard REG.
17113 * dwarf2out.c (mem_loc_descriptor): Don't emit
17114 DW_OP_GNU_entry_value of DW_OP_fbreg.
17115 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
17116 on ENTRY_VALUE is able to find the canonical parameter VALUE.
17117 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
17118 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
17119 ENTRY_VALUE_EXPs.
17120 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
17121 is a REG_P or MEM_P with REG_P address, compute hash directly
17122 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
17123 (preserve_only_constants): Don't clear VALUES forwaring
17124 ENTRY_VALUE to some other VALUE.
17125
8a445129
RS
171262011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
17127
17128 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
17129 instead of GEN_INT.
17130
c82fee88
EB
171312011-03-28 Eric Botcazou <ebotcazou@adacore.com>
17132
17133 * cfgexpand.c (expand_gimple_cond): Always set the source location and
17134 block before expanding the statement.
17135 (expand_gimple_stmt_1): Likewise. Set them here...
17136 (expand_gimple_stmt): ...and not here. Tidy.
17137 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
17138 unknown.
17139
e45425ec
SB
171402011-03-28 Steven Bosscher <steven@gcc.gnu.org>
17141
17142 * Makefile.in: New rule for cprop.o.
17143 * gcse.c: Move constant/copy propagation to cprop.c.
17144 (compute_local_properties): Only handle expression tables.
17145 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
17146 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
17147 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
17148 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 17149 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
17150 compute_cprop_data, find_used_regs, try_replace_reg,
17151 find_avail_set, cprop_jump, constprop_register, cprop_insn,
17152 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
17153 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
17154 find_bypass_set, reg_killed_on_edge, bypass_block,
17155 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
17156 execute_rtl_cprop, pass_rtl_cprop): Move to...
17157 * cprop.c: ...here. New file, constant/copy propagation for RTL
17158 moved from gcse.c to here with minor cleanups in duplicated code.
17159
c09d5426
L
171602011-03-28 H.J. Lu <hongjiu.lu@intel.com>
17161
17162 * config/i386/i386.c (flag_opts): Fix a typo in
17163 -mavx256-split-unaligned-store.
17164
9eaa7740
AS
171652011-03-28 Anatoly Sokolov <aesok@post.ru>
17166
17167 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
17168 LIBCALL_VALUE): Remove macros.
17169 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17170 TARGET_FUNCTION_VALUE_REGNO_P): Define.
17171 (h8300_function_value, h8300_libcall_value,
17172 h8300_function_value_regno_p): New functions.
17173
dcec2be2
AS
171742011-03-28 Anatoly Sokolov <aesok@post.ru>
17175
17176 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
17177
520af9ec
JL
171782011-03-28 Jeff Law <law@redhat.com>
17179
17180 * tree-ssa-threadupdate.c (redirect_edges): Call
17181 create_edge_and_update_destination_phis as needed.
17182 (create_edge_and_update_destination_phis): Accept new BB argument.
17183 All callers updated.
17184 (thread_block): Do not update the profile when threading around
17185 intermediate blocks.
17186 (thread_single_edge): Likewise.
17187 (determine_bb_domination_status): If BB is not a successor of the
17188 loop header, return NONDOMINATING.
17189 (register_jump_thread): Note when we register a jump thread around
17190 an intermediate block.
17191 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
17192 (thread_across_edge): Use it.
17193
7450b54f
TG
171942011-03-28 Tristan Gingold <gingold@adacore.com>
17195
17196 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
17197 when for_return is 2.
17198
649beb33
JL
171992011-03-28 Jeff Law <law@redhat.com>
17200
17201 * var-tracking.c (canonicalize_values_mark): Delete unused
17202 lhs assignment.
17203 (canonicalize_values_star, set_variable_part): Likewise.
17204 (clobber_variable_part, delete_variable_part): Likewise.
17205
d5b8da97
SB
172062011-03-28 Steven Bosscher <steven@gcc.gnu.org>
17207
17208 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
17209
322dd859
MJ
172102011-03-28 Martin Jambor <mjambor@suse.cz>
17211
17212 * tree-inline.c (expand_call_inline): Do not check that destination
17213 node is analyzed.
17214 (optimize_inline_calls): Assert that destination node is analyzed.
17215 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
17216 not call tree_lowering_passes.
17217 * cgraph.h (cgraph_analyze_function): Declare.
17218 * cgraphunit.c (cgraph_analyze_function): Make public.
17219
aa53e58b
JM
172202011-03-28 Joseph Myers <joseph@codesourcery.com>
17221
17222 * config/sparc/sparc-opts.h: New.
17223 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
17224 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
17225 (sparc_option_override): Store processor_type enumeration rather
17226 than string in cpu_default. Remove name and enumeration from
17227 cpu_table. Directly default -mcpu then default -mtune from -mcpu
17228 without using sparc_select. Use target_flags_explicit instead of
17229 fpu_option_set.
17230 * config/sparc/sparc.h (enum processor_type): Move to
17231 sparc-opts.h.
17232 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
17233 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
17234 HeaderInclude entry.
17235 (mcpu=, mtune=): Use Var and Enum.
17236 (sparc_processor_type): New Enum and EnumValue entries.
17237
dd350eba
RO
172382011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17239 Iain Sandoe <iains@gcc.gnu.org>
17240
17241 PR target/48245
17242 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
17243
1b29f05e
EB
172442011-03-28 Eric Botcazou <ebotcazou@adacore.com>
17245
17246 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
17247 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
17248 Insert new statements at it in lieu of STMT.
17249 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
17250 * tree-vect-stmts.c (vectorizable_store): Likewise.
17251 (vectorizable_load): Likewise.
17252
506e6808
UB
172532011-03-28 Uros Bizjak <ubizjak@gmail.com>
17254
17255 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
17256 (divtf3): Ditto.
17257 (multf3): Ditto.
17258 (subtf3): Ditto.
17259
2e939ee9
L
172602011-03-27 H.J. Lu <hongjiu.lu@intel.com>
17261
17262 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
17263 unaligned 256bit load/store.
17264 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
17265 (*avx_movdqu<avxmodesuffix>): Likewise.
17266
5e85ab88
JDA
172672011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17268
17269 PR target/48288
17270 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
17271 * config/pa/pa.md (iordi3): Use new predicate in expander.
17272 (iorsi3): Likewise.
17273
47be3d6d
AS
172742011-03-27 Anatoly Sokolov <aesok@post.ru>
17275
506e6808 17276 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 17277 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
17278 * config/mips/mips-protos.h (mips_function_value): Remove.
17279 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
17280 (mips_function_value_1): ... this. Make static. Handle receiving
17281 the function type in 'fn_decl_or_type' argument.
17282 (mips_function_value, mips_libcall_value,
17283 mips_function_value_regno_p): New function.
17284 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17285 TARGET_FUNCTION_VALUE_REGNO_P): Define.
17286
d253656a
L
172872011-03-27 H.J. Lu <hongjiu.lu@intel.com>
17288
17289 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
17290 and -mavx256-split-unaligned-store.
17291 (ix86_option_override_internal): Split 32-byte AVX unaligned
17292 load/store by default.
17293 (ix86_avx256_split_vector_move_misalign): New.
17294 (ix86_expand_vector_move_misalign): Use it.
17295
17296 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
17297 -mavx256-split-unaligned-store.
17298
17299 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
17300 256bit load/store. Generate unaligned store on misaligned memory
17301 operand.
17302 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
17303 256bit load/store.
17304 (*avx_movdqu<avxmodesuffix>): Likewise.
17305
17306 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
17307 -mavx256-split-unaligned-store.
17308
1ea9206a
RS
173092011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
17310
17311 PR target/38598
17312 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
17313 Update commentary.
17314
b99ce2a8
RS
173152011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
17316
17317 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
17318 opno arguments with an expand_operand. Use create_input_operand.
17319 (mips_prepare_builtin_target): Delete.
17320 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
17321 functions.
17322 (mips_expand_builtin_direct): Use create_output_operand and
17323 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
17324 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
17325 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
17326
69d52339
IR
173272011-03-27 Ira Rosen <ira.rosen@linaro.org>
17328
17329 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
17330 function.
17331 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17332
ba5e9aca
EB
173332011-03-26 Eric Botcazou <ebotcazou@adacore.com>
17334
17335 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
17336 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
17337 basic blocks and call commit_edge_insertions directly.
17338 (fixup_abnormal_edges): Move from here to...
17339 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
17340 on the edges and return whether some have actually been inserted.
17341 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
17342 compensation code.
17343
5d369d58
AB
173442011-03-26 Andrey Belevantsev <abel@ispras.ru>
17345
17346 PR rtl-optimization/48144
17347 * sel-sched-ir.c (merge_history_vect): Factor out from ...
17348 (merge_expr_data): ... here.
17349 (av_set_intersect): Rename to av_set_code_motion_filter.
17350 Update all callers. Call merge_history_vect when an expression
17351 is found in both sets.
17352 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
17353
f082c000
AM
173542011-03-26 Alan Modra <amodra@gmail.com>
17355
17356 * config/rs6000/predicates.md (word_offset_memref_op): Handle
17357 cmodel medium addresses.
17358 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
17359 64-bit gpr loads and stores.
17360 (rs6000_secondary_reload_ppc64): New function.
17361 * config/rs6000/rs6000-protos.h: Declare it.
17362 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
17363
8ac5e12e
AM
173642011-03-26 Alan Modra <amodra@gmail.com>
17365
17366 PR target/47487
17367 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
17368 GNU Go in traceback table.
17369
c2654ded
RH
173702011-03-25 Richard Henderson <rth@redhat.com>
17371
17372 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
17373 if there are exactly 6 operands.
17374 (set_storage_via_setmem): Similarly.
17375
ba78087b
KT
173762011-03-25 Kai Tietz <ktietz@redhat.com>
17377
17378 * collect2.c (write_c_file_stat): Handle backslash
17379 as right-hand directory separator.
17380 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
17381 checking just for slash.
17382 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
17383 instead of checking for trailing slash.
17384 * gcc.c (record_temp_file): Use filename_cmp instead
17385 of strcmp.
17386 (do_spec_1): Likewise.
17387 (replace_outfile_spec_function): Likewise.
17388 (is_directory): Use filename_ncmp instead of strncmp.
17389 (print_multilib_info): Likewise.
17390 * gcov.c (find_source): Use filename_cmp instead
17391 instead of strcmp.
17392 (make_gcov_file_name): Fix order of slash/backslash
17393 checks.
17394 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
17395 (add_standard_paths): Likewise.
17396 * mips-tfile.c (saber_stop): Handle backslash.
17397 * prefix.c (update_path): Use filename_ncmp instead of
17398 strncmp.
17399 * profile.c (output_location): Use filename_cmp instead
17400 of strcmp.
17401 * read-md.c (handle_toplevel_file): Handle backslash.
17402 * tlink.c (frob_extension): Likewise.
17403 * tree-cfg.c (same_line_p): Use filename_cmp instead of
17404 strcmp.
17405 * tree-dump.c (dequeue_and_dump): Handle backslash.
17406 * tree.c (get_file_function_name): Likewise.
17407 * gengtype.c (read_input_list): Likewise.
17408 (get_file_realbasename): Likewise.
17409 (get_output_file_with_visibility): Use filename_cmp
17410 instead of strcmp.
17411
75f6ec9a
RS
174122011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
17413
17414 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
17415 case to VFPv1.
17416
6c4e2997
NF
174172011-03-25 Nathan Froyd <froydnj@codesourcery.com>
17418
17419 * fold-const.c (expr_location_or): New function.
17420 (fold_truth_not_expr): Call it.
17421
0edf1bb2
JL
174222011-03-25 Jeff Law <law@redhat.com>
17423
17424 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
17425 va_end.
17426 * c-family/c-common.c (def_fn_type): Likewise.
17427 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
17428 * emit-rtl.c (gen_rtvec): Likewise.
17429 * lto/lto-lang.c (def_fn_type): Likewise.
17430
fdc2de95
RG
174312011-03-25 Richard Guenther <rguenther@suse.de>
17432
17433 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
17434 also generate copies.
17435 (fini_copy_prop): Handle constant values properly.
17436
21385db0
JJ
174372011-03-25 Jakub Jelinek <jakub@redhat.com>
17438
17439 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
17440 mode size instead of bitsize with DWARF2_ADDR_SIZE.
17441 (hash_loc_operands, compare_loc_operands): Handle
17442 DW_OP_GNU_entry_value.
17443
6510e8bb
KT
174442011-03-25 Kai Tietz <ktietz@redhat.com>
17445
17446 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
17447 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
17448 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
17449 comment and use macro TARGET_64BIT_MS_ABI instead.
17450 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
17451 and change default behavior for 32-bit MS_ABI.
17452 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
17453 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
17454 32-bit, too.
17455 (ix86_cfun_abi): Likewise.
17456 (ix86_maybe_switch_abi): Adjust comment.
17457 (init_cumulative_args): Check for bit-ness in MS_ABI case.
17458 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
17459 instead of checking for SYSV_ABI.
17460 (ix86_nsaved_sseregs): Likewise.
17461 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
17462 to 16 bytes.
17463 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
17464 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
17465 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
17466 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
17467 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
17468
34019e28
RG
174692011-03-25 Richard Guenther <rguenther@suse.de>
17470
17471 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
17472 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17473 (verify_gimple): Remove.
17474 * tree-cfg.c (verify_gimple_call): Merge verification
17475 from verify_stmts.
17476 (verify_gimple_phi): Merge verification from verify_stmts.
17477 (verify_gimple_label): New function.
17478 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
17479 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17480 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
17481 (verify_stmts): Rename to verify_gimple_in_cfg.
17482 (verify_gimple_in_cfg): New function.
17483 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
17484 * tree-ssa.c (verify_ssa): Likewise.
17485 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
17486
605896f5
RG
174872011-03-25 Richard Guenther <rguenther@suse.de>
17488
17489 * passes.c (init_optimization_passes): Add FRE pass after
17490 early SRA.
17491
7baa7c13
BS
174922011-03-25 Bernd Schmidt <bernds@codesourcery.com>
17493 Andrew Stubbs <ams@codesourcery.com>
17494
17495 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
17496 for Cortex-A8.
17497 (arm_movdi_vfp_cortexa8): New pattern.
17498 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
17499 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
17500 instructions when tuning for Cortex-A8. Set attribute "arch".
17501 * config/arm/arm.md: Move include arm-tune.md up a bit.
17502 (define_attr "arch"): Add "onlya8" and "nota8" values.
17503 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
17504
45dbce1b
NF
175052011-03-25 Nathan Froyd <froydnj@codesourcery.com>
17506
4ff08abf 17507 PR bootstrap/48282
45dbce1b
NF
17508 Revert:
17509 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17510
17511 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17512 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
17513 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17514 * passes.c (init_optimization_passes): Move
17515 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17516
ac9a30ae
KT
175172011-03-25 Kai Tietz <ktietz@redhat.com>
17518
17519 * c-typeck.c (comptypes_internal): Replace target
17520 hook call of comp_type_attributes by version in tree.c file.
17521 * gimple.c (gimple_types_compatible_p_1): Likewise.
17522 * tree-ssa.c (useless_type_conversion_p): Likewise.
17523 * tree.c (build_type_attribute_qual_variant): Likewise.
17524 (attribute_value_equal): New static helper function.
17525 (comp_type_attributes): New function.
17526 (merge_attributes): Use attribute_value_equal for comparison.
17527 (attribute_list_contained): Likewise.
17528 * tree.h (comp_type_attributes): New prototype.
17529
afdac116
RG
175302011-03-25 Richard Guenther <rguenther@suse.de>
17531
17532 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
17533 of complex types at -O0.
17534 (verify_gimple_assign_binary): Likewise.
17535 (verify_gimple_assign_ternary): Likewise.
17536
ec6165f8
MW
175372011-03-24 Mark Wielaard <mjw@redhat.com>
17538
17539 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
17540 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
17541
2a5ac39a
MW
175422011-03-24 Mark Wielaard <mjw@redhat.com>
17543
17544 PR debug/48041
17545 * dwarf2out.c (output_abbrev_section): Only write table when
17546 abbrev_die_table_in_use > 1.
17547
e533b2a4
RH
175482011-02-24 Richard Henderson <rth@redhat.com>
17549
17550 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
17551 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
17552 (alpha_expand_unaligned_load_words): Use extql.
17553 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
17554 (emit_insxl): Handle all modes for consistency.
17555
0b2a7367
RH
175562011-02-24 Richard Henderson <rth@redhat.com>
17557
17558 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
17559 (alpha_expand_unaligned_load): Likewise.
17560 (alpha_expand_unaligned_store): Likewise.
17561 (alpha_expand_unaligned_load_words): Likewise.
17562 (alpha_expand_unaligned_store_words): Likewise.
17563 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
17564 (alpha_split_lock_test_and_set_12): Likewise.
17565 (print_operand, alpha_fold_builtin_extxx): Likewise.
17566 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
17567 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
17568 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
17569 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
17570 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
17571 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
17572 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
17573 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
17574 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
17575 (extwl, extll, extql): Similarly.
17576 (inswh, inslh, insqh): Similarly.
17577 (mskbl, mskwl, mskll, mskql): Similarly.
17578 (mskwh, msklh, mskqh): Similarly.
17579
315b2bef
RH
175802011-02-24 Richard Henderson <rth@redhat.com>
17581
17582 * config/alpha/alpha.md (attribute isa): Add er, ner.
17583 (attribute enabled): Handle them.
17584 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
17585
67102517
RH
175862011-02-24 Richard Henderson <rth@redhat.com>
17587
17588 * config/alpha/alpha.md (attribute isa): Add vms.
17589 (attribute enabled): Handle it.
17590 (*movsf): Merge *movsf_{nofix,fix,nofp}.
17591 (*movdf): Merge *movdf_{nofix,fix,nofp}.
17592 (*movtf): Rename from *movtf_internal for consistency.
17593 (*movsi): Merge with *movsi_nt_vms.
17594 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
17595 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
17596 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
17597 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
17598
6aba5cb4
RH
175992011-02-24 Richard Henderson <rth@redhat.com>
17600
17601 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
17602 (extendqisi2, extendhisi2): Likewise.
17603 (extendqidi2): Simplify BWX/non-BWX expansions.
17604 (extendhidi2): Similarly.
17605
bdfb351b
RH
176062011-02-24 Richard Henderson <rth@redhat.com>
17607
17608 * config/alpha/alpha.md (attribute isa): New.
17609 (attribute enabled): New.
17610 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
17611 (zero_extendqisi2, zero_extendqidi2): Similarly.
17612 (zero_extendhisi2, zero_extendhidi2): Similarly.
17613 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
17614
6abe71eb
RH
176152011-02-24 Richard Henderson <rth@redhat.com>
17616
17617 * config/alpha/predicates.md (input_operand): Revert last change;
17618 update comment to mention 32-bit VMS rather than Windows.
17619
7114321e
NF
176202011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17621
17622 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17623 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
17624 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17625 * passes.c (init_optimization_passes): Move
17626 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17627
c8679567
EB
176282011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17629
17630 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
17631
27173058
UB
176322011-03-24 Uros Bizjak <ubizjak@gmail.com>
17633
17634 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
17635 correctly.
17636
6f0c9f06
JJ
176372011-03-24 Jakub Jelinek <jakub@redhat.com>
17638
17639 PR debug/48204
17640 * simplify-rtx.c (simplify_const_unary_operation): Call
17641 real_convert when changing mode class with FLOAT_EXTEND.
17642
662666e5
NC
176432011-03-24 Nick Clifton <nickc@redhat.com>
17644
17645 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
17646 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17647 * config/rx/rx.c (rx_option_override): Set align_jumps,
17648 align_loops and align_labels if not set by the user.
17649 (rx_align_for_label): New function.
17650 (rx_max_skip_for_label): New function.
17651 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
17652 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
17653 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
17654 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
17655 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
17656
2b99b2b8
RS
176572011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17658
17659 PR rtl-optimization/48263
17660 * optabs.c (expand_binop_directly): Reinstate convert_modes code
17661 and original commutative_p handling. Use maybe_gen_insn.
17662
ccecd6ea
AK
176632011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17664
17665 * reload.c (find_reloads_subreg_address): Add address_reloaded
17666 parameter and return true there if the full address has been
17667 reloaded.
17668 (find_reloads_toplev): Pass address_reloaded flag.
17669 (find_reloads_address_1): Don't use address_reloaded parameter.
17670
67295642
JL
176712011-03-24 Jeff Law <law@redhat.com>
17672
17673 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
17674 unused variable "ann".
17675 (remove_unused_locals): Likewise.
17676
17677 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
17678 statement.
17679
17680 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
17681 after it is freed.
17682
212aa74f
AK
176832011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17684
17685 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
17686 for invalid symbolic addresses.
17687 (s390_secondary_reload): Don't use s390_check_symref_alignment for
17688 larl operands.
17689
fe784e0d
EB
176902011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17691
17692 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
17693 the argument in calls to fold_truth_not_expr.
17694
63ee8641
NF
176952011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17696
17697 * tree.c (record_node_allocation_statistics): New function.
17698 (make_node_stat, copy_node_stat, build_string): Call it.
17699 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
17700 (build1_stat, build_omp_clause): Likewise.
17701
61be2a1c
RS
177022011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17703
17704 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
17705 last commit.
17706
a881aaa7
RG
177072011-03-24 Richard Guenther <rguenther@suse.de>
17708
17709 PR tree-optimization/48271
17710 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
17711 blocks that still exist.
17712
dbaa912c
RG
177132011-03-24 Richard Guenther <rguenther@suse.de>
17714
17715 PR tree-optimization/48270
17716 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
17717 not free datarefs before ddrs.
17718
1d60cc55
EB
177192011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17720
17721 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
17722 from the address built for a reference with variable offset.
17723
c78dd519
UB
177242011-03-24 Uros Bizjak <ubizjak@gmail.com>
17725
17726 PR target/48237
17727 * config/i386/i386.md (*movdf_internal_rex64): Do not split
17728 alternatives that can be handled with movq or movabsq insn.
17729 (*movdf_internal): Disable for !TARGET_64BIT.
17730 (*movdf_internal_nointeger): Ditto.
17731 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
17732
b25b9e8f
NF
177332011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17734
17735 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17736 (FUNCTION_ARG_ADVANCE): Likewise.
17737 * tm.texi.in: Change references to them to hook references.
17738 * tm.texi: Regenerate.
c78dd519 17739 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
17740 (default_function_incoming_arg): Likewise.
17741 (default_function_arg_advance): Likewise.
c78dd519 17742 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
17743 (function_arg_advance): Likewise.
17744 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17745
190b2187
RG
177462011-03-24 Richard Guenther <rguenther@suse.de>
17747
17748 PR middle-end/48269
17749 * tree-object-size.c (addr_object_size): Do not double-account
17750 for MEM_REF offsets.
17751
a183b5c7
DN
177522011-03-24 Diego Novillo <dnovillo@google.com>
17753
17754 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 17755 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
17756 (lto_input_data_block): Move from lto-opts.c. Make extern.
17757 Update all users.
17758 (lto_input_string): Rename from input_string. Make extern.
17759 Update all users.
17760 * lto-streamer-out.c (lto_output_string_with_length): Rename from
17761 output_string_with_length.
17762 Output 0 to indicate a non-NULL string. Update all callers to
17763 not emit 0.
17764 (lto_output_string): Rename from output_string. Make extern.
17765 Update all users.
17766 (lto_output_decl_state_streams): Make extern.
17767 (lto_output_decl_state_refs): Make extern.
17768 * lto-streamer.h (lto_input_string): Declare.
17769 (lto_input_data_block): Declare.
17770 (lto_output_string): Declare.
17771 (lto_output_string_with_length): Declare.
17772 (lto_output_decl_state_streams): Declare.
17773 (lto_output_decl_state_refs): Declare.
17774
cfef45c8
RG
177752011-03-24 Richard Guenther <rguenther@suse.de>
17776
17777 PR tree-optimization/46562
17778 * tree.c (build_invariant_address): New function.
17779 * tree.h (build_invariant_address): Declare.
17780 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
17781 a renamed function moved ...
17782 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
17783 Take valueization callback parameter.
17784 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
17785 * gimple-fold.h: New file.
17786 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
17787 (ccp_fold, fold_const_aggregate_ref,
17788 fold_ctor_reference, fold_nonarray_ctor_reference,
17789 fold_array_ctor_reference, fold_string_cst_ctor_reference,
17790 get_base_constructor): Move ...
17791 * gimple-fold.c: ... here.
17792 (gimple_fold_stmt_to_constant_1): New function
17793 split out from ccp_fold. Take a valueization callback parameter.
17794 Valueize all operands.
17795 (gimple_fold_stmt_to_constant): New wrapper function.
17796 (fold_const_aggregate_ref_1): New function split out from
17797 fold_const_aggregate_ref. Take a valueization callback parameter.
17798 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
17799 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
17800 invariant POINTER_PLUS_EXPRs to invariant form.
17801 (vn_valueize): New function.
17802 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
17803 * tree-vrp.c (vrp_valueize): New function.
17804 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
17805 to fold statements to constants.
17806 * tree-ssa-pre.c (eliminate): Properly guard propagation of
17807 function declarations.
17808 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
17809 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
17810
5e0a7e40
RS
178112011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17812
17813 * config/h8300/predicates.md (jump_address_operand): Fix register
17814 mode check.
17815
bfe068c3
IR
178162011-03-24 Ira Rosen <ira.rosen@linaro.org>
17817
17818 * doc/invoke.texi (max-stores-to-sink): Document.
17819 * params.h (MAX_STORES_TO_SINK): Define.
17820 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
17821 if either vectorization or if-conversion is disabled.
17822 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
17823 tree-vect-data-refs.c vect_equal_offsets.
17824 (dr_equal_offsets_p): New function.
17825 (find_data_references_in_bb): Remove static.
17826 * tree-data-ref.h (find_data_references_in_bb): Declare.
17827 (dr_equal_offsets_p): Likewise.
17828 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
17829 (vect_drs_dependent_in_basic_block): Update calls to
17830 vect_equal_offsets.
17831 (vect_check_interleaving): Likewise.
17832 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
17833 (cond_if_else_store_replacement): Rename to...
17834 (cond_if_else_store_replacement_1): ... this. Change arguments and
17835 documentation.
17836 (cond_if_else_store_replacement): New function.
17837 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
17838 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
17839
4908b0bf
CLT
178402011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
17841
17842 PR target/46934
17843 * config/arm/arm.md (casesi): Use the gen_int_mode() function
17844 to subtract lower bound instead of GEN_INT().
17845
2be478a2
JW
178462011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
17847
17848 PR other/48179
17849 PR other/48221
17850 PR other/48234
17851 * doc/extend.texi (Alignment): Move section to match order in TOC.
17852 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
17853 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
17854
0c617be4
JL
178552011-03-23 Jeff Law <law@redhat.com>
17856
17857 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
17858 before removing the edge.
17859
17860 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
17861 it may have been freed by redirect_branch_edge or
17862 redirect_edge_succ_nodup.
17863
58da96fe
RG
178642011-03-23 Richard Guenther <rguenther@suse.de>
17865
c78dd519 17866 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
17867 (check_va_list_escapes): Likewise.
17868 (check_all_va_list_escapes): Likewise.
17869
b8beb4d1
RG
178702011-03-23 Richard Guenther <rguenther@suse.de>
17871
17872 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
17873 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
17874 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
17875 (alias.o): Likewise.
17876 (ipa-type-escape.o): Remove.
17877 (ipa-struct-reorg.o): Likewise.
17878 (GTFILES): Remove ipa-struct-reorg.c.
17879 * alias.c: Do not include ipa-type-escape.h.
17880 * tree-ssa-alias.c: Likewise.
17881 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
17882 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
17883 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
17884 and ipa-type-escape passes.
17885 * tree-pass.h (pass_ipa_type_escape): Remove.
17886 (pass_ipa_struct_reorg): Likewise.
17887 * ipa-struct-reorg.h: Remove.
17888 * ipa-struct-reorg.c: Likewise.
17889 * ipa-type-escape.h: Likewise.
17890 * ipa-type-escape.c: Likewise.
17891 * doc/invoke.texi (-fipa-struct-reorg): Remove.
17892 (--param struct-reorg-cold-struct-ratio): Likewise.
17893 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17894 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17895 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
17896
f137aa63
AK
178972011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17898
17899 * config/s390/2084.md: Enable all insn reservations also for z9_ec
17900 cpu attribute value.
17901 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
17902 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
17903 * config/s390/s390.c (processor_flags_table): New constant array.
17904 (s390_handle_arch_option): Remove.
17905 (s390_handle_option): Remove s390_handle_arch_option invocations
17906 and OPT_mwarn_framesize_ handling.
17907 (s390_option_override): Remove s390_handle_arch_option invocation.
17908 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
17909 warnings.
17910 * config/s390/s390.md (cpu attribute): Add z9_ec value.
17911 * config/s390/s390.opt (s390_tune, s390_arch)
17912 (march=): Replace s390_arch_option enum and values with
17913 processor_type. Set variable name to s390_arch. Set
17914 initialization value.
17915 (mtune=): Replace s390_arch_option with processor_type. Set
17916 variable name to s390_tune. Set initialization value.
17917
bf90208f
JB
179182011-03-23 Julian Brown <julian@codesourcery.com>
17919
17920 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
17921 accesses which are not naturally aligned.
17922
3460fdf3
RS
179232011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17924
17925 PR target/47553
17926 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
17927
a5c7d693
RS
179282011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17929
17930 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
17931 parameter from "int" to "enum insn_code".
17932 (expand_operand_type): New enum.
17933 (expand_operand): New structure.
17934 (create_expand_operand): New function.
17935 (create_fixed_operand, create_output_operand): Likewise
17936 (create_input_operand, create_convert_operand_to): Likewise.
17937 (create_convert_operand_from, create_address_operand): Likewise.
17938 (create_integer_operand): Likewise.
17939 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
17940 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17941 (expand_insn, expand_jump_insn): Likewise.
17942 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
17943 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
17944 (expand_movstr, expand_builtin___clear_cache): Likewise.
17945 (expand_builtin_lock_release): Likewise.
17946 * explow.c (allocate_dynamic_stack_space): Likewise.
17947 (probe_stack_range): Likewise. Allow check_stack to FAIL,
17948 and use the default handling in that case.
17949 * expmed.c (check_predicate_volatile_ok): Delete.
17950 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
17951 (emit_cstore): Likewise.
17952 * expr.c (emit_block_move_via_movmem): Likewise.
17953 (set_storage_via_setmem, expand_assignment): Likewise.
17954 (emit_storent_insn, try_casesi): Likewise.
17955 (emit_single_push_insn): Likewise. Allow the expansion to fail.
17956 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
17957 (expand_vec_shift_expr, expand_binop_directly): Likewise.
17958 (expand_twoval_unop, expand_twoval_binop): Likewise.
17959 (expand_unop_direct, emit_indirect_jump): Likewise.
17960 (emit_conditional_move, vector_compare_rtx): Likewise.
17961 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
17962 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
17963 (expand_sync_lock_test_and_set): Likewise.
17964 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
17965 (emit_unop_insn): Likewise.
17966 (expand_copysign_absneg): Change icode to an insn_code.
17967 (create_convert_operand_from_type): New function.
17968 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
17969 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17970 (expand_insn, expand_jump_insn): Likewise.
17971 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
17972 than const_int_operand for operand 2.
17973
78fadbab
AK
179742011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17975
17976 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
17977 if possible.
17978
5f02387d
NF
179792011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17980
17981 * emit-rtl.c (emit_pattern_before_noloc): New function.
17982 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
17983 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
17984 (emit_pattern_after_noloc): New function.
17985 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
17986 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
17987
fdf3e18a
NF
179882011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17989
17990 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
17991 (__ffsDI2): Likewise.
17992
42d085c1
RH
179932011-03-22 Richard Henderson <rth@redhat.com>
17994
17995 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
17996 of !TARGET_ABI_OPEN_VMS.
17997 (alpha_trampoline_init, alpha_start_function): Likewise.
17998 (alpha_expand_epilogue, alpha_file_start): Likewise.
17999 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
18000 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
18001 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
18002 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
18003 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
18004
cabbe12a
JM
180052011-03-22 Joseph Myers <joseph@codesourcery.com>
18006
18007 * config/s390/s390-opts.h: New.
18008 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
18009 s390_arch_flags, s390_warn_framesize, s390_stack_size,
18010 s390_stack_guard): Remove.
18011 (s390_handle_arch_option): Return void. Take enum
18012 s390_arch_option value instead of string and searching array.
18013 (s390_handle_option): Don't assert that global structures are in
18014 use. Access variables via opts pointer. Use error_at. Don't use
18015 sscanf for -mstack-guard= or -mstack-size=. Update call to
18016 s390_handle_arch_option.
18017 (s390_option_override): Update call to s390_handle_arch_option.
18018 (s390_emit_prologue): Use %d format for s390_stack_size in
18019 diagnostic. Use %wd for HOST_WIDE_INT.
18020 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
18021 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
18022 * config/s390/s390.opt (config/s390/s390-opts.h): New
18023 HeaderInclude entry.
18024 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
18025 s390_arch_flags, s390_warn_framesize): New Variable entries.
18026 (s390_arch_option): New Enum and EnumValue entries.
18027 (march=): Use Enum instead of Var.
18028 (mstack-guard=, mstack-size=): Use UInteger and Var.
18029 (mtune=): Use Enum.
18030
05b12036
JM
180312011-03-22 Joseph Myers <joseph@codesourcery.com>
18032
18033 * config/score/score.c (score_handle_option): Don't assert that
18034 global structures are in use. Access target_flags via opts
18035 pointer. Use value of -march= option to determine target_flags
18036 settings.
18037 * config/score/score.opt (march=): Use Enum.
18038 (score_arch): New Enum and EnumValue entries.
18039
dd51e35a
JM
180402011-03-22 Joseph Myers <joseph@codesourcery.com>
18041
18042 * config/mep/mep.c (option_mtiny_specified): Remove.
18043 (mep_option_override): Move register handling for -mivc2 from
18044 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
18045 instead of option_mtiny_specified.
18046 (mep_handle_option): Access target_flags via opts pointer. Don't
18047 assert that global structures are in use. Defer part of -mivc2
18048 handling and move it to mep_option_override.
18049 * config/mep/mep.opt (IVC2): New Mask entry.
18050 (mivc2): Use Var and Defer instead of Mask.
18051
4a8d3d91
JM
180522011-03-22 Joseph Myers <joseph@codesourcery.com>
18053
18054 * config/v850/v850-opts.h: New.
18055 * config/v850/v850.c (small_memory): Replace with
18056 small_memory_physical_max array. Make that array static const.
18057 (v850_handle_memory_option): Take integer value of argument. Take
18058 gcc_options pointer, option text and location. Return void.
18059 Update for changes to small memory structures.
18060 (v850_handle_option): Access target_flags via opts pointer. Don't
18061 assert that global structures are in use. Update calls to
18062 v850_handle_memory_option.
c78dd519
UB
18063 (v850_encode_data_area): Update references to small memory settings.
18064 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
18065 (enum small_memory_type): Move to v850-opts.h.
18066 * config/v850/v850.opt (config/v850/v850-opts.h): New
18067 HeaderInclude entry.
18068 (small_memory_max): New Variable entry.
18069 (msda): Replace by pair of options msda= and msda-. Use UInteger.
18070 (mtda, mzda): Likewise.
18071
117fdbfa
JM
180722011-03-22 Joseph Myers <joseph@codesourcery.com>
18073
18074 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
18075 pointer. Don't assert that global structures are in use.
18076
d715091c
JM
180772011-03-22 Joseph Myers <joseph@codesourcery.com>
18078
18079 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
18080 via opts pointer. Don't assert that global structures are in use.
18081
1bb721dc
JM
180822011-03-22 Joseph Myers <joseph@codesourcery.com>
18083
18084 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
18085 (munix=93): Use Var.
18086 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
18087 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
18088 * config/pa/pa-opts.h: New.
18089 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
18090 (pa_handle_option): Don't assert that global structures are in
18091 use. Access target_flags via opts pointer. Don't handle
18092 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
18093 OPT_munix_98 here.
18094 (pa_option_override): Handle deferred OPT_mfixed_range_.
18095
cd8d8754
JM
180962011-03-22 Joseph Myers <joseph@codesourcery.com>
18097
18098 * config/mn10300/mn10300-opts.h: New.
18099 * config/mn10300/mn10300.c (mn10300_processor,
18100 mn10300_tune_string): Remove.
18101 (mn10300_handle_option): Don't assert that global structures are
18102 in use. Access mn10300_processor via opts pointer. Don't handle
18103 OPT_mtune_ here.
18104 * config/mn10300/mn10300.h (enum processor_type): Move to
18105 mn10300-opts.h.
18106 (mn10300_processor): Remove.
18107 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
18108 HeaderInclude entry.
18109 (mn10300_processor): New Variable entry.
18110 (mtune=): Use Var.
18111
24e6e6b1
JM
181122011-03-22 Joseph Myers <joseph@codesourcery.com>
18113
18114 * config/microblaze/microblaze.c: Don't include opts.h.
18115 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
18116 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
18117 (mno-clearbss): Use Var and Warn.
18118
8a784afb
JM
181192011-03-22 Joseph Myers <joseph@codesourcery.com>
18120
18121 * config/m32r/m32r-opts.h: New.
18122 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
18123 (m32r_handle_option): Don't assert that global structures are in
18124 use. Access target_flags and m32r_cache_flush_func via opts
18125 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
18126 OPT_mno_flush_trap here.
18127 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
18128 include of m32r-opts.h.
18129 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
18130 HeaderInclude entry.
18131 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
18132 (mmodel=): Use Enum and Var.
18133 (m32r_model): New Enum and EnumValue entries.
18134 (mno-flush-trap): Use Var.
18135 (msdata=): Use Enum and Var.
18136 (m32r_sdata): New Enum and EnumValue entries.
18137
bbfc9a8c
JM
181382011-03-22 Joseph Myers <joseph@codesourcery.com>
18139
18140 * config/m32c/m32c.c: Don't include opts.h.
18141 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
18142 m32c_handle_option): Remove.
18143 (m32c_option_override): Check global_options_set.x_target_memregs
18144 instead of target_memregs_set.
18145 * config/m32c/m32c.h (target_memregs): Remove.
18146 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
18147 variable.
18148
e24b8335
JM
181492011-03-22 Joseph Myers <joseph@codesourcery.com>
18150
18151 * config/iq2000/iq2000-opts.h: New.
18152 * config/iq2000/iq2000.c: Don't include opts.h.
18153 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 18154 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
18155 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
18156 HeaderInclude entry.
18157 (iq2000_tune): New Variable entry.
18158 (march=): Add comment. Use Enum.
18159 (iq2000_arch): New Enum and EnumValue entries.
18160 (mcpu=): Use Enum and Var.
18161 (iq2000_tune): New Enum and EnumValue entries.
18162
e6cc0c98
JM
181632011-03-22 Joseph Myers <joseph@codesourcery.com>
18164
18165 * config/ia64/ia64-opts.h: New.
18166 * config/ia64/ia64.c (ia64_tune): Remove.
18167 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
18168 here. Use error_at.
18169 (ia64_option_override): Handle deferred OPT_mfixed_range_.
18170 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
18171 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
18172 HeaderInclude entry.
18173 (ia64_tune): New Variable entry.
18174 (mfixed-range=): Use Defer and Var.
18175 (mtune=): Use Enum and Var.
18176 (ia64_tune): New Enum and EnumValue entries.
18177
db25893c
JM
181782011-03-22 Joseph Myers <joseph@codesourcery.com>
18179
18180 * config/frv/frv-opts.h: New.
18181 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
18182 frv-opts.h.
18183 (frv_cpu_type): Remove.
18184 * config/frv/frv.c: Don't include opts.h.
18185 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 18186 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
18187 (frv_cpu_type): New Variable entry.
18188 (frv_cpu): New Enum and EnumValue entries.
18189
6c223f5d
JM
181902011-03-22 Joseph Myers <joseph@codesourcery.com>
18191
18192 * config/cris/cris.c (cris_handle_option): Access target_flags via
18193 opts pointer. Don't assert that global structures are in use.
18194 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
18195 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
18196
bbd399cf
JM
181972011-03-22 Joseph Myers <joseph@codesourcery.com>
18198
18199 * config/bfin/bfin-opts.h: New.
18200 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
18201 bfin_si_revision, bfin_workarounds): Remove.
18202 (bfin_cpus): Make static const.
18203 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
18204 not bfin_lib_id_given.
18205 (bfin_handle_option): Don't set bfin_lib_id_given. Access
18206 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 18207 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
18208 * config/bfin/bfin.h: Include bfin-opts.h.
18209 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
18210 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
18211 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
18212 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
18213 entries.
18214
5e1b4d5a
JM
182152011-03-22 Joseph Myers <joseph@codesourcery.com>
18216
18217 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
18218 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
18219 or -msoft-float here.
18220 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
18221 -msoft-float and -mhard-float.
c78dd519 18222 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
18223 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18224 msoft-float.
18225 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
18226 -msoft-float.
18227 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
18228 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
18229 not mhard-float.
18230 (LIBGCC_SPEC): Don't handle -msoft-float.
18231 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
18232 -mhard-float.
18233 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18234 msoft-float.
18235 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
18236 -mfloat-abi=*, not -msoft-float and -mhard-float.
18237 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
18238 -msoft-float.
18239 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
18240 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
18241 mhard-float and msoft-float.
18242 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
18243 mfloat-abi=soft in comments, not mhard-float and msoft-float.
18244 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
18245 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
18246 mhard-float.
18247 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
18248 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
18249 msoft-float.
18250 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
18251 not mhard-float.
18252 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
18253 not msoft-float.
18254
800d1de1
RH
182552011-03-22 Richard Henderson <rth@redhat.com>
18256
18257 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
18258 TARGET_ABI_WINDOWS_NT.
18259 (alpha_output_function_end_prologue): Likewise.
18260 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
18261 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18262 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
18263 (trap, *movsi_nt_vms): Likewise.
18264 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
18265 (*tablejump_osf_nt_internal): Remove.
18266 * config/alpha/predicates.md (input_operand): Only test Pmode.
18267
c59ddd2b
JM
182682011-03-22 Joseph Myers <joseph@codesourcery.com>
18269
18270 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
18271 via opts pointer. Use error_at. Don't assert that global
18272 structures are in use.
18273
1333f97f
JM
182742011-03-22 Joseph Myers <joseph@codesourcery.com>
18275
18276 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
18277 (ix86_handle_option): Access ix86_isa_flags and
18278 ix86_isa_flags_explicit via opts pointer. Don't assert that
18279 global structures are in use.
18280 (ix86_function_specific_save, ix86_function_specific_restore):
18281 Update ix86_isa_flags_explicit field name.
c78dd519 18282 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
18283 (ix86_isa_flags_explicit): Rename TargetSave entry to
18284 x_ix86_isa_flags_explicit.
18285
75db85d8
RH
182862011-03-22 Richard Henderson <rth@redhat.com>
18287
18288 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
18289 (alpha_option_override, direct_return): Likewise.
18290 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
18291 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
18292 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
18293 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
18294 (alpha_expand_epilogue, alpha_end_function): Likewise.
18295 (alpha_init_libfuncs): Likewise.
18296 (struct machine_function): Remove unicosmk members.
18297 (print_operand) ['t']: Remove.
18298 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
18299 unicosmk_output_module_name, unicosmk_output_common,
18300 current_section_align, unicosmk_output_text_section_asm_op,
18301 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
18302 unicosmk_section_type_flags, unicosmk_unique_section,
18303 unicosmk_asm_named_section, unicosmk_insert_attributes,
18304 unicosmk_output_align, unicosmk_defer_case_vector,
18305 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
18306 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
18307 unicosmk_output_ssib, unicosmk_add_call_info_word,
18308 unicosmk_extern_head, unicosmk_output_default_externs,
18309 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
18310 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
18311 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
18312 * config/alpha/alpha-protos.h: Update.
18313 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
18314 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
18315 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
18316 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
18317 (*mulsi_se, mulvsi3): Likewise.
18318 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
18319 (*divmodsi_internal, call, call_value, realign): Likewise.
18320 (moddi3, umoddi3): Likewise; remove duplicate expander.
18321 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
18322 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
18323 (*movdi_nofix): Remove r/U alternative.
18324 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
18325 * config/alpha/constraints.md ("U"): Remove.
18326 * config/alpha/predicates.md (call_operand"): Don't test
18327 TARGET_ABI_UNICOSMK.
18328
96e45421
JM
183292011-03-22 Joseph Myers <joseph@codesourcery.com>
18330
18331 * target.def (handle_option): Take gcc_options and
18332 cl_decoded_option pointers and location_t.
18333 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
18334 * doc/tm.texi: Regenerate.
18335 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
18336 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
18337 * lto-opts.c (lto_reissue_options): Generate option structure for
18338 targetm.handle_option call.
18339 * opts.c (target_handle_option): Update call to
18340 targetm.handle_option. Remove assertions about values now passed
18341 down to hook.
18342 * targhooks.c (default_target_handle_option): New.
18343 * targhooks.h (default_target_handle_option): Declare.
18344 * config/alpha/alpha.c: Include opts.h.
18345 (alpha_handle_option): Update to new hook interface.
18346 * config/arm/arm.c: Include opts.h.
18347 (arm_handle_option): Update to new hook interface.
18348 * config/arm/t-arm (arm.o): Update dependencies.
18349 * config/bfin/bfin.c: Include opts.h.
18350 (bfin_handle_option): Update to new hook interface.
18351 * config/cris/cris.c: Include opts.h.
18352 (cris_handle_option): Update to new hook interface.
18353 * config/frv/frv.c: Include opts.h.
18354 (frv_handle_option): Update to new hook interface.
18355 * config/i386/i386.c: Include opts.h.
18356 (ix86_handle_option): Update to new hook interface.
18357 (ix86_valid_target_attribute_inner_p): Generate option structure
18358 for call to ix86_handle_option.
18359 * config/i386/t-i386 (i386.o): Update dependencies.
18360 * config/ia64/ia64.c: Include opts.h.
18361 (ia64_handle_option): Update to new hook interface.
18362 * config/ia64/t-ia64 (ia64.o): Update dependencies.
18363 * config/iq2000/iq2000.c: Include opts.h.
18364 (iq2000_handle_option): Update to new hook interface.
18365 * config/m32c/m32c.c: Include opts.h.
18366 (m32c_handle_option): Update to new hook interface.
18367 * config/m32r/m32r.c: Include opts.h.
18368 (m32r_handle_option): Update to new hook interface.
18369 * config/m68k/m68k.c: Include opts.h.
18370 (m68k_handle_option): Update to new hook interface.
18371 * config/mep/mep.c: Include opts.h.
18372 (mep_handle_option): Update to new hook interface.
18373 * config/microblaze/microblaze.c: Include opts.h.
18374 (microblaze_handle_option): Update to new hook interface.
18375 * config/mips/mips.c: Include opts.h.
18376 (mips_handle_option): Update to new hook interface.
18377 * config/mn10300/mn10300.c: Include opts.h.
18378 (mn10300_handle_option): Update to new hook interface.
18379 * config/pa/pa.c: Include opts.h.
18380 (pa_handle_option): Update to new hook interface.
18381 * config/pdp11/pdp11.c: Include opts.h.
18382 (pdp11_handle_option): Update to new hook interface.
18383 * config/rs6000/rs6000.c: Include opts.h.
18384 (rs6000_handle_option): Update to new hook interface.
18385 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
18386 * config/rx/rx.c: Include opts.h.
18387 (rx_handle_option): Update to new hook interface.
18388 * config/s390/s390.c: Include opts.h.
18389 (s390_handle_option): Update to new hook interface.
18390 * config/score/score.c: Include opts.h.
18391 (score_handle_option): Update to new hook interface.
18392 * config/sh/sh.c: Include opts.h.
18393 (sh_handle_option): Update to new hook interface.
18394 * config/sparc/sparc.c: Include opts.h.
18395 (sparc_handle_option): Update to new hook interface.
18396 * config/v850/v850.c: Include opts.h.
18397 (v850_handle_option): Update to new hook interface.
18398
66017846
JM
183992011-03-22 Joseph Myers <joseph@codesourcery.com>
18400
18401 * gcc.c (driver_unknown_option_callback): Only permit and save
18402 unknown -Wno- options.
18403 (driver_wrong_lang_callback): Save options directly instead of via
18404 driver_unknown_option_callback.
18405
e8b97ccd
EB
184062011-03-22 Eric Botcazou <ebotcazou@adacore.com>
18407
18408 * combine.c (simplify_set): Try harder to find the best CC mode when
18409 simplifying a nested COMPARE on the RHS.
18410
ebb9f8b0
JM
184112011-03-22 Joseph Myers <joseph@codesourcery.com>
18412
18413 * config/alpha/gnu.h: Remove.
18414 * config/arc: Remove directory.
18415 * config/arm/netbsd.h: Remove.
18416 * config/arm/t-pe: Remove.
18417 * config/crx: Remove directory.
18418 * config/i386/netbsd.h: Remove.
18419 * config/m68hc11: Remove directory.
18420 * config/m68k/uclinux-oldabi.h: Remove.
18421 * config/mcore/mcore-pe.h: Remove.
18422 * config/mcore/t-mcore-pe: Remove.
18423 * config/netbsd-aout.h: Remove.
18424 * config/rs6000/gnu.h: Remove.
18425 * config/sh/sh-symbian.h: Remove.
18426 * config/sh/symbian-base.c: Remove.
18427 * config/sh/symbian-c.c: Remove.
18428 * config/sh/symbian-cxx.c: Remove.
18429 * config/sh/symbian-post.h: Remove.
18430 * config/sh/symbian-pre.h: Remove.
18431 * config/sh/t-symbian: Remove.
18432 * config/svr3.h: Remove.
18433 * config/vax/netbsd.h: Remove.
18434 * config.build: Don't handle i[34567]86-*-pe.
18435 * config.gcc: Remove handling of deprecations for most deprecated
18436 targets.
18437 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
18438 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
18439 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
18440 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
18441 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
18442 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
18443 Remove cases.
18444 * config.host: Don't handle i[34567]86-*-pe.
18445 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
18446 (ASM_SPEC32): Don't handle -mcall-gnu.
18447 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
18448 -mcall-gnu.
18449 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
18450 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
18451 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
18452 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
18453 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
18454 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
18455 conditional on SYMBIAN.
18456 * configure.ac: Don't handle powerpc*-*-gnu*.
18457 * configure: Regenerate.
18458 * doc/extend.texi (interrupt attribute): Don't mention CRX.
18459 * doc/install-old.texi (m6811, m6812): Don't mention.
18460 * doc/install.texi (arc-*-elf*): Don't document multilib option.
18461 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
18462 (m68k-uclinuxoldabi): Don't mention.
18463 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
18464 Remove.
18465 (-mcall-gnu): Remove.
18466 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
18467 families): Remove constraint documentation.
18468
999a7d80
MS
184692011-03-22 Marius Strobl <marius@FreeBSD.org>
18470
18471 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
18472 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
18473 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
18474
45540bcf
MM
184752011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18476
18477 PR target/48226
18478 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
18479 vector when peeking at the next token for vector, don't expand the
18480 keywords.
18481
980a0ff4
GJL
184822011-03-21 Georg-Johann Lay <avr@gjlay.de>
18483
18484 * config/avr/avr-protos.h (expand_epilogue): Change prototype
18485 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
18486 * config/avr/avr.c (init_cumulative_args)
18487 (avr_function_arg_advance): Use it.
18488 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
18489 sibcall epilogues.
18490 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
18491 (avr_function_ok_for_sibcall): ...this new function.
18492 (avr_lookup_function_attribute1): New static Function.
18493 (avr_naked_function_p, interrupt_function_p)
18494 (signal_function_p, avr_OS_task_function_p)
18495 (avr_OS_main_function_p): Use it.
18496 * config/avr/avr.md ("sibcall", "sibcall_value")
18497 ("sibcall_epilogue"): New expander.
18498 ("*call_insn", "*call_value_insn"): New insn.
18499 ("call_insn", "call_value_insn"): Remove
18500 ("call", "call_value", "epilogue"): Change expander to handle
18501 sibling calls.
18502
49168734
NC
185032011-03-21 Nick Clifton <nickc@redhat.com>
18504
18505 * doc/invoke.texi (Overall Options): Move closing brace to end of
18506 options list.
18507 (Optimization Options): Add missing @gol.
18508 (Directory Options): Likewise.
18509 (i386 and x86-64 Options): Likewise.
18510 (RS6000 and PowerPC Options): Likewise.
18511 (i386 and x86-64 Windows Options): Likewise.
18512 (V850 Options): Add text missing from descriptions.
18513
bdfe906f
RH
185142011-03-22 Richard Henderson <rth@redhat.com>
18515
18516 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
18517 (avr_incoming_return_addr_rtx): New.
18518 (emit_push_byte): New.
18519 (expand_prologue): Use it. Remove incorrect dwarf annotation for
18520 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
18521 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
18522 (emit_pop_byte): New.
18523 (expand_epilogue): Use it. Pop frame pointer by bytes.
18524 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
18525 (INCOMING_RETURN_ADDR_RTX): New.
18526 (INCOMING_FRAME_SP_OFFSET): New.
18527 (ARG_POINTER_CFA_OFFSET): New.
18528 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
18529 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
18530 (pophi): Remove.
18531
d090a5aa
RH
18532 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
18533
fdf3e18a
NF
185342011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18535
18536 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
18537 (FUNCTION_ARG_ADVANCE): Likewise.
18538 * tm.texi.in: Change references to them to hook references.
18539 * tm.texi: Regenerate.
18540 * targhooks.c (default_function_arg): Eliminate check for target
18541 macro.
18542 (default_function_incoming_arg): Likewise.
18543 (default_function_arg_advance): Likewise.
c78dd519 18544 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
18545 (function_arg_advance): Likewise.
18546 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
18547
009d3fcf
NF
185482011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18549
18550 * tree.c (build_call_1): New function.
18551 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
18552
7bec30e1
RG
185532011-03-22 Richard Guenther <rguenther@suse.de>
18554
18555 PR tree-optimization/48228
18556 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
18557 for single-arg PHIs.
18558
0b7e851b
AB
185592011-03-22 Andrey Belevantsev <abel@ispras.ru>
18560
18561 PR rtl-optimization/48143
18562 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
18563 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
18564 sse2_cvtps2pd): Likewise.
18565
d89afca5
AK
185662011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18567
18568 * recog.c (canonicalize_change_group): Use validate_unshare_change.
18569
f471fe72
RG
185702011-03-22 Richard Guenther <rguenther@suse.de>
18571
18572 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
18573 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
18574 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
18575 and REALIGN_LOAD_EXPR.
18576 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
18577 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
18578 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
18579 DOT_PROD_EXPR case ...
18580 (expand_expr_real_2): ... here.
18581 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
18582 and REALIGN_LOAD_EXPR.
18583 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
18584 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
18585 (vect_create_epilog_for_reduction): Likewise.
18586 (vectorizable_reduction): Likewise.
18587 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
18588 * tree-vect-stmts.c (vectorizable_load): Likewise.
18589
f2f81d57
EB
185902011-03-22 Eric Botcazou <ebotcazou@adacore.com>
18591
18592 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
18593
ab081dd6
AK
185942011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18595
18596 * config/s390/s390.c (s390_delegitimize_address): Fix offset
18597 handling for PLTOFF/GOTOFF.
18598
6fd5332b
NC
185992011-03-22 Nick Clifton <nickc@redhat.com>
18600
18601 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
18602 trailing backslash from the end of the macro definition.
18603
01841ac0
AK
186042011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18605
18606 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
18607 and PLT unspecs.
18608
2ef6ce06
RS
186092011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
18610
18611 * expr.h (prepare_operand): Move to...
18612 * optabs.h (prepare_operand): ...here and change the insn code
18613 parameter from "int" to "enum insn_code".
18614 (insn_operand_matches): Declare.
18615 * expr.c (init_expr_target): Use insn_operand_matches.
18616 (compress_float_constant): Likewise.
18617 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
18618 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
18619 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
18620 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
18621 Likewise.
2ef6ce06
RS
18622 (gen_cond_trap): Likewise.
18623 (prepare_operand): Likewise. Change icode to an insn_code.
18624 (insn_operand_matches): New function.
18625 * reload.c (find_reloads_address_1): Use insn_operand_matches.
18626 * reload1.c (gen_reload): Likewise.
18627 * targhooks.c (default_secondary_reload): Likewise.
18628
9e43ad68
UB
186292011-03-21 Uros Bizjak <ubizjak@gmail.com>
18630
9a96da32
UB
18631 * config/alpha/alpha.md (unspec): New define_c_enum.
18632 (unspecv): Ditto.
18633
186342011-03-21 Uros Bizjak <ubizjak@gmail.com>
18635
18636 PR debug/48214
9e43ad68
UB
18637 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
18638 between a call and its CALL_ARG_LOCATION note.
18639
31408f60
EB
186402011-03-21 Eric Botcazou <ebotcazou@adacore.com>
18641
18642 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
18643
186442011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
18645
18646 PR c/42544
18647 PR c/48197
18648 * c-common.c (shorten_compare): If primopN is first sign-extended
18649 to opN and then zero-extended to result type, set primopN to opN.
18650
9dfd55f5
DJ
186512011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
18652
18653 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
18654 for barrier handlers.
18655
f3c33d9d
MM
186562011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18657
18658 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
18659 UNSPEC constants to be in the unspec enumeration, and redefine
18660 all UNSPECV constants to be in the unspecv enumeration, so that
18661 dumps print which unspec/unspec_volatile this is.
18662 * config/rs6000/vector.md (UNSPEC_*): Ditto.
18663 * config/rs6000/paired.md (UNSPEC_*): Ditto.
18664 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
18665 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
18666 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
18667
18668 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
18669 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
18670 UNSPECV_LWSYNC, since these are used as unspec_volatile.
18671 * config/rs6000/sync.md (isync, lwsync): Ditto.
18672
ac43f774
RG
186732011-03-21 Richard Guenther <rguenther@suse.de>
18674
18675 * params.def (lto-min-partition): Fix typo.
18676
411cdbd8
RG
186772011-03-21 Richard Guenther <rguenther@suse.de>
18678
18679 PR c/47939
18680 * c-decl.c (grokdeclarator): Drop to the main variant only
18681 for array types. Drop flag_gen_aux_info check.
18682
1cd9e416
RG
186832011-03-21 Richard Guenther <rguenther@suse.de>
18684
18685 PR translation/47911
18686 * params.def (lto-partitions): Fix typo.
18687 (lto-min-partition): Fix wording.
18688
ada5ad67
AT
186892011-03-21 Andreas Tobler <andreast@fgznet.ch>
18690
18691 * config/rs6000/t-freebsd: Remove duplication from file.
18692
f9613c9a
RG
186932011-03-21 Richard Guenther <rguenther@suse.de>
18694
18695 PR middle-end/47661
18696 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
18697
9bfbc1eb
RG
186982011-03-21 Richard Guenther <rguenther@suse.de>
18699
18700 PR lto/48210
18701 * params.def (lto-partitions): Require at least 1 partition.
18702
a2268084
RO
187032011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18704
18705 * gthr-solaris.h: Remove.
18706 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
18707 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
18708 (LIB_SPEC): Likewise.
18709 * config/sol2.opt (threads): Remove.
9e43ad68 18710 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
18711 (sparc*-*-solaris2*): Likewise.
18712 * configure.ac (enable_threads): Enable solaris support.
18713 * configure: Regenerate.
9e43ad68 18714 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
18715 * doc/install.texi (Configuration, --enable-threads=lib): Remove
18716 solaris.
18717
c43d9a1b
RO
187182011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18719
18720 * config.gcc: Obsolete *-*-solaris2.8*.
18721 * doc/install.texi (Specific, *-*-solaris2*): Document it.
18722
084239f4
RO
187232011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18724
18725 PR bootstrap/48135
18726 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
18727 reference. Solaris 8 perl works.
18728
64cadbe7
RO
187292011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18730
18731 PR bootstrap/48135
18732 * doc/install.texi (Prerequisites): Move jar etc. up.
18733 Explain support library version requirements.
18734
eb975109
RO
187352011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18736
18737 PR bootstrap/48135
18738 * doc/install.texi (Prerequisites): Move Perl to build
18739 requirements. Always necessary on Solaris 2 with Sun ld.
18740
8a509ffd
RO
187412011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18742
18743 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
18744 binutils 2.21.
18745 (Specific, i?86-*-solaris2.[89]): Likewise.
18746 (Specific, i?86-*-solaris2.10): Likewise.
18747 (Specific, mips-sgi-irix6): Likewise.
18748 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
18749 Update for binutils 2.21.
18750
8fbc58a1
RO
187512011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18752
18753 * configure.ac (gcc_cv_lto_plugin): Fix typo.
18754 Allow -fuse-linker-plugin for non-default plugin linker.
18755 * configure: Regenerate.
18756
7e84ad0b
NP
187572011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
18758
18759 PR bootstrap/48167
18760 * gengtype.c (files_rules): Added rule for cp/parser.h.
18761
2f36e14b
JJ
187622011-03-21 Jakub Jelinek <jakub@redhat.com>
18763
18764 PR target/48213
18765 * config/s390/s390.c (s390_delegitimize_address): Don't call
18766 lowpart_subreg if orig_x has BLKmode.
18767
62d784f7
KT
187682011-03-21 Kai Tietz <ktietz@redhat.com>
18769
18770 PR target/12171
9e43ad68
UB
18771 * doc/plugins.texi: Adjust documentation for plugin register_callback.
18772 * tree.h (attribute_spec): Add new member affects_type_identity.
18773 * attribs.c (empty_attribute_table): Adjust attribute_spec
18774 initializers.
62d784f7
KT
18775 * config/alpha/alpha.c: Likewise.
18776 * config/arc/arc.c: Likewise.
18777 * config/arm/arm.c: Likewise.
18778 * config/avr/avr.c: Likewise.
18779 * config/bfin/bfin.c: Likewise.
18780 * config/crx/crx.c: Likewise.
18781 * config/darwin.h: Likewise.
18782 * config/h8300/h8300.c: Likewise.
18783 * config/i386/cygming.h: Likewise.
18784 * config/i386/i386.c: Likewise.
18785 * config/ia64/ia64.c: Likewise.
18786 * config/m32c/m32c.c: Likewise.
18787 * config/m32r/m32r.c: Likewise.
18788 * config/m68hc11/m68hc11.c: Likewise.
18789 * config/m68k/m68k.c: Likewise.
18790 * config/mcore/mcore.c: Likewise.
18791 * config/mep/mep.c: Likewise.
18792 * config/microblaze/microblaze.c: Likewise.
18793 * config/mips/mips.c: Likewise.
18794 * config/rs6000/rs6000.c: Likewise.
18795 * config/rx/rx.c: Likewise.
18796 * config/sh/sh.c: Likewise.
18797 * config/sol2.h: Likewise.
18798 * config/sparc/sparc.c: Likewise.
18799 * config/spu/spu.c: Likewise.
18800 * config/stormy16/stormy16.c: Likewise.
18801 * config/v850/v850.c: Likewise.
18802
54833ec0
CLT
188032011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
18804
18805 * simplify-rtx.c (simplify_binary_operation_1): Handle
18806 (xor (and A B) C) case when B and C are both constants.
18807
14a41392
MX
188082011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
18809
18810 * tree-dfa.c (add_referenced_var): Fix typo in comment.
18811
806c3492
EB
188122011-03-20 Eric Botcazou <ebotcazou@adacore.com>
18813
18814 PR bootstrap/48168
18815 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
18816
65e0a0f3
JJ
188172011-03-20 Jakub Jelinek <jakub@redhat.com>
18818
18819 PR rtl-optimization/48156
18820 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
18821 assume df and df_lr are not NULL.
18822
b6a75dda
RR
188232011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18824
18825 PR debug/48023
18826 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
18827 between a call and its CALL_ARG_LOCATION note.
18828
5969b52d
KK
188292011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
18830
18831 PR debug/48178
18832 * config/sh/sh.c (find_barrier): Don't emit a constant pool
18833 between a call and its corresponding CALL_ARG_LOCATION note.
18834
f773c2bd
AS
188352011-03-19 Anatoly Sokolov <aesok@post.ru>
18836
18837 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
18838 instead of loop. Use HARD_REGISTER_NUM_P predicate.
18839 * haifa-sched.c (setup_ref_regs): Ditto.
18840 * caller-save.c (add_used_regs_1): Ditto.
18841 * dse.c (look_for_hardregs): Ditto.
18842 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
18843 * sched-rgn.c (check_live_1): Ditto.
18844
8bf872f9
JM
188452011-03-18 Joseph Myers <joseph@codesourcery.com>
18846
18847 * c-decl.c (diagnose_mismatched_decls): Give an error for
18848 redefining a typedef with variably modified type.
18849
ff8e2159
JM
188502011-03-18 Joseph Myers <joseph@codesourcery.com>
18851
18852 * c-decl.c (grokfield): Don't allow typedefs for structures or
18853 unions with no tag by default.
18854 * doc/extend.texi (Unnamed Fields): Update.
18855
16cc4440
UB
188562011-03-18 Uros Bizjak <ubizjak@gmail.com>
18857
18858 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
18859 Rewrite using indirect functions.
18860 (lwp_slwpcb): Ditto.
18861 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
18862 (avx_vinsertf128<mode>): Ditto.
18863
e101e12e
AK
188642011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18865
18866 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
18867 unspecs.
18868
4627c7fb
AK
188692011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18870
18871 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 18872 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 18873
2d36b47f
MK
188742011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
18875
18876 PR rtl-optimization/48170
18877 * gcse.c (hoist_code): Remove bogus asserts.
18878
2a3d7659
JL
188792011-03-18 Georg-Johann Lay <avr@gjlay.de>
18880
18881 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
18882 computation for prologue/epilogue.
18883
34c3ef05
RO
188842011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18885
18886 * Makefile.in (check-consistency): Remove.
18887
81f2b976
JJ
188882011-03-18 Jakub Jelinek <jakub@redhat.com>
18889
18890 PR debug/48176
18891 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
18892 arange_table_in_use is 0, but either text_section_used or
18893 cold_text_section_used is true. Don't call it if
18894 !info_section_emitted.
18895
68fd7765
AS
188962011-03-18 Anatoly Sokolov <aesok@post.ru>
18897
18898 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
18899 FUNCTION_VALUE_REGNO_P): Remove.
18900 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
18901 Remove.
18902 * config/avr/avr.c (avr_ret_register): Make static inline.
18903 (avr_function_value_regno_p): New function.
18904 (avr_libcall_value): Make static. Add 'func' argument.
18905 (avr_function_value): Make static. Rename 'func' argument to
18906 'fn_decl_or_type', forward it to avr_libcall_value. Call
18907 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 18908 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 18909
b4ef8aac
JM
189102011-03-18 Jason Merrill <jason@redhat.com>
18911
18912 PR c++/23372
18913 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
18914
09a52fc3
RG
189152011-03-18 Richard Guenther <rguenther@suse.de>
18916
18917 * doc/install.texi (--enable-gold): Remove.
18918 (--with-plugin-ld): Document.
18919 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
18920
2a3d7659 189212011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
18922
18923 PR middle-end/47790
18924 * expr.c (optimize_bitfield_assignment_op): Revamp to work
18925 again after expansion changes.
18926
2abbb0fe
CLT
189272011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
18928
18929 * combine.c (try_combine): Do simplification only call of
18930 subst() on i2 even when i1 is present. Update comments.
18931
2efd0aa6
KK
189322011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
18933
18934 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
18935 and UNSPEC_PCREL_SYMOFF.
18936
30a49b23
AK
189372011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18938
18939 * config/s390/s390.md: Use define_c_enum for the unspec constant
18940 definitions.
18941
419e1853
JJ
189422011-03-18 Richard Henderson <rth@redhat.com>
18943 Jakub Jelinek <jakub@redhat.com>
18944
18945 PR bootstrap/48161
18946 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
18947 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
18948
24da2019
AS
189492011-03-17 Anatoly Sokolov <aesok@post.ru>
18950
18951 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18952 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
18953 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
18954 Change return type to bool.
18955 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18956
a82ff31f
JJ
189572011-03-17 Jakub Jelinek <jakub@redhat.com>
18958
8b29c87a
JJ
18959 PR debug/48163
18960 * var-tracking.c (prepare_call_arguments): If CALL target
18961 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
18962 pc instead of looking it up using cselib_lookup and use
18963 Pmode for it if x has VOIDmode.
18964 * dwarf2out.c (gen_subprogram_die): If also both first and
18965 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
18966
a82ff31f
JJ
18967 PR debug/48163
18968 * function.c (assign_parms): For data.passed_pointer parms
18969 use MEM of data.entry_parm instead of data.entry_parm itself
18970 as DECL_INCOMING_RTL.
18971 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
18972 also when passed and declared mode is the same, DECL_RTL
18973 is a MEM with pseudo as address and DECL_INCOMING_RTL is
18974 a MEM too.
18975
82ce305c
JL
189762011-03-16 Jeff Law <law@redhat.com>
18977
18978 PR rtl-optimization/37273
18979 * ira-costs.c (scan_one_insn): Detect constants living in memory and
18980 handle them like argument loads from stack slots. Do not double
18981 count memory for memory constants and argument loads from stack slots.
18982
fe58e02b
L
189832011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18984
18985 PR debug/48160
18986 * var-tracking.c (prepare_call_arguments): Check SUBREG.
18987
6fc4dbc7
L
189882011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18989
18990 PR target/48171
18991 * config/i386/i386.opt: Add Save to -mavx and -mfma.
18992
db3ed0b3
JJ
189932011-03-17 Jakub Jelinek <jakub@redhat.com>
18994
8054a389
JJ
18995 PR bootstrap/48153
18996 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
18997 if dwarf_strict.
18998 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
18999 Clear call_arg_locations and call_arg_loc_last always.
19000
db3ed0b3
JJ
19001 PR middle-end/48152
19002 * var-tracking.c (prepare_call_arguments): If argument needs to be
19003 passed by reference, adjust argtype and mode.
19004
1bce4ff3
RG
190052011-03-17 Richard Guenther <rguenther@suse.de>
19006
19007 PR middle-end/48134
19008 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
19009 a value make sure to fold the statement.
19010
7c71147d
CLT
190112011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
19012
19013 PR target/43872
19014 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
19015 return condition with !cfun->calls_alloca.
19016
0e1ee172
RG
190172011-03-17 Richard Guenther <rguenther@suse.de>
19018
19019 PR bootstrap/48148
19020 * lto-cgraph.c (input_overwrite_node): Clear the abstract
19021 origin for decls in other ltrans units.
19022 (input_varpool_node): Likewise.
19023
f8bce518
RG
190242011-03-17 Richard Guenther <rguenther@suse.de>
19025
19026 PR middle-end/48165
19027 * tree-object-size.c (compute_object_offset): Properly return
19028 the offset operand of MEM_REFs as sizetype.
19029
1b6fa860
JJ
190302011-03-17 Jakub Jelinek <jakub@redhat.com>
19031
dabd47e7
JJ
19032 PR rtl-optimization/48141
19033 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
19034 * dse.c: Include params.h.
19035 (active_local_stores_len): New variable.
19036 (add_wild_read, dse_step1): Clear it when setting active_local_stores
19037 to NULL.
19038 (record_store, check_mem_read_rtx): Decrease it when removing
19039 from the chain.
19040 (scan_insn): Likewise. Increase it when adding to chain, if it
19041 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
19042 set active_local_stores to NULL before the addition.
19043 * Makefile.in (dse.o): Depend on $(PARAMS_H).
19044
1b6fa860
JJ
19045 PR rtl-optimization/48141
19046 * dse.c (record_store): If no positions are needed in an insn
19047 that cannot be deleted, at least unchain it from active_local_stores.
19048
7b5cb7d6
DS
190492011-03-16 Dodji Seketeli <dodji@redhat.com>
19050
19051 PR debug/47510
19052 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
19053 (lookup_type_die_strip_naming_typedef): ... here.
19054 (get_context_die): Use it.
19055 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
19056 the anonymous struct named by the naming typedef.
19057
585e9d9d
L
190582011-03-16 H.J. Lu <hongjiu.lu@intel.com>
19059
19060 PR target/48154
19061 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
19062 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19063
6261ab0e
JL
190642011-03-16 Jeff Law <law@redhat.com>
19065
19066 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 19067 check for operands of conditional. Allow type to be a pointer.
6261ab0e 19068
0b0081ec
RG
190692011-03-16 Richard Guenther <rguenther@suse.de>
19070
19071 PR tree-optimization/48149
19072 * fold-const.c (fold_binary_loc): Fold
19073 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
19074
64a3d647
RG
190752011-03-16 Richard Guenther <rguenther@suse.de>
19076
19077 PR tree-optimization/26134
19078 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
19079 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
19080 (non_rewritable_mem_ref_base): Handle complex type component
19081 accesses, constrain offsets for vector and complex extracts
19082 more properly.
19083
ef13324e
RG
190842011-03-16 Richard Guenther <rguenther@suse.de>
19085
19086 PR tree-optimization/48146
19087 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
19088 operands avoiding the need for renaming.
19089
f0eddb90
RG
190902011-03-16 Richard Guenther <rguenther@suse.de>
19091
19092 * gimple-fold.c (maybe_fold_reference): Open-code relevant
19093 constant folding. Move MEM_REF canonicalization first.
19094 Rely on fold_const_aggregate_ref for initializer folding.
19095 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
19096
e42348b8
JJ
190972011-03-16 Jakub Jelinek <jakub@redhat.com>
19098
29f10e71
JJ
19099 PR middle-end/48136
19100 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
19101 arg0/arg1 or their arguments are always fold converted to matching
19102 types.
19103
e42348b8
JJ
19104 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
19105 to nargs.
19106
55b46574
RO
191072011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19108
19109 PR lto/46944
19110 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
19111 Handle in-tree gold.
19112 (ld_vers): Extract binutils version for gold.
19113 (gcc_cv_ld_hidden): Handle gold here.
19114 (gcc_cv_lto_plugin): Determine level of linker plugin support.
19115 * configure: Regenerate.
19116 * config.in: Regenerate.
19117 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
19118 -fuse-linker-plugin otherwise.
19119 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
19120 (LINK_COMMAND_SPEC): Use it.
19121 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
19122
2b1c5433
JJ
191232011-03-16 Jakub Jelinek <jakub@redhat.com>
19124
c2969d8e
JJ
19125 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
19126 * calls.c: Remove debug.h include.
19127 (emit_call_1): Don't call virtual_call_token debug hook.
19128 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
19129 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
19130 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
19131 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
19132 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
19133 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
19134 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
19135 dwarf2out_virtual_call): Remove.
19136 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
19137 copy_call_info and virtual_call hooks.
19138 (dwarf2out_init): Don't initialize vcall_insn_table,
19139 debug_dcall_section and debug_vcall_section.
19140 (prune_unused_types): Don't mark nodes from dcall_table.
19141 (dwarf2out_finish): Don't output dcall or vcall tables.
19142 * final.c (final_scan_insn): Don't call direct_call or
19143 virtual_call debug hooks.
19144 * debug.h (struct gcc_debug_hooks): Remove direct_call,
19145 virtual_call_token, copy_call_info and virtual_call hooks.
19146 (debug_nothing_uid): Remove prototype.
19147 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
19148 copy_call_info and virtual_call hooks.
19149 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19150 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
19151 * debug.c (do_nothing_debug_hooks): Likewise.
19152 (debug_nothing_uid): Remove.
19153 * doc/invoke.texi (-fenable-icf-debug): Remove.
19154 * common.opt (-fenable-icf-debug): Likewise.
19155
325f5379
JJ
19156 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
19157 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
19158 call's MEM. Handle functions returning aggregate through a hidden
19159 first pointer. For virtual calls add clobbered pc to call arguments
19160 chain.
19161 * dwarf2out.c (gen_subprogram_die): Emit
19162 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
19163 can't be emitted.
19164
a58a8e4b
JJ
19165 PR debug/45882
19166 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
19167 * rtl.h (ENTRY_VALUE_EXP): Define.
19168 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
19169 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
19170 * print-rtl.c (print_rtx): Likewise.
19171 * gengtype.c (adjust_field_rtx_def): Likewise.
19172 * var-tracking.c (vt_add_function_parameter): Adjust
19173 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
19174 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
19175 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
19176 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
19177 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
19178
2b1c5433
JJ
19179 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
19180 Call var_location debug hook even on CALL_INSNs.
19181 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
19182 * rtl.def (ENTRY_VALUE): New.
19183 * dwarf2out.c: Include cfglayout.h.
19184 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
19185 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
19186 (struct call_arg_loc_node): New type.
19187 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
19188 tail_call_site_count): New variables.
19189 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
19190 DW_TAG_GNU_call_site_parameter.
19191 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
19192 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
19193 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
19194 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
19195 and DW_AT_GNU_all_source_call_sites.
19196 (mem_loc_descriptor): Handle ENTRY_VALUE.
19197 (add_src_coords_attributes): Don't add enything if
19198 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
19199 (dwarf2out_abstract_function): Save and clear call_arg_location,
19200 call_site_count and tail_call_site_count around dwarf2out_decl call.
19201 (gen_call_site_die): New function.
19202 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
19203 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
19204 (dwarf2out_function_decl): Clear call_arg_locations,
19205 call_arg_loc_last, set call_site_count and tail_call_site_count
19206 to -1 and free block_map.
19207 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
19208 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
19209 followed by any real instructions.
19210 (dwarf2out_begin_function): Set call_site_count and
19211 tail_call_site_count to 0.
19212 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
19213 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
19214 attempt to force a DIE for it and worst case remove the attribute.
19215 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
19216 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
19217 the decl itself.
19218 * var-tracking.c: Include tm_p.h.
19219 (vt_stack_adjustments): For calls call note_register_arguments.
19220 (argument_reg_set): New variable.
19221 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
19222 ensure the VALUE is resolved.
19223 (call_arguments): New variable.
19224 (prepare_call_arguments): New function.
19225 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
19226 (struct expand_loc_callback_data): Add ignore_cur_loc field.
19227 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
19228 always use the best expression.
19229 (vt_expand_loc): Add ignore_cur_loc argument.
19230 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
19231 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
19232 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
19233 note for all calls.
19234 (vt_add_function_parameter): Use cselib_lookup_from_insn.
19235 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
19236 argument. Don't call cselib_preserve_only_values and
19237 cselib_reset_table.
19238 (note_register_arguments): New function.
19239 (vt_initialize): Compute argument_reg_set. Call
19240 vt_add_function_parameters before processing basic blocks instead of
19241 afterwards. For calls call prepare_call_arguments before calling
19242 cselib_process_insn.
19243 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
19244 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
19245 (var-tracking.o): Depend on $(TM_P_H).
19246 * cfglayout.h (insn_scope): New prototype.
19247 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
19248 * cfglayout.c (insn_scope): No longer static.
19249 * insn-notes.def (CALL_ARG_LOCATION): New.
19250 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
19251 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
19252 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
19253 nothing for DECL_EXTERNAL BLOCK_VARS.
19254
9ef13bd0
AM
192552011-03-16 Alan Modra <amodra@gmail.com>
19256
19257 PR target/45844
19258 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
19259 create invalid offset address for vsx splat insn.
19260 * config/rs6000/predicates.md (splat_input_operand): New.
19261 * config/rs6000/vsx.md (vsx_splat_*): Use it.
19262
56b67510
XDL
192632011-03-15 Xinliang David Li <davidxl@google.com>
19264
19265 PR c/47837
19266 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
19267 (normalize_preds): New function.
19268 (is_use_properly_guarded): Normalize def predicates.
19269
80fffdef
RR
192702011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
19271
732f37c6 19272 PR target/46788
80fffdef
RR
19273 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
19274 in the output template.
19275
930672ad
RG
192762011-03-15 Richard Guenther <rguenther@suse.de>
19277
19278 PR middle-end/47650
19279 * tree-pretty-print.c (dump_function_declaration): Properly
19280 dump unprototyped and varargs function types.
19281
c7ee7b45
RG
192822011-03-15 Richard Guenther <rguenther@suse.de>
19283
19284 PR tree-optimization/13954
19285 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
19286 and friends.
19287
b2ad5e37
RG
192882011-03-15 Richard Guenther <rguenther@suse.de>
19289
19290 PR tree-optimization/48037
19291 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
19292 selects into BIT_FIELD_REFs.
19293 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
19294 vector select.
19295
7ee93d4e
JJ
192962011-03-15 Jakub Jelinek <jakub@redhat.com>
19297
19298 PR tree-optimization/48129
19299 * builtins.c (fold_builtin_snprintf): Convert to type of
19300 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
19301 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
19302
e106efc7
RG
193032011-03-15 Richard Guenther <rguenther@suse.de>
19304
19305 PR tree-optimization/41490
19306 * tree-ssa-dce.c (propagate_necessity): Handle returns without
19307 value but with VUSE.
19308 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
19309 return statements.
19310 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
19311 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
19312 * tree-tailcall.c (find_tail_calls): Ignore returns.
19313
17dea42f
RG
193142011-03-15 Richard Guenther <rguenther@suse.de>
19315
19316 PR middle-end/48031
19317 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
19318 or variable-indexed array accesses when in gimple form.
19319
01c77a60
RG
193202011-03-15 Richard Guenther <rguenther@suse.de>
19321
16cc4440 19322 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 19323
77b0791e
AM
193242011-03-15 Alan Modra <amodra@gmail.com>
19325
19326 PR target/48032
19327 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
19328 presume symbol_refs without a symbol_ref_decl are suitably
19329 aligned, nor other trees we may see here. Handle anchor symbols.
19330 (legitimate_constant_pool_address_p): Comment. Add mode param.
19331 Check cmodel=medium addresses. Adjust all calls.
19332 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
19333 creating cmodel=medium optimized access to locals.
19334 * config/rs6000/constraints.md (R): Pass QImode to
19335 legitimate_constant_pool_address_p.
19336 * config/rs6000/predicates.md (input_operand): Pass mode to
19337 legitimate_constant_pool_address_p.
19338 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
19339 Update prototype.
19340
35f61ba4
MM
193412011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
19342
19343 PR target/48053
19344 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
19345 64-bit constants being loaded into registers other than GPRs such
19346 as loading 0 into a VSX register.
19347
07332e6d
RO
193482011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19349
16cc4440 19350 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 19351
de888d90
JJ
193522011-03-14 Jakub Jelinek <jakub@redhat.com>
19353
ba3ceb2d
JJ
19354 PR middle-end/47917
19355 * builtins.c (fold_builtin_snprintf): New function.
19356 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
19357 (fold_builtin_4): Likewise.
19358
2e64f8b8
JJ
19359 PR middle-end/38878
19360 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
19361 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
19362 and C - X == X also strip nops from +/-/p+ operand.
19363 When optimizing -X == C, fold C to arg0's type.
19364
de888d90
JJ
19365 PR debug/47946
19366 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
19367 emit it as add_AT_int instead of add_AT_unsigned.
19368
193692011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
19370
19371 * unwind-dw2.c: Include sys/sdt.h if it exists.
19372 (_Unwind_DebugHook): Use STAP_PROBE2.
19373 * config.in, configure: Rebuild.
19374 * configure.ac: Check for sys/sdt.h.
19375
d34abfd2
UB
193762011-03-14 Uros Bizjak <ubizjak@gmail.com>
19377
19378 * config/i386/i386.md (ROUND_FLOOR): New constant.
19379 (ROUND_CEIL): Ditto.
19380 (ROUND_TRUNC): Ditto.
19381 (ROUND_MXCSR): Ditto.
19382 (ROUND_NO_EXC): Ditto.
19383 (rint<mode>2): Use new defines instead of numerical constants.
19384 (floor<mode>2): Ditto.
19385 (ceil<mode>2): Ditto.
19386 (btrunc<mode>2): Ditto.
19387 * config/i386/i386-builtin-types.def: Define ROUND function type
19388 aliases.
19389 * config/i386/i386.c (enum ix86_builtins): Add
19390 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
19391 (struct builtin_description): Add
19392 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
19393 (ix86_expand_sse_round): New static function.
19394 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
19395 function types.
19396 (ix86_builtin_vectorized_function): Handle
19397 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19398
87f9e23d
TT
193992011-03-14 Tom Tromey <tromey@redhat.com>
19400
19401 * c-parser.c (c_parser_asm_string_literal): Clear
19402 warn_overlength_strings.
19403
b3ab9ea2
TT
194042011-03-14 Tom Tromey <tromey@redhat.com>
19405
19406 * c-parser.c (disable_extension_diagnostics): Save
19407 warn_overlength_strings.
19408 (restore_extension_diagnostics): Restore warn_overlength_strings.
19409
6bd73dd8
JJ
194102011-03-14 Jakub Jelinek <jakub@redhat.com>
19411
19412 * BASE-VER: Change to 4.7.0.
19413
7f4d6e1b
RG
194142011-03-14 Richard Guenther <rguenther@suse.de>
19415
19416 PR middle-end/48098
19417 * tree.c (build_vector_from_val): Adjust assert to requirements
19418 and reality.
19419
c6104ef1
JJ
194202011-03-14 Jakub Jelinek <jakub@redhat.com>
19421
19422 PR bootstrap/48102
d34abfd2 19423 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 19424
dfa95e19
AT
194252011-03-14 Andreas Tobler <andreast@fgznet.ch>
19426
f60c2554 19427 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
19428 terms of target_flags_explicit. Adjust copyright year.
19429
19430 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
19431 * config/rs6000/t-freebsd: New file. Add override for
19432 LIB2FUNCS_EXTRA.
19433
bb322018
CD
194342011-03-13 Chris Demetriou <cgd@google.com>
19435
19436 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
19437 (-fno-diagnostics-show-option): this, to reflect current default.
19438 (-Werror=): Update text about -fno-diagnostics-show-option.
19439
12b1c80b
PB
194402011-03-12 Peter Bergner <bergner@vnet.ibm.com>
19441
19442 PR target/48053
19443 * config/rs6000/predicates.md (easy_vector_constant_add_self,
19444 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
19445 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
19446 mode is not V2DImode or V2DFmode.
19447 (vspltis_constant): Do not handle V2DImode and V2DFmode.
19448 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
19449 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
19450 registers to 0.
19451 (movdi_internal64): Likewise.
19452
57d598f7
SP
194532011-03-12 Sebastian Pop <sebastian.pop@amd.com>
19454
19455 PR tree-optimization/47127
19456 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
19457 parameter.
19458 (set_cloog_options): Same.
19459 (scop_to_clast): Same.
19460 (print_clast_stmt): Do not call cloog_state_malloc and
19461 cloog_state_free.
19462 (print_generated_program): Same.
19463 (gloog): Same.
19464 * graphite-clast-to-gimple.h (cloog_state): Declared.
19465 (scop_to_clast): Adjust declaration.
19466 * graphite.c (cloog_state): Defined here.
19467 (graphite_initialize): Call cloog_state_malloc.
19468 (graphite_finalize): Call cloog_state_free.
19469
f231b5ff
JM
194702011-03-11 Jason Merrill <jason@redhat.com>
19471
19472 * attribs.c (lookup_attribute_spec): Take const_tree.
19473 * tree.h: Adjust.
19474
6a4e2bd5
JM
194752011-03-11 Joseph Myers <joseph@codesourcery.com>
19476
19477 * config/sparc/sparc.c (sparc_option_override): Use
19478 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
19479
a758fd67
RG
194802011-03-11 Richard Guenther <rguenther@suse.de>
19481
19482 PR tree-optimization/48067
19483 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
19484 multiplication result will be only used once on the target
19485 stmt.
19486
03dfda54
RG
194872011-03-11 Richard Guenther <rguenther@suse.de>
19488
19489 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
19490
5f11a50a
RG
194912011-03-11 Richard Guenther <rguenther@suse.de>
19492
19493 PR lto/48073
19494 * tree.c (find_decls_types_r): Do not walk types only reachable
19495 from IDENTIFIER_NODEs.
19496
4074f163
JJ
194972011-03-11 Jakub Jelinek <jakub@redhat.com>
19498
19499 PR middle-end/48044
19500 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
19501 all vnode->force_output nodes as needed.
19502
30f7cdcd
JM
195032011-03-11 Jason Merrill <jason@redhat.com>
19504
19505 PR c++/48069
19506 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
19507 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
19508
62ecfeb8
MJ
195092011-03-11 Martin Jambor <mjambor@suse.cz>
19510
19511 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
19512 cgraph_node.
19513
e89e03ab
JJ
195142011-03-11 Jakub Jelinek <jakub@redhat.com>
19515
19516 PR tree-optimization/48063
19517 * ipa-inline.c (cgraph_decide_inlining): Don't try to
19518 inline functions called once if !tree_can_inline_p (node->callers).
19519
efbe978b 195202011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 19521
efbe978b
EB
19522 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
19523 extra_objs.
9d6193a7
CL
19524 * config/score/score3.c: Delete.
19525 * config/score/score3.h: Delete.
19526 * config/score/mul-div.S: Delete.
19527 * config/score/sfp-machine.h: Add new file.
19528 * config/score/constraints.md: Add new file.
19529 * config/score/t-score-softfp: Add new file.
efbe978b 19530 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
19531 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
19532 (score7_extra_constraint): Delete.
efbe978b 19533 (score7_option_override): Remove unused code.
9d6193a7
CL
19534 * config/score/score.c: Remove score3 and score5 define and code.
19535 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 19536 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
19537 * config/score/score.opt: Remove score3 and score5 options.
19538
5de27cca
JDA
195392011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19540
19541 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
19542 when _HPUX_SOURCE is defined.
19543 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
19544
18d92053
JM
195452011-03-10 Jason Merrill <jason@redhat.com>
19546
19547 PR c++/48029
19548 * stor-layout.c (layout_type): Don't set structural equality
19549 on arrays of incomplete type.
19550 * tree.c (type_hash_eq): Handle comparing them properly.
19551
67a2f76d
JJ
195522011-03-10 Jakub Jelinek <jakub@redhat.com>
19553
19554 PR debug/48043
18d92053 19555 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
19556 result mode matches original rtl mode.
19557
d845b2f9
NC
195582011-03-10 Nick Clifton <nickc@redhat.com>
19559
19560 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 19561 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 19562
db7ec035
JJ
195632011-03-09 Jakub Jelinek <jakub@redhat.com>
19564
19565 PR rtl-optimization/47866
19566 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
19567 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
19568 if target wasn't scalar.
19569 * function.c (assign_stack_temp_for_type): Assert that neither
19570 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
19571 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
19572 macro.
19573 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
19574
5d304e47
AK
195752011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19576
19577 * config/s390/s390-protos.h (s390_label_align): New prototype.
19578 * config/s390/s390.c (s390_label_align): New function.
19579 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
19580
93b826f0
MM
195812011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
19582
19583 PR target/47755
19584 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
19585 V2DI/V2DF constants. Only all 0's or all 1's are easy.
19586 (output_vec_const_move): Ditto.
19587
ef78aed6
AS
195882011-03-08 Anatoly Sokolov <aesok@post.ru>
19589
19590 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
19591 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
19592 * config/mips/mips.c (mips_preferred_reload_class): Make static.
19593 Change 'rclass' argument and result type to reg_class_t.
19594 (TARGET_PREFERRED_RELOAD_CLASS): Define.
19595
5f892aa0
GJL
195962011-03-08 Georg-Johann Lay <avr@gjlay.de>
19597
9e43ad68
UB
19598 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19599 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
19600 (TARGET_MEMORY_MOVE_COST): Define.
19601 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 19602
32bd2409
JJ
196032011-03-08 Jakub Jelinek <jakub@redhat.com>
19604
530a4800
JJ
19605 PR debug/47881
19606 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
19607 removed anything.
19608
32bd2409
JJ
19609 PR tree-optimization/48022
19610 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
19611 for EQ/NE_EXPR.
19612
c7148991
JJ
196132011-03-07 Jakub Jelinek <jakub@redhat.com>
19614
19615 PR debug/47991
19616 * var-tracking.c (find_use_val): Return NULL for
19617 cui->sets && cui->store_p BLKmode MEMs.
19618
43070a6e
AS
196192011-03-07 Anatoly Sokolov <aesok@post.ru>
19620
19621 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
19622 Remove.
19623 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
19624 xstormy16_print_operand_address): Remove.
19625 * config/stormy16/stormy16.c (xstormy16_print_operand,
19626 xstormy16_print_operand_address): Make static.
19627 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19628
efbe978b 196292011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
19630
19631 PR target/47862
19632 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19633 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
19634 before definition.
19635
cec8ac0b
ZD
196362011-03-07 Zdenek Dvorak <ook@ucw.cz>
19637
19638 PR bootstrap/48000
19639 * cfgloopmanip.c (fix_bb_placements): Return immediately
19640 if FROM is BASE_LOOP's header.
19641
59527282
PW
196422011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
19643
19644 * gimplify.c (gimplify_function_tree): Fix building calls
19645 to __builtin_return_address.
19646
617718f7
AM
196472011-03-07 Alan Modra <amodra@gmail.com>
19648
19649 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
19650 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
19651 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
19652 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
19653 return_mode args.
19654 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
19655 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
19656 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
19657 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
19658 * config/rs6000/rs6000.c
19659 (rs6000_elf_end_indicate_exec_stack): Rename to..
19660 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
19661 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
19662 (rs6000_file_start): ..here.
19663 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
19664 file scope variables.
19665 (call_ABI_of_interest): New function.
19666 (init_cumulative_args): Set above vars when function return value
19667 is a float, vector, or small struct.
19668 (rs6000_function_arg_advance_1): Likewise for function args.
19669 (rs6000_va_start): Set rs6000_passes_float if variable arg function
19670 references float args.
19671
38528d50
MX
196722011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
19673
19674 * doc/cfg.texi: Remove "See" before @ref.
19675 * doc/invoke.texi: Likewise.
19676
f42cf4f4
JM
196772011-03-05 Jason Merrill <jason@redhat.com>
19678
19679 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
19680
804a304d
AG
196812011-03-05 Anthony Green <green@moxielogic.com>
19682
19683 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
19684
634ee309
ZD
196852011-03-05 Zdenek Dvorak <ook@ucw.cz>
19686
19687 PR rtl-optimization/47899
19688 * cfgloopmanip.c (fix_bb_placements): Fix first argument
19689 to flow_loop_nested_p when moving the loop upward.
19690
6fe471c8
RE
196912011-03-05 Richard Earnshaw <rearnsha@arm.com>
19692
19693 PR target/47719
19694 * arm.md (movhi_insn_arch4): Accept any immediate constant.
19695
cc58ceee
JJ
196962011-03-05 Jakub Jelinek <jakub@redhat.com>
19697
19698 PR tree-optimization/47967
19699 * ipa-cp.c (build_const_val): Return NULL instead of creating
19700 VIEW_CONVERT_EXPR for mismatching sizes.
19701 (ipcp_create_replace_map): Return NULL if build_const_val failed.
19702 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
19703 give up on versioning.
19704
ea868305
AM
197052011-03-05 Alan Modra <amodra@gmail.com>
19706
19707 PR target/47986
19708 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19709 full cmodel medium/large lo_sum + high addresses.
19710
bc6ce334
AK
197112011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19712
19713 * config/s390/s390.c (s390_decompose_address): Reject non-literal
19714 pool references in UNSPEC_LTREL_OFFSET.
19715
87e7b310
JH
197162011-03-04 Jan Hubicka <jh@suse.cz>
19717
19718 PR lto/47497
19719 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
19720 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
19721 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
19722 Add node pointers.
87e7b310
JH
19723 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
19724 cgraph_add_thunk): Add node pointers.
19725 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
19726 associated to right node.
19727 (input_node): Update use of cgraph_same_body_alias
19728 and cgraph_add_thunk.
19729
d9c64246
CF
197302011-03-04 Changpeng Fang <changpeng.fang@amd.com>
19731
19732 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
19733 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
19734 modes when the flag -mprefer-avx128 is on.
d9c64246 19735
08707076
RS
197362011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
19737
19738 * dwarf2out.c (compare_loc_operands): Fix address handling.
19739
52517c81
AM
197402011-03-04 Alan Modra <amodra@gmail.com>
19741
19742 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
19743
b147c5b9
RG
197442011-03-04 Richard Guenther <rguenther@suse.de>
19745
19746 PR middle-end/47968
19747 * expmed.c (extract_bit_field_1): Prefer vector modes that
19748 vec_extract patterns can handle.
19749
8750672f
RG
197502011-03-04 Richard Guenther <rguenther@suse.de>
19751
19752 PR middle-end/47975
19753 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
19754
9eac0f2a
RH
197552011-03-04 Richard Henderson <rth@redhat.com>
19756
19757 * explow.c (emit_stack_save): Remove 'after' parameter.
19758 (emit_stack_restore): Likewise.
19759 * expr.h: Update to match.
19760 * builtins.c, calls.c, stmt.c: Likewise.
19761 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
19762 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
19763 * function.c (expand_function_end): Insert the emit_stack_save
19764 sequence before parm_birth_insn instead of after.
19765
dfee1406
UB
197662011-03-03 Uros Bizjak <ubizjak@gmail.com>
19767
19768 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
19769 (ssse3_pmaddubsw128): Ditto.
19770 (ssse3_pmaddubsw): Ditto.
19771
f1d4c3de
SE
197722011-03-03 Steve Ellcey <sje@cup.hp.com>
19773
19774 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
19775
71f3a3f5
JJ
197762011-03-03 Jakub Jelinek <jakub@redhat.com>
19777
423ed416
JJ
19778 PR c/47963
19779 * gimplify.c (omp_add_variable): Only call omp_notice_variable
19780 on TYPE_SIZE_UNIT if it is a DECL.
19781
71f3a3f5
JJ
19782 PR debug/47283
19783 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
19784 first operand is not is_gimple_mem_ref_addr, try to fold it.
19785 If the operand still isn't is_gimple_mem_ref_addr, clear
19786 MEM_EXPR on op0.
19787
4b1a5c0d
RG
197882011-03-03 Richard Guenther <rguenther@suse.de>
19789
19790 PR middle-end/47283
19791 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
19792 match comment.
19793 (refs_may_alias_p_1): For release branches return true if
19794 we are confused by our input.
19795
b46616fd
AK
197962011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19797
19798 * config/s390/s390.c (s390_function_value): Rename to ...
19799 (s390_function_and_libcall_value): ... this.
19800 (s390_function_value): New function.
19801 (s390_libcall_value): New function.
dfee1406 19802 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
19803 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
19804 target macro definitions.
19805 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
19806
46d8fabb
JM
198072011-03-02 Joseph Myers <joseph@codesourcery.com>
19808
19809 * config/i386/freebsd64.h (CC1_SPEC): Define.
19810 * config/i386/linux64.h (CC1_SPEC): Define.
19811 * config/i386/x86-64.h (CC1_SPEC): Don't define.
19812
6b1ce545
AS
198132011-03-02 Anatoly Sokolov <aesok@post.ru>
19814
19815 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19816 Remove.
19817 * config/stormy16/stormy16.c: Include reload.h.
19818 (xstormy16_memory_move_cost): New function.
19819 (TARGET_MEMORY_MOVE_COST): Define.
19820
34161e98
RS
198212011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
19822
19823 PR rtl-optimization/47925
19824 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
19825 with side effects. Remove the more-specific check for volatile asms.
19826
f60a97cf
AM
198272011-03-02 Alan Modra <amodra@gmail.com>
19828
19829 PR target/47935
19830 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
19831 toc relative addresses for valid offsets.
19832
f2ca11ca
RG
198332011-03-01 Richard Guenther <rguenther@suse.de>
19834
19835 PR tree-optimization/47890
19836 * tree-vect-loop.c (get_initial_def_for_induction): Set
19837 related stmt properly.
19838
7a00d9ea
RG
198392011-03-01 Richard Guenther <rguenther@suse.de>
19840
19841 PR lto/47924
19842 * lto-streamer.c (lto_record_common_node): Also register
19843 the canonical type.
19844
06c7edcc
RG
198452011-03-01 Richard Guenther <rguenther@suse.de>
19846
19847 PR lto/46911
19848 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19849 Do not stream DECL_ABSTRACT_ORIGIN.
19850 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19851 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19852 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19853 Do not stream DECL_ABSTRACT_ORIGIN.
19854 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19855 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19856
998871e9
AS
198572011-02-28 Anatoly Sokolov <aesok@post.ru>
19858
19859 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
19860 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 19861 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
19862 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
19863 Add 'outgoing' argument.
19864 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
19865 function.
19866 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19867 TARGET_FUNCTION_VALUE_REGNO_P): Define.
19868
94369251
KT
198692011-02-28 Kai Tietz <kai.tietz@onevision.com>
19870
19871 PR debug/28047
19872 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
19873 (lookup_filename): Likewise.
b2e2ea67 19874 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 19875
80a832cd
JJ
198762011-02-28 Bernd Schmidt <bernds@codesourcery.com>
19877 Jakub Jelinek <jakub@redhat.com>
19878
19879 PR middle-end/47893
19880 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
19881 (assign_stack_local_1): Change last argument type to int.
19882 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
19883 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 19884 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
19885 (assign_stack_local): Adjust caller.
19886 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
19887 of assign_stack_local, pass 0 as last argument.
19888 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
19889 callers.
19890
1b500976
JJ
198912011-02-28 Jakub Jelinek <jakub@redhat.com>
19892
f61c6f34
JJ
19893 PR debug/47283
19894 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
19895 Use target address_mode and pointer_mode hooks instead of hardcoded
19896 Pmode and ptr_mode. Handle some simple cases of extending if
19897 POINTERS_EXTEND_UNSIGNED < 0.
19898 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
19899 Call convert_debug_memory_address.
19900 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
19901 convert_debug_memory_address.
19902
1b500976
JJ
19903 PR middle-end/46790
19904 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
19905 * configure: Regenerated.
19906 * config.in: Regenerated.
19907 * varasm.c (default_function_section): Return NULL
b2e2ea67 19908 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 19909
2f2935b6
MJ
199102011-02-28 Martin Jambor <mjambor@suse.cz>
19911
19912 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
19913 the description to match the printed values.
19914
474086eb
RG
199152011-02-28 Richard Guenther <rguenther@suse.de>
19916
19917 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
19918 of the copied scope tree.
19919
15bf6f3a
RW
199202011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19921
19922 * doc/extend.texi (Function Attributes): Avoid deeply (and
19923 wrongly) nested tables.
19924
f6b439c9
JJ
199252011-02-27 Jakub Jelinek <jakub@redhat.com>
19926
19927 PR middle-end/47903
19928 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
19929 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
19930 r isn't op0 nor op1.
19931
1d8ca2c7
GJL
199322011-02-23 Georg-Johann Lay <avr@gjlay.de>
19933
19934 * config/avr/avr.md: Remove magic comment for emacs.
19935
593fca4b
GJL
199362011-02-23 Georg-Johann Lay <avr@gjlay.de>
19937
19938 PR target/45261
19939 * config/avr/avr.c (avr_option_override): Use error on bad options.
19940 (avr_help): New function.
19941 (TARGET_HELP): Define.
19942
6609216e
GJL
199432011-02-22 Georg-Johann Lay <avr@gjlay.de>
19944
19945 PR target/42240
19946 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
19947 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
19948
03d458af
GP
199492011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
19950
19951 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
19952 (ARM Options): Ditto.
19953 (i386 and x86-64 Options): Ditto.
19954 (RX Options): Ditto.
19955 (SPARC Options): Ditto.
19956
1c379b78
TC
199572011-02-26 Tijl Coosemans <tijl@coosemans.org>
19958
19959 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
19960 FreeBSD 6 and later. Generally use cpu generic.
19961
d5ed058c 199622011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 19963
d5ed058c
GP
19964 * doc/cpp.texi: Update copyright years.
19965
509d65dd 199662011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 19967
509d65dd 19968 PR target/46898
308d39cd
SB
19969 * config/lm32/lm32.md (ashrsi3): Added needed variable.
19970
509d65dd 199712011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 19972
509d65dd 19973 PR target/46898
308d39cd
SB
19974 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
19975 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
19976 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
19977 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 19978 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
19979 (gen_int_relational): Move declarations to start of function.
19980
822ba6d7
EB
199812011-02-25 Eric Botcazou <ebotcazou@adacore.com>
19982
19983 PR tree-optimization/45470
19984 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
19985 can throw internally only.
19986 * tree-vect-stmts.c (vectorizable_call): Likewise.
19987
ef795fc2
AS
199882011-02-24 Anatoly Sokolov <aesok@post.ru>
19989
19990 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
19991 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
19992 * config/stormy16/stormy16-protos.h
19993 (xstormy16_preferred_reload_class): Remove.
19994 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
19995 static. Change 'rclass' argument and return type to reg_class_t.
19996 (TARGET_PREFERRED_RELOAD_CLASS,
19997 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
19998
1c3277ee
RG
199992011-02-24 Richard Guenther <rguenther@suse.de>
20000
20001 * lto-streamer-in.c (input_bb): Do not find referenced vars
20002 in debug statements.
20003
67e18edb
JM
200042011-02-23 Jason Merrill <jason@redhat.com>
20005
20006 * common.opt (fabi-version): Document v5 and v6.
20007
b14fad9d
RG
200082011-02-23 Richard Guenther <rguenther@suse.de>
20009
20010 PR tree-optimization/47849
20011 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
20012
7fcf46f5
JZ
200132011-02-23 Jie Zhang <jie@codesourcery.com>
20014
20015 * opts-common.c (decode_cmdline_option): Print empty string
20016 argument as "" in decoded->orig_option_with_args_text.
20017 * gcc.c (execute): Print empty string argument as ""
20018 in the verbose output.
20019 (do_spec_1): Keep empty string argument.
20020
f85b70fd
NF
200212011-02-23 Nathan Froyd <froydnj@codesourcery.com>
20022
20023 * config.gcc: Declare score-* and crx-* obsolete.
20024
b152a615
JZ
200252011-02-23 Jie Zhang <jie@codesourcery.com>
20026
20027 PR rtl-optimization/47763
20028 * web.c (web_main): Ignore naked clobber when replacing register.
20029
bb6e77bc
AS
200302011-02-22 Anatoly Sokolov <aesok@post.ru>
20031
20032 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
20033 Remove.
20034
68bf6491
SP
200352011-02-22 Sebastian Pop <sebastian.pop@amd.com>
20036
20037 PR doc/47848
20038 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
20039
88ee1fc7
MS
200402011-02-22 Mike Stump <mikestump@comcast.net>
20041
20042 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
20043 assembler.
20044 * configure: Regenerate.
20045
6042d1dd
CLT
200462011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
20047
20048 PR rtl-optimization/46002
20049 * ira-color.c (update_copy_costs): Change class intersection
20050 test to reg_class_contents[] test of 'hard_regno'.
20051
7de97f9e
JM
200522011-02-21 Joseph Myers <joseph@codesourcery.com>
20053
20054 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
20055 than Driver option.
20056 * config/hpux11.opt (mt): Likewise.
20057 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
20058 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
20059 * config/vax/elf.opt (mno-asm-pic): Likewise.
20060 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
20061
d1d46f9f
MS
200622011-02-21 Mike Stump <mikestump@comcast.net>
20063
20064 PR target/47822
20065 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
20066 tree so we can get save the type.
20067 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
20068 for CFString instead of trying to use past the end of the builtins.
20069 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
20070 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
20071 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
20072 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
20073 Rename to darwin_builtin_cfstring.
20074 (darwin_init_cfstring_builtins): Return the built type.
20075
23e0d930
UB
200762011-02-21 Uros Bizjak <ubizjak@gmail.com>
20077
20078 PR target/47840
20079 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
20080 (_mm256_insert_epi64): Use _mm_insert_epi64.
20081
192997cf
AS
200822011-02-21 Anatoly Sokolov <aesok@post.ru>
20083
20084 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20085 * config/stormy16/stormy16-protos.h
20086 (xstormy16_mode_dependent_address_p): Remove.
20087 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
20088 Make static. Change return type to bool. Change argument type to
20089 const_rtx. Remove dead code.
20090 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20091
e292d003
RG
200922011-02-21 Richard Guenther <rguenther@suse.de>
20093
20094 PR lto/47820
20095 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20096 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20097 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
20098 TUs context.
23e0d930 20099 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
20100 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20101
77f846e9
RG
201022011-02-20 Richard Guenther <rguenther@suse.de>
20103
20104 PR lto/47822
20105 * tree.c (free_lang_data_in_decl): Clean builtins from
20106 the TU decl BLOCK_VARS.
23e0d930 20107
b2cddfc8
AO
201082011-02-19 Alexandre Oliva <aoliva@redhat.com>
20109
20110 PR debug/47620
20111 PR debug/47630
20112 * haifa-sched.c (fix_tick_ready): Skip tick computation
20113 for debug insns.
20114
becf4c11
RG
201152011-02-19 Richard Guenther <rguenther@suse.de>
20116
20117 PR lto/47647
20118 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
20119 Remove lazy BLOCK_VARS streaming.
20120 (lto_input_ts_block_tree_pointers): Likewise.
20121 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
20122
27f98305
JM
201232011-02-19 Joseph Myers <joseph@codesourcery.com>
20124
20125 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
20126
064bf3f4
JM
201272011-02-19 Joseph Myers <joseph@codesourcery.com>
20128
20129 * config/i386/biarch32.h, config/i386/mach.h,
20130 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
20131
9215ddc3
JJ
201322011-02-19 Jakub Jelinek <jakub@redhat.com>
20133
20134 PR target/47800
20135 * config/i386/i386.md (peephole2 for shift and plus): Use
20136 operands[1] original mode in the first insn.
20137
8b021004
MS
201382011-02-18 Mike Stump <mikestump@comcast.net>
20139
65ded153 20140 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 20141
f84ae14c
JH
201422011-02-18 Jan Hubicka <jh@suse.cz>
20143
20144 PR middle-end/47788
65ded153
EB
20145 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
20146 to zero when the function is not inlinable at all.
f84ae14c 20147
eddabc80
JDA
201482011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20149
20150 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
20151 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20152 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
20153 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
20154 * config/pa/t-pa64: Likewise.
20155 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
20156
ca3da783
JJ
201572011-02-18 Jakub Jelinek <jakub@redhat.com>
20158
20159 PR driver/47787
20160 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
20161
430aa868
JDA
201622011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20163
20164 PR target/47792
20165 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
20166
4bf7ff7e
AS
201672011-02-18 Anatoly Sokolov <aesok@post.ru>
20168
20169 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
20170 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
20171 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
20172 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20173 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
20174 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
20175 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
20176 m32r_load_postinc_p, m32r_store_preinc_predec_p,
20177 m32r_legitimate_address_p): New functions.
20178 * config/m32r/constraints.md (constraint "S"): Don't use
20179 STORE_PREINC_PREDEC_P.
20180 (constraint "U"): Don't use LOAD_POSTINC_P.
20181
7efcf910
CLT
201822011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
20183
20184 PR rtl-optimization/46178
20185 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
20186 compute ira_hard_regno_cover_class[].
20187
237d6259
RG
201882011-02-18 Richard Guenther <rguenther@suse.de>
20189
20190 PR lto/47798
20191 * lto-streamer.h (lto_global_var_decls): Declare.
20192 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
20193 statics for global var processing.
20194
12d80acc
RG
201952011-02-18 Richard Guenther <rguenther@suse.de>
20196
20197 PR tree-optimization/47737
20198 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
20199 edge dominance check.
20200
abfea58d
JJ
202012011-02-18 Jakub Jelinek <jakub@redhat.com>
20202
20203 PR debug/47780
20204 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
20205 avoid invalid rtx sharing.
20206
f73c8882
GP
202072011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
20208
20209 * doc/cpp.texi (Obsolete Features): Add background on the
20210 origin of assertions.
20211
d764a8e6
IS
202122011-02-17 Iain Sandoe <iains@gcc.gnu.org>
20213
20214 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 20215 objc_abi == 2.
d764a8e6
IS
20216 * config/darwin.c (output_objc_section_asm_op): Added support for
20217 ABI v1 and v2.
20218 (is_objc_metadata): New.
20219 (darwin_objc2_section): New.
20220 (darwin_objc1_section): New.
20221 (machopic_select_section): Added support for ABI v1 and v2.
20222 (darwin_emit_objc_zeroed): New.
20223 (darwin_output_aligned_bss): Detect objc metadata and treat it
20224 appropriately.
20225 (darwin_asm_output_aligned_decl_common): Same.
20226 (darwin_asm_output_aligned_decl_local): Same.
20227 * config/darwin-sections.def: Updated for ABI v1 and v2.
20228 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
20229 compiling Objective-C code for the NeXT runtime, default to using
20230 ABI version 0 for 32-bit, and version 2 for 64-bit.
20231
0a8134ca
JM
202322011-02-17 Joseph Myers <joseph@codesourcery.com>
20233
20234 * common.opt (optimize_fast): New Variable.
20235 * opts.c (default_options_optimization): Use opts->x_optimize_fast
20236 instead of local variable ofast.
20237
0a256240
NP
202382011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
20239
20240 * doc/invoke.texi (fobjc-abi-version): Documented.
20241 (fobjc-nilcheck): Documented.
20242 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
20243 version.
20244
fa381cb2
JM
202452011-02-17 Joseph Myers <joseph@codesourcery.com>
20246
20247 PR driver/47390
20248 * common.opt (export-dynamic): New Driver option.
20249 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
20250
5437eaa6
JM
202512011-02-17 Joseph Myers <joseph@codesourcery.com>
20252
20253 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
20254
bb7e6d55
AO
202552011-02-17 Alexandre Oliva <aoliva@redhat.com>
20256 Jan Hubicka <jh@suse.cz>
20257
20258 PR debug/47106
20259 PR debug/47402
20260 * cfgexpand.c (account_used_vars_for_block): Remove.
20261 (estimated_stack_frame_size): Use referenced vars.
20262 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
20263 that were referenced in the original function. Test src_fn
20264 rather than cfun. Drop redundant get_var_ann.
20265 (setup_one_parameter): Drop redundant get_var_ann.
20266 (declare_return_variable): Likewise.
20267 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
20268 (copy_arguments_for_versioning): Drop redundant get_var_ann.
20269 * ipa-inline.c (compute_inline_parameters): Do not compute
20270 disregard_inline_limits here.
bb7e6d55
AO
20271 (compute_inlinable_for_current, pass_inlinable): New.
20272 (pass_inline_parameters): Require PROP_referenced_vars.
20273 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 20274 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
20275 (cgraph_analyze_function): Set .disregard_inline_limits.
20276 * tree-sra.c (convert_callers): Compute inliner parameters
20277 only for functions already in SSA form.
20278
f181a8a7
JM
202792011-02-17 Joseph Myers <joseph@codesourcery.com>
20280
20281 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
20282 -mlittle-endian-data.
20283
c6869789
JM
202842011-02-17 Joseph Myers <joseph@codesourcery.com>
20285
20286 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
20287 -mno-fpu, not -fpu and -no-fpu.
20288 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
20289 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
20290
fbf4bfd3
UB
202912011-02-17 Uros Bizjak <ubizjak@gmail.com>
20292
20293 PR target/43653
20294 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
20295 input reload with PLUS RTX.
20296
70be5dc7
JM
202972011-02-16 Joseph Myers <joseph@codesourcery.com>
20298
20299 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
20300 of InverseVar(MDMX).
20301
30b1646e
JM
203022011-02-16 Joseph Myers <joseph@codesourcery.com>
20303
20304 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
20305 --m4-340.
20306
ab7b71e9
JM
203072011-02-16 Joseph Myers <joseph@codesourcery.com>
20308
20309 * config/mn10300/mn10300.opt (mno-crt0): New.
20310
466f3f08
JM
203112011-02-16 Joseph Myers <joseph@codesourcery.com>
20312
20313 * config/m68k/uclinux.opt (static-libc): New Driver option.
20314
8226cd7b
JM
203152011-02-16 Joseph Myers <joseph@codesourcery.com>
20316
20317 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
20318
45cab1d7
JM
203192011-02-16 Joseph Myers <joseph@codesourcery.com>
20320
20321 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
20322 %{muser-extend-enabled}.
20323
65aab64f
RG
203242011-02-16 Richard Guenther <rguenther@suse.de>
20325
20326 PR tree-optimization/47738
20327 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
20328 the TODO from tree_predictive_commoning.
20329
fc2fa4fb
JL
203302011-02-15 Jeff Law <law@redhat.com>
20331
20332 Revert
20333 2011-01-25 Jeff Law <law@redhat.com>
20334
20335 PR rtl-optimization/37273
20336 * ira-costs.c (scan_one_insn): Detect constants living in memory and
20337 handle them like argument loads from stack slots. Do not double
20338 count memory for memory constants and argument loads from stack slots.
20339
e3a69bb4
MM
203402011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
20341
20342 PR target/47755
20343 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
20344 mode for vector constants. Remove code that checks for TImode.
20345
de650422
AO
203462011-02-15 Alexandre Oliva <aoliva@redhat.com>
20347
20348 PR debug/47106
20349 PR debug/47402
20350 * cgraph.h (compute_inline_parameters): Return void.
20351 * ipa-inline.c (compute_inline_parameters): Adjust.
20352
30925d94
AO
203532011-02-15 Alexandre Oliva <aoliva@redhat.com>
20354
20355 PR debug/47106
20356 PR debug/47402
20357 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
20358 rather than decl.
20359 * cfgexpand.c (estimated_stack_frame_size): Likewise.
20360 * ipa-inline.c (compute_inline_parameters): Adjust.
20361
1b9a784a
AO
203622011-02-15 Alexandre Oliva <aoliva@redhat.com>
20363
20364 PR debug/47106
20365 PR debug/47402
20366 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
20367 Adjust all users. Pass FN to...
20368 * tree-flow-inline.h (first_referenced_var): ... this. Add
20369 fn argument.
20370 * ipa-struct-reorg.c: Adjust.
20371 * tree-dfa.c: Adjust.
20372 * tree-into-ssa.c: Adjust.
20373 * tree-sra.c: Adjust.
20374 * tree-ssa-alias.c: Adjust.
20375 * tree-ssa-live.c: Adjust.
20376 * tree-ssa.c: Adjust.
20377 * tree-ssanames.c: Adjust.
20378 * tree-tailcall.c: Adjust.
20379
27c6b086
AO
203802011-02-15 Alexandre Oliva <aoliva@redhat.com>
20381
20382 PR debug/47106
20383 PR debug/47402
20384 * tree-flow.h (referenced_var_lookup): Add fn parameter.
20385 Adjust all callers.
20386 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
20387 * tree-flow-inline.h: Adjust.
20388 * gimple-pretty-print.c: Adjust.
20389 * tree-into-ssa.c: Adjust.
20390 * tree-ssa.c: Adjust.
20391 * cfgexpand.c: Adjust.
20392
679e8183
NF
203932011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20394
fbf4bfd3
UB
20395 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
20396 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20397 (EXTRA_CONSTRAINT): Delete.
20398 * config/iq2000/constraints.md: New file.
20399 * config/iq2000/iq2000.md: Include it.
679e8183
NF
20400 (define_insn ""): Delete.
20401 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
20402 unsupported constraint letters from patterns.
20403 (call_value, call_value_internal1): Likewise.
20404 (call_value_multiple_internal1): Likewise.
20405
a45d420a
NC
204062011-02-15 Nick Clifton <nickc@redhat.com>
20407
20408 * config/mn10300/mn10300.c: Include tm-constrs.h.
20409 (struct liw_data): New data structure describing an LIW candidate
20410 instruction.
20411 (extract_bundle): Use struct liw_data. Allow small integer
20412 operands for some instructions.
20413 (check_liw_constraints): Use struct liw_data. Remove swapped
20414 parameter. Add comments describing the checks. Fix bug when
20415 assigning the source of liw1 to the source of liw2.
20416 (liw_candidate): Delete. Code moved into extract_bundle.
20417 (mn10300_bundle_liw): Use struct liw_data. Check constraints
20418 before swapping.
20419 * config/mn10300/predicates.md (liw_operand): New predicate.
20420 Allows registers and small integer constants.
20421 * config/mn10300/constraints.md (O): New constraint. Accetps
20422 integers in the range -8 to +7 inclusive.
20423 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
20424 for moving a small integer into a register. Give this alternative
20425 LIW attributes.
20426 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
20427 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
20428 using the J,K,L and M constraints,
20429 (liw): Remove SI mode on second operands to allow for HI and QI
20430 mode values.
20431 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
20432 instruction.
20433
48feba28
RG
204342011-02-15 Richard Guenther <rguenther@suse.de>
20435
20436 PR tree-optimization/47743
20437 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
20438 for a non-type-compatible VN lookup bail out.
20439
ad1c1eeb
NF
204402011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20441
20442 * config/fr30/constraints.md: New file.
20443 * config/fr30/fr30.md: Include it.
20444 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
20445 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20446 (EXTRA_CONSTRAINT): Delete.
20447
49ac143d
NF
204482011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20449
20450 * config/frv/constraints.md: New file.
20451 * config/frv/predicates.md: Include it.
20452 * config/frv/frv.c (reg_class_from_letter): Delete.
20453 (frv_option_override): Don't initialize it.
20454 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
20455 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
20456 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
20457 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20458 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
20459 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20460 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
20461 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
20462 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
20463 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
20464 (REG_CLASS_FROM_CONSTRAINT): Delete.
20465
c95f9494
JJ
204662011-02-15 Jakub Jelinek <jakub@redhat.com>
20467
20468 PR middle-end/47581
20469 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
20470 if frame size is 0 in a leaf function.
20471
13aed611
RO
204722011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20473
20474 PR pch/14940
20475 * config/alpha/host-osf.c: New file.
20476 * config/alpha/x-osf: New file.
20477 * config.host (alpha*-dec-osf*): Use it.
20478
b09c3081
AS
204792011-02-14 Anatoly Sokolov <aesok@post.ru>
20480
20481 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20482 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
20483 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
20484 (rx_mode_dependent_address_p): ...this. Make static. Change argument
20485 type to const_rtx.
20486 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20487
d634083b
NF
204882011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20489
20490 * config/stormy16/constraints.md: New file.
20491 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
20492 Use satisfies_constraint_Q and satisfies_constraint_R.
20493 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
20494 Delete.
20495 (xstormy16_legitiamte_address_p): Declare.
20496 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
20497 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20498 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 20499 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
20500 Un-staticize.
20501 (xstormy16_extra_constraint_p): Delete.
20502
c7dd803e
EB
205032011-02-14 Eric Botcazou <ebotcazou@adacore.com>
20504
20505 PR tree-optimization/46494
20506 * loop-unroll.c (split_edge_and_insert): Adjust comment.
20507 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
20508 (pass_rtl_loop_done): Add TODO_verify_flow.
20509 * fwprop.c (pass_rtl_fwprop): Likewise.
20510 * modulo-sched.c (pass_sms): Likewise.
20511 * tree-ssa-dom.c (pass_dominator): Likewise.
20512 * tree-ssa-loop-ch.c (pass_ch): Likewise.
20513 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
20514 (pass_tree_loop_done): Likewise.
20515 * tree-ssa-pre.c (execute_pre): Likewise.
20516 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
20517 * tree-ssa-sink.c (pass_sink_code): Likewise.
20518 * tree-vrp.c (pass_vrp): Likewise.
20519
c6150df6
NF
205202011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20521
c7dd803e
EB
20522 * config/v850/constraints.md: New file.
20523 * config/v850/v850.md: Include it.
20524 * config/v850/predicates.md (reg_or_0_operand): Use
20525 satisfies_constraint_G.
20526 (special_symbolref_operand): Use satisfies_constraint_K.
20527 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
20528 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
20529 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
20530 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20531 (EXTRA_CONSTRAINT): Delete.
20532 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
20533 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
20534 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 20535
30dd1ea3
AS
205362011-02-14 Anatoly Sokolov <aesok@post.ru>
20537
20538 PR target/47696
20539 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
20540 description.
20541
944f4bb3
NF
205422011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20543
20544 * config/mcore/constraints.md: New file.
20545 * config/mcore/mcore.md: Include it.
20546 * config/mcore/mcore.c (reg_class_from_letter): Delete.
20547 * config/mcore/mcore.h (reg_class_from_letter): Delete.
20548 (REG_CLASS_FROM_LETTER): Delete.
20549 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
20550 insn_const_int_ok_for_constraint.
20551 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
20552 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
20553 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20554 (EXTRA_CONSTRAINT): Delete.
20555
ad56a54c
RO
205562011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20557
20558 PR ada/41929
20559 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
20560 (IS_SIGHANDLER): Define.
20561 (sparc64_is_sighandler): New function, split off from
20562 sparc64_fallback_frame_state.
20563 (sparc_is_sighandler): New function, split off from
20564 sparc_fallback_frame_state.
20565 (sparc64_fallback_frame_state): Merge with ...
20566 (sparc_fallback_frame_state): ... this into ...
20567 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
20568 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
20569 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
20570 stack instead of hardcoded offsets.
ad56a54c 20571
fbf4bfd3 205722011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
20573
20574 PR target/45808
20575 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
20576
029c8f3e
RW
205772011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20578
20579 * configure: Regenerate.
20580
a016dc83
JM
205812011-02-12 Joseph Myers <joseph@codesourcery.com>
20582
20583 PR driver/45731
20584 * gcc.c (asm_options): Correct spec matching --target-help.
20585
8957a0ec
MJ
205862011-02-12 Martin Jambor <mjambor@suse.cz>
20587
20588 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
20589 to gimple call error.
20590
6ef828bc
MS
205912011-02-12 Mike Stump <mikestump@comcast.net>
20592
20593 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
20594 comments in backslash regions.
20595
a4015be5
MS
205962011-02-12 Mike Stump <mikestump@comcast.net>
20597 Jakub Jelinek <jakub@redhat.com>
20598 Iain Sandoe <iains@gcc.gnu.org>
20599
20600 PR target/47324
20601 * dwarf2out.c (output_cfa_loc): When required, apply the
20602 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
20603 (output_loc_sequence): Likewise.
20604 (output_loc_operands_raw): Likewise.
20605 (output_loc_sequence_raw): Likewise.
20606 (output_cfa_loc): Likewise.
20607 (output_loc_list): Suppress register number adjustment when
20608 calling output_loc_sequence()
20609 (output_die): Likewise.
20610
5378dda2
AS
206112011-02-12 Anatoly Sokolov <aesok@post.ru>
20612
20613 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20614 Remove macros.
20615 * config/xtensa/xtensa.c (xtensa_register_move_cost,
20616 xtensa_memory_move_cost): New functions.
20617 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
20618
f3d533d3
AO
206192011-02-12 Alexandre Oliva <aoliva@redhat.com>
20620
20621 PR lto/47225
20622 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
20623 in the current directory.
20624 * configure: Rebuilt.
20625
9d53403c
IS
206262011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20627
20628 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 20629 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
20630 correct indents of the preceding block.
20631
a350a6c8
IS
206322011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20633
20634 * gcc.c (driver_handle_option): Concatenate the argument to -F with
20635 the switch.
20636
bab79a40
JM
206372011-02-11 Joseph Myers <joseph@codesourcery.com>
20638
20639 * common.opt (nostartfiles): New Driver option.
20640
1bbc6693
XDL
206412011-02-11 Xinliang David Li <davidxl@google.com>
20642
20643 PR tree-optimization/47707
20644 * tree-chrec.c (convert_affine_scev): Keep type precision.
20645
1da7d8c0
EB
206462011-02-11 Eric Botcazou <ebotcazou@adacore.com>
20647
20648 PR tree-optimization/47420
20649 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
20650
206512011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
20652
20653 PR rtl-optimization/47614
20654 * rtl.h (check_for_inc_dec): Declare.
20655 * dse.c (check_for_inc_dec): Externalize...
20656 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
20657 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
20658
4df47bca
JM
206592011-02-11 Joseph Myers <joseph@codesourcery.com>
20660
20661 PR driver/47678
20662 * gcc.c (main): Do not compile inputs if there were errors in
20663 option handling.
20664 * opts-common.c (read_cmdline_option): Check for wrong language
20665 after other error checks.
20666
61502ca8
NF
206672011-02-11 Nathan Froyd <froydnj@codesourcery.com>
20668
20669 * cgraph.c: Fix comment typos.
20670 * cgraph.h: Likewise.
20671 * cgraphunit.c: Likewise.
20672 * ipa-cp.c: Likewise.
20673 * ipa-inline.c: Likewise.
20674 * ipa-prop.c: Likewise.
20675 * ipa-pure-const.c: Likewise.
20676 * ipa-ref.c: Likewise.
20677 * ipa-reference.c: Likewise.
20678
b63f974e
JJ
206792011-02-11 Jakub Jelinek <jakub@redhat.com>
20680
d50c5e0c
JJ
20681 PR debug/47684
20682 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 20683
6dd2a13c
RO
206842011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20685
20686 PR testsuite/47400
20687 * doc/sourcebuild.texi (Require Support): Document
20688 dg-require-ascii-locale.
20689
4a087ccf
MX
206902011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
20691
20692 * doc/lto.texi (Write summary): Fix missing parentheses.
20693
a4403164
DD
206942011-02-10 DJ Delorie <dj@redhat.com>
20695
20696 * config/m32c/m32c.c (m32c_option_override): Disable
20697 -fcombine-stack-adjustments until flag value tracking and compare
20698 optimization can be rewritten.
20699
4fac45bd
PB
207002011-02-10 Peter Bergner <bergner@vnet.ibm.com>
20701
20702 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
20703 PROCESSOR_POWER7.
20704 (PROCESSOR_DEFAULT64): Likewise.
20705
72602cd1
RH
207062011-02-10 Richard Henderson <rth@redhat.com>
20707
20708 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
20709 change from 2011-02-03.
20710 * config/rx/rx.c (flags_from_code): Likewise.
20711 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
20712 is valid, n/pz otherwise.
20713 (rx_select_cc_mode): Return CCmode if Y is not zero.
20714
ea57f573
RG
207152011-02-10 Richard Guenther <rguenther@suse.de>
20716
ea4c3e65 20717 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 20718
92b1d23b
RG
207192011-02-10 Richard Guenther <rguenther@suse.de>
20720
20721 PR tree-optimization/47677
20722 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
20723
525a2d06
JJ
207242011-02-10 Jakub Jelinek <jakub@redhat.com>
20725
20726 PR target/47665
20727 * combine.c (make_compound_operation): Only change shifts into
20728 multiplication for SCALAR_INT_MODE_P.
20729
06c969bd
JZ
207302011-02-10 Jie Zhang <jie@codesourcery.com>
20731
20732 PR testsuite/47622
20733 Revert
20734 2011-02-05 Jie Zhang <jie@codesourcery.com>
20735 PR debug/42631
20736 * web.c (entry_register): Don't clobber the number of the
20737 first uninitialized reference in used[].
20738
282ec48e
RG
207392011-02-09 Richard Guenther <rguenther@suse.de>
20740
20741 PR tree-optimization/47664
20742 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
20743 all edges again.
20744
df98c3e8
DE
207452011-02-09 David Edelsohn <dje.gcc@gmail.com>
20746
d0f21cd6
DE
20747 PR target/46481
20748 PR target/47032
df98c3e8
DE
20749 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
20750 PROCESSOR_POWER7.
20751 (PROCESSOR_DEFAULT64): Same.
20752 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
20753
67b6839f
RO
207542011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20755
20756 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
20757
4fd73214
MJ
207582011-02-09 Martin Jambor <mjambor@suse.cz>
20759
20760 PR middle-end/45505
20761 * tree-sra.c (struct access): New flags grp_scalar_read and
20762 grp_scalar_write. Changed description of assignment read and write
20763 flags.
20764 (dump_access): Dump new flags, reorder all of them.
20765 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
20766 to detect multiple scalar reads.
20767 (analyze_access_subtree): Use the new scalar read write flags instead
20768 of the old flags. Adjusted comments.
20769
91140cd3
DD
207702011-02-08 DJ Delorie <dj@redhat.com>
20771
20772 PR target/47548
20773 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
20774 patterns.
20775
4254bbfe
JM
207762011-02-08 Joseph Myers <joseph@codesourcery.com>
20777
20778 * config/m68k/uclinux.opt: New.
20779 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
20780
f1fda84e
JM
207812011-02-08 Joseph Myers <joseph@codesourcery.com>
20782
20783 * config/cris/elf.opt (sim): New Driver option.
20784
4933ae74
JM
207852011-02-08 Joseph Myers <joseph@codesourcery.com>
20786
20787 * config/xtensa/elf.opt: New.
20788 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
20789
4ad70280
JM
207902011-02-08 Joseph Myers <joseph@codesourcery.com>
20791
20792 * config/vax/elf.opt: New.
20793 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
20794
20893707
JM
207952011-02-08 Joseph Myers <joseph@codesourcery.com>
20796
20797 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
20798
b8e7038e
JM
207992011-02-08 Joseph Myers <joseph@codesourcery.com>
20800
20801 * config/gnu-user.opt: New.
20802 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
20803 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
20804 *-*-uclinux*): Use gnu-user.opt.
20805
e1c5225a
TS
208062011-02-08 Thomas Schwinge <thomas@schwinge.name>
20807
20808 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
20809 * config/i386/gnu.h (CPP_SPEC): Likewise.
20810
5e46b0c6
ILT
208112011-02-08 Ian Lance Taylor <iant@google.com>
20812
20813 * common.opt (fcx-limited-range): Add SetByCombined flag.
20814 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
20815 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
20816 (fassociative-math, freciprocal-math): Likewise.
20817 (funsafe-math-optimizations): Likewise.
20818 * opth-gen.awk: Handle SetByCombined.
20819 * optc-gen.awk: Likewise.
ea4c3e65 20820 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
20821 (set_unsafe_math_optimizations_flags): Likewise.
20822 * doc/options.texi (Option properties): Document SetByCombined.
20823
32243d46
JM
208242011-02-08 Joseph Myers <joseph@codesourcery.com>
20825
20826 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
20827 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
20828 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
20829 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
20830 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
20831
479c1fb3
SP
208322011-02-08 Sebastian Pop <sebastian.pop@amd.com>
20833
20834 PR tree-optimization/46834
20835 PR tree-optimization/46994
20836 PR tree-optimization/46995
20837 * graphite-sese-to-poly.c (used_outside_reduction): New.
20838 (detect_commutative_reduction): Call used_outside_reduction.
20839 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
20840 translate_scalar_reduction_to_array only when at least one
20841 loop-phi/close-phi tuple has been detected.
20842
3865a06f
RG
208432011-02-08 Richard Guenther <rguenther@suse.de>
20844
20845 PR middle-end/47639
20846 * tree-vect-generic.c (expand_vector_operations_1): Update
20847 stmts here ...
20848 (expand_vector_operations): ... not here. Cleanup EH info
20849 and the CFG if required.
20850
62902f3f
RG
208512011-02-08 Richard Guenther <rguenther@suse.de>
20852
20853 PR tree-optimization/47641
20854 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
20855 require type compatibility.
20856
0efb9d64
AK
208572011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20858
20859 * gimple-low.c (lower_function_body): Don't remove the location of
20860 the return statement here.
20861 (lower_gimple_return): Do it here instead but only if the return
20862 statement is actually used twice.
20863
034b8ae4
RG
208642011-02-08 Richard Guenther <rguenther@suse.de>
20865
20866 PR tree-optimization/47632
20867 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
20868 unused up_to_stmt parameter, return whether cfg-cleanup is
20869 necessary, remove EH info properly.
20870 (forward_propagate_into_gimple_cond): Adjust caller.
20871 (forward_propagate_into_cond): Likewise.
20872 (forward_propagate_comparison): Likewise.
20873 (tree_ssa_forward_propagate_single_use_vars): Make
20874 forward_propagate_comparison case similar to the two others.
20875
298362c8
NC
208762011-02-08 Nick Clifton <nickc@redhat.com>
20877
20878 * config/mn10300/mn10300.opt (mliw): New command line option.
20879 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
20880 (liw_bundling): New automaton.
20881 (liw): New attribute.
20882 (liw_op): New attribute.
20883 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
20884 (movsi_internal): Add LIW attributes.
20885 (andsi3): Likewise.
20886 (iorsi3): Likewise.
20887 (xorsi3): Likewise.
20888 (addsi3): Separate register and immediate alternatives.
20889 Add LIW attributes.
20890 (subsi3): Likewise.
20891 (cmpsi): Likewise.
20892 (aslsi3): Likewise.
20893 (lshrsi3): Likewise.
20894 (ashrsi3): Likewise.
20895 (liw): New pattern.
20896 * config/mn10300/mn10300.c (liw_op_names): New
20897 (mn10300_print_operand): Handle 'W' operand descriptor.
20898 (extract_bundle): New function.
20899 (check_liw_constraints): New function.
20900 (liw_candidate): New function.
20901 (mn10300_bundle_liw): New function.
20902 (mn10300_reorg): New function.
20903 (TARGET_MACHINE_DEPENDENT_REORG): Define.
20904 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
20905 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
20906 __LIW__ or __NO_LIW__.
20907 * doc/invoke.texi: Describe the -mliw command line option.
20908
90488014
JDA
209092011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20910
20911 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
20912 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20913 pthread_mutex_unlock): Remove.
20914 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
20915 * config/pa/t-pa64: Likewise.
20916 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
20917 shared libc if not linking against libpthread.
20918 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20919
689ff841
IS
209202011-02-07 Iain Sandoe <iains@gcc.gnu.org>
20921
20922 PR target/47558
20923 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
20924 on 10.6 and later to ensure that we always use the unwinder from
20925 the system. Only add -no_compact_unwind when tarteting darwin
20926 10.6 or later.
20927
821014aa
SE
209282011-02-07 Steve Ellcey <sje@cup.hp.com>
20929
20930 PR target/46997
20931 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
20932 (vec_interleave_lowv2sf): Ditto.
20933 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
20934 (vec_extract_oddv2sf): Ditto.
20935
41cf94fb
MS
209362011-02-07 Mike Stump <mikestump@comcast.net>
20937
62dea57d 20938 PR target/42333
41cf94fb
MS
20939 Add __ieee_divdc3 entry point.
20940 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
20941 entry point.
20942 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
20943 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
20944 * config/darwin.c (darwin_rename_builtins): Add.
20945 * config/darwin-protos.h (darwin_rename_builtins): Add.
20946
ee09a3dd
MM
209472011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
20948
20949 PR target/47636
20950 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
20951 for the condition.
20952
83296cd0
MS
209532011-02-07 Mike Stump <mikestump@comcast.net>
20954
ea4c3e65 20955 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 20956
0f4e946f
DC
209572011-02-07 Denis Chertykov <chertykov@gmail.com>
20958
20959 PR target/47534
20960 * config/avr/libgcc.S (exit): Move .endfunc
20961
1ec87690
RG
209622011-02-07 Richard Guenther <rguenther@suse.de>
20963
20964 PR tree-optimization/47615
20965 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
20966 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
20967 (run_scc_vn): Initialize it.
20968 (visit_reference_op_load): Use it.
20969 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
20970
b46ae6da
UW
209712011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20972
20973 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
20974 DImode trapping arithmetic libfuncs.
20975
c0aae19c
RG
209762011-02-07 Richard Guenther <rguenther@suse.de>
20977
20978 PR tree-optimization/47621
20979 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
20980 two duplicates ...
20981 (execute_update_addresses_taken): ... here. Make it more
20982 conservative in what we accept.
20983
295d926b
JM
209842011-02-06 Joseph Myers <joseph@codesourcery.com>
20985
20986 * config/sparc/freebsd.h (ASM_SPEC): Define.
20987 * config/sparc/vxworks.h (ASM_SPEC): Define.
20988
bdeb2471
JM
209892011-02-06 Joseph Myers <joseph@codesourcery.com>
20990
20991 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20992
d5d3781a
SB
209932011-02-06 Steven Bosscher <steven@gcc.gnu.org>
20994
20995 * doc/invoke.texi: Remove reference to compiler internals from
20996 user documentation.
20997
20998 * reg-notes.def: Remove REG_VALUE_PROFILE.
20999 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
21000
c42c09fc
JJ
210012011-02-05 Jakub Jelinek <jakub@redhat.com>
21002
21003 PR middle-end/47610
21004 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 21005 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 21006
beea2755
JZ
210072011-02-05 Jie Zhang <jie@codesourcery.com>
21008
21009 PR debug/42631
21010 * web.c (entry_register): Don't clobber the number of the
21011 first uninitialized reference in used[].
21012
a130584a
SP
210132011-02-04 Sebastian Pop <sebastian.pop@amd.com>
21014
21015 PR tree-optimization/46194
21016 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
21017 (build_classic_dist_vector_1): Do not represent classic distance
21018 vectors when the access functions are variating in different loops.
21019
962101ac
JM
210202011-02-04 Joseph Myers <joseph@codesourcery.com>
21021
21022 * config/mips/iris6.opt: New.
21023 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
21024
55eaaa5b
RH
210252011-02-04 Richard Henderson <rth@redhat.com>
21026 Steve Ellcey <sje@cup.hp.com>
21027
21028 PR target/46997
21029 * config/ia64/predicates.md (mux1_brcst_element): New.
21030 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
21031 * config/ia64/ia64.c (ia64_unpack_assemble): New.
21032 (ia64_unpack_sign): New.
21033 (ia64_expand_unpack): Rewrite using new routines.
21034 (ia64_expand_widen_sum): Ditto.
21035 (ia64_expand_dot_prod_v8qi): Ditto.
21036 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
21037 routines, add endian check.
21038 (pmpy2_even): Rename from pmpy2_r, add endian check.
21039 (pmpy2_odd): Rename from pmpy2_l, add endian check.
21040 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
21041 (vec_widen_smult_hi_v4hi): Ditto.
21042 (vec_widen_umult_lo_v4hi): Ditto.
21043 (vec_widen_umult_hi_v4hi): Ditto.
21044 (mulv2si3): Change endian checks.
21045 (sdot_prodv4hi): Rewrite with new calls.
21046 (udot_prodv4hi): New.
21047 (vec_pack_ssat_v4hi): Add endian check.
21048 (vec_pack_usat_v4hi): Ditto.
21049 (vec_pack_ssat_v2si): Ditto.
21050 (max1_even): Rename from max1_r, add endian check.
21051 (max1_odd): Rename from max1_l, add endian check.
21052 (*mux1_rev): Format change.
21053 (*mux1_mix): Ditto.
21054 (*mux1_shuf): Ditto.
21055 (*mux1_alt): Ditto.
21056 (*mux1_brcst_v8qi): Use new predicate.
21057 (vec_extract_evenv8qi): Remove endian check.
21058 (vec_extract_oddv8qi): Ditto.
21059 (vec_interleave_lowv4hi): Format change.
21060 (vec_interleave_highv4hi): Ditto.
21061 (mix2_even): Rename from mix2_r, add endian check.
21062 (mix2_odd): Rename from mux2_l, add endian check.
21063 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
21064 (vec_extract_evenodd_helper): Format change.
21065 (vec_extract_evenv4hi): Remove endian check.
21066 (vec_extract_oddv4hi): Remove endian check.
21067 (vec_interleave_lowv2si): Format change.
21068 (vec_interleave_highv2si): Format change.
21069 (vec_initv2si): Remove endian check.
21070 (vecinit_v2si): Add endian check.
21071 (reduc_splus_v2sf): Add endian check.
21072 (reduc_smax_v2sf): Ditto.
21073 (reduc_smin_v2sf): Ditto.
21074 (vec_initv2sf): Remove endian check.
21075 (fpack): Add endian check.
21076 (fswap): Add endian check.
21077 (vec_interleave_highv2sf): Add endian check.
21078 (vec_interleave_lowv2sf): Add endian check.
21079 (fmix_lr): Add endian check.
21080 (vec_setv2sf): Format change.
21081 (*vec_extractv2sf_0_be): Use shift to extract operand.
21082 (*vec_extractv2sf_1_be): New.
21083 (vec_pack_trunc_v4hi): Add endian check.
21084 (vec_pack_trunc_v2si): Format change.
21085
dcde5957
JJ
210862011-02-04 Jakub Jelinek <jakub@redhat.com>
21087
21088 PR inline-asm/23200
21089 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 21090 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
21091 (stmt_is_replaceable_p): New function.
21092 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
21093 callers.
21094 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
21095 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
21096 SSA_NAME_DEF_STMT.
21097 * tree-flow.h (stmt_is_replaceable_p): New prototype.
21098
a64a8e5a
JM
210992011-02-04 Joseph Myers <joseph@codesourcery.com>
21100
21101 * config/rs6000/xilinx.opt: New.
21102 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
21103
4da2ed2f
JM
211042011-02-04 Joseph Myers <joseph@codesourcery.com>
21105
21106 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
21107
a6e508f9
AS
211082011-02-03 Anatoly Sokolov <aesok@post.ru>
21109
21110 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
21111 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21112 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
21113 secondary_reload_info, xtensa_secondary_reload): Remove.
21114 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
21115 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21116 (xtensa_preferred_reload_class): Make static. Change return and
21117 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
21118 Use CONST_DOUBLE_P predicate.
21119 (xtensa_preferred_output_reload_class): New function.
21120 (xtensa_secondary_reload): Make static.
21121
82dc0de3
JM
211222011-02-03 Joseph Myers <joseph@codesourcery.com>
21123
21124 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
21125 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
21126 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
21127
7fece979
JJ
211282011-02-03 Jakub Jelinek <jakub@redhat.com>
21129
21130 PR middle-end/31490
21131 * output.h (SECTION_RELRO): Define.
21132 (SECTION_MACH_DEP): Adjust.
21133 (get_variable_section): New prototype.
21134 * varpool.c (varpool_finalize_named_section_flags): New function.
21135 (varpool_assemble_pending_decls): Call it.
21136 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
21137 * cgraphunit.c (cgraph_output_in_order): Call
21138 varpool_finalize_named_section_flags.
21139 * varasm.c (get_section): Allow section flags conflicts between
21140 relro and read-only sections if the section hasn't been declared yet.
21141 Set SECTION_OVERRIDE after diagnosing section type conflict.
21142 (get_variable_section): No longer static.
21143 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
21144 readonly sections that need relocations.
21145 (decl_readonly_section_1): New function.
21146 (decl_readonly_section): Use it.
21147
21148 Revert:
509d65dd 21149 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
21150 Steve Ellcey <sje@cup.hp.com>
21151
21152 PR middle-end/31490
21153 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
21154 if section attribute used.
21155
d18d5478
JJ
211562011-02-03 Jakub Jelinek <jakub@redhat.com>
21157
21158 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
21159 * config/darwin.c (SECTION_NO_ANCHOR): Define.
21160 (darwin_init_sections): Remove assertion.
21161
6479ed4b
NC
211622011-02-03 Nick Clifton <nickc@redhat.com>
21163
21164 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
21165 lt and ge.
38be4072 21166 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
21167 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
21168 instead of "n" and "pz".
21169 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
21170 CC_FLAG_S.
21171
89843f5d
JJ
211722011-02-03 Jakub Jelinek <jakub@redhat.com>
21173
65450d64
JJ
21174 PR target/47312
21175 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
21176 fma, expand FMA_EXPR as fma{,f,l} call.
21177
7d58701c
JJ
21178 PR lto/47274
21179 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
21180 copy them into a unsigned char variable and pass address of it to
21181 lto_output_data_stream.
21182
89843f5d
JJ
21183 PR target/47564
21184 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
21185 around backend_init_target and lang_dependent_init_target calls.
21186 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
21187 (verify_cgraph_node): Don't call set_cfun here. Use
21188 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
21189 Set error_found for incorrectly represented calls to thunks.
21190
4deef538
AO
211912011-02-03 Alexandre Oliva <aoliva@redhat.com>
21192
21193 PR debug/43092
21194 PR rtl-optimization/43494
21195 * rtl.h (for_each_inc_dec_fn): New type.
21196 (for_each_inc_dec): Declare.
21197 * rtlanal.c (struct for_each_inc_dec_ops): New type.
21198 (for_each_inc_dec_find_inc_dec): New fn.
21199 (for_each_inc_dec_find_mem): New fn.
21200 (for_each_inc_dec): New fn.
21201 * dse.c (struct insn_size): Remove.
21202 (replace_inc_dec, replace_inc_dec_mem): Remove.
21203 (emit_inc_dec_insn_before): New fn.
21204 (check_for_inc_dec): Use it, along with for_each_inc_dec.
21205 (canon_address): Pass mem modes to cselib_lookup.
21206 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
21207 (cselib_lookup_from_insn): Likewise.
21208 (cselib_subst_to_values): Likewise.
21209 * cselib.c (find_slot_memmode): New var.
21210 (cselib_find_slot): New fn. Use it instead of
21211 htab_find_slot_with_hash everywhere.
21212 (entry_and_rtx_equal_p): Use find_slot_memmode.
21213 (autoinc_split): New fn.
21214 (rtx_equal_for_cselib_p): Rename and implement in terms of...
21215 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
21216 Deal with autoinc. Special-case recursion into MEMs.
21217 (cselib_hash_rtx): Likewise.
21218 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
21219 address and MEM modes.
21220 (cselib_subst_to_values): Add memmode, pass it on.
21221 Deal with autoinc.
21222 (cselib_lookup): Add memmode argument, pass it on.
21223 (cselib_lookup_from_insn): Add memmode.
21224 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
21225 (struct cselib_record_autoinc_data): New.
21226 (cselib_record_autoinc_cb): New fn.
21227 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
21228 mode to cselib_lookup. Reset autoinced REGs here instead of...
21229 (cselib_process_insn): ... here.
21230 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
21231 to cselib_lookup.
21232 (add_uses): Likewise, also to cselib_subst_to_values.
21233 (add_stores): Likewise.
21234 * sched-deps.c (add_insn_mem_dependence): Pass mode to
21235 cselib_subst_to_values.
21236 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
21237 * gcse.c (do_local_cprop): Adjusted.
21238 * postreload.c (reload_cse_simplify_set): Adjusted.
21239 (reload_cse_simplify_operands): Adjusted.
21240 * sel-sched-dump (debug_mem_addr_value): Pass mode.
21241
1551d44a
AO
212422011-02-03 Alexandre Oliva <aoliva@redhat.com>
21243
21244 PR tree-optimization/45122
21245 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
21246 unsafe assumptions when there's more than one loop exit.
21247
c9485473
MM
212482011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
21249
21250 PR target/47272
21251 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
21252 Document using vector double with the load/store builtins, and
21253 that the load/store builtins always use Altivec instructions.
21254
21255 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
21256 to use altivec memory instructions, even on VSX.
21257 (vector_altivec_store_<mode>): Ditto.
21258
21259 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
21260 function.
21261
21262 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21263 V2DF, V2DI support to load/store overloaded builtins.
21264
21265 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
21266 altivec load/store builtins for V2DF/V2DI types.
21267
21268 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
21269 set avoid indexed addresses on power6 if -maltivec.
21270 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
21271 vector_altivec_load/vector_altivec_store builtins.
21272 (altivec_expand_st_builtin): Ditto.
21273 (altivec_expand_builtin): Add VSX memory builtins.
21274 (rs6000_init_builtins): Add V2DI types to internal types.
21275 (altivec_init_builtins): Add support for V2DF/V2DI altivec
21276 load/store builtins.
21277 (rs6000_address_for_altivec): Insure memory address is appropriate
21278 for Altivec.
21279
21280 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
21281 vec_vsx_ld and vec_vsx_st.
21282 (vsx_store_<mode>): Ditto.
21283
21284 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
21285 variables to hold long long types for VSX vector memory builtins.
21286 (RS6000_BTI_unsigned_long_long): Ditto.
21287 (long_long_integer_type_internal_node): Ditti.
21288 (long_long_unsigned_type_internal_node): Ditti.
21289
21290 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
21291 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
21292 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
21293
21294 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
21295 short cuts.
21296 (vec_vsx_st): Ditto.
21297
b24d1acf
JM
212982011-02-02 Joseph Myers <joseph@codesourcery.com>
21299
21300 * config/pa/pa-hpux10.opt: New.
21301 * config/hpux11.opt (pthread): New Driver option.
21302 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
21303 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
21304
aa18dd0f
JM
213052011-02-02 Joseph Myers <joseph@codesourcery.com>
21306
21307 * config/ia64/vms.opt: New.
21308 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
21309
28fc3eee
MM
213102011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
21311
21312 PR target/47580
21313 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
21314 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
21315 generator functions.
21316 (vsx_floatuns<VSi><mode>2): Ditto.
21317 (vsx_fix_trunc<mode><VSi>2): Ditto.
21318 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
21319
b5838b1f
JM
213202011-02-02 Joseph Myers <joseph@codesourcery.com>
21321
21322 * config/i386/djgpp.opt (posix): New Driver option.
21323
0db8fa89
GP
213242011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
21325
21326 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
21327 Move to the unsupported targets list.
21328
9cd4f22a
PB
213292011-02-02 Peter Bergner <bergner@vnet.ibm.com>
21330
21331 PR rtl-optimization/47525
21332 * df-scan.c: Update copyright years.
21333 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
21334 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
21335
9ed8059c
RO
213362011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21337
21338 * config/i386/sysv4.h (TARGET_VERSION): Remove.
21339 (SUBTARGET_RETURN_IN_MEMORY): Remove.
21340 (ASM_OUTPUT_ASCII): Remove.
21341 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
21342
2a737389
JL
213432011-02-02 Jeff Law <law@redhat.com>
21344
21345 PR middle-end/47543
21346 * reload.c (find_reloads_address): Handle reg+d address where both
21347 components are invalid by reloading the entire address.
21348
9dac82c4
SP
213492011-02-02 Sebastian Pop <sebastian.pop@amd.com>
21350 Richard Guenther <rguenther@suse.de>
21351
21352 PR tree-optimization/40979
21353 PR bootstrap/47044
21354 * passes.c (init_optimization_passes): After LIM call copy_prop
21355 and DCE to clean up.
21356 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
21357
14dd9aab
SP
213582011-02-02 Sebastian Pop <sebastian.pop@amd.com>
21359
21360 PR tree-optimization/47576
21361 PR tree-optimization/47555
21362 * doc/invoke.texi (scev-max-expr-complexity): Documented.
21363 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21364 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
21365 * tree-scalar-evolution.c (follow_ssa_edge): Use
21366 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
21367
5cbf5c20
RG
213682011-02-02 Richard Guenther <rguenther@suse.de>
21369
21370 PR tree-optimization/47566
21371 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
21372
83d70792
AO
213732011-02-02 Alexandre Oliva <aoliva@redhat.com>
21374
e829c321
AO
21375 PR debug/47106
21376 PR debug/47402
21377 * tree-inline.c (declare_return_variable): Remove unused caller
21378 variable.
21379
83d70792
AO
21380 PR debug/47106
21381 PR debug/47402
21382 * tree-flow-inline.h (clear_is_used, is_used_p): New.
21383 * cfgexpand.c (account_used_vars_for_block): Use them.
21384 * tree-nrv.c (tree_nrv): Likewise.
21385 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
21386 (dump_scope_block): Likewise.
21387 (remove_unused_locals): Likewise.
21388
aaa2ac93
AO
21389 PR debug/47106
21390 PR debug/47402
21391 * tree-inline.c (declare_return_variable): Add result decl to
21392 local decls only once.
21393 * gimple-low.c (record_vars_into): Mark newly-created variables
21394 as referenced.
21395
a59d15cf
AO
213962011-02-02 Alexandre Oliva <aoliva@redhat.com>
21397
21398 PR debug/47498
21399 PR debug/47501
21400 PR debug/45136
21401 PR debug/45130
21402 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21403 debug insns.
21404 (no_real_insns_p, schedule_block, set_priorities): Drop special
21405 treatment of boundary debug insns.
38be4072 21406 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
21407 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
21408 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21409 (BOUNDARY_DEBUG_INSN_P): Likewise.
21410 (SCHEDULE_DEBUG_INSN_P): Likewise.
21411 * sched-rgn.c (init_ready_list): Drop special treatment of
21412 boundary debug insns.
21413 * final.c (rest_of_clean_state): Clear notes' BB.
21414
6fc2f091
JM
214152011-02-01 Joseph Myers <joseph@codesourcery.com>
21416
21417 * config/openbsd.opt (assert=): New Driver option.
21418
fc523387
JM
214192011-02-01 Joseph Myers <joseph@codesourcery.com>
21420
21421 * config/i386/nto.opt: New.
21422 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
21423
6d9821e5
JM
214242011-02-01 Joseph Myers <joseph@codesourcery.com>
21425
21426 * config/i386/netware.opt: New.
21427 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
21428
cef932d4
JM
214292011-02-01 Joseph Myers <joseph@codesourcery.com>
21430
21431 * config/interix.opt (posix): New Driver option.
21432
22843acd
DD
214332011-02-01 DJ Delorie <dj@redhat.com>
21434
56490b74
DD
21435 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
21436
22843acd
DD
21437 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
21438 class for A0/A1.
21439
199c8f2f
SP
214402011-02-01 Sebastian Pop <sebastian.pop@amd.com>
21441
21442 PR tree-optimization/47561
21443 * toplev.c (process_options): Print the Graphite flags. Add
21444 flag_loop_flatten to the list of options requiring Graphite.
21445
926bcf22
JM
214462011-02-01 Joseph Myers <joseph@codesourcery.com>
21447
21448 * config/i386/cygming.opt (posix): New Driver option.
21449
59793c51
JM
214502011-02-01 Joseph Myers <joseph@codesourcery.com>
21451
21452 * config/arm/vxworks.opt: New.
21453 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
21454
183c38a4
JM
214552011-02-01 Joseph Myers <joseph@codesourcery.com>
21456
21457 * config/alpha/elf.opt: New.
21458 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
21459 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
21460
9939e416
RG
214612011-02-01 Richard Guenther <rguenther@suse.de>
21462
21463 PR tree-optimization/47559
21464 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
21465 store-motion on references that can throw.
21466
4a3c9687
BS
214672011-02-01 Bernd Schmidt <bernds@codesourcery.com>
21468
21469 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
21470 * tree-pass.h (TDF_CSELIB): New macro.
21471 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
21472 cselib_lookup): Check for it rather than for TDF_DETAILS.
21473
dd3b31fb
L
214742011-02-01 H.J. Lu <hongjiu.lu@intel.com>
21475
21476 PR driver/47547
21477 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
21478 is HOST_BIT_BUCKET.
21479
21480 * opts.c (finish_options): Don't add x_aux_base_name if it is
21481 HOST_BIT_BUCKET.
21482
34c1de79
RG
214832011-02-01 Richard Guenther <rguenther@suse.de>
21484
21485 PR tree-optimization/47555
21486 Revert
21487 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
21488
21489 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21490
dd2804d2
SB
214912011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
21492
21493 PR gcc/46692
21494 * config/lm32/t-lm32: Add multilib for all CPU options.
21495
3fd3b156
RG
214962011-02-01 Richard Guenther <rguenther@suse.de>
21497
21498 PR tree-optimization/47541
21499 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
21500 sure to have a field at offset zero.
21501
f16072b6
JM
215022011-01-31 Joseph Myers <joseph@codesourcery.com>
21503
21504 * config/arc/arc.opt (EB, EL): New Driver options.
21505
6456cf2e
JM
215062011-01-31 Joseph Myers <joseph@codesourcery.com>
21507
21508 * config/alpha/osf5.opt: New.
21509 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
21510
cdde6ab4
JM
215112011-01-31 Joseph Myers <joseph@codesourcery.com>
21512
21513 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
21514
7633415c
SP
215152011-01-31 Sebastian Pop <sebastian.pop@amd.com>
21516
21517 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
21518 -floop-interchange.
21519 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
21520 is an alias of -floop-interchange and that it requires the
21521 Graphite infrastructure.
21522 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
21523 flag_loop_interchange based on the value of flag_tree_loop_linear.
21524
0425d6f5
JJ
215252011-01-31 Jakub Jelinek <jakub@redhat.com>
21526 Richard Guenther <rguenther@suse.de>
21527
21528 PR tree-optimization/47538
21529 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
21530 type instead of r1type, except for comparisons. For right
21531 shifts and comparisons punt if there are mismatches in
21532 sizetype vs. non-sizetype types.
21533
500b16c3
RO
215342011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21535
21536 * doc/sourcebuild.texi (Effective-Target Keywords): Document
21537 avx_runtime.
21538
e279edb0
RO
215392011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21540
21541 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
21542 version number.
21543 * configure: Regenerate.
21544
c6092243
RO
215452011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21546
21547 * configure.ac (gcc_cv_ld_static_option): Define.
21548 (gcc_cv_ld_dynamic_option): Define.
21549 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
21550 instead.
21551 (HAVE_LD_STATIC_DYNAMIC): Update message.
21552 (LD_STATIC_OPTION): Define.
21553 (LD_DYNAMIC_OPTION): Define.
21554 * configure: Regenerate.
21555 * config.in: Regenerate.
21556 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
21557 HAVE_LD_STATIC_DYNAMIC]: Use them.
21558
d7862be3
NC
215592011-01-31 Nick Clifton <nickc@redhat.com>
21560
21561 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
21562 registers inside interrupt handlers if the handler is not a leaf
21563 function.
21564
ba4ec0e0
NC
215652011-01-31 Nick Clifton <nickc@redhat.com>
21566
21567 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
21568 reg_renumber returning an INVALID_REGNUM.
21569
29a63921
AO
215702011-01-31 Alexandre Oliva <aoliva@redhat.com>
21571
21572 PR libgcj/44341
21573 * doc/install.texi: Document host options discarded when cross
21574 configuring target libraries.
21575
ef591d3f
AO
215762011-01-31 Alexandre Oliva <aoliva@redhat.com>
21577
21578 Reverted:
21579 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
21580 PR debug/45136
21581 PR debug/45130
21582 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21583 debug insns.
21584 (no_real_insns_p, schedule_block, set_priorities): Drop special
21585 treatment of boundary debug insns.
38be4072 21586 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
21587 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21588 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21589 (BOUNDARY_DEBUG_INSN_P): Likewise.
21590 (SCHEDULE_DEBUG_INSN_P): Likewise.
21591 * sched-rgn.c (init_ready_list): Drop special treatment of
21592 boundary debug insns.
21593 * final.c (rest_of_clean-state): Clear notes' BB.
21594
61052244
AM
215952011-01-31 Alan Modra <amodra@gmail.com>
21596
21597 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
21598 toc relative expressions as we do in print_operand_address.
21599
c4c8962b
KH
216002011-01-30 Kazu Hirata <kazu@codesourcery.com>
21601
21602 * doc/extend.texi: Follow spelling conventions.
21603 * doc/invoke.texi: Fix a typo.
21604
e543b94c
JM
216052011-01-30 Joseph Myers <joseph@codesourcery.com>
21606
21607 * config/hpux11.opt: New.
21608 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
21609 ia64*-*-hpux*): Use hpux11.opt.
21610
509d65dd 216112011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
21612
21613 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
21614 to tmake_file.
21615
7be03a0e
GP
216162011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21617
21618 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
21619 support sites.
21620
419d1d37
GP
216212011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21622
b596ed64
GP
21623 * doc/install.texi (Binaries): Remove outdated reference for
21624 Motorola 68HC11/68HC12 downloads.
21625
216262011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 21627
419d1d37
GP
21628 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
21629 Drepper's paper.
21630
4406d0e9
JW
216312011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
21632
21633 PR bootstrap/47147
21634 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
21635 used by NetBSD.
21636
38be4072 216372011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
21638
21639 * value-prof.c (check_counter): Corrected error message.
21640
0cd98787
JZ
216412011-01-29 Jie Zhang <jie@codesourcery.com>
21642
21643 * config/arm/arm.c (arm_legitimize_reload_address): New.
21644 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21645 arm_legitimize_reload_address.
38be4072 21646 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 21647
9b798ac5
ILT
216482011-01-28 Ian Lance Taylor <iant@google.com>
21649
21650 * godump.c (go_define): Ignore macros whose definitions include
21651 two adjacent operands.
21652
591e29d9
JJ
216532011-01-28 Jakub Jelinek <jakub@redhat.com>
21654
21655 PR target/42894
21656 * varasm.c (force_const_mem): Store copy of x in desc->constant
21657 instead of x itself.
21658 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
21659 itself into REG_EQUAL note.
21660
62dcc44a
JM
216612011-01-28 Joseph Myers <joseph@codesourcery.com>
21662
21663 * config/freebsd.opt (posix, rdynamic): New Driver options.
21664
c9f58b9a
RO
216652011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21666
21667 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
21668 -Bstatic/-Bdynamic.
21669 * configure: Regenerate.
21670
5f02b9db
JM
216712011-01-27 Joseph Myers <joseph@codesourcery.com>
21672
21673 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
21674 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
21675
5df97412
AS
216762011-01-27 Anatoly Sokolov <aesok@post.ru>
21677
21678 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
21679 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
21680 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
21681 (s390_preferred_reload_class): Make static. Change return and
21682 'rclass' argument type to reg_class_t.
21683
779d4b91
JH
216842011-01-27 Jan Hubicka <jh@suse.cz>
21685
21686 PR middle-end/46949
21687 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
21688 (process_function_and_variable_attributes): Check defined weakrefs.
21689
e80b21ed
MJ
216902011-01-27 Martin Jambor <mjambor@suse.cz>
21691
21692 PR tree-optimization/47228
21693 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
21694 build_ref_for_offset.
21695
6dcc4f31
UW
216962011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21697
21698 * config/spu/spu-elf.h (ASM_SPEC): Remove.
21699
509d65dd 217002011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
21701
21702 PR rtl-optimization/46856
21703 * postreload.c (reload_combine_recognize_const_pattern): Do not
21704 separate cc0 setter and user on cc0 targets.
21705
04af8788
NP
217062011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
21707
21708 PR c/43082
21709 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
21710 passed a VOID_TYPE expression, immediately emit an error and
21711 return error_mark_node.
21712
f7a60085
JL
217132011-01-26 Jeff Law <law@redhat.com>
21714
21715 PR rtl-optimization/47464
21716 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
21717 rather than may_trap_p as needed.
21718
5c2917ec
DD
217192011-01-26 DJ Delorie <dj@redhat.com>
21720
21721 PR rtl-optimization/46878
21722 * combine.c (insn_a_feeds_b): Check for the implicit cc0
21723 setter/user dependency as well.
21724
bef16e87
EB
217252011-01-26 Eric Botcazou <ebotcazou@adacore.com>
21726
21727 PR rtl-optimization/44469
21728 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
21729 after removing trivially dead basic blocks.
21730
c75d884b
JM
217312011-01-26 Joseph Myers <joseph@codesourcery.com>
21732
21733 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
21734 * config/frv/frv.h (LINK_SPEC): Likewise.
21735 * config/i386/netware.h (LINK_SPEC): Likewise.
21736 * config/m68k/linux.h (ASM_SPEC): Likewise.
21737 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
21738 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21739 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21740 * config/sparc/linux.h (ASM_SPEC): Likewise.
21741 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21742 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21743
d3153553
JM
217442011-01-26 Joseph Myers <joseph@codesourcery.com>
21745
21746 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
21747 * config/frv/frv.h (ASM_SPEC): Likewise.
21748 * config/m68k/linux.h (ASM_SPEC): Likewise.
21749 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21750 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
21751 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21752 * config/sparc/linux.h (ASM_SPEC): Likewise.
21753 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21754 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21755
b89b1e9d
JM
217562011-01-26 Joseph Myers <joseph@codesourcery.com>
21757
21758 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
21759 * config/frv/frv.h (LINK_SPEC): Likewise.
21760 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21761
12eb1a9c
JM
217622011-01-26 Joseph Myers <joseph@codesourcery.com>
21763
21764 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
21765 * config/frv/frv.h (ASM_SPEC): Likewise.
21766 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
21767 * config/m68k/linux.h (ASM_SPEC): Likewise.
21768 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21769 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21770 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21771 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
21772 * config/sparc/linux.h (ASM_SPEC): Likewise.
21773 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21774 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21775 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
21776
e435f098
SE
217772011-01-26 Steve Ellcey <sje@cup.hp.com>
21778
21779 PR target/46997
21780 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
21781 (*mux2): Ditto.
21782 (vec_extract_evenodd_help): Ditto.
21783 (vec_extract_evenv4hi): Ditto.
21784 (vec_extract_oddv4hi): Ditto.
21785 (vec_interleave_lowv2si): Ditto.
21786 (vec_interleave_highv2si): Ditto.
21787 (vec_extract_evenv2si): Ditto.
21788 (vec_extract_oddv2si: Ditto.
21789 (vec_pack_trunc_v2si): Ditto.
21790
34f0eee0
JH
217912011-01-22 Jan Hubicka <jh@suse.cz>
21792
21793 PR target/47237
21794 * cgraph.h (cgraph_local_info): New field can_change_signature.
21795 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
21796 signature can change.
21797 (ipcp_estimate_growth): Call sequence simplify only if calle signature
21798 can change.
21799 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
21800 (cgraph_function_versioning): We can not change signature of functions
21801 that don't allow that.
21802 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
21803 (lto_input_node): Likewise.
38be4072
UB
21804 * ipa-inline.c (compute_inline_parameters): Compute
21805 local.can_change_signature.
34f0eee0 21806 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
21807 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
21808 functions that can not change signature.
34f0eee0 21809 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
21810 init_cumulative_args): Do not use local calling conventions
21811 for functions that can not change signature.
34f0eee0 21812
980ca891
JH
218132011-01-22 Jan Hubicka <jh@suse.cz>
21814
21815 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
21816
768e3c60
RG
218172011-01-26 Richard Guenther <rguenther@suse.de>
21818
21819 PR tree-optimization/47190
61052244
AM
21820 * cgraphunit.c (process_common_attributes): New function.
21821 (process_function_and_variable_attributes): Use it.
768e3c60 21822
21d6a1c7
RG
218232011-01-26 Richard Guenther <rguenther@suse.de>
21824
21825 PR lto/47423
21826 * cgraphbuild.c (record_eh_tables): Record reference to personality
21827 function.
21828
48bb58b1
AO
218292011-01-26 Alexandre Oliva <aoliva@redhat.com>
21830
21831 PR debug/45454
21832 * sel-sched.c (moveup_expr): Don't let debug insns prevent
21833 non-debug insns from moving up.
21834
58c741a6
DK
218352011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21836
21837 PR target/40125
21838 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
21839 t-dlldir{,-x} fragment for build and add it to tmake_file.
21840 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
21841 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
21842 * config/i386/t-dlldir: New file.
21843 (SHLIB_DLLDIR): Define.
21844 * config/i386/t-dlldir-x: New file.
21845 (SHLIB_DLLDIR): Define.
21846 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
21847 (SHLIB_INSTALL): Use it.
21848
bff99262
CLT
218492011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
21850
21851 PR target/47246
21852 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
21853 lower bound of the allowed Thumb-2 coprocessor load/store
21854 index range to -256. Add explaining comment.
21855
82c03907
ILT
218562011-01-25 Ian Lance Taylor <iant@google.com>
21857
21858 * godump.c (go_define): Improve lexing of macro expansion to only
21859 accept expressions which match Go spec.
21860
47ea1edf
DK
218612011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21862
d4dba752 21863 PR c++/43601
47ea1edf
DK
21864 * tree.c (handle_dll_attribute): Handle it.
21865 * doc/extend.texi (@item dllexport): Mention it.
21866 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
21867
744f0946
ILT
218682011-01-25 Ian Lance Taylor <iant@google.com>
21869
21870 PR tree-optimization/26854
21871 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
21872 (decl_jump_unsafe): Move higher in file, with no other change.
21873 (bind): Set has_jump_unsafe_decl if appropriate.
21874 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
21875 (check_earlier_gotos): Likewise.
21876 (c_check_switch_jump_warnings): Likewise.
21877
5734f2b3
JW
218782011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
21879
21880 * doc/invoke.texi (Warning Options): Add missing hyphen.
21881 (-fprofile-dir): Minor grammatical fixes.
21882 (-fbranch-probabilities): Likewise.
21883
9bdbdcef
AO
218842011-01-25 Alexandre Oliva <aoliva@redhat.com>
21885
21886 PR debug/45136
21887 PR debug/45130
21888 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21889 debug insns.
21890 (no_real_insns_p, schedule_block, set_priorities): Drop special
21891 treatment of boundary debug insns.
38be4072 21892 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
21893 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21894 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21895 (BOUNDARY_DEBUG_INSN_P): Likewise.
21896 (SCHEDULE_DEBUG_INSN_P): Likewise.
21897 * sched-rgn.c (init_ready_list): Drop special treatment of
21898 boundary debug insns.
21899 * final.c (rest_of_clean-state): Clear notes' BB.
21900
b305e3da
SP
219012011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21902
21903 * Makefile.in (LAMBDA_H): Removed.
21904 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
21905 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
21906 lambda-trans.o, and tree-loop-linear.o.
21907 (lto-symtab.o): Remove dependence on LAMBDA_H.
21908 (tree-loop-linear.o): Remove rule.
21909 (lambda-mat.o): Same.
21910 (lambda-trans.o): Same.
21911 (lambda-code.o): Same.
21912 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
21913 (tree-vect-slp.o): Same.
21914 * hwint.h (gcd): Moved here.
21915 (least_common_multiple): Same.
21916 * lambda-code.c: Removed.
21917 * lambda-mat.c: Removed.
21918 * lambda-trans.c: Removed.
21919 * lambda.h: Removed.
21920 * tree-loop-linear.c: Removed.
21921 * lto-symtab.c: Do not include lambda.h.
21922 * omega.c (gcd): Removed.
21923 * passes.c (init_optimization_passes): Remove pass_linear_transform.
21924 * tree-data-ref.c (print_lambda_vector): Moved here.
21925 (lambda_vector_copy): Same.
21926 (lambda_matrix_copy): Same.
21927 (lambda_matrix_id): Same.
21928 (lambda_vector_first_nz): Same.
21929 (lambda_matrix_row_add): Same.
21930 (lambda_matrix_row_exchange): Same.
21931 (lambda_vector_mult_const): Same.
21932 (lambda_vector_negate): Same.
21933 (lambda_matrix_row_negate): Same.
21934 (lambda_vector_equal): Same.
21935 (lambda_matrix_right_hermite): Same.
21936 * tree-data-ref.h: Do not include lambda.h.
21937 (lambda_vector): Moved here.
21938 (lambda_matrix): Same.
21939 (dependence_level): Same.
21940 (lambda_transform_legal_p): Removed declaration.
21941 (lambda_collect_parameters): Same.
21942 (lambda_compute_access_matrices): Same.
21943 (lambda_vector_gcd): Same.
21944 (lambda_vector_new): Same.
21945 (lambda_vector_clear): Same.
21946 (lambda_vector_lexico_pos): Same.
21947 (lambda_vector_zerop): Same.
21948 (lambda_matrix_new): Same.
21949 * tree-flow.h (least_common_multiple): Removed declaration.
21950 * tree-parloops.c (lambda_trans_matrix): Moved here.
21951 (LTM_MATRIX): Same.
21952 (LTM_ROWSIZE): Same.
21953 (LTM_COLSIZE): Same.
21954 (LTM_DENOMINATOR): Same.
21955 (lambda_trans_matrix_new): Same.
21956 (lambda_matrix_vector_mult): Same.
21957 (lambda_transform_legal_p): Same.
21958 * tree-pass.h (pass_linear_transform): Removed declaration.
21959 * tree-ssa-loop.c (tree_linear_transform): Removed.
21960 (gate_tree_linear_transform): Removed.
21961 (pass_linear_transform): Removed.
21962 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
21963 flag_loop_interchange.
21964
6bdfdb96
JJ
219652011-01-25 Jakub Jelinek <jakub@redhat.com>
21966
21967 PR tree-optimization/47265
21968 PR tree-optimization/47443
21969 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
21970 if name still has some uses.
21971
e4cba915
MJ
219722011-01-25 Martin Jambor <mjambor@suse.cz>
21973
21974 PR tree-optimization/47382
21975 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
21976 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
21977
509d65dd 219782011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
21979
21980 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
21981 sjlj_except_unwind_info.
21982
194313e2
RG
219832011-01-25 Richard Guenther <rguenther@suse.de>
21984
21985 PR tree-optimization/47426
21986 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
21987 visible functions results escape.
21988
147a0bcf
JJ
219892011-01-25 Jakub Jelinek <jakub@redhat.com>
21990
21991 PR target/45701
21992 * config/arm/arm.c (any_sibcall_uses_r3): New function.
21993 (arm_get_frame_offsets): Use it.
21994
db963b52
SP
219952011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21996 Jakub Jelinek <jakub@redhat.com>
21997
21998 PR tree-optimization/47271
21999 * tree-if-conv.c (bb_postdominates_preds): New.
22000 (if_convertible_bb_p): Call bb_postdominates_preds.
22001 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
22002 (predicate_scalar_phi): Call bb_postdominates_preds.
22003
bcddd3b9
NC
220042011-01-25 Nick Clifton <nickc@redhat.com>
22005
22006 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
22007 * config/rx/rx.c (rx_function_value): Likewise.
22008 (rx_promote_function_mode): Likewise.
22009 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
22010 in order to make it legitimate.
38be4072
UB
22011 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
22012 make sure that the first operand is the same as the result register.
bcddd3b9
NC
22013 (addsi3_unspec): Delete.
22014 (subdi3): Do not accept immediate operands.
22015 (subdi3_internal): Likewise.
22016
7e6cb022
JL
220172011-01-25 Jeff Law <law@redhat.com>
22018
22019 PR rtl-optimization/37273
22020 * ira-costs.c (scan_one_insn): Detect constants living in memory and
22021 handle them like argument loads from stack slots. Do not double
22022 count memory for memory constants and argument loads from stack slots.
22023
9ffa621e
JJ
220242011-01-25 Jakub Jelinek <jakub@redhat.com>
22025
22026 PR tree-optimization/47427
22027 PR tree-optimization/47428
22028 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
22029 coalesce if the new root var would be TREE_READONLY.
22030
5bd6e652
RG
220312011-01-25 Richard Guenther <rguenther@suse.de>
22032
22033 PR middle-end/47414
22034 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
22035 correct type for TBAA.
22036
7c48ea69
SP
220372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22038
22039 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
22040 (close_phi_written_to_memory): Call for_each_index with
22041 dr_indices_valid_in_loop.
22042
38013f25
SP
220432011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22044
22045 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
22046 when it is initialized.
22047
5c640e29
SP
220482011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22049
22050 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
22051 call to graphite_find_data_references_in_stmt.
22052 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
22053 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
22054 call to graphite_find_data_references_in_stmt.
22055 (analyze_drs_in_stmts): Same.
22056 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
22057 in which the scalar analysis of indices is performed.
22058 (create_data_ref): Same. Update call to dr_analyze_indices.
22059 (find_data_references_in_stmt): Update call to create_data_ref.
22060 (graphite_find_data_references_in_stmt): Same.
22061 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
22062 declaration.
22063 (create_data_ref): Same.
22064 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
22065 call to create_data_ref.
22066
ac53c069
SP
220672011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22068
22069 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 22070 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 22071
3d17df15
SP
220722011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22073
22074 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
22075 VAR_DECL, PARM_DECL, and RESULT_DECL.
22076
c513da01
SP
220772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22078
22079 * graphite-dependences.c (reduction_dr_1): Allow several reductions
22080 in a reduction PBB.
22081 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
22082 that have already been marked as PBB_IS_REDUCTION.
22083
3a292d59
SP
220842011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22085
22086 * graphite-scop-detection.c (same_close_phi_node): New.
22087 (remove_duplicate_close_phi): New.
22088 (make_close_phi_nodes_unique): New.
22089 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
22090
ba858447
SP
220912011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22092
22093 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
22094 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
22095 of both data references to be the same.
22096
8d865c56
SP
220972011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22098
38be4072
UB
22099 * graphite-dependences.c (build_lexicographical_constraint): Remove
22100 the gdim parameter.
22101 (build_lexicographical_constraint): Adjust call to
22102 ppl_powerset_is_empty.
8d865c56
SP
22103 (dependence_polyhedron): Same.
22104 (graphite_legal_transform_dr): Same.
22105 (graphite_carried_dependence_level_k): Same.
38be4072
UB
22106 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
22107 parameter.
8d865c56
SP
22108 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
22109
50034a36
SP
221102011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22111
22112 * graphite-sese-to-poly.c
22113 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
22114 (close_phi_written_to_memory): New.
22115 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
22116 and unshare_expr.
22117
0deada9e
SP
221182011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22119
22120 * doc/install.texi: Update the expected version number of PPL to 0.11.
22121 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
22122 #if PPL_VERSION_MINOR < 11.
22123
d7d3d6af
SP
221242011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22125
22126 * graphite-dependences.c: Include graphite-cloog-util.h.
22127 (new_poly_ddr): Inlined into dependence_polyhedron.
22128 (free_poly_ddr): Moved close by new_poly_ddr.
22129 (dependence_polyhedron_1): Renamed dependence_polyhedron.
22130 Early return NULL when ppl_powerset_is_empty returns true.
22131 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
22132 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
22133 (graphite_legal_transform_dr): Call new_poly_ddr.
22134 (graphite_carried_dependence_level_k): Same.
22135 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
22136 (dot_transformed_deps_stmt_1): Removed.
22137 (dot_deps_stmt_1): Call dot_deps_stmt_2.
22138 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
22139 (dot_deps_1): Call dot_deps_2.
22140 * Makefile.in (graphite-dependences.o): Add missing dependence on
22141 graphite-cloog-util.h.
22142
28c5db57
SP
221432011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22144
22145 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
22146 (build_lexicographical_constraint): Same.
22147 (dependence_polyhedron_1): Same.
22148 (graphite_legal_transform_dr): Same.
22149 (graphite_carried_dependence_level_k): Same.
22150 * graphite-ppl.c (ppl_powerset_is_empty): New.
22151 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
22152 * tree-data-ref.c (dump_data_reference): Print the basic block index.
22153
5168d98f
SP
221542011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22155
22156 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
22157 the "a followed by b" relation and document it.
22158
4a40293a
SP
221592011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22160
22161 * graphite-dependences.c (build_lexicographical_constraint): Stop the
22162 iteration when the bag of constraints is empty.
22163
271fb6fa
SP
221642011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22165
22166 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
22167
92d23680
SP
221682011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22169
22170 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
22171 nest and two loop depths as parameters.
22172 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
22173 lst_perfect_nestify.
22174
2f51deff
SP
221752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22176
22177 * graphite-dependences.c (print_pddr): Call
22178 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
22179
07f3593c
SP
221802011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22181
22182 * graphite-ppl.c (debug_gmp_value): New.
22183 * graphite-ppl.h (debug_gmp_value): Declared.
22184
3fae6099
TG
221852011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
22186
22187 * doc/install.texi: Document availability of cloog-0.16.
22188
1c3ba85b
SP
221892011-01-25 Vladimir Kargov <kargov@gmail.com>
22190
22191 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
22192 invalid postdominance info.
22193
e8ba94fc
JH
221942011-01-24 Jan Hubicka <jh@suse.cz>
22195
22196 PR c/21659
22197 * doc/extend.texi (weak pragma): Drop claim that it must
22198 appear before definition.
22199 * varasm.c (merge_weak, declare_weak): Only sanity check
22200 that DECL is not output at a time it is declared weak.
22201
2b6e2d13
KZ
222022011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
22203
22204 * machmode.def: Fixed comments.
1c3ba85b 22205
9841210f
KT
222062011-01-24 Kai Tietz <kai.tietz@onevision.com>
22207
22208 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
22209
222102011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
22211
22212 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 22213 WORDS_BIG_ENDIAN.
e046112d 22214
a6c5070a
L
222152011-01-24 H.J. Lu <hongjiu.lu@intel.com>
22216
22217 PR target/46519
22218 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
22219 (block_info): Add scanned and prev.
22220 (move_or_delete_vzeroupper_2): Return if the basic block
22221 has been scanned and the upper 128bit state is unchanged
22222 from the last scan.
22223 (move_or_delete_vzeroupper_1): Return true if the exit
22224 state is changed.
22225 (move_or_delete_vzeroupper): Visit basic blocks using the
22226 work-list based algorithm based on vt_find_locations in
22227 var-tracking.c.
22228
22229 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
22230
a40d79d7
NC
222312011-01-24 Nick Clifton <nickc@redhat.com>
22232
22233 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
22234 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
22235 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
22236 then define __v850e1__.
22237 * doc/invoke.texi: Document -mv850es.
22238
440eb8de
RH
222392011-01-24 Richard Henderson <rth@redhat.com>
22240
22241 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
22242 compound unordered comparisons.
22243 * config/rx/rx.c (rx_split_fp_compare): Remove.
22244 * config/rx/rx-protos.h: Update.
22245 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
22246 (cbranchsf4): Don't call rx_split_fp_compare.
22247 (*cbranchsf4): Use rx_split_cbranch.
22248 (*cmpsf): Don't accept "i" constraint.
22249 (*conditional_branch): Only valid after reload.
22250 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
22251
3ff79f99
MM
222522011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
22253
22254 PR target/47385
22255 * config/rs6000/altivec.md (vector constant splitters): Add
22256 support for creating vector single precision constants if -mvsx is
22257 used and we would create the constant using Altivec primitives.
22258
ff3d9d08
BS
222592011-01-23 Bernd Schmidt <bernds@codesourcery.com>
22260 Richard Sandiford <rdsandiford@googlemail.com>
22261
22262 PR rtl-optimization/47166
22263 * reload1.c (emit_reload_insns): Disable the spill_reg_store
22264 mechanism for PRE_MODIFY and POST_MODIFY.
22265 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
22266 reloadreg.
22267
7fcaf152
AS
222682011-01-23 Andreas Schwab <schwab@linux-m68k.org>
22269
8788adb6 22270 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 22271
d09b58c4
JH
222722011-01-22 Jan Hubicka <jh@suse.cz>
22273
22274 PR lto/47333
22275 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
22276
e8ff8c5a
JH
222772011-01-22 Jan Hubicka <jh@suse.cz>
22278
22279 PR tree-optimization/43884
22280 PR lto/44334
8788adb6 22281 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
22282 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
22283
ccaed3ba
AS
222842011-01-22 Anatoly Sokolov <aesok@post.ru>
22285
22286 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
22287 * config/s390/s390.c (s390_register_move_cost,
22288 s390_memory_move_cost): New.
22289 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
22290
0cecee06
UW
222912011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22292
22293 PR middle-end/47401
22294 * except.c (sjlj_assign_call_site_values): Move setting the
22295 crtl->uses_eh_lsda flag to ...
22296 (sjlj_mark_call_sites): ... here.
22297 (sjlj_emit_function_enter): Support NULL dispatch label.
22298 (sjlj_build_landing_pads): In a function with no landing pads
22299 that still has must-not-throw regions, generate code to register
22300 a personality function with empty LSDA.
22301
e692f276
RH
223022011-01-21 Richard Henderson <rth@redhat.com>
22303
1b7ae0b7
RH
22304 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
22305
3843787f
RH
22306 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
22307
e692f276
RH
22308 * compare-elim.c: New file.
22309 * Makefile.in (OBJS-common): Add it.
22310 (compare-elim.o): New.
22311 * common.opt (fcompare-elim): New.
22312 * opts.c (default_options_table): Add OPT_fcompare_elim.
22313 * tree-pass.h (pass_compare_elim_after_reload): New.
22314 * passes.c (init_optimization_passes): Add it.
22315 * recog.h: Protect against re-inclusion.
22316 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
22317 * doc/invoke.texi (-fcompare-elim): Document it.
22318 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
22319 * doc/tm.texi: Rebuild.
22320
9a7c2050
NC
223212011-01-22 Nick Clifton <nickc@redhat.com>
22322
22323 * config/rx/rx.md (cstoresf4): Pass comparison operator to
22324 rx_split_fp_compare.
22325
15ba5696
NC
223262011-01-22 Nick Clifton <nickc@redhat.com>
22327
22328 * config/rx/rx.md (UNSPEC_CONST): New.
22329 (deallocate_and_return): Wrap the amount popped off the stack in
22330 an UNSPEC_CONST in order to stop it being rejected by
22331 -mmax-constant-size.
22332 (pop_and_return): Add a "(return)" rtx.
22333 (call): Drop the immediate operand.
22334 (call_internal): Likewise.
22335 (call_value): Likewise.
22336 (call_value_internal): Likewise.
22337 (sibcall_internal): Likewise.
22338 (sibcall_value_internal): Likewise.
22339 (sibcall): Likewise. Generate an explicit call using
22340 sibcall_internal.
22341 (sibcall_value): Likewise.
22342 (mov<>): FAIL if a constant operand is not legitimate.
22343 (addsi3_unpsec): New pattern.
9a7c2050 22344
38be4072 22345 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
22346 (ok_for_max_constant): New function.
22347 (gen_safe_add): New function.
22348 (rx_expand_prologue): Use gen_safe_add.
22349 (rx_expand_epilogue): Likewise.
22350 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
22351 UNSPEC CONSTs.
22352
caaf13d3
JL
223532011-01-21 Jeff Law <law@redhat.com>
22354
22355 PR tree-optimization/47053
22356 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
22357 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
22358 statements are deleted.
22359 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
22360 is nonempty, then purge dead edges and cleanup the CFG.
22361
12c30f2f
AO
223622011-01-21 Alexandre Oliva <aoliva@redhat.com>
22363
22364 PR debug/47402
22365 Temporarily revert:
22366 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
22367 PR debug/47106
22368 * tree-dfa.c (create_var_ann): Mark variable as used.
22369
7360d2ac
JJ
223702011-01-21 Jakub Jelinek <jakub@redhat.com>
22371
aaa52a96
JJ
22372 PR middle-end/45566
22373 * except.c (convert_to_eh_region_ranges): Emit queued no-region
22374 notes from other section in hot/cold partitioning even if
22375 last_action is -3. Increment call_site_base.
22376
7360d2ac
JJ
22377 PR rtl-optimization/47366
22378 * fwprop.c (forward_propagate_into): Return bool. If
22379 any changes are made, -fnon-call-exceptions is used and
22380 REG_EH_REGION note is present, call purge_dead_edges
22381 and return true if it purged anything.
22382 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
22383 any EH edges were purged.
22384
e90b336f
JL
223852011-01-21 Jeff Law <law@redhat.com>
22386
22387 PR rtl-optimization/41619
22388 * caller-save.c (setup_save_areas): Break out code to determine
22389 which hard regs are live across calls by examining the reload chains
22390 so that it is always used.
22391 Eliminate code which checked REG_N_CALLS_CROSSED.
22392
3ffe07e1
JJ
223932011-01-21 Jakub Jelinek <jakub@redhat.com>
22394
22395 PR tree-optimization/47355
22396 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
22397 NOP has non-debug uses beyond PHIs in new_bb.
22398
1c7d0b34
AO
223992011-01-21 Alexandre Oliva <aoliva@redhat.com>
22400
22401 PR debug/47106
22402 * cfgexpand.c (account_used_vars_for_block): Only account vars
22403 that are annotated as used.
22404 (estimated_stack_frame_size): Don't set TREE_USED.
22405 * tree-dfa.c (create_var_ann): Mark variable as used.
22406
f99cc488
RG
224072011-01-21 Richard Guenther <rguenther@suse.de>
22408
22409 PR middle-end/47395
22410 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
22411
3bc27de7
RG
224122011-01-21 Richard Guenther <rguenther@suse.de>
22413
22414 PR tree-optimization/47365
22415 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
22416 (vn_reference_lookup_pieces): Adjust.
22417 (vn_reference_lookup): Likewise.
22418 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
22419 (vn_reference_lookup_3): Only look through kills if in
22420 VN_WALKREWRITE mode.
22421 (vn_reference_lookup_pieces): Adjust.
22422 (vn_reference_lookup): Likewise.
22423 (visit_reference_op_load): Likewise.
22424 (visit_reference_op_store): Likewise.
22425 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
22426 (compute_avail): Likewise.
22427 (eliminate): Likewise.
22428
d8debb1d
JJ
224292011-01-21 Jakub Jelinek <jakub@redhat.com>
22430
22431 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
22432 DECL_IGNORED_P non-reg vars if they are used.
22433
3a2df831
JJ
22434 PR tree-optimization/47391
22435 * varpool.c (const_value_known_p): Return false if
22436 decl is volatile.
22437
1dd584a2
KT
224382011-01-21 Kai Tietz <kai.tietz@onevision.com>
22439
22440 PR bootstrap/47215
22441 * config/i386/i386.c (ix86_local_alignment): Handle
22442 case for va_list_type_node is nil.
22443 (ix86_canonical_va_list_type): Likewise.
22444
7f9f095e
AM
224452011-01-21 Alan Modra <amodra@gmail.com>
22446
22447 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
22448 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
22449
837b01f6
RR
224502011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22451
22452 * config/arm/arm.md (define_attr type): Rename f_load
22453 and f_store to f_fpa_load and f_fpa_store. Update.
22454 (write_conflict): Deal with rename fallout.
22455 (*push_fp_multi): Likewise.
22456 * config/arm/fpa.md (f_load): Use f_fpa_load.
22457 (f_store): Use f_fpa_store.
22458 (*movsf_fpa): Likewise.
22459 (*movdf_fpa): Likewise.
22460 (*movxf_fpa): Likewise.
22461 (*thumb2_movsf_fpa): Likewise.
22462 (*thumb2_movdf_fpa): Likewise.
22463 (*thumb2_movxf_fpa): Likewise.
22464 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
22465 f_loadd and f_stored.
22466 (*thumb2_movdi_vfp): Likewise.
22467 (*thumb2_movsf_vfp): Fix attribute to f_loads.
22468 (*thumb2_movsi_vfp): Likewise.
22469 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
22470 Use f_loads instead of f_load.
22471 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
22472
a1a79768
AS
224732011-01-20 Anatoly Sokolov <aesok@post.ru>
22474
22475 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22476 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
22477 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22478 (xtensa_mode_dependent_address_p): New function.
22479 (constantpool_address_p): Make static. Change return type to bool.
22480 Change argument type to const_rtx. Use CONST_INT_P predicate.
22481
427f6cec
AO
224822011-01-20 Alexandre Oliva <aoliva@redhat.com>
22483
22484 PR debug/46583
22485 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
22486
583ac69c
JJ
224872011-01-20 Jakub Jelinek <jakub@redhat.com>
22488
22489 PR debug/47283
22490 * cfgexpand.c (expand_debug_expr): Instead of generating
22491 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
22492 etc. handling.
22493
93e452ed
RG
224942011-01-20 Richard Guenther <rguenther@suse.de>
22495
22496 PR middle-end/47370
22497 * tree-inline.c (remap_gimple_op_r): Recurse manually for
22498 the pointer operand of MEM_REFs.
22499
28fc44f3
JJ
225002011-01-20 Jakub Jelinek <jakub@redhat.com>
22501
22502 PR tree-optimization/46130
22503 * ipa-split.c (consider_split): If return_bb contains non-virtual
22504 PHIs other than for retval or if split_function would not adjust it,
22505 refuse to split.
22506
ddd268f2
RG
225072011-01-20 Richard Guenther <rguenther@suse.de>
22508
22509 PR tree-optimization/47167
22510 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
22511 Revert previous change, only avoid enumeral type changes.
22512
882020aa
MS
225132011-01-19 Mike Stump <mikestump@comcast.net>
22514
22515 * doc/tm.texi.in (BRANCH_COST): Englishify.
22516 * doc/tm.texi (BRANCH_COST): Likewise.
22517
7edb6247
DS
225182011-01-19 Dodji Seketeli <dodji@redhat.com>
22519
22520 PR c++/47291
22521 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
22522 (gen_scheduled_generic_parms_dies): New functions.
22523 (gen_struct_or_union_type_die): Schedule template parameters DIEs
22524 generation for the end of CU compilation.
22525 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 22526
23d5ed5d
AO
225272011-01-19 Alexandre Oliva <aoliva@redhat.com>
22528
22529 PR debug/46240
22530 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
22531 debug bind stmt on merge edges.
22532
37d6a488
AO
225332011-01-19 Alexandre Oliva <aoliva@redhat.com>
22534
22535 PR debug/47079
22536 PR debug/46724
22537 * function.c (instantiate_expr): Instantiate incoming rtl of
22538 implicit arguments, and recurse on VALUE_EXPRs.
22539 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
22540 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
22541
689f2c82
AO
225422011-01-19 Alexandre Oliva <aoliva@redhat.com>
22543
22544 * c-parser.c (c_parser_for_statement): Initialize
22545 collection_expression.
22546
03029de4
JM
225472011-01-19 Joseph Myers <joseph@codesourcery.com>
22548
22549 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
22550
3e03217e
JM
225512011-01-19 Joseph Myers <joseph@codesourcery.com>
22552
22553 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
22554 (LINK_SHLIB_SPEC): Don't use %(link_path).
22555 (SUBTARGET_EXTRA_SPECS): Remove link_path.
22556
5bbe9b3f
JM
225572011-01-19 Joseph Myers <joseph@codesourcery.com>
22558
22559 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
22560 (NO_SHARED_LIB_SUPPORT): Remove.
22561 (LINK_SHLIB_SPEC): Remove one conditional definition.
22562
368e0b39
JM
225632011-01-19 Joseph Myers <joseph@codesourcery.com>
22564
22565 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
22566 %{call_shared}.
22567 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
22568 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
22569 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
22570 %{call_shared} and conditionals on these options not being passed.
22571 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
22572 %{call_shared}.
22573
ed7656f6
JJ
225742011-01-19 Jakub Jelinek <jakub@redhat.com>
22575
68457901
JJ
22576 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
22577 simplify.
22578
ed7656f6
JJ
22579 * ipa-split.c: Spelling fixes.
22580
e0d1958f
RH
225812011-01-19 Richard Henderson <rth@redhat.com>
22582
22583 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
22584 (*mulsi3): Likewise.
22585
27098b6b
RH
22586 * longlong.h [__mn10300__] (count_leading_zeros): New.
22587 [__mn10300__] (umul_ppmm, smul_ppmm): New.
22588 [__mn10300__] (add_ssaaaa, subddmmss): New.
22589 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
22590 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
22591
d6be7c36
UW
225922011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22593
22594 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
22595
b1efde2a
RH
225962011-01-19 Richard Henderson <rth@redhat.com>
22597
44217823
RH
22598 * config/mn10300/mn10300.md (addsi3_flags): New.
22599 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
22600 (subsi3_flags, subc_internal, subdi3): New.
22601 (subdi3_internal, *subdi3_degenerate): New.
22602 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
22603
37a185d7
RH
22604 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
22605 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
22606 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
22607 * config/mn10300/mn10300-protos.h: Update.
22608 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
22609 (return_ret): Likewise. Rename from return_internal_regs.
22610 (return_internal): Remove.
22611
040c5757
RH
22612 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
22613 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
22614 (mn10300_legitimate_constant_p): Likewise.
22615 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
22616 (mn10300_frame_size): New.
22617 (mn10300_expand_prologue): Use it.
22618 (mn10300_expand_epilogue): Likewise.
22619 (mn10300_initial_offset): Likewise.
22620 * config/mn10300/mn10300-protos.h: Update.
22621 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
22622 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
22623 (prologue, epilogue, return_internal): Tidy output code.
22624 (mn10300_store_multiple_operation, return): Likewise.
22625 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
22626 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
22627 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
22628 (load_pic, am33_load_pic): New.
22629 (mn10300_load_pic0, mn10300_load_pic1): New.
22630
bad41521
RH
22631 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
22632 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
22633 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
22634 (cc_flags_for_mode, cc_flags_for_code): New.
22635 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
22636 overflow flag is not valid. Validate that the flags we need
22637 for the comparison are valid.
22638 (mn10300_output_cmp): Remove.
22639 (mn10300_output_add): New.
22640 (mn10300_select_cc_mode): Use cc_flags_for_code.
22641 (mn10300_split_cbranch): New.
22642 (mn10300_match_ccmode): New.
22643 (mn10300_split_and_operand_count): New.
22644 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
22645 to the function.
22646 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
22647 (addsi3): ... here. Use mn10300_output_add.
22648 (*addsi3_flags): New.
22649 (*am33_subsi3, *mn10300_subsi3): Merge...
22650 (subsi3): ... here. Use attribute isa.
22651 (*subsi3_flags): New.
22652 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
22653 when possible.
22654 (*am33_andsi3, *mn10300_andsi3): Merge...
22655 (andsi3): ... here.
22656 (*andsi3_flags): New.
22657 (andsi3 splitters): New.
22658 (*am33_iorsi3, *mn10300_iorsi3): Merge...
22659 (iorsi3): ... here.
22660 (*iorsi3_flags): New.
22661 (*am33_xorsi3, *mn10300_xorsi3): Merge...
22662 (xorsi3): ... here.
22663 (*xorsi3_flags): New.
22664 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
22665 (one_cmplsi2): ... here.
22666 (*one_cmplsi2_flags): New.
22667 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
22668 instead of "dax" in constraints. Use mn10300_split_cbranch.
22669 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
22670 use matching constraints to eliminate a self-comparison.
22671 (*integer_conditional_branch): Rename from integer_conditional_branch.
22672 Use int_mode_flags to match CC_REG.
22673 (*cbranchsi4_btst, *btstsi): New.
22674 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
22675 mn10300_split_cbranch.
22676 (*am33_cmpsf): Rename from am33_cmpsf.
22677 (*float_conditional_branch): Rename from float_conditional_branch.
22678 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
22679 (zero_extendqisi2): ... here.
22680 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
22681 (zero_extendhisi2): ... here.
22682 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
22683 (extendqisi2): ... here.
22684 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
22685 (extendhisi2): ... here.
22686 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
22687 (ashlsi3): ... here.
22688 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
22689 (lshrsi3): ... here.
22690 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
22691 (ashrsi3): ... here.
22692 (consecutive add peephole): Remove.
22693 * config/mn10300/predicates.md (label_ref_operand): New.
22694 (int_mode_flags): New.
22695 (CCZN_comparison_operator): New.
22696
9efb4993
RH
22697 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
22698 (throughput_42_latency_43): New reservation.
22699 (mulsidi3, umulsidi3): New expanders.
22700 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
22701 the MDR register to allocation; separately allocate the low and
22702 high parts of the DImode result.
22703 (umulsidi3_internal): Similarly.
22704 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
22705 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
22706 (udivsi3, umodsi3): Remove.
22707 (udivmodsi4, divmodsi4): New expanders.
22708 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
22709 (*divmodsi4): Simiarly.
22710 (ext_internal): New.
22711
c25a21f5
RH
22712 * config/mn10300/constraints.md ("z"): New constraint.
22713 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
22714 (FIXED_REGISTERS): Don't fix MDR.
22715 (CALL_USED_REGSITERS): Reformat nicely.
22716 (REG_ALLOC_ORDER): Add MDR.
22717 (enum regclass): Add MDR_REGS.
22718 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
22719 (IRA_COVER_CLASSES): Add MDR_REGS.
22720 (REGNO_REG_CLASS): Handle MDR_REG.
22721 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
22722 (mn10300_register_move_cost): Likewise.
22723 * config/mn10300/mn10300.md (MDR_REG): New.
22724 (*movsi_internal): Handle moves to/from MDR_REGS.
22725
36846b26
RH
22726 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
22727 POST_MODIFY.
22728 (mn10300_secondary_reload): Tidy combination reload classes.
22729 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
22730 addresses for AM33. Allow symbolic offsets for reg+imm.
22731 (mn10300_regno_in_class_p): New.
22732 (mn10300_legitimize_reload_address): New.
22733 * config/mn10300/mn10300.h (enum reg_class): Remove
22734 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
22735 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
22736 SP_OR_GENERAL_REGS.
22737 (REG_CLASS_NAMES): Update to match.
22738 (REG_CLASS_CONTENTS): Likewise.
22739 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
22740 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
22741 (REGNO_IN_RANGE_P): Remove.
22742 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
22743 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
22744 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
22745 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
22746 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
22747 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
22748 (REGNO_GENERAL_P): New.
22749 (HAVE_POST_MODIFY_DISP): New.
22750 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
22751 (LEGITIMIZE_RELOAD_ADDRESS): New.
22752 * config/mn10300/mn10300-protos.h: Update.
22753
8b119bb6
RH
22754 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
22755 DATA_REGS for AM33 stack-pointer destination.
22756 (mn10300_preferred_output_reload_class): Likewise.
22757 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
22758 into a form appropriate for ...
22759 (TARGET_SECONDARY_RELOAD): New.
22760 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
22761 * config/mn10300/mn10300-protos.h: Update.
22762 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
22763 reload_insi; use the "A" constraint for the scratch; handle AM33
22764 moves of sp to non-address registers.
22765
b1efde2a
RH
22766 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
22767 (*movqi_internal): ... here.
22768 (*am33_movhi, *mn10300_movhi): Merge into...
22769 (*movhi_internal): ... here.
22770 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
22771 as the source/destination of moves from/to SP.
22772 (movsf): Only allow for AM33-2.
1c3ba85b 22773 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
22774 any integer constant constraint. Only allow for AM33-2. Tidy
22775 all of the alternative outputs.
22776 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
22777 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
22778 for MN103.
22779 (udivsi3, umodsi3): New patterns for MN103 only.
22780
b899fd78
JR
227812011-01-19 Joern Rennecke <amylaar@spamcop.net>
22782
22783 * doc/tm.texi.in: Spell out that a lack of register class unions
22784 can lead to ICEs.
22785 * doc/tm.texi: Regenerate.
22786
afaaa67d
JJ
227872011-01-19 Jakub Jelinek <jakub@redhat.com>
22788
2e0642cd
JJ
22789 PR rtl-optimization/47337
22790 * dce.c (check_argument_store): New function.
22791 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
22792
afaaa67d
JJ
22793 PR tree-optimization/47290
22794 * tree-eh.c (infinite_empty_loop_p): New function.
22795 (cleanup_empty_eh): Use it.
22796
d2cd871f
SE
227972011-01-18 Steve Ellcey <sje@cup.hp.com>
22798
22799 PR target/46997
22800 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
22801 (a64_expand_widen_sum): Ditto.
22802 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
22803 (vec_extract_evenodd_help): Ditto.
22804 (vec_extract_evenv4hi): Ditto.
22805 (vec_extract_oddv4hi): Ditto.
22806 (vec_extract_evenv2si): Ditto.
22807 (vec_extract_oddv2si): Ditto.
22808 (vec_extract_evenv2sf): Ditto.
22809 (vec_extract_oddv2sf): Ditto.
22810 (vec_pack_trunc_v4hi: Ditto.
22811 (vec_pack_trunc_v2si): Ditto.
22812 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
22813 (vec_interleave_highv8qi): Ditto.
22814 (mix1_r): Ditto.
22815 (vec_extract_oddv8qi): Ditto.
22816 (vec_interleave_lowv4hi): Ditto.
22817 (vec_interleave_highv4hi): Ditto.
22818 (vec_interleave_lowv2si): Ditto.
22819 (vec_interleave_highv2si): Ditto.
22820
41a1208a
JDA
228212011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22822
22823 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
22824 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
22825 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
22826 (pa_c_mode_for_suffix): New.
22827 (TARGET_EXPAND_BUILTIN): Define.
22828 (TARGET_C_MODE_FOR_SUFFIX): Define.
22829 (pa_builtins): Define.
22830 (pa_init_builtins): Register __float128 type and init new support
22831 builtins.
22832 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
22833 * config/pa/quadlib.c (_U_Qfcopysign): New.
22834
1ecad98e
EB
228352011-01-18 Eric Botcazou <ebotcazou@adacore.com>
22836
22837 PR middle-end/46894
22838 * explow.c (allocate_dynamic_stack_space): Do not assume more than
22839 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
22840 are defined.
22841
d4f2460a
UW
228422011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22843
22844 PR tree-optimization/47179
22845 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
22846 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
22847
4994da65
RG
228482011-01-18 Richard Guenther <rguenther@suse.de>
22849
22850 PR rtl-optimization/47216
22851 * emit-rtl.c: Include tree-flow.h.
22852 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
22853 of replicating it with different semantics.
22854 * Makefile.in (emit-rtl.o): Adjust.
22855
1eb458d1
RR
228562011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22857
38be4072 22858 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 22859 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 22860
e7ef91dc
JJ
228612011-01-18 Jakub Jelinek <jakub@redhat.com>
22862
22863 PR rtl-optimization/47299
22864 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 22865 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
22866 * expmed.c (expand_widening_mult): Don't try to optimize constant
22867 multiplication if op0 has VOIDmode. Convert op1 constant to mode
22868 before using it.
22869
535b7874
RW
228702011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22871
22872 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
22873 spacing after 'e.g.', typos, comma, hyphenation.
22874
27bf36f3
RH
228752011-01-17 Richard Henderson <rth@redhat.com>
22876
8a5b5449
RH
22877 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
22878 (rx_restricted_mem_operand): New.
22879 (rx_shift_operand): Use register_operand.
22880 (rx_source_operand, rx_compare_operand): Likewise.
22881 * config/rx/rx.md (addsi3_flags): New expander.
22882 (adddi3): Rewrite as expander.
22883 (adc_internal, *adc_flags, adddi3_internal): New patterns.
22884 (subsi3_flags): New expander.
22885 (subdi3): Rewrite as expander.
22886 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
22887
784f69be
RH
22888 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
22889 (rx_init_builtins): Remove sat builtin.
22890 (rx_expand_builtin): Likewise.
22891 * config/rx/rx.md (ssaddsi3): New.
22892 (*sat): Rename from sat. Represent the CC_REG input.
22893
f033541c
RH
22894 * config/rx/predicates.md (rshift_operator): New.
22895 * config/rx/rx.c (rx_expand_insv): Remove.
22896 * config/rx/rx-protos.h: Update.
22897 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
22898 operand to the canonical position.
22899 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
22900 (*bitclr, *bitclr_in_memory): Similarly.
22901 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
22902 (insv): Retain the zero_extract in the expansion.
22903
34fee389
RH
22904 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
22905 (bswaphi2, bitinvert, revw): Likewise.
22906
265c835f
RH
22907 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
22908 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
22909 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
22910 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
22911 (bitset, bitset_in_memory): Likewise.
22912 (bitinvert, bitinvert_in_memory): Likewise.
22913 (bitclr, bitclr_in_memory): Likewise.
22914 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
22915 (rx_strend, rx_cmpstrn): Likewise.
22916 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
22917 (bitop peep2 patterns): Remove.
22918
b4d83be3
RH
22919 * config/rx/rx.c (rx_match_ccmode): New.
22920 * config/rx/rx-protos.h: Update.
22921 * config/rx/rx.md (abssi2): Clobber, don't set flags.
22922 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
22923 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
22924 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
22925 (fix_truncsfsi2, floatsisf2): Likewise.
22926 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
22927 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
22928 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
22929 (*subsi3_flags, *xorsi3_flags): New.
22930
d0acb939
RH
22931 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
22932
c06fc3d9
RH
22933 * config/rx/rx.c (rx_print_operand): Remove workaround for
22934 unsplit comparison operations.
22935
2882702b
RH
22936 * config/rx/rx.md (movsicc): Split after reload.
22937 (*movsicc): Merge *movsieq and *movsine via match_operator.
22938 (*stcc): New pattern.
22939
6f7310f2
RH
22940 * config/rx/rx.c (rx_float_compare_mode): Remove.
22941 * config/rx/rx.h (rx_float_compare_mode): Remove.
22942 * config/rx/rx.md (cstoresi4): Split after reload.
22943 (*sccc): New pattern.
22944
e963cb1a
RH
22945 * config/rx/predicates.md (label_ref_operand): New.
22946 (rx_z_comparison_operator): New.
22947 (rx_zs_comparison_operator): New.
22948 (rx_fp_comparison_operator): New.
22949 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
22950 Validate that the flags are set properly for the comparison.
22951 (rx_gen_cond_branch_template): Remove.
22952 (rx_cc_modes_compatible): Remove.
22953 (mode_from_flags): New.
22954 (flags_from_code): Rename from flags_needed_for_conditional.
22955 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
22956 (rx_select_cc_mode): Likewise.
22957 (rx_split_fp_compare): New.
22958 (rx_split_cbranch): New.
22959 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
22960 (*cbranchsi4): Use match_operator and rx_split_cbranch.
22961 (*cbranchsf4): Similarly.
22962 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
22963 match_operator and rx_split_cbranch.
22964 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
22965 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
22966 (*cmpsi): Rename from cmpsi.
22967 (*tstsi): Rename from tstsi.
22968 (*cmpsf): Rename from cmpsf; use CC_Fmode.
22969 (*conditional_branch): Rename from conditional_branch.
22970 (*reveresed_conditional_branch): Remove.
22971 (b<code>): Remove expander.
22972 * config/rx/rx-protos.h: Update.
22973
af530bb4
RH
22974 * config/rx/rx.c (rx_compare_redundant): Remove.
22975 * config/rx/rx.md (cmpsi): Don't use it.
22976 * config/rx/rx-protos.h: Update.
22977
27bf36f3
RH
22978 * config/rx/rx-modes.def (CC_F): New mode.
22979 * config/rx/rx.c (rx_select_cc_mode): New.
22980 * config/rx/rx.h (SELECT_CC_MODE): Use it.
22981 * config/rx/rx-protos.h: Update.
22982
d7fde127
RH
229832011-01-17 Richard Henderson <rth@redhat.com>
22984
22985 * except.c (dump_eh_tree): Fix stray ; after for statement.
22986
6ff38230
RG
229872011-01-17 Richard Guenther <rguenther@suse.de>
22988
22989 PR tree-optimization/47313
22990 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
22991 handling before copying the body. Properly deal with
22992 by-reference result in SSA form.
22993
114ce554
ILT
229942011-01-17 Ian Lance Taylor <iant@google.com>
22995
bf5cd92b 22996 PR target/47219
114ce554
ILT
22997 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
22998 (struct_value_alias_set): Don't define.
22999 (sparc_option_override): Don't set sparc_sr_alias_set and
23000 struct_value_alias_set.
23001 (save_or_restore_regs): Use gen_frame_mem rather than calling
23002 set_mem_alias_set.
23003 (sparc_struct_value_rtx): Likewise.
23004
98c6d93c
L
230052011-01-17 H.J. Lu <hongjiu.lu@intel.com>
23006
23007 PR target/47318
7a81008b 23008 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
23009 (_mm_maskstore_pd): Likewise.
23010 (_mm_maskload_ps): Likewise.
23011 (_mm_maskstore_ps): Likewise.
23012 (_mm256_maskload_pd): Change mask to __m256i.
23013 (_mm256_maskstore_pd): Likewise.
23014 (_mm256_maskload_ps): Likewise.
23015 (_mm256_maskstore_ps): Likewise.
23016
23017 * config/i386/i386-builtin-types.def: Updated.
23018 (ix86_expand_special_args_builtin): Likewise.
23019
23020 * config/i386/i386.c (bdesc_special_args): Update
23021 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
23022 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
23023 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
23024 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
23025
23026 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
23027 Use <avxpermvecmode> on mask register.
23028 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
23029
b9361af2 230302011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
23031 Michael Haubenwallner <michael.haubenwallner@salomon.at>
23032 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
23033
23034 PR target/46655
23035 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
23036 if <= USHRT_MAX in 32-bit mode.
23037
b7ae9eb5
RW
230382011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23039
23040 * doc/install.texi (Configuration, Specific): Wrap long
23041 lines in examples. Allow line wrapping in long options
23042 and URLs where beneficial for PDF output.
23043
4377fad9
RS
230442011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
23045
23046 * config/mips/mips.c (mips_classify_symbol): Don't return
23047 SYMBOL_PC_RELATIVE for nonlocal labels.
23048
55959ffa 230492011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 23050
55959ffa
EB
23051 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
23052
230532011-01-15 Jan Hubicka <jh@suse.cz>
23054
23055 PR tree-optimization/47276
be46831f
JH
23056 * ipa.c (function_and_variable_visibility): Do not try to mark alias
23057 declarations as needed.
23058
05842ff5
MJ
230592011-01-15 Martin Jambor <mjambor@suse.cz>
23060
23061 * common.opt (fdevirtualize): New flag.
23062 * doc/invoke.texi (Option Summary): Document it.
23063 * opts.c (default_options_table): Add devirtualize flag.
23064 * ipa-prop.c (detect_type_change): Return immediately if
23065 devirtualize flag is not set.
23066 (detect_type_change_ssa): Likewise.
23067 (compute_known_type_jump_func): Likewise.
23068 (ipa_analyze_virtual_call_uses): Likewise.
23069
f65cf2b7
MJ
230702011-01-14 Martin Jambor <mjambor@suse.cz>
23071
23072 PR tree-optimization/45934
23073 PR tree-optimization/46302
23074 * ipa-prop.c (type_change_info): New type.
23075 (stmt_may_be_vtbl_ptr_store): New function.
23076 (check_stmt_for_type_change): Likewise.
23077 (detect_type_change): Likewise.
23078 (detect_type_change_ssa): Likewise.
23079 (compute_complex_assign_jump_func): Check for dynamic type change.
23080 (compute_complex_ancestor_jump_func): Likewise.
23081 (compute_known_type_jump_func): Likewise.
23082 (compute_scalar_jump_functions): Likewise.
23083 (ipa_analyze_virtual_call_uses): Likewise.
23084 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
23085
eb5bb0fd
JM
230862011-01-14 Joseph Myers <joseph@codesourcery.com>
23087
23088 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
23089 * config/i386/i386.opt (msse5): New Alias.
23090
f2060fbe
JM
230912011-01-14 Joseph Myers <joseph@codesourcery.com>
23092
23093 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
23094 * config/sparc/linux64.h (CC1_SPEC): Likewise.
23095 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23096 * config/sparc/sparc.h (CC1_SPEC): Likewise.
23097
3a7b4385
JM
230982011-01-14 Joseph Myers <joseph@codesourcery.com>
23099
23100 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
23101 -mcpu options.
23102 * config/sparc/linux64.h (CC1_SPEC): Likewise.
23103 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23104 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
23105 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
23106 Likewise.
23107 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
23108
a7b778f8
JM
231092011-01-14 Joseph Myers <joseph@codesourcery.com>
23110
38be4072 23111 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 23112
a7edae0a
MS
231132011-01-14 Mike Stump <mikestump@comcast.net>
23114
23115 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
23116 * config/fr30/fr30.md: Likweise
23117 (movsi_push): Likewise.
23118 (movsi_pop): Likewise.
23119 (enter_func): Likewise.
23120 * config/moxie/moxie.md (movsi_push): Likewise.
23121 (movsi_pop): Likewise.
23122
cbabf03f
JM
231232011-01-14 Joseph Myers <joseph@codesourcery.com>
23124
23125 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
23126 %{no_archive} %{exact_version}.
23127 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
23128 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
23129 %{no_archive} %{exact_version}.
23130 * config/mips/openbsd.h (LINK_SPEC): Likewise.
23131 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
23132 * config/mips/vxworks.h: Likewise.
23133
438da41a
JM
231342011-01-14 Joseph Myers <joseph@codesourcery.com>
23135
38be4072 23136 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 23137
da290a42
JM
231382011-01-14 Joseph Myers <joseph@codesourcery.com>
23139
23140 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
23141 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
23142
8989d00e
JM
231432011-01-14 Joseph Myers <joseph@codesourcery.com>
23144
23145 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
23146 -nodefaultlib.
23147
a3010a69
JM
231482011-01-14 Joseph Myers <joseph@codesourcery.com>
23149
23150 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
23151 for mcpu not cpu.
23152 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
23153 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
23154 not cpu.
23155 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
23156 Don't handle -shlib.
23157
e7f2f537
JM
231582011-01-14 Joseph Myers <joseph@codesourcery.com>
23159
23160 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
23161 (CC1_SPEC): Don't handle -profile.
23162
34830bfd
JM
231632011-01-14 Joseph Myers <joseph@codesourcery.com>
23164
23165 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
23166 * config/mips/mips.h (CC1_SPEC): Likewise.
23167
b2d36e74
JM
231682011-01-14 Joseph Myers <joseph@codesourcery.com>
23169
23170 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
23171 * config/mips/mips.h (CC1_SPEC): Likewise.
23172
dabadc52
JM
231732011-01-14 Joseph Myers <joseph@codesourcery.com>
23174
23175 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
23176 * config/m32r/linux.h (LINK_SPEC): Likewise.
23177 * config/mips/linux.h (LINK_SPEC): Likewise.
23178 * config/mips/linux64.h (LINK_SPEC): Likewise.
23179 * config/sparc/linux.h (LINK_SPEC): Likewise.
23180 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
23181 LINK_SPEC): Likewise.
23182 * config/xtensa/linux.h (LINK_SPEC): Likewise.
23183
43ee6785
JM
231842011-01-14 Joseph Myers <joseph@codesourcery.com>
23185
23186 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
23187 %{version:-v}.
23188 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
23189
45e79dfd
JM
231902011-01-14 Joseph Myers <joseph@codesourcery.com>
23191
23192 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
23193 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
23194
37e9e71d
JM
231952011-01-14 Joseph Myers <joseph@codesourcery.com>
23196
23197 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
23198
bb127cd8
RO
231992011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23200
23201 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
23202 supports -Bstatic/-Bdynamic.
23203 * configure: Regenerate.
23204
89a012ea 232052011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 23206 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
23207
23208 PR target/46037
23209 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
23210 when checking debug_info_level. Test write_symbols instead of
23211 debug_hooks->var_location when setting flag_var_tracking_uninit.
23212
7352c013
RG
232132011-01-14 Richard Guenther <rguenther@suse.de>
23214
23215 PR tree-optimization/47179
23216 * target.def (ref_may_alias_errno): New target hook.
23217 * targhooks.h (default_ref_may_alias_errno): Declare.
23218 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
23219 (default_ref_may_alias_errno): New function.
23220 * target.h (struct ao_ref_s): Declare.
23221 * tree-ssa-alias.c: Include target.h.
23222 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
23223 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
23224 (targhooks.o): Likewise.
23225 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
23226 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
23227
9a6c9288
RG
232282011-01-14 Richard Guenther <rguenther@suse.de>
23229
23230 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
23231
0fdb0d27
RG
232322011-01-14 Richard Guenther <rguenther@suse.de>
23233
23234 PR tree-optimization/47280
23235 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
23236 return CFG changes.
23237 (tree_ssa_forward_propagate_single_use_vars): Deal with
23238 CFG changes from associate_plusminus.
23239
8f66db3b
RG
232402011-01-14 Richard Guenther <rguenther@suse.de>
23241
23242 PR middle-end/47281
23243 Revert
23244 2011-01-11 Richard Guenther <rguenther@suse.de>
23245
280d9630
EB
23246 PR tree-optimization/46076
23247 * tree-ssa.c (useless_type_conversion_p): Conversions from
23248 unprototyped to empty argument list function types are useless.
8f66db3b 23249
6c0c92e6
RG
232502011-01-14 Richard Guenther <rguenther@suse.de>
23251
23252 PR tree-optimization/47286
280d9630 23253 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 23254
db09f943
MJ
232552011-01-14 Martin Jambor <mjambor@suse.cz>
23256
23257 PR middle-end/46823
23258 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
23259
dde8a3a4
AS
232602011-01-13 Anatoly Sokolov <aesok@post.ru>
23261
23262 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
23263 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23264 * config/xtensa/xtensa.c (xtensa_libcall_value,
23265 xtensa_function_value_regno_p): New functions.
23266 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23267
a2b63a20
KT
232682011-01-13 Kai Tietz <kai.tietz@onevision.com>
23269
23270 PR c++/47213
23271 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
23272 PE specific hook.
23273 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
23274 New function prototype.
23275 * config/i386/winnt.c (i386_pe_assemble_visibility):
23276 Warn only if attribute was specified by user.
23277
b41f0b34
MM
232782011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
23279
23280 PR target/47251
23281 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
23282 floating point.
23283 (floatunsdidf2_fcfidu): Ditto.
23284
3f3c098d
AK
232852011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23286
23287 * config/s390/s390.c (print_operand_address): Replace 'error' with
23288 'output_operand_lossage'.
23289 (print_operand): Likewise.
23290
29fa95ed
JL
232912011-01-13 Jeff Law <law@redhat.com>
23292
280d9630 23293 PR rtl-optimization/39077
29fa95ed
JL
23294 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
23295 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
23296 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
23297 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
23298 * gcse.c (prune_insertions_deletions): New function.
23299 (compute_pre_data): Use it.
23300
71d12276
DS
233012011-01-13 Dodji Seketeli <dodji@redhat.com>
23302
23303 PR debug/PR46973
23304 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
23305 static function.
61052244 23306 (prune_unused_types_mark): Use it.
71d12276 23307
9b0f04e7
AB
233082011-01-13 Andrey Belevantsev <abel@ispras.ru>
23309
23310 PR rtl-optimization/45352
1c3ba85b 23311 * sel-sched.c: Update copyright years.
9b0f04e7 23312 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 23313 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 23314
d6a3e264
RH
233152011-01-12 Richard Henderson <rth@redhat.com>
23316
a49b692a
RH
23317 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
23318 (TARGET_MD_ASM_CLOBBERS): New.
23319
126b1483
RH
23320 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
23321 (TARGET_DELEGITIMIZE_ADDRESS): New.
23322
f3d9d2e0
RH
23323 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
23324 (clzsi2, *bsch): New patterns.
23325
d84760c9
RH
23326 * config/mn10300/mn10300.md (INT): New mode iterator.
23327 (*mov<INT>_clr): New pattern, and peep2 to generate it.
23328
ec815d65
RH
23329 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
23330 flag_split_wide_types.
23331
d6a3e264
RH
23332 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
23333 (mn10300_trampoline_init): Rewrite without a template, an immediate
23334 load and a direct branch.
23335 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
23336
0f8ab434
AS
233372011-01-12 Anatoly Sokolov <aesok@post.ru>
23338
23339 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23340 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
23341 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
23342 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23343
d8a24b65
KT
233442011-01-12 Kai Tietz <kai.tietz@onevision.com>
23345
23346 PR debug/47209
23347 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
23348 of type.
23349
56e22cab
JH
233502011-01-12 Jan Hubicka <jh@suse.cz>
23351
23352 PR driver/47244
23353 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
23354 (PLUGIN_COND_CLOSE): New macro.
23355 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
23356
4b18b3c2
RG
233572011-01-12 Richard Guenther <rguenther@suse.de>
23358
23359 PR lto/47259
23360 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
23361 register variables in a MEM_REF.
23362
8e38461c
JM
233632011-01-12 Joseph Myers <joseph@codesourcery.com>
23364
23365 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
23366 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
23367 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
23368 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
23369 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
23370 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
23371 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
23372 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
23373 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
23374 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
23375 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
23376 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
23377 * config/gnu-user.h: New. Copied from linux.h.
23378 (LINUX_TARGET_STARTFILE_SPEC): Rename to
23379 GNU_USER_TARGET_STARTFILE_SPEC.
23380 (LINUX_TARGET_ENDFILE_SPEC): Rename to
23381 GNU_USER_TARGET_ENDFILE_SPEC.
23382 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
23383 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
23384 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
23385 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
23386 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
23387 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
23388 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
23389 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
23390 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
23391 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
23392 * config/arm/linux-eabi.h (CC1_SPEC): Use
23393 GNU_USER_TARGET_CC1_SPEC.
23394 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
23395 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
23396 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
23397 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
23398 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
23399 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
23400 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
23401 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
23402
a570fc16
RG
234032011-01-12 Richard Guenther <rguenther@suse.de>
23404
23405 PR other/46946
23406 * doc/invoke.texi (ffast-math): Document it is turned on
23407 with -Ofast.
23408
b0223c3e
JH
234092011-01-12 Jan Hubicka <jh@suse.cz>
23410
23411 PR tree-optimization/47233
ca1e00b3
EB
23412 * opts.c (common_handle_option): Disable ipa-reference with profile
23413 feedback.
b0223c3e 23414
1c3ba85b 234152011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
23416
23417 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
23418 error message.
23419
d853ee42
NP
234202011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
23421
23422 * c-parser.c (c_lex_one_token): Updated and reindented some
23423 comments. No changes in code.
23424
4053a5a0
ILT
234252011-01-11 Ian Lance Taylor <iant@google.com>
23426
23427 * godump.c (go_output_var): Don't output the variable if there is
23428 already a type with the same name.
23429
fa3e04d2
ILT
234302011-01-11 Ian Lance Taylor <iant@google.com>
23431
23432 * godump.c (go_format_type): Don't generate float80.
23433
885fe07c
RH
234342011-01-11 Richard Henderson <rth@redhat.com>
23435
72d6e3c5
RH
23436 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
23437 declaration. Rewrite for both speed and size.
23438 (mn10300_address_cost_1): Remove.
23439 (mn10300_register_move_cost): New.
23440 (mn10300_memory_move_cost): New.
23441 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
23442 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
23443 extensions, shifts, BSWAP, CLZ.
23444 (mn10300_wide_const_load_uses_clr): Remove.
23445 (TARGET_REGISTER_MOVE_COST): New.
23446 (TARGET_MEMORY_MOVE_COST): New.
23447 * config/mn10300/mn10300-protos.h: Update.
23448 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
23449
df37c023
RH
23450 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
23451 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
23452 * config/mn10300/mn10300-protos.h: Update.
23453 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
23454 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
23455 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
23456 (*test_int_bitfield, *test_byte_bitfield): Remove.
23457 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 23458 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 23459
85a337b5
RH
23460 * config/mn10300/constraints.md ("c"): Rename from "A".
23461 ("A", "D"): New constraint letters.
23462 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
23463 (fmssf4, fnmasf4, fnmssf4): Likewise.
23464
a5c727e3
RH
23465 * config/mn10300/mn10300.md (isa): New attribute.
23466 (enabled): New attribute.
23467
0d9e23f4
RH
23468 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
23469 (abssf2, negsf2): Define only for hardware fp.
23470 (sqrtsf2): Reformat.
23471 (addsf3, subsf3, mulsf3): Merge expander and insn.
23472
c157b3f0
RH
23473 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
23474 (DEBUGGER_AUTO_OFFSET): Remove.
23475 (DEBUGGER_ARG_OFFSET): Remove.
23476
cc909bba
RH
23477 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
23478 Emit register stores with the same offsets as the hardware.
23479 (mn10300_store_multiple_operation): Don't check that the register
23480 save offsets are monotonic.
23481 * config/mn10300/mn10300-protos.h: Update.
23482
e3b5c2f3
RH
23483 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
23484
885fe07c
RH
23485 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
23486 in terms of the value on the stack, not the MDR register.
23487
6e701822
JH
234882011-01-11 Jan Hubicka <jh@suse.cz>
23489
23490 PR lto/45721
23491 PR lto/45375
23492 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
23493 (symbol_alias_set_destroy, symbol_alias_set_contains,
23494 propagate_aliases_backward): Declare.
23495 * lto-streamer-out.c (struct sets): New sturcture.
23496 (trivally_defined_alias): New function.
23497 (output_alias_pair_p): Rewrite.
23498 (output_unreferenced_globals): Fix output of alias pairs.
23499 (produce_symtab): Likewise.
23500 * ipa.c (function_and_variable_visibility): Set weak alias destination
23501 as needed in lto.
23502 * varasm.c (symbol_alias_set_t): Remove.
23503 (symbol_alias_set_destroy): Export.
23504 (propagate_aliases_forward, propagate_aliases_backward): New functions
23505 based on ...
23506 (compute_visible_aliases): ... this one; remove.
23507 (trivially_visible_alias): New
23508 (trivially_defined_alias): New.
23509 (remove_unreachable_alias_pairs): Rewrite.
23510 (finish_aliases_1): Reorganize code checking if alias is defined.
23511 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
23512 in LTO mode.
23513
1b248907
RG
235142011-01-11 Richard Guenther <rguenther@suse.de>
23515
23516 PR tree-optimization/46076
23517 * tree-ssa.c (useless_type_conversion_p): Conversions from
23518 unprototyped to empty argument list function types are useless.
23519
b1923f0a
RG
235202011-01-11 Richard Guenther <rguenther@suse.de>
23521
23522 PR middle-end/45235
23523 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
23524 volatile MEMs as MEM_READONLY_P.
23525
e98965af
RG
235262011-01-11 Richard Guenther <rguenther@suse.de>
23527
23528 PR tree-optimization/47239
23529 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
23530
9f9ca914
JL
235312011-01-11 Jeff Law <law@redhat.com>
23532
1ee3ea05 23533 PR tree-optimization/47086
9f9ca914
JL
23534 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
23535 IVs from statements that might throw.
23536
345fdcb7
JH
235372011-01-10 Jan Hubicka <jh@suse.cz>
23538
23539 PR lto/45375
23540 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
23541
c459c97b
JH
235422011-01-10 Jan Hubicka <jh@suse.cz>
23543
23544 PR lto/45375
23545 * profile.c (read_profile_edge_counts): Ignore profile inconistency
23546 when correcting profile.
23547
06c9eb51
JH
235482011-01-10 Jan Hubicka <jh@suse.cz>
23549
23550 PR lto/46083
23551 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
23552 DECL_FINI_PRIORITY.
23553 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
23554 Restore DECL_FINI_PRIORITY.
23555
ae9fd815
RW
235562011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23557
23558 * doc/gimple.texi: Fix quoting of multi-word return values in
23559 @deftypefn statements. Ensure presence of return value. Wrap
23560 overlong @deftypefn lines.
23561 (is_gimple_operand, is_gimple_min_invariant_address): Remove
23562 descriptions of removed functions.
23563 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
23564 of multi-word return value in @deftypefn statement.
23565
0ecb4a7c
RW
235662011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23567
23568 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
23569 (Conditional Expressions, Logical Operators)
23570 (Statement and operand traversals): Do not indent smallexample
23571 code. Fix duplicate function argument in example.
23572
2e5e346d
JL
235732011-01-10 Jeff Law <law@redhat.com>
23574
1ee3ea05 23575 PR tree-optimization/47141
2e5e346d
JL
23576 * ipa-split.c (split_function): Handle case where we are
23577 returning a value and the return block has a virtual operand phi.
23578
cf9712cc
JH
235792011-01-10 Jan Hubicka <jh@suse.cz>
23580
1c3ba85b 23581 PR tree-optimization/47234
cf9712cc
JH
23582 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
23583 (pass_feedback_split_functions): Declare.
23584 * passes.c (init_optimization_passes): Add ipa-split as subpass of
23585 tree-profile.
23586 * ipa-split.c (gate_split_functions): Update comments; disable
23587 split-functions for profile_arc_flag and branch_probabilities.
23588 (gate_feedback_split_functions): New function.
23589 (execute_feedback_split_functions): New function.
23590 (pass_feedback_split_functions): New global var.
23591
94cd932c
L
235922011-01-10 H.J. Lu <hongjiu.lu@intel.com>
23593
23594 PR lto/46760
23595 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
23596 calling gimple_call_set_cannot_inline.
23597
fbbfcaf1
IS
235982011-01-10 Iain Sandoe <iains@gcc.gnu.org>
23599
23600 * config/darwin-sections.def: Remove unused section.
23601
d06865bf
DK
236022011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
23603
23604 PR c++/47218
23605 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
23606
96bbfbac
NP
236072011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
23608
23609 PR objc/47232
23610 * c-parser.c (c_parser_declaration_or_fndef): Improved
23611 error message.
23612
1ba6516f
KT
236132011-01-09 Kai Tietz <kai.tietz@onevision.com>
23614
23615 * config/i386/winnt.c (i386_pe_start_function): Make sure
23616 to switch back to function's section.
23617
0c5d770e
IS
236182011-01-09 Iain Sandoe <iains@gcc.gnu.org>
23619
23620 PR gcc/46902
23621 PR testsuite/46912
23622 * plugin.c: Move include of dlfcn.h from here...
23623 * system.h: ... to here.
23624
236252011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
23626
23627 * doc/cpp.texi (C++ Named Operators): Fix markup for header
23628 file name.
23629 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
23630 two extra empty pages in PDF output.
23631
046608a3
NP
236322011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
23633
23634 PR objc/47078
23635 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
23636 for error recovery purposes behave as if it was not specified so
23637 that the default type is usd.
23638
8cb114b9
JH
236392011-01-07 Jan Hubicka <jh@suse.cz>
23640
23641 PR tree-optmization/46469
23642 * ipa.c (function_and_variable_visibility): Clear needed flags on
23643 nodes with external decls; handle weakrefs merging correctly.
23644
b294a75e
JM
236452011-01-07 Joseph Myers <joseph@codesourcery.com>
23646
23647 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
23648 not false.
23649
96bdf9b4
JH
236502011-01-07 Jan Hubicka <jh@suse.cz>
23651
f60c2554 23652 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
23653 and no longer claim that gold is required for linker plugin.
23654 * configure: Regenerate.
23655 * gcc.c (PLUGIN_COND): New macro.
23656 (LINK_COMMAND_SPEC): Use it.
23657 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
23658 * config.in (HAVE_LTO_PLUGIN): New.
23659 * configure.ac (--with-lto-plugin): New parameter; autodetect
23660 HAVE_LTO_PLUGIN.
23661
17afc0fe
JH
236622011-01-07 Jan Hubicka <jh@suse.cz>
23663
23664 PR tree-optimization/46367
23665 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
23666 when we can update original.
23667 (cgraph_mark_inline_edge): Sanity check.
23668 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
23669
d4c48c0f
UW
236702011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23671
23672 * config/spu/spu.h (ASM_COMMENT_START): Define.
23673
96f5b137
L
236742011-01-07 H.J. Lu <hongjiu.lu@intel.com>
23675
23676 PR driver/42445
23677 * gcc.c (%>S): New.
23678 (SWITCH_KEEP_FOR_GCC): Likewise.
23679 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
23680 (do_spec_1): Handle "%>".
23681
23682 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
23683
c6a8f6de
JJ
236842011-01-07 Jakub Jelinek <jakub@redhat.com>
23685
c21bbd7a
JJ
23686 PR target/47201
23687 * config/i386/i386.c (ix86_delegitimize_address): If
23688 simplify_gen_subreg fails, return orig_x.
23689
c6a8f6de
JJ
23690 PR bootstrap/47187
23691 * value-prof.c (gimple_stringop_fixed_value): Handle
23692 lhs of the call properly.
23693
fe95fbf9
JH
236942011-01-07 Jan Hubicka <jh@suse.cz>
23695
23696 PR lto/45375
23697 * lto-opt.c (lto_reissue_options): Set flag_shlib.
23698
14d11d40
IS
236992011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23700
72e961c8
EB
23701 * target.def (function_switched_text_sections): New hook.
23702 * doc/tm.texi: Regenerated.
23703 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 23704 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
23705 (final_scan_insn): Call function_switched_text_sections when a
23706 mid-function section change occurs.
14d11d40 23707 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
23708 * config/darwin-protos.h (darwin_function_switched_text_sections):
23709 Likewise.
14d11d40 23710 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 23711 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 23712
0b764288
IS
237132011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23714
23715 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
23716 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
23717 the secondary code fragment when outputting for DWARF == 2.
23718
2ac6bb04
AS
237192011-01-07 Anatoly Sokolov <aesok@post.ru>
23720
23721 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23722 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
23723 Remove.
23724 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
23725 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23726
9f82de11
EB
237272011-01-06 Eric Botcazou <ebotcazou@adacore.com>
23728
23729 PR debug/46704
280d9630
EB
23730 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
23731 when it is not empty.
9f82de11
EB
23732
237332011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 23734
1ed72abf 23735 Bobcat Enablement
14b52538 23736 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 23737 (case ${target}): Add btver1.
14b52538 23738 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 23739 -march=native recognize btver1 processors.
14b52538 23740 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 23741 btver1 def_and_undef
14b52538 23742 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
23743 btver1 cost table.
23744 (m_BTVER1): New definition.
23745 (m_AMD_MULTIPLE): Includes m_BTVER1.
23746 (initial_ix86_tune_features): Add btver1 tune.
23747 (processor_target_table): Add btver1 entry.
23748 (static const char *const cpu_names): Add btver1 entry.
23749 (software_prefetching_beneficial_p): Add btver1.
23750 (ix86_option_override_internal): Add btver1 instruction sets.
23751 (ix86_issue_rate): Add btver1.
23752 (ix86_adjust_cost): Add btver1.
14b52538 23753 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
23754 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
23755 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
23756 * config/i386/i386.md (define_attr "cpu"): Add btver1.
23757
e1a973d8
RO
237582011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23759
23760 PR target/43309
23761 * config/i386/i386.c (legitimize_tls_address)
23762 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
23763 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
23764 (tls_initial_exec_64_sun): New pattern.
23765
c73f67c5
GP
237662011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
23767
23768 * doc/invoke.texi (Overall Options): Improve wording and markup
23769 of the description of -wrapper.
23770
bc4c6f9c
JM
237712011-01-06 Joseph Myers <joseph@codesourcery.com>
23772
23773 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
23774 rdynamic, threads): New Driver options.
23775
adb75db0
RO
237762011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23777
23778 PR target/38118
23779 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
23780 if coming from .tdata.
23781 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
23782
402c1cb4
JH
237832011-01-06 Jan Hubicka <jh@suse.cz>
23784
23785 PR lto/47188
23786 * collect2.c (main): Do not enable LTOmode when plugin is active.
23787
a4da6485
RO
237882011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23789
23790 PR other/45915
23791 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
23792 --version output if supported.
23793 * configure: Regenerate.
23794
028dbdf4
JM
237952011-01-06 Joseph Myers <joseph@codesourcery.com>
23796
23797 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
23798 Driver options.
23799
dfe776dd
JJ
238002011-01-06 Jakub Jelinek <jakub@redhat.com>
23801
23802 PR c/47150
23803 * c-convert.c (convert): When converting a complex expression
23804 other than COMPLEX_EXPR to a different complex type, ensure
23805 c_save_expr is called instead of save_expr, unless in_late_binary_op.
23806 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
23807 when converting COMPLEX_TYPE.
23808
210dedfe
IR
238092011-01-06 Ira Rosen <irar@il.ibm.com>
23810
23811 PR tree-optimization/47139
23812 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
23813 only the last reduction value is used outside the loop. Update
23814 documentation.
23815
cd33a412
JM
238162011-01-05 Joseph Myers <joseph@codesourcery.com>
23817
23818 * config/rtems.opt: New.
23819 * config.gcc (*-*-rtems*): Use rtems.opt.
23820
819edd94
CF
238212011-01-05 Changpeng Fang <changpeng.fang@amd.com>
23822
23823 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
23824 processors do not support 3DNow instructions.
23825
dc242c4a
UW
238262011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23827
23828 * config/spu/spu.c (spu_option_override): Set parameter
23829 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
23830
be286227
JH
238312011-01-05 Jan Hubicka <jh@suse.cz>
23832
23833 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
23834 at the command line.
23835
644e637f
MJ
238362011-01-05 Martin Jambor <mjambor@suse.cz>
23837
23838 PR lto/47162
23839 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
23840 deltas on streamed outgoing edges.
23841 (output_node_opt_summary): Output info for outgoing edges only when
23842 the node is in new parameter set.
23843 (output_cgraph_opt_summary): New parameter set, passed to the two
23844 aforementioned functions. Update its forward declaration and its
23845 callee too.
23846
7bd11157
TT
238472011-01-05 Tom Tromey <tromey@redhat.com>
23848
23849 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
23850 operator to c_finish_omp_atomic.
23851 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
23852 (build_unary_op): Update.
23853 (build_modify_expr): Update.
23854 (build_asm_expr): Update.
23855
f626b979
UW
238562011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23857
23858 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
23859 newly inserted insns.
23860 (pad_bb): Likewise.
23861 (spu_emit_branch_hint): Likewise.
23862 (insert_hbrp_for_ilb_runout): Likewise.
23863 (spu_machine_dependent_reorg): Call df_finish_pass after
23864 schedule_insns returns.
23865
4c825c02
UW
238662011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23867
23868 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
23869
5e9fba51
EB
238702011-01-05 Eric Botcazou <ebotcazou@adacore.com>
23871
23872 PR tree-optimization/47005
23873 * tree-sra.c (struct access): Add 'non_addressable' bit.
23874 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
23875 (decide_one_param_reduction): Return 0 if the parameter is passed by
23876 reference and one of the accesses in the group is non_addressable.
23877
3ebb5ca6
EB
238782011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23879
23880 PR tree-optimization/47056
23881 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
23882 (mark_load): Likewise. Handle FUNCTION_DECL specially.
23883 (mark_store): Likewise. Pass STMT to ipa_record_reference.
23884
d5d4d14e
EB
238852011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23886
23887 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
23888 initializer. Skip view conversions from aggregate types.
23889
d996ef70
KT
238902011-01-04 Kai Tietz <kai.tietz@onevision.com>
23891
23892 PR bootstrap/47055
23893 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
23894
509d65dd 238952011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
23896
23897 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
23898 obvious typo.
23899
55c623b5
UW
239002011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23901
23902 * function.c (thread_prologue_and_epilogue_insns): Do not crash
23903 on empty epilogue sequences.
23904
b98d6b35
JM
239052011-01-04 Joseph Myers <joseph@codesourcery.com>
23906
23907 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
23908 non-static): New Driver options.
23909
a0d43bac
JZ
239102011-01-04 Jie Zhang <jie@codesourcery.com>
23911
23912 PR driver/47137
23913 * gcc.c (default_compilers[]): Set combinable field to 0
23914 for all assembly languages.
23915
2b18eb32
MX
239162011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
23917
23918 * config/mips/loongson3a.md: New file.
23919 * config/mips/mips.md: Include loongson3a.md.
23920 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
23921 TUNE_LOONGSON_3A.
23922
42a48c4f
EB
239232011-01-03 Eric Botcazou <ebotcazou@adacore.com>
23924
23925 PR middle-end/47017
23926 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
23927 instead of convert_memory_address_addr_space on the base expression.
23928
9c1732c4
UW
239292011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23930
23931 * config/spu/spu.c (spu_option_override): Update error text
23932 for bad -march= / -mtune= values.
23933
aa474365
UW
239342011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23935
23936 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
23937 if branch-hint optimization will be performed.
23938
9766135b
JJ
239392011-01-03 Jakub Jelinek <jakub@redhat.com>
23940
371556ee
JJ
23941 PR tree-optimization/47148
23942 * ipa-split.c (split_function): Convert arguments to
23943 DECL_ARG_TYPE if possible.
23944
1ac12fa2
JJ
23945 PR tree-optimization/47155
23946 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
23947 when computing uns.
23948
9766135b
JJ
23949 PR rtl-optimization/47157
23950 * combine.c (try_combine): If undobuf.other_insn becomes
23951 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
23952 and set *new_direct_jump_p too.
23953
f4a2e571
SP
239542011-01-03 Sebastian Pop <sebastian.pop@amd.com>
23955
23956 PR tree-optimization/47021
23957 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
23958
9f8e43c0
JJ
239592011-01-03 Jakub Jelinek <jakub@redhat.com>
23960
23961 * gcc.c (process_command): Update copyright notice dates.
23962 * gcov.c (print_version): Likewise.
23963 * gcov-dump.c (print_version): Likewise.
23964 * mips-tfile.c (main): Likewise.
23965 * mips-tdump.c (main): Likewise.
23966
1a2e38f3
MJ
239672011-01-03 Martin Jambor <mjambor@suse.cz>
23968
23969 PR tree-optimization/46801
23970 * tree-sra.c (type_internals_preclude_sra_p): Check whether
23971 aggregate fields start at byte boundary instead of the bit-field flag.
23972
56b721c5
L
239732011-01-03 H.J. Lu <hongjiu.lu@intel.com>
23974
23975 PR driver/47137
23976 * gcc.c (main): Revert revision 168407.
23977
839d549b
MJ
239782011-01-03 Martin Jambor <mjambor@suse.cz>
23979
23980 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
23981
4ce99a20 239822011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
23983
23984 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
23985 vector optab to expand vector/scalar shift, update gimple to vector.
23986
76df0ae6
MJ
239872011-01-03 Martin Jambor <mjambor@suse.cz>
23988
23989 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
23990 a thunk.
23991
ce47fda3
MJ
239922011-01-03 Martin Jambor <mjambor@suse.cz>
23993
23994 PR tree-optimization/46984
23995 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
23996 HOST_WIDE_INT.
23997 (cgraph_create_indirect_edge): Fixed line length.
23998 (cgraph_indirect_call_info): Declare.
23999 (cgraph_make_edge_direct) Update declaration.
24000 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
24001 (cgraph_create_indirect_edge): Use it.
24002 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
24003 callees.
24004 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
24005 the new thunk_delta representation.
24006 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
24007 HOST_WIDE_INT.
24008 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
24009 (ipa_read_indirect_edge_info): Likewise.
24010 * lto-cgraph.c (output_edge_opt_summary): New function.
24011 (output_node_opt_summary): Call it on all outgoing edges.
24012 (input_edge_opt_summary): New function.
24013 (input_node_opt_summary): Call it on all outgoing edges.
24014
1e67fa1f
L
240152011-01-02 H.J. Lu <hongjiu.lu@intel.com>
24016
24017 PR driver/47137
24018 * gcc.c (main): Don't check have_o when settting combine_inputs.
24019
6656b2ac
EB
240202011-01-02 Eric Botcazou <ebotcazou@adacore.com>
24021
24022 * regrename.c: Add general comment describing the pass.
24023 (struct du_head): Remove 'length' field.
24024 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
24025 (regrename_optimize): Do not sort chains. Rework comments, add others.
24026 Force renaming to the preferred class (if any) in the first pass and do
24027 not consider registers that belong to it in the second pass.
24028 (create_new_chain): Do not set 'length' field.
24029 (scan_rtx_reg): Likewise.
24030
bc470c24
JJ
240312011-01-02 Jakub Jelinek <jakub@redhat.com>
24032
4e996296
JJ
24033 PR tree-optimization/47140
24034 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
24035 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
24036 to bit_value_binop.
24037
bc470c24 24038 PR rtl-optimization/47028
6656b2ac
EB
24039 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
24040 parm_birth_insn instead of at the beginning of first bb.
bc470c24 24041
5af62fcd 240422011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
24043
24044 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
24045 Remove the word "see" before "@pxref".
24046 * doc/rtl.texi: Remove the word "see" before "@pxref".
24047
0e20c89f
JH
240482011-01-01 Jan Hubicka <jh@suse.cz>
24049
6656b2ac
EB
24050 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
24051 memory.
0e20c89f 24052
220e83ca
KT
240532011-01-01 Kai Tietz <kai.tietz@onevision.com>
24054
24055 PR target/38662
6656b2ac 24056 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 24057
ad41bd84 24058\f
797103eb 24059Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
24060
24061Copying and distribution of this file, with or without modification,
24062are permitted in any medium without royalty provided the copyright
24063notice and this notice are preserved.